/[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 123 by schoenebeck, Mon Jun 14 19:33:16 2004 UTC revision 226 by schoenebeck, Wed Aug 25 22:00:33 2004 UTC
# Line 47  Line 47 
47    
48    
49    
 /* 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,  
      HASH = 264,  
      EQ = 265,  
      ADD = 266,  
      GET = 267,  
      CREATE = 268,  
      DESTROY = 269,  
      LIST = 270,  
      LOAD = 271,  
      REMOVE = 272,  
      SET = 273,  
      SUBSCRIBE = 274,  
      UNSUBSCRIBE = 275,  
      RESET = 276,  
      QUIT = 277,  
      CHANNEL = 278,  
      NOTIFICATION = 279,  
      AVAILABLE_ENGINES = 280,  
      AVAILABLE_AUDIO_OUTPUT_DRIVERS = 281,  
      CHANNELS = 282,  
      INFO = 283,  
      BUFFER_FILL = 284,  
      STREAM_COUNT = 285,  
      VOICE_COUNT = 286,  
      INSTRUMENT = 287,  
      ENGINE = 288,  
      AUDIO_OUTPUT_CHANNEL = 289,  
      AUDIO_OUTPUT_CHANNEL_PARAMETER = 290,  
      AUDIO_OUTPUT_DEVICE = 291,  
      AUDIO_OUTPUT_DEVICES = 292,  
      AUDIO_OUTPUT_DEVICE_PARAMETER = 293,  
      AUDIO_OUTPUT_DRIVER = 294,  
      AUDIO_OUTPUT_DRIVER_PARAMETER = 295,  
      MIDI_INPUT_PORT = 296,  
      MIDI_INPUT_CHANNEL = 297,  
      MIDI_INPUT_TYPE = 298,  
      VOLUME = 299,  
      BYTES = 300,  
      PERCENTAGE = 301  
    };  
 #endif  
 #define CHAR 258  
 #define DOTNUM 259  
 #define NUMBER 260  
 #define SP 261  
 #define LF 262  
 #define CR 263  
 #define HASH 264  
 #define EQ 265  
 #define ADD 266  
 #define GET 267  
 #define CREATE 268  
 #define DESTROY 269  
 #define LIST 270  
 #define LOAD 271  
 #define REMOVE 272  
 #define SET 273  
 #define SUBSCRIBE 274  
 #define UNSUBSCRIBE 275  
 #define RESET 276  
 #define QUIT 277  
 #define CHANNEL 278  
 #define NOTIFICATION 279  
 #define AVAILABLE_ENGINES 280  
 #define AVAILABLE_AUDIO_OUTPUT_DRIVERS 281  
 #define CHANNELS 282  
 #define INFO 283  
 #define BUFFER_FILL 284  
 #define STREAM_COUNT 285  
 #define VOICE_COUNT 286  
 #define INSTRUMENT 287  
 #define ENGINE 288  
 #define AUDIO_OUTPUT_CHANNEL 289  
 #define AUDIO_OUTPUT_CHANNEL_PARAMETER 290  
 #define AUDIO_OUTPUT_DEVICE 291  
 #define AUDIO_OUTPUT_DEVICES 292  
 #define AUDIO_OUTPUT_DEVICE_PARAMETER 293  
 #define AUDIO_OUTPUT_DRIVER 294  
 #define AUDIO_OUTPUT_DRIVER_PARAMETER 295  
 #define MIDI_INPUT_PORT 296  
 #define MIDI_INPUT_CHANNEL 297  
 #define MIDI_INPUT_TYPE 298  
 #define VOLUME 299  
 #define BYTES 300  
 #define PERCENTAGE 301  
   
50    
51    
52    
53  /* Copy the first part of user declarations.  */  /* Copy the first part of user declarations.  */
54  #line 23 "lscp.y"  #line 26 "lscp.y"
55    
56    
57  #include "lscpparser.h"  #include "lscpparser.h"
58  #include "lscpserver.h"  #include "lscpserver.h"
59    #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  
60    
61  // to save us typing work in the rules action definitions  // to save us typing work in the rules action definitions
62  #define LSCPSERVER ((yyparse_param_t*) yyparse_param)->pServer  #define LSCPSERVER ((yyparse_param_t*) yyparse_param)->pServer
63    
64  // clears input buffer and restarts scanner.  // clears input buffer
65  void restart(yyparse_param_t* pparam, int& yychar);  void restart(yyparse_param_t* pparam, int& yychar);
66  #define RESTART restart((yyparse_param_t*) YYPARSE_PARAM, yychar)  #define RESTART restart((yyparse_param_t*) YYPARSE_PARAM, yychar)
67    
 // 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);  
   
68  // 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
69  void yyerror(const char* s);  void yyerror(const char* s);
70    
71    static char buf[1024]; // input buffer to feed the parser with new characters
72    static int bytes = 0;  // current number of characters in the input buffer
73    static int ptr   = 0;  // current position in the input buffer
74    
75    // external reference to the function which actually reads from the socket
76    extern int GetLSCPCommand( void *buf, int max_size);
77    
78    // custom scanner function which reads from the socket
79    int yylex(YYSTYPE* yylval) {
80        // check if we have to read new characters
81        if (ptr >= bytes) {
82            bytes = GetLSCPCommand(buf, 1023);
83            ptr   = 0;
84            if (bytes < 0) {
85                bytes = 0;
86                return 0;
87            }
88        }
89        return (int) buf[ptr++];
90    }
91    
92    
93    
94  /* Enabling traces.  */  /* Enabling traces.  */
# Line 201  typedef int YYSTYPE; Line 117  typedef int YYSTYPE;
117    
118    
119  /* Line 214 of yacc.c.  */  /* Line 214 of yacc.c.  */
120  #line 205 "y.tab.c"  #line 121 "y.tab.c"
121    
122  #if ! defined (yyoverflow) || YYERROR_VERBOSE  #if ! defined (yyoverflow) || YYERROR_VERBOSE
123    
# Line 298  union yyalloc Line 214  union yyalloc
214  #endif  #endif
215    
216  /* YYFINAL -- State number of the termination state. */  /* YYFINAL -- State number of the termination state. */
217  #define YYFINAL  30  #define YYFINAL  39
218  /* YYLAST -- Last index in YYTABLE.  */  /* YYLAST -- Last index in YYTABLE.  */
219  #define YYLAST   222  #define YYLAST   3982
220    
221  /* YYNTOKENS -- Number of terminals. */  /* YYNTOKENS -- Number of terminals. */
222  #define YYNTOKENS  47  #define YYNTOKENS  227
223  /* YYNNTS -- Number of nonterminals. */  /* YYNNTS -- Number of nonterminals. */
224  #define YYNNTS  29  #define YYNNTS  89
225  /* YYNRULES -- Number of rules. */  /* YYNRULES -- Number of rules. */
226  #define YYNRULES  81  #define YYNRULES  413
227  /* YYNRULES -- Number of states. */  /* YYNRULES -- Number of states. */
228  #define YYNSTATES  225  #define YYNSTATES  1133
229    
230  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
231  #define YYUNDEFTOK  2  #define YYUNDEFTOK  2
232  #define YYMAXUTOK   301  #define YYMAXUTOK   257
233    
234  #define YYTRANSLATE(YYX)                                                \  #define YYTRANSLATE(YYX)                                                \
235    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
# Line 322  union yyalloc Line 238  union yyalloc
238  static const unsigned char yytranslate[] =  static const unsigned char yytranslate[] =
239  {  {
240         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
241         225,     2,     2,   226,     2,     2,     2,     2,     2,     2,
242         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
243         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,         2,     2,   224,    70,   223,     3,    71,    72,    73,   222,
244         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        74,    75,    76,     6,    77,     7,     5,    78,     8,     9,
245         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        10,    11,    12,    13,    14,    15,    16,    17,    79,    80,
246         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        81,     4,    82,    83,    84,    18,    19,    20,    21,    22,
247         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
248         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
249         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        43,    85,    86,    87,    88,    89,     2,    44,    45,    46,
250         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
251         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
252         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        67,    68,    69,    90,    91,    92,    93,     2,    94,    95,
253         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
254         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
255         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
256         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
257         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
258         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
259         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
260         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
261         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
262         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
263         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
264         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
265         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,    38,    39,    40,    41,    42,    43,    44,  
       45,    46  
266  };  };
267    
268  #if YYDEBUG  #if YYDEBUG
# Line 359  static const unsigned char yytranslate[] Line 270  static const unsigned char yytranslate[]
270     YYRHS.  */     YYRHS.  */
271  static const unsigned short yyprhs[] =  static const unsigned short yyprhs[] =
272  {  {
273         0,     0,     3,     5,     9,    14,    15,    17,    19,    21,         0,     0,     3,     6,    10,    11,    13,    15,    17,    19,
274        23,    26,    29,    32,    35,    39,    43,    47,    51,    55,        22,    25,    28,    31,    35,    39,    43,    47,    51,    55,
275        59,    65,    69,    75,    81,    87,    89,    91,    93,    99,        61,    65,    69,    73,    79,    81,    83,    85,    87,    89,
276       107,   117,   119,   125,   133,   143,   145,   151,   159,   165,        91,    93,    95,    97,    99,   101,   103,   105,   107,   109,
277       171,   177,   185,   193,   203,   213,   217,   223,   227,   231,       111,   117,   125,   135,   137,   143,   151,   161,   163,   165,
278       235,   241,   249,   255,   261,   267,   273,   277,   283,   285,       171,   177,   185,   195,   203,   213,   215,   221,   229,   235,
279       287,   289,   295,   299,   301,   303,   305,   307,   309,   311,       241,   247,   255,   265,   273,   283,   287,   291,   297,   301,
280       313,   315,   317,   319,   321,   323,   327,   329,   331,   334,       307,   311,   315,   319,   323,   327,   333,   341,   347,   357,
281       337,   339       363,   369,   375,   381,   387,   391,   397,   399,   401,   403,
282         405,   407,   413,   421,   425,   427,   429,   431,   433,   435,
283         437,   439,   441,   443,   445,   447,   449,   451,   453,   455,
284         457,   459,   461,   463,   466,   470,   475,   480,   482,   485,
285         487,   489,   491,   493,   495,   497,   499,   501,   503,   505,
286         507,   510,   513,   516,   519,   522,   525,   528,   531,   534,
287         536,   538,   540,   542,   544,   546,   548,   550,   552,   554,
288         556,   558,   560,   562,   564,   566,   568,   570,   572,   574,
289         576,   578,   580,   582,   584,   586,   588,   590,   592,   594,
290         596,   598,   600,   602,   604,   606,   608,   610,   612,   614,
291         616,   618,   620,   622,   624,   626,   628,   630,   632,   634,
292         636,   638,   640,   642,   644,   646,   648,   650,   652,   654,
293         656,   658,   660,   662,   664,   666,   668,   670,   672,   674,
294         676,   678,   680,   682,   684,   686,   688,   690,   692,   694,
295         696,   698,   700,   702,   704,   706,   708,   710,   712,   714,
296         716,   718,   720,   722,   724,   726,   728,   730,   732,   734,
297         736,   738,   740,   742,   744,   746,   748,   750,   752,   754,
298         756,   758,   760,   762,   764,   766,   768,   770,   772,   774,
299         776,   778,   780,   782,   784,   786,   788,   790,   792,   794,
300         796,   798,   800,   802,   804,   806,   808,   810,   812,   814,
301         816,   818,   820,   822,   824,   826,   828,   830,   832,   834,
302         836,   838,   840,   842,   844,   846,   848,   850,   852,   854,
303         856,   858,   860,   862,   864,   866,   868,   870,   872,   874,
304         876,   878,   880,   882,   884,   886,   888,   890,   892,   894,
305         896,   898,   900,   902,   904,   906,   908,   910,   912,   914,
306         916,   918,   920,   922,   924,   926,   928,   930,   932,   934,
307         936,   938,   940,   942,   944,   946,   948,   950,   952,   954,
308         956,   958,   960,   962,   964,   966,   968,   970,   972,   974,
309         976,   979,   982,   986,   990,   992,   994,   996,  1000,  1004,
310        1011,  1019,  1024,  1029,  1039,  1046,  1050,  1060,  1072,  1080,
311        1098,  1129,  1138,  1143,  1155,  1168,  1180,  1191,  1198,  1228,
312        1249,  1269,  1299,  1319,  1350,  1371,  1389,  1418,  1446,  1472,
313        1491,  1509,  1537,  1555,  1571,  1590,  1606,  1617,  1624,  1630,
314        1641,  1647,  1661,  1666
315  };  };
316    
317  /* YYRHS -- A `-1'-separated list of the rules' RHS. */  /* YYRHS -- A `-1'-separated list of the rules' RHS. */
318  static const yysigned_char yyrhs[] =  static const short yyrhs[] =
319  {  {
320        48,     0,    -1,    49,    -1,    48,     7,    49,    -1,    48,       228,     0,    -1,   229,   267,    -1,   229,   268,   267,    -1,
321         8,     7,    49,    -1,    -1,    50,    -1,    51,    -1,     1,        -1,   230,    -1,   231,    -1,     1,    -1,     3,    -1,   230,
322        -1,     9,    -1,    50,     9,    -1,    50,     6,    -1,    50,         3,    -1,   230,   266,    -1,   230,   262,    -1,   230,   258,
323         5,    -1,    50,    75,    -1,    11,     6,    23,    -1,    12,        -1,   269,   266,   280,    -1,   270,   266,   234,    -1,   271,
324         6,    52,    -1,    13,     6,    54,    -1,    14,     6,    55,       266,   236,    -1,   272,   266,   237,    -1,   273,   266,   242,
325        -1,    15,     6,    60,    -1,    16,     6,    56,    -1,    17,        -1,   274,   266,   238,    -1,   276,   266,   280,   266,   252,
326         6,    23,     6,    65,    -1,    18,     6,    53,    -1,    19,        -1,   277,   266,   235,    -1,   278,   266,   232,    -1,   279,
327         6,    24,     6,    67,    -1,    20,     6,    24,     6,    70,       266,   233,    -1,   312,   266,   280,   266,   252,    -1,   312,
328        -1,    21,     6,    23,     6,    65,    -1,    22,    -1,    25,        -1,   315,    -1,   283,    -1,   287,    -1,   286,    -1,   285,
329        -1,    26,    -1,    39,     6,    28,     6,    75,    -1,    40,        -1,   284,    -1,   313,    -1,   283,    -1,   287,    -1,   286,
330         6,    28,     6,    75,     6,    75,    -1,    40,     6,    28,        -1,   285,    -1,   284,    -1,   313,    -1,   281,    -1,   298,
331         6,    75,     6,    75,     6,    58,    -1,    37,    -1,    36,        -1,   304,   266,   284,   266,   258,    -1,   303,   266,   284,
332         6,    28,     6,     5,    -1,    34,     6,    28,     6,     5,       266,   258,   266,   258,    -1,   303,   266,   284,   266,   258,
333         6,     5,    -1,    35,     6,    28,     6,     5,     6,     5,       266,   258,   266,   240,    -1,   282,    -1,   294,   266,   284,
334         6,    75,    -1,    27,    -1,    23,     6,    28,     6,    65,       266,   258,    -1,   293,   266,   284,   266,   258,   266,   258,
335        -1,    23,     6,    29,     6,    59,     6,    65,    -1,    23,        -1,   293,   266,   284,   266,   258,   266,   258,   266,   240,
336         6,    30,     6,    65,    -1,    23,     6,    31,     6,    65,        -1,   291,    -1,   301,    -1,   292,   266,   284,   266,   262,
337        -1,    33,     6,    28,     6,    71,    -1,    38,     6,     5,        -1,   302,   266,   284,   266,   262,    -1,   305,   266,   284,
338         6,    75,     6,    74,    -1,    38,     6,     5,     6,    75,       266,   262,   266,   262,    -1,   300,   266,   284,   266,   262,
339        10,    74,    -1,    35,     6,     5,     6,     5,     6,    75,       266,   262,   266,   258,    -1,   296,   266,   284,   266,   262,
340         6,    74,    -1,    35,     6,     5,     6,     5,     6,    75,       266,   262,    -1,   295,   266,   284,   266,   262,   266,   262,
341        10,    74,    -1,    23,     6,    57,    -1,    36,     6,    75,       266,   258,    -1,   283,    -1,   280,   266,   284,   266,   252,
342         6,    58,    -1,    36,     6,     5,    -1,    32,     6,    61,        -1,   280,   266,   285,   266,   241,   266,   252,    -1,   280,
343        -1,    33,     6,    62,    -1,    36,     6,    65,     6,     5,       266,   286,   266,   252,    -1,   280,   266,   287,   266,   252,
344        -1,    34,     6,    65,     6,    68,     6,    68,    -1,    41,        -1,   289,   266,   284,   266,   254,    -1,   290,   266,   262,
345         6,    65,     6,    72,    -1,    42,     6,    65,     6,    69,       266,   258,     4,   256,    -1,   295,   266,   262,   266,   262,
346        -1,    43,     6,    65,     6,    63,    -1,    44,     6,    65,       266,   258,     4,   256,    -1,   299,   266,   262,   266,   258,
347         6,    64,    -1,    75,    10,    74,    -1,    58,     6,    75,         4,   256,    -1,   300,   266,   262,   266,   262,   266,   258,
348        10,    74,    -1,    45,    -1,    46,    -1,    37,    -1,    73,         4,   256,    -1,   280,   266,   239,    -1,   314,   266,   257,
349         6,    66,     6,    65,    -1,    71,     6,    65,    -1,    75,        -1,   292,   266,   258,   266,   240,    -1,   292,   266,   258,
350        -1,     4,    -1,     5,    -1,     5,    -1,     5,    -1,     5,        -1,   302,   266,   258,   266,   240,    -1,   302,   266,   258,
351        -1,     5,    -1,     5,    -1,    74,    -1,    75,    -1,    74,        -1,   292,   266,   262,    -1,   302,   266,   262,    -1,   288,
352        -1,    74,    -1,    73,     6,    74,    -1,    75,    -1,     5,       266,   243,    -1,   289,   266,   244,    -1,   292,   266,   252,
353        -1,    74,    75,    -1,    74,     5,    -1,     3,    -1,    75,       266,   245,    -1,   296,   266,   252,   266,   246,   266,   246,
354         3,    -1        -1,   297,   266,   252,   266,   247,    -1,   308,   266,   252,
355         266,   245,   266,   248,   266,   249,    -1,   302,   266,   252,
356         266,   245,    -1,   305,   266,   252,   266,   248,    -1,   306,
357         266,   252,   266,   249,    -1,   307,   266,   252,   266,   250,
358          -1,   309,   266,   252,   266,   251,    -1,   258,     4,   256,
359          -1,   240,   266,   258,     4,   256,    -1,   310,    -1,   311,
360          -1,   291,    -1,   301,    -1,   283,    -1,   255,   266,   253,
361         266,   252,    -1,   275,   266,   255,   266,   253,   266,   252,
362          -1,   254,   266,   252,    -1,   262,    -1,   262,    -1,   258,
363          -1,   262,    -1,   262,    -1,   258,    -1,   259,    -1,   262,
364          -1,   262,    -1,   262,    -1,   258,    -1,   265,    -1,   258,
365          -1,   265,    -1,   262,    -1,   259,    -1,   262,    -1,   258,
366          -1,   263,    -1,   258,   263,    -1,   260,     5,   260,    -1,
367           6,   260,     5,   260,    -1,     7,   260,     5,   260,    -1,
368         261,    -1,   260,   261,    -1,     8,    -1,     9,    -1,    10,
369          -1,    11,    -1,    12,    -1,    13,    -1,    14,    -1,    15,
370          -1,    16,    -1,    17,    -1,   261,    -1,     9,   260,    -1,
371          10,   260,    -1,    11,   260,    -1,    12,   260,    -1,    13,
372         260,    -1,    14,   260,    -1,    15,   260,    -1,    16,   260,
373          -1,    17,   260,    -1,    18,    -1,    19,    -1,    20,    -1,
374          21,    -1,    22,    -1,    23,    -1,    24,    -1,    25,    -1,
375          26,    -1,    27,    -1,    28,    -1,    29,    -1,    30,    -1,
376          31,    -1,    32,    -1,    33,    -1,    34,    -1,    35,    -1,
377          36,    -1,    37,    -1,    38,    -1,    39,    -1,    40,    -1,
378          41,    -1,    42,    -1,    43,    -1,    44,    -1,    45,    -1,
379          46,    -1,    47,    -1,    48,    -1,    49,    -1,    50,    -1,
380          51,    -1,    52,    -1,    53,    -1,    54,    -1,    55,    -1,
381          56,    -1,    57,    -1,    58,    -1,    59,    -1,    60,    -1,
382          61,    -1,    62,    -1,    63,    -1,    64,    -1,    65,    -1,
383          66,    -1,    67,    -1,    68,    -1,    69,    -1,     8,    -1,
384           9,    -1,    10,    -1,    11,    -1,    12,    -1,    13,    -1,
385          14,    -1,    15,    -1,    16,    -1,    17,    -1,    70,    -1,
386           3,    -1,    71,    -1,    72,    -1,    73,    -1,    74,    -1,
387          75,    -1,    76,    -1,     6,    -1,     7,    -1,     5,    -1,
388          77,    -1,    78,    -1,    79,    -1,    80,    -1,    81,    -1,
389           4,    -1,    82,    -1,    83,    -1,    84,    -1,    85,    -1,
390          86,    -1,    87,    -1,    88,    -1,    89,    -1,    90,    -1,
391          91,    -1,    92,    -1,    93,    -1,    94,    -1,    95,    -1,
392          96,    -1,    97,    -1,    98,    -1,    99,    -1,   100,    -1,
393         101,    -1,   102,    -1,   103,    -1,   104,    -1,   105,    -1,
394         106,    -1,   107,    -1,   108,    -1,   109,    -1,   110,    -1,
395         111,    -1,   112,    -1,   113,    -1,   114,    -1,   115,    -1,
396         116,    -1,   117,    -1,   118,    -1,   119,    -1,   120,    -1,
397         121,    -1,   122,    -1,   123,    -1,   124,    -1,   125,    -1,
398         126,    -1,   127,    -1,   128,    -1,   129,    -1,   130,    -1,
399         131,    -1,   132,    -1,   133,    -1,   134,    -1,   135,    -1,
400         136,    -1,   137,    -1,   138,    -1,   139,    -1,   140,    -1,
401         141,    -1,   142,    -1,   143,    -1,   144,    -1,   145,    -1,
402         146,    -1,   147,    -1,   148,    -1,   149,    -1,   150,    -1,
403         151,    -1,   152,    -1,   153,    -1,   154,    -1,   155,    -1,
404         156,    -1,   157,    -1,   158,    -1,   159,    -1,   160,    -1,
405         161,    -1,   162,    -1,   163,    -1,   164,    -1,   165,    -1,
406         166,    -1,   167,    -1,   168,    -1,   169,    -1,   170,    -1,
407         171,    -1,   172,    -1,   173,    -1,   174,    -1,   175,    -1,
408         176,    -1,   177,    -1,   178,    -1,   179,    -1,   180,    -1,
409         181,    -1,   182,    -1,   183,    -1,   184,    -1,   185,    -1,
410         186,    -1,   187,    -1,   188,    -1,   189,    -1,   190,    -1,
411         191,    -1,   192,    -1,   193,    -1,   194,    -1,   195,    -1,
412         196,    -1,   197,    -1,   198,    -1,   199,    -1,   200,    -1,
413         201,    -1,   202,    -1,   203,    -1,   204,    -1,   205,    -1,
414         206,    -1,   207,    -1,   208,    -1,   209,    -1,   210,    -1,
415         211,    -1,   212,    -1,   213,    -1,   214,    -1,   215,    -1,
416         216,    -1,   217,    -1,   218,    -1,   219,    -1,   220,    -1,
417         221,    -1,   266,    -1,   258,    -1,   264,   266,    -1,   264,
418         258,    -1,   222,   264,   222,    -1,   223,   264,   223,    -1,
419         224,    -1,   225,    -1,   226,    -1,    18,    21,    21,    -1,
420          24,    22,    37,    -1,    20,    35,    22,    18,    37,    22,
421          -1,    21,    22,    36,    37,    35,    32,    42,    -1,    29,
422          26,    36,    37,    -1,    29,    32,    18,    21,    -1,    31,
423          32,    31,    89,    30,    32,    21,    18,    29,    -1,    35,
424          22,    30,    32,    39,    22,    -1,    36,    22,    37,    -1,
425          36,    38,    19,    36,    20,    35,    26,    19,    22,    -1,
426          38,    31,    36,    38,    19,    36,    20,    35,    26,    19,
427          22,    -1,    20,    25,    18,    31,    31,    22,    29,    -1,
428          18,    39,    18,    26,    29,    18,    19,    29,    22,    89,
429          22,    31,    24,    26,    31,    22,    36,    -1,    18,    39,
430          18,    26,    29,    18,    19,    29,    22,    89,    18,    38,
431          21,    26,    32,    89,    32,    38,    37,    33,    38,    37,
432          89,    21,    35,    26,    39,    22,    35,    36,    -1,    20,
433          25,    18,    31,    31,    22,    29,    36,    -1,    26,    31,
434          23,    32,    -1,    19,    38,    23,    23,    22,    35,    89,
435          23,    26,    29,    29,    -1,    36,    37,    35,    22,    18,
436          30,    89,    20,    32,    38,    31,    37,    -1,    39,    32,
437          26,    20,    22,    89,    20,    32,    38,    31,    37,    -1,
438          26,    31,    36,    37,    35,    38,    30,    22,    31,    37,
439          -1,    22,    31,    24,    26,    31,    22,    -1,    18,    38,
440          21,    26,    32,    89,    32,    38,    37,    33,    38,    37,
441          89,    21,    22,    39,    26,    20,    22,    89,    33,    18,
442          35,    18,    30,    22,    37,    22,    35,    -1,    18,    38,
443          21,    26,    32,    89,    32,    38,    37,    33,    38,    37,
444          89,    21,    22,    39,    26,    20,    22,    36,    -1,    18,
445          38,    21,    26,    32,    89,    32,    38,    37,    33,    38,
446          37,    89,    21,    22,    39,    26,    20,    22,    -1,    18,
447          38,    21,    26,    32,    89,    32,    38,    37,    33,    38,
448          37,    89,    21,    35,    26,    39,    22,    35,    89,    33,
449          18,    35,    18,    30,    22,    37,    22,    35,    -1,    18,
450          38,    21,    26,    32,    89,    32,    38,    37,    33,    38,
451          37,    89,    21,    35,    26,    39,    22,    35,    -1,    18,
452          38,    21,    26,    32,    89,    32,    38,    37,    33,    38,
453          37,    89,    20,    25,    18,    31,    31,    22,    29,    89,
454          33,    18,    35,    18,    30,    22,    37,    22,    35,    -1,
455          18,    38,    21,    26,    32,    89,    32,    38,    37,    33,
456          38,    37,    89,    20,    25,    18,    31,    31,    22,    29,
457          -1,    18,    38,    21,    26,    32,    89,    32,    38,    37,
458          33,    38,    37,    89,    37,    42,    33,    22,    -1,    18,
459          39,    18,    26,    29,    18,    19,    29,    22,    89,    30,
460          26,    21,    26,    89,    26,    31,    33,    38,    37,    89,
461          21,    35,    26,    39,    22,    35,    36,    -1,    30,    26,
462          21,    26,    89,    26,    31,    33,    38,    37,    89,    21,
463          22,    39,    26,    20,    22,    89,    33,    18,    35,    18,
464          30,    22,    37,    22,    35,    -1,    30,    26,    21,    26,
465          89,    26,    31,    33,    38,    37,    89,    33,    32,    35,
466          37,    89,    33,    18,    35,    18,    30,    22,    37,    22,
467          35,    -1,    30,    26,    21,    26,    89,    26,    31,    33,
468          38,    37,    89,    21,    22,    39,    26,    20,    22,    36,
469          -1,    30,    26,    21,    26,    89,    26,    31,    33,    38,
470          37,    89,    21,    22,    39,    26,    20,    22,    -1,    30,
471          26,    21,    26,    89,    26,    31,    33,    38,    37,    89,
472          21,    35,    26,    39,    22,    35,    89,    33,    18,    35,
473          18,    30,    22,    37,    22,    35,    -1,    30,    26,    21,
474          26,    89,    26,    31,    33,    38,    37,    89,    21,    35,
475          26,    39,    22,    35,    -1,    30,    26,    21,    26,    89,
476          26,    31,    33,    38,    37,    89,    33,    32,    35,    37,
477          -1,    30,    26,    21,    26,    89,    26,    31,    33,    38,
478          37,    89,    20,    25,    18,    31,    31,    22,    29,    -1,
479          30,    26,    21,    26,    89,    26,    31,    33,    38,    37,
480          89,    37,    42,    33,    22,    -1,    30,    26,    21,    26,
481          89,    26,    31,    33,    38,    37,    -1,    39,    32,    29,
482          38,    30,    22,    -1,    19,    42,    37,    22,    36,    -1,
483          33,    22,    35,    20,    22,    31,    37,    18,    24,    22,
484          -1,    35,    22,    36,    22,    37,    -1,    30,    26,    36,
485          20,    22,    29,    29,    18,    31,    22,    32,    38,    36,
486          -1,    22,    20,    25,    32,    -1,    34,    38,    26,    37,
487          -1
488  };  };
489    
490  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
491  static const unsigned char yyrline[] =  static const unsigned short yyrline[] =
492  {  {
493         0,    75,    75,    76,    77,    80,    81,    82,    83,    86,         0,    81,    81,    82,    85,    86,    87,    88,    91,    92,
494        87,    88,    89,    90,    93,    94,    95,    96,    97,    98,        93,    94,    95,    98,    99,   100,   101,   102,   103,   104,
495        99,   100,   101,   102,   103,   104,   107,   108,   109,   110,       105,   106,   107,   108,   109,   110,   113,   114,   115,   116,
496       111,   112,   113,   114,   115,   116,   117,   118,   119,   120,       117,   118,   121,   122,   123,   124,   125,   126,   129,   130,
497       121,   124,   125,   126,   127,   128,   131,   134,   137,   138,       131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
498       141,   142,   143,   144,   145,   146,   149,   150,   152,   153,       141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
499       156,   159,   162,   165,   168,   169,   172,   175,   178,   181,       151,   154,   155,   156,   157,   158,   159,   162,   163,   164,
500       184,   187,   190,   193,   196,   197,   200,   201,   202,   203,       165,   168,   169,   172,   173,   176,   177,   178,   179,   180,
501       206,   207       181,   182,   183,   184,   187,   188,   191,   192,   195,   196,
502         197,   200,   201,   204,   207,   210,   213,   216,   219,   222,
503         225,   226,   229,   232,   235,   238,   241,   242,   243,   244,
504         250,   251,   254,   255,   258,   259,   260,   264,   265,   268,
505         269,   270,   271,   272,   273,   274,   275,   276,   277,   280,
506         281,   282,   283,   284,   285,   286,   287,   288,   289,   291,
507         291,   291,   291,   291,   291,   291,   291,   291,   291,   291,
508         291,   291,   291,   291,   291,   291,   291,   291,   291,   291,
509         291,   291,   291,   291,   291,   292,   292,   292,   292,   292,
510         292,   292,   292,   292,   292,   292,   292,   292,   292,   292,
511         292,   292,   292,   292,   292,   292,   292,   292,   292,   292,
512         292,   293,   293,   293,   293,   293,   293,   293,   293,   293,
513         293,   294,   294,   294,   294,   294,   294,   294,   294,   294,
514         294,   294,   294,   294,   295,   295,   295,   295,   295,   295,
515         295,   296,   296,   296,   296,   296,   297,   297,   297,   297,
516         298,   298,   298,   299,   299,   299,   300,   300,   300,   301,
517         301,   301,   302,   302,   302,   303,   303,   303,   304,   304,
518         304,   305,   305,   305,   306,   306,   306,   307,   307,   307,
519         308,   308,   308,   309,   309,   309,   310,   310,   310,   311,
520         311,   311,   312,   312,   312,   313,   313,   313,   314,   314,
521         314,   315,   315,   315,   316,   316,   316,   317,   317,   317,
522         318,   318,   318,   319,   319,   319,   320,   320,   320,   321,
523         321,   321,   322,   322,   322,   323,   323,   323,   324,   324,
524         324,   325,   325,   325,   326,   326,   326,   327,   327,   327,
525         328,   328,   328,   329,   329,   329,   330,   330,   330,   331,
526         331,   331,   332,   332,   332,   333,   333,   333,   334,   334,
527         334,   335,   335,   335,   336,   336,   336,   337,   337,   337,
528         338,   338,   338,   339,   339,   339,   340,   340,   343,   344,
529         345,   346,   349,   350,   356,   359,   362,   365,   368,   371,
530         374,   377,   380,   383,   386,   389,   392,   395,   398,   401,
531         404,   407,   410,   413,   416,   419,   422,   425,   428,   431,
532         434,   437,   440,   443,   446,   449,   452,   455,   458,   461,
533         464,   467,   470,   473,   476,   479,   482,   485,   488,   491,
534         494,   497,   500,   503
535  };  };
536  #endif  #endif
537    
# Line 430  static const unsigned char yyrline[] = Line 540  static const unsigned char yyrline[] =
540     First, the terminals, then, starting at YYNTOKENS, nonterminals. */     First, the terminals, then, starting at YYNTOKENS, nonterminals. */
541  static const char *const yytname[] =  static const char *const yytname[] =
542  {  {
543    "$end", "error", "$undefined", "CHAR", "DOTNUM", "NUMBER", "SP", "LF",    "$end", "error", "$undefined", "'#'", "'='", "'.'", "'+'", "'-'", "'0'",
544    "CR", "HASH", "EQ", "ADD", "GET", "CREATE", "DESTROY", "LIST", "LOAD",    "'1'", "'2'", "'3'", "'4'", "'5'", "'6'", "'7'", "'8'", "'9'", "'A'",
545    "REMOVE", "SET", "SUBSCRIBE", "UNSUBSCRIBE", "RESET", "QUIT", "CHANNEL",    "'B'", "'C'", "'D'", "'E'", "'F'", "'G'", "'H'", "'I'", "'J'", "'K'",
546    "NOTIFICATION", "AVAILABLE_ENGINES", "AVAILABLE_AUDIO_OUTPUT_DRIVERS",    "'L'", "'M'", "'N'", "'O'", "'P'", "'Q'", "'R'", "'S'", "'T'", "'U'",
547    "CHANNELS", "INFO", "BUFFER_FILL", "STREAM_COUNT", "VOICE_COUNT",    "'V'", "'W'", "'X'", "'Y'", "'Z'", "'a'", "'b'", "'c'", "'d'", "'e'",
548    "INSTRUMENT", "ENGINE", "AUDIO_OUTPUT_CHANNEL",    "'f'", "'g'", "'h'", "'i'", "'j'", "'k'", "'l'", "'m'", "'n'", "'o'",
549    "AUDIO_OUTPUT_CHANNEL_PARAMETER", "AUDIO_OUTPUT_DEVICE",    "'p'", "'q'", "'r'", "'s'", "'t'", "'u'", "'v'", "'w'", "'x'", "'y'",
550    "AUDIO_OUTPUT_DEVICES", "AUDIO_OUTPUT_DEVICE_PARAMETER",    "'z'", "'!'", "'$'", "'%'", "'&'", "'('", "')'", "'*'", "','", "'/'",
551    "AUDIO_OUTPUT_DRIVER", "AUDIO_OUTPUT_DRIVER_PARAMETER",    "':'", "';'", "'<'", "'>'", "'?'", "'@'", "'['", "'\\\\'", "']'", "'^'",
552    "MIDI_INPUT_PORT", "MIDI_INPUT_CHANNEL", "MIDI_INPUT_TYPE", "VOLUME",    "'_'", "'{'", "'|'", "'}'", "'~'", "'\\200'", "'\\201'", "'\\202'",
553    "BYTES", "PERCENTAGE", "$accept", "input", "line", "comment", "command",    "'\\203'", "'\\204'", "'\\205'", "'\\206'", "'\\207'", "'\\210'",
554    "get_instruction", "set_instruction", "create_instruction",    "'\\211'", "'\\212'", "'\\213'", "'\\214'", "'\\215'", "'\\216'",
555    "destroy_instruction", "load_instruction", "set_chan_instruction",    "'\\217'", "'\\220'", "'\\221'", "'\\222'", "'\\223'", "'\\224'",
556    "key_val_list", "buffer_size_type", "list_instruction",    "'\\225'", "'\\226'", "'\\227'", "'\\230'", "'\\231'", "'\\232'",
557    "load_instr_args", "load_engine_args", "midi_input_type", "volume",    "'\\233'", "'\\234'", "'\\235'", "'\\236'", "'\\237'", "' '", "'¡'",
558    "sampler_channel", "instrument_index", "udp_port",    "'¢'", "'£'", "'¤'", "'¥'", "'¦'", "'§'", "'¨'", "'©'", "'ª'", "'«'",
559    "audio_output_channel", "midi_input_channel", "session_id",    "'¬'", "'­'", "'®'", "'¯'", "'°'", "'±'", "'²'", "'³'", "'´'", "'µ'",
560    "engine_name", "midi_input_port", "filename", "alpha_num_string",    "'¶'", "'·'", "'¸'", "'¹'", "'º'", "'»'", "'¼'", "'½'", "'¾'", "'¿'",
561    "string", 0    "'À'", "'Á'", "'Â'", "'Ã'", "'Ä'", "'Å'", "'Æ'", "'Ç'", "'È'", "'É'",
562      "'Ê'", "'Ë'", "'Ì'", "'Í'", "'Î'", "'Ï'", "'Ð'", "'Ñ'", "'Ò'", "'Ó'",
563      "'Ô'", "'Õ'", "'Ö'", "'×'", "'Ø'", "'Ù'", "'Ú'", "'Û'", "'Ü'", "'Ý'",
564      "'Þ'", "'ß'", "'à'", "'á'", "'â'", "'ã'", "'ä'", "'å'", "'æ'", "'ç'",
565      "'è'", "'é'", "'ê'", "'ë'", "'ì'", "'í'", "'î'", "'ï'", "'ð'", "'ñ'",
566      "'ò'", "'ó'", "'ô'", "'õ'", "'ö'", "'÷'", "'ø'", "'ù'", "'ú'", "'û'",
567      "'ü'", "'ý'", "'þ'", "'ÿ'", "'''", "'\"'", "' '", "'\\n'", "'\\r'",
568      "$accept", "input", "line", "comment", "command", "subscribe_event",
569      "unsubscribe_event", "get_instruction", "set_instruction",
570      "create_instruction", "destroy_instruction", "load_instruction",
571      "set_chan_instruction", "key_val_list", "buffer_size_type",
572      "list_instruction", "load_instr_args", "load_engine_args",
573      "device_index", "audio_channel_index", "audio_output_type_name",
574      "midi_input_port_index", "midi_input_channel_index",
575      "midi_input_type_name", "volume_value", "sampler_channel",
576      "instrument_index", "engine_name", "filename", "param_val", "boolean",
577      "string", "dotnum", "digits", "digit", "number", "char", "text",
578      "stringval", "SP", "LF", "CR", "ADD", "GET", "CREATE", "DESTROY",
579      "LIST", "LOAD", "NON_MODAL", "REMOVE", "SET", "SUBSCRIBE",
580      "UNSUBSCRIBE", "CHANNEL", "AVAILABLE_ENGINES",
581      "AVAILABLE_AUDIO_OUTPUT_DRIVERS", "CHANNELS", "INFO", "BUFFER_FILL",
582      "STREAM_COUNT", "VOICE_COUNT", "INSTRUMENT", "ENGINE",
583      "AUDIO_OUTPUT_DEVICE_PARAMETER", "AUDIO_OUTPUT_DEVICES",
584      "AUDIO_OUTPUT_DEVICE", "AUDIO_OUTPUT_DRIVER_PARAMETER",
585      "AUDIO_OUTPUT_DRIVER", "AUDIO_OUTPUT_CHANNEL_PARAMETER",
586      "AUDIO_OUTPUT_CHANNEL", "AUDIO_OUTPUT_TYPE",
587      "AVAILABLE_MIDI_INPUT_DRIVERS", "MIDI_INPUT_DEVICE_PARAMETER",
588      "MIDI_INPUT_PORT_PARAMETER", "MIDI_INPUT_DEVICES", "MIDI_INPUT_DEVICE",
589      "MIDI_INPUT_DRIVER_PARAMETER", "MIDI_INPUT_DRIVER", "MIDI_INPUT_PORT",
590      "MIDI_INPUT_CHANNEL", "MIDI_INPUT_TYPE", "MIDI_INPUT", "VOLUME",
591      "BYTES", "PERCENTAGE", "RESET", "MISCELLANEOUS", "ECHO", "QUIT", 0
592  };  };
593  #endif  #endif
594    
# Line 457  static const char *const yytname[] = Line 597  static const char *const yytname[] =
597     token YYLEX-NUM.  */     token YYLEX-NUM.  */
598  static const unsigned short yytoknum[] =  static const unsigned short yytoknum[] =
599  {  {
600         0,   256,   257,   258,   259,   260,   261,   262,   263,   264,         0,   256,   257,    35,    61,    46,    43,    45,    48,    49,
601       265,   266,   267,   268,   269,   270,   271,   272,   273,   274,        50,    51,    52,    53,    54,    55,    56,    57,    65,    66,
602       275,   276,   277,   278,   279,   280,   281,   282,   283,   284,        67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
603       285,   286,   287,   288,   289,   290,   291,   292,   293,   294,        77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
604       295,   296,   297,   298,   299,   300,   301        87,    88,    89,    90,    97,    98,    99,   100,   101,   102,
605         103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
606         113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
607          33,    36,    37,    38,    40,    41,    42,    44,    47,    58,
608          59,    60,    62,    63,    64,    91,    92,    93,    94,    95,
609         123,   124,   125,   126,   128,   129,   130,   131,   132,   133,
610         134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
611         144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
612         154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
613         164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
614         174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
615         184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
616         194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
617         204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
618         214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
619         224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
620         234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
621         244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
622         254,   255,    39,    34,    32,    10,    13
623  };  };
624  # endif  # endif
625    
626  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
627  static const unsigned char yyr1[] =  static const unsigned short yyr1[] =
628  {  {
629         0,    47,    48,    48,    48,    49,    49,    49,    49,    50,         0,   227,   228,   228,   229,   229,   229,   229,   230,   230,
630        50,    50,    50,    50,    51,    51,    51,    51,    51,    51,       230,   230,   230,   231,   231,   231,   231,   231,   231,   231,
631        51,    51,    51,    51,    51,    51,    52,    52,    52,    52,       231,   231,   231,   231,   231,   231,   232,   232,   232,   232,
632        52,    52,    52,    52,    52,    52,    52,    52,    52,    52,       232,   232,   233,   233,   233,   233,   233,   233,   234,   234,
633        52,    53,    53,    53,    53,    53,    54,    55,    56,    56,       234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
634        57,    57,    57,    57,    57,    57,    58,    58,    59,    59,       234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
635        60,    61,    62,    63,    64,    64,    65,    66,    67,    68,       234,   235,   235,   235,   235,   235,   235,   236,   236,   236,
636        69,    70,    71,    72,    73,    73,    74,    74,    74,    74,       236,   237,   237,   238,   238,   239,   239,   239,   239,   239,
637        75,    75       239,   239,   239,   239,   240,   240,   241,   241,   242,   242,
638         242,   243,   243,   244,   245,   246,   247,   248,   249,   250,
639         251,   251,   252,   253,   254,   255,   256,   256,   256,   256,
640         257,   257,   258,   258,   259,   259,   259,   260,   260,   261,
641         261,   261,   261,   261,   261,   261,   261,   261,   261,   262,
642         262,   262,   262,   262,   262,   262,   262,   262,   262,   263,
643         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
644         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
645         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
646         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
647         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
648         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
649         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
650         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
651         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
652         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
653         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
654         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
655         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
656         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
657         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
658         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
659         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
660         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
661         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
662         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
663         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
664         263,   263,   263,   263,   263,   263,   263,   263,   264,   264,
665         264,   264,   265,   265,   266,   267,   268,   269,   270,   271,
666         272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
667         282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
668         292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
669         302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
670         312,   313,   314,   315
671  };  };
672    
673  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
674  static const unsigned char yyr2[] =  static const unsigned char yyr2[] =
675  {  {
676         0,     2,     1,     3,     4,     0,     1,     1,     1,     1,         0,     2,     2,     3,     0,     1,     1,     1,     1,     2,
677         2,     2,     2,     2,     3,     3,     3,     3,     3,     3,         2,     2,     2,     3,     3,     3,     3,     3,     3,     5,
678         5,     3,     5,     5,     5,     1,     1,     1,     5,     7,         3,     3,     3,     5,     1,     1,     1,     1,     1,     1,
679         9,     1,     5,     7,     9,     1,     5,     7,     5,     5,         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
680         5,     7,     7,     9,     9,     3,     5,     3,     3,     3,         5,     7,     9,     1,     5,     7,     9,     1,     1,     5,
681         5,     7,     5,     5,     5,     5,     3,     5,     1,     1,         5,     7,     9,     7,     9,     1,     5,     7,     5,     5,
682         1,     5,     3,     1,     1,     1,     1,     1,     1,     1,         5,     7,     9,     7,     9,     3,     3,     5,     3,     5,
683         1,     1,     1,     1,     1,     3,     1,     1,     2,     2,         3,     3,     3,     3,     3,     5,     7,     5,     9,     5,
684         1,     2         5,     5,     5,     5,     3,     5,     1,     1,     1,     1,
685           1,     5,     7,     3,     1,     1,     1,     1,     1,     1,
686           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
687           1,     1,     1,     2,     3,     4,     4,     1,     2,     1,
688           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
689           2,     2,     2,     2,     2,     2,     2,     2,     2,     1,
690           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
691           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
692           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
693           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
694           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
695           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
696           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
697           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
698           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
699           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
700           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
701           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
702           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
703           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
704           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
705           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
706           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
707           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
708           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
709           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
710           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
711           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
712           2,     2,     3,     3,     1,     1,     1,     3,     3,     6,
713           7,     4,     4,     9,     6,     3,     9,    11,     7,    17,
714          30,     8,     4,    11,    12,    11,    10,     6,    29,    20,
715          19,    29,    19,    30,    20,    17,    28,    27,    25,    18,
716          17,    27,    17,    15,    18,    15,    10,     6,     5,    10,
717           5,    13,     4,     4
718  };  };
719    
720  /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state  /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
721     STATE-NUM when YYTABLE doesn't specify something else to do.  Zero     STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
722     means the default is an error.  */     means the default is an error.  */
723  static const unsigned char yydefact[] =  static const unsigned short yydefact[] =
724  {  {
725         0,     8,     9,     0,     0,     0,     0,     0,     0,     0,         0,     7,     8,     0,     0,     0,     0,     0,     0,     0,
726         0,     0,     0,     0,    25,     0,     2,     6,     7,     0,         0,     0,     0,     0,     5,     6,     0,     0,     0,     0,
727           0,     0,     0,     0,     0,     0,    24,    25,     0,     0,
728           0,     0,     0,     0,     0,     0,     0,     0,     0,     1,
729         365,   366,     2,     0,     9,   217,   211,   209,   210,   119,
730         120,   121,   122,   123,   124,   125,   126,   127,   128,   139,
731         140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
732         150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
733         160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
734         170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
735         180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
736         190,   201,   203,   204,   205,   206,   207,   208,   212,   213,
737         214,   215,   216,   218,   219,   220,   221,   222,   223,   224,
738         225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
739         235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
740         245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
741         255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
742         265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
743         275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
744         285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
745         295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
746         305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
747         315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
748         325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
749         335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
750         345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
751         355,   356,   357,   364,    12,   129,    11,   112,    10,     0,
752           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
753         367,     0,     0,   368,     0,     0,     0,     0,     0,   375,
754           0,     0,     3,   119,   120,   121,   122,   123,   124,   125,
755         126,   127,   128,   130,   117,   131,   132,   133,   134,   135,
756         136,   137,   138,   202,   191,   192,   193,   194,   195,   196,
757         197,   198,   199,   200,   113,     0,    13,     0,     0,     0,
758           0,    14,     0,    38,    43,    55,     0,    47,     0,     0,
759           0,     0,     0,    39,     0,    48,     0,     0,     0,     0,
760           0,     0,    15,     0,     0,    16,     0,     0,     0,     0,
761           0,    17,    90,    88,    89,     0,    18,     0,     0,     0,
762           0,     0,     0,    20,     0,     0,     0,     0,     0,     0,
763           0,     0,     0,     0,     0,    21,    26,    30,    29,    28,
764          27,    31,    22,    32,    36,    35,    34,    33,    37,     0,
765           0,     0,   371,   372,   413,     0,     0,     0,     0,   118,
766           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
767           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
768           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
769           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
770           0,     0,     0,     0,     0,     0,     0,     0,     0,   410,
771           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
772           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
773           0,     0,     0,     0,     0,    68,    70,   120,   121,   122,
774         123,   124,   125,   126,   127,   128,    71,    72,     0,     0,
775           0,     0,     0,     0,     0,    73,     0,   105,     0,    74,
776           0,   104,    19,   102,     0,     0,     0,     0,     0,     0,
777          65,     0,     0,     0,     0,     0,     0,     0,     0,     0,
778           0,     0,     0,     0,    66,   111,   110,     0,     0,     0,
779           0,     0,    23,   369,     0,   374,     0,     0,     0,     0,
780           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
781         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
782         1,     0,     0,    80,    12,    11,    10,    13,    14,     0,         0,     0,     0,     0,     0,     0,     0,     0,   359,     0,
783        26,    27,    35,     0,     0,     0,     0,    31,     0,     0,       358,     0,     0,     0,     0,     0,   412,     0,     0,     0,
784        15,     0,    16,     0,    17,    60,    18,     0,     0,    19,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
785         0,     0,     0,     0,    21,     0,     0,     0,     3,     0,         0,     0,     0,     0,     0,   382,     0,     0,     0,   370,
786        81,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,    56,     0,
787         0,     0,     0,     0,     0,     0,     0,     0,     0,     4,         0,     0,    86,    87,    58,    59,    60,    49,     0,    44,
788         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,    50,     0,    40,     0,     0,     0,    67,
789         0,    47,    77,    48,     0,    74,    76,    49,     0,    72,         0,    69,     0,     0,     0,     0,     0,   362,   361,   360,
790        66,    20,     0,     0,     0,     0,     0,     0,    45,     0,       363,     0,   103,     0,    93,     0,     0,     0,     0,     0,
791         0,    68,    22,    23,    71,    24,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
792         0,     0,     0,     0,     0,     0,     0,     0,    79,    78,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
793         0,     0,     0,     0,     0,     0,     0,     0,     0,    36,         0,     0,     0,   387,     0,     0,     0,     0,     0,     0,
794        58,    59,     0,    38,    39,    40,     0,     0,    32,    28,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
795         0,    46,     0,    77,     0,    75,    62,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
796         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
797         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,   376,     0,   378,
798         0,    37,    33,     0,    29,     0,    56,    61,    69,     0,         0,     0,   378,     0,     0,     0,    57,    45,     0,    53,
799        50,    52,    73,    70,    53,    54,    63,    64,    65,    55,         0,    41,    51,     0,     0,     0,   209,   210,    84,   106,
800         0,    41,    42,     0,     0,     0,     0,     0,     0,    34,       109,     0,   117,   108,   107,     0,     0,     0,     0,     0,
801        30,    57,    51,    43,    44        91,     0,     0,     0,     0,     0,     0,    75,    94,     0,
802          95,    77,    96,    79,    80,    97,    81,    98,    82,    99,
803           0,     0,     0,    83,   100,   101,    61,     0,    63,     0,
804           0,     0,     0,     0,     0,     0,     0,   381,     0,     0,
805           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
806           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
807         407,     0,     0,     0,     0,     0,     0,     0,     0,   377,
808           0,     0,     0,   408,     0,    46,    54,    52,    42,     0,
809           0,    85,     0,     0,   114,     0,     0,     0,     0,    92,
810           0,     0,     0,     0,    76,     0,    62,    64,     0,     0,
811           0,     0,     0,     0,     0,     0,     0,     0,   115,   116,
812           0,     0,   386,     0,     0,     0,     0,     0,     0,     0,
813           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
814           0,     0,     0,   373,     0,     0,     0,     0,    78,   383,
815           0,     0,   385,     0,     0,     0,     0,     0,     0,     0,
816           0,     0,     0,     0,     0,     0,     0,     0,   406,     0,
817         384,     0,     0,     0,     0,     0,     0,     0,     0,     0,
818           0,     0,     0,     0,     0,     0,     0,     0,   411,     0,
819           0,     0,     0,     0,     0,     0,     0,   409,     0,     0,
820           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
821           0,     0,     0,     0,     0,     0,     0,     0,   403,     0,
822           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
823           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
824           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
825           0,     0,     0,     0,     0,     0,   379,     0,   400,   402,
826           0,     0,   400,     0,     0,     0,     0,     0,     0,     0,
827           0,   403,   405,     0,     0,     0,     0,     0,   399,     0,
828           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
829         390,   392,     0,     0,     0,     0,   390,     0,     0,     0,
830           0,     0,   395,     0,   394,   389,     0,     0,     0,     0,
831           0,     0,     0,     0,     0,   404,     0,     0,     0,     0,
832           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
833           0,     0,     0,   394,     0,     0,     0,     0,     0,     0,
834           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
835           0,     0,     0,     0,     0,   398,     0,     0,     0,     0,
836           0,     0,     0,     0,     0,     0,     0,     0,     0,   401,
837           0,   397,     0,     0,     0,   396,     0,     0,   391,     0,
838         388,   393,   380
839  };  };
840    
841  /* YYDEFGOTO[NTERM-NUM]. */  /* YYDEFGOTO[NTERM-NUM]. */
842  static const short yydefgoto[] =  static const short yydefgoto[] =
843  {  {
844        -1,    15,    16,    17,    18,    50,    64,    52,    54,    59,        -1,    12,    13,    14,    15,   385,   392,   331,   373,   352,
845       118,   161,   152,    56,   103,   107,   205,   209,   111,   164,       355,   366,   520,   639,   621,   361,   505,   509,   767,   769,
846       122,   199,   204,   123,   108,   201,   104,   105,   106       771,   774,   776,   778,   783,   512,   651,   510,   506,   748,
847         534,   749,   750,   751,   265,   513,   267,   579,   754,   696,
848          42,    43,    16,    17,    18,    19,    20,    21,   508,    22,
849          23,    24,    25,   326,   333,   334,   335,   387,   388,   389,
850         390,   367,   336,   375,   337,   338,   339,   340,   341,   342,
851         523,   343,   377,   344,   345,   346,   347,   348,   349,   526,
852         527,   528,   529,   622,   623,    26,   391,   379,    27
853  };  };
854    
855  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
856     STATE-NUM.  */     STATE-NUM.  */
857  #define YYPACT_NINF -86  #define YYPACT_NINF -699
858  static const short yypact[] =  static const short yypact[] =
859  {  {
860         3,   -86,   -86,    21,    25,    43,    67,    86,    91,    96,        54,  -699,  -699,    33,    16,    75,    83,    -2,    24,   107,
861       105,   106,   108,   109,   -86,    28,   -86,    84,   -86,   -14,         0,    45,   132,  -197,  1563,  -699,  -137,  -137,  -137,  -137,
862         7,    80,    85,    83,     5,    87,    22,    99,   100,   102,      -137,  -137,  -137,  -137,  -137,  -137,  -137,  -699,   114,   170,
863       -86,     3,   115,   -86,   -86,   -86,   -86,   123,   -86,   121,       182,   197,   183,   229,   222,    23,   213,   234,   218,  -699,
864       -86,   -86,   -86,   122,   128,   129,   130,   -86,   131,   132,      -699,  -699,  -699,    31,  -699,  -699,  -699,  -699,  -699,  -699,
865       -86,   133,   -86,   134,   -86,   -86,   -86,   135,   136,   -86,       214,   214,   214,   214,   214,   214,   214,   214,   214,  -699,
866       137,   138,   139,   140,   -86,   141,   143,   144,   -86,     3,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
867       -86,   -23,   101,   124,   125,   126,   127,   142,   148,   151,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
868        45,   148,   152,    38,   153,   154,   155,    45,   152,   -86,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
869       157,   158,   159,   160,   161,   162,   166,   167,   168,   169,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
870        23,   -86,   -86,   -86,   170,    93,   123,   -86,   171,   123,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
871       -86,   -86,   172,   174,   175,   176,   177,   178,   -86,   180,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
872       181,   -86,   -86,   -86,    93,   -86,   152,    40,   152,   152,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
873       148,   183,   184,   185,   148,   148,   148,    98,   -86,   123,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
874       152,   152,   152,   152,   152,   152,   152,   186,   148,   -86,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
875       -86,   -86,   187,   -86,   -86,   -86,   192,   193,   -86,   123,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
876        72,   194,    73,   195,   196,    93,   -86,   197,   199,   202,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
877       203,   204,   205,   206,    52,   152,   208,   209,   148,   148,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
878        45,   152,   210,   211,    45,   212,   148,   104,   148,    45,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
879        45,   -86,   -86,   213,    88,    74,    93,   -86,   -86,   214,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
880       -86,   -86,    93,   -86,   -86,   -86,   123,   -86,   -86,   -86,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
881        53,    93,    93,   148,   148,    45,   210,    45,    45,   123,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
882       194,    93,   -86,    93,    93      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
883        -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
884        -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
885        -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
886        -699,  -699,  -699,  -699,  2228,  -699,  -699,  -699,  -699,   237,
887         190,    76,    76,   103,    30,   237,   191,    65,    65,   237,
888        -699,   240,   223,  -699,   224,   238,   225,   231,   242,  -699,
889         230,   227,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
890        -699,  -699,  -699,   214,  -699,   214,   214,   214,   214,   214,
891         214,   214,   214,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
892        -699,  -699,  -699,  -699,  -699,   243,  -699,   137,   244,   236,
893         245,  -699,  -137,  -699,  -699,  -699,  -137,  -699,  -137,  -137,
894        -137,  -137,  -137,  -699,  -137,  -699,  -137,  -137,  -137,  -137,
895         232,   246,  -699,  -137,  -137,  -699,  -137,  -137,   235,   249,
896         250,  -699,  -699,  -699,  -699,   247,  -699,  -137,  -137,  -137,
897         239,   255,   256,  -699,  -137,  -137,  -137,  -137,  -137,  -137,
898         248,   252,   258,   251,   253,  -699,  -699,  -699,  -699,  -699,
899        -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -137,
900         254,   257,  -699,  -699,  -699,   264,   267,   261,   268,  -699,
901         271,   269,   276,   287,   282,   286,    60,   283,   283,   283,
902         283,   283,   283,   283,   283,   283,   283,   283,   289,   290,
903        2228,  2228,   228,   228,   291,   295,   293,   272,   -16,  2228,
904         228,   294,   292,   297,    19,   228,   228,   228,   228,  2447,
905         296,   298,   280,   288,   299,   228,   300,   301,   316,  -699,
906         304,   307,   309,   320,   321,   318,   322,   324,  -137,  -137,
907        -137,  -137,  -137,  -137,  -137,  -137,  -137,  -137,  -137,  -137,
908        -137,  -137,  -137,   325,   326,  1785,  1785,   214,   214,   214,
909         214,   214,   214,   214,   214,   214,  -699,  -699,   327,   323,
910         332,   331,   328,  1785,  1785,  -699,  -137,  -699,  -137,  -699,
911        -137,  2228,  -699,  -699,   333,   337,   344,   334,   345,   341,
912        -699,  -137,  -137,  -137,  -137,  -137,  -137,  -137,  -137,  -137,
913        -137,  -137,  -137,  -137,  -699,  2228,  -699,   351,   343,   356,
914         355,   358,  -699,  -699,   338,  -699,   353,   361,   352,   350,
915         357,   354,   359,   302,   228,    17,   228,   228,  2228,   228,
916        2228,  2228,   228,   228,   228,   228,  2228,  2228,   228,   360,
917         305,  2228,  2228,   363,   362,   308,   349,   365,  2228,  1119,
918        -699,  1341,   228,   -35,   228,   366,  -699,   310,   367,   368,
919         371,   228,   228,   228,   228,   228,   228,   228,   228,   228,
920        2228,   228,  2228,   228,   379,  -699,   380,   385,   382,  -699,
921         386,   372,   384,   319,   391,   388,   389,   387,  -699,   370,
922         392,  -137,  -699,  -699,  -699,  -699,  -699,  -699,  1785,  2228,
923        -137,  -137,  -137,  -699,  1785,  2228,  -137,   335,   390,  -137,
924        2666,  -137,   336,   393,   394,   383,   339,  -699,  2228,  -699,
925        -699,  -137,  -699,  -137,  -699,   340,   396,   397,   400,   398,
926        -137,  -137,  -137,  -137,  -137,  -137,  -137,  -137,  -137,  2885,
927        -137,  3104,  -137,   395,   408,   409,   364,   405,   412,   411,
928         410,   422,   414,  -699,   413,   415,   416,   228,  2228,   228,
929         228,   228,  2228,   228,   417,   419,  2228,  2007,   423,   418,
930         440,   424,   442,   228,   228,   443,   445,   454,   399,   457,
931         228,   228,  2228,   228,   228,   228,  2228,   228,   140,  2007,
932        2228,  2007,  2228,   401,   460,   404,   425,  -699,   427,  -699,
933         459,   466,   381,   489,   426,   479,  -699,  1785,  -137,  -699,
934        -137,  1785,  -699,   485,   491,  3323,   214,   214,  -699,  2228,
935        -699,   102,   -21,  -699,  -699,   487,   381,   493,   505,   496,
936        -699,  -137,   494,   498,   444,   503,   512,  -699,  -699,  -137,
937        -699,  -699,  2228,  -699,  -699,  -699,  -699,  -699,  -699,  2228,
938        -137,   214,   214,  -699,  -699,  -699,  -699,  3542,  -699,  3761,
939         513,   517,   518,   507,   515,   504,   520,  -699,   502,   508,
940         521,  2228,  2228,  2228,  2228,   509,   514,  2007,   169,   185,
941         214,   510,   519,   522,   534,   228,   523,   524,   526,   525,
942        -699,   228,   228,  2007,  2007,   533,   530,   531,   527,  -699,
943         537,   475,   529,  -699,   540,  -137,  2228,  2228,  -137,   539,
944         536,  -699,   214,   214,   214,   541,   538,   542,   558,  -699,
945         544,   543,   545,   548,  -699,  -137,  -699,  -699,   549,   560,
946         546,   554,   550,   106,   497,   553,   555,   506,   214,   214,
947         556,   511,  -699,   562,   559,   516,   561,   563,   228,   567,
948         570,   568,   566,   569,   572,   573,   581,    87,   574,   571,
949         590,   575,   592,  -699,   577,   101,   582,   580,  -699,  -699,
950         583,   586,  -699,   547,   604,   602,   606,     4,   596,   605,
951         551,   608,   557,   609,   576,   610,   601,   597,   578,   598,
952        -699,   194,   611,   612,   616,   618,   617,   624,   622,   626,
953         623,   640,   625,   196,   627,   628,   631,    40,  -699,   620,
954          58,   637,   639,   584,   645,   633,   641,  -699,   652,   654,
955         659,   656,   660,   662,   663,   649,   599,   666,   661,   650,
956         676,   667,   669,   613,   688,   672,   692,   691,   629,   675,
957         695,   677,   697,   701,   681,   702,   629,    61,   703,   689,
958         690,   696,   704,   693,   699,   698,   707,   711,   700,   706,
959         714,   720,   717,   722,   715,   719,   728,   729,   713,   727,
960         716,   739,   731,   743,   742,   732,  -699,   734,   733,   684,
961         747,   754,  -699,   755,   733,   745,   758,   694,   761,   748,
962         749,  -699,  -699,   760,   762,   750,   751,   752,  -699,   753,
963         756,   765,   767,   770,   774,   769,   772,   782,   783,   777,
964         775,   723,   784,   778,   798,   800,  -699,   775,   790,   735,
965         804,   794,  -699,   797,   738,  -699,   795,   791,   741,   796,
966         805,   738,   803,   802,   816,  -699,   806,   822,   808,   820,
967         824,   825,   828,   830,   821,   831,   817,   764,   819,   827,
968         814,   826,   832,  -699,   833,   842,   844,   837,   845,   847,
969         848,   849,   852,   843,   839,   840,   835,   841,   850,   853,
970         851,   860,   859,   864,   865,  -699,   869,   870,   871,   862,
971         858,   867,   868,   872,   873,   874,   882,   883,   876,  -699,
972         885,  -699,   888,   878,   880,  -699,   881,   886,  -699,   884,
973        -699,  -699,  -699
974  };  };
975    
976  /* YYPGOTO[NTERM-NUM].  */  /* YYPGOTO[NTERM-NUM].  */
977  static const yysigned_char yypgoto[] =  static const short yypgoto[] =
978  {  {
979       -86,   -86,   -30,   -86,   -86,   -86,   -86,   -86,   -86,   -86,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
980       -86,   -22,   -86,   -86,   -86,   -86,   -86,   -86,   -75,   -86,      -699,  -699,  -699,  -569,  -699,  -699,  -699,  -699,  -586,    97,
981       -86,     2,   -86,   -86,    92,   -86,   -86,   -85,   -17      -699,   100,    46,  -699,  -699,  -454,   219,   369,   342,  -698,
982        -699,   317,   208,    13,   -10,   -14,   266,   428,  -413,   -12,
983         887,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
984        -699,  -699,  -699,   -24,  -699,  -699,  -246,  -258,  -245,  -244,
985        -243,  -699,   655,  -699,   658,  -255,  -699,  -699,   657,   484,
986        -699,  -699,  -699,   664,   665,  -253,  -699,  -699,   490,  -699,
987        -699,  -699,  -699,  -699,  -699,  -699,   668,  -699,  -699
988  };  };
989    
990  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
991     positive, shift that token.  If negative, reduce the rule which     positive, shift that token.  If negative, reduce the rule which
992     number is the opposite.  If zero, do what YYDEFACT says.     number is the opposite.  If zero, do what YYDEFACT says.
993     If YYTABLE_NINF, syntax error.  */     If YYTABLE_NINF, syntax error.  */
994  #define YYTABLE_NINF -68  #define YYTABLE_NINF -130
995  static const short yytable[] =  static const short yytable[] =
996  {  {
997        37,    68,   124,    -5,     1,    90,    91,    92,    93,    38,       266,   542,   268,   641,   269,   270,   271,   272,   273,   274,
998        -5,    -5,     2,   125,     3,     4,     5,     6,     7,     8,       275,   276,   277,   278,   279,   502,   353,   356,   354,   357,
999         9,    10,    11,    12,    13,    14,    70,    19,    30,   136,       394,   786,    36,   788,    32,   507,   925,   362,    40,    41,
1000        39,    20,    40,    41,    42,    31,    32,    57,    58,    89,        33,   386,   393,   395,   396,   397,   619,   517,    37,   926,
1001        43,    44,    45,    46,    47,    61,    48,    49,    33,    21,       304,   304,   304,   304,   304,   304,   304,   304,   304,   518,
1002       102,   149,   165,   153,   154,    70,    70,    62,   189,   217,       620,    29,   329,   287,    28,     1,   365,     2,   519,   288,
1003        63,   100,   190,   218,   109,   166,   167,   168,   169,   170,       957,   911,    34,   303,   305,   306,   307,   308,   309,   310,
1004       171,   172,   112,    22,   113,    70,    70,    70,   178,   114,       311,   312,     3,   958,     4,     5,    38,   959,     6,   380,
1005       115,   116,   117,   180,   215,   150,   151,    33,   139,    34,       961,   997,   948,     7,   380,   359,   381,   263,     8,     9,
1006        35,    70,    23,    36,   214,   196,    33,    24,   138,   202,        10,   381,    11,   962,   350,   382,   383,    30,   998,   384,
1007       191,    33,    25,   163,   211,   212,   197,   139,   207,   208,       618,   383,   624,   625,   384,    31,   351,   810,   907,   841,
1008        60,    26,    27,   109,    28,    29,    51,   159,   160,   162,       293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
1009        55,    53,    69,    65,    66,    67,    70,    71,    72,    94,       908,   358,   915,   359,   884,   856,   857,   773,   885,    35,
1010       221,   174,   223,   224,    73,    74,    75,    76,    77,    78,       654,   780,    39,   360,   916,   280,   886,   660,   661,   662,
1011        79,    80,    81,    82,    83,    84,    85,    86,   139,    87,       663,   664,   665,   666,   667,   668,   781,   782,   293,   487,
1012        88,    33,    95,    96,    97,    98,   101,   110,   119,   120,       488,   489,   490,   491,   492,   493,   494,   495,   468,   472,
1013       121,   194,   195,   126,   127,   128,   129,   130,   131,   206,       473,   474,   475,   476,   477,   478,   479,   480,   481,   482,
1014        99,   210,   132,   133,   134,   135,   137,   140,   141,   139,       507,   469,   470,   471,   842,   411,   412,   293,   294,   295,
1015       142,   143,   144,   145,   146,   139,   147,   148,   156,   157,       296,   297,   298,   299,   300,   301,   302,   503,   504,   521,
1016       158,   173,   220,   175,   139,   139,   219,   162,   176,   177,       843,   524,   281,   293,   294,   295,   296,   297,   298,   299,
1017       179,   -67,   181,   182,   139,   183,   139,   139,   184,   185,       300,   301,   302,  -129,  -129,  -129,   503,   504,   327,   370,
1018       186,   187,   188,   192,   193,   198,   200,   203,   222,   213,       328,   325,   329,   371,   939,   940,   952,   953,   282,   284,
1019       216,     0,   155       330,   372,   293,   294,   295,   296,   297,   298,   299,   300,
1020         301,   302,   835,   736,   283,   838,   293,   487,   488,   489,
1021         490,   491,   492,   493,   494,   495,   332,   285,   286,   760,
1022         289,   369,   374,   290,   291,   399,    40,   325,   400,   403,
1023         401,   402,   404,   405,   406,   408,   407,   414,   410,   413,
1024         428,   415,   429,   434,   435,   442,   436,   441,   437,    -4,
1025          -4,   460,   443,   451,   452,   454,   450,   461,   453,   462,
1026         463,   456,   457,   409,   464,   409,   409,   409,   409,   409,
1027         409,   409,   409,   458,   459,   465,   466,   467,   501,   381,
1028         483,   484,   498,   499,   500,   514,   539,   515,   516,   537,
1029         416,   538,   543,   540,   417,   541,   418,   419,   420,   421,
1030         422,   264,   423,   544,   424,   425,   426,   427,   545,   546,
1031         548,   430,   431,   547,   432,   433,   549,   550,   552,   551,
1032         553,   569,   570,   573,   574,   438,   439,   440,   575,   585,
1033         577,   849,   444,   445,   446,   447,   448,   449,   576,   586,
1034         587,   589,   588,   590,   604,   605,   606,   607,   608,   610,
1035         609,   611,   613,   612,   645,   615,   614,   455,   657,   658,
1036         616,   617,   637,   643,   638,   642,   646,   644,   655,   656,
1037         659,   673,   674,   675,   676,   677,   679,   678,   680,   681,
1038         682,   683,   685,   684,   686,   699,   695,   797,   496,   497,
1039         700,   701,   706,   707,   694,   698,   708,   727,   702,   705,
1040         723,   530,   531,   532,   533,   536,   709,   724,   728,   725,
1041         729,   731,   730,   732,   733,   793,   794,   756,   799,   743,
1042         744,   735,   734,   726,   758,   755,   554,   555,   556,   557,
1043         558,   559,   560,   561,   562,   563,   564,   565,   566,   567,
1044         568,   757,   759,   571,   572,   762,   763,   304,   304,   304,
1045         304,   304,   304,   304,   304,   304,   764,   766,   765,   791,
1046         790,   580,   580,   792,   582,   796,   583,   795,   584,   800,
1047         303,   305,   306,   307,   308,   309,   310,   311,   312,   591,
1048         592,   593,   594,   595,   596,   597,   598,   599,   600,   601,
1049         602,   603,   798,   805,   806,   811,   812,   813,   814,   819,
1050         324,   817,   816,   818,   820,   826,   825,   829,   827,   828,
1051         832,   830,   831,   834,   833,   627,   839,   845,   630,   631,
1052         632,   633,   840,   847,   636,   848,   853,   846,   852,   858,
1053         850,   859,   851,   860,   863,   861,   864,   649,   652,   649,
1054         862,   865,   866,   867,   870,   871,   873,   874,   879,   872,
1055         875,   877,   880,   876,   881,   882,   887,   670,   883,   672,
1056         888,   893,   909,   889,   891,   890,   899,   894,   896,   901,
1057         892,   897,   900,   902,   905,   895,   903,   906,   910,   687,
1058         904,   911,   912,   913,   914,   917,   688,   918,   689,   690,
1059         691,   919,   692,   920,   693,   922,   923,   924,   927,   928,
1060         930,   932,   934,   935,   938,   936,   921,   941,   942,   703,
1061         929,   704,   943,   945,   947,   960,   931,   948,   710,   711,
1062         712,   713,   714,   715,   716,   717,   718,   944,   720,   946,
1063         722,   950,   949,   955,   951,   933,   954,   937,   956,   963,
1064         964,   966,   967,   965,   969,   738,   739,   740,   968,   742,
1065         970,   971,   972,   753,   974,   973,   976,   752,   977,   975,
1066         652,   978,   980,   979,   981,   983,   768,   770,   986,   768,
1067         775,   777,   984,   768,   785,   753,   982,   753,   752,   752,
1068         985,   752,   987,   988,   990,   991,   992,   993,   989,   994,
1069         995,   999,   996,  1001,  1000,   801,   802,  1002,   803,   804,
1070        1003,  1005,  1004,  1008,  1006,  1009,   304,   304,  1007,  1010,
1071        1011,   409,  1012,  1013,  1014,  1016,  1015,   485,   486,   815,
1072        1017,   324,   324,  1021,  1018,  1019,   511,   821,  1020,   808,
1073         809,  1022,  1023,  1024,  1025,  1030,   535,  1027,   822,  1028,
1074        1026,   304,   304,  1029,  1031,  1032,  1033,   324,  1034,  1036,
1075        1038,  1037,  1039,  1035,  1040,  1041,  1044,  1046,  1042,  1047,
1076        1043,  1045,  1048,   753,   808,   809,  1049,   752,   409,   409,
1077         304,   324,  1050,  1051,  1052,  1053,  1054,   770,   775,   753,
1078         753,  1055,  1056,   752,   752,  1058,  1059,  1057,  1060,  1061,
1079         578,   578,  1063,   844,  1062,  1064,  1065,  1066,  1067,  1068,
1080        1069,  1070,   304,   304,   409,  1071,  1072,  1073,  1074,  1075,
1081        1076,  1078,  1079,   878,   324,  1077,  1081,  1080,  1082,  1084,
1082        1083,  1089,  1085,  1086,  1087,   868,   869,  1088,   409,   409,
1083        1093,  1090,  1091,  1095,   777,  1094,  1098,  1096,  1092,  1097,
1084        1100,  1099,  1104,  1101,  1102,   511,  1105,   628,   629,  1103,
1085        1106,  1108,  1109,   634,   635,  1110,  1111,  1112,   640,   640,
1086        1107,  1113,  1114,  1115,   324,   324,   648,  1117,   648,  1116,
1087         324,   324,  1118,  1119,  1123,  1124,   324,  1126,  1121,  1120,
1088        1127,  1122,  1125,  1128,   324,  1129,  1130,   669,   854,   671,
1089        1132,  1131,   855,   761,   898,   653,   784,   626,   522,   368,
1090         292,   363,   581,   376,   525,   324,     0,   324,   364,     0,
1091         378,     0,     0,     0,     0,     0,   398,     0,     0,     0,
1092           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1093           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1094           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1095           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1096           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1097           0,     0,     0,   324,     0,   737,     0,   324,     0,   741,
1098           0,   324,     0,   745,     0,   324,     0,     0,     0,     0,
1099           0,     0,     0,     0,     0,     0,     0,     0,     0,   772,
1100           0,     0,     0,   779,     0,     0,     0,   787,   324,   789,
1101           0,     0,     0,     0,     0,   324,     0,     0,     0,     0,
1102           0,     0,     0,   324,     0,   324,     0,     0,     0,     0,
1103           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1104           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1105           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1106           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1107           0,     0,   324,   324,     0,     0,     0,     0,     0,     0,
1108           0,     0,     0,     0,     0,     0,     0,     0,   640,   836,
1109         837,   640,   313,    45,    46,    47,    48,   314,   315,   316,
1110         317,   318,   319,   320,   321,   322,   323,    59,    60,    61,
1111          62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1112          72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1113          82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1114          92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1115         102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1116         112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1117         122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1118         132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
1119         142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
1120         152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
1121         162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
1122         172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
1123         182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
1124         192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
1125         202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
1126         212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
1127         222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
1128         232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
1129         242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
1130         252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
1131         262,   647,     0,   263,   313,    45,    46,    47,    48,   314,
1132         315,   316,   317,   318,   319,   320,   321,   322,   323,    59,
1133          60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1134          70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1135          80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1136          90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1137         100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1138         110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
1139         120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
1140         130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
1141         140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
1142         150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
1143         160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
1144         170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
1145         180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1146         190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1147         200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1148         210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1149         220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
1150         230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
1151         240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
1152         250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
1153         260,   261,   262,     0,   650,   263,    44,    45,    46,    47,
1154          48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1155          58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1156          68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1157          78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1158          88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1159          98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
1160         108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
1161         118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
1162         128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
1163         138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
1164         148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
1165         158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
1166         168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
1167         178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
1168         188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
1169         198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
1170         208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
1171         218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
1172         228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
1173         238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
1174         248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
1175         258,   259,   260,   261,   262,     0,     0,   263,   313,    45,
1176          46,    47,    48,   314,   315,   316,   317,   318,   319,   320,
1177         321,   322,   323,    59,    60,    61,    62,    63,    64,    65,
1178          66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1179          76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1180          86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1181          96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1182         106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1183         116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1184         126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1185         136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1186         146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1187         156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
1188         166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1189         176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1190         186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1191         196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1192         206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1193         216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
1194         226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
1195         236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
1196         246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
1197         256,   257,   258,   259,   260,   261,   262,     0,     0,   263,
1198         313,    45,    46,   746,   747,    49,    50,    51,    52,    53,
1199          54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1200          64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1201          74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1202          84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1203          94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1204         104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1205         114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1206         124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1207         134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1208         144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1209         154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
1210         164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
1211         174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
1212         184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
1213         194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1214         204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
1215         214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
1216         224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
1217         234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
1218         244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1219         254,   255,   256,   257,   258,   259,   260,   261,   262,   503,
1220         504,   313,    45,    46,    47,    48,   314,   315,   316,   317,
1221         318,   319,   320,   321,   322,   323,    59,    60,    61,    62,
1222          63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1223          73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1224          83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1225          93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1226         103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1227         113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
1228         123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
1229         133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
1230         143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
1231         153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
1232         163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
1233         173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
1234         183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
1235         193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
1236         203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
1237         213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
1238         223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
1239         233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
1240         243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
1241         253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
1242         313,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1243          54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1244          64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1245          74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1246          84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1247          94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1248         104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1249         114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1250         124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1251         134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1252         144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1253         154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
1254         164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
1255         174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
1256         184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
1257         194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1258         204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
1259         214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
1260         224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
1261         234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
1262         244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1263         254,   255,   256,   257,   258,   259,   260,   261,   262,   313,
1264         697,    46,    47,    48,   314,   315,   316,   317,   318,   319,
1265         320,   321,   322,   323,    59,    60,    61,    62,    63,    64,
1266          65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1267          75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1268          85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1269          95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1270         105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1271         115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1272         125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
1273         135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1274         145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
1275         155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
1276         165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
1277         175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1278         185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1279         195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1280         205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1281         215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1282         225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1283         235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1284         245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1285         255,   256,   257,   258,   259,   260,   261,   262,   313,   719,
1286          46,    47,    48,   314,   315,   316,   317,   318,   319,   320,
1287         321,   322,   323,    59,    60,    61,    62,    63,    64,    65,
1288          66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1289          76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1290          86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1291          96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1292         106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1293         116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1294         126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1295         136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1296         146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1297         156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
1298         166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1299         176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1300         186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1301         196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1302         206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1303         216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
1304         226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
1305         236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
1306         246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
1307         256,   257,   258,   259,   260,   261,   262,   313,   721,    46,
1308          47,    48,   314,   315,   316,   317,   318,   319,   320,   321,
1309         322,   323,    59,    60,    61,    62,    63,    64,    65,    66,
1310          67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1311          77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1312          87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1313          97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1314         107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1315         117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1316         127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
1317         137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
1318         147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
1319         157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
1320         167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1321         177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1322         187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1323         197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1324         207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
1325         217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
1326         227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
1327         237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
1328         247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
1329         257,   258,   259,   260,   261,   262,   313,   807,    46,    47,
1330          48,   314,   315,   316,   317,   318,   319,   320,   321,   322,
1331         323,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1332          68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1333          78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1334          88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1335          98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
1336         108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
1337         118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
1338         128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
1339         138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
1340         148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
1341         158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
1342         168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
1343         178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
1344         188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
1345         198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
1346         208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
1347         218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
1348         228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
1349         238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
1350         248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
1351         258,   259,   260,   261,   262,   313,   823,    46,    47,    48,
1352         314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
1353          59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1354          69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1355          79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1356          89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1357          99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1358         109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1359         119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1360         129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1361         139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1362         149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1363         159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
1364         169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1365         179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1366         189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1367         199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1368         209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
1369         219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
1370         229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
1371         239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
1372         249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
1373         259,   260,   261,   262,   313,   824,    46,    47,    48,   314,
1374         315,   316,   317,   318,   319,   320,   321,   322,   323,    59,
1375          60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1376          70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1377          80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1378          90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1379         100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1380         110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
1381         120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
1382         130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
1383         140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
1384         150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
1385         160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
1386         170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
1387         180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1388         190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1389         200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1390         210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1391         220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
1392         230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
1393         240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
1394         250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
1395         260,   261,   262
1396  };  };
1397    
1398  static const short yycheck[] =  static const short yycheck[] =
1399  {  {
1400        17,    31,    87,     0,     1,    28,    29,    30,    31,    23,        14,   455,    14,   572,    16,    17,    18,    19,    20,    21,
1401         7,     8,     9,    88,    11,    12,    13,    14,    15,    16,        22,    23,    24,    25,    26,    31,   271,   272,   271,   272,
1402        17,    18,    19,    20,    21,    22,     3,     6,     0,     6,       278,   719,    22,   721,    26,   438,    22,   273,   225,   226,
1403        23,     6,    25,    26,    27,     7,     8,    32,    33,    69,        32,   277,   278,   278,   278,   278,    19,    18,    38,    35,
1404        33,    34,    35,    36,    37,    23,    39,    40,     3,     6,        50,    51,    52,    53,    54,    55,    56,    57,    58,    30,
1405         5,   126,   137,   128,   129,     3,     3,    35,     6,     6,        33,    35,    22,    30,    21,     1,    26,     3,    39,    36,
1406        38,    78,    10,    10,    81,   140,   141,   142,   143,   144,        20,    21,    38,    50,    51,    52,    53,    54,    55,    56,
1407       145,   146,    34,     6,    36,     3,     3,     3,     6,    41,        57,    58,    18,    33,    20,    21,    31,    37,    24,    19,
1408        42,    43,    44,    10,    10,    45,    46,     3,   105,     5,        22,    20,    21,    29,    19,    20,    26,   224,    34,    35,
1409         6,     3,     6,     9,     6,   180,     3,     6,     5,   184,        36,    26,    38,    35,    18,    30,    36,    22,    37,    39,
1410       175,     3,     6,     5,   189,   190,   181,   124,     4,     5,       554,    36,   556,   557,    39,    22,    30,     5,    21,   807,
1411        23,     6,     6,   130,     6,     6,    36,   134,   135,   136,         8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1412        37,    36,     7,    24,    24,    23,     3,     6,     6,    28,        33,    18,    21,    20,    18,   823,   824,   713,    22,    22,
1413       215,   148,   217,   218,     6,     6,     6,     6,     6,     6,       584,   717,     0,    30,    33,    21,    30,   591,   592,   593,
1414         6,     6,     6,     6,     6,     6,     6,     6,   165,     6,       594,   595,   596,   597,   598,   599,     6,     7,     8,     9,
1415         6,     3,    28,    28,    28,    28,     5,     5,     5,     5,        10,    11,    12,    13,    14,    15,    16,    17,   416,   417,
1416         5,   178,   179,     6,     6,     6,     6,     6,     6,   186,       418,   419,   420,   421,   422,   423,   424,   425,   426,   427,
1417        28,   188,     6,     6,     6,     6,     6,     6,     6,   196,       583,   416,   416,   416,     5,    38,    39,     8,     9,    10,
1418         6,     6,     6,     6,     6,   202,     6,     6,     5,     5,        11,    12,    13,    14,    15,    16,    17,   222,   223,   444,
1419         5,     5,   214,     6,   211,   212,   213,   214,     6,     6,         5,   444,    22,     8,     9,    10,    11,    12,    13,    14,
1420         6,     6,     6,     6,   221,     6,   223,   224,     6,     6,        15,    16,    17,   224,   225,   226,   222,   223,    18,    18,
1421         6,     6,     6,     5,     5,     5,     5,     5,   216,     6,        20,    20,    22,    22,    20,    21,    20,    21,    36,    36,
1422         6,    -1,   130        30,    30,     8,     9,    10,    11,    12,    13,    14,    15,
1423          16,    17,   801,   687,    37,   804,     8,     9,    10,    11,
1424          12,    13,    14,    15,    16,    17,   270,    18,    26,   703,
1425          37,   275,   276,    19,    36,   279,   225,    20,    18,    21,
1426          37,    37,    37,    32,    22,    38,    36,    31,    25,    25,
1427          38,    26,    26,    38,    25,    20,    26,    38,    31,   225,
1428         226,    20,    26,    31,    26,    32,    38,    19,    37,    18,
1429          21,    37,    35,   303,    18,   305,   306,   307,   308,   309,
1430         310,   311,   312,    39,    37,    18,    24,    21,    36,    26,
1431          21,    21,    21,    18,    21,    21,    36,    25,    21,    23,
1432         332,    23,    22,    35,   336,    26,   338,   339,   340,   341,
1433         342,    14,   344,    32,   346,   347,   348,   349,    22,    35,
1434          31,   353,   354,    36,   356,   357,    26,    26,    26,    31,
1435          26,    26,    26,    26,    31,   367,   368,   369,    26,    26,
1436          32,   815,   374,   375,   376,   377,   378,   379,    37,    32,
1437          26,    26,    38,    32,    23,    32,    20,    22,    20,    26,
1438          42,    20,    32,    31,    35,    31,    29,   399,    21,    21,
1439          31,    89,    32,    31,    89,    32,    31,    89,    32,    89,
1440          29,    22,    22,    18,    22,    19,    22,    35,    89,    18,
1441          22,    22,    42,    26,    22,    22,    26,    36,   432,   433,
1442          26,    38,    26,    26,    89,    89,    26,    22,    89,    89,
1443          35,   445,   446,   447,   448,   449,    38,    29,    26,    30,
1444          29,    19,    32,    29,    31,    20,    19,    29,    22,    32,
1445          31,    35,    37,    89,    30,    32,   468,   469,   470,   471,
1446         472,   473,   474,   475,   476,   477,   478,   479,   480,   481,
1447         482,    31,    30,   485,   486,    32,    31,   487,   488,   489,
1448         490,   491,   492,   493,   494,   495,    32,    30,    89,    29,
1449          89,   503,   504,    89,   506,    29,   508,    38,   510,    20,
1450         487,   488,   489,   490,   491,   492,   493,   494,   495,   521,
1451         522,   523,   524,   525,   526,   527,   528,   529,   530,   531,
1452         532,   533,    33,    38,    33,    38,    33,    22,    32,    26,
1453         264,    33,    38,    89,    22,    18,    23,    22,    20,    32,
1454          38,    37,    22,    22,    36,   559,    37,    37,   562,   563,
1455         564,   565,    38,    31,   568,    21,    31,    38,    32,    26,
1456          37,    31,    38,    32,    89,    38,    37,   579,   582,   581,
1457          33,    31,    33,    37,    33,    37,    18,    33,    29,    37,
1458          37,    33,    22,    38,    38,    31,    89,   601,    38,   603,
1459          37,    29,    18,    38,    38,    89,    29,    38,    37,    31,
1460          89,    38,    32,    37,    31,    89,    37,    26,    37,   621,
1461          38,    21,    37,    21,    37,    33,   628,    37,   630,   631,
1462         632,    38,   634,    37,   636,    21,    24,    21,    32,    24,
1463          22,    22,    22,    32,    36,    38,    89,    26,    26,   651,
1464          89,   653,    26,    26,    22,    25,    89,    21,   660,   661,
1465         662,   663,   664,   665,   666,   667,   668,    39,   670,    35,
1466         672,    21,    39,    35,    39,    89,    39,    89,    37,    32,
1467          31,    26,    39,    89,    22,   689,   690,   691,    37,   693,
1468          26,    22,    26,   697,    22,    25,    37,   697,    89,    26,
1469         704,    25,    42,    32,    18,    26,   710,   711,    26,   713,
1470         714,   715,    89,   717,   718,   719,    39,   721,   718,   719,
1471          22,   721,    20,    22,    39,    20,    39,    20,    89,    18,
1472          39,    18,    20,    33,    35,   737,   738,    31,   740,   741,
1473          26,    32,    39,    22,    36,    35,   746,   747,    31,    33,
1474          26,   751,    22,    26,    22,    26,    31,   430,   431,   761,
1475          22,   485,   486,    37,    25,    42,   439,   769,    31,   746,
1476         747,    22,    31,    20,    22,    18,   449,    33,   780,    36,
1477          38,   781,   782,    89,    20,    20,    31,   511,    20,    18,
1478          31,    33,    22,    89,    22,    35,    33,    22,    37,    22,
1479          38,    35,    22,   807,   781,   782,    22,   807,   808,   809,
1480         810,   535,    33,    31,    22,    22,    29,   821,   822,   823,
1481         824,    36,    89,   823,   824,    37,    18,    33,    18,    29,
1482         503,   504,    18,   810,    89,    31,    29,    89,    33,    38,
1483          89,    35,   842,   843,   844,    30,    33,    35,    22,    33,
1484          18,    21,    18,   855,   578,    37,    18,    22,    18,    18,
1485          29,    37,    35,    89,    35,   842,   843,    30,   868,   869,
1486          18,    35,    30,    26,   878,    21,    18,    22,    35,    22,
1487          18,    22,    37,    30,    35,   558,    35,   560,   561,    39,
1488          30,    30,    22,   566,   567,    26,    22,    22,   571,   572,
1489          37,    22,    22,    22,   628,   629,   579,    39,   581,    37,
1490         634,   635,    35,    35,    22,    22,   640,    22,    35,    37,
1491          22,    37,    36,    35,   648,    35,    35,   600,   821,   602,
1492          36,    35,   822,   704,   878,   583,   718,   558,   444,   274,
1493          43,   273,   504,   276,   444,   669,    -1,   671,   273,    -1,
1494         276,    -1,    -1,    -1,    -1,    -1,   278,    -1,    -1,    -1,
1495          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1496          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1497          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1498          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1499          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1500          -1,    -1,    -1,   737,    -1,   688,    -1,   741,    -1,   692,
1501          -1,   745,    -1,   696,    -1,   749,    -1,    -1,    -1,    -1,
1502          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   712,
1503          -1,    -1,    -1,   716,    -1,    -1,    -1,   720,   772,   722,
1504          -1,    -1,    -1,    -1,    -1,   779,    -1,    -1,    -1,    -1,
1505          -1,    -1,    -1,   787,    -1,   789,    -1,    -1,    -1,    -1,
1506          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1507          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1508          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1509          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1510          -1,    -1,   836,   837,    -1,    -1,    -1,    -1,    -1,    -1,
1511          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   801,   802,
1512         803,   804,     3,     4,     5,     6,     7,     8,     9,    10,
1513          11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
1514          21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
1515          31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1516          41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
1517          51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
1518          61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1519          71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
1520          81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1521          91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
1522         101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
1523         111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
1524         121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
1525         131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
1526         141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
1527         151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
1528         161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
1529         171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
1530         181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
1531         191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
1532         201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
1533         211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
1534         221,   222,    -1,   224,     3,     4,     5,     6,     7,     8,
1535           9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1536          19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1537          29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1538          39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1539          49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1540          59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1541          69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1542          79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1543          89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1544          99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1545         109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1546         119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1547         129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1548         139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1549         149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1550         159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
1551         169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1552         179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1553         189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1554         199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1555         209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
1556         219,   220,   221,    -1,   223,   224,     3,     4,     5,     6,
1557           7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
1558          17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
1559          27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1560          37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1561          47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1562          57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1563          67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1564          77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1565          87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1566          97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1567         107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1568         117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1569         127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
1570         137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
1571         147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
1572         157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
1573         167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1574         177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1575         187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1576         197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1577         207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
1578         217,   218,   219,   220,   221,    -1,    -1,   224,     3,     4,
1579           5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1580          15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
1581          25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
1582          35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1583          45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1584          55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1585          65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1586          75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1587          85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1588          95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1589         105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1590         115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1591         125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
1592         135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1593         145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
1594         155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
1595         165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
1596         175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1597         185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1598         195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1599         205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1600         215,   216,   217,   218,   219,   220,   221,    -1,    -1,   224,
1601           3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1602          13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1603          23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1604          33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1605          43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1606          53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1607          63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1608          73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1609          83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1610          93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1611         103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1612         113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
1613         123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
1614         133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
1615         143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
1616         153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
1617         163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
1618         173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
1619         183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
1620         193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
1621         203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
1622         213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
1623         223,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1624          12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1625          22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
1626          32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1627          42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1628          52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1629          62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1630          72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1631          82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1632          92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1633         102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1634         112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1635         122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1636         132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
1637         142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
1638         152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
1639         162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
1640         172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
1641         182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
1642         192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
1643         202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
1644         212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
1645           3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1646          13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1647          23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1648          33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1649          43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1650          53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1651          63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1652          73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1653          83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1654          93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1655         103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1656         113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
1657         123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
1658         133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
1659         143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
1660         153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
1661         163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
1662         173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
1663         183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
1664         193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
1665         203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
1666         213,   214,   215,   216,   217,   218,   219,   220,   221,     3,
1667           4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1668          14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1669          24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
1670          34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1671          44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1672          54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1673          64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1674          74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1675          84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1676          94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1677         104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1678         114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1679         124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1680         134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1681         144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1682         154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
1683         164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
1684         174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
1685         184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
1686         194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1687         204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
1688         214,   215,   216,   217,   218,   219,   220,   221,     3,     4,
1689           5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1690          15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
1691          25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
1692          35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1693          45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1694          55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1695          65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1696          75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1697          85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1698          95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1699         105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1700         115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1701         125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
1702         135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1703         145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
1704         155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
1705         165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
1706         175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1707         185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1708         195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1709         205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1710         215,   216,   217,   218,   219,   220,   221,     3,     4,     5,
1711           6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1712          16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
1713          26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1714          36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1715          46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1716          56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1717          66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1718          76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1719          86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1720          96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1721         106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1722         116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1723         126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1724         136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1725         146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1726         156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
1727         166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1728         176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1729         186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1730         196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1731         206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1732         216,   217,   218,   219,   220,   221,     3,     4,     5,     6,
1733           7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
1734          17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
1735          27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1736          37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1737          47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1738          57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1739          67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1740          77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1741          87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1742          97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1743         107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1744         117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1745         127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
1746         137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
1747         147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
1748         157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
1749         167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1750         177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1751         187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1752         197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1753         207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
1754         217,   218,   219,   220,   221,     3,     4,     5,     6,     7,
1755           8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1756          18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
1757          28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1758          38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1759          48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1760          58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1761          68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1762          78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1763          88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1764          98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
1765         108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
1766         118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
1767         128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
1768         138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
1769         148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
1770         158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
1771         168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
1772         178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
1773         188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
1774         198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
1775         208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
1776         218,   219,   220,   221,     3,     4,     5,     6,     7,     8,
1777           9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1778          19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1779          29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1780          39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1781          49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1782          59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1783          69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1784          79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1785          89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1786          99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1787         109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1788         119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1789         129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1790         139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1791         149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1792         159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
1793         169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1794         179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1795         189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1796         199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1797         209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
1798         219,   220,   221
1799  };  };
1800    
1801  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1802     symbol of state STATE-NUM.  */     symbol of state STATE-NUM.  */
1803  static const unsigned char yystos[] =  static const unsigned short yystos[] =
1804  {  {
1805         0,     1,     9,    11,    12,    13,    14,    15,    16,    17,         0,     1,     3,    18,    20,    21,    24,    29,    34,    35,
1806        18,    19,    20,    21,    22,    48,    49,    50,    51,     6,        36,    38,   228,   229,   230,   231,   269,   270,   271,   272,
1807         6,     6,     6,     6,     6,     6,     6,     6,     6,     6,       273,   274,   276,   277,   278,   279,   312,   315,    21,    35,
1808         0,     7,     8,     3,     5,     6,     9,    75,    23,    23,        22,    22,    26,    32,    38,    22,    22,    38,    31,     0,
1809        25,    26,    27,    33,    34,    35,    36,    37,    39,    40,       225,   226,   267,   268,     3,     4,     5,     6,     7,     8,
1810        52,    36,    54,    36,    55,    37,    60,    32,    33,    56,         9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1811        23,    23,    35,    38,    53,    24,    24,    23,    49,     7,        19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1812         3,     6,     6,     6,     6,     6,     6,     6,     6,     6,        29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1813         6,     6,     6,     6,     6,     6,     6,     6,     6,    49,        39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1814        28,    29,    30,    31,    28,    28,    28,    28,    28,    28,        49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1815        75,     5,     5,    61,    73,    74,    75,    62,    71,    75,        59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1816         5,    65,    34,    36,    41,    42,    43,    44,    57,     5,        69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1817         5,     5,    67,    70,    74,    65,     6,     6,     6,     6,        79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1818         6,     6,     6,     6,     6,     6,     6,     6,     5,    75,        89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1819         6,     6,     6,     6,     6,     6,     6,     6,     6,    65,        99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1820        45,    46,    59,    65,    65,    71,     5,     5,     5,    75,       109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1821        75,    58,    75,     5,    66,    74,    65,    65,    65,    65,       119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1822        65,    65,    65,     5,    75,     6,     6,     6,     6,     6,       129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1823        10,     6,     6,     6,     6,     6,     6,     6,     6,     6,       139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1824        10,    65,     5,     5,    75,    75,    74,    65,     5,    68,       149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1825         5,    72,    74,     5,    69,    63,    75,     4,     5,    64,       159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
1826        75,    74,    74,     6,     6,    10,     6,     6,    10,    75,       169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1827        58,    74,    68,    74,    74       179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1828         189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1829         199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1830         209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
1831         219,   220,   221,   224,   258,   261,   262,   263,   266,   266,
1832         266,   266,   266,   266,   266,   266,   266,   266,   266,   266,
1833          21,    22,    36,    37,    36,    18,    26,    30,    36,    37,
1834          19,    36,   267,     8,     9,    10,    11,    12,    13,    14,
1835          15,    16,    17,   260,   261,   260,   260,   260,   260,   260,
1836         260,   260,   260,     3,     8,     9,    10,    11,    12,    13,
1837          14,    15,    16,    17,   263,    20,   280,    18,    20,    22,
1838          30,   234,   280,   281,   282,   283,   289,   291,   292,   293,
1839         294,   295,   296,   298,   300,   301,   302,   303,   304,   305,
1840          18,    30,   236,   292,   302,   237,   292,   302,    18,    20,
1841          30,   242,   283,   291,   301,    26,   238,   288,   289,   280,
1842          18,    22,    30,   235,   280,   290,   295,   299,   300,   314,
1843          19,    26,    30,    36,    39,   232,   283,   284,   285,   286,
1844         287,   313,   233,   283,   284,   285,   286,   287,   313,   280,
1845          18,    37,    37,    21,    37,    32,    22,    36,    38,   261,
1846          25,    38,    39,    25,    31,    26,   266,   266,   266,   266,
1847         266,   266,   266,   266,   266,   266,   266,   266,    38,    26,
1848         266,   266,   266,   266,    38,    25,    26,    31,   266,   266,
1849         266,    38,    20,    26,   266,   266,   266,   266,   266,   266,
1850          38,    31,    26,    37,    32,   266,    37,    35,    39,    37,
1851          20,    19,    18,    21,    18,    18,    24,    21,   284,   285,
1852         286,   287,   284,   284,   284,   284,   284,   284,   284,   284,
1853         284,   284,   284,    21,    21,   258,   258,     9,    10,    11,
1854          12,    13,    14,    15,    16,    17,   262,   262,    21,    18,
1855          21,    36,    31,   222,   223,   243,   255,   265,   275,   244,
1856         254,   258,   252,   262,    21,    25,    21,    18,    30,    39,
1857         239,   292,   296,   297,   302,   305,   306,   307,   308,   309,
1858         262,   262,   262,   262,   257,   258,   262,    23,    23,    36,
1859          35,    26,   252,    22,    32,    22,    35,    36,    31,    26,
1860          26,    31,    26,    26,   266,   266,   266,   266,   266,   266,
1861         266,   266,   266,   266,   266,   266,   266,   266,   266,    26,
1862          26,   266,   266,    26,    31,    26,    37,    32,   258,   264,
1863         266,   264,   266,   266,   266,    26,    32,    26,    38,    26,
1864          32,   266,   266,   266,   266,   266,   266,   266,   266,   266,
1865         266,   266,   266,   266,    23,    32,    20,    22,    20,    42,
1866          26,    20,    31,    32,    29,    31,    31,    89,   252,    19,
1867          33,   241,   310,   311,   252,   252,   254,   262,   258,   258,
1868         262,   262,   262,   262,   258,   258,   262,    32,    89,   240,
1869         258,   240,    32,    31,    89,    35,    31,   222,   258,   266,
1870         223,   253,   262,   255,   252,    32,    89,    21,    21,    29,
1871         252,   252,   252,   252,   252,   252,   252,   252,   252,   258,
1872         262,   258,   262,    22,    22,    18,    22,    19,    35,    22,
1873          89,    18,    22,    22,    26,    42,    22,   266,   266,   266,
1874         266,   266,   266,   266,    89,    26,   266,     4,    89,    22,
1875          26,    38,    89,   266,   266,    89,    26,    26,    26,    38,
1876         266,   266,   266,   266,   266,   266,   266,   266,   266,     4,
1877         266,     4,   266,    35,    29,    30,    89,    22,    26,    29,
1878          32,    19,    29,    31,    37,    35,   252,   258,   262,   262,
1879         262,   258,   262,    32,    31,   258,     6,     7,   256,   258,
1880         259,   260,   261,   262,   265,    32,    29,    31,    30,    30,
1881         252,   253,    32,    31,    32,    89,    30,   245,   262,   246,
1882         262,   247,   258,   245,   248,   262,   249,   262,   250,   258,
1883         245,     6,     7,   251,   259,   262,   256,   258,   256,   258,
1884          89,    29,    89,    20,    19,    38,    29,    36,    33,    22,
1885          20,   266,   266,   266,   266,    38,    33,     4,   260,   260,
1886           5,    38,    33,    22,    32,   266,    38,    33,    89,    26,
1887          22,   266,   266,     4,     4,    23,    18,    20,    32,    22,
1888          37,    22,    38,    36,    22,   240,   258,   258,   240,    37,
1889          38,   256,     5,     5,   260,    37,    38,    31,    21,   252,
1890          37,    38,    32,    31,   246,   248,   256,   256,    26,    31,
1891          32,    38,    33,    89,    37,    31,    33,    37,   260,   260,
1892          33,    37,    37,    18,    33,    37,    38,    33,   266,    29,
1893          22,    38,    31,    38,    18,    22,    30,    89,    37,    38,
1894          89,    38,    89,    29,    38,    89,    37,    38,   249,    29,
1895          32,    31,    37,    37,    38,    31,    26,    21,    33,    18,
1896          37,    21,    37,    21,    37,    21,    33,    33,    37,    38,
1897          37,    89,    21,    24,    21,    22,    35,    32,    24,    89,
1898          22,    89,    22,    89,    22,    32,    38,    89,    36,    20,
1899          21,    26,    26,    26,    39,    26,    35,    22,    21,    39,
1900          21,    39,    20,    21,    39,    35,    37,    20,    33,    37,
1901          25,    22,    35,    32,    31,    89,    26,    39,    37,    22,
1902          26,    22,    26,    25,    22,    26,    37,    89,    25,    32,
1903          42,    18,    39,    26,    89,    22,    26,    20,    22,    89,
1904          39,    20,    39,    20,    18,    39,    20,    20,    37,    18,
1905          35,    33,    31,    26,    39,    32,    36,    31,    22,    35,
1906          33,    26,    22,    26,    22,    31,    26,    22,    25,    42,
1907          31,    37,    22,    31,    20,    22,    38,    33,    36,    89,
1908          18,    20,    20,    31,    20,    89,    18,    33,    31,    22,
1909          22,    35,    37,    38,    33,    35,    22,    22,    22,    22,
1910          33,    31,    22,    22,    29,    36,    89,    33,    37,    18,
1911          18,    29,    89,    18,    31,    29,    89,    33,    38,    89,
1912          35,    30,    33,    35,    22,    33,    18,    37,    21,    18,
1913          22,    18,    18,    29,    18,    35,    89,    35,    30,    37,
1914          35,    30,    35,    18,    21,    26,    22,    22,    18,    22,
1915          18,    30,    35,    39,    37,    35,    30,    37,    30,    22,
1916          26,    22,    22,    22,    22,    22,    37,    39,    35,    35,
1917          37,    35,    37,    22,    22,    36,    22,    22,    35,    35,
1918          35,    35,    36
1919  };  };
1920    
1921  #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)  #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
# Line 1264  yyreduce: Line 2525  yyreduce:
2525    YY_REDUCE_PRINT (yyn);    YY_REDUCE_PRINT (yyn);
2526    switch (yyn)    switch (yyn)
2527      {      {
2528          case 7:          case 4:
2529  #line 82 "lscp.y"  #line 85 "lscp.y"
2530      { LSCPSERVER->AnswerClient(yyvsp[0].String); }      { return LSCP_DONE; }
2531        break;
2532    
2533      case 5:
2534    #line 86 "lscp.y"
2535        { return LSCP_DONE; }
2536        break;
2537    
2538      case 6:
2539    #line 87 "lscp.y"
2540        { LSCPSERVER->AnswerClient(yyvsp[0].String); return LSCP_DONE; }
2541      break;      break;
2542    
2543    case 8:    case 7:
2544  #line 83 "lscp.y"  #line 88 "lscp.y"
2545      { LSCPSERVER->AnswerClient("Err:0:Unknown command.\r\n"); RESTART; return LSCP_SYNTAX_ERROR; }      { LSCPSERVER->AnswerClient("Err:0:Unknown command.\r\n"); RESTART; return LSCP_SYNTAX_ERROR; }
2546      break;      break;
2547    
2548      case 13:
2549    #line 98 "lscp.y"
2550        { yyval.String = LSCPSERVER->AddChannel();                          }
2551        break;
2552    
2553    case 14:    case 14:
2554  #line 93 "lscp.y"  #line 99 "lscp.y"
2555      { yyval.String = LSCPSERVER->AddChannel();                  }      { yyval.String = yyvsp[0].String;                                                }
2556      break;      break;
2557    
2558    case 15:    case 15:
2559  #line 94 "lscp.y"  #line 100 "lscp.y"
2560      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                                }
2561      break;      break;
2562    
2563    case 16:    case 16:
2564  #line 95 "lscp.y"  #line 101 "lscp.y"
2565      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                                }
2566      break;      break;
2567    
2568    case 17:    case 17:
2569  #line 96 "lscp.y"  #line 102 "lscp.y"
2570      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                                }
2571      break;      break;
2572    
2573    case 18:    case 18:
2574  #line 97 "lscp.y"  #line 103 "lscp.y"
2575      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                                }
2576      break;      break;
2577    
2578    case 19:    case 19:
2579  #line 98 "lscp.y"  #line 104 "lscp.y"
2580      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = LSCPSERVER->RemoveChannel(yyvsp[0].Number);                     }
2581      break;      break;
2582    
2583    case 20:    case 20:
2584  #line 99 "lscp.y"  #line 105 "lscp.y"
2585      { yyval.String = LSCPSERVER->RemoveChannel(yyvsp[0].Number);             }      { yyval.String = yyvsp[0].String;                                                }
2586      break;      break;
2587    
2588    case 21:    case 21:
2589  #line 100 "lscp.y"  #line 106 "lscp.y"
2590      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                                }
2591      break;      break;
2592    
2593    case 22:    case 22:
2594  #line 101 "lscp.y"  #line 107 "lscp.y"
2595      { yyval.String = LSCPSERVER->SubscribeNotification(yyvsp[0].Number);     }      { yyval.String = yyvsp[0].String;                                                }
2596      break;      break;
2597    
2598    case 23:    case 23:
2599  #line 102 "lscp.y"  #line 108 "lscp.y"
2600      { yyval.String = LSCPSERVER->UnsubscribeNotification(yyvsp[0].String);   }      { yyval.String = LSCPSERVER->ResetChannel(yyvsp[0].Number);                      }
2601      break;      break;
2602    
2603    case 24:    case 24:
2604  #line 103 "lscp.y"  #line 109 "lscp.y"
2605      { yyval.String = LSCPSERVER->ResetChannel(yyvsp[0].Number);              }      { yyval.String = LSCPSERVER->ResetSampler();                        }
2606      break;      break;
2607    
2608    case 25:    case 25:
2609  #line 104 "lscp.y"  #line 110 "lscp.y"
2610      { LSCPSERVER->AnswerClient("Bye!\r\n"); return 0; }      { LSCPSERVER->AnswerClient("Bye!\r\n"); return LSCP_QUIT; }
2611      break;      break;
2612    
2613    case 26:    case 26:
2614  #line 107 "lscp.y"  #line 113 "lscp.y"
2615      { yyval.String = LSCPSERVER->GetAvailableEngines();                          }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_channels);     }
2616      break;      break;
2617    
2618    case 27:    case 27:
2619  #line 108 "lscp.y"  #line 114 "lscp.y"
2620      { yyval.String = LSCPSERVER->GetAvailableAudioOutputDrivers();               }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_voice_count);  }
2621      break;      break;
2622    
2623    case 28:    case 28:
2624  #line 109 "lscp.y"  #line 115 "lscp.y"
2625      { yyval.String = LSCPSERVER->GetAudioOutputDriverInfo(yyvsp[0].String);                   }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_stream_count); }
2626      break;      break;
2627    
2628    case 29:    case 29:
2629  #line 110 "lscp.y"  #line 116 "lscp.y"
2630      { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String);      }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_buffer_fill);  }
2631      break;      break;
2632    
2633    case 30:    case 30:
2634  #line 111 "lscp.y"  #line 117 "lscp.y"
2635      { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList);  }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_info);         }
2636      break;      break;
2637    
2638    case 31:    case 31:
2639  #line 112 "lscp.y"  #line 118 "lscp.y"
2640      { yyval.String = LSCPSERVER->GetAudioOutputDeviceCount();                    }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_misc);         }
2641      break;      break;
2642    
2643    case 32:    case 32:
2644  #line 113 "lscp.y"  #line 121 "lscp.y"
2645      { yyval.String = LSCPSERVER->GetAudioOutputDeviceInfo(yyvsp[0].Number);                   }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_channels);     }
2646      break;      break;
2647    
2648    case 33:    case 33:
2649  #line 114 "lscp.y"  #line 122 "lscp.y"
2650      { yyval.String = LSCPSERVER->GetAudioOutputChannelInfo(yyvsp[-2].Number, yyvsp[0].Number);              }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_voice_count);  }
2651      break;      break;
2652    
2653    case 34:    case 34:
2654  #line 115 "lscp.y"  #line 123 "lscp.y"
2655      { yyval.String = LSCPSERVER->GetAudioOutputChannelParameterInfo(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].String); }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_stream_count); }
2656      break;      break;
2657    
2658    case 35:    case 35:
2659  #line 116 "lscp.y"  #line 124 "lscp.y"
2660      { yyval.String = LSCPSERVER->GetChannels();                                  }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_buffer_fill);  }
2661      break;      break;
2662    
2663    case 36:    case 36:
2664  #line 117 "lscp.y"  #line 125 "lscp.y"
2665      { yyval.String = LSCPSERVER->GetChannelInfo(yyvsp[0].Number);                             }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_info);         }
2666      break;      break;
2667    
2668    case 37:    case 37:
2669  #line 118 "lscp.y"  #line 126 "lscp.y"
2670      { yyval.String = LSCPSERVER->GetBufferFill(yyvsp[-2].FillResponse, yyvsp[0].Number);                          }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_misc);         }
2671      break;      break;
2672    
2673    case 38:    case 38:
2674  #line 119 "lscp.y"  #line 129 "lscp.y"
2675      { yyval.String = LSCPSERVER->GetStreamCount(yyvsp[0].Number);                             }      { yyval.String = LSCPSERVER->GetAvailableEngines();                          }
2676      break;      break;
2677    
2678    case 39:    case 39:
2679  #line 120 "lscp.y"  #line 130 "lscp.y"
2680      { yyval.String = LSCPSERVER->GetVoiceCount(yyvsp[0].Number);                              }      { yyval.String = LSCPSERVER->GetAvailableMidiInputDrivers();                 }
2681      break;      break;
2682    
2683    case 40:    case 40:
2684  #line 121 "lscp.y"  #line 131 "lscp.y"
2685      { yyval.String = LSCPSERVER->GetEngineInfo(yyvsp[0].String);                              }      { yyval.String = LSCPSERVER->GetMidiInputDriverInfo(yyvsp[0].String);                     }
2686      break;      break;
2687    
2688    case 41:    case 41:
2689  #line 124 "lscp.y"  #line 132 "lscp.y"
2690      { yyval.String = LSCPSERVER->SetAudioOutputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);      }      { yyval.String = LSCPSERVER->GetMidiInputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String);        }
2691      break;      break;
2692    
2693    case 42:    case 42:
2694  #line 125 "lscp.y"  #line 133 "lscp.y"
2695      { yyval.String = LSCPSERVER->SetAudioOutputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);      }      { yyval.String = LSCPSERVER->GetMidiInputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList);    }
2696      break;      break;
2697    
2698    case 43:    case 43:
2699  #line 126 "lscp.y"  #line 134 "lscp.y"
2700      { yyval.String = LSCPSERVER->SetAudioOutputChannelParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); }      { yyval.String = LSCPSERVER->GetAvailableAudioOutputDrivers();               }
2701      break;      break;
2702    
2703    case 44:    case 44:
2704  #line 127 "lscp.y"  #line 135 "lscp.y"
2705      { yyval.String = LSCPSERVER->SetAudioOutputChannelParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); }      { yyval.String = LSCPSERVER->GetAudioOutputDriverInfo(yyvsp[0].String);                   }
2706      break;      break;
2707    
2708    case 45:    case 45:
2709  #line 128 "lscp.y"  #line 136 "lscp.y"
2710      { yyval.String = yyvsp[0].String;                                                         }      { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String);      }
2711      break;      break;
2712    
2713    case 46:    case 46:
2714  #line 131 "lscp.y"  #line 137 "lscp.y"
2715      { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[-2].String,yyvsp[0].KeyValList); }      { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList);  }
2716      break;      break;
2717    
2718    case 47:    case 47:
2719  #line 134 "lscp.y"  #line 138 "lscp.y"
2720      { yyval.String = LSCPSERVER->DestroyAudioOutputDevice(yyvsp[0].Number); }      { yyval.String = LSCPSERVER->GetAudioOutputDeviceCount();                    }
2721      break;      break;
2722    
2723    case 48:    case 48:
2724  #line 137 "lscp.y"  #line 139 "lscp.y"
2725      { yyval.String = yyvsp[0].String; }      { yyval.String = LSCPSERVER->GetMidiInputDeviceCount();                      }
2726      break;      break;
2727    
2728    case 49:    case 49:
2729  #line 138 "lscp.y"  #line 140 "lscp.y"
2730      { yyval.String = yyvsp[0].String; }      { yyval.String = LSCPSERVER->GetAudioOutputDeviceInfo(yyvsp[0].Number);                   }
2731      break;      break;
2732    
2733    case 50:    case 50:
2734  #line 141 "lscp.y"  #line 141 "lscp.y"
2735      { yyval.String = LSCPSERVER->SetAudioOutputDevice(yyvsp[0].Number, yyvsp[-2].Number);      }      { yyval.String = LSCPSERVER->GetMidiInputDeviceInfo(yyvsp[0].Number);                     }
2736      break;      break;
2737    
2738    case 51:    case 51:
2739  #line 142 "lscp.y"  #line 142 "lscp.y"
2740      { yyval.String = LSCPSERVER->SetAudioOutputChannel(yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-4].Number); }      { yyval.String = LSCPSERVER->GetMidiInputPortInfo(yyvsp[-2].Number, yyvsp[0].Number);                   }
2741      break;      break;
2742    
2743    case 52:    case 52:
2744  #line 143 "lscp.y"  #line 143 "lscp.y"
2745      { yyval.String = LSCPSERVER->SetMIDIInputPort(yyvsp[0].String, yyvsp[-2].Number);          }      { yyval.String = LSCPSERVER->GetMidiInputPortParameterInfo(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].String);      }
2746      break;      break;
2747    
2748    case 53:    case 53:
2749  #line 144 "lscp.y"  #line 144 "lscp.y"
2750      { yyval.String = LSCPSERVER->SetMIDIInputChannel(yyvsp[0].Number, yyvsp[-2].Number);       }      { yyval.String = LSCPSERVER->GetAudioOutputChannelInfo(yyvsp[-2].Number, yyvsp[0].Number);              }
2751      break;      break;
2752    
2753    case 54:    case 54:
2754  #line 145 "lscp.y"  #line 145 "lscp.y"
2755      { yyval.String = LSCPSERVER->SetMIDIInputType(yyvsp[0].String, yyvsp[-2].Number);          }      { yyval.String = LSCPSERVER->GetAudioOutputChannelParameterInfo(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].String); }
2756      break;      break;
2757    
2758    case 55:    case 55:
2759  #line 146 "lscp.y"  #line 146 "lscp.y"
2760      { yyval.String = LSCPSERVER->SetVolume(yyvsp[0].Dotnum, yyvsp[-2].Number);                 }      { yyval.String = LSCPSERVER->GetChannels();                                  }
2761      break;      break;
2762    
2763    case 56:    case 56:
2764  #line 149 "lscp.y"  #line 147 "lscp.y"
2765      { yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String;          }      { yyval.String = LSCPSERVER->GetChannelInfo(yyvsp[0].Number);                             }
2766      break;      break;
2767    
2768    case 57:    case 57:
2769  #line 150 "lscp.y"  #line 148 "lscp.y"
2770      { yyval.KeyValList = yyvsp[-4].KeyValList; yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String; }      { yyval.String = LSCPSERVER->GetBufferFill(yyvsp[-2].FillResponse, yyvsp[0].Number);                          }
2771      break;      break;
2772    
2773    case 58:    case 58:
2774  #line 152 "lscp.y"  #line 149 "lscp.y"
2775      { yyval.FillResponse = fill_response_bytes;      }      { yyval.String = LSCPSERVER->GetStreamCount(yyvsp[0].Number);                             }
2776      break;      break;
2777    
2778    case 59:    case 59:
2779  #line 153 "lscp.y"  #line 150 "lscp.y"
2780      { yyval.FillResponse = fill_response_percentage; }      { yyval.String = LSCPSERVER->GetVoiceCount(yyvsp[0].Number);                              }
2781      break;      break;
2782    
2783    case 60:    case 60:
2784  #line 156 "lscp.y"  #line 151 "lscp.y"
2785      { yyval.String = LSCPSERVER->GetAudioOutputDevices(); }      { yyval.String = LSCPSERVER->GetEngineInfo(yyvsp[0].String);                              }
2786      break;      break;
2787    
2788    case 61:    case 61:
2789  #line 159 "lscp.y"  #line 154 "lscp.y"
2790      { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number); }      { yyval.String = LSCPSERVER->SetAudioOutputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);      }
2791      break;      break;
2792    
2793    case 62:    case 62:
2794  #line 162 "lscp.y"  #line 155 "lscp.y"
2795      { yyval.String = LSCPSERVER->LoadEngine(yyvsp[-2].String, yyvsp[0].Number); }      { yyval.String = LSCPSERVER->SetAudioOutputChannelParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); }
2796        break;
2797    
2798      case 63:
2799    #line 156 "lscp.y"
2800        { yyval.String = LSCPSERVER->SetMidiInputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);        }
2801        break;
2802    
2803      case 64:
2804    #line 157 "lscp.y"
2805        { yyval.String = LSCPSERVER->SetMidiInputPortParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);      }
2806      break;      break;
2807    
2808    case 65:    case 65:
2809    #line 158 "lscp.y"
2810        { yyval.String = yyvsp[0].String;                                                         }
2811        break;
2812    
2813      case 66:
2814    #line 159 "lscp.y"
2815        { yyval.String = LSCPSERVER->SetEcho((yyparse_param_t*) yyparse_param, yyvsp[0].Dotnum);  }
2816        break;
2817    
2818      case 67:
2819    #line 162 "lscp.y"
2820        { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[-2].String,yyvsp[0].KeyValList); }
2821        break;
2822    
2823      case 68:
2824    #line 163 "lscp.y"
2825        { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[0].String);    }
2826        break;
2827    
2828      case 69:
2829    #line 164 "lscp.y"
2830        { yyval.String = LSCPSERVER->CreateMidiInputDevice(yyvsp[-2].String,yyvsp[0].KeyValList);   }
2831        break;
2832    
2833      case 70:
2834    #line 165 "lscp.y"
2835        { yyval.String = LSCPSERVER->CreateMidiInputDevice(yyvsp[0].String);      }
2836        break;
2837    
2838      case 71:
2839    #line 168 "lscp.y"
2840        { yyval.String = LSCPSERVER->DestroyAudioOutputDevice(yyvsp[0].Number); }
2841        break;
2842    
2843      case 72:
2844  #line 169 "lscp.y"  #line 169 "lscp.y"
2845      { yyval.Dotnum = yyvsp[0].Number; }      { yyval.String = LSCPSERVER->DestroyMidiInputDevice(yyvsp[0].Number);   }
2846        break;
2847    
2848      case 73:
2849    #line 172 "lscp.y"
2850        { yyval.String = yyvsp[0].String; }
2851        break;
2852    
2853      case 74:
2854    #line 173 "lscp.y"
2855        { yyval.String = yyvsp[0].String; }
2856      break;      break;
2857    
2858    case 75:    case 75:
2859  #line 197 "lscp.y"  #line 176 "lscp.y"
2860      { yyval.String = yyvsp[-2].String + ' ' + yyvsp[0].String; }      { yyval.String = LSCPSERVER->SetAudioOutputDevice(yyvsp[0].Number, yyvsp[-2].Number);      }
2861      break;      break;
2862    
2863    case 76:    case 76:
2864  #line 200 "lscp.y"  #line 177 "lscp.y"
2865      { yyval.String = yyvsp[0].String;                                             }      { yyval.String = LSCPSERVER->SetAudioOutputChannel(yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-4].Number); }
2866      break;      break;
2867    
2868    case 77:    case 77:
2869  #line 201 "lscp.y"  #line 178 "lscp.y"
2870      { std::stringstream ss; ss << yyvsp[0].Number; yyval.String = ss.str();       }      { yyval.String = LSCPSERVER->SetAudioOutputType(yyvsp[0].String, yyvsp[-2].Number);        }
2871      break;      break;
2872    
2873    case 78:    case 78:
2874  #line 202 "lscp.y"  #line 179 "lscp.y"
2875      { yyval.String = yyvsp[-1].String + yyvsp[0].String;                                        }      { yyval.String = LSCPSERVER->SetMIDIInput(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-6].Number);      }
2876      break;      break;
2877    
2878    case 79:    case 79:
2879  #line 203 "lscp.y"  #line 180 "lscp.y"
2880      { std::stringstream ss; ss << yyvsp[-1].String << yyvsp[0].Number; yyval.String = ss.str(); }      { yyval.String = LSCPSERVER->SetMIDIInputDevice(yyvsp[0].Number, yyvsp[-2].Number);        }
2881      break;      break;
2882    
2883    case 80:    case 80:
2884  #line 206 "lscp.y"  #line 181 "lscp.y"
2885      { std::string s; s = yyvsp[0].Char; yyval.String = s; }      { yyval.String = LSCPSERVER->SetMIDIInputPort(yyvsp[0].Number, yyvsp[-2].Number);          }
2886      break;      break;
2887    
2888    case 81:    case 81:
2889  #line 207 "lscp.y"  #line 182 "lscp.y"
2890        { yyval.String = LSCPSERVER->SetMIDIInputChannel(yyvsp[0].Number, yyvsp[-2].Number);       }
2891        break;
2892    
2893      case 82:
2894    #line 183 "lscp.y"
2895        { yyval.String = LSCPSERVER->SetMIDIInputType(yyvsp[0].String, yyvsp[-2].Number);          }
2896        break;
2897    
2898      case 83:
2899    #line 184 "lscp.y"
2900        { yyval.String = LSCPSERVER->SetVolume(yyvsp[0].Dotnum, yyvsp[-2].Number);                 }
2901        break;
2902    
2903      case 84:
2904    #line 187 "lscp.y"
2905        { yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String;          }
2906        break;
2907    
2908      case 85:
2909    #line 188 "lscp.y"
2910        { yyval.KeyValList = yyvsp[-4].KeyValList; yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String; }
2911        break;
2912    
2913      case 86:
2914    #line 191 "lscp.y"
2915        { yyval.FillResponse = fill_response_bytes;      }
2916        break;
2917    
2918      case 87:
2919    #line 192 "lscp.y"
2920        { yyval.FillResponse = fill_response_percentage; }
2921        break;
2922    
2923      case 88:
2924    #line 195 "lscp.y"
2925        { yyval.String = LSCPSERVER->GetAudioOutputDevices(); }
2926        break;
2927    
2928      case 89:
2929    #line 196 "lscp.y"
2930        { yyval.String = LSCPSERVER->GetMidiInputDevices();   }
2931        break;
2932    
2933      case 90:
2934    #line 197 "lscp.y"
2935        { yyval.String = LSCPSERVER->ListChannels();          }
2936        break;
2937    
2938      case 91:
2939    #line 200 "lscp.y"
2940        { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number);       }
2941        break;
2942    
2943      case 92:
2944    #line 201 "lscp.y"
2945        { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number, true); }
2946        break;
2947    
2948      case 93:
2949    #line 204 "lscp.y"
2950        { yyval.String = LSCPSERVER->LoadEngine(yyvsp[-2].String, yyvsp[0].Number); }
2951        break;
2952    
2953      case 101:
2954    #line 226 "lscp.y"
2955        { yyval.Dotnum = yyvsp[0].Number; }
2956        break;
2957    
2958      case 108:
2959    #line 243 "lscp.y"
2960        { std::stringstream ss; ss << yyvsp[0].Number; yyval.String = ss.str(); }
2961        break;
2962    
2963      case 109:
2964    #line 244 "lscp.y"
2965        { std::stringstream ss; ss << yyvsp[0].Dotnum; yyval.String = ss.str(); }
2966        break;
2967    
2968      case 110:
2969    #line 250 "lscp.y"
2970        { yyval.Dotnum = yyvsp[0].Number; }
2971        break;
2972    
2973      case 111:
2974    #line 251 "lscp.y"
2975        { yyval.Dotnum = -1; }
2976        break;
2977    
2978      case 112:
2979    #line 254 "lscp.y"
2980        { std::string s; s = yyvsp[0].Char; yyval.String = s; }
2981        break;
2982    
2983      case 113:
2984    #line 255 "lscp.y"
2985      { yyval.String = yyvsp[-1].String + yyvsp[0].Char;                  }      { yyval.String = yyvsp[-1].String + yyvsp[0].Char;                  }
2986      break;      break;
2987    
2988      case 114:
2989    #line 258 "lscp.y"
2990        { yyval.Dotnum = atof(String(yyvsp[-2].String + "." + yyvsp[0].String).c_str());                         }
2991        break;
2992    
2993      case 115:
2994    #line 259 "lscp.y"
2995        { String s = "+"; s += yyvsp[-2].String; s += "."; s += yyvsp[0].String; yyval.Dotnum = atof(s.c_str()); }
2996        break;
2997    
2998      case 116:
2999    #line 260 "lscp.y"
3000        { yyval.Dotnum = atof(String("-" + yyvsp[-2].String + "." + yyvsp[0].String).c_str());                   }
3001        break;
3002    
3003      case 117:
3004    #line 264 "lscp.y"
3005        { yyval.String = yyvsp[0].Char;      }
3006        break;
3007    
3008      case 118:
3009    #line 265 "lscp.y"
3010        { yyval.String = yyvsp[-1].String + yyvsp[0].Char; }
3011        break;
3012    
3013      case 119:
3014    #line 268 "lscp.y"
3015        { yyval.Char = '0'; }
3016        break;
3017    
3018      case 120:
3019    #line 269 "lscp.y"
3020        { yyval.Char = '1'; }
3021        break;
3022    
3023      case 121:
3024    #line 270 "lscp.y"
3025        { yyval.Char = '2'; }
3026        break;
3027    
3028      case 122:
3029    #line 271 "lscp.y"
3030        { yyval.Char = '3'; }
3031        break;
3032    
3033      case 123:
3034    #line 272 "lscp.y"
3035        { yyval.Char = '4'; }
3036        break;
3037    
3038      case 124:
3039    #line 273 "lscp.y"
3040        { yyval.Char = '5'; }
3041        break;
3042    
3043      case 125:
3044    #line 274 "lscp.y"
3045        { yyval.Char = '6'; }
3046        break;
3047    
3048      case 126:
3049    #line 275 "lscp.y"
3050        { yyval.Char = '7'; }
3051        break;
3052    
3053      case 127:
3054    #line 276 "lscp.y"
3055        { yyval.Char = '8'; }
3056        break;
3057    
3058      case 128:
3059    #line 277 "lscp.y"
3060        { yyval.Char = '9'; }
3061        break;
3062    
3063      case 129:
3064    #line 280 "lscp.y"
3065        { yyval.Number = atoi(String(1, yyvsp[0].Char).c_str());      }
3066        break;
3067    
3068      case 130:
3069    #line 281 "lscp.y"
3070        { yyval.Number = atoi(String(String("1") + yyvsp[0].String).c_str()); }
3071        break;
3072    
3073      case 131:
3074    #line 282 "lscp.y"
3075        { yyval.Number = atoi(String(String("2") + yyvsp[0].String).c_str()); }
3076        break;
3077    
3078      case 132:
3079    #line 283 "lscp.y"
3080        { yyval.Number = atoi(String(String("3") + yyvsp[0].String).c_str()); }
3081        break;
3082    
3083      case 133:
3084    #line 284 "lscp.y"
3085        { yyval.Number = atoi(String(String("4") + yyvsp[0].String).c_str()); }
3086        break;
3087    
3088      case 134:
3089    #line 285 "lscp.y"
3090        { yyval.Number = atoi(String(String("5") + yyvsp[0].String).c_str()); }
3091        break;
3092    
3093      case 135:
3094    #line 286 "lscp.y"
3095        { yyval.Number = atoi(String(String("6") + yyvsp[0].String).c_str()); }
3096        break;
3097    
3098      case 136:
3099    #line 287 "lscp.y"
3100        { yyval.Number = atoi(String(String("7") + yyvsp[0].String).c_str()); }
3101        break;
3102    
3103      case 137:
3104    #line 288 "lscp.y"
3105        { yyval.Number = atoi(String(String("8") + yyvsp[0].String).c_str()); }
3106        break;
3107    
3108      case 138:
3109    #line 289 "lscp.y"
3110        { yyval.Number = atoi(String(String("9") + yyvsp[0].String).c_str()); }
3111        break;
3112    
3113      case 139:
3114    #line 291 "lscp.y"
3115        { yyval.Char = 'A'; }
3116        break;
3117    
3118      case 140:
3119    #line 291 "lscp.y"
3120        { yyval.Char = 'B'; }
3121        break;
3122    
3123      case 141:
3124    #line 291 "lscp.y"
3125        { yyval.Char = 'C'; }
3126        break;
3127    
3128      case 142:
3129    #line 291 "lscp.y"
3130        { yyval.Char = 'D'; }
3131        break;
3132    
3133      case 143:
3134    #line 291 "lscp.y"
3135        { yyval.Char = 'E'; }
3136        break;
3137    
3138      case 144:
3139    #line 291 "lscp.y"
3140        { yyval.Char = 'F'; }
3141        break;
3142    
3143      case 145:
3144    #line 291 "lscp.y"
3145        { yyval.Char = 'G'; }
3146        break;
3147    
3148      case 146:
3149    #line 291 "lscp.y"
3150        { yyval.Char = 'H'; }
3151        break;
3152    
3153      case 147:
3154    #line 291 "lscp.y"
3155        { yyval.Char = 'I'; }
3156        break;
3157    
3158      case 148:
3159    #line 291 "lscp.y"
3160        { yyval.Char = 'J'; }
3161        break;
3162    
3163      case 149:
3164    #line 291 "lscp.y"
3165        { yyval.Char = 'K'; }
3166        break;
3167    
3168      case 150:
3169    #line 291 "lscp.y"
3170        { yyval.Char = 'L'; }
3171        break;
3172    
3173      case 151:
3174    #line 291 "lscp.y"
3175        { yyval.Char = 'M'; }
3176        break;
3177    
3178      case 152:
3179    #line 291 "lscp.y"
3180        { yyval.Char = 'N'; }
3181        break;
3182    
3183      case 153:
3184    #line 291 "lscp.y"
3185        { yyval.Char = 'O'; }
3186        break;
3187    
3188      case 154:
3189    #line 291 "lscp.y"
3190        { yyval.Char = 'P'; }
3191        break;
3192    
3193      case 155:
3194    #line 291 "lscp.y"
3195        { yyval.Char = 'Q'; }
3196        break;
3197    
3198      case 156:
3199    #line 291 "lscp.y"
3200        { yyval.Char = 'R'; }
3201        break;
3202    
3203      case 157:
3204    #line 291 "lscp.y"
3205        { yyval.Char = 'S'; }
3206        break;
3207    
3208      case 158:
3209    #line 291 "lscp.y"
3210        { yyval.Char = 'T'; }
3211        break;
3212    
3213      case 159:
3214    #line 291 "lscp.y"
3215        { yyval.Char = 'U'; }
3216        break;
3217    
3218      case 160:
3219    #line 291 "lscp.y"
3220        { yyval.Char = 'V'; }
3221        break;
3222    
3223      case 161:
3224    #line 291 "lscp.y"
3225        { yyval.Char = 'W'; }
3226        break;
3227    
3228      case 162:
3229    #line 291 "lscp.y"
3230        { yyval.Char = 'X'; }
3231        break;
3232    
3233      case 163:
3234    #line 291 "lscp.y"
3235        { yyval.Char = 'Y'; }
3236        break;
3237    
3238      case 164:
3239    #line 291 "lscp.y"
3240        { yyval.Char = 'Z'; }
3241        break;
3242    
3243      case 165:
3244    #line 292 "lscp.y"
3245        { yyval.Char = 'a'; }
3246        break;
3247    
3248      case 166:
3249    #line 292 "lscp.y"
3250        { yyval.Char = 'b'; }
3251        break;
3252    
3253      case 167:
3254    #line 292 "lscp.y"
3255        { yyval.Char = 'c'; }
3256        break;
3257    
3258      case 168:
3259    #line 292 "lscp.y"
3260        { yyval.Char = 'd'; }
3261        break;
3262    
3263      case 169:
3264    #line 292 "lscp.y"
3265        { yyval.Char = 'e'; }
3266        break;
3267    
3268      case 170:
3269    #line 292 "lscp.y"
3270        { yyval.Char = 'f'; }
3271        break;
3272    
3273      case 171:
3274    #line 292 "lscp.y"
3275        { yyval.Char = 'g'; }
3276        break;
3277    
3278      case 172:
3279    #line 292 "lscp.y"
3280        { yyval.Char = 'h'; }
3281        break;
3282    
3283      case 173:
3284    #line 292 "lscp.y"
3285        { yyval.Char = 'i'; }
3286        break;
3287    
3288      case 174:
3289    #line 292 "lscp.y"
3290        { yyval.Char = 'j'; }
3291        break;
3292    
3293      case 175:
3294    #line 292 "lscp.y"
3295        { yyval.Char = 'k'; }
3296        break;
3297    
3298      case 176:
3299    #line 292 "lscp.y"
3300        { yyval.Char = 'l'; }
3301        break;
3302    
3303      case 177:
3304    #line 292 "lscp.y"
3305        { yyval.Char = 'm'; }
3306        break;
3307    
3308      case 178:
3309    #line 292 "lscp.y"
3310        { yyval.Char = 'n'; }
3311        break;
3312    
3313      case 179:
3314    #line 292 "lscp.y"
3315        { yyval.Char = 'o'; }
3316        break;
3317    
3318      case 180:
3319    #line 292 "lscp.y"
3320        { yyval.Char = 'p'; }
3321        break;
3322    
3323      case 181:
3324    #line 292 "lscp.y"
3325        { yyval.Char = 'q'; }
3326        break;
3327    
3328      case 182:
3329    #line 292 "lscp.y"
3330        { yyval.Char = 'r'; }
3331        break;
3332    
3333      case 183:
3334    #line 292 "lscp.y"
3335        { yyval.Char = 's'; }
3336        break;
3337    
3338      case 184:
3339    #line 292 "lscp.y"
3340        { yyval.Char = 't'; }
3341        break;
3342    
3343      case 185:
3344    #line 292 "lscp.y"
3345        { yyval.Char = 'u'; }
3346        break;
3347    
3348      case 186:
3349    #line 292 "lscp.y"
3350        { yyval.Char = 'v'; }
3351        break;
3352    
3353      case 187:
3354    #line 292 "lscp.y"
3355        { yyval.Char = 'w'; }
3356        break;
3357    
3358      case 188:
3359    #line 292 "lscp.y"
3360        { yyval.Char = 'x'; }
3361        break;
3362    
3363      case 189:
3364    #line 292 "lscp.y"
3365        { yyval.Char = 'y'; }
3366        break;
3367    
3368      case 190:
3369    #line 292 "lscp.y"
3370        { yyval.Char = 'z'; }
3371        break;
3372    
3373      case 191:
3374    #line 293 "lscp.y"
3375        { yyval.Char = '0'; }
3376        break;
3377    
3378      case 192:
3379    #line 293 "lscp.y"
3380        { yyval.Char = '1'; }
3381        break;
3382    
3383      case 193:
3384    #line 293 "lscp.y"
3385        { yyval.Char = '2'; }
3386        break;
3387    
3388      case 194:
3389    #line 293 "lscp.y"
3390        { yyval.Char = '3'; }
3391        break;
3392    
3393      case 195:
3394    #line 293 "lscp.y"
3395        { yyval.Char = '4'; }
3396        break;
3397    
3398      case 196:
3399    #line 293 "lscp.y"
3400        { yyval.Char = '5'; }
3401        break;
3402    
3403      case 197:
3404    #line 293 "lscp.y"
3405        { yyval.Char = '6'; }
3406        break;
3407    
3408      case 198:
3409    #line 293 "lscp.y"
3410        { yyval.Char = '7'; }
3411        break;
3412    
3413      case 199:
3414    #line 293 "lscp.y"
3415        { yyval.Char = '8'; }
3416        break;
3417    
3418      case 200:
3419    #line 293 "lscp.y"
3420        { yyval.Char = '9'; }
3421        break;
3422    
3423      case 201:
3424    #line 294 "lscp.y"
3425        { yyval.Char = '!'; }
3426        break;
3427    
3428      case 202:
3429    #line 294 "lscp.y"
3430        { yyval.Char = '#'; }
3431        break;
3432    
3433      case 203:
3434    #line 294 "lscp.y"
3435        { yyval.Char = '$'; }
3436        break;
3437    
3438      case 204:
3439    #line 294 "lscp.y"
3440        { yyval.Char = '%'; }
3441        break;
3442    
3443      case 205:
3444    #line 294 "lscp.y"
3445        { yyval.Char = '&'; }
3446        break;
3447    
3448      case 206:
3449    #line 294 "lscp.y"
3450        { yyval.Char = '('; }
3451        break;
3452    
3453      case 207:
3454    #line 294 "lscp.y"
3455        { yyval.Char = ')'; }
3456        break;
3457    
3458      case 208:
3459    #line 294 "lscp.y"
3460        { yyval.Char = '*'; }
3461        break;
3462    
3463      case 209:
3464    #line 294 "lscp.y"
3465        { yyval.Char = '+'; }
3466        break;
3467    
3468      case 210:
3469    #line 294 "lscp.y"
3470        { yyval.Char = '-'; }
3471        break;
3472    
3473      case 211:
3474    #line 294 "lscp.y"
3475        { yyval.Char = '.'; }
3476        break;
3477    
3478      case 212:
3479    #line 294 "lscp.y"
3480        { yyval.Char = ','; }
3481        break;
3482    
3483      case 213:
3484    #line 294 "lscp.y"
3485        { yyval.Char = '/'; }
3486        break;
3487    
3488      case 214:
3489    #line 295 "lscp.y"
3490        { yyval.Char = ':'; }
3491        break;
3492    
3493      case 215:
3494    #line 295 "lscp.y"
3495        { yyval.Char = ';'; }
3496        break;
3497    
3498      case 216:
3499    #line 295 "lscp.y"
3500        { yyval.Char = '<'; }
3501        break;
3502    
3503      case 217:
3504    #line 295 "lscp.y"
3505        { yyval.Char = '='; }
3506        break;
3507    
3508      case 218:
3509    #line 295 "lscp.y"
3510        { yyval.Char = '>'; }
3511        break;
3512    
3513      case 219:
3514    #line 295 "lscp.y"
3515        { yyval.Char = '?'; }
3516        break;
3517    
3518      case 220:
3519    #line 295 "lscp.y"
3520        { yyval.Char = '@'; }
3521        break;
3522    
3523      case 221:
3524    #line 296 "lscp.y"
3525        { yyval.Char = '['; }
3526        break;
3527    
3528      case 222:
3529    #line 296 "lscp.y"
3530        { yyval.Char = '\\'; }
3531        break;
3532    
3533      case 223:
3534    #line 296 "lscp.y"
3535        { yyval.Char = ']'; }
3536        break;
3537    
3538      case 224:
3539    #line 296 "lscp.y"
3540        { yyval.Char = '^'; }
3541        break;
3542    
3543      case 225:
3544    #line 296 "lscp.y"
3545        { yyval.Char = '_'; }
3546        break;
3547    
3548      case 226:
3549    #line 297 "lscp.y"
3550        { yyval.Char = '{'; }
3551        break;
3552    
3553      case 227:
3554    #line 297 "lscp.y"
3555        { yyval.Char = '|'; }
3556        break;
3557    
3558      case 228:
3559    #line 297 "lscp.y"
3560        { yyval.Char = '}'; }
3561        break;
3562    
3563      case 229:
3564    #line 297 "lscp.y"
3565        { yyval.Char = '~'; }
3566        break;
3567    
3568      case 230:
3569    #line 298 "lscp.y"
3570        { yyval.Char = '\200'; }
3571        break;
3572    
3573      case 231:
3574    #line 298 "lscp.y"
3575        { yyval.Char = '\201'; }
3576        break;
3577    
3578      case 232:
3579    #line 298 "lscp.y"
3580        { yyval.Char = '\202'; }
3581        break;
3582    
3583      case 233:
3584    #line 299 "lscp.y"
3585        { yyval.Char = '\203'; }
3586        break;
3587    
3588      case 234:
3589    #line 299 "lscp.y"
3590        { yyval.Char = '\204'; }
3591        break;
3592    
3593      case 235:
3594    #line 299 "lscp.y"
3595        { yyval.Char = '\205'; }
3596        break;
3597    
3598      case 236:
3599    #line 300 "lscp.y"
3600        { yyval.Char = '\206'; }
3601        break;
3602    
3603      case 237:
3604    #line 300 "lscp.y"
3605        { yyval.Char = '\207'; }
3606        break;
3607    
3608      case 238:
3609    #line 300 "lscp.y"
3610        { yyval.Char = '\210'; }
3611        break;
3612    
3613      case 239:
3614    #line 301 "lscp.y"
3615        { yyval.Char = '\211'; }
3616        break;
3617    
3618      case 240:
3619    #line 301 "lscp.y"
3620        { yyval.Char = '\212'; }
3621        break;
3622    
3623      case 241:
3624    #line 301 "lscp.y"
3625        { yyval.Char = '\213'; }
3626        break;
3627    
3628      case 242:
3629    #line 302 "lscp.y"
3630        { yyval.Char = '\214'; }
3631        break;
3632    
3633      case 243:
3634    #line 302 "lscp.y"
3635        { yyval.Char = '\215'; }
3636        break;
3637    
3638      case 244:
3639    #line 302 "lscp.y"
3640        { yyval.Char = '\216'; }
3641        break;
3642    
3643      case 245:
3644    #line 303 "lscp.y"
3645        { yyval.Char = '\217'; }
3646        break;
3647    
3648      case 246:
3649    #line 303 "lscp.y"
3650        { yyval.Char = '\220'; }
3651        break;
3652    
3653      case 247:
3654    #line 303 "lscp.y"
3655        { yyval.Char = '\221'; }
3656        break;
3657    
3658      case 248:
3659    #line 304 "lscp.y"
3660        { yyval.Char = '\222'; }
3661        break;
3662    
3663      case 249:
3664    #line 304 "lscp.y"
3665        { yyval.Char = '\223'; }
3666        break;
3667    
3668      case 250:
3669    #line 304 "lscp.y"
3670        { yyval.Char = '\224'; }
3671        break;
3672    
3673      case 251:
3674    #line 305 "lscp.y"
3675        { yyval.Char = '\225'; }
3676        break;
3677    
3678      case 252:
3679    #line 305 "lscp.y"
3680        { yyval.Char = '\226'; }
3681        break;
3682    
3683      case 253:
3684    #line 305 "lscp.y"
3685        { yyval.Char = '\227'; }
3686        break;
3687    
3688      case 254:
3689    #line 306 "lscp.y"
3690        { yyval.Char = '\230'; }
3691        break;
3692    
3693      case 255:
3694    #line 306 "lscp.y"
3695        { yyval.Char = '\231'; }
3696        break;
3697    
3698      case 256:
3699    #line 306 "lscp.y"
3700        { yyval.Char = '\232'; }
3701        break;
3702    
3703      case 257:
3704    #line 307 "lscp.y"
3705        { yyval.Char = '\233'; }
3706        break;
3707    
3708      case 258:
3709    #line 307 "lscp.y"
3710        { yyval.Char = '\234'; }
3711        break;
3712    
3713      case 259:
3714    #line 307 "lscp.y"
3715        { yyval.Char = '\235'; }
3716        break;
3717    
3718      case 260:
3719    #line 308 "lscp.y"
3720        { yyval.Char = '\236'; }
3721        break;
3722    
3723      case 261:
3724    #line 308 "lscp.y"
3725        { yyval.Char = '\237'; }
3726        break;
3727    
3728      case 262:
3729    #line 308 "lscp.y"
3730        { yyval.Char = '\240'; }
3731        break;
3732    
3733      case 263:
3734    #line 309 "lscp.y"
3735        { yyval.Char = '\241'; }
3736        break;
3737    
3738      case 264:
3739    #line 309 "lscp.y"
3740        { yyval.Char = '\242'; }
3741        break;
3742    
3743      case 265:
3744    #line 309 "lscp.y"
3745        { yyval.Char = '\243'; }
3746        break;
3747    
3748      case 266:
3749    #line 310 "lscp.y"
3750        { yyval.Char = '\244'; }
3751        break;
3752    
3753      case 267:
3754    #line 310 "lscp.y"
3755        { yyval.Char = '\245'; }
3756        break;
3757    
3758      case 268:
3759    #line 310 "lscp.y"
3760        { yyval.Char = '\246'; }
3761        break;
3762    
3763      case 269:
3764    #line 311 "lscp.y"
3765        { yyval.Char = '\247'; }
3766        break;
3767    
3768      case 270:
3769    #line 311 "lscp.y"
3770        { yyval.Char = '\250'; }
3771        break;
3772    
3773      case 271:
3774    #line 311 "lscp.y"
3775        { yyval.Char = '\251'; }
3776        break;
3777    
3778      case 272:
3779    #line 312 "lscp.y"
3780        { yyval.Char = '\252'; }
3781        break;
3782    
3783      case 273:
3784    #line 312 "lscp.y"
3785        { yyval.Char = '\253'; }
3786        break;
3787    
3788      case 274:
3789    #line 312 "lscp.y"
3790        { yyval.Char = '\254'; }
3791        break;
3792    
3793      case 275:
3794    #line 313 "lscp.y"
3795        { yyval.Char = '\255'; }
3796        break;
3797    
3798      case 276:
3799    #line 313 "lscp.y"
3800        { yyval.Char = '\256'; }
3801        break;
3802    
3803      case 277:
3804    #line 313 "lscp.y"
3805        { yyval.Char = '\257'; }
3806        break;
3807    
3808      case 278:
3809    #line 314 "lscp.y"
3810        { yyval.Char = '\260'; }
3811        break;
3812    
3813      case 279:
3814    #line 314 "lscp.y"
3815        { yyval.Char = '\261'; }
3816        break;
3817    
3818      case 280:
3819    #line 314 "lscp.y"
3820        { yyval.Char = '\262'; }
3821        break;
3822    
3823      case 281:
3824    #line 315 "lscp.y"
3825        { yyval.Char = '\263'; }
3826        break;
3827    
3828      case 282:
3829    #line 315 "lscp.y"
3830        { yyval.Char = '\264'; }
3831        break;
3832    
3833      case 283:
3834    #line 315 "lscp.y"
3835        { yyval.Char = '\265'; }
3836        break;
3837    
3838      case 284:
3839    #line 316 "lscp.y"
3840        { yyval.Char = '\266'; }
3841        break;
3842    
3843      case 285:
3844    #line 316 "lscp.y"
3845        { yyval.Char = '\267'; }
3846        break;
3847    
3848      case 286:
3849    #line 316 "lscp.y"
3850        { yyval.Char = '\270'; }
3851        break;
3852    
3853      case 287:
3854    #line 317 "lscp.y"
3855        { yyval.Char = '\271'; }
3856        break;
3857    
3858      case 288:
3859    #line 317 "lscp.y"
3860        { yyval.Char = '\272'; }
3861        break;
3862    
3863      case 289:
3864    #line 317 "lscp.y"
3865        { yyval.Char = '\273'; }
3866        break;
3867    
3868      case 290:
3869    #line 318 "lscp.y"
3870        { yyval.Char = '\274'; }
3871        break;
3872    
3873      case 291:
3874    #line 318 "lscp.y"
3875        { yyval.Char = '\275'; }
3876        break;
3877    
3878      case 292:
3879    #line 318 "lscp.y"
3880        { yyval.Char = '\276'; }
3881        break;
3882    
3883      case 293:
3884    #line 319 "lscp.y"
3885        { yyval.Char = '\277'; }
3886        break;
3887    
3888      case 294:
3889    #line 319 "lscp.y"
3890        { yyval.Char = '\300'; }
3891        break;
3892    
3893      case 295:
3894    #line 319 "lscp.y"
3895        { yyval.Char = '\301'; }
3896        break;
3897    
3898      case 296:
3899    #line 320 "lscp.y"
3900        { yyval.Char = '\302'; }
3901        break;
3902    
3903      case 297:
3904    #line 320 "lscp.y"
3905        { yyval.Char = '\303'; }
3906        break;
3907    
3908      case 298:
3909    #line 320 "lscp.y"
3910        { yyval.Char = '\304'; }
3911        break;
3912    
3913      case 299:
3914    #line 321 "lscp.y"
3915        { yyval.Char = '\305'; }
3916        break;
3917    
3918      case 300:
3919    #line 321 "lscp.y"
3920        { yyval.Char = '\306'; }
3921        break;
3922    
3923      case 301:
3924    #line 321 "lscp.y"
3925        { yyval.Char = '\307'; }
3926        break;
3927    
3928      case 302:
3929    #line 322 "lscp.y"
3930        { yyval.Char = '\310'; }
3931        break;
3932    
3933      case 303:
3934    #line 322 "lscp.y"
3935        { yyval.Char = '\311'; }
3936        break;
3937    
3938      case 304:
3939    #line 322 "lscp.y"
3940        { yyval.Char = '\312'; }
3941        break;
3942    
3943      case 305:
3944    #line 323 "lscp.y"
3945        { yyval.Char = '\313'; }
3946        break;
3947    
3948      case 306:
3949    #line 323 "lscp.y"
3950        { yyval.Char = '\314'; }
3951        break;
3952    
3953      case 307:
3954    #line 323 "lscp.y"
3955        { yyval.Char = '\315'; }
3956        break;
3957    
3958      case 308:
3959    #line 324 "lscp.y"
3960        { yyval.Char = '\316'; }
3961        break;
3962    
3963      case 309:
3964    #line 324 "lscp.y"
3965        { yyval.Char = '\317'; }
3966        break;
3967    
3968      case 310:
3969    #line 324 "lscp.y"
3970        { yyval.Char = '\320'; }
3971        break;
3972    
3973      case 311:
3974    #line 325 "lscp.y"
3975        { yyval.Char = '\321'; }
3976        break;
3977    
3978      case 312:
3979    #line 325 "lscp.y"
3980        { yyval.Char = '\322'; }
3981        break;
3982    
3983      case 313:
3984    #line 325 "lscp.y"
3985        { yyval.Char = '\323'; }
3986        break;
3987    
3988      case 314:
3989    #line 326 "lscp.y"
3990        { yyval.Char = '\324'; }
3991        break;
3992    
3993      case 315:
3994    #line 326 "lscp.y"
3995        { yyval.Char = '\325'; }
3996        break;
3997    
3998      case 316:
3999    #line 326 "lscp.y"
4000        { yyval.Char = '\326'; }
4001        break;
4002    
4003      case 317:
4004    #line 327 "lscp.y"
4005        { yyval.Char = '\327'; }
4006        break;
4007    
4008      case 318:
4009    #line 327 "lscp.y"
4010        { yyval.Char = '\330'; }
4011        break;
4012    
4013      case 319:
4014    #line 327 "lscp.y"
4015        { yyval.Char = '\331'; }
4016        break;
4017    
4018      case 320:
4019    #line 328 "lscp.y"
4020        { yyval.Char = '\332'; }
4021        break;
4022    
4023      case 321:
4024    #line 328 "lscp.y"
4025        { yyval.Char = '\333'; }
4026        break;
4027    
4028      case 322:
4029    #line 328 "lscp.y"
4030        { yyval.Char = '\334'; }
4031        break;
4032    
4033      case 323:
4034    #line 329 "lscp.y"
4035        { yyval.Char = '\335'; }
4036        break;
4037    
4038      case 324:
4039    #line 329 "lscp.y"
4040        { yyval.Char = '\336'; }
4041        break;
4042    
4043      case 325:
4044    #line 329 "lscp.y"
4045        { yyval.Char = '\337'; }
4046        break;
4047    
4048      case 326:
4049    #line 330 "lscp.y"
4050        { yyval.Char = '\340'; }
4051        break;
4052    
4053      case 327:
4054    #line 330 "lscp.y"
4055        { yyval.Char = '\341'; }
4056        break;
4057    
4058      case 328:
4059    #line 330 "lscp.y"
4060        { yyval.Char = '\342'; }
4061        break;
4062    
4063      case 329:
4064    #line 331 "lscp.y"
4065        { yyval.Char = '\343'; }
4066        break;
4067    
4068      case 330:
4069    #line 331 "lscp.y"
4070        { yyval.Char = '\344'; }
4071        break;
4072    
4073      case 331:
4074    #line 331 "lscp.y"
4075        { yyval.Char = '\345'; }
4076        break;
4077    
4078      case 332:
4079    #line 332 "lscp.y"
4080        { yyval.Char = '\346'; }
4081        break;
4082    
4083      case 333:
4084    #line 332 "lscp.y"
4085        { yyval.Char = '\347'; }
4086        break;
4087    
4088      case 334:
4089    #line 332 "lscp.y"
4090        { yyval.Char = '\350'; }
4091        break;
4092    
4093      case 335:
4094    #line 333 "lscp.y"
4095        { yyval.Char = '\351'; }
4096        break;
4097    
4098      case 336:
4099    #line 333 "lscp.y"
4100        { yyval.Char = '\352'; }
4101        break;
4102    
4103      case 337:
4104    #line 333 "lscp.y"
4105        { yyval.Char = '\353'; }
4106        break;
4107    
4108      case 338:
4109    #line 334 "lscp.y"
4110        { yyval.Char = '\354'; }
4111        break;
4112    
4113      case 339:
4114    #line 334 "lscp.y"
4115        { yyval.Char = '\355'; }
4116        break;
4117    
4118      case 340:
4119    #line 334 "lscp.y"
4120        { yyval.Char = '\356'; }
4121        break;
4122    
4123      case 341:
4124    #line 335 "lscp.y"
4125        { yyval.Char = '\357'; }
4126        break;
4127    
4128      case 342:
4129    #line 335 "lscp.y"
4130        { yyval.Char = '\360'; }
4131        break;
4132    
4133      case 343:
4134    #line 335 "lscp.y"
4135        { yyval.Char = '\361'; }
4136        break;
4137    
4138      case 344:
4139    #line 336 "lscp.y"
4140        { yyval.Char = '\362'; }
4141        break;
4142    
4143      case 345:
4144    #line 336 "lscp.y"
4145        { yyval.Char = '\363'; }
4146        break;
4147    
4148      case 346:
4149    #line 336 "lscp.y"
4150        { yyval.Char = '\364'; }
4151        break;
4152    
4153      case 347:
4154    #line 337 "lscp.y"
4155        { yyval.Char = '\365'; }
4156        break;
4157    
4158      case 348:
4159    #line 337 "lscp.y"
4160        { yyval.Char = '\366'; }
4161        break;
4162    
4163      case 349:
4164    #line 337 "lscp.y"
4165        { yyval.Char = '\367'; }
4166        break;
4167    
4168      case 350:
4169    #line 338 "lscp.y"
4170        { yyval.Char = '\370'; }
4171        break;
4172    
4173      case 351:
4174    #line 338 "lscp.y"
4175        { yyval.Char = '\371'; }
4176        break;
4177    
4178      case 352:
4179    #line 338 "lscp.y"
4180        { yyval.Char = '\372'; }
4181        break;
4182    
4183      case 353:
4184    #line 339 "lscp.y"
4185        { yyval.Char = '\373'; }
4186        break;
4187    
4188      case 354:
4189    #line 339 "lscp.y"
4190        { yyval.Char = '\374'; }
4191        break;
4192    
4193      case 355:
4194    #line 339 "lscp.y"
4195        { yyval.Char = '\375'; }
4196        break;
4197    
4198      case 356:
4199    #line 340 "lscp.y"
4200        { yyval.Char = '\376'; }
4201        break;
4202    
4203      case 357:
4204    #line 340 "lscp.y"
4205        { yyval.Char = '\377'; }
4206        break;
4207    
4208      case 358:
4209    #line 343 "lscp.y"
4210        { yyval.String = " ";      }
4211        break;
4212    
4213      case 360:
4214    #line 345 "lscp.y"
4215        { yyval.String = yyvsp[-1].String + " "; }
4216        break;
4217    
4218      case 361:
4219    #line 346 "lscp.y"
4220        { yyval.String = yyvsp[-1].String + yyvsp[0].String;  }
4221        break;
4222    
4223      case 362:
4224    #line 349 "lscp.y"
4225        { yyval.String = yyvsp[-1].String; }
4226        break;
4227    
4228      case 363:
4229    #line 350 "lscp.y"
4230        { yyval.String = yyvsp[-1].String; }
4231        break;
4232    
4233    
4234      }      }
4235    
4236  /* Line 999 of yacc.c.  */  /* Line 999 of yacc.c.  */
4237  #line 1567 "y.tab.c"  #line 4238 "y.tab.c"
4238    
4239    yyvsp -= yylen;    yyvsp -= yylen;
4240    yyssp -= yylen;    yyssp -= yylen;
# Line 1757  yyreturn: Line 4428  yyreturn:
4428  }  }
4429    
4430    
4431  #line 210 "lscp.y"  #line 506 "lscp.y"
4432    
4433    
4434  /**  /**
# Line 1768  void yyerror(const char* s) { Line 4439  void yyerror(const char* s) {
4439  }  }
4440    
4441  /**  /**
4442   * Clears input buffer and restarts scanner.   * Clears input buffer.
4443   */   */
4444  void restart(yyparse_param_t* pparam, int& yychar) {  void restart(yyparse_param_t* pparam, int& yychar) {
4445      // restart scanner      bytes = 0;
4446      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;  
4447  }  }
4448    
4449    

Legend:
Removed from v.123  
changed lines
  Added in v.226

  ViewVC Help
Powered by ViewVC