/* A Bison parser, made by GNU Bison 2.1. */ /* Skeleton parser for Yacc-like parsing with Bison, Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* As a special exception, when this file is copied by Bison into a Bison output file, you may use that output file without restriction. This special exception was added by the Free Software Foundation in version 1.24 of Bison. */ /* Written by Richard Stallman by simplifying the original so called ``semantic'' parser. */ /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. There are some unavoidable exceptions within include files to define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ /* Identify Bison output. */ #define YYBISON 1 /* Bison version. */ #define YYBISON_VERSION "2.1" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ #define YYPURE 0 /* Using locations. */ #define YYLSP_NEEDED 0 /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE /* Put the tokens into the symbol table, so that GDB and other debuggers know about them. */ enum yytokentype { KEY_VAR = 258, KEY_VEC = 259, KEY_CONST = 260, KEY_UNIT = 261, KEY_FUNC_I = 262, KEY_FUNC_D = 263, KEY_FUNC_NN = 264, KEY_FUNC_ND = 265, KEY_FUNC_DD = 266, KEY_FUNC_NND = 267, KEY_FUNC_PPD = 268, KEY_FUNC_PPPD = 269, KEY_FUNC_PPPPD = 270, KEY_FUNC_PPPPPD = 271, INDEX = 272, DATE = 273, VAR_D = 274, VEC_D = 275, CONSTANT = 276, UCONSTANT = 277, FUNC_I = 278, FUNC_D = 279, FUNC_NN = 280, FUNC_ND = 281, FUNC_DD = 282, FUNC_NND = 283, FUNC_PPD = 284, FUNC_PPPD = 285, FUNC_PPPPD = 286, FUNC_PPPPPD = 287, ABOVE = 288, ABSOLUTE = 289, ALIAS = 290, ALT = 291, ALTXAXIS = 292, ALTYAXIS = 293, ANGLE = 294, ANTIALIASING = 295, APPEND = 296, ARRANGE = 297, ARROW = 298, ASCENDING = 299, ASPLINE = 300, AUTO = 301, AUTOSCALE = 302, AUTOTICKS = 303, AVALUE = 304, AVG = 305, BACKGROUND = 306, BAR = 307, BARDY = 308, BARDYDY = 309, BASELINE = 310, BATCH = 311, BEGIN = 312, BELOW = 313, BETWEEN = 314, BLACKMAN = 315, BLOCK = 316, BOTH = 317, BOTTOM = 318, BOX = 319, CD = 320, CENTER = 321, CHAR = 322, CHART = 323, CHRSTR = 324, CLEAR = 325, CLICK = 326, CLIP = 327, CLOSE = 328, COEFFICIENTS = 329, COLOR = 330, COMMENT = 331, COMPLEX = 332, COMPUTING = 333, CONSTRAINTS = 334, COPY = 335, CYCLE = 336, DAYMONTH = 337, DAYOFWEEKL = 338, DAYOFWEEKS = 339, DAYOFYEAR = 340, DDMMYY = 341, DECIMAL = 342, DEF = 343, DEFAULT = 344, DEFINE = 345, DEGREESLAT = 346, DEGREESLON = 347, DEGREESMMLAT = 348, DEGREESMMLON = 349, DEGREESMMSSLAT = 350, DEGREESMMSSLON = 351, DESCENDING = 352, DESCRIPTION = 353, DEVICE = 354, DFT = 355, DIFFERENCE = 356, DISK = 357, DOWN = 358, DPI = 359, DROP = 360, DROPLINE = 361, ECHO = 362, ELLIPSE = 363, ENGINEERING = 364, ERRORBAR = 365, EXIT = 366, EXPONENTIAL = 367, FFT = 368, FILEP = 369, FILL = 370, FIT = 371, FIXED = 372, FIXEDPOINT = 373, FLUSH = 374, FOCUS = 375, FOLLOWS = 376, FONTP = 377, FORCE = 378, FORMAT = 379, FORMULA = 380, FRAMEP = 381, FREE = 382, FREQUENCY = 383, FROM = 384, GENERAL = 385, GETP = 386, GRAPH = 387, GRAPHNO = 388, GRID = 389, HAMMING = 390, HANNING = 391, HARDCOPY = 392, HBAR = 393, HELP = 394, HGAP = 395, HIDDEN = 396, HISTOGRAM = 397, HMS = 398, HORIZI = 399, HORIZONTAL = 400, HORIZO = 401, ID = 402, IFILTER = 403, IMAX = 404, IMIN = 405, IN = 406, INCREMENT = 407, INOUT = 408, INT = 409, INTEGRATE = 410, INTERPOLATE = 411, INVDFT = 412, INVERT = 413, INVFFT = 414, JUST = 415, KILL = 416, LABEL = 417, LANDSCAPE = 418, LAYOUT = 419, LEFT = 420, LEGEND = 421, LENGTH = 422, LINE = 423, LINEAR = 424, LINESTYLE = 425, LINEWIDTH = 426, LINK = 427, LOAD = 428, LOCTYPE = 429, LOG = 430, LOGARITHMIC = 431, LOGIT = 432, LOGX = 433, LOGXY = 434, LOGY = 435, MAGIC = 436, MAGNITUDE = 437, MAJOR = 438, MAP = 439, MAXP = 440, MESH = 441, MINP = 442, MINOR = 443, MMDD = 444, MMDDHMS = 445, MMDDYY = 446, MMDDYYHMS = 447, MMSSLAT = 448, MMSSLON = 449, MMYY = 450, MONTHDAY = 451, MONTHL = 452, MONTHS = 453, MONTHSY = 454, MOVE = 455, NEGATE = 456, NEW = 457, NONE = 458, NONLFIT = 459, NORMAL = 460, NXY = 461, OFF = 462, OFFSET = 463, OFFSETX = 464, OFFSETY = 465, OFILTER = 466, ON = 467, ONREAD = 468, OP = 469, OPPOSITE = 470, OUT = 471, PAGE = 472, PARA = 473, PARAMETERS = 474, PARZEN = 475, PATTERN = 476, PERIOD = 477, PERP = 478, PHASE = 479, PIE = 480, PIPE = 481, PLACE = 482, POINT = 483, POLAR = 484, POLYI = 485, POLYO = 486, POP = 487, PORTRAIT = 488, POWER = 489, PREC = 490, PREPEND = 491, PRINT = 492, PS = 493, PUSH = 494, PUTP = 495, RAND = 496, READ = 497, REAL = 498, RECIPROCAL = 499, REDRAW = 500, REFERENCE = 501, REGNUM = 502, REGRESS = 503, RESIZE = 504, RESTRICT = 505, REVERSE = 506, RIGHT = 507, RISER = 508, ROT = 509, ROUNDED = 510, RSUM = 511, RULE = 512, RUNAVG = 513, RUNMAX = 514, RUNMED = 515, RUNMIN = 516, RUNSTD = 517, SAVEALL = 518, SCALE = 519, SCIENTIFIC = 520, SCROLL = 521, SD = 522, SET = 523, SETNUM = 524, SFORMAT = 525, SIGN = 526, SIZE = 527, SKIP = 528, SLEEP = 529, SMITH = 530, SORT = 531, SOURCE = 532, SPEC = 533, SPLINE = 534, SPLIT = 535, STACK = 536, STACKED = 537, STACKEDBAR = 538, STACKEDHBAR = 539, STAGGER = 540, START = 541, STOP = 542, STRING = 543, SUM = 544, SUBTITLE = 545, SWAP = 546, SYMBOL = 547, TARGET = 548, TICKLABEL = 549, TICKP = 550, TICKSP = 551, TIMER = 552, TIMESTAMP = 553, TITLE = 554, TO = 555, TOP = 556, TRIANGULAR = 557, TYPE = 558, UP = 559, UPDATEALL = 560, USE = 561, VERSION = 562, VERTI = 563, VERTICAL = 564, VERTO = 565, VGAP = 566, VIEW = 567, VX1 = 568, VX2 = 569, VXMAX = 570, VY1 = 571, VY2 = 572, VYMAX = 573, WELCH = 574, WITH = 575, WORLD = 576, WRAP = 577, WRITE = 578, WX1 = 579, WX2 = 580, WY1 = 581, WY2 = 582, X_TOK = 583, X0 = 584, X1 = 585, XAXES = 586, XAXIS = 587, XCOR = 588, XMAX = 589, XMIN = 590, XY = 591, XYAXES = 592, XYBOXPLOT = 593, XYCOLOR = 594, XYCOLPAT = 595, XYDX = 596, XYDXDX = 597, XYDXDXDYDY = 598, XYDXDY = 599, XYDY = 600, XYDYDY = 601, XYHILO = 602, XYR = 603, XYSIZE = 604, XYSTRING = 605, XYVMAP = 606, XYZ = 607, Y_TOK = 608, Y0 = 609, Y1 = 610, Y2 = 611, Y3 = 612, Y4 = 613, YAXES = 614, YAXIS = 615, YEAR = 616, YMAX = 617, YMIN = 618, YYMMDD = 619, YYMMDDHMS = 620, ZERO = 621, ZNORM = 622, FITPARM = 623, FITPMAX = 624, FITPMIN = 625, NUMBER = 626, NEW_TOKEN = 627, OR = 628, AND = 629, NE = 630, EQ = 631, GE = 632, LE = 633, LT = 634, GT = 635, NOT = 636, UMINUS = 637 }; #endif /* Tokens. */ #define KEY_VAR 258 #define KEY_VEC 259 #define KEY_CONST 260 #define KEY_UNIT 261 #define KEY_FUNC_I 262 #define KEY_FUNC_D 263 #define KEY_FUNC_NN 264 #define KEY_FUNC_ND 265 #define KEY_FUNC_DD 266 #define KEY_FUNC_NND 267 #define KEY_FUNC_PPD 268 #define KEY_FUNC_PPPD 269 #define KEY_FUNC_PPPPD 270 #define KEY_FUNC_PPPPPD 271 #define INDEX 272 #define DATE 273 #define VAR_D 274 #define VEC_D 275 #define CONSTANT 276 #define UCONSTANT 277 #define FUNC_I 278 #define FUNC_D 279 #define FUNC_NN 280 #define FUNC_ND 281 #define FUNC_DD 282 #define FUNC_NND 283 #define FUNC_PPD 284 #define FUNC_PPPD 285 #define FUNC_PPPPD 286 #define FUNC_PPPPPD 287 #define ABOVE 288 #define ABSOLUTE 289 #define ALIAS 290 #define ALT 291 #define ALTXAXIS 292 #define ALTYAXIS 293 #define ANGLE 294 #define ANTIALIASING 295 #define APPEND 296 #define ARRANGE 297 #define ARROW 298 #define ASCENDING 299 #define ASPLINE 300 #define AUTO 301 #define AUTOSCALE 302 #define AUTOTICKS 303 #define AVALUE 304 #define AVG 305 #define BACKGROUND 306 #define BAR 307 #define BARDY 308 #define BARDYDY 309 #define BASELINE 310 #define BATCH 311 #define BEGIN 312 #define BELOW 313 #define BETWEEN 314 #define BLACKMAN 315 #define BLOCK 316 #define BOTH 317 #define BOTTOM 318 #define BOX 319 #define CD 320 #define CENTER 321 #define CHAR 322 #define CHART 323 #define CHRSTR 324 #define CLEAR 325 #define CLICK 326 #define CLIP 327 #define CLOSE 328 #define COEFFICIENTS 329 #define COLOR 330 #define COMMENT 331 #define COMPLEX 332 #define COMPUTING 333 #define CONSTRAINTS 334 #define COPY 335 #define CYCLE 336 #define DAYMONTH 337 #define DAYOFWEEKL 338 #define DAYOFWEEKS 339 #define DAYOFYEAR 340 #define DDMMYY 341 #define DECIMAL 342 #define DEF 343 #define DEFAULT 344 #define DEFINE 345 #define DEGREESLAT 346 #define DEGREESLON 347 #define DEGREESMMLAT 348 #define DEGREESMMLON 349 #define DEGREESMMSSLAT 350 #define DEGREESMMSSLON 351 #define DESCENDING 352 #define DESCRIPTION 353 #define DEVICE 354 #define DFT 355 #define DIFFERENCE 356 #define DISK 357 #define DOWN 358 #define DPI 359 #define DROP 360 #define DROPLINE 361 #define ECHO 362 #define ELLIPSE 363 #define ENGINEERING 364 #define ERRORBAR 365 #define EXIT 366 #define EXPONENTIAL 367 #define FFT 368 #define FILEP 369 #define FILL 370 #define FIT 371 #define FIXED 372 #define FIXEDPOINT 373 #define FLUSH 374 #define FOCUS 375 #define FOLLOWS 376 #define FONTP 377 #define FORCE 378 #define FORMAT 379 #define FORMULA 380 #define FRAMEP 381 #define FREE 382 #define FREQUENCY 383 #define FROM 384 #define GENERAL 385 #define GETP 386 #define GRAPH 387 #define GRAPHNO 388 #define GRID 389 #define HAMMING 390 #define HANNING 391 #define HARDCOPY 392 #define HBAR 393 #define HELP 394 #define HGAP 395 #define HIDDEN 396 #define HISTOGRAM 397 #define HMS 398 #define HORIZI 399 #define HORIZONTAL 400 #define HORIZO 401 #define ID 402 #define IFILTER 403 #define IMAX 404 #define IMIN 405 #define IN 406 #define INCREMENT 407 #define INOUT 408 #define INT 409 #define INTEGRATE 410 #define INTERPOLATE 411 #define INVDFT 412 #define INVERT 413 #define INVFFT 414 #define JUST 415 #define KILL 416 #define LABEL 417 #define LANDSCAPE 418 #define LAYOUT 419 #define LEFT 420 #define LEGEND 421 #define LENGTH 422 #define LINE 423 #define LINEAR 424 #define LINESTYLE 425 #define LINEWIDTH 426 #define LINK 427 #define LOAD 428 #define LOCTYPE 429 #define LOG 430 #define LOGARITHMIC 431 #define LOGIT 432 #define LOGX 433 #define LOGXY 434 #define LOGY 435 #define MAGIC 436 #define MAGNITUDE 437 #define MAJOR 438 #define MAP 439 #define MAXP 440 #define MESH 441 #define MINP 442 #define MINOR 443 #define MMDD 444 #define MMDDHMS 445 #define MMDDYY 446 #define MMDDYYHMS 447 #define MMSSLAT 448 #define MMSSLON 449 #define MMYY 450 #define MONTHDAY 451 #define MONTHL 452 #define MONTHS 453 #define MONTHSY 454 #define MOVE 455 #define NEGATE 456 #define NEW 457 #define NONE 458 #define NONLFIT 459 #define NORMAL 460 #define NXY 461 #define OFF 462 #define OFFSET 463 #define OFFSETX 464 #define OFFSETY 465 #define OFILTER 466 #define ON 467 #define ONREAD 468 #define OP 469 #define OPPOSITE 470 #define OUT 471 #define PAGE 472 #define PARA 473 #define PARAMETERS 474 #define PARZEN 475 #define PATTERN 476 #define PERIOD 477 #define PERP 478 #define PHASE 479 #define PIE 480 #define PIPE 481 #define PLACE 482 #define POINT 483 #define POLAR 484 #define POLYI 485 #define POLYO 486 #define POP 487 #define PORTRAIT 488 #define POWER 489 #define PREC 490 #define PREPEND 491 #define PRINT 492 #define PS 493 #define PUSH 494 #define PUTP 495 #define RAND 496 #define READ 497 #define REAL 498 #define RECIPROCAL 499 #define REDRAW 500 #define REFERENCE 501 #define REGNUM 502 #define REGRESS 503 #define RESIZE 504 #define RESTRICT 505 #define REVERSE 506 #define RIGHT 507 #define RISER 508 #define ROT 509 #define ROUNDED 510 #define RSUM 511 #define RULE 512 #define RUNAVG 513 #define RUNMAX 514 #define RUNMED 515 #define RUNMIN 516 #define RUNSTD 517 #define SAVEALL 518 #define SCALE 519 #define SCIENTIFIC 520 #define SCROLL 521 #define SD 522 #define SET 523 #define SETNUM 524 #define SFORMAT 525 #define SIGN 526 #define SIZE 527 #define SKIP 528 #define SLEEP 529 #define SMITH 530 #define SORT 531 #define SOURCE 532 #define SPEC 533 #define SPLINE 534 #define SPLIT 535 #define STACK 536 #define STACKED 537 #define STACKEDBAR 538 #define STACKEDHBAR 539 #define STAGGER 540 #define START 541 #define STOP 542 #define STRING 543 #define SUM 544 #define SUBTITLE 545 #define SWAP 546 #define SYMBOL 547 #define TARGET 548 #define TICKLABEL 549 #define TICKP 550 #define TICKSP 551 #define TIMER 552 #define TIMESTAMP 553 #define TITLE 554 #define TO 555 #define TOP 556 #define TRIANGULAR 557 #define TYPE 558 #define UP 559 #define UPDATEALL 560 #define USE 561 #define VERSION 562 #define VERTI 563 #define VERTICAL 564 #define VERTO 565 #define VGAP 566 #define VIEW 567 #define VX1 568 #define VX2 569 #define VXMAX 570 #define VY1 571 #define VY2 572 #define VYMAX 573 #define WELCH 574 #define WITH 575 #define WORLD 576 #define WRAP 577 #define WRITE 578 #define WX1 579 #define WX2 580 #define WY1 581 #define WY2 582 #define X_TOK 583 #define X0 584 #define X1 585 #define XAXES 586 #define XAXIS 587 #define XCOR 588 #define XMAX 589 #define XMIN 590 #define XY 591 #define XYAXES 592 #define XYBOXPLOT 593 #define XYCOLOR 594 #define XYCOLPAT 595 #define XYDX 596 #define XYDXDX 597 #define XYDXDXDYDY 598 #define XYDXDY 599 #define XYDY 600 #define XYDYDY 601 #define XYHILO 602 #define XYR 603 #define XYSIZE 604 #define XYSTRING 605 #define XYVMAP 606 #define XYZ 607 #define Y_TOK 608 #define Y0 609 #define Y1 610 #define Y2 611 #define Y3 612 #define Y4 613 #define YAXES 614 #define YAXIS 615 #define YEAR 616 #define YMAX 617 #define YMIN 618 #define YYMMDD 619 #define YYMMDDHMS 620 #define ZERO 621 #define ZNORM 622 #define FITPARM 623 #define FITPMAX 624 #define FITPMIN 625 #define NUMBER 626 #define NEW_TOKEN 627 #define OR 628 #define AND 629 #define NE 630 #define EQ 631 #define GE 632 #define LE 633 #define LT 634 #define GT 635 #define NOT 636 #define UMINUS 637 /* Copy the first part of user declarations. */ #line 1 "pars.yacc" /* * Grace - GRaphing, Advanced Computation and Exploration of data * * Home page: http://plasma-gate.weizmann.ac.il/Grace/ * * Copyright (c) 1991-1995 Paul J Turner, Portland, OR * Copyright (c) 1996-2003 Grace Development Team * * Maintained by Evgeny Stambulchik * * * All Rights Reserved * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* * * evaluate expressions, commands, parameter files * */ #include #include #include #include #include #include #include #if defined(HAVE_SYS_PARAM_H) # include #endif /* bison not always handles it well itself */ #if defined(HAVE_ALLOCA_H) # include #endif #include "defines.h" #include "globals.h" #include "cephes/cephes.h" #include "device.h" #include "utils.h" #include "files.h" #include "graphs.h" #include "graphutils.h" #include "plotone.h" #include "dlmodule.h" #include "t1fonts.h" #include "ssdata.h" #include "protos.h" #include "parser.h" #include "mathstuff.h" #define MAX_PARS_STRING_LENGTH 4096 #define CAST_DBL_TO_BOOL(x) (fabs(x) < 0.5 ? 0:1) typedef double (*ParserFnc)(); extern graph *g; static double s_result; /* return value if a scalar expression is scanned*/ static grarr *v_result; /* return value if a vector expression is scanned*/ static int expr_parsed, vexpr_parsed; static int interr; static grarr freelist[100]; /* temporary vectors */ static int fcnt = 0; /* number of the temporary vectors allocated */ static target trgt_pool[100]; /* pool of temporary targets */ static int tgtn = 0; /* number of the temporary targets used */ int naxis = 0; /* current axis */ static int curline, curbox, curellipse, curstring; /* these guys attempt to avoid reentrancy problems */ static int gotparams = FALSE, gotread = FALSE, gotnlfit = FALSE; int readxformat; static int nlfit_gno, nlfit_setno, nlfit_nsteps; static double *nlfit_warray = NULL; char batchfile[GR_MAXPATHLEN] = "", paramfile[GR_MAXPATHLEN] = "", readfile[GR_MAXPATHLEN] = ""; static char f_string[MAX_PARS_STRING_LENGTH]; /* buffer for string to parse */ static int pos; /* the graph, set, and its length of the parser's current state */ static int whichgraph; static int whichset; /* the graph and set of the left part of a vector assignment */ static int vasgn_gno; static int vasgn_setno; static int alias_force = FALSE; /* controls whether aliases can override existing keywords */ extern char print_file[]; extern char *close_input; static int filltype_obs; static int index_shift = 0; /* 0 for C, 1 for F77 index notation */ static void free_tmpvrbl(grarr *vrbl); static void copy_vrbl(grarr *dest, grarr *src); static int find_set_bydata(double *data, target *tgt); static int getcharstr(void); static void ungetchstr(void); static int follow(int expect, int ifyes, int ifno); static int yylex(void); static int yyparse(void); static void yyerror(char *s); static int findf(symtab_entry *keytable, char *s); /* Total (intrinsic + user-defined) list of functions and keywords */ symtab_entry *key; /* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 1 #endif /* Enabling verbose error messages. */ #ifdef YYERROR_VERBOSE # undef YYERROR_VERBOSE # define YYERROR_VERBOSE 1 #else # define YYERROR_VERBOSE 0 #endif /* Enabling the token table. */ #ifndef YYTOKEN_TABLE # define YYTOKEN_TABLE 0 #endif #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) #line 142 "pars.yacc" typedef union YYSTYPE { int ival; double dval; char *sval; double *dptr; target *trgt; grarr *vrbl; } YYSTYPE; /* Line 196 of yacc.c. */ #line 999 "y.tab.c" # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 #endif /* Copy the second part of user declarations. */ /* Line 219 of yacc.c. */ #line 1011 "y.tab.c" #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) # define YYSIZE_T __SIZE_TYPE__ #endif #if ! defined (YYSIZE_T) && defined (size_t) # define YYSIZE_T size_t #endif #if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus)) # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t #endif #if ! defined (YYSIZE_T) # define YYSIZE_T unsigned int #endif #ifndef YY_ # if YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ # define YY_(msgid) dgettext ("bison-runtime", msgid) # endif # endif # ifndef YY_ # define YY_(msgid) msgid # endif #endif #if ! defined (yyoverflow) || YYERROR_VERBOSE /* The parser invokes alloca or malloc; define the necessary symbols. */ # ifdef YYSTACK_USE_ALLOCA # if YYSTACK_USE_ALLOCA # ifdef __GNUC__ # define YYSTACK_ALLOC __builtin_alloca # else # define YYSTACK_ALLOC alloca # if defined (__STDC__) || defined (__cplusplus) # include /* INFRINGES ON USER NAME SPACE */ # define YYINCLUDED_STDLIB_H # endif # endif # endif # endif # ifdef YYSTACK_ALLOC /* Pacify GCC's `empty if-body' warning. */ # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely invoke alloca (N) if N exceeds 4096. Use a slightly smaller number to allow for a few compiler-allocated temporary stack slots. */ # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */ # endif # else # define YYSTACK_ALLOC YYMALLOC # define YYSTACK_FREE YYFREE # ifndef YYSTACK_ALLOC_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1) # endif # ifdef __cplusplus extern "C" { # endif # ifndef YYMALLOC # define YYMALLOC malloc # if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \ && (defined (__STDC__) || defined (__cplusplus))) void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free # if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \ && (defined (__STDC__) || defined (__cplusplus))) void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifdef __cplusplus } # endif # endif #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ #if (! defined (yyoverflow) \ && (! defined (__cplusplus) \ || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { short int yyss; YYSTYPE yyvs; }; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) /* Copy COUNT objects from FROM to TO. The source and destination do not overlap. */ # ifndef YYCOPY # if defined (__GNUC__) && 1 < __GNUC__ # define YYCOPY(To, From, Count) \ __builtin_memcpy (To, From, (Count) * sizeof (*(From))) # else # define YYCOPY(To, From, Count) \ do \ { \ YYSIZE_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (To)[yyi] = (From)[yyi]; \ } \ while (0) # endif # endif /* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ # define YYSTACK_RELOCATE(Stack) \ do \ { \ YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack, Stack, yysize); \ Stack = &yyptr->Stack; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (0) #endif #if defined (__STDC__) || defined (__cplusplus) typedef signed char yysigned_char; #else typedef short int yysigned_char; #endif /* YYFINAL -- State number of the termination state. */ #define YYFINAL 521 /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 12030 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 399 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 77 /* YYNRULES -- Number of rules. */ #define YYNRULES 838 /* YYNRULES -- Number of states. */ #define YYNSTATES 1667 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 637 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ static const unsigned short int yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 387, 2, 2, 393, 394, 385, 383, 395, 384, 391, 386, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 374, 392, 2, 398, 2, 373, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 396, 2, 397, 390, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 375, 376, 377, 378, 379, 380, 381, 382, 388, 389 }; #if YYDEBUG /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in YYRHS. */ static const unsigned short int yyprhs[] = { 0, 0, 3, 5, 7, 9, 11, 15, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 51, 56, 63, 67, 71, 75, 79, 81, 84, 86, 91, 96, 103, 110, 117, 126, 135, 146, 159, 174, 178, 182, 186, 190, 194, 198, 202, 206, 211, 220, 235, 237, 239, 241, 243, 245, 247, 249, 251, 253, 255, 259, 263, 267, 270, 273, 277, 281, 285, 289, 295, 299, 303, 307, 311, 315, 319, 323, 327, 330, 332, 336, 340, 342, 344, 348, 350, 352, 354, 356, 358, 360, 364, 366, 373, 378, 387, 392, 397, 402, 407, 412, 419, 426, 433, 440, 449, 458, 469, 482, 497, 501, 505, 509, 513, 517, 521, 525, 529, 533, 537, 541, 545, 549, 553, 557, 561, 565, 569, 572, 578, 584, 590, 596, 600, 604, 608, 612, 616, 620, 624, 628, 632, 636, 640, 644, 648, 652, 656, 660, 664, 668, 672, 676, 680, 684, 688, 692, 695, 699, 702, 706, 710, 714, 718, 723, 725, 729, 733, 736, 741, 747, 750, 753, 756, 759, 763, 767, 774, 783, 786, 790, 793, 796, 799, 809, 815, 820, 823, 829, 835, 843, 848, 854, 859, 864, 868, 872, 876, 881, 884, 889, 894, 899, 903, 913, 916, 919, 922, 925, 930, 934, 937, 941, 944, 947, 956, 960, 963, 966, 969, 973, 977, 980, 983, 987, 990, 993, 1002, 1006, 1009, 1012, 1015, 1019, 1023, 1026, 1029, 1033, 1036, 1039, 1048, 1052, 1055, 1058, 1061, 1065, 1070, 1075, 1082, 1085, 1088, 1092, 1095, 1098, 1103, 1107, 1110, 1114, 1117, 1121, 1126, 1130, 1133, 1136, 1141, 1145, 1148, 1153, 1157, 1160, 1163, 1166, 1169, 1174, 1177, 1182, 1186, 1194, 1208, 1217, 1220, 1229, 1232, 1235, 1239, 1242, 1245, 1248, 1252, 1255, 1259, 1263, 1267, 1271, 1275, 1279, 1283, 1287, 1290, 1293, 1296, 1300, 1304, 1308, 1312, 1316, 1321, 1326, 1330, 1334, 1338, 1342, 1347, 1352, 1355, 1358, 1361, 1365, 1368, 1371, 1374, 1377, 1381, 1385, 1388, 1392, 1396, 1400, 1405, 1409, 1415, 1422, 1429, 1434, 1437, 1443, 1446, 1449, 1452, 1455, 1459, 1461, 1463, 1466, 1469, 1472, 1474, 1477, 1479, 1484, 1486, 1490, 1494, 1497, 1500, 1503, 1505, 1508, 1511, 1515, 1519, 1523, 1529, 1535, 1540, 1545, 1550, 1553, 1557, 1562, 1567, 1570, 1574, 1577, 1580, 1582, 1595, 1614, 1635, 1642, 1651, 1658, 1665, 1672, 1685, 1696, 1707, 1714, 1719, 1730, 1737, 1746, 1748, 1751, 1754, 1757, 1759, 1762, 1765, 1769, 1773, 1778, 1782, 1785, 1789, 1794, 1798, 1803, 1806, 1811, 1816, 1823, 1826, 1829, 1831, 1835, 1837, 1839, 1841, 1844, 1847, 1850, 1853, 1856, 1859, 1863, 1867, 1870, 1873, 1876, 1879, 1881, 1883, 1886, 1890, 1894, 1898, 1902, 1906, 1910, 1915, 1920, 1925, 1930, 1935, 1940, 1945, 1949, 1953, 1957, 1961, 1966, 1971, 1975, 1979, 1983, 1988, 1992, 1996, 2001, 2007, 2011, 2015, 2020, 2025, 2030, 2037, 2042, 2047, 2051, 2055, 2059, 2063, 2068, 2072, 2076, 2081, 2086, 2092, 2099, 2103, 2107, 2109, 2113, 2116, 2119, 2122, 2125, 2128, 2131, 2134, 2139, 2141, 2144, 2148, 2152, 2155, 2158, 2161, 2163, 2167, 2171, 2173, 2176, 2179, 2181, 2184, 2187, 2190, 2193, 2197, 2201, 2203, 2207, 2210, 2215, 2220, 2222, 2225, 2228, 2231, 2234, 2237, 2240, 2243, 2246, 2248, 2251, 2254, 2257, 2261, 2265, 2269, 2273, 2277, 2279, 2281, 2285, 2288, 2291, 2296, 2298, 2301, 2304, 2307, 2310, 2315, 2318, 2322, 2324, 2326, 2328, 2330, 2332, 2334, 2336, 2339, 2342, 2346, 2349, 2351, 2354, 2358, 2363, 2365, 2368, 2371, 2375, 2377, 2379, 2381, 2383, 2385, 2387, 2389, 2391, 2393, 2395, 2397, 2399, 2401, 2403, 2405, 2407, 2409, 2411, 2413, 2415, 2417, 2419, 2421, 2423, 2425, 2427, 2429, 2431, 2433, 2435, 2437, 2439, 2441, 2443, 2445, 2447, 2449, 2451, 2453, 2455, 2457, 2459, 2461, 2463, 2465, 2467, 2469, 2471, 2473, 2475, 2477, 2479, 2481, 2483, 2485, 2487, 2489, 2491, 2493, 2495, 2497, 2499, 2501, 2503, 2505, 2507, 2509, 2511, 2513, 2515, 2517, 2519, 2521, 2523, 2525, 2527, 2529, 2531, 2533, 2535, 2537, 2539, 2541, 2543, 2545, 2547, 2549, 2551, 2553, 2555, 2557, 2559, 2561, 2563, 2565, 2567, 2569, 2571, 2573, 2575, 2577, 2579, 2581, 2583, 2585, 2587, 2589, 2591, 2593, 2595, 2597, 2599, 2601, 2603, 2605, 2607, 2609, 2611, 2613, 2615, 2617, 2619, 2621, 2623, 2625, 2627, 2629, 2631, 2633, 2635, 2637, 2639, 2641, 2643, 2645, 2647, 2649, 2651, 2653, 2655, 2657, 2659, 2661, 2663, 2665, 2667, 2669, 2671, 2673, 2675, 2677, 2679, 2681, 2683, 2685, 2687, 2689, 2691, 2693, 2695, 2697, 2699, 2701, 2703, 2705, 2708, 2711, 2714, 2717, 2720, 2723, 2732, 2735, 2738, 2740, 2742, 2744, 2748, 2753, 2756, 2760, 2765, 2783, 2787, 2791, 2794, 2797, 2800, 2803, 2807, 2811, 2815, 2820, 2825, 2831, 2834, 2837, 2841, 2845, 2849, 2853, 2857, 2861, 2865, 2869, 2873, 2877, 2881, 2885, 2889, 2893, 2897, 2901, 2905, 2909, 2914, 2919, 2924, 2928, 2933, 2938, 2941, 2943, 2945, 2950, 2954, 2958, 2963, 2968, 2971, 2974, 2977, 2982, 2988, 2993, 2998, 3001, 3004, 3007, 3010, 3013, 3016, 3019, 3022, 3025, 3028, 3032, 3034, 3036, 3039, 3042, 3045, 3048, 3051, 3055, 3059, 3061, 3064, 3066, 3068, 3070, 3073, 3075, 3077, 3079, 3081 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const short int yyrhs[] = { 400, 0, -1, 401, -1, 403, -1, 411, -1, 402, -1, 401, 392, 402, -1, -1, 417, -1, 468, -1, 416, -1, 430, -1, 420, -1, 418, -1, 419, -1, 412, -1, 414, -1, 415, -1, 1, -1, 371, -1, 19, -1, 368, -1, 369, -1, 370, -1, 410, 407, -1, 460, 393, 411, 394, -1, 154, 393, 411, 395, 411, 394, -1, 410, 391, 167, -1, 429, 391, 167, -1, 429, 391, 147, -1, 428, 391, 147, -1, 21, -1, 403, 22, -1, 241, -1, 23, 393, 405, 394, -1, 24, 393, 403, 394, -1, 26, 393, 405, 395, 403, 394, -1, 25, 393, 405, 395, 405, 394, -1, 27, 393, 403, 395, 403, 394, -1, 28, 393, 405, 395, 405, 395, 403, 394, -1, 29, 393, 403, 395, 403, 395, 403, 394, -1, 30, 393, 403, 395, 403, 395, 403, 395, 403, 394, -1, 31, 393, 403, 395, 403, 395, 403, 395, 403, 395, 403, 394, -1, 32, 393, 403, 395, 403, 395, 403, 395, 403, 395, 403, 395, 403, 394, -1, 428, 391, 313, -1, 428, 391, 314, -1, 428, 391, 316, -1, 428, 391, 317, -1, 428, 391, 324, -1, 428, 391, 325, -1, 428, 391, 326, -1, 428, 391, 327, -1, 18, 393, 408, 394, -1, 18, 393, 405, 395, 406, 395, 406, 394, -1, 18, 393, 405, 395, 406, 395, 406, 395, 406, 395, 406, 395, 403, 394, -1, 313, -1, 314, -1, 316, -1, 317, -1, 324, -1, 325, -1, 326, -1, 327, -1, 315, -1, 318, -1, 393, 403, 394, -1, 403, 383, 403, -1, 403, 384, 403, -1, 384, 403, -1, 383, 403, -1, 403, 385, 403, -1, 403, 386, 403, -1, 403, 387, 403, -1, 403, 390, 403, -1, 403, 373, 403, 374, 403, -1, 403, 382, 403, -1, 403, 381, 403, -1, 403, 380, 403, -1, 403, 379, 403, -1, 403, 378, 403, -1, 403, 377, 403, -1, 403, 376, 403, -1, 403, 375, 403, -1, 388, 403, -1, 69, -1, 404, 391, 404, -1, 404, 391, 403, -1, 403, -1, 405, -1, 396, 405, 397, -1, 403, -1, 404, -1, 403, -1, 404, -1, 20, -1, 451, -1, 429, 391, 451, -1, 410, -1, 410, 396, 405, 374, 405, 397, -1, 186, 393, 406, 394, -1, 186, 393, 403, 395, 403, 395, 406, 394, -1, 241, 393, 406, 394, -1, 247, 393, 429, 394, -1, 256, 393, 411, 394, -1, 23, 393, 411, 394, -1, 24, 393, 411, 394, -1, 27, 393, 411, 395, 411, 394, -1, 27, 393, 403, 395, 411, 394, -1, 27, 393, 411, 395, 403, 394, -1, 26, 393, 405, 395, 411, 394, -1, 28, 393, 405, 395, 405, 395, 411, 394, -1, 29, 393, 403, 395, 403, 395, 411, 394, -1, 30, 393, 403, 395, 403, 395, 403, 395, 411, 394, -1, 31, 393, 403, 395, 403, 395, 403, 395, 403, 395, 411, 394, -1, 32, 393, 403, 395, 403, 395, 403, 395, 403, 395, 403, 395, 411, 394, -1, 411, 383, 411, -1, 411, 383, 403, -1, 403, 383, 411, -1, 411, 384, 411, -1, 411, 384, 403, -1, 403, 384, 411, -1, 411, 385, 411, -1, 411, 385, 403, -1, 403, 385, 411, -1, 411, 386, 411, -1, 411, 386, 403, -1, 403, 386, 411, -1, 411, 387, 411, -1, 411, 387, 403, -1, 403, 387, 411, -1, 411, 390, 411, -1, 411, 390, 403, -1, 403, 390, 411, -1, 411, 22, -1, 411, 373, 403, 374, 403, -1, 411, 373, 403, 374, 411, -1, 411, 373, 411, 374, 403, -1, 411, 373, 411, 374, 411, -1, 411, 375, 411, -1, 411, 375, 403, -1, 403, 375, 411, -1, 411, 376, 411, -1, 411, 376, 403, -1, 403, 376, 411, -1, 411, 382, 411, -1, 411, 382, 403, -1, 403, 382, 411, -1, 411, 381, 411, -1, 411, 381, 403, -1, 403, 381, 411, -1, 411, 379, 411, -1, 411, 379, 403, -1, 403, 379, 411, -1, 411, 380, 411, -1, 411, 380, 403, -1, 403, 380, 411, -1, 411, 378, 411, -1, 411, 378, 403, -1, 403, 378, 411, -1, 411, 377, 411, -1, 411, 377, 403, -1, 403, 377, 411, -1, 388, 411, -1, 393, 411, 394, -1, 384, 411, -1, 19, 398, 403, -1, 368, 398, 403, -1, 369, 398, 403, -1, 370, 398, 403, -1, 410, 407, 398, 403, -1, 410, -1, 413, 398, 411, -1, 413, 398, 403, -1, 90, 372, -1, 90, 372, 396, 397, -1, 90, 372, 396, 406, 397, -1, 90, 19, -1, 90, 20, -1, 70, 19, -1, 70, 20, -1, 35, 404, 404, -1, 35, 123, 442, -1, 306, 404, 303, 432, 129, 404, -1, 306, 404, 303, 432, 129, 404, 35, 404, -1, 247, 442, -1, 247, 303, 440, -1, 247, 464, -1, 247, 462, -1, 247, 465, -1, 247, 168, 403, 395, 403, 395, 403, 395, 403, -1, 247, 336, 403, 395, 403, -1, 172, 247, 300, 428, -1, 307, 406, -1, 217, 249, 406, 395, 406, -1, 217, 272, 406, 395, 406, -1, 99, 404, 217, 272, 406, 395, 406, -1, 99, 404, 104, 403, -1, 99, 404, 122, 40, 442, -1, 99, 404, 122, 442, -1, 99, 404, 214, 404, -1, 137, 99, 404, -1, 246, 18, 409, -1, 18, 322, 442, -1, 18, 322, 361, 405, -1, 51, 464, -1, 217, 51, 115, 442, -1, 217, 266, 403, 387, -1, 217, 153, 403, 387, -1, 172, 217, 442, -1, 281, 321, 403, 395, 403, 395, 403, 395, 403, -1, 297, 406, -1, 293, 429, -1, 320, 428, -1, 320, 429, -1, 429, 172, 444, 404, -1, 429, 172, 442, -1, 320, 64, -1, 320, 64, 406, -1, 64, 442, -1, 64, 428, -1, 64, 403, 395, 403, 395, 403, 395, 403, -1, 64, 174, 450, -1, 64, 462, -1, 64, 465, -1, 64, 464, -1, 64, 115, 464, -1, 64, 115, 463, -1, 64, 88, -1, 320, 108, -1, 320, 108, 406, -1, 108, 442, -1, 108, 428, -1, 108, 403, 395, 403, 395, 403, 395, 403, -1, 108, 174, 450, -1, 108, 462, -1, 108, 465, -1, 108, 464, -1, 108, 115, 464, -1, 108, 115, 463, -1, 108, 88, -1, 320, 168, -1, 320, 168, 406, -1, 168, 442, -1, 168, 428, -1, 168, 403, 395, 403, 395, 403, 395, 403, -1, 168, 174, 450, -1, 168, 465, -1, 168, 462, -1, 168, 464, -1, 168, 43, 406, -1, 168, 43, 167, 403, -1, 168, 43, 303, 406, -1, 168, 43, 164, 403, 395, 403, -1, 168, 88, -1, 320, 288, -1, 320, 288, 406, -1, 288, 442, -1, 288, 428, -1, 288, 403, 395, 403, -1, 288, 174, 450, -1, 288, 464, -1, 288, 254, 406, -1, 288, 461, -1, 288, 160, 406, -1, 288, 67, 272, 403, -1, 288, 88, 404, -1, 298, 442, -1, 298, 461, -1, 298, 67, 272, 403, -1, 298, 254, 406, -1, 298, 464, -1, 298, 403, 395, 403, -1, 298, 88, 404, -1, 89, 462, -1, 89, 465, -1, 89, 464, -1, 89, 463, -1, 89, 67, 272, 403, -1, 89, 461, -1, 89, 292, 272, 403, -1, 89, 270, 404, -1, 184, 122, 406, 300, 404, 395, 404, -1, 184, 75, 406, 300, 393, 406, 395, 406, 395, 406, 394, 395, 404, -1, 321, 403, 395, 403, 395, 403, 395, 403, -1, 367, 403, -1, 312, 403, 395, 403, 395, 403, 395, 403, -1, 299, 404, -1, 299, 461, -1, 299, 272, 403, -1, 299, 464, -1, 290, 404, -1, 290, 461, -1, 290, 272, 403, -1, 290, 464, -1, 331, 264, 441, -1, 359, 264, 441, -1, 331, 158, 442, -1, 359, 158, 442, -1, 47, 213, 203, -1, 47, 213, 331, -1, 47, 213, 359, -1, 47, 213, 337, -1, 98, 404, -1, 70, 98, -1, 166, 442, -1, 166, 174, 450, -1, 166, 311, 406, -1, 166, 140, 406, -1, 166, 167, 406, -1, 166, 158, 442, -1, 166, 64, 115, 464, -1, 166, 64, 115, 463, -1, 166, 64, 464, -1, 166, 64, 463, -1, 166, 64, 462, -1, 166, 64, 465, -1, 166, 403, 395, 403, -1, 166, 67, 272, 403, -1, 166, 461, -1, 166, 464, -1, 126, 442, -1, 126, 303, 406, -1, 126, 462, -1, 126, 465, -1, 126, 464, -1, 126, 463, -1, 126, 51, 464, -1, 126, 51, 463, -1, 428, 442, -1, 428, 141, 442, -1, 428, 303, 437, -1, 428, 282, 442, -1, 428, 52, 140, 403, -1, 428, 118, 442, -1, 428, 118, 124, 447, 447, -1, 428, 118, 235, 403, 395, 403, -1, 428, 118, 336, 403, 395, 403, -1, 428, 118, 303, 406, -1, 303, 436, -1, 90, 434, 404, 435, 404, -1, 70, 434, -1, 277, 444, -1, 124, 447, -1, 116, 427, -1, 368, 79, 442, -1, 245, -1, 305, -1, 65, 404, -1, 107, 404, -1, 107, 403, -1, 73, -1, 73, 404, -1, 111, -1, 111, 393, 405, 394, -1, 237, -1, 237, 300, 99, -1, 237, 300, 404, -1, 217, 449, -1, 274, 403, -1, 139, 404, -1, 139, -1, 131, 404, -1, 240, 404, -1, 429, 141, 442, -1, 429, 167, 406, -1, 20, 167, 406, -1, 429, 228, 403, 395, 403, -1, 429, 105, 406, 395, 406, -1, 276, 429, 453, 452, -1, 80, 429, 300, 429, -1, 41, 429, 300, 429, -1, 251, 429, -1, 280, 429, 406, -1, 200, 429, 300, 429, -1, 291, 429, 376, 429, -1, 161, 429, -1, 161, 429, 263, -1, 161, 428, -1, 161, 247, -1, 119, -1, 42, 393, 406, 395, 406, 395, 403, 395, 403, 395, 403, 394, -1, 42, 393, 406, 395, 406, 395, 403, 395, 403, 395, 403, 395, 442, 395, 442, 395, 442, 394, -1, 42, 393, 406, 395, 406, 395, 403, 395, 403, 395, 403, 395, 442, 395, 442, 395, 442, 395, 442, 394, -1, 204, 393, 429, 395, 406, 394, -1, 204, 393, 429, 395, 411, 395, 406, 394, -1, 248, 393, 429, 395, 406, 394, -1, 443, 393, 429, 395, 406, 394, -1, 454, 393, 429, 395, 406, 394, -1, 454, 393, 429, 395, 455, 395, 458, 395, 456, 395, 457, 394, -1, 156, 393, 429, 395, 411, 395, 459, 395, 442, 394, -1, 142, 393, 429, 395, 411, 395, 442, 395, 442, 394, -1, 101, 393, 429, 395, 406, 394, -1, 155, 393, 429, 394, -1, 333, 393, 429, 395, 429, 395, 406, 395, 442, 394, -1, 250, 393, 429, 395, 411, 394, -1, 250, 393, 429, 395, 247, 395, 442, 394, -1, 47, -1, 47, 331, -1, 47, 359, -1, 47, 429, -1, 48, -1, 120, 428, -1, 242, 404, -1, 242, 56, 404, -1, 242, 61, 404, -1, 242, 61, 444, 404, -1, 61, 436, 404, -1, 161, 61, -1, 242, 436, 404, -1, 242, 436, 444, 404, -1, 242, 206, 404, -1, 242, 206, 444, 404, -1, 323, 429, -1, 323, 429, 124, 404, -1, 323, 429, 114, 404, -1, 323, 429, 114, 404, 124, 404, -1, 263, 404, -1, 173, 404, -1, 202, -1, 202, 129, 404, -1, 239, -1, 232, -1, 81, -1, 281, 406, -1, 70, 281, -1, 70, 64, -1, 70, 108, -1, 70, 168, -1, 70, 288, -1, 217, 164, 438, -1, 46, 245, 442, -1, 120, 442, -1, 120, 268, -1, 120, 121, -1, 120, 71, -1, 421, -1, 470, -1, 429, 442, -1, 429, 303, 436, -1, 429, 292, 406, -1, 429, 292, 464, -1, 429, 292, 463, -1, 429, 292, 465, -1, 429, 292, 462, -1, 429, 292, 115, 464, -1, 429, 292, 115, 463, -1, 429, 292, 272, 403, -1, 429, 292, 67, 406, -1, 429, 292, 67, 461, -1, 429, 292, 273, 406, -1, 429, 168, 303, 406, -1, 429, 168, 462, -1, 429, 168, 465, -1, 429, 168, 464, -1, 429, 168, 463, -1, 429, 115, 303, 406, -1, 429, 115, 257, 406, -1, 429, 115, 464, -1, 429, 115, 463, -1, 429, 55, 442, -1, 429, 55, 303, 406, -1, 429, 106, 442, -1, 429, 49, 442, -1, 429, 49, 303, 406, -1, 429, 49, 67, 272, 403, -1, 429, 49, 461, -1, 429, 49, 464, -1, 429, 49, 254, 406, -1, 429, 49, 124, 447, -1, 429, 49, 235, 406, -1, 429, 49, 208, 403, 395, 403, -1, 429, 49, 236, 404, -1, 429, 49, 41, 404, -1, 429, 110, 442, -1, 429, 110, 466, -1, 429, 110, 464, -1, 429, 110, 463, -1, 429, 110, 272, 403, -1, 429, 110, 465, -1, 429, 110, 462, -1, 429, 110, 253, 465, -1, 429, 110, 253, 462, -1, 429, 110, 253, 72, 442, -1, 429, 110, 253, 72, 167, 403, -1, 429, 76, 404, -1, 429, 166, 404, -1, 442, -1, 303, 366, 442, -1, 295, 423, -1, 295, 471, -1, 294, 424, -1, 294, 472, -1, 162, 425, -1, 162, 469, -1, 52, 426, -1, 208, 403, 395, 403, -1, 442, -1, 183, 403, -1, 188, 296, 406, -1, 227, 255, 442, -1, 209, 403, -1, 210, 403, -1, 89, 406, -1, 446, -1, 183, 272, 403, -1, 188, 272, 403, -1, 464, -1, 183, 464, -1, 188, 464, -1, 465, -1, 183, 465, -1, 188, 465, -1, 183, 462, -1, 188, 462, -1, 183, 134, 442, -1, 188, 134, 442, -1, 466, -1, 278, 303, 433, -1, 278, 406, -1, 183, 406, 395, 403, -1, 188, 406, 395, 403, -1, 442, -1, 235, 406, -1, 124, 447, -1, 124, 403, -1, 41, 404, -1, 236, 404, -1, 39, 406, -1, 273, 406, -1, 285, 406, -1, 466, -1, 125, 404, -1, 286, 403, -1, 287, 403, -1, 286, 303, 278, -1, 286, 303, 46, -1, 287, 303, 278, -1, 287, 303, 46, -1, 67, 272, 403, -1, 461, -1, 464, -1, 406, 395, 404, -1, 208, 46, -1, 208, 278, -1, 208, 403, 395, 403, -1, 404, -1, 164, 223, -1, 164, 218, -1, 227, 46, -1, 227, 278, -1, 227, 403, 395, 403, -1, 160, 445, -1, 67, 272, 403, -1, 461, -1, 464, -1, 466, -1, 442, -1, 464, -1, 462, -1, 465, -1, 299, 404, -1, 125, 404, -1, 320, 406, 219, -1, 235, 403, -1, 133, -1, 132, 407, -1, 428, 391, 269, -1, 428, 391, 268, 407, -1, 269, -1, 268, 407, -1, 431, 422, -1, 428, 431, 422, -1, 332, -1, 360, -1, 37, -1, 38, -1, 5, -1, 6, -1, 7, -1, 8, -1, 10, -1, 9, -1, 11, -1, 12, -1, 13, -1, 14, -1, 15, -1, 16, -1, 203, -1, 296, -1, 62, -1, 148, -1, 211, -1, 181, -1, 221, -1, 336, -1, 52, -1, 53, -1, 54, -1, 352, -1, 341, -1, 345, -1, 342, -1, 346, -1, 344, -1, 343, -1, 347, -1, 348, -1, 349, -1, 339, -1, 340, -1, 351, -1, 338, -1, 350, -1, 336, -1, 68, -1, 229, -1, 275, -1, 117, -1, 225, -1, 127, -1, 117, -1, 163, -1, 233, -1, 33, -1, 58, -1, 165, -1, 252, -1, 230, -1, 231, -1, 144, -1, 308, -1, 146, -1, 310, -1, 205, -1, 176, -1, 244, -1, 177, -1, 212, -1, 207, -1, 258, -1, 262, -1, 260, -1, 259, -1, 261, -1, 102, -1, 226, -1, 252, -1, 165, -1, 66, -1, 151, -1, 216, -1, 62, -1, 87, -1, 112, -1, 130, -1, 265, -1, 109, -1, 78, -1, 234, -1, 86, -1, 191, -1, 364, -1, 195, -1, 189, -1, 196, -1, 82, -1, 198, -1, 199, -1, 197, -1, 84, -1, 83, -1, 85, -1, 143, -1, 190, -1, 192, -1, 365, -1, 92, -1, 94, -1, 96, -1, 194, -1, 91, -1, 93, -1, 95, -1, 193, -1, 205, -1, 34, -1, 201, -1, 304, -1, 103, -1, 252, -1, 165, -1, 151, -1, 216, -1, 321, -1, 312, -1, 328, -1, 353, -1, 329, -1, 354, -1, 355, -1, 356, -1, 357, -1, 358, -1, 44, -1, 97, -1, 328, -1, 353, -1, 100, -1, 113, -1, 157, -1, 159, -1, 243, -1, 77, -1, 17, -1, 128, -1, 222, -1, 182, -1, 224, -1, 74, -1, 203, -1, 302, -1, 136, -1, 319, -1, 135, -1, 60, -1, 220, -1, 169, -1, 279, -1, 45, -1, 187, -1, 185, -1, 50, -1, 267, -1, 289, -1, 150, -1, 149, -1, 122, 406, -1, 122, 404, -1, 170, 406, -1, 221, 406, -1, 75, 406, -1, 75, 404, -1, 75, 393, 406, 395, 406, 395, 406, 394, -1, 171, 403, -1, 227, 467, -1, 205, -1, 215, -1, 62, -1, 217, 164, 439, -1, 217, 272, 371, 371, -1, 217, 406, -1, 217, 153, 406, -1, 89, 122, 277, 403, -1, 281, 321, 403, 395, 403, 395, 403, 395, 403, 295, 403, 395, 403, 395, 403, 395, 403, -1, 64, 115, 473, -1, 108, 115, 473, -1, 288, 465, -1, 298, 465, -1, 299, 465, -1, 290, 465, -1, 166, 64, 442, -1, 166, 330, 403, -1, 166, 355, 403, -1, 166, 288, 406, 404, -1, 166, 64, 115, 442, -1, 166, 64, 115, 320, 473, -1, 166, 462, -1, 166, 465, -1, 428, 162, 442, -1, 428, 303, 178, -1, 428, 303, 180, -1, 428, 303, 179, -1, 428, 303, 52, -1, 428, 303, 138, -1, 428, 303, 283, -1, 428, 303, 284, -1, 321, 335, 403, -1, 321, 334, 403, -1, 321, 363, 403, -1, 321, 362, 403, -1, 312, 335, 403, -1, 312, 334, 403, -1, 312, 363, 403, -1, 312, 362, 403, -1, 166, 164, 403, -1, 126, 115, 442, -1, 428, 47, 303, 46, -1, 428, 47, 303, 278, -1, 168, 43, 272, 403, -1, 137, 99, 403, -1, 238, 171, 57, 403, -1, 238, 171, 152, 403, -1, 238, 465, -1, 465, -1, 474, -1, 429, 292, 115, 406, -1, 429, 273, 406, -1, 429, 115, 406, -1, 429, 110, 303, 475, -1, 429, 292, 66, 442, -1, 429, 462, -1, 429, 465, -1, 429, 464, -1, 429, 115, 320, 473, -1, 429, 352, 403, 395, 403, -1, 429, 110, 167, 403, -1, 429, 110, 253, 442, -1, 183, 442, -1, 188, 442, -1, 36, 442, -1, 187, 371, -1, 185, 371, -1, 175, 442, -1, 303, 46, -1, 303, 278, -1, 188, 403, -1, 272, 403, -1, 406, 395, 403, -1, 474, -1, 465, -1, 303, 46, -1, 303, 278, -1, 164, 278, -1, 164, 145, -1, 164, 309, -1, 227, 212, 296, -1, 227, 59, 296, -1, 474, -1, 271, 448, -1, 203, -1, 75, -1, 221, -1, 214, 475, -1, 301, -1, 63, -1, 165, -1, 252, -1, 62, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned short int yyrline[] = { 0, 622, 622, 623, 627, 634, 635, 638, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 657, 660, 663, 666, 669, 672, 679, 713, 721, 724, 727, 730, 733, 737, 741, 745, 749, 753, 757, 761, 765, 769, 773, 777, 781, 785, 788, 791, 794, 797, 800, 803, 806, 809, 812, 815, 819, 826, 833, 840, 847, 854, 861, 868, 875, 880, 885, 888, 891, 894, 897, 900, 903, 912, 920, 931, 934, 937, 940, 943, 946, 949, 952, 955, 958, 963, 966, 970, 979, 989, 998, 1008, 1011, 1026, 1029, 1045, 1049, 1062, 1078, 1082, 1104, 1122, 1140, 1156, 1185, 1195, 1205, 1215, 1230, 1241, 1252, 1263, 1274, 1285, 1296, 1307, 1318, 1333, 1344, 1355, 1370, 1381, 1392, 1407, 1418, 1429, 1448, 1463, 1478, 1498, 1513, 1529, 1552, 1571, 1590, 1600, 1609, 1622, 1635, 1648, 1663, 1674, 1685, 1700, 1711, 1722, 1737, 1748, 1759, 1774, 1785, 1796, 1811, 1822, 1833, 1848, 1859, 1870, 1885, 1896, 1907, 1922, 1933, 1944, 1954, 1964, 1977, 1981, 1985, 1989, 1993, 2004, 2031, 2042, 2052, 2069, 2077, 2088, 2092, 2096, 2101, 2107, 2125, 2128, 2135, 2146, 2149, 2152, 2155, 2158, 2161, 2168, 2176, 2183, 2193, 2196, 2199, 2214, 2228, 2242, 2256, 2271, 2275, 2278, 2281, 2284, 2287, 2290, 2293, 2296, 2300, 2305, 2309, 2313, 2316, 2321, 2325, 2330, 2333, 2340, 2347, 2354, 2364, 2367, 2370, 2373, 2376, 2379, 2382, 2413, 2416, 2423, 2430, 2437, 2447, 2450, 2453, 2456, 2459, 2462, 2465, 2496, 2499, 2506, 2513, 2520, 2530, 2533, 2536, 2539, 2542, 2545, 2548, 2551, 2555, 2572, 2575, 2582, 2589, 2596, 2604, 2607, 2610, 2613, 2616, 2619, 2622, 2638, 2641, 2644, 2647, 2650, 2653, 2657, 2663, 2667, 2671, 2675, 2678, 2682, 2686, 2689, 2693, 2701, 2714, 2724, 2727, 2737, 2745, 2752, 2759, 2766, 2774, 2781, 2788, 2796, 2803, 2810, 2817, 2824, 2827, 2830, 2833, 2837, 2846, 2850, 2857, 2864, 2871, 2878, 2885, 2892, 2899, 2906, 2913, 2920, 2927, 2934, 2942, 2949, 2956, 2964, 2971, 2978, 2985, 2992, 2999, 3006, 3014, 3023, 3026, 3029, 3032, 3036, 3040, 3043, 3047, 3051, 3055, 3059, 3064, 3071, 3075, 3078, 3081, 3082, 3088, 3091, 3098, 3102, 3106, 3113, 3116, 3119, 3122, 3125, 3132, 3135, 3140, 3162, 3167, 3175, 3182, 3187, 3199, 3202, 3205, 3208, 3212, 3217, 3222, 3225, 3235, 3238, 3241, 3244, 3247, 3250, 3253, 3256, 3259, 3262, 3265, 3271, 3277, 3284, 3296, 3299, 3302, 3305, 3325, 3329, 3333, 3336, 3339, 3342, 3359, 3374, 3379, 3384, 3389, 3392, 3395, 3403, 3408, 3412, 3416, 3420, 3433, 3436, 3442, 3449, 3453, 3457, 3464, 3472, 3480, 3489, 3497, 3501, 3504, 3508, 3511, 3514, 3517, 3521, 3524, 3527, 3530, 3533, 3540, 3545, 3548, 3551, 3554, 3557, 3564, 3565, 3569, 3572, 3576, 3579, 3582, 3585, 3588, 3591, 3594, 3597, 3600, 3603, 3606, 3610, 3614, 3618, 3622, 3626, 3631, 3635, 3639, 3657, 3677, 3681, 3686, 3691, 3695, 3699, 3703, 3707, 3711, 3715, 3719, 3723, 3727, 3732, 3738, 3741, 3744, 3747, 3750, 3753, 3756, 3759, 3762, 3765, 3768, 3772, 3777, 3785, 3792, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3817, 3824, 3831, 3838, 3846, 3853, 3860, 3867, 3874, 3881, 3888, 3895, 3902, 3909, 3916, 3923, 3930, 3937, 3944, 3951, 3958, 3965, 3972, 3979, 3987, 3998, 4005, 4012, 4019, 4026, 4034, 4042, 4049, 4056, 4063, 4070, 4079, 4086, 4093, 4100, 4107, 4114, 4121, 4128, 4135, 4142, 4157, 4164, 4171, 4182, 4190, 4197, 4204, 4211, 4218, 4226, 4233, 4240, 4247, 4254, 4264, 4271, 4278, 4285, 4295, 4299, 4303, 4306, 4312, 4316, 4323, 4336, 4349, 4362, 4378, 4379, 4383, 4384, 4385, 4386, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4405, 4406, 4407, 4411, 4412, 4416, 4417, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4443, 4444, 4445, 4446, 4447, 4448, 4452, 4453, 4457, 4458, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4474, 4475, 4476, 4477, 4480, 4481, 4484, 4485, 4486, 4487, 4488, 4492, 4493, 4503, 4504, 4505, 4508, 4509, 4510, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4547, 4548, 4549, 4552, 4553, 4554, 4555, 4556, 4557, 4560, 4561, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4574, 4575, 4578, 4579, 4582, 4583, 4584, 4585, 4589, 4590, 4594, 4595, 4596, 4600, 4601, 4602, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4616, 4617, 4618, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4631, 4635, 4643, 4656, 4669, 4679, 4689, 4708, 4723, 4729, 4730, 4731, 4736, 4748, 4751, 4754, 4758, 4761, 4766, 4768, 4770, 4772, 4774, 4775, 4777, 4786, 4793, 4800, 4808, 4809, 4810, 4811, 4813, 4815, 4819, 4823, 4829, 4835, 4840, 4845, 4852, 4859, 4866, 4873, 4881, 4888, 4895, 4902, 4910, 4913, 4921, 4923, 4926, 4930, 4931, 4932, 4933, 4938, 4939, 4949, 4963, 4967, 4990, 4998, 4999, 5002, 5005, 5008, 5009, 5010, 5013, 5018, 5026, 5027, 5028, 5029, 5030, 5031, 5038, 5047, 5059, 5066, 5074, 5084, 5085, 5094, 5101, 5103, 5110, 5117, 5118, 5119, 5126, 5148, 5149, 5150, 5153, 5159, 5160, 5161, 5162, 5163 }; #endif #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { "$end", "error", "$undefined", "KEY_VAR", "KEY_VEC", "KEY_CONST", "KEY_UNIT", "KEY_FUNC_I", "KEY_FUNC_D", "KEY_FUNC_NN", "KEY_FUNC_ND", "KEY_FUNC_DD", "KEY_FUNC_NND", "KEY_FUNC_PPD", "KEY_FUNC_PPPD", "KEY_FUNC_PPPPD", "KEY_FUNC_PPPPPD", "INDEX", "DATE", "VAR_D", "VEC_D", "CONSTANT", "UCONSTANT", "FUNC_I", "FUNC_D", "FUNC_NN", "FUNC_ND", "FUNC_DD", "FUNC_NND", "FUNC_PPD", "FUNC_PPPD", "FUNC_PPPPD", "FUNC_PPPPPD", "ABOVE", "ABSOLUTE", "ALIAS", "ALT", "ALTXAXIS", "ALTYAXIS", "ANGLE", "ANTIALIASING", "APPEND", "ARRANGE", "ARROW", "ASCENDING", "ASPLINE", "AUTO", "AUTOSCALE", "AUTOTICKS", "AVALUE", "AVG", "BACKGROUND", "BAR", "BARDY", "BARDYDY", "BASELINE", "BATCH", "BEGIN", "BELOW", "BETWEEN", "BLACKMAN", "BLOCK", "BOTH", "BOTTOM", "BOX", "CD", "CENTER", "CHAR", "CHART", "CHRSTR", "CLEAR", "CLICK", "CLIP", "CLOSE", "COEFFICIENTS", "COLOR", "COMMENT", "COMPLEX", "COMPUTING", "CONSTRAINTS", "COPY", "CYCLE", "DAYMONTH", "DAYOFWEEKL", "DAYOFWEEKS", "DAYOFYEAR", "DDMMYY", "DECIMAL", "DEF", "DEFAULT", "DEFINE", "DEGREESLAT", "DEGREESLON", "DEGREESMMLAT", "DEGREESMMLON", "DEGREESMMSSLAT", "DEGREESMMSSLON", "DESCENDING", "DESCRIPTION", "DEVICE", "DFT", "DIFFERENCE", "DISK", "DOWN", "DPI", "DROP", "DROPLINE", "ECHO", "ELLIPSE", "ENGINEERING", "ERRORBAR", "EXIT", "EXPONENTIAL", "FFT", "FILEP", "FILL", "FIT", "FIXED", "FIXEDPOINT", "FLUSH", "FOCUS", "FOLLOWS", "FONTP", "FORCE", "FORMAT", "FORMULA", "FRAMEP", "FREE", "FREQUENCY", "FROM", "GENERAL", "GETP", "GRAPH", "GRAPHNO", "GRID", "HAMMING", "HANNING", "HARDCOPY", "HBAR", "HELP", "HGAP", "HIDDEN", "HISTOGRAM", "HMS", "HORIZI", "HORIZONTAL", "HORIZO", "ID", "IFILTER", "IMAX", "IMIN", "IN", "INCREMENT", "INOUT", "INT", "INTEGRATE", "INTERPOLATE", "INVDFT", "INVERT", "INVFFT", "JUST", "KILL", "LABEL", "LANDSCAPE", "LAYOUT", "LEFT", "LEGEND", "LENGTH", "LINE", "LINEAR", "LINESTYLE", "LINEWIDTH", "LINK", "LOAD", "LOCTYPE", "LOG", "LOGARITHMIC", "LOGIT", "LOGX", "LOGXY", "LOGY", "MAGIC", "MAGNITUDE", "MAJOR", "MAP", "MAXP", "MESH", "MINP", "MINOR", "MMDD", "MMDDHMS", "MMDDYY", "MMDDYYHMS", "MMSSLAT", "MMSSLON", "MMYY", "MONTHDAY", "MONTHL", "MONTHS", "MONTHSY", "MOVE", "NEGATE", "NEW", "NONE", "NONLFIT", "NORMAL", "NXY", "OFF", "OFFSET", "OFFSETX", "OFFSETY", "OFILTER", "ON", "ONREAD", "OP", "OPPOSITE", "OUT", "PAGE", "PARA", "PARAMETERS", "PARZEN", "PATTERN", "PERIOD", "PERP", "PHASE", "PIE", "PIPE", "PLACE", "POINT", "POLAR", "POLYI", "POLYO", "POP", "PORTRAIT", "POWER", "PREC", "PREPEND", "PRINT", "PS", "PUSH", "PUTP", "RAND", "READ", "REAL", "RECIPROCAL", "REDRAW", "REFERENCE", "REGNUM", "REGRESS", "RESIZE", "RESTRICT", "REVERSE", "RIGHT", "RISER", "ROT", "ROUNDED", "RSUM", "RULE", "RUNAVG", "RUNMAX", "RUNMED", "RUNMIN", "RUNSTD", "SAVEALL", "SCALE", "SCIENTIFIC", "SCROLL", "SD", "SET", "SETNUM", "SFORMAT", "SIGN", "SIZE", "SKIP", "SLEEP", "SMITH", "SORT", "SOURCE", "SPEC", "SPLINE", "SPLIT", "STACK", "STACKED", "STACKEDBAR", "STACKEDHBAR", "STAGGER", "START", "STOP", "STRING", "SUM", "SUBTITLE", "SWAP", "SYMBOL", "TARGET", "TICKLABEL", "TICKP", "TICKSP", "TIMER", "TIMESTAMP", "TITLE", "TO", "TOP", "TRIANGULAR", "TYPE", "UP", "UPDATEALL", "USE", "VERSION", "VERTI", "VERTICAL", "VERTO", "VGAP", "VIEW", "VX1", "VX2", "VXMAX", "VY1", "VY2", "VYMAX", "WELCH", "WITH", "WORLD", "WRAP", "WRITE", "WX1", "WX2", "WY1", "WY2", "X_TOK", "X0", "X1", "XAXES", "XAXIS", "XCOR", "XMAX", "XMIN", "XY", "XYAXES", "XYBOXPLOT", "XYCOLOR", "XYCOLPAT", "XYDX", "XYDXDX", "XYDXDXDYDY", "XYDXDY", "XYDY", "XYDYDY", "XYHILO", "XYR", "XYSIZE", "XYSTRING", "XYVMAP", "XYZ", "Y_TOK", "Y0", "Y1", "Y2", "Y3", "Y4", "YAXES", "YAXIS", "YEAR", "YMAX", "YMIN", "YYMMDD", "YYMMDDHMS", "ZERO", "ZNORM", "FITPARM", "FITPMAX", "FITPMIN", "NUMBER", "NEW_TOKEN", "'?'", "':'", "OR", "AND", "NE", "EQ", "GE", "LE", "LT", "GT", "'+'", "'-'", "'*'", "'/'", "'%'", "NOT", "UMINUS", "'^'", "'.'", "';'", "'('", "')'", "','", "'['", "']'", "'='", "$accept", "full_list", "multi_list", "list", "expr", "sexpr", "iexpr", "nexpr", "indx", "jdate", "jrawdate", "array", "vexpr", "asgn", "lside_array", "vasgn", "defines", "regionset", "parmset", "actions", "options", "set_setprop", "setprop", "axisfeature", "tickattr", "ticklabelattr", "axislabeldesc", "axisbardesc", "nonlfitopts", "selectgraph", "selectset", "setaxis", "axis", "proctype", "tickspectype", "filtertype", "filtermethod", "xytype", "graphtype", "pagelayout", "pageorient", "regiontype", "scaletype", "onoff", "runtype", "sourcetype", "justchoice", "inoutchoice", "formatchoice", "signchoice", "direction", "worldview", "datacolumn", "sortdir", "sorton", "ffttype", "fourierdata", "fourierloadx", "fourierloady", "windowtype", "interpmethod", "stattype", "font_select", "lines_select", "pattern_select", "color_select", "linew_select", "opchoice_sel", "opchoice", "parmset_obs", "axislabeldesc_obs", "setprop_obs", "tickattr_obs", "ticklabelattr_obs", "colpat_obs", "opchoice_sel_obs", "opchoice_obs", 0 }; #endif # ifdef YYPRINT /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to token YYLEX-NUM. */ static const unsigned short int yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 63, 58, 628, 629, 630, 631, 632, 633, 634, 635, 43, 45, 42, 47, 37, 636, 637, 94, 46, 59, 40, 41, 44, 91, 93, 61 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const unsigned short int yyr1[] = { 0, 399, 400, 400, 400, 401, 401, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 404, 404, 404, 405, 406, 407, 408, 408, 409, 409, 410, 410, 410, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 412, 412, 412, 412, 412, 413, 414, 414, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 416, 416, 416, 416, 416, 416, 416, 416, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 419, 419, 419, 419, 419, 419, 420, 420, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 426, 426, 426, 426, 427, 427, 427, 427, 428, 428, 429, 429, 429, 429, 430, 430, 431, 431, 431, 431, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 433, 433, 433, 434, 434, 435, 435, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 437, 437, 437, 437, 437, 437, 438, 438, 439, 439, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 441, 441, 441, 441, 442, 442, 443, 443, 443, 443, 443, 444, 444, 445, 445, 445, 446, 446, 446, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 448, 448, 448, 449, 449, 449, 449, 449, 449, 450, 450, 451, 451, 451, 451, 451, 451, 451, 451, 452, 452, 453, 453, 454, 454, 454, 454, 455, 455, 456, 456, 456, 457, 457, 457, 458, 458, 458, 458, 458, 458, 458, 459, 459, 459, 460, 460, 460, 460, 460, 460, 460, 461, 461, 462, 463, 464, 464, 464, 465, 466, 467, 467, 467, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 469, 469, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 473, 473, 473, 474, 475, 475, 475, 475, 475 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const unsigned char yyr2[] = { 0, 2, 1, 1, 1, 1, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 6, 3, 3, 3, 3, 1, 2, 1, 4, 4, 6, 6, 6, 8, 8, 10, 12, 14, 3, 3, 3, 3, 3, 3, 3, 3, 4, 8, 14, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 2, 2, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 3, 3, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 6, 4, 8, 4, 4, 4, 4, 4, 6, 6, 6, 6, 8, 8, 10, 12, 14, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 2, 3, 3, 3, 3, 4, 1, 3, 3, 2, 4, 5, 2, 2, 2, 2, 3, 3, 6, 8, 2, 3, 2, 2, 2, 9, 5, 4, 2, 5, 5, 7, 4, 5, 4, 4, 3, 3, 3, 4, 2, 4, 4, 4, 3, 9, 2, 2, 2, 2, 4, 3, 2, 3, 2, 2, 8, 3, 2, 2, 2, 3, 3, 2, 2, 3, 2, 2, 8, 3, 2, 2, 2, 3, 3, 2, 2, 3, 2, 2, 8, 3, 2, 2, 2, 3, 4, 4, 6, 2, 2, 3, 2, 2, 4, 3, 2, 3, 2, 3, 4, 3, 2, 2, 4, 3, 2, 4, 3, 2, 2, 2, 2, 4, 2, 4, 3, 7, 13, 8, 2, 8, 2, 2, 3, 2, 2, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 3, 3, 3, 3, 4, 4, 2, 2, 2, 3, 2, 2, 2, 2, 3, 3, 2, 3, 3, 3, 4, 3, 5, 6, 6, 4, 2, 5, 2, 2, 2, 2, 3, 1, 1, 2, 2, 2, 1, 2, 1, 4, 1, 3, 3, 2, 2, 2, 1, 2, 2, 3, 3, 3, 5, 5, 4, 4, 4, 2, 3, 4, 4, 2, 3, 2, 2, 1, 12, 18, 20, 6, 8, 6, 6, 6, 12, 10, 10, 6, 4, 10, 6, 8, 1, 2, 2, 2, 1, 2, 2, 3, 3, 4, 3, 2, 3, 4, 3, 4, 2, 4, 4, 6, 2, 2, 1, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 1, 1, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 4, 4, 3, 3, 3, 4, 3, 3, 4, 5, 3, 3, 4, 4, 4, 6, 4, 4, 3, 3, 3, 3, 4, 3, 3, 4, 4, 5, 6, 3, 3, 1, 3, 2, 2, 2, 2, 2, 2, 2, 4, 1, 2, 3, 3, 2, 2, 2, 1, 3, 3, 1, 2, 2, 1, 2, 2, 2, 2, 3, 3, 1, 3, 2, 4, 4, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 3, 3, 3, 3, 3, 1, 1, 3, 2, 2, 4, 1, 2, 2, 2, 2, 4, 2, 3, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 2, 1, 2, 3, 4, 1, 2, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 8, 2, 2, 1, 1, 1, 3, 4, 2, 3, 4, 17, 3, 3, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 3, 4, 4, 2, 1, 1, 4, 3, 3, 4, 4, 2, 2, 2, 4, 5, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 1, 1, 2, 2, 2, 2, 2, 3, 3, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state STATE-NUM when YYTABLE doesn't specify something else to do. Zero means the default is an error. */ static const unsigned short int yydefact[] = { 0, 18, 0, 20, 94, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 574, 575, 0, 0, 0, 396, 400, 732, 0, 0, 0, 0, 0, 350, 0, 422, 0, 0, 0, 0, 708, 0, 0, 0, 352, 709, 0, 379, 0, 0, 0, 0, 0, 564, 0, 360, 0, 736, 735, 0, 0, 0, 710, 711, 0, 0, 0, 0, 0, 0, 731, 0, 730, 0, 418, 0, 0, 421, 354, 0, 420, 0, 33, 0, 345, 0, 0, 0, 0, 0, 0, 640, 643, 642, 644, 641, 0, 733, 0, 568, 0, 0, 0, 0, 0, 0, 734, 0, 0, 0, 0, 0, 0, 0, 346, 0, 0, 0, 55, 56, 63, 57, 58, 64, 0, 0, 0, 59, 60, 61, 62, 696, 698, 0, 572, 0, 697, 699, 700, 701, 702, 703, 0, 573, 0, 21, 22, 23, 19, 0, 0, 0, 0, 0, 2, 5, 3, 97, 4, 15, 0, 16, 17, 10, 8, 13, 14, 12, 435, 0, 0, 11, 0, 0, 95, 0, 0, 9, 436, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 397, 398, 399, 0, 204, 596, 597, 598, 595, 612, 609, 610, 600, 602, 605, 604, 601, 603, 606, 607, 608, 613, 611, 599, 0, 0, 20, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 0, 0, 0, 0, 639, 638, 33, 21, 22, 23, 0, 0, 0, 0, 0, 219, 0, 218, 222, 224, 223, 347, 178, 179, 425, 303, 426, 591, 427, 592, 424, 428, 340, 351, 0, 0, 0, 0, 0, 0, 278, 273, 276, 275, 274, 176, 177, 173, 0, 302, 0, 0, 349, 348, 0, 239, 0, 0, 0, 231, 230, 234, 236, 235, 0, 0, 0, 0, 0, 343, 434, 433, 432, 401, 431, 658, 666, 671, 670, 672, 660, 653, 681, 677, 682, 678, 683, 679, 657, 654, 655, 673, 664, 674, 661, 675, 684, 680, 663, 665, 669, 667, 668, 659, 656, 662, 676, 342, 0, 0, 0, 320, 322, 325, 324, 323, 361, 0, 565, 0, 359, 0, 0, 0, 0, 407, 378, 377, 375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 700, 0, 304, 318, 767, 319, 768, 0, 253, 0, 0, 243, 242, 247, 248, 246, 0, 0, 417, 0, 0, 0, 0, 0, 0, 0, 689, 692, 0, 0, 691, 693, 0, 690, 0, 0, 688, 87, 88, 751, 357, 0, 0, 793, 362, 0, 0, 0, 0, 402, 0, 0, 0, 0, 0, 0, 184, 187, 186, 188, 0, 0, 371, 0, 416, 569, 358, 0, 645, 646, 341, 0, 0, 423, 0, 0, 0, 0, 0, 0, 257, 256, 262, 260, 757, 0, 290, 291, 293, 760, 0, 211, 210, 0, 0, 0, 0, 266, 267, 270, 758, 0, 286, 287, 289, 759, 338, 0, 192, 0, 0, 0, 0, 0, 216, 228, 240, 254, 212, 213, 0, 0, 0, 0, 0, 412, 0, 0, 0, 0, 0, 284, 0, 0, 0, 0, 69, 0, 68, 97, 164, 83, 162, 0, 0, 1, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 437, 801, 803, 802, 0, 0, 0, 0, 0, 0, 570, 486, 0, 0, 0, 0, 202, 87, 91, 0, 0, 165, 365, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 181, 0, 180, 0, 0, 0, 430, 298, 299, 301, 300, 0, 742, 741, 406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 831, 830, 832, 226, 225, 755, 739, 744, 695, 694, 221, 68, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 738, 737, 740, 280, 0, 0, 0, 0, 0, 0, 0, 0, 238, 237, 756, 233, 0, 0, 561, 563, 560, 0, 327, 326, 786, 321, 0, 790, 200, 0, 0, 0, 0, 0, 376, 0, 761, 314, 313, 312, 315, 0, 307, 309, 785, 308, 305, 0, 306, 762, 763, 0, 0, 0, 0, 0, 249, 245, 0, 208, 0, 0, 0, 87, 0, 0, 419, 0, 0, 87, 752, 621, 620, 622, 623, 429, 749, 0, 0, 19, 0, 355, 356, 0, 0, 0, 403, 404, 0, 410, 0, 408, 0, 92, 93, 201, 0, 624, 625, 630, 632, 626, 628, 629, 627, 631, 633, 185, 0, 0, 0, 0, 0, 706, 707, 0, 372, 0, 0, 265, 263, 259, 261, 0, 292, 0, 0, 272, 269, 0, 288, 0, 782, 781, 784, 783, 0, 217, 229, 241, 255, 778, 777, 780, 779, 0, 0, 0, 296, 635, 637, 634, 636, 294, 0, 297, 295, 344, 166, 167, 168, 65, 163, 0, 0, 0, 0, 0, 0, 6, 170, 0, 0, 0, 82, 140, 81, 143, 80, 161, 79, 158, 78, 152, 77, 155, 76, 149, 75, 146, 66, 117, 67, 120, 70, 123, 71, 126, 72, 129, 73, 132, 27, 0, 0, 0, 0, 139, 138, 142, 141, 160, 159, 157, 156, 151, 150, 154, 153, 148, 147, 145, 144, 116, 115, 119, 118, 122, 121, 125, 124, 128, 127, 131, 130, 172, 171, 0, 0, 0, 0, 0, 0, 333, 329, 769, 331, 773, 615, 618, 774, 770, 772, 771, 619, 616, 617, 775, 776, 614, 330, 30, 0, 566, 44, 45, 46, 47, 48, 49, 50, 51, 571, 0, 0, 0, 0, 0, 0, 0, 0, 462, 465, 466, 0, 459, 484, 0, 461, 0, 0, 0, 0, 0, 473, 479, 476, 475, 478, 474, 0, 0, 0, 798, 458, 457, 363, 485, 364, 0, 451, 454, 453, 452, 215, 0, 0, 797, 0, 0, 0, 0, 0, 439, 443, 441, 440, 442, 438, 0, 29, 28, 96, 494, 556, 558, 557, 559, 0, 0, 0, 0, 0, 545, 492, 553, 554, 794, 555, 493, 795, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 521, 539, 540, 820, 530, 491, 828, 0, 652, 0, 650, 0, 0, 731, 730, 0, 0, 0, 651, 0, 0, 0, 0, 0, 488, 496, 503, 506, 509, 516, 489, 819, 0, 0, 0, 0, 203, 0, 52, 34, 104, 35, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 85, 370, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 81, 80, 79, 78, 77, 76, 75, 66, 67, 70, 71, 72, 73, 0, 369, 277, 753, 279, 174, 0, 593, 594, 0, 196, 0, 198, 199, 0, 0, 0, 353, 562, 89, 0, 0, 392, 0, 0, 765, 311, 310, 317, 764, 316, 0, 250, 789, 251, 0, 191, 0, 0, 0, 99, 373, 0, 205, 207, 0, 206, 750, 0, 791, 792, 101, 405, 411, 409, 0, 0, 102, 0, 0, 103, 704, 705, 368, 0, 264, 258, 374, 268, 271, 576, 577, 578, 579, 581, 580, 582, 583, 584, 585, 586, 587, 0, 0, 0, 414, 413, 0, 0, 0, 0, 0, 169, 0, 0, 787, 788, 332, 0, 0, 337, 0, 567, 472, 0, 468, 0, 469, 471, 467, 463, 460, 0, 806, 748, 746, 747, 745, 0, 807, 481, 480, 477, 838, 835, 836, 837, 834, 799, 456, 455, 831, 832, 804, 450, 214, 0, 800, 447, 448, 796, 445, 444, 446, 449, 0, 0, 649, 648, 647, 551, 547, 546, 833, 548, 549, 0, 0, 527, 525, 0, 524, 523, 531, 824, 823, 825, 542, 543, 0, 0, 0, 522, 526, 686, 687, 685, 829, 528, 529, 0, 532, 0, 533, 821, 822, 0, 810, 502, 813, 0, 0, 497, 0, 808, 512, 507, 510, 812, 811, 0, 0, 0, 816, 0, 809, 513, 508, 511, 500, 501, 0, 817, 0, 518, 814, 815, 0, 487, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175, 339, 197, 0, 0, 0, 0, 0, 0, 766, 0, 0, 0, 0, 0, 0, 0, 193, 194, 0, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 134, 135, 136, 137, 334, 0, 0, 464, 0, 367, 0, 482, 366, 805, 552, 0, 495, 538, 0, 827, 826, 535, 534, 537, 536, 541, 514, 504, 0, 515, 505, 498, 0, 499, 590, 588, 589, 517, 818, 0, 713, 712, 0, 0, 0, 37, 36, 109, 38, 107, 108, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 391, 0, 0, 26, 0, 252, 0, 0, 0, 0, 383, 0, 0, 385, 0, 394, 0, 182, 0, 0, 415, 0, 98, 335, 336, 470, 483, 550, 544, 519, 520, 386, 387, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, 0, 0, 729, 727, 728, 0, 0, 0, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 725, 724, 722, 720, 726, 721, 723, 0, 53, 0, 39, 110, 40, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 232, 0, 0, 244, 0, 100, 384, 0, 395, 0, 183, 285, 283, 0, 0, 0, 0, 0, 0, 0, 0, 743, 0, 0, 0, 0, 0, 0, 189, 209, 0, 714, 715, 716, 0, 0, 41, 112, 0, 0, 0, 0, 0, 0, 390, 389, 0, 0, 393, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 719, 717, 718, 0, 0, 42, 113, 0, 380, 0, 0, 0, 0, 0, 388, 0, 0, 0, 0, 0, 282, 0, 54, 43, 114, 0, 0, 0, 0, 0, 0, 0, 0, 754, 381, 0, 0, 382 }; /* YYDEFGOTO[NTERM-NUM]. */ static const short int yydefgoto[] = { -1, 150, 151, 152, 413, 636, 414, 637, 677, 607, 776, 250, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 597, 1075, 1050, 1025, 1014, 305, 290, 252, 168, 169, 1213, 1445, 268, 1140, 222, 941, 756, 757, 788, 834, 432, 170, 446, 1281, 1077, 343, 1308, 416, 658, 171, 1194, 796, 172, 1451, 1604, 1632, 1552, 1532, 173, 276, 433, 278, 434, 435, 980, 1248, 174, 1030, 175, 1081, 1056, 653, 1031, 1259 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ #define YYPACT_NINF -909 static const short int yypact[] = { 3203, -909, -270, -348, -114, -909, -304, -300, -289, -281, -274, -267, -259, -242, -240, -236, -27, -909, -909, 23, -224, -63, 683, -909, -909, 115, 5583, 5946, 128, 155, 128, 23, -909, 824, -13, 128, 128, -909, -187, 9526, 6136, -119, -909, -105, -909, 896, 11665, 294, 128, -130, -909, 208, 128, -98, -909, -909, -83, -29, 8, -909, -909, 554, 4941, 6326, -148, 128, -32, -909, 18, -909, 23, 201, 22, 5213, -909, 62, 169, -909, 128, 24, 7100, -909, 359, -39, 29, 31, 23, 38, -909, -909, -909, -909, -909, 128, -909, -130, -909, 10907, 23, -65, 23, 9757, 5525, -909, 42, 23, 23, 10907, 6516, 96, 5583, -909, 128, 10907, 7574, -909, -909, -909, -909, -909, -909, 526, 7854, 23, -909, -909, -909, -909, -909, -909, -127, -909, 44, -909, -909, -909, -909, -909, -909, -124, -909, 10907, -69, 1, 48, -909, 10907, 8230, 8230, 8230, 381, 70, -909, 1068, 49, 5338, -909, 78, -909, -909, -909, -909, -909, -909, -909, -909, 879, 11500, -909, 14, 82, -909, 86, 88, -909, -909, -74, 9526, 10907, 10907, 8230, 8230, 10907, 10907, 8230, 10907, 10907, 10907, 10907, 10907, -909, -3, -58, 79, 184, 10907, -3, 83, -909, -909, -909, 9902, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, 128, 98, -909, -909, 99, 100, 101, 107, 109, 110, 120, 124, 126, -909, 13, 10907, 10907, -167, -909, -909, -909, -909, -909, -909, 10907, 10907, 10907, 227, -108, 130, 131, -909, -909, -909, -909, 132, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, 132, 242, 288, 8628, 10907, 128, 292, -909, -909, -909, -909, -909, -909, -909, 172, 128, 132, -90, 23, 8191, 132, 130, -909, 13, -167, 330, 130, -909, -909, -909, -909, 10907, 128, 10907, 128, 10907, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, 50, -3, 10907, -909, -909, -909, -909, -909, 132, 10907, -909, 9526, 132, 23, 8230, 23, 23, -909, -909, 79, 307, 1066, 300, 9526, 10907, -3, 10907, 10907, -167, 10907, 10907, 10907, 10907, 452, -909, -909, -909, -909, -909, 7999, -909, -167, 601, 130, -909, -909, -909, -909, -3, 274, 132, 10907, 10907, 10907, 275, 128, 23, 461, -909, -909, 10907, 281, -909, -909, 10907, -909, 10907, 11052, -909, 8191, -909, -909, -909, 4, 8774, -909, 132, 10907, 128, -24, -24, 132, -24, 9526, 10907, 26, 10907, 23, -909, -909, -909, -909, 23, 23, -909, 8230, 132, -909, 8191, -261, -909, -909, -909, 10907, 10907, -909, 310, 128, 10907, -167, 10907, 697, 130, -909, -909, -909, -909, 10907, 132, -909, -909, -909, 207, -909, -909, 312, 128, 10907, 750, -909, -909, -909, -909, 10907, 132, -909, -909, -909, -909, -278, -909, 10907, 10907, 10907, 10907, 1383, 10907, 10907, 10907, 10907, 79, -909, 10907, 10907, 10907, 10907, 1420, -49, -3, 162, 23, -3, 162, 8191, -3, 10907, 10907, 10907, 199, 198, 226, 9, 228, 226, 228, 976, 6243, -909, 3564, -909, 10907, 8230, 8230, 8230, 8230, 8230, 8230, 8230, 8230, 8230, 8230, 8230, 8230, 8230, 8230, 431, 10907, 230, -909, 8230, 8230, 8230, 8230, 8230, 8230, 8230, 8230, 8230, 8230, 8230, 8230, 8230, 8230, 8230, 8230, 328, 496, 283, -3, -3, -3, 90, 880, 14, -909, 77, 135, 128, 10907, -3, 2385, 7165, -3, 128, 10907, 262, 366, 10907, 10907, 5715, 5583, 10907, 373, -909, -909, -909, -909, 606, 893, 10907, 4402, 4714, 277, -909, -909, 23, 23, 8230, 10907, -909, 6434, 132, 259, 261, 8191, -909, 1068, 266, 7675, 7695, 7721, 282, 289, 1463, 1495, 301, 1640, 1700, 1877, 1919, -909, 9526, 132, -153, 23, 303, -909, -909, -909, -909, -909, 10907, 132, -909, 132, 10907, 10907, 10907, 10907, 10907, 10907, 10907, 10907, 10907, 9902, -909, 10907, -909, -909, -909, -909, 8191, -909, -909, -909, 199, 199, 8061, 10907, 10907, 10907, 10907, 10907, 10907, 10907, 10907, 10907, 10907, 10907, 10907, 10907, 10907, 10907, -909, 23, 10907, 10907, 132, -909, -909, 132, 10907, 3880, -164, 10907, -7, 128, 389, 304, -909, -909, -909, -909, 10907, 284, 132, 8191, 132, 464, -909, -909, -909, -909, 321, 8191, 132, 326, 1068, 1984, 306, 345, -909, -4, -909, -909, -909, -909, -909, 10907, -909, -909, 8191, -909, -909, 128, -909, 8191, 8191, 10907, 10907, 10907, 10907, 10907, -909, -909, 10907, -909, 108, 423, 443, 2044, 350, 23, 132, 365, -3, 8337, -909, -909, -909, -909, -909, -909, -909, 374, 8587, 375, 376, -909, 132, 10907, 10907, 367, 132, 132, 128, 132, 128, 132, 128, 8191, 132, -909, 2067, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, 2116, 379, 383, 385, 8457, -909, -909, 10, -909, 2193, 10907, 132, -909, -909, -909, 10907, 8191, 23, 10907, 132, -909, 10907, 8191, 1330, 8191, 8191, 8191, 8191, 10907, -909, -909, -909, -909, 8191, 8191, 8191, 8191, 10907, 128, 128, -909, -909, -909, -909, -909, -909, 386, -909, -909, -909, 8191, 8191, 8191, -909, -909, 446, -348, 25, -69, 1, 48, -909, -130, 11346, 11514, 4903, 6, 73, 626, 916, 1011, 1186, 1011, 1186, 1011, 1186, 1011, 1186, 1011, 1186, 1011, 1186, 209, 305, 209, 305, 226, 228, 226, 228, 226, 228, 226, 228, -909, -316, 10907, 5761, 7959, 6, 73, 626, 916, 1011, 1186, 1011, 1186, 1011, 1186, 1011, 1186, 1011, 1186, 1011, 1186, 209, 305, 209, 305, 226, 228, 226, 228, 226, 228, 226, 228, 1068, 5338, -33, 10907, 11665, 10907, 10907, 10907, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -130, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, 128, 510, 11665, 10907, 10907, 128, 10907, 10907, -909, -909, -909, 10907, -909, 132, 388, -909, 10907, 39, 417, 10907, -2, -909, -909, -909, -909, -909, -909, 10907, 10907, 200, -909, -909, -909, -909, 132, -909, 10907, -909, -909, -909, -909, -909, 128, 2291, -909, -3, 10155, 9005, 10907, 10907, -909, -909, -909, -909, -909, -909, 2382, -909, -909, -909, -909, -909, -909, -909, -909, 512, -22, 104, -2, 7478, 132, -909, -909, -909, -909, -909, -909, -909, 2442, 10907, 128, 513, 4031, 128, -99, 9150, 354, 10907, 128, 30, 10907, 10907, 10300, 10531, -23, 391, -909, -909, -909, -909, -909, -909, -909, -909, -3, -909, 10907, -909, -3, 6975, 418, 421, 6748, 10907, 10907, -909, 214, 10907, 10676, -17, 398, -909, -909, -909, -909, -909, -909, -909, -909, -3, 401, 402, 8480, -909, 10907, -909, -909, -909, -909, -909, 10907, 8230, 8230, 8230, 10907, 10907, 10907, 10907, 10907, 8191, -909, -909, 10907, 8061, 403, 8500, 405, 2468, 407, 2597, 2618, 2682, 2717, 871, 1528, 1674, 1674, 1674, 1674, 1674, 1674, 351, 351, 199, 199, 199, 199, 2757, -909, 8191, 8191, 8191, -909, 408, -909, -909, 128, 8191, -3, -909, 132, 10907, 10907, 2788, -909, -909, -909, 8230, 8230, -909, 8230, 200, -909, -909, -909, 8191, 132, 8191, 2812, 8191, 8191, -909, 3563, -909, 413, 128, 10907, -909, -909, 8230, -909, 10907, 10907, 10907, -909, 10907, 8191, 8191, -909, 132, 132, 132, 10907, 10907, -909, 10907, 8375, -909, -909, -909, -909, 10907, 8191, 8191, -909, 8191, 8191, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, 679, 3586, 3609, -109, 132, 23, 230, 586, 10907, 10907, 8191, 8230, 8230, -909, -909, 8191, 11665, 3693, -909, 3716, -909, 132, 10907, -909, 3907, -909, 132, -909, -909, -909, 10907, 8191, -909, -909, -909, -909, 144, -909, -909, -909, 8191, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, 132, 10907, -909, -909, -909, -909, -909, -909, 8191, -909, 10907, 10907, -909, -909, -909, -909, -909, -909, -909, -909, -909, 3932, 10907, -909, 132, 10907, 8191, -909, 132, -909, -909, -909, -909, -909, 3988, 515, 516, -909, 132, -909, -909, -909, -909, -909, -909, -16, 8191, -5, 8191, -909, -909, 128, -909, -909, -909, -3, 10907, 4106, 414, -909, -909, -909, -909, -909, -909, -3, 10907, 10907, 4106, 426, -909, -909, -909, -909, 8191, 8191, -3, 8191, -44, -909, -909, -909, 10907, -909, 10907, 9381, -909, 429, 447, 8689, 8731, 8826, 8876, 9202, 9225, 445, 4130, 4217, 4273, 4317, 448, 10907, 10907, 10907, 10907, 10907, 10907, 10907, 10907, 10907, -909, 132, -909, 449, 451, 10907, 4429, 9253, 4450, -909, 10907, 10907, 10907, -309, 4496, 469, 4532, -909, -909, 4756, 8191, 470, -325, 9599, 4779, 128, 10907, 10907, 128, 471, 8965, 486, 9111, 9342, 9111, 9342, -909, 10907, 10907, 8191, 10907, -909, 10907, -909, 8191, 8191, 8191, 10907, 8191, 8191, 10907, -909, -909, -909, -909, -909, -909, 132, -909, 8191, 10907, -909, 8191, -909, 10907, -909, -909, -909, -909, -909, 8191, 490, -909, -909, 492, 493, 10907, -909, -909, -909, -909, -909, -909, -909, 8230, 8230, 10907, 10907, 10907, 10907, 494, 9624, 9778, 495, 4816, 5026, 5055, 5128, 5239, 10907, -909, 5286, -3, -909, -19, 8191, 5422, 497, 128, 10907, -909, 10907, 10907, -909, -3, -909, 10907, -31, 5564, 5630, 132, 10907, -909, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, -909, -909, 76, 40, 9990, 10022, 10113, 10215, 5672, 5798, 5822, 6005, 10907, 10907, 10907, 10907, 10907, 10907, 10907, -909, 10907, 499, -909, -909, -909, 502, 10907, 10907, 132, 507, 508, 6053, 509, 6357, 128, 10907, 10907, 511, -909, -909, -909, -909, -909, -909, -909, 514, -909, 10907, -909, -909, -909, -909, 8230, 10907, 10907, 10907, 518, 10257, 10356, 6473, 6563, 6586, 8191, 8191, -3, -3, 8191, 523, -909, -909, 10907, -909, 10907, 132, 8191, 8191, -3, 55, 525, 10398, 10730, 6705, 6844, 6873, -909, 10907, 10907, 10907, 519, 528, 10907, 8191, 3407, 530, -909, -909, -909, 532, 10907, -909, -909, 8230, 10907, 10907, 10774, 6997, 7018, -909, -909, 534, 10907, -909, 111, 535, 10928, 10950, 7184, 372, 10907, 10907, 537, 7258, -909, -909, -909, 540, 10907, -909, -909, 8230, -909, -3, 11071, 7291, 128, 10907, -909, 11096, 11116, 11140, 541, 10907, 132, 7393, -909, -909, -909, -3, 11160, 10907, 550, 7593, -3, 10907, 72, 8191, -909, -3, 555, -909 }; /* YYPGOTO[NTERM-NUM]. */ static const short int yypgoto[] = { -909, -909, -909, 382, 0, 1645, -161, 1557, -48, -909, -909, 324, 1796, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, 320, -909, -909, -909, -909, -909, 2128, 220, -909, -163, -909, -909, 873, -909, -72, -909, -909, -909, -909, 399, 1138, -909, -347, -909, -909, -908, -909, -909, -28, -581, -909, -909, -909, -909, -909, -909, -909, -909, -909, -53, 47, -12, 58, 196, -246, -909, -909, -909, -909, -909, -909, -290, -223, -112 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ #define YYTABLE_NINF -171 static const short int yytable[] = { 153, 354, 695, 567, 1541, 1013, 281, 282, 426, 379, 508, 190, 1229, 1226, 688, 1404, 606, 1138, 1442, 611, 301, 615, 616, 1315, 619, 812, 1529, 249, 523, 1346, 1429, 502, 689, 1142, 505, 349, 201, 444, 482, 288, 294, 1431, 190, 395, 1278, 190, 1295, 441, 1236, 458, 178, 463, 176, 179, 1192, 474, 479, 1139, 1222, 778, 1254, 1255, 377, 386, 1305, 827, 591, 794, 431, 392, 1490, 201, 1601, 190, 254, 828, 769, 771, 444, 773, 277, 1150, 625, 202, 779, 255, 1484, 297, 648, 180, 396, 279, 795, 181, 348, 542, 191, 442, 298, 393, 201, 1245, 455, 762, 182, 350, 541, 1193, 472, 380, 389, 190, 183, 625, 489, 943, 944, 201, 954, 184, 381, 390, 500, 177, 690, 201, 185, 691, 1293, 428, 302, 237, 238, 240, 186, 263, 1545, 503, 241, 698, 506, 507, 928, 1279, 955, 656, 512, 514, 517, 519, 1530, 187, 201, 188, 657, 49, 50, 189, 929, 1443, 459, 445, 464, 1256, 367, 190, 475, 480, 240, 195, 780, 201, 781, 241, 258, 259, 592, 604, 608, 1296, 610, 613, 196, 1602, 617, 1629, 620, 621, 622, 623, 201, 782, 707, 428, 303, 237, 238, 190, 265, 367, 240, 956, 445, 240, 240, 241, 287, 930, 241, 241, 1297, 1546, 1547, 238, 588, 304, 649, 273, 367, 260, 167, 240, 593, 256, 651, 589, 241, 625, 931, 280, 1280, 1306, 240, 996, 650, 1307, 299, 241, 655, 194, 49, 50, 200, 351, 1246, 1227, 659, 660, 661, 523, 1257, 270, 1444, 261, 1247, 1316, 783, 784, 382, 391, 1531, 1347, 1430, 262, 429, 696, 353, 238, 932, 933, 934, 273, 419, 1432, 300, 1262, 1245, 1603, 785, 1548, 693, 364, 625, 539, 240, 957, 631, 602, 353, 241, 398, 95, 96, 1630, 652, 357, 1549, 430, 460, 1258, 465, 625, 700, 263, 476, 481, 438, 355, 594, 595, 358, 1418, 958, 959, 461, 935, 1155, 596, 443, 936, 447, 1412, 1282, 264, 154, 466, 467, 1283, 429, 509, 399, 960, 703, 625, 786, 1631, 787, 201, 830, 831, 418, 495, 240, 501, 727, 344, 1029, 241, 1055, 1080, 694, 240, 523, 719, 431, 708, 241, 738, 711, 283, 625, 430, 417, 590, 359, 937, 265, 832, 477, 201, 725, 1057, 1082, 938, 939, 730, 731, 427, 1550, 884, 961, 521, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 523, 1551, 538, 744, 752, 510, 539, 360, 704, 649, 750, 540, 833, 920, 753, 345, 759, 397, 718, 1301, 632, 400, 1245, 421, 655, 1246, 633, 1263, 436, 720, 437, 802, 940, 774, 777, 1247, 789, 439, 237, 238, 1553, 1554, 266, 504, 965, 711, 539, 1087, 634, 267, 754, 540, 511, -170, 798, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 805, 522, 557, 237, 238, 1663, 1664, 444, 1342, 627, 515, 515, 515, 523, 599, 558, 811, 611, 600, 1110, 601, 1112, 273, 628, 813, 814, 815, 816, 1249, 240, 177, 639, 640, 641, 241, 822, 823, 824, 825, 642, 240, 643, 644, 515, 515, 241, 692, 515, 839, 840, 841, 1009, 645, 755, 273, 963, 646, 921, 647, 1011, 566, 586, 625, 854, 855, 857, 859, 861, 863, 865, 867, 869, 871, 873, 875, 877, 879, 881, 1026, 1012, 1052, 678, 886, 888, 890, 892, 894, 896, 898, 900, 902, 904, 906, 908, 910, 912, 914, 916, 1246, 679, 721, 977, 985, 685, 990, 1302, 992, 686, 1247, 715, 1006, 722, 240, 741, 746, 749, 710, 241, 713, 714, 997, 799, 806, 807, 1010, 922, 237, 238, 675, 490, 431, 445, 1032, 535, 536, 537, 346, 883, 538, 524, 711, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 361, 538, 675, 557, 923, 748, 976, 676, 523, 240, 1103, 991, 964, 885, 241, 1005, 918, 978, 986, 491, 1107, 919, 993, 1016, 1013, 1109, 1007, 1111, 1083, 1113, 1114, 1115, 1116, 523, 1017, 1027, 790, 1053, 1078, 1088, 1089, 791, 792, 49, 50, 1090, 1145, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1094, 1148, 1133, 1134, 201, 515, 1149, 1095, 1135, 49, 50, 1141, 567, 554, 555, 556, 1264, 492, 557, 1098, 1147, 1106, 1146, 1153, 128, 129, 524, 1157, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 1150, 523, 675, 1151, 1159, 1168, 835, 697, 133, 134, 135, 136, 137, 138, 1161, 1162, 1163, 1164, 672, 673, 674, 1166, 1154, 675, 853, 1169, 1171, 524, 1178, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 1173, 1182, 675, 515, 1180, 1181, 1637, 1638, 176, 1176, 979, 1179, 523, 1188, 1158, 994, 237, 238, 1189, 1008, 1190, 1218, 1235, 1243, 1277, 1291, 1317, 1018, 1028, 1329, 1054, 1079, 1330, 1348, 95, 96, 1350, 1351, 1367, 1196, 1368, 362, 1370, 1219, 1197, 1376, 1388, 1199, 1401, 1436, 1200, 1427, 1428, 240, 493, 49, 50, 1214, 241, 1084, 1085, 1440, 95, 96, 1452, 524, 1215, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 1460, 1453, 675, 1465, 1475, 1476, 851, 732, 1105, 515, 515, 515, 515, 515, 515, 515, 515, 515, 515, 515, 515, 515, 515, 1486, 1489, 1385, 1497, 515, 515, 515, 515, 515, 515, 515, 515, 515, 515, 515, 515, 515, 515, 515, 515, 1498, 1507, 1223, 1508, 953, 1509, 1519, 1520, 271, 1534, 523, 1571, 1233, 197, 1572, 1132, 201, 588, 1575, 1576, 1578, 850, 837, 1583, 284, 0, 1584, 1284, 589, 1591, 1614, 128, 129, 17, 18, 1597, 1228, 1605, 1230, 1615, 1232, 1618, 515, 559, 1619, 1627, 0, 1633, 560, 1641, 1354, 1643, 0, 1654, 1361, 542, 133, 134, 135, 136, 137, 138, 1659, 272, 1270, 0, 1666, 0, 95, 96, 0, 0, 0, 0, 1237, 0, 0, 1019, 0, 190, 0, 0, 0, 1172, 306, 201, 0, 1244, 0, 0, 1253, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 1272, 0, 675, 0, 0, 237, 238, 739, 561, 523, 0, 0, 0, 1274, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 198, 367, 538, 307, 0, 1251, 562, 0, 0, 1287, 0, 0, 1198, 942, 49, 50, 0, 0, 0, 523, 0, 0, 1292, 0, 0, 1300, 0, 563, 199, 0, 0, 273, 1312, 1314, 0, 590, 0, 0, 0, 1020, 0, 0, 0, 1021, 0, 1273, 0, 1407, 0, 1323, 238, 0, 1334, 1340, 1341, 0, 524, 1343, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 240, 675, 0, 0, 523, 241, 804, 0, 274, 1355, 1357, 1359, 0, 1362, 1363, 1364, 1365, 240, 0, 0, 0, 1022, 241, 0, 1326, 0, 0, 1337, 0, 0, 275, 0, 0, 0, 1023, 1327, 0, 524, 1338, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 201, 0, 0, 0, 810, 0, 0, 943, 944, 0, 711, 711, 0, 711, 0, 0, 0, 0, 0, 0, 564, 0, 0, 308, 253, 0, 0, 1252, 0, 1390, 0, 0, 610, 0, 1129, 0, 1129, 296, 0, 0, 716, 565, 310, 0, 347, 1395, 1396, 0, 0, 711, 0, 0, 945, 946, 1400, 947, 948, 0, 0, 378, 388, 0, 0, 949, 950, 951, 952, 542, 1469, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1406, 0, 0, 1408, 1410, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1415, 237, 238, 0, 140, 457, 0, 0, 0, 0, 0, 473, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 1328, 0, 675, 1339, 0, 0, 0, 0, 1420, 0, 0, 566, 0, 0, 240, 0, 0, 1421, 1422, 241, 0, 0, 0, 0, 0, 0, 0, 0, 273, 1424, 0, 0, 1425, 0, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 568, 587, 557, 598, 0, 0, 0, 0, 0, 0, 603, 0, 0, 0, 0, 0, 0, 0, 1435, 0, 0, 0, 0, 0, 0, 624, 0, 0, 1438, 0, 630, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 0, 1446, 524, 0, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 0, 0, 538, 0, 1467, 1468, 842, 1470, 1471, 1472, 1473, 1474, 0, 0, 0, 0, 0, 1477, 0, 0, 0, 0, 1481, 1482, -171, -171, -171, -171, -171, -171, 533, 534, 535, 536, 537, 0, 0, 538, 1494, 1495, 0, 523, 0, 0, 0, 0, 0, 0, 0, 1499, 1500, 0, 1501, 0, 1502, 515, 515, 515, 0, 1503, 0, 0, 1504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1505, 0, 1405, 0, 1506, 524, 523, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 0, 0, 538, 0, 1511, 1513, 1515, 1516, 1517, 1518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 515, 515, 0, 515, 0, 0, 0, 0, 705, 0, 523, 0, 0, 1538, 0, 0, 0, 1540, 0, 0, 0, 0, 515, 0, 0, 0, 0, 0, 717, 0, 0, 0, 724, 0, 0, 0, 0, 0, 0, 515, 0, 0, 542, 0, 0, 1564, 1565, 1566, 1567, 1568, 1569, 0, 1570, 0, 0, 740, 0, 0, 1573, 0, 0, 0, 0, 0, 0, 0, 0, 1581, 1582, 0, 0, 0, 0, 515, 515, 523, 0, 0, 0, 0, 0, 0, 0, 0, 1586, 1588, 1589, 1590, -171, -171, -171, -171, -171, -171, 552, 553, 554, 555, 556, 0, 0, 557, 1598, 0, 1599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1611, 1612, 1613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1621, 1623, 1624, 0, 0, 0, 0, 0, 0, 1628, 0, 0, 0, 0, 0, 0, 0, 1639, 1640, 0, 0, 0, 415, 0, 0, 1644, 0, 0, 1645, 0, 0, 0, 829, 0, 1650, 836, 0, 0, 838, 0, 1655, 0, 0, 0, 0, 0, 0, 0, 1658, 0, 449, 0, 1662, 192, 523, 0, 468, 0, 0, 0, 0, 0, 484, 0, 0, 257, 0, 269, 0, 0, 0, 0, 285, 286, 0, 0, 289, 0, 0, 0, 0, 0, 0, 0, 0, 352, 0, 0, 523, 356, 0, 924, 925, 926, 927, 0, 0, 598, 0, 962, 966, 0, 394, 969, 975, 0, 987, 0, 0, 0, 995, 0, 0, 0, 523, 420, 0, 425, 0, 0, 0, 1015, 0, 0, 1051, 1076, 0, 0, 609, 0, 440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 462, 0, 0, 629, 0, 478, 0, 524, 483, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 0, 817, 0, 0, 0, 0, 0, 515, 515, 0, 0, 0, 0, 0, 0, 0, 524, 654, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 0, 826, 0, 0, 0, 0, 0, 0, 605, 0, 0, 0, 0, 1143, 0, 682, 683, 0, 0, 0, 0, 0, 524, 626, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 0, 0, 538, 1156, 0, 0, 0, 1096, 0, 0, 702, 0, 0, 0, 0, 0, 638, 543, 0, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 515, 0, 557, 0, 1174, 0, 0, 1097, 0, 0, 0, 0, 0, 0, 0, 0, 523, 0, 0, 0, 706, 0, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 681, 675, 684, 0, 0, 0, 0, 682, 723, 0, 0, 726, 687, 728, 729, 515, 0, 0, 0, 0, 0, 0, 0, 737, 523, 0, 516, 518, 520, 699, 0, 701, 0, 0, 0, 742, 743, 745, 0, 0, 0, 0, 0, 515, 751, 0, 0, 0, 758, 0, 0, 761, 0, 0, 0, 0, 0, 0, 0, 612, 614, 766, 0, 618, 0, 0, 0, 0, 0, 0, 0, 0, 0, 568, 587, 0, 0, 0, 0, 0, 0, 0, 0, 709, 0, 0, 0, 797, 0, 542, 0, 0, 801, 0, 803, 681, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 809, 0, 675, 0, 0, 0, 0, 1099, 0, 0, 0, 0, 0, 0, 0, 0, 747, 0, 0, 818, 819, 820, 821, -171, -171, -171, -171, -171, -171, 670, 671, 672, 673, 674, 763, 0, 675, 0, 523, 767, 768, 770, 0, 772, 775, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 523, 675, 0, 0, 0, 0, 1100, 800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1250, 0, 0, 0, 0, 808, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 968, 0, 0, 984, 0, 0, 989, 0, 1268, 523, 998, 1004, 0, 0, 0, 0, 0, 0, 193, 0, 0, 193, 1049, 1074, 0, 712, 251, 0, 0, 0, 193, 0, 0, 0, 0, 0, 0, 0, 0, 295, 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 363, 0, 387, 1108, 0, 0, 0, 1318, 0, 193, 0, 1320, 1325, 0, 0, 1336, 0, 0, 683, 0, 0, 0, 0, 0, 0, 193, 523, 967, 0, 0, 0, 0, 1349, 988, 0, 0, 0, 193, 0, 193, 0, 456, 0, 0, 193, 193, 793, 0, 1024, 0, 0, 0, 0, 0, 1137, 0, 0, 0, 0, 0, 494, 524, 193, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 1104, 0, 1101, 0, 0, 0, 0, 0, 0, 0, 1378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 524, 1165, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 523, 1102, 0, 0, 0, 0, 0, 0, 856, 858, 860, 862, 864, 866, 868, 870, 872, 874, 876, 878, 880, 882, 1144, 0, 0, 0, 887, 889, 891, 893, 895, 897, 899, 901, 903, 905, 907, 909, 911, 913, 915, 917, 0, 0, 543, 0, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 0, 1160, 557, 0, 0, 0, 0, 1152, 0, 0, 0, 0, 0, 0, 0, 1419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1086, 0, 0, 0, 0, 0, 0, 523, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1183, 193, 1184, 524, 1185, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 0, 1170, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 1434, 201, 0, 1186, 0, 523, 0, 0, 0, 0, 1437, 0, 0, 1216, 1217, 0, 0, 0, 0, 0, 1231, 1441, 0, 0, 0, 0, 193, 0, 193, 193, 524, 523, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 0, 1187, 0, 0, 0, 1238, 0, 1240, 1241, 0, 0, 0, 1242, 0, 0, 0, 0, 0, 193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1260, 1261, 0, 0, 0, 0, 0, 0, 0, 1265, 0, 0, 0, 0, 970, 0, 0, 237, 238, 1269, 1271, 193, 1275, 0, 0, 0, 193, 193, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 0, 1195, 0, 1289, 0, 240, 0, 0, 0, 0, 241, 1303, 1234, 0, 1309, 1310, 0, 1239, 0, 273, 0, 0, 0, 0, 0, 971, 0, 0, 0, 1528, 1319, 0, 523, 1324, 0, 0, 1335, 0, 0, 0, 0, 1539, 1345, 0, 0, 193, 0, 0, 0, 0, 0, 972, 0, 523, 1266, 0, 0, 0, 1353, 0, 0, 0, 0, 852, 0, 0, 0, 0, 0, 0, 973, 0, 0, 0, 0, 0, 1366, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 1290, 0, 675, 1294, 0, 0, 0, 1267, 1304, 974, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1379, 1380, 523, 0, 0, 0, 0, 1595, 1596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1600, 0, 0, 0, 0, 0, 193, 193, 0, 1391, 0, 0, 1393, 0, 0, 1394, 0, 0, 523, 0, 0, 0, 0, 0, 0, 1397, 0, 0, 0, 0, 0, 0, 0, 0, 524, 193, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 1647, 1276, 0, 523, 0, 0, 0, 0, 0, 1377, 0, 0, 0, 0, 0, 0, 1657, 0, 0, 0, 0, 1661, 0, 0, 1417, 0, 1665, 0, 0, 0, 193, 0, 0, 0, 523, 0, 0, 0, 1389, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 523, 0, 0, 1288, 0, 0, 0, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 0, 1369, 0, 0, 0, 0, 0, 1167, 0, 0, 0, 0, 193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1439, 1356, 1358, 1360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1447, 1450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1466, 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1483, 0, 1382, 1383, 0, 1384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1433, 0, 0, 0, 0, 0, 0, 1392, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 1399, 675, 0, 0, 0, 524, 1371, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 1510, 0, 0, 0, 1372, 0, 0, 0, 0, 0, 0, 1409, 1411, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1536, 0, 1537, 0, 1493, 0, 0, 1496, 0, 0, 0, 0, 1544, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 1563, 1373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 524, 1574, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 1585, 1374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1535, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 0, 1375, 0, 1616, 0, 0, 0, 0, 0, 0, 524, 1620, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 0, 1381, 0, 524, 1580, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, -7, 1, 0, 0, 1386, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 0, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 0, 16, 0, 17, 18, 0, 0, 19, 20, 0, 0, 0, 21, 22, 23, 0, 24, 25, 0, 1512, 1514, 0, 0, 0, 0, 0, 0, 26, 0, 0, 27, 28, 0, 0, 0, 0, 29, 0, 0, 30, 0, 0, 0, 0, 0, 0, 31, 32, 0, 1649, 0, 0, 0, 0, 0, 33, 34, 0, 0, 0, 0, 0, 0, 0, 35, 36, 37, 38, 0, 0, 0, 0, 0, 39, 40, 0, 0, 41, 0, 42, 0, 0, 43, 0, 0, 44, 45, 0, 0, 0, 46, 0, 47, 0, 0, 0, 0, 48, 49, 50, 0, 0, 0, 51, 0, 52, 0, 0, 53, 193, 0, 0, 0, 0, 0, 54, 55, 0, 1587, 0, 56, 57, 58, 59, 0, 60, 0, 61, 0, 0, 0, 0, 62, 0, 63, 0, 0, 0, 64, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 1622, 71, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 523, 0, 0, 1646, 0, 0, 74, 0, 0, 0, 0, 75, 76, 77, 78, 79, 80, 0, 0, 81, 82, 83, 84, 0, 85, 86, 0, 0, 0, 0, 87, 0, 88, 89, 90, 91, 92, 93, 0, 0, 0, 94, 95, 96, 0, 0, 0, 0, 97, 0, 98, 99, 0, 0, 100, 101, 0, 0, 0, 0, 0, 0, 102, 103, 104, 105, 0, 106, 0, 0, 0, 107, 108, 109, 0, 0, 0, 110, 0, 111, 112, 113, 0, 0, 0, 0, 114, 115, 116, 117, 118, 119, 120, 0, 121, 122, 0, 123, 124, 125, 126, 127, 128, 129, 0, 130, 131, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 134, 135, 136, 137, 138, 139, 140, -7, 1, 0, 0, 0, 0, 141, 142, 143, 144, 145, 0, 0, 0, 0, 0, 0, 0, 844, 845, 4, 523, 146, 147, 0, 0, 0, 148, 0, 0, 0, -7, 149, 0, 0, 16, 0, 17, 18, 0, 0, 19, 20, 0, 523, 0, 21, 22, 23, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 27, 28, 0, 523, 0, 0, 29, 0, 0, 30, 0, 0, 0, 0, 0, 0, 31, 32, 0, 0, 0, 0, 0, 0, 0, 33, 34, 0, 0, 0, 0, 0, 0, 0, 35, 36, 37, 38, 0, 0, 0, 0, 0, 39, 40, 0, 0, 41, 0, 42, 0, 0, 43, 0, 0, 44, 45, 0, 0, 0, 46, 0, 47, 0, 0, 0, 0, 48, 49, 50, 0, 0, 0, 51, 1617, 52, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 523, 0, 0, 0, 57, 58, 59, 0, 60, 0, 61, 0, 0, 0, 0, 62, 0, 63, 0, 0, 0, 64, 65, 523, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 0, 71, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 524, 73, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 74, 675, 0, 0, 0, 75, 76, 77, 78, 0, 80, 0, 0, 81, 82, 846, 84, 0, 85, 86, 0, 0, 0, 0, 0, 0, 88, 89, 90, 91, 92, 93, 0, 0, 0, 0, 95, 96, 0, 0, 0, 0, 97, 0, 98, 99, 0, 0, 100, 101, 0, 0, 0, 0, 0, 0, 102, 0, 104, 105, 0, 106, 0, 0, 0, 107, 108, 109, 0, 0, 0, 110, 0, 111, 112, 113, 0, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 121, 122, 0, 123, 0, 0, 0, 0, 128, 129, 0, 130, 131, 132, 223, 224, 225, 5, 0, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 0, 133, 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, 0, 523, 24, 141, 847, 848, 849, 0, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 523, 0, -7, 0, 1387, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 0, 1402, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 0, 1403, 0, 0, 0, 0, 0, 523, 0, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 223, 224, 225, 5, 0, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 67, 524, 69, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 24, 0, 675, 0, 0, 0, 0, 1413, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 311, 0, 1414, 0, 312, 313, 314, 315, 316, 317, 0, 0, 242, 318, 319, 320, 321, 322, 323, 523, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 324, 0, 0, 325, 0, 0, 0, 94, 95, 96, 0, 0, 523, 0, 0, 0, 0, 0, 0, 0, 0, 326, 0, 49, 50, 0, 0, 0, 0, 103, 0, 0, 0, 0, 327, 0, 0, 0, 0, 0, 54, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 115, 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, 129, 0, 0, 0, 0, 0, 0, 67, 0, 69, 0, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 0, 0, 133, 134, 135, 136, 137, 138, 523, 0, 0, 0, 0, 0, 0, 0, 0, 243, 244, 245, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 246, 339, 0, 0, 247, 0, 0, 0, 242, 248, 0, 0, 0, 1136, 0, 0, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 523, 340, 675, 94, 95, 96, 0, 1416, 0, 0, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 103, 0, 675, 0, 0, 0, 0, 1423, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 523, 0, 0, 0, 0, 115, 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, 129, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 0, 1426, 133, 134, 135, 136, 137, 138, 0, 0, 0, 0, 0, 341, 342, 0, 0, 243, 244, 245, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 246, 0, 0, 0, 247, 223, 224, 225, 5, 248, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 0, 0, 0, 1033, 0, 1034, 0, 0, 0, 0, 0, 0, 0, 542, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1035, 0, 0, 542, 0, 0, 0, 0, 201, 0, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 0, -87, 0, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 523, 0, 675, 0, 0, 0, 367, 1461, 1036, 1037, 0, 0, 0, 0, 0, 0, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 55, 0, 542, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1038, 0, 0, 0, 0, 0, 0, 238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 69, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 240, 1039, 0, 1462, 0, 241, 0, 1022, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1040, 0, 0, 0, 0, 0, 0, 0, 1041, 1042, 0, 0, 0, 0, 242, 0, 0, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 0, 1463, 94, 95, 96, 0, 1043, 0, 1044, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1045, 1046, 1047, 524, 103, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 1048, 0, 675, 0, 0, 0, 0, 1464, 0, 0, 115, 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, 129, 223, 224, 225, 5, 0, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 1058, 0, 0, 0, 0, 133, 134, 135, 136, 137, 138, 0, 0, 0, 24, 0, 0, 0, 0, 0, 243, 244, 245, 145, 0, 0, 1059, 0, 523, 0, 0, 0, 0, 0, 0, 146, 246, 0, 0, 201, 247, 0, 0, 0, 0, 248, 0, 0, 0, 0, 0, 523, 543, 1060, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 0, 0, 557, 0, 0, 0, 543, 1478, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 523, 0, 557, 0, 0, 0, 0, 1480, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 55, 1061, 0, 0, 56, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 238, 675, 0, 0, 1062, 0, 1485, 0, 0, 0, 0, 0, 1063, 0, 1064, 0, 1065, 1066, 0, 0, 543, 0, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 0, 240, 557, 1067, 1068, 523, 241, 1487, 1022, 0, 1069, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1070, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 242, 0, 0, 0, 223, 224, 225, 5, 0, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 0, 0, 1071, 0, 0, 0, 0, 24, 1072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 365, 0, 0, 366, 0, 0, 0, 0, 0, 0, 0, 201, 1073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, 129, 0, 0, 0, 0, 523, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 367, 0, 0, 0, 133, 134, 135, 136, 137, 138, 49, 50, 0, 0, 523, 0, 0, 0, 368, 243, 244, 245, 145, 0, 0, 0, 0, 54, 55, 0, 0, 0, 56, 0, 146, 246, 369, 0, 0, 247, 0, 0, 370, 0, 248, 371, 0, 0, 237, 238, 0, 0, 372, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 69, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 240, 0, 523, 1488, 524, 241, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 0, 1492, 0, 0, 0, 0, 0, 0, 0, 242, 0, 0, 0, 0, 0, 0, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 94, 95, 96, 1521, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 373, 103, 223, 224, 225, 5, 0, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 0, 0, 0, 374, 0, 115, 116, 117, 118, 119, 120, 0, 523, 0, 24, 401, 124, 125, 126, 127, 128, 129, 375, 0, 0, 0, 0, 524, 1221, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 133, 134, 376, 136, 137, 138, 0, 0, 0, 0, 0, 0, 0, 0, 523, 243, 244, 245, 145, 0, 0, 0, 402, 0, 0, 0, 0, 0, 0, 0, 146, 246, 0, 0, 0, 247, 0, 0, 0, 0, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 542, 0, 54, 55, 403, 0, 404, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 405, 406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 524, 69, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 0, 1522, 0, 0, 0, 0, 0, 0, 524, 407, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 523, 675, 0, 0, 0, 0, 1523, 0, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 408, 0, 0, 409, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 410, 94, 95, 96, 0, 0, 411, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 524, 103, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 412, 675, 0, 0, 0, 0, 1524, 0, 0, 115, 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, 129, 223, 224, 225, 5, 0, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 0, 0, 0, 0, 0, 133, 134, 135, 136, 137, 138, 0, 0, 0, 24, 0, 0, 0, 0, 0, 243, 244, 245, 145, 0, 523, 0, 0, 0, 0, 0, 450, 0, 0, 0, 146, 246, 0, 0, 201, 247, 0, 0, 0, 0, 248, 0, 0, 0, 0, 0, 524, 451, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 0, 1525, 203, 204, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 367, 0, 0, 0, 0, 523, 0, 0, 0, 0, 49, 50, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 54, 55, 675, 0, 0, 56, 0, 1527, 0, 0, 0, 452, 0, 0, 0, 0, 0, 0, 0, 0, 523, 0, 238, 0, 0, 453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 543, 69, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 0, 0, 557, 0, 0, 0, 240, 223, 224, 225, 5, 241, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 0, 999, 1000, 523, 0, 0, 0, 0, 0, 0, 201, 0, 94, 95, 96, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 103, 0, 0, 1533, 0, 0, 523, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 0, 0, 0, 0, 0, 0, 0, 115, 116, 117, 118, 119, 120, 523, 0, 0, 49, 50, 124, 125, 126, 127, 128, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 133, 134, 135, 136, 137, 138, 0, 237, 238, 0, 0, 0, 0, 0, 0, 243, 244, 245, 145, 0, 0, 0, 67, 0, 69, 0, 0, 0, 0, 0, 146, 246, 0, 0, 0, 247, 0, 0, 0, 0, 248, 206, 0, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 273, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 242, 0, 0, 1542, 0, 0, 0, 0, 223, 224, 225, 5, 0, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 94, 95, 96, 0, 0, 1002, 1003, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 524, 103, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 201, 0, 0, 0, 1543, 0, 523, 115, 116, 117, 118, 119, 120, 235, 0, 0, 0, 0, 124, 125, 126, 127, 128, 129, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 236, 675, 0, 0, 0, 0, 1559, 133, 134, 135, 136, 137, 138, 0, 523, 0, 0, 49, 50, 0, 0, 0, 243, 244, 245, 145, 0, 0, 0, 0, 0, 0, 0, 0, 54, 55, 0, 146, 246, 56, 0, 0, 247, 0, 0, 0, 0, 248, 0, 0, 0, 0, 0, 0, 0, 237, 238, 0, 0, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 69, 524, 1224, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 0, 0, 538, 0, 240, 223, 224, 225, 5, 241, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 24, 242, 675, 0, 0, 0, 0, 1560, 0, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 201, 675, 94, 95, 96, 0, 1561, 0, 0, 0, 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, 0, 0, 0, 0, 0, 0, 0, 115, 116, 117, 118, 119, 120, 542, 0, 0, 49, 50, 124, 125, 126, 127, 128, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 133, 134, 135, 136, 137, 138, 0, 237, 238, 0, 0, 293, 0, 0, 0, 243, 244, 245, 145, 0, 0, 0, 67, 0, 69, 0, 0, 0, 0, 0, 146, 246, 0, 0, 0, 247, 0, 0, 0, 0, 248, 0, 0, 0, 240, 223, 224, 225, 5, 241, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 383, 0, 0, 0, 0, 0, 0, 24, 242, 524, 523, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 0, 1562, 201, 0, 94, 95, 96, 0, 0, 0, 0, 0, 0, 0, 0, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 0, 1577, 115, 116, 117, 118, 119, 120, 0, 523, 0, 49, 50, 124, 125, 126, 127, 128, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 133, 134, 135, 136, 137, 138, 523, 237, 238, 0, 0, 385, 0, 0, 0, 243, 244, 245, 145, 0, 0, 0, 67, 0, 69, 0, 0, 0, 0, 0, 146, 246, 0, 0, 0, 247, 0, 0, 0, 0, 248, 0, 0, 0, 240, 223, 224, 225, 5, 241, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 469, 0, 523, 0, 0, 0, 0, 0, 201, 0, 94, 95, 96, 0, 0, 0, 0, 0, 0, 0, 0, 470, 0, 0, 0, 523, 0, 0, 0, 0, 0, 0, 103, 543, 0, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 0, 0, 557, 0, 0, 0, 843, 367, 115, 116, 117, 118, 119, 120, 0, 0, 0, 49, 50, 124, 125, 126, 127, 128, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 133, 134, 135, 136, 137, 138, 0, 0, 238, 0, 0, 0, 0, 0, 0, 243, 244, 245, 145, 0, 0, 0, 67, 0, 69, 0, 0, 0, 0, 0, 146, 246, 0, 0, 0, 247, 0, 0, 0, 0, 248, 0, 0, 0, 240, 0, 0, 0, 523, 241, 0, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 0, 1579, 0, 0, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 223, 224, 225, 5, 471, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 94, 95, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 103, 0, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 201, 675, 0, 0, 0, -90, 115, 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, 129, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 523, 0, 1592, 133, 134, 135, 136, 137, 138, 0, 0, 0, 0, 0, 49, 50, 1331, 0, 243, 244, 245, 145, 0, 0, 0, 0, 0, 0, 0, 523, 0, 54, 55, 146, 246, 0, 56, 0, 247, 0, 0, 0, 0, 248, 0, 0, 0, 0, 0, 0, 0, 0, 237, 238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 69, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 240, 0, 0, 1593, 524, 241, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 0, 1594, 0, 0, 0, 0, 0, 0, 0, 242, 0, 0, 0, 223, 224, 225, 5, 0, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 0, 523, 1332, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 523, 0, 0, 0, 1333, 0, 0, 0, 0, 0, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, 129, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 0, 1608, 133, 134, 135, 136, 137, 138, 49, 50, 1321, 0, 0, 0, 0, 0, 0, 243, 244, 245, 145, 0, 0, 0, 0, 54, 55, 0, 0, 0, 56, 0, 146, 246, 0, 0, 0, 247, 0, 0, 0, 0, 248, 0, 0, 0, 237, 238, 0, 0, 0, 0, 0, 203, 204, 205, 0, 422, 0, 0, 0, 67, 423, 69, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 223, 224, 225, 5, 241, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 0, 0, 0, 0, 0, 523, 0, 0, 0, 0, 0, 0, 0, 0, 24, 242, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 0, 1609, 201, 0, 94, 95, 96, 0, 524, 1322, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 103, 0, 0, 0, 1610, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 523, 0, 0, 0, 0, 0, 0, 0, 115, 116, 117, 118, 119, 120, 0, 0, 0, 49, 50, 124, 125, 126, 127, 128, 129, 0, 424, 0, 0, 0, 0, 0, 0, 523, 54, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 133, 134, 135, 136, 137, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 244, 245, 145, 0, 0, 0, 67, 0, 69, 0, 0, 0, 0, 0, 146, 246, 0, 0, 0, 247, 0, 0, 0, 0, 248, 0, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 273, 675, 0, 0, 0, 524, 1625, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 242, 0, 675, 0, 0, 0, 0, 1626, 0, 523, 0, 0, 0, 0, 0, 0, 981, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 0, 206, 0, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 982, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 116, 117, 118, 119, 120, 0, 983, 0, 0, 0, 124, 125, 126, 127, 128, 129, 0, 223, 224, 225, 5, 0, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 0, 0, 0, 0, 133, 134, 135, 136, 137, 138, 1285, 0, 0, 0, 24, 0, 0, 0, 0, 243, 244, 245, 145, 0, 0, 0, 1245, 0, 0, 0, 0, 0, 0, 0, 146, 246, 0, 0, 0, 247, 0, 0, 0, 524, 248, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 0, 1636, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 223, 224, 225, 5, 0, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 49, 50, 0, 0, 0, 523, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 54, 55, 0, 0, 524, 56, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 0, 1642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 524, 69, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 1246, 0, 0, 1648, 0, 0, 0, 0, 0, 0, 1247, 0, 0, 0, 542, 0, 0, 0, 0, 0, 0, 0, 0, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 523, 0, 242, 0, 0, 0, 54, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 542, 0, 94, 95, 96, 0, 0, 0, 0, 0, 0, 0, 0, 1286, 0, 0, 67, 0, 69, 0, 0, 0, 0, 524, 103, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 0, 1656, 0, 0, 115, 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, 129, 0, 0, 0, 0, 0, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 134, 135, 136, 137, 138, 0, 0, 0, 0, 94, 95, 96, 0, 0, 243, 244, 245, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 246, 103, 0, 0, 247, 0, 0, 0, 0, 248, 223, 224, 225, 5, 0, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 115, 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, 129, 24, 0, 0, 0, 485, 486, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 134, 135, 136, 137, 138, 0, 0, 0, 487, 488, 0, 0, 0, 0, 243, 244, 245, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 246, 0, 0, 0, 247, 0, 0, 0, 524, 248, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 542, 0, 675, 0, 0, 49, 50, 1660, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 223, 224, 225, 5, 0, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 0, 0, 0, 0, 67, 0, 69, 0, 0, 0, 0, 0, 0, 543, 24, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 0, 0, 557, 0, 0, 524, 1091, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 523, 0, 538, 0, 0, 0, 1092, 0, 0, 0, 0, 543, 242, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 0, 0, 557, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 94, 95, 96, 0, 0, 0, 0, 0, 0, 0, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 54, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 733, 0, 0, 734, 115, 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, 129, 67, 0, 69, 0, 496, 497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 134, 135, 136, 137, 138, 523, 0, 0, 498, 499, 0, 0, 0, 0, 243, 244, 245, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 246, 0, 242, 0, 247, 0, 0, 0, 0, 248, 223, 224, 225, 5, 0, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 0, 0, 94, 95, 96, 0, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, 129, 0, 0, 0, 543, 1225, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 0, 0, 557, 0, 0, 133, 134, 135, 136, 137, 138, 0, 523, 0, 0, 49, 50, 0, 0, 0, 243, 244, 245, 145, 0, 0, 0, 0, 0, 0, 0, 0, 54, 55, 0, 146, 246, 56, 0, 0, 247, 0, 0, 0, 0, 248, 223, 224, 225, 5, 0, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 0, 0, 0, 0, 0, 0, 67, 68, 69, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 842, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, 513, 0, 542, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 0, 0, 542, 0, 0, 0, 0, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 523, 0, 54, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, 129, 67, 68, 69, 0, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 133, 134, 135, 136, 137, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 244, 245, 145, 0, 0, 0, 0, 0, 0, 0, 523, 0, 0, 0, 146, 147, 0, 79, 0, 148, 0, 0, 0, 1398, 149, 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 0, 223, 224, 225, 5, 0, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 116, 117, 118, 119, 120, 0, 0, 0, 190, 0, 124, 125, 126, 127, 128, 129, 0, 0, 0, 0, 0, 524, 523, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 1175, 0, 0, 675, 133, 134, 135, 136, 137, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 244, 245, 145, 0, 0, 0, 0, 0, 0, 542, 0, 0, 0, 0, 146, 147, 49, 50, 0, 148, 0, 0, 0, 0, 149, 0, 0, 0, 0, 0, 0, 0, 0, 54, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 223, 224, 225, 5, 0, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 0, 0, 0, 67, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 543, 764, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 0, 0, 557, 523, 0, 0, 1191, 0, 543, 0, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 0, 242, 557, 0, 0, 524, 1352, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 1092, 94, 95, 96, 542, 0, 0, 0, 0, 0, 0, 680, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 54, 55, 0, 765, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, 129, 0, 67, 524, 69, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 1177, 0, 0, 675, 0, 0, 0, 133, 134, 135, 136, 137, 138, 523, 0, 0, 0, 0, 0, 0, 0, 0, 243, 244, 245, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 246, 0, 0, 242, 247, 0, 0, 0, 0, 248, 0, 223, 224, 225, 5, 0, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 94, 95, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 524, 103, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 0, 0, 538, 201, 0, 0, 1454, 0, 0, 0, 115, 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, 129, 543, 0, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 0, 0, 557, 0, 0, 0, 1455, 0, 133, 134, 135, 136, 137, 138, 523, 0, 0, 0, 49, 50, 0, 0, 0, 243, 244, 245, 145, 0, 0, 0, 0, 0, 0, 0, 0, 54, 55, 0, 146, 246, 56, 0, 0, 247, 0, 0, 0, 0, 248, 223, 224, 225, 5, 0, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 0, 0, 0, 0, 67, 0, 69, 0, 0, 0, 1298, 0, 0, 524, 24, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 0, 0, 538, 0, 0, 0, 1456, 0, 0, 0, 523, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 242, 542, 0, 543, 0, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 0, 0, 557, 0, 0, 0, 1457, 0, 94, 95, 96, 542, 0, 0, 0, 0, 0, 0, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 54, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, 129, 67, 0, 69, -171, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 133, 134, 135, 136, 137, 138, 542, 0, 0, 0, 0, 0, 0, 0, 0, 243, 244, 245, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 246, 0, 242, 0, 247, 0, 0, 0, 0, 248, 223, 224, 225, 5, 0, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 94, 95, 96, 0, 0, 0, 0, 0, 0, 0, 0, 1299, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1448, 0, 0, 0, 0, 115, 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, 129, 0, 0, 0, 0, -171, 0, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 0, 0, 538, 0, 133, 134, 135, 136, 137, 138, 0, 0, 0, 0, 49, 50, 0, 0, 0, 243, 244, 245, 145, 0, 0, 0, 0, 0, 0, 0, 0, 54, 55, 0, 146, 246, 56, 0, 0, 247, 0, 0, 0, 0, 248, 223, 224, 225, 5, 0, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 0, 0, 0, 0, 67, 0, 69, 0, 0, 0, 0, 0, 0, 524, 24, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 0, 0, 538, 0, 0, 190, 1458, 0, 543, 0, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 0, 0, 557, 0, 0, 0, 1459, 0, 542, 242, 0, 1449, 0, 543, 0, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 0, 0, 557, 0, 0, 523, 1479, 94, 95, 96, 0, 0, 0, 0, 0, 0, 0, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 54, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, 129, 67, 0, 69, 0, -171, 0, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 0, 0, 557, 0, 133, 134, 135, 136, 137, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 244, 245, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 246, 0, 242, 0, 247, 0, 0, 0, 0, 248, 223, 224, 225, 5, 0, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 94, 95, 96, 0, 0, 0, 0, 523, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 134, 135, 136, 137, 138, 0, 0, 0, 0, 49, 50, 0, 0, 0, 243, 244, 245, 145, 0, 0, 0, 0, 0, 0, 0, 0, 54, 55, 0, 146, 246, 56, 0, 0, 247, 0, 0, 0, 0, 248, 223, 224, 225, 5, 0, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 0, 0, 0, 0, 67, 0, 69, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 543, 0, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 0, 0, 557, 0, 0, 0, 1491, 0, 0, 0, 524, 242, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 523, 0, 675, 0, 0, 0, 1454, 0, 0, 0, 0, 0, 94, 95, 96, 0, 0, 0, 0, 0, 0, 0, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 542, 0, 103, 0, 0, 0, 0, 54, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 116, 117, 118, 119, 120, 0, 0, 448, 0, 0, 124, 125, 126, 127, 128, 129, 67, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 134, 135, 136, 137, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 244, 245, 145, 0, 0, 0, 0, 0, 0, 523, 0, 0, 0, 0, 146, 246, 0, 242, 0, 247, 0, 0, 0, 0, 248, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 94, 95, 96, 1456, 223, 224, 225, 5, 0, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, 129, 0, 0, 0, 0, 0, 542, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 134, 135, 136, 137, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 244, 245, 145, 0, 0, 0, 367, 0, 523, 0, 0, 0, 0, 0, 146, 246, 49, 50, 0, 247, 0, 0, 0, 0, 635, 0, 0, 0, 0, 0, 0, 0, 0, 54, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 223, 224, 225, 5, 0, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 0, 0, 0, 0, 67, 0, 69, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 524, 0, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 523, 0, 538, 0, 0, 0, 1555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 543, 242, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 0, 0, 557, 0, 0, 0, 1556, 0, 0, 0, 523, 0, 94, 95, 96, 0, 0, 0, 0, 0, 0, 0, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 54, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, 129, 67, 524, 69, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 0, 0, 538, 0, 0, 0, 1557, 133, 134, 135, 136, 137, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 244, 245, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 246, 0, 242, 0, 247, 0, 0, 0, 0, 248, 223, 224, 225, 5, 0, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 94, 95, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 543, 103, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 1311, 0, 557, 0, 0, 0, 1558, 0, 0, 0, 115, 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, 129, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 1555, 0, 133, 134, 135, 136, 137, 138, 0, 0, 0, 0, 49, 50, 0, 0, 0, 243, 244, 245, 145, 0, 0, 0, 0, 0, 0, 0, 0, 54, 55, 0, 146, 246, 56, 0, 0, 247, 0, 0, 0, 0, 248, 223, 224, 225, 5, 0, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 0, 0, 0, 0, 67, 0, 69, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 0, 1557, 0, 542, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 524, 242, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 0, 0, 538, 0, 0, 0, 1606, 0, 0, 0, 523, 0, 94, 95, 96, 0, 0, 0, 0, 0, 0, 0, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 54, 55, 0, 0, 0, 56, 0, 0, 0, 1313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, 129, 67, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 134, 135, 136, 137, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 244, 245, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 246, 0, 242, 0, 247, 0, 0, 0, 0, 248, 223, 224, 225, 5, 0, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 94, 95, 96, 0, 0, 0, 0, 523, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 542, 0, 0, 0, 0, 0, 0, 1344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 134, 135, 136, 137, 138, 0, 0, 0, 0, 49, 50, 0, 0, 0, 243, 244, 245, 145, 0, 0, 0, 0, 0, 0, 0, 0, 54, 55, 0, 146, 246, 56, 0, 0, 247, 0, 0, 0, 0, 248, 223, 224, 225, 5, 0, 226, 227, 8, 228, 229, 230, 231, 232, 233, 234, 0, 0, 0, 0, 0, 0, 0, 67, 523, 69, 0, 0, 0, 0, 0, 0, 0, 24, 543, 0, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 523, 0, 557, 0, 0, 0, 1607, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 523, 0, 0, 0, 0, 0, 0, 0, 0, 524, 242, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 542, 0, 675, 0, 0, 0, 1606, 0, 0, 0, 0, 0, 94, 95, 96, 0, 0, 0, 0, 0, 523, 0, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 54, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, 129, 67, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 134, 135, 136, 137, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 244, 245, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 246, 0, 242, 0, 247, 0, 0, 0, 0, 248, 524, 0, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 0, 0, 538, 94, 95, 96, 1634, 543, 0, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 0, 0, 557, 103, 0, 0, 1635, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, 129, 0, 17, 18, 0, 0, 0, 0, 0, 0, 0, 0, 559, 0, 0, 0, 0, 560, 0, 0, 0, 0, 0, 0, 133, 134, 135, 136, 137, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 244, 245, 760, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 246, 0, 0, 0, 247, 0, 0, 0, 524, 248, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 0, 0, 561, 1634, 0, 0, 0, 524, 0, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 0, 675, 562, 0, 524, 1651, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 0, 0, 538, 0, 563, 0, 1652, 0, 0, 543, 0, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 0, 0, 557, 0, 0, 524, 1653, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 569, 675, 0, 0, 240, 1652, 570, 0, 0, 241, 0, 0, 0, 0, 569, 0, 0, 0, 0, 0, 570, 0, 0, 0, 0, 0, 201, 571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 201, 571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, 573, 0, 0, 0, 574, 0, 0, 0, 0, 575, 0, 0, 0, 572, 573, 0, 0, 0, 574, 0, 0, 0, 564, 575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 565, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 577, 578, 579, 0, 237, 238, 580, 0, 0, 0, 0, 0, 131, 0, 577, 578, 579, 0, 237, 238, 580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 140, 240, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 240, 0, 0, 0, 0, 241, 0, 581, 0, 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, 0, 0, 581, 311, 0, 0, 0, 312, 313, 314, 315, 316, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 582, 324, 0, 0, 325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 582, 0, 0, 0, 0, 583, 0, 0, 326, 0, 0, 0, 0, 0, 0, 0, 584, 0, 0, 583, 0, 327, 0, 0, 0, 0, 0, 0, 0, 0, 584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 585, 0, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 0, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 586, 0, 0, 0, 0, 0, 0, 0, 339, 0, 0, 0, 0, 0, 1220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 340, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 341, 342 }; static const short int yycheck[] = { 0, 49, 292, 166, 35, 586, 19, 20, 80, 62, 79, 69, 920, 46, 104, 124, 177, 181, 62, 180, 125, 182, 183, 46, 185, 303, 45, 27, 22, 46, 46, 158, 122, 40, 158, 47, 75, 102, 110, 39, 40, 46, 69, 75, 66, 69, 145, 95, 956, 102, 398, 104, 322, 167, 44, 108, 109, 221, 374, 33, 62, 63, 62, 63, 34, 114, 52, 328, 393, 217, 395, 75, 17, 69, 27, 124, 423, 424, 102, 426, 33, 397, 391, 25, 58, 27, 395, 40, 75, 393, 122, 33, 353, 393, 47, 22, 123, 97, 40, 247, 75, 62, 102, 99, 393, 47, 154, 97, 108, 62, 63, 69, 393, 391, 114, 268, 269, 75, 41, 393, 62, 63, 122, 393, 214, 75, 393, 217, 1036, 168, 235, 170, 171, 207, 393, 148, 60, 264, 212, 300, 264, 141, 52, 165, 67, 312, 146, 147, 148, 149, 169, 393, 75, 393, 321, 132, 133, 393, 68, 203, 102, 226, 104, 165, 122, 69, 108, 109, 207, 393, 144, 75, 146, 212, 19, 20, 162, 177, 178, 278, 180, 181, 245, 128, 184, 74, 186, 187, 188, 189, 75, 165, 353, 168, 299, 170, 171, 69, 211, 122, 207, 124, 226, 207, 207, 212, 393, 117, 212, 212, 309, 135, 136, 171, 167, 320, 203, 221, 122, 64, 0, 207, 208, 27, 236, 167, 212, 391, 138, 33, 252, 201, 207, 580, 221, 205, 40, 212, 238, 19, 132, 133, 22, 47, 205, 278, 246, 247, 248, 22, 252, 31, 296, 98, 215, 278, 230, 231, 62, 63, 279, 278, 278, 108, 303, 293, 396, 171, 178, 179, 180, 221, 76, 278, 393, 75, 62, 222, 252, 203, 292, 61, 391, 391, 207, 208, 203, 361, 396, 212, 70, 268, 269, 182, 236, 393, 220, 336, 102, 301, 104, 391, 302, 148, 108, 109, 86, 99, 294, 295, 393, 167, 235, 236, 272, 225, 320, 303, 98, 229, 100, 1229, 218, 168, 0, 105, 106, 223, 303, 398, 129, 254, 344, 391, 308, 224, 310, 75, 176, 177, 171, 121, 207, 123, 372, 51, 592, 212, 594, 595, 292, 207, 22, 365, 393, 355, 212, 385, 358, 372, 391, 336, 300, 167, 393, 275, 211, 205, 272, 75, 370, 594, 595, 283, 284, 375, 376, 18, 302, 540, 303, 0, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 22, 319, 390, 397, 117, 398, 391, 393, 344, 203, 404, 396, 244, 124, 127, 115, 410, 393, 365, 59, 331, 393, 62, 393, 418, 205, 337, 221, 393, 365, 393, 453, 336, 427, 428, 215, 430, 393, 170, 171, 394, 395, 281, 393, 303, 439, 391, 602, 359, 288, 163, 396, 398, 398, 448, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 461, 392, 390, 170, 171, 394, 395, 102, 255, 391, 147, 148, 149, 22, 393, 398, 477, 639, 393, 641, 393, 643, 221, 300, 485, 486, 487, 488, 72, 207, 393, 393, 393, 393, 212, 496, 497, 498, 499, 393, 207, 393, 393, 180, 181, 212, 287, 184, 509, 510, 511, 584, 393, 233, 221, 569, 393, 235, 393, 147, 391, 391, 391, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 592, 167, 594, 300, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 205, 272, 365, 574, 575, 272, 303, 212, 579, 396, 215, 263, 583, 272, 207, 300, 300, 115, 357, 212, 359, 360, 581, 272, 376, 272, 585, 303, 170, 171, 390, 64, 393, 226, 593, 385, 386, 387, 303, 167, 390, 373, 601, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 61, 390, 390, 390, 336, 400, 574, 395, 22, 207, 625, 579, 569, 398, 212, 583, 303, 574, 575, 108, 635, 140, 579, 591, 1220, 640, 583, 642, 366, 644, 645, 646, 647, 22, 591, 592, 431, 594, 595, 395, 394, 436, 437, 132, 133, 394, 272, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 395, 394, 679, 680, 75, 358, 219, 395, 685, 132, 133, 688, 852, 385, 386, 387, 983, 168, 390, 395, 697, 395, 395, 394, 328, 329, 373, 716, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 397, 22, 390, 395, 722, 300, 504, 395, 353, 354, 355, 356, 357, 358, 732, 733, 734, 735, 385, 386, 387, 739, 395, 390, 522, 300, 394, 373, 371, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 395, 394, 390, 439, 764, 765, 394, 395, 322, 395, 574, 395, 22, 394, 716, 579, 170, 171, 395, 583, 395, 395, 272, 395, 272, 272, 395, 591, 592, 371, 594, 595, 371, 395, 268, 269, 395, 395, 395, 799, 395, 247, 395, 851, 804, 397, 393, 807, 129, 395, 810, 296, 296, 207, 288, 132, 133, 817, 212, 599, 600, 395, 268, 269, 395, 373, 826, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 395, 394, 390, 395, 395, 394, 522, 395, 628, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 394, 394, 1155, 395, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 397, 394, 885, 394, 567, 395, 395, 395, 67, 395, 22, 395, 943, 213, 395, 678, 75, 853, 394, 394, 394, 522, 506, 395, 34, -1, 395, 1022, 853, 394, 394, 328, 329, 37, 38, 395, 919, 395, 921, 394, 923, 394, 601, 47, 395, 394, -1, 395, 52, 395, 1094, 394, -1, 395, 1098, 22, 353, 354, 355, 356, 357, 358, 395, 122, 1000, -1, 394, -1, 268, 269, -1, -1, -1, -1, 957, -1, -1, 67, -1, 69, -1, -1, -1, 746, 71, 75, -1, 970, -1, -1, 973, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 1001, -1, 390, -1, -1, 170, 171, 395, 118, 22, -1, -1, -1, 1002, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 331, 122, 390, 121, -1, 972, 141, -1, -1, 1023, -1, -1, 806, 147, 132, 133, -1, -1, -1, 22, -1, -1, 1036, -1, -1, 1039, -1, 162, 359, -1, -1, 221, 1046, 1047, -1, 853, -1, -1, -1, 160, -1, -1, -1, 164, -1, 1001, -1, 1222, -1, 1063, 171, -1, 1066, 1067, 1068, -1, 373, 1071, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 207, 390, -1, -1, 22, 212, 395, -1, 270, 1095, 1096, 1097, -1, 1099, 1100, 1101, 1102, 207, -1, -1, -1, 214, 212, -1, 1063, -1, -1, 1066, -1, -1, 292, -1, -1, -1, 227, 1063, -1, 373, 1066, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 75, -1, -1, -1, 395, -1, -1, 268, 269, -1, 1151, 1152, -1, 1154, -1, -1, -1, -1, -1, -1, 282, -1, -1, 268, 27, -1, -1, 972, -1, 1170, -1, -1, 1173, -1, 1175, -1, 1177, 40, -1, -1, 115, 303, 45, -1, 47, 1186, 1187, -1, -1, 1190, -1, -1, 313, 314, 1195, 316, 317, -1, -1, 62, 63, -1, -1, 324, 325, 326, 327, 22, 1370, -1, 332, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1221, -1, -1, 1224, 1225, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1235, 170, 171, -1, 360, 102, -1, -1, -1, -1, -1, 108, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 1063, -1, 390, 1066, -1, -1, -1, -1, 1267, -1, -1, 391, -1, -1, 207, -1, -1, 1276, 1277, 212, -1, -1, -1, -1, -1, -1, -1, -1, 221, 1288, -1, -1, 1291, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 166, 167, 390, 169, -1, -1, -1, -1, -1, -1, 176, -1, -1, -1, -1, -1, -1, -1, 1322, -1, -1, -1, -1, -1, -1, 191, -1, -1, 1332, -1, 196, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 1348, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, 1368, 1369, 394, 1371, 1372, 1373, 1374, 1375, -1, -1, -1, -1, -1, 1381, -1, -1, -1, -1, 1386, 1387, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 1402, 1403, -1, 22, -1, -1, -1, -1, -1, -1, -1, 1413, 1414, -1, 1416, -1, 1418, 1095, 1096, 1097, -1, 1423, -1, -1, 1426, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1436, -1, 1218, -1, 1440, 373, 22, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, 1460, 1461, 1462, 1463, 1464, 1465, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1151, 1152, -1, 1154, -1, -1, -1, -1, 345, -1, 22, -1, -1, 1488, -1, -1, -1, 1492, -1, -1, -1, -1, 1173, -1, -1, -1, -1, -1, 365, -1, -1, -1, 369, -1, -1, -1, -1, -1, -1, 1190, -1, -1, 22, -1, -1, 1520, 1521, 1522, 1523, 1524, 1525, -1, 1527, -1, -1, 392, -1, -1, 1533, -1, -1, -1, -1, -1, -1, -1, -1, 1542, 1543, -1, -1, -1, -1, 1224, 1225, 22, -1, -1, -1, -1, -1, -1, -1, -1, 1559, 1560, 1561, 1562, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 1577, -1, 1579, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1592, 1593, 1594, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1608, 1609, 1610, -1, -1, -1, -1, -1, -1, 1617, -1, -1, -1, -1, -1, -1, -1, 1625, 1626, -1, -1, -1, 73, -1, -1, 1633, -1, -1, 1636, -1, -1, -1, 502, -1, 1642, 505, -1, -1, 508, -1, 1648, -1, -1, -1, -1, -1, -1, -1, 1656, -1, 101, -1, 1660, 16, 22, -1, 107, -1, -1, -1, -1, -1, 113, -1, -1, 28, -1, 30, -1, -1, -1, -1, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, -1, -1, 22, 52, -1, 561, 562, 563, 564, -1, -1, 567, -1, 569, 570, -1, 65, 573, 574, -1, 576, -1, -1, -1, 580, -1, -1, -1, 22, 78, -1, 80, -1, -1, -1, 591, -1, -1, 594, 595, -1, -1, 179, -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, 195, -1, 109, -1, 373, 112, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, -1, 395, -1, -1, -1, -1, -1, 1460, 1461, -1, -1, -1, -1, -1, -1, -1, 373, 237, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, -1, 395, -1, -1, -1, -1, -1, -1, 177, -1, -1, -1, -1, 689, -1, 272, 273, -1, -1, -1, -1, -1, 373, 192, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 716, -1, -1, -1, 395, -1, -1, 304, -1, -1, -1, -1, -1, 222, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 1559, -1, 390, -1, 749, -1, -1, 395, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, 346, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 272, 390, 274, -1, -1, -1, -1, 367, 368, -1, -1, 371, 284, 373, 374, 1608, -1, -1, -1, -1, -1, -1, -1, 383, 22, -1, 147, 148, 149, 301, -1, 303, -1, -1, -1, 395, 396, 397, -1, -1, -1, -1, -1, 1636, 404, -1, -1, -1, 408, -1, -1, 411, -1, -1, -1, -1, -1, -1, -1, 180, 181, 421, -1, 184, -1, -1, -1, -1, -1, -1, -1, -1, -1, 852, 853, -1, -1, -1, -1, -1, -1, -1, -1, 355, -1, -1, -1, 447, -1, 22, -1, -1, 452, -1, 454, 367, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 471, -1, 390, -1, -1, -1, -1, 395, -1, -1, -1, -1, -1, -1, -1, -1, 399, -1, -1, 490, 491, 492, 493, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 417, -1, 390, -1, 22, 422, 423, 424, -1, 426, 427, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 22, 390, -1, -1, -1, -1, 395, 451, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 972, -1, -1, -1, -1, 470, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 572, -1, -1, 575, -1, -1, 578, -1, 999, 22, 582, 583, -1, -1, -1, -1, -1, -1, 19, -1, -1, 22, 594, 595, -1, 358, 27, -1, -1, -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, -1, 63, 635, -1, -1, -1, 1058, -1, 70, -1, 1062, 1063, -1, -1, 1066, -1, -1, 650, -1, -1, -1, -1, -1, -1, 86, 22, 571, -1, -1, -1, -1, 1083, 577, -1, -1, -1, 98, -1, 100, -1, 102, -1, -1, 105, 106, 439, -1, 592, -1, -1, -1, -1, -1, 686, -1, -1, -1, -1, -1, 121, 373, 123, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 625, -1, 395, -1, -1, -1, -1, -1, -1, -1, 1142, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 373, 736, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, 22, 395, -1, -1, -1, -1, -1, -1, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 690, -1, -1, -1, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, -1, -1, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 728, 390, -1, -1, -1, -1, 395, -1, -1, -1, -1, -1, -1, -1, 1249, -1, -1, -1, -1, -1, -1, -1, -1, -1, 601, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, 769, 287, 771, 373, 773, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, -1, 395, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, 1321, 75, -1, 395, -1, 22, -1, -1, -1, -1, 1331, -1, -1, 827, 828, -1, -1, -1, -1, -1, 922, 1342, -1, -1, -1, -1, 357, -1, 359, 360, 373, 22, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, -1, 395, -1, -1, -1, 958, -1, 960, 961, -1, -1, -1, 965, -1, -1, -1, -1, -1, 400, -1, -1, -1, -1, -1, -1, -1, -1, -1, 981, 982, -1, -1, -1, -1, -1, -1, -1, 990, -1, -1, -1, -1, 167, -1, -1, 170, 171, 1000, 1001, 431, 1003, -1, -1, -1, 436, 437, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, -1, 395, -1, 1033, -1, 207, -1, -1, -1, -1, 212, 1041, 954, -1, 1044, 1045, -1, 959, -1, 221, -1, -1, -1, -1, -1, 227, -1, -1, -1, 1478, 1060, -1, 22, 1063, -1, -1, 1066, -1, -1, -1, -1, 1490, 1072, -1, -1, 504, -1, -1, -1, -1, -1, 253, -1, 22, 996, -1, -1, -1, 1088, -1, -1, -1, -1, 522, -1, -1, -1, -1, -1, -1, 272, -1, -1, -1, -1, -1, 1106, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 1034, -1, 390, 1037, -1, -1, -1, 395, 1042, 303, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1145, 1146, 22, -1, -1, -1, -1, 1571, 1572, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1583, -1, -1, -1, -1, -1, 599, 600, -1, 1173, -1, -1, 1176, -1, -1, 1179, -1, -1, 22, -1, -1, -1, -1, -1, -1, 1189, -1, -1, -1, -1, -1, -1, -1, -1, 373, 628, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, 1638, 395, -1, 22, -1, -1, -1, -1, -1, 1140, -1, -1, -1, -1, -1, -1, 1654, -1, -1, -1, -1, 1659, -1, -1, 1243, -1, 1664, -1, -1, -1, 678, -1, -1, -1, 22, -1, -1, -1, 1169, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, 22, -1, -1, 395, -1, -1, -1, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, -1, 395, -1, -1, -1, -1, -1, 741, -1, -1, -1, -1, 746, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1333, 1095, 1096, 1097, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1350, 1351, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1367, -1, -1, -1, -1, -1, -1, -1, -1, -1, 806, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1388, -1, 1151, 1152, -1, 1154, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1317, -1, -1, -1, -1, -1, -1, 1173, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 1190, 390, -1, -1, -1, 373, 395, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 1452, -1, -1, -1, 395, -1, -1, -1, -1, -1, -1, 1224, 1225, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1475, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1485, -1, 1487, -1, 1401, -1, -1, 1404, -1, -1, -1, -1, 1497, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, 1519, 395, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 373, 1534, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, 1554, 395, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1484, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, -1, 395, -1, 1597, -1, -1, -1, -1, -1, -1, 373, 1605, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, -1, 395, -1, 373, 1541, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 0, 1, -1, -1, 395, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, 35, -1, 37, 38, -1, -1, 41, 42, -1, -1, -1, 46, 47, 48, -1, 50, 51, -1, 1460, 1461, -1, -1, -1, -1, -1, -1, 61, -1, -1, 64, 65, -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, 80, 81, -1, 1641, -1, -1, -1, -1, -1, 89, 90, -1, -1, -1, -1, -1, -1, -1, 98, 99, 100, 101, -1, -1, -1, -1, -1, 107, 108, -1, -1, 111, -1, 113, -1, -1, 116, -1, -1, 119, 120, -1, -1, -1, 124, -1, 126, -1, -1, -1, -1, 131, 132, 133, -1, -1, -1, 137, -1, 139, -1, -1, 142, 1218, -1, -1, -1, -1, -1, 149, 150, -1, 1559, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, -1, 166, -1, 168, -1, -1, -1, 172, 173, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 184, 185, 186, 187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 200, 1608, 202, -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 217, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, 1636, -1, -1, 232, -1, -1, -1, -1, 237, 238, 239, 240, 241, 242, -1, -1, 245, 246, 247, 248, -1, 250, 251, -1, -1, -1, -1, 256, -1, 258, 259, 260, 261, 262, 263, -1, -1, -1, 267, 268, 269, -1, -1, -1, -1, 274, -1, 276, 277, -1, -1, 280, 281, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, -1, -1, -1, 297, 298, 299, -1, -1, -1, 303, -1, 305, 306, 307, -1, -1, -1, -1, 312, 313, 314, 315, 316, 317, 318, -1, 320, 321, -1, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, 354, 355, 356, 357, 358, 359, 360, 0, 1, -1, -1, -1, -1, 367, 368, 369, 370, 371, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 22, 383, 384, -1, -1, -1, 388, -1, -1, -1, 392, 393, -1, -1, 35, -1, 37, 38, -1, -1, 41, 42, -1, 22, -1, 46, 47, 48, -1, -1, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, 64, 65, -1, 22, -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, 80, 81, -1, -1, -1, -1, -1, -1, -1, 89, 90, -1, -1, -1, -1, -1, -1, -1, 98, 99, 100, 101, -1, -1, -1, -1, -1, 107, 108, -1, -1, 111, -1, 113, -1, -1, 116, -1, -1, 119, 120, -1, -1, -1, 124, -1, 126, -1, -1, -1, -1, 131, 132, 133, -1, -1, -1, 137, 295, 139, -1, -1, 142, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, -1, 166, -1, 168, -1, -1, -1, 172, 173, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, 184, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 200, -1, 202, -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 373, 217, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 232, 390, -1, -1, -1, 237, 238, 239, 240, -1, 242, -1, -1, 245, 246, 247, 248, -1, 250, 251, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, -1, -1, -1, -1, 268, 269, -1, -1, -1, -1, 274, -1, 276, 277, -1, -1, 280, 281, -1, -1, -1, -1, -1, -1, 288, -1, 290, 291, -1, 293, -1, -1, -1, 297, 298, 299, -1, -1, -1, 303, -1, 305, 306, 307, -1, -1, -1, -1, 312, -1, -1, -1, -1, -1, -1, -1, 320, 321, -1, 323, -1, -1, -1, -1, 328, 329, -1, 331, 332, 333, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, -1, -1, 22, 50, 367, 368, 369, 370, -1, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 22, -1, 392, -1, 395, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, -1, 395, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, -1, 395, -1, -1, -1, -1, -1, 22, -1, 132, 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 149, 150, -1, -1, -1, 154, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, 185, 373, 187, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 50, -1, 390, -1, -1, -1, -1, 395, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 78, -1, 395, -1, 82, 83, 84, 85, 86, 87, -1, -1, 241, 91, 92, 93, 94, 95, 96, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, -1, -1, 112, -1, -1, -1, 267, 268, 269, -1, -1, 22, -1, -1, -1, -1, -1, -1, -1, -1, 130, -1, 132, 133, -1, -1, -1, -1, 289, -1, -1, -1, -1, 143, -1, -1, -1, -1, -1, 149, 150, -1, -1, -1, 154, -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, -1, -1, -1, -1, -1, -1, 185, -1, 187, -1, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, -1, 353, 354, 355, 356, 357, 358, 22, -1, -1, -1, -1, -1, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 383, 384, 234, -1, -1, 388, -1, -1, -1, 241, 393, -1, -1, -1, 397, -1, -1, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 22, 265, 390, 267, 268, 269, -1, 395, -1, -1, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 289, -1, 390, -1, -1, -1, -1, 395, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, -1, 395, 353, 354, 355, 356, 357, 358, -1, -1, -1, -1, -1, 364, 365, -1, -1, 368, 369, 370, 371, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 383, 384, -1, -1, -1, 388, 18, 19, 20, 21, 393, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, 39, -1, 41, -1, -1, -1, -1, -1, -1, -1, 22, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, 22, -1, -1, -1, -1, 75, -1, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, -1, 395, -1, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 22, -1, 390, -1, -1, -1, 122, 395, 124, 125, -1, -1, -1, -1, -1, -1, 132, 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 149, 150, -1, 22, -1, 154, -1, -1, -1, -1, -1, -1, -1, -1, -1, 164, -1, -1, -1, -1, -1, -1, 171, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 185, -1, 187, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, 207, 208, -1, 395, -1, 212, -1, 214, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 227, -1, -1, -1, -1, -1, -1, -1, 235, 236, -1, -1, -1, -1, 241, -1, -1, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, -1, 395, 267, 268, 269, -1, 271, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 285, 286, 287, 373, 289, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 303, -1, 390, -1, -1, -1, -1, 395, -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, 36, -1, -1, -1, -1, 353, 354, 355, 356, 357, 358, -1, -1, -1, 50, -1, -1, -1, -1, -1, 368, 369, 370, 371, -1, -1, 62, -1, 22, -1, -1, -1, -1, -1, -1, 383, 384, -1, -1, 75, 388, -1, -1, -1, -1, 393, -1, -1, -1, -1, -1, 22, 373, 89, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, 373, 395, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 22, -1, 390, -1, -1, -1, -1, 395, 132, 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 149, 150, 151, -1, -1, 154, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 171, 390, -1, -1, 175, -1, 395, -1, -1, -1, -1, -1, 183, -1, 185, -1, 187, 188, -1, -1, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 207, 390, 209, 210, 22, 212, 395, 214, -1, 216, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, -1, -1, 272, -1, -1, -1, -1, 50, 278, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 289, -1, 64, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 303, -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, -1, -1, -1, 353, 354, 355, 356, 357, 358, 132, 133, -1, -1, 22, -1, -1, -1, 140, 368, 369, 370, 371, -1, -1, -1, -1, 149, 150, -1, -1, -1, 154, -1, 383, 384, 158, -1, -1, 388, -1, -1, 164, -1, 393, 167, -1, -1, 170, 171, -1, -1, 174, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 185, -1, 187, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, 207, -1, 22, 395, 373, 212, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, -1, 395, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, 267, 268, 269, 395, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 288, 289, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, 311, -1, 313, 314, 315, 316, 317, 318, -1, 22, -1, 50, 51, 324, 325, 326, 327, 328, 329, 330, -1, -1, -1, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 353, 354, 355, 356, 357, 358, -1, -1, -1, -1, -1, -1, -1, -1, 22, 368, 369, 370, 371, -1, -1, -1, 103, -1, -1, -1, -1, -1, -1, -1, 383, 384, -1, -1, -1, 388, -1, -1, -1, -1, 393, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 132, 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, 149, 150, 151, -1, 153, 154, -1, -1, -1, -1, -1, -1, -1, -1, -1, 164, 165, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 185, 373, 187, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, -1, 395, -1, -1, -1, -1, -1, -1, 373, 216, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 22, 390, -1, -1, -1, -1, 395, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, 249, -1, -1, 252, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 266, 267, 268, 269, -1, -1, 272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 373, 289, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 304, 390, -1, -1, -1, -1, 395, -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, -1, 353, 354, 355, 356, 357, 358, -1, -1, -1, 50, -1, -1, -1, -1, -1, 368, 369, 370, 371, -1, 22, -1, -1, -1, -1, -1, 67, -1, -1, -1, 383, 384, -1, -1, 75, 388, -1, -1, -1, -1, 393, -1, -1, -1, -1, -1, 373, 88, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, -1, 395, 52, 53, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, -1, -1, -1, -1, 22, -1, -1, -1, -1, 132, 133, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 149, 150, 390, -1, -1, 154, -1, 395, -1, -1, -1, 160, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, 171, -1, -1, 174, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 185, 373, 187, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, 207, 18, 19, 20, 21, 212, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 50, 241, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 254, -1, 66, 67, 22, -1, -1, -1, -1, -1, -1, 75, -1, 267, 268, 269, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, 289, -1, -1, 395, -1, -1, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, 115, -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, 22, -1, -1, 132, 133, 324, 325, 326, 327, 328, 329, -1, -1, -1, -1, -1, -1, -1, -1, -1, 149, 150, -1, -1, -1, 154, -1, -1, -1, -1, -1, -1, -1, -1, 353, 354, 355, 356, 357, 358, -1, 170, 171, -1, -1, -1, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, 185, -1, 187, -1, -1, -1, -1, -1, 383, 384, -1, -1, -1, 388, -1, -1, -1, -1, 393, 336, -1, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 221, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, 241, -1, -1, 395, -1, -1, -1, -1, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, 267, 268, 269, -1, -1, 272, 273, -1, -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, 373, 289, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 75, -1, -1, -1, 395, -1, 22, 313, 314, 315, 316, 317, 318, 88, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 115, 390, -1, -1, -1, -1, 395, 353, 354, 355, 356, 357, 358, -1, 22, -1, -1, 132, 133, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, -1, -1, -1, -1, -1, 149, 150, -1, 383, 384, 154, -1, -1, 388, -1, -1, -1, -1, 393, -1, -1, -1, -1, -1, -1, -1, 170, 171, -1, -1, 174, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 185, -1, 187, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, 207, 18, 19, 20, 21, 212, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 50, 241, 390, -1, -1, -1, -1, 395, -1, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 75, 390, 267, 268, 269, -1, 395, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 289, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 115, -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, 22, -1, -1, 132, 133, 324, 325, 326, 327, 328, 329, -1, -1, -1, -1, -1, -1, -1, -1, -1, 149, 150, -1, -1, -1, 154, -1, -1, -1, -1, -1, -1, -1, -1, 353, 354, 355, 356, 357, 358, -1, 170, 171, -1, -1, 174, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, 185, -1, 187, -1, -1, -1, -1, -1, 383, 384, -1, -1, -1, 388, -1, -1, -1, -1, 393, -1, -1, -1, 207, 18, 19, 20, 21, 212, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, 50, 241, 373, 22, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, -1, 395, 75, -1, 267, 268, 269, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 289, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, -1, 395, 313, 314, 315, 316, 317, 318, -1, 22, -1, 132, 133, 324, 325, 326, 327, 328, 329, -1, -1, -1, -1, -1, -1, -1, -1, -1, 149, 150, -1, -1, -1, 154, -1, -1, -1, -1, -1, -1, -1, -1, 353, 354, 355, 356, 357, 358, 22, 170, 171, -1, -1, 174, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, 185, -1, 187, -1, -1, -1, -1, -1, 383, 384, -1, -1, -1, 388, -1, -1, -1, -1, 393, -1, -1, -1, 207, 18, 19, 20, 21, 212, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 50, 241, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 22, -1, -1, -1, -1, -1, 75, -1, 267, 268, 269, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 289, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, 394, 122, 313, 314, 315, 316, 317, 318, -1, -1, -1, 132, 133, 324, 325, 326, 327, 328, 329, -1, -1, -1, -1, -1, -1, -1, -1, -1, 149, 150, -1, -1, -1, 154, -1, -1, -1, -1, -1, -1, -1, -1, 353, 354, 355, 356, 357, 358, -1, -1, 171, -1, -1, -1, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, 185, -1, 187, -1, -1, -1, -1, -1, 383, 384, -1, -1, -1, 388, -1, -1, -1, -1, 393, -1, -1, -1, 207, -1, -1, -1, 22, 212, -1, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, -1, 395, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 254, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, 267, 268, 269, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, 289, -1, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 75, 390, -1, -1, -1, 394, 313, 314, 315, 316, 317, 318, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 22, -1, 395, 353, 354, 355, 356, 357, 358, -1, -1, -1, -1, -1, 132, 133, 134, -1, 368, 369, 370, 371, -1, -1, -1, -1, -1, -1, -1, 22, -1, 149, 150, 383, 384, -1, 154, -1, 388, -1, -1, -1, -1, 393, -1, -1, -1, -1, -1, -1, -1, -1, 170, 171, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 185, -1, 187, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, 207, -1, -1, 395, 373, 212, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, -1, 395, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, -1, 22, 272, -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 289, -1, -1, 22, -1, -1, -1, 296, -1, -1, -1, -1, -1, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, -1, 395, 353, 354, 355, 356, 357, 358, 132, 133, 134, -1, -1, -1, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, -1, 149, 150, -1, -1, -1, 154, -1, 383, 384, -1, -1, -1, 388, -1, -1, -1, -1, 393, -1, -1, -1, 170, 171, -1, -1, -1, -1, -1, 52, 53, 54, -1, 56, -1, -1, -1, 185, 61, 187, -1, -1, -1, -1, -1, -1, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, 18, 19, 20, 21, 212, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, -1, -1, 50, 241, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, -1, 395, 75, -1, 267, 268, 269, -1, 373, 272, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 289, -1, -1, -1, 395, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, -1, 132, 133, 324, 325, 326, 327, 328, 329, -1, 206, -1, -1, -1, -1, -1, -1, 22, 149, 150, -1, -1, -1, 154, -1, -1, -1, -1, -1, -1, -1, -1, 353, 354, 355, 356, 357, 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, 185, -1, 187, -1, -1, -1, -1, -1, 383, 384, -1, -1, -1, 388, -1, -1, -1, -1, 393, -1, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 221, 390, -1, -1, -1, 373, 395, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 241, -1, 390, -1, -1, -1, -1, 395, -1, 22, -1, -1, -1, -1, -1, -1, 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, -1, 336, -1, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 289, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 303, -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, -1, 320, -1, -1, -1, 324, 325, 326, 327, 328, 329, -1, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 353, 354, 355, 356, 357, 358, 46, -1, -1, -1, 50, -1, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, 62, -1, -1, -1, -1, -1, -1, -1, 383, 384, -1, -1, -1, 388, -1, -1, -1, 373, 393, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, -1, 395, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, 132, 133, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, -1, -1, 50, -1, -1, 149, 150, -1, -1, 373, 154, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, -1, 395, -1, -1, -1, -1, -1, -1, -1, -1, -1, 185, 373, 187, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, 205, -1, -1, 395, -1, -1, -1, -1, -1, -1, 215, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, -1, -1, 132, 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, 241, -1, -1, -1, 149, 150, -1, -1, -1, 154, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, 267, 268, 269, -1, -1, -1, -1, -1, -1, -1, -1, 278, -1, -1, 185, -1, 187, -1, -1, -1, -1, 373, 289, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, -1, 395, -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, 354, 355, 356, 357, 358, -1, -1, -1, -1, 267, 268, 269, -1, -1, 368, 369, 370, 371, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 383, 384, 289, -1, -1, 388, -1, -1, -1, -1, 393, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 313, 314, 315, 316, 317, 318, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 50, -1, -1, -1, 334, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, 354, 355, 356, 357, 358, -1, -1, -1, 362, 363, -1, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 383, 384, -1, -1, -1, 388, -1, -1, -1, 373, 393, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 22, -1, 390, -1, -1, 132, 133, 395, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 149, 150, -1, -1, -1, 154, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 185, -1, 187, -1, -1, -1, -1, -1, -1, 373, 50, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 373, 394, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 22, -1, 390, -1, -1, -1, 394, -1, -1, -1, -1, 373, 241, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, 394, -1, -1, -1, -1, -1, 267, 268, 269, -1, -1, -1, -1, -1, -1, -1, 132, 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 289, -1, -1, -1, -1, 149, 150, -1, -1, -1, 154, -1, -1, -1, -1, -1, -1, -1, -1, -1, 164, -1, -1, 167, 313, 314, 315, 316, 317, 318, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 185, -1, 187, -1, 334, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, 354, 355, 356, 357, 358, 22, -1, -1, 362, 363, -1, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 383, 384, -1, 241, -1, 388, -1, -1, -1, -1, 393, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, 267, 268, 269, -1, -1, 272, -1, -1, -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, 289, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 303, -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, -1, -1, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 353, 354, 355, 356, 357, 358, -1, 22, -1, -1, 132, 133, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, -1, -1, -1, -1, -1, 149, 150, -1, 383, 384, 154, -1, -1, 388, -1, -1, -1, -1, 393, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 185, 186, 187, -1, -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, 394, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, 247, -1, 22, -1, -1, -1, -1, -1, -1, 256, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, -1, -1, 22, -1, -1, -1, -1, 132, 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 289, -1, -1, 22, -1, 149, 150, -1, -1, -1, 154, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 185, 186, 187, -1, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, 353, 354, 355, 356, 357, 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, 383, 384, -1, 241, -1, 388, -1, -1, -1, 247, 393, -1, -1, -1, -1, -1, -1, -1, 256, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, -1, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, 289, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, -1, 69, -1, 324, 325, 326, 327, 328, 329, -1, -1, -1, -1, -1, 373, 22, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 353, 354, 355, 356, 357, 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, 383, 384, 132, 133, -1, 388, -1, -1, -1, -1, 393, -1, -1, -1, -1, -1, -1, -1, -1, 149, 150, -1, -1, -1, 154, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, 185, -1, 187, -1, -1, -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, 373, 57, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 22, -1, -1, 394, -1, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 241, 390, -1, -1, 373, 394, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, 394, 267, 268, 269, 22, -1, -1, -1, -1, -1, -1, 277, 132, 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, 289, -1, -1, -1, -1, -1, 149, 150, -1, 152, -1, 154, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, -1, 185, 373, 187, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, 353, 354, 355, 356, 357, 358, 22, -1, -1, -1, -1, -1, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 383, 384, -1, -1, 241, 388, -1, -1, -1, -1, 393, -1, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, 267, 268, 269, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, 373, 289, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 75, -1, -1, 394, -1, -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, 394, -1, 353, 354, 355, 356, 357, 358, 22, -1, -1, -1, 132, 133, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, -1, -1, -1, -1, -1, 149, 150, -1, 383, 384, 154, -1, -1, 388, -1, -1, -1, -1, 393, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 185, -1, 187, -1, -1, -1, 46, -1, -1, 373, 50, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, 394, -1, -1, -1, 22, -1, 221, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, 22, -1, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, 394, -1, 267, 268, 269, 22, -1, -1, -1, -1, -1, -1, 132, 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 289, -1, -1, -1, -1, 149, 150, -1, -1, -1, 154, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 185, -1, 187, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 353, 354, 355, 356, 357, 358, 22, -1, -1, -1, -1, -1, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 383, 384, -1, 241, -1, 388, -1, -1, -1, -1, 393, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, 267, 268, 269, -1, -1, -1, -1, -1, -1, -1, -1, 278, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, 289, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 77, -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, -1, -1, -1, -1, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, 353, 354, 355, 356, 357, 358, -1, -1, -1, -1, 132, 133, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, -1, -1, -1, -1, -1, 149, 150, -1, 383, 384, 154, -1, -1, 388, -1, -1, -1, -1, 393, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 185, -1, 187, -1, -1, -1, -1, -1, -1, 373, 50, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 69, 394, -1, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, 394, -1, 22, 241, -1, 243, -1, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 22, 394, 267, 268, 269, -1, -1, -1, -1, -1, -1, -1, 132, 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 289, -1, -1, -1, -1, 149, 150, -1, -1, -1, 154, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 185, -1, 187, -1, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, 353, 354, 355, 356, 357, 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 383, 384, -1, 241, -1, 388, -1, -1, -1, -1, 393, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, 267, 268, 269, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, 289, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, 354, 355, 356, 357, 358, -1, -1, -1, -1, 132, 133, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, -1, -1, -1, -1, -1, 149, 150, -1, 383, 384, 154, -1, -1, 388, -1, -1, -1, -1, 393, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 185, -1, 187, -1, -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 69, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, 394, -1, -1, -1, 373, 241, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 22, -1, 390, -1, -1, -1, 394, -1, -1, -1, -1, -1, 267, 268, 269, -1, -1, -1, -1, -1, -1, -1, 132, 133, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, 289, -1, -1, -1, -1, 149, 150, -1, -1, -1, 154, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, 321, -1, -1, 324, 325, 326, 327, 328, 329, 185, -1, 187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, 354, 355, 356, 357, 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, 383, 384, -1, 241, -1, 388, -1, -1, -1, -1, 393, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 267, 268, 269, 394, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, 289, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, 354, 355, 356, 357, 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, 122, -1, 22, -1, -1, -1, -1, -1, 383, 384, 132, 133, -1, 388, -1, -1, -1, -1, 393, -1, -1, -1, -1, -1, -1, -1, -1, 149, 150, -1, -1, -1, 154, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 185, -1, 187, -1, -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 22, -1, 390, -1, -1, -1, 394, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 373, 241, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, 394, -1, -1, -1, 22, -1, 267, 268, 269, -1, -1, -1, -1, -1, -1, -1, 132, 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 289, -1, -1, -1, -1, 149, 150, -1, -1, -1, 154, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 185, 373, 187, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, 394, 353, 354, 355, 356, 357, 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 383, 384, -1, 241, -1, 388, -1, -1, -1, -1, 393, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, 267, 268, 269, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, 373, 289, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 303, -1, 390, -1, -1, -1, 394, -1, -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, 394, -1, 353, 354, 355, 356, 357, 358, -1, -1, -1, -1, 132, 133, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, -1, -1, -1, -1, -1, 149, 150, -1, 383, 384, 154, -1, -1, 388, -1, -1, -1, -1, 393, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 185, -1, 187, -1, -1, -1, -1, -1, -1, -1, 50, -1, -1, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, 394, -1, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 373, 241, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, -1, 394, -1, -1, -1, 22, -1, 267, 268, 269, -1, -1, -1, -1, -1, -1, -1, 132, 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 289, -1, -1, -1, -1, 149, 150, -1, -1, -1, 154, -1, -1, -1, 303, -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 185, -1, 187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, 354, 355, 356, 357, 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 383, 384, -1, 241, -1, 388, -1, -1, -1, -1, 393, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, 267, 268, 269, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, 289, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 303, -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, 354, 355, 356, 357, 358, -1, -1, -1, -1, 132, 133, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, -1, -1, -1, -1, -1, 149, 150, -1, 383, 384, 154, -1, -1, 388, -1, -1, -1, -1, 393, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 185, 22, 187, -1, -1, -1, -1, -1, -1, -1, 50, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 22, -1, 390, -1, -1, -1, 394, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, -1, -1, 373, 241, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 22, -1, 390, -1, -1, -1, 394, -1, -1, -1, -1, -1, 267, 268, 269, -1, -1, -1, -1, -1, 22, -1, 132, 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 289, -1, -1, -1, -1, 149, 150, -1, -1, -1, 154, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 185, -1, 187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, 354, 355, 356, 357, 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 383, 384, -1, 241, -1, 388, -1, -1, -1, -1, 393, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 267, 268, 269, 394, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 289, -1, -1, 394, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, -1, 37, 38, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, 52, -1, -1, -1, -1, -1, -1, 353, 354, 355, 356, 357, 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, 368, 369, 370, 371, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 383, 384, -1, -1, -1, 388, -1, -1, -1, 373, 393, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 118, 394, -1, -1, -1, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 141, -1, 373, 394, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, 162, -1, 394, -1, -1, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 373, 394, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 49, 390, -1, -1, 207, 394, 55, -1, -1, 212, -1, -1, -1, -1, 49, -1, -1, -1, -1, -1, 55, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 105, 106, -1, -1, -1, 110, -1, -1, -1, -1, 115, -1, -1, -1, 105, 106, -1, -1, -1, 110, -1, -1, -1, 282, 115, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 141, -1, -1, -1, -1, -1, -1, -1, 303, -1, -1, -1, -1, -1, 141, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 166, 167, 168, -1, 170, 171, 172, -1, -1, -1, -1, -1, 332, -1, 166, 167, 168, -1, 170, 171, 172, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 360, 207, -1, -1, -1, -1, 212, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, 212, -1, 228, -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, 228, 78, -1, -1, -1, 82, 83, 84, 85, 86, 87, -1, -1, -1, 91, 92, 93, 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 273, 109, -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, 292, -1, -1, 130, -1, -1, -1, -1, -1, -1, -1, 303, -1, -1, 292, -1, 143, -1, -1, -1, -1, -1, -1, -1, -1, 303, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 352, -1, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 352, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, -1, -1, -1, 234, -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 364, 365 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const unsigned short int yystos[] = { 0, 1, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 37, 38, 41, 42, 46, 47, 48, 50, 51, 61, 64, 65, 70, 73, 80, 81, 89, 90, 98, 99, 100, 101, 107, 108, 111, 113, 116, 119, 120, 124, 126, 131, 132, 133, 137, 139, 142, 149, 150, 154, 155, 156, 157, 159, 161, 166, 168, 172, 173, 184, 185, 186, 187, 200, 202, 204, 217, 232, 237, 238, 239, 240, 241, 242, 245, 246, 247, 248, 250, 251, 256, 258, 259, 260, 261, 262, 263, 267, 268, 269, 274, 276, 277, 280, 281, 288, 289, 290, 291, 293, 297, 298, 299, 303, 305, 306, 307, 312, 313, 314, 315, 316, 317, 318, 320, 321, 323, 324, 325, 326, 327, 328, 329, 331, 332, 333, 353, 354, 355, 356, 357, 358, 359, 360, 367, 368, 369, 370, 371, 383, 384, 388, 393, 400, 401, 402, 403, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 428, 429, 430, 431, 443, 451, 454, 460, 468, 470, 322, 393, 398, 167, 393, 393, 393, 393, 393, 393, 393, 393, 393, 393, 69, 123, 404, 428, 429, 393, 245, 213, 331, 359, 429, 75, 464, 52, 53, 54, 336, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 436, 18, 19, 20, 23, 24, 26, 27, 28, 29, 30, 31, 32, 88, 115, 170, 171, 174, 207, 212, 241, 368, 369, 370, 384, 388, 393, 403, 410, 428, 429, 442, 462, 464, 465, 404, 19, 20, 64, 98, 108, 148, 168, 211, 281, 288, 434, 404, 429, 67, 122, 221, 270, 292, 461, 462, 463, 464, 465, 19, 20, 372, 434, 404, 404, 393, 403, 404, 428, 88, 115, 174, 403, 428, 442, 462, 464, 465, 393, 125, 235, 299, 320, 427, 71, 121, 268, 428, 442, 78, 82, 83, 84, 85, 86, 87, 91, 92, 93, 94, 95, 96, 109, 112, 130, 143, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 234, 265, 364, 365, 447, 51, 115, 303, 442, 462, 463, 464, 465, 404, 396, 407, 99, 404, 393, 393, 393, 393, 61, 247, 428, 429, 64, 67, 122, 140, 158, 164, 167, 174, 288, 311, 330, 355, 403, 442, 461, 462, 464, 465, 43, 88, 174, 403, 428, 442, 462, 464, 465, 217, 247, 404, 75, 122, 393, 429, 129, 393, 51, 103, 151, 153, 164, 165, 216, 249, 252, 266, 272, 304, 403, 405, 406, 449, 300, 171, 465, 404, 393, 56, 61, 206, 404, 436, 18, 168, 303, 336, 393, 442, 462, 464, 465, 393, 393, 429, 393, 404, 407, 403, 429, 102, 226, 444, 429, 321, 406, 67, 88, 160, 174, 254, 403, 428, 442, 461, 464, 465, 272, 404, 461, 464, 465, 429, 429, 406, 67, 88, 254, 403, 442, 461, 464, 465, 272, 404, 461, 464, 465, 436, 404, 406, 334, 335, 362, 363, 403, 64, 108, 168, 288, 428, 429, 334, 335, 362, 363, 403, 429, 158, 264, 393, 158, 264, 403, 79, 398, 398, 398, 403, 247, 403, 410, 411, 403, 411, 403, 411, 0, 392, 22, 373, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 390, 391, 396, 407, 22, 373, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 390, 398, 47, 52, 118, 141, 162, 282, 303, 391, 431, 442, 49, 55, 76, 105, 106, 110, 115, 141, 166, 167, 168, 172, 228, 273, 292, 303, 352, 391, 442, 462, 464, 465, 52, 162, 208, 294, 295, 303, 422, 442, 393, 393, 393, 361, 442, 403, 404, 405, 408, 403, 406, 403, 405, 411, 403, 411, 405, 405, 403, 411, 405, 403, 403, 403, 403, 442, 391, 404, 391, 300, 406, 442, 203, 331, 337, 359, 393, 404, 406, 404, 393, 393, 393, 393, 393, 393, 393, 393, 393, 75, 203, 221, 463, 464, 473, 406, 403, 312, 321, 450, 403, 403, 403, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 390, 395, 407, 300, 272, 277, 404, 406, 406, 404, 272, 396, 404, 104, 122, 214, 217, 429, 463, 464, 473, 450, 395, 405, 404, 403, 404, 406, 463, 464, 442, 406, 405, 403, 404, 429, 403, 411, 429, 429, 263, 115, 442, 462, 463, 464, 465, 272, 406, 442, 403, 406, 450, 406, 406, 403, 403, 395, 164, 167, 272, 303, 406, 450, 395, 442, 300, 406, 406, 403, 406, 300, 404, 429, 115, 403, 406, 117, 127, 163, 233, 438, 439, 406, 403, 371, 406, 99, 404, 57, 152, 406, 404, 404, 444, 404, 444, 404, 444, 403, 404, 409, 403, 33, 58, 144, 146, 165, 230, 231, 252, 308, 310, 440, 403, 429, 429, 429, 411, 328, 353, 453, 406, 403, 272, 404, 406, 450, 406, 395, 403, 376, 272, 404, 406, 395, 403, 303, 403, 403, 403, 403, 395, 406, 406, 406, 406, 403, 403, 403, 403, 395, 114, 124, 442, 176, 177, 205, 244, 441, 429, 442, 441, 442, 403, 403, 403, 394, 394, 18, 19, 247, 368, 369, 370, 402, 410, 428, 429, 403, 403, 411, 403, 411, 403, 411, 403, 411, 403, 411, 403, 411, 403, 411, 403, 411, 403, 411, 403, 411, 403, 411, 403, 411, 403, 411, 403, 411, 167, 405, 398, 403, 411, 403, 411, 403, 411, 403, 411, 403, 411, 403, 411, 403, 411, 403, 411, 403, 411, 403, 411, 403, 411, 403, 411, 403, 411, 403, 411, 403, 411, 403, 411, 303, 140, 124, 235, 303, 336, 442, 442, 442, 442, 52, 68, 117, 138, 178, 179, 180, 225, 229, 275, 283, 284, 336, 437, 147, 268, 269, 313, 314, 316, 317, 324, 325, 326, 327, 422, 41, 67, 124, 208, 235, 236, 254, 303, 442, 461, 464, 303, 442, 404, 406, 442, 167, 227, 253, 272, 303, 442, 462, 463, 464, 465, 466, 257, 303, 320, 406, 463, 464, 442, 404, 406, 303, 462, 463, 464, 465, 442, 444, 403, 406, 66, 67, 115, 272, 273, 406, 462, 463, 464, 465, 436, 403, 147, 167, 451, 426, 442, 462, 464, 465, 67, 160, 164, 214, 227, 404, 425, 461, 464, 465, 466, 469, 474, 403, 39, 41, 67, 124, 125, 164, 208, 227, 235, 236, 271, 273, 285, 286, 287, 303, 406, 424, 442, 461, 464, 465, 466, 472, 474, 36, 62, 89, 151, 175, 183, 185, 187, 188, 209, 210, 216, 227, 272, 278, 303, 406, 423, 442, 446, 464, 465, 466, 471, 474, 366, 429, 429, 411, 405, 395, 394, 394, 394, 394, 394, 395, 395, 395, 395, 395, 395, 395, 395, 395, 403, 404, 429, 395, 403, 406, 403, 405, 403, 405, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 429, 403, 403, 403, 397, 406, 181, 221, 435, 403, 40, 442, 404, 272, 395, 403, 394, 219, 397, 395, 395, 394, 395, 320, 442, 463, 464, 403, 404, 403, 403, 403, 403, 406, 403, 428, 300, 300, 395, 394, 429, 395, 442, 387, 395, 387, 371, 395, 403, 403, 394, 404, 404, 404, 395, 395, 394, 395, 395, 394, 44, 97, 452, 395, 403, 403, 429, 403, 403, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 432, 403, 403, 404, 404, 395, 407, 391, 374, 374, 403, 374, 374, 46, 278, 403, 447, 403, 406, 403, 407, 404, 272, 447, 403, 406, 404, 406, 406, 406, 395, 403, 62, 205, 215, 467, 72, 442, 462, 465, 403, 62, 63, 165, 252, 301, 475, 406, 406, 75, 221, 473, 406, 404, 395, 442, 406, 461, 406, 463, 464, 403, 406, 395, 272, 66, 165, 252, 445, 218, 223, 475, 46, 278, 403, 395, 406, 404, 272, 403, 447, 404, 145, 278, 309, 46, 278, 403, 59, 212, 406, 404, 34, 201, 205, 448, 406, 406, 303, 403, 303, 403, 46, 278, 395, 442, 406, 442, 134, 272, 403, 406, 442, 462, 464, 465, 371, 371, 134, 272, 296, 403, 406, 442, 462, 464, 465, 403, 403, 255, 403, 303, 406, 46, 278, 395, 442, 395, 395, 394, 406, 405, 403, 411, 403, 411, 403, 411, 405, 403, 403, 403, 403, 406, 395, 395, 395, 395, 395, 395, 395, 395, 395, 397, 404, 442, 406, 406, 395, 411, 411, 411, 473, 395, 395, 393, 404, 403, 406, 411, 406, 406, 403, 403, 406, 247, 411, 403, 129, 395, 395, 124, 429, 403, 405, 403, 411, 403, 411, 447, 395, 395, 403, 395, 406, 167, 442, 403, 403, 403, 395, 403, 403, 395, 296, 296, 46, 278, 46, 278, 404, 442, 403, 395, 442, 403, 406, 395, 442, 62, 203, 296, 433, 403, 406, 77, 243, 406, 455, 395, 394, 394, 394, 394, 394, 394, 394, 395, 395, 395, 395, 395, 395, 406, 403, 403, 405, 403, 403, 403, 403, 403, 395, 394, 403, 395, 394, 395, 403, 403, 406, 395, 395, 394, 395, 395, 394, 395, 394, 395, 404, 403, 403, 404, 395, 397, 403, 403, 403, 403, 403, 403, 403, 403, 394, 394, 395, 406, 403, 411, 403, 411, 403, 403, 403, 403, 395, 395, 395, 395, 395, 395, 395, 406, 395, 442, 45, 169, 279, 459, 395, 395, 404, 406, 406, 403, 442, 403, 35, 395, 395, 406, 60, 135, 136, 203, 220, 302, 319, 458, 394, 395, 394, 394, 394, 394, 395, 395, 395, 395, 406, 403, 403, 403, 403, 403, 403, 403, 395, 395, 403, 406, 394, 394, 395, 394, 395, 404, 403, 403, 395, 395, 406, 403, 411, 403, 403, 403, 394, 395, 395, 395, 442, 442, 395, 403, 403, 442, 17, 128, 222, 456, 395, 394, 394, 395, 395, 395, 403, 403, 403, 394, 394, 406, 295, 394, 395, 406, 403, 411, 403, 403, 395, 395, 394, 403, 74, 182, 224, 457, 395, 394, 394, 395, 394, 395, 403, 403, 395, 395, 394, 403, 403, 411, 442, 395, 404, 403, 394, 394, 394, 395, 403, 395, 442, 403, 395, 395, 442, 403, 394, 395, 442, 394 }; #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY (-2) #define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrorlab /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ #define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ { \ yychar = (Token); \ yylval = (Value); \ yytoken = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ { \ yyerror (YY_("syntax error: cannot back up")); \ YYERROR; \ } \ while (0) #define YYTERROR 1 #define YYERRCODE 256 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. If N is 0, then set CURRENT to the empty location which ends the previous symbol: RHS[0] (always defined). */ #define YYRHSLOC(Rhs, K) ((Rhs)[K]) #ifndef YYLLOC_DEFAULT # define YYLLOC_DEFAULT(Current, Rhs, N) \ do \ if (N) \ { \ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ } \ else \ { \ (Current).first_line = (Current).last_line = \ YYRHSLOC (Rhs, 0).last_line; \ (Current).first_column = (Current).last_column = \ YYRHSLOC (Rhs, 0).last_column; \ } \ while (0) #endif /* YY_LOCATION_PRINT -- Print the location on the stream. This macro was not mandated originally: define only if we know we won't break user code: when these are the locations we know. */ #ifndef YY_LOCATION_PRINT # if YYLTYPE_IS_TRIVIAL # define YY_LOCATION_PRINT(File, Loc) \ fprintf (File, "%d.%d-%d.%d", \ (Loc).first_line, (Loc).first_column, \ (Loc).last_line, (Loc).last_column) # else # define YY_LOCATION_PRINT(File, Loc) ((void) 0) # endif #endif /* YYLEX -- calling `yylex' with the right arguments. */ #ifdef YYLEX_PARAM # define YYLEX yylex (YYLEX_PARAM) #else # define YYLEX yylex () #endif /* Enable debugging if requested. */ #if YYDEBUG # ifndef YYFPRINTF # include /* INFRINGES ON USER NAME SPACE */ # define YYFPRINTF fprintf # endif # define YYDPRINTF(Args) \ do { \ if (yydebug) \ YYFPRINTF Args; \ } while (0) # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yysymprint (stderr, \ Type, Value); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) /*------------------------------------------------------------------. | yy_stack_print -- Print the state stack from its BOTTOM up to its | | TOP (included). | `------------------------------------------------------------------*/ #if defined (__STDC__) || defined (__cplusplus) static void yy_stack_print (short int *bottom, short int *top) #else static void yy_stack_print (bottom, top) short int *bottom; short int *top; #endif { YYFPRINTF (stderr, "Stack now"); for (/* Nothing. */; bottom <= top; ++bottom) YYFPRINTF (stderr, " %d", *bottom); YYFPRINTF (stderr, "\n"); } # define YY_STACK_PRINT(Bottom, Top) \ do { \ if (yydebug) \ yy_stack_print ((Bottom), (Top)); \ } while (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ #if defined (__STDC__) || defined (__cplusplus) static void yy_reduce_print (int yyrule) #else static void yy_reduce_print (yyrule) int yyrule; #endif { int yyi; unsigned long int yylno = yyrline[yyrule]; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ", yyrule - 1, yylno); /* Print the symbols being reduced, and their result. */ for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); YYFPRINTF (stderr, "-> %s\n", yytname[yyr1[yyrule]]); } # define YY_REDUCE_PRINT(Rule) \ do { \ if (yydebug) \ yy_reduce_print (Rule); \ } while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) # define YY_SYMBOL_PRINT(Title, Type, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ /* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only if the built-in stack extension method is used). Do not make this value too large; the results are undefined if YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) evaluated with infinite-precision integer arithmetic. */ #ifndef YYMAXDEPTH # define YYMAXDEPTH 10000 #endif #if YYERROR_VERBOSE # ifndef yystrlen # if defined (__GLIBC__) && defined (_STRING_H) # define yystrlen strlen # else /* Return the length of YYSTR. */ static YYSIZE_T # if defined (__STDC__) || defined (__cplusplus) yystrlen (const char *yystr) # else yystrlen (yystr) const char *yystr; # endif { const char *yys = yystr; while (*yys++ != '\0') continue; return yys - yystr - 1; } # endif # endif # ifndef yystpcpy # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE) # define yystpcpy stpcpy # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ static char * # if defined (__STDC__) || defined (__cplusplus) yystpcpy (char *yydest, const char *yysrc) # else yystpcpy (yydest, yysrc) char *yydest; const char *yysrc; # endif { char *yyd = yydest; const char *yys = yysrc; while ((*yyd++ = *yys++) != '\0') continue; return yyd - 1; } # endif # endif # ifndef yytnamerr /* Copy to YYRES the contents of YYSTR after stripping away unnecessary quotes and backslashes, so that it's suitable for yyerror. The heuristic is that double-quoting is unnecessary unless the string contains an apostrophe, a comma, or backslash (other than backslash-backslash). YYSTR is taken from yytname. If YYRES is null, do not copy; instead, return the length of what the result would have been. */ static YYSIZE_T yytnamerr (char *yyres, const char *yystr) { if (*yystr == '"') { size_t yyn = 0; char const *yyp = yystr; for (;;) switch (*++yyp) { case '\'': case ',': goto do_not_strip_quotes; case '\\': if (*++yyp != '\\') goto do_not_strip_quotes; /* Fall through. */ default: if (yyres) yyres[yyn] = *yyp; yyn++; break; case '"': if (yyres) yyres[yyn] = '\0'; return yyn; } do_not_strip_quotes: ; } if (! yyres) return yystrlen (yystr); return yystpcpy (yyres, yystr) - yyres; } # endif #endif /* YYERROR_VERBOSE */ #if YYDEBUG /*--------------------------------. | Print this symbol on YYOUTPUT. | `--------------------------------*/ #if defined (__STDC__) || defined (__cplusplus) static void yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep) #else static void yysymprint (yyoutput, yytype, yyvaluep) FILE *yyoutput; int yytype; YYSTYPE *yyvaluep; #endif { /* Pacify ``unused variable'' warnings. */ (void) yyvaluep; if (yytype < YYNTOKENS) YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); else YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); # ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); # endif switch (yytype) { default: break; } YYFPRINTF (yyoutput, ")"); } #endif /* ! YYDEBUG */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ #if defined (__STDC__) || defined (__cplusplus) static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) #else static void yydestruct (yymsg, yytype, yyvaluep) const char *yymsg; int yytype; YYSTYPE *yyvaluep; #endif { /* Pacify ``unused variable'' warnings. */ (void) yyvaluep; if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); switch (yytype) { default: break; } } /* Prevent warnings from -Wmissing-prototypes. */ #ifdef YYPARSE_PARAM # if defined (__STDC__) || defined (__cplusplus) int yyparse (void *YYPARSE_PARAM); # else int yyparse (); # endif #else /* ! YYPARSE_PARAM */ #if defined (__STDC__) || defined (__cplusplus) int yyparse (void); #else int yyparse (); #endif #endif /* ! YYPARSE_PARAM */ /* The look-ahead symbol. */ int yychar; /* The semantic value of the look-ahead symbol. */ YYSTYPE yylval; /* Number of syntax errors so far. */ int yynerrs; /*----------. | yyparse. | `----------*/ #ifdef YYPARSE_PARAM # if defined (__STDC__) || defined (__cplusplus) int yyparse (void *YYPARSE_PARAM) # else int yyparse (YYPARSE_PARAM) void *YYPARSE_PARAM; # endif #else /* ! YYPARSE_PARAM */ #if defined (__STDC__) || defined (__cplusplus) int yyparse (void) #else int yyparse () ; #endif #endif { int yystate; int yyn; int yyresult; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* Look-ahead token as an internal (translated) token number. */ int yytoken = 0; /* Three stacks and their tools: `yyss': related to states, `yyvs': related to semantic values, `yyls': related to locations. Refer to the stacks thru separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* The state stack. */ short int yyssa[YYINITDEPTH]; short int *yyss = yyssa; short int *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs = yyvsa; YYSTYPE *yyvsp; #define YYPOPSTACK (yyvsp--, yyssp--) YYSIZE_T yystacksize = YYINITDEPTH; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; /* When reducing, the number of symbols on the RHS of the reduced rule. */ int yylen; YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ yyssp = yyss; yyvsp = yyvs; goto yysetstate; /*------------------------------------------------------------. | yynewstate -- Push a new state, which is found in yystate. | `------------------------------------------------------------*/ yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. so pushing a state here evens the stacks. */ yyssp++; yysetstate: *yyssp = yystate; if (yyss + yystacksize - 1 <= yyssp) { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = yyssp - yyss + 1; #ifdef yyoverflow { /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; short int *yyss1 = yyss; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE goto yyexhaustedlab; # else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { short int *yyss1 = yyss; union yyalloc *yyptr = (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss); YYSTACK_RELOCATE (yyvs); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif #endif /* no yyoverflow */ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) YYABORT; } YYDPRINTF ((stderr, "Entering state %d\n", yystate)); goto yybackup; /*-----------. | yybackup. | `-----------*/ yybackup: /* Do appropriate processing given the current state. */ /* Read a look-ahead token if we need one and don't already have one. */ /* yyresume: */ /* First try to decide what to do without reference to look-ahead token. */ yyn = yypact[yystate]; if (yyn == YYPACT_NINF) goto yydefault; /* Not known => get a look-ahead token if don't already have one. */ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); yychar = YYLEX; } if (yychar <= YYEOF) { yychar = yytoken = YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else { yytoken = YYTRANSLATE (yychar); YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); } /* If the proper action on seeing token YYTOKEN is to reduce or to detect an error, take that action. */ yyn += yytoken; if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; yyn = yytable[yyn]; if (yyn <= 0) { if (yyn == 0 || yyn == YYTABLE_NINF) goto yyerrlab; yyn = -yyn; goto yyreduce; } if (yyn == YYFINAL) YYACCEPT; /* Shift the look-ahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; *++yyvsp = yylval; /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; yystate = yyn; goto yynewstate; /*-----------------------------------------------------------. | yydefault -- do the default action for the current state. | `-----------------------------------------------------------*/ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; goto yyreduce; /*-----------------------------. | yyreduce -- Do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: `$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison users should not rely upon it. Assigning to YYVAL unconditionally makes the parser a bit smaller, and it avoids a GCC warning that YYVAL may be used uninitialized. */ yyval = yyvsp[1-yylen]; YY_REDUCE_PRINT (yyn); switch (yyn) { case 3: #line 623 "pars.yacc" { expr_parsed = TRUE; s_result = (yyvsp[0].dval); } break; case 4: #line 627 "pars.yacc" { vexpr_parsed = TRUE; v_result = (yyvsp[0].vrbl); } break; case 8: #line 640 "pars.yacc" {} break; case 9: #line 641 "pars.yacc" {} break; case 10: #line 642 "pars.yacc" {} break; case 11: #line 643 "pars.yacc" {} break; case 12: #line 644 "pars.yacc" {} break; case 13: #line 645 "pars.yacc" {} break; case 14: #line 646 "pars.yacc" {} break; case 15: #line 647 "pars.yacc" {} break; case 16: #line 648 "pars.yacc" {} break; case 17: #line 649 "pars.yacc" {} break; case 18: #line 650 "pars.yacc" { return 1; } break; case 19: #line 657 "pars.yacc" { (yyval.dval) = (yyvsp[0].dval); } break; case 20: #line 660 "pars.yacc" { (yyval.dval) = *((yyvsp[0].dptr)); } break; case 21: #line 663 "pars.yacc" { (yyval.dval) = nonl_parms[(yyvsp[0].ival)].value; } break; case 22: #line 666 "pars.yacc" { (yyval.dval) = nonl_parms[(yyvsp[0].ival)].max; } break; case 23: #line 669 "pars.yacc" { (yyval.dval) = nonl_parms[(yyvsp[0].ival)].min; } break; case 24: #line 672 "pars.yacc" { if ((yyvsp[0].ival) >= (yyvsp[-1].vrbl)->length) { errmsg("Access beyond array bounds"); return 1; } (yyval.dval) = (yyvsp[-1].vrbl)->data[(yyvsp[0].ival)]; } break; case 25: #line 679 "pars.yacc" { double dummy, dummy2; int idummy, ind, length = (yyvsp[-1].vrbl)->length; if ((yyvsp[-1].vrbl)->data == NULL) { yyerror("NULL variable, check set type"); return 1; } switch ((yyvsp[-3].ival)) { case MINP: (yyval.dval) = vmin((yyvsp[-1].vrbl)->data, length); break; case MAXP: (yyval.dval) = vmax((yyvsp[-1].vrbl)->data, length); break; case AVG: stasum((yyvsp[-1].vrbl)->data, length, &(yyval.dval), &dummy); break; case SD: stasum((yyvsp[-1].vrbl)->data, length, &dummy, &(yyval.dval)); break; case SUM: stasum((yyvsp[-1].vrbl)->data, length, &(yyval.dval), &dummy); (yyval.dval) *= length; break; case IMIN: minmax((yyvsp[-1].vrbl)->data, length, &dummy, &dummy2, &ind, &idummy); (yyval.dval) = (double) ind; break; case IMAX: minmax((yyvsp[-1].vrbl)->data, length, &dummy, &dummy2, &idummy, &ind); (yyval.dval) = (double) ind; break; } } break; case 26: #line 713 "pars.yacc" { if ((yyvsp[-3].vrbl)->length != (yyvsp[-1].vrbl)->length) { yyerror("X and Y are of different length"); return 1; } else { (yyval.dval) = trapint((yyvsp[-3].vrbl)->data, (yyvsp[-1].vrbl)->data, NULL, NULL, (yyvsp[-3].vrbl)->length); } } break; case 27: #line 721 "pars.yacc" { (yyval.dval) = (yyvsp[-2].vrbl)->length; } break; case 28: #line 724 "pars.yacc" { (yyval.dval) = getsetlength((yyvsp[-2].trgt)->gno, (yyvsp[-2].trgt)->setno); } break; case 29: #line 727 "pars.yacc" { (yyval.dval) = (yyvsp[-2].trgt)->setno; } break; case 30: #line 730 "pars.yacc" { (yyval.dval) = (yyvsp[-2].ival); } break; case 31: #line 734 "pars.yacc" { (yyval.dval) = ((ParserFnc) (key[(yyvsp[0].ival)].data)) (); } break; case 32: #line 738 "pars.yacc" { (yyval.dval) = (yyvsp[-1].dval) * ((ParserFnc) (key[(yyvsp[0].ival)].data)) (); } break; case 33: #line 742 "pars.yacc" { (yyval.dval) = drand48(); } break; case 34: #line 746 "pars.yacc" { (yyval.dval) = ((ParserFnc) (key[(yyvsp[-3].ival)].data)) ((yyvsp[-1].ival)); } break; case 35: #line 750 "pars.yacc" { (yyval.dval) = ((ParserFnc) (key[(yyvsp[-3].ival)].data)) ((yyvsp[-1].dval)); } break; case 36: #line 754 "pars.yacc" { (yyval.dval) = ((ParserFnc) (key[(yyvsp[-5].ival)].data)) ((yyvsp[-3].ival), (yyvsp[-1].dval)); } break; case 37: #line 758 "pars.yacc" { (yyval.dval) = ((ParserFnc) (key[(yyvsp[-5].ival)].data)) ((yyvsp[-3].ival), (yyvsp[-1].ival)); } break; case 38: #line 762 "pars.yacc" { (yyval.dval) = ((ParserFnc) (key[(yyvsp[-5].ival)].data)) ((yyvsp[-3].dval), (yyvsp[-1].dval)); } break; case 39: #line 766 "pars.yacc" { (yyval.dval) = ((ParserFnc) (key[(yyvsp[-7].ival)].data)) ((yyvsp[-5].ival), (yyvsp[-3].ival), (yyvsp[-1].dval)); } break; case 40: #line 770 "pars.yacc" { (yyval.dval) = ((ParserFnc) (key[(yyvsp[-7].ival)].data)) ((yyvsp[-5].dval), (yyvsp[-3].dval), (yyvsp[-1].dval)); } break; case 41: #line 774 "pars.yacc" { (yyval.dval) = ((ParserFnc) (key[(yyvsp[-9].ival)].data)) ((yyvsp[-7].dval), (yyvsp[-5].dval), (yyvsp[-3].dval), (yyvsp[-1].dval)); } break; case 42: #line 778 "pars.yacc" { (yyval.dval) = ((ParserFnc) (key[(yyvsp[-11].ival)].data)) ((yyvsp[-9].dval), (yyvsp[-7].dval), (yyvsp[-5].dval), (yyvsp[-3].dval), (yyvsp[-1].dval)); } break; case 43: #line 782 "pars.yacc" { (yyval.dval) = ((ParserFnc) (key[(yyvsp[-13].ival)].data)) ((yyvsp[-11].dval), (yyvsp[-9].dval), (yyvsp[-7].dval), (yyvsp[-5].dval), (yyvsp[-3].dval), (yyvsp[-1].dval)); } break; case 44: #line 785 "pars.yacc" { (yyval.dval) = g[(yyvsp[-2].ival)].v.xv1; } break; case 45: #line 788 "pars.yacc" { (yyval.dval) = g[(yyvsp[-2].ival)].v.xv2; } break; case 46: #line 791 "pars.yacc" { (yyval.dval) = g[(yyvsp[-2].ival)].v.yv1; } break; case 47: #line 794 "pars.yacc" { (yyval.dval) = g[(yyvsp[-2].ival)].v.yv2; } break; case 48: #line 797 "pars.yacc" { (yyval.dval) = g[(yyvsp[-2].ival)].w.xg1; } break; case 49: #line 800 "pars.yacc" { (yyval.dval) = g[(yyvsp[-2].ival)].w.xg2; } break; case 50: #line 803 "pars.yacc" { (yyval.dval) = g[(yyvsp[-2].ival)].w.yg1; } break; case 51: #line 806 "pars.yacc" { (yyval.dval) = g[(yyvsp[-2].ival)].w.yg2; } break; case 52: #line 809 "pars.yacc" { (yyval.dval) = (yyvsp[-1].dval); } break; case 53: #line 812 "pars.yacc" { /* yr, mo, day */ (yyval.dval) = cal_and_time_to_jul((yyvsp[-5].ival), (yyvsp[-3].ival), (yyvsp[-1].ival), 12, 0, 0.0); } break; case 54: #line 816 "pars.yacc" { /* yr, mo, day, hr, min, sec */ (yyval.dval) = cal_and_time_to_jul((yyvsp[-11].ival), (yyvsp[-9].ival), (yyvsp[-7].ival), (yyvsp[-5].ival), (yyvsp[-3].ival), (yyvsp[-1].dval)); } break; case 55: #line 819 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } (yyval.dval) = g[whichgraph].v.xv1; } break; case 56: #line 826 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } (yyval.dval) = g[whichgraph].v.xv2; } break; case 57: #line 833 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } (yyval.dval) = g[whichgraph].v.yv1; } break; case 58: #line 840 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } (yyval.dval) = g[whichgraph].v.yv2; } break; case 59: #line 847 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } (yyval.dval) = g[whichgraph].w.xg1; } break; case 60: #line 854 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } (yyval.dval) = g[whichgraph].w.xg2; } break; case 61: #line 861 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } (yyval.dval) = g[whichgraph].w.yg1; } break; case 62: #line 868 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } (yyval.dval) = g[whichgraph].w.yg2; } break; case 63: #line 875 "pars.yacc" { double vx, vy; get_page_viewport(&vx, &vy); (yyval.dval) = vx; } break; case 64: #line 880 "pars.yacc" { double vx, vy; get_page_viewport(&vx, &vy); (yyval.dval) = vy; } break; case 65: #line 885 "pars.yacc" { (yyval.dval) = (yyvsp[-1].dval); } break; case 66: #line 888 "pars.yacc" { (yyval.dval) = (yyvsp[-2].dval) + (yyvsp[0].dval); } break; case 67: #line 891 "pars.yacc" { (yyval.dval) = (yyvsp[-2].dval) - (yyvsp[0].dval); } break; case 68: #line 894 "pars.yacc" { (yyval.dval) = -(yyvsp[0].dval); } break; case 69: #line 897 "pars.yacc" { (yyval.dval) = (yyvsp[0].dval); } break; case 70: #line 900 "pars.yacc" { (yyval.dval) = (yyvsp[-2].dval) * (yyvsp[0].dval); } break; case 71: #line 904 "pars.yacc" { if ((yyvsp[0].dval) != 0.0) { (yyval.dval) = (yyvsp[-2].dval) / (yyvsp[0].dval); } else { yyerror("Divide by zero"); return 1; } } break; case 72: #line 912 "pars.yacc" { if ((yyvsp[0].dval) != 0.0) { (yyval.dval) = fmod((yyvsp[-2].dval), (yyvsp[0].dval)); } else { yyerror("Divide by zero"); return 1; } } break; case 73: #line 920 "pars.yacc" { if ((yyvsp[-2].dval) < 0 && rint((yyvsp[0].dval)) != (yyvsp[0].dval)) { yyerror("Negative value raised to non-integer power"); return 1; } else if ((yyvsp[-2].dval) == 0.0 && (yyvsp[0].dval) <= 0.0) { yyerror("Zero raised to non-positive power"); return 1; } else { (yyval.dval) = pow((yyvsp[-2].dval), (yyvsp[0].dval)); } } break; case 74: #line 931 "pars.yacc" { (yyval.dval) = (yyvsp[-4].dval) ? (yyvsp[-2].dval) : (yyvsp[0].dval); } break; case 75: #line 934 "pars.yacc" { (yyval.dval) = ((yyvsp[-2].dval) > (yyvsp[0].dval)); } break; case 76: #line 937 "pars.yacc" { (yyval.dval) = ((yyvsp[-2].dval) < (yyvsp[0].dval)); } break; case 77: #line 940 "pars.yacc" { (yyval.dval) = ((yyvsp[-2].dval) <= (yyvsp[0].dval)); } break; case 78: #line 943 "pars.yacc" { (yyval.dval) = ((yyvsp[-2].dval) >= (yyvsp[0].dval)); } break; case 79: #line 946 "pars.yacc" { (yyval.dval) = ((yyvsp[-2].dval) == (yyvsp[0].dval)); } break; case 80: #line 949 "pars.yacc" { (yyval.dval) = ((yyvsp[-2].dval) != (yyvsp[0].dval)); } break; case 81: #line 952 "pars.yacc" { (yyval.dval) = (yyvsp[-2].dval) && (yyvsp[0].dval); } break; case 82: #line 955 "pars.yacc" { (yyval.dval) = (yyvsp[-2].dval) || (yyvsp[0].dval); } break; case 83: #line 958 "pars.yacc" { (yyval.dval) = !((yyvsp[0].dval)); } break; case 84: #line 963 "pars.yacc" { (yyval.sval) = (yyvsp[0].sval); } break; case 85: #line 966 "pars.yacc" { (yyval.sval) = concat_strings((yyvsp[-2].sval), (yyvsp[0].sval)); xfree((yyvsp[0].sval)); } break; case 86: #line 970 "pars.yacc" { char buf[32]; set_locale_num(TRUE); sprintf(buf, "%g", (yyvsp[0].dval)); set_locale_num(FALSE); (yyval.sval) = concat_strings((yyvsp[-2].sval), buf); } break; case 87: #line 979 "pars.yacc" { int itmp = rint((yyvsp[0].dval)); if (fabs(itmp - (yyvsp[0].dval)) > 1.e-6) { yyerror("Non-integer value supplied for integer"); return 1; } (yyval.ival) = itmp; } break; case 88: #line 989 "pars.yacc" { if ((yyvsp[0].ival) < 0) { yyerror("Negative value supplied for non-negative"); return 1; } (yyval.ival) = (yyvsp[0].ival); } break; case 89: #line 998 "pars.yacc" { int itmp = (yyvsp[-1].ival) - index_shift; if (itmp < 0) { yyerror("Negative index"); return 1; } (yyval.ival) = itmp; } break; case 90: #line 1008 "pars.yacc" { (yyval.dval) = (yyvsp[0].dval); } break; case 91: #line 1011 "pars.yacc" { double jul; Dates_format dummy; if (parse_date((yyvsp[0].sval), get_date_hint(), FALSE, &jul, &dummy) == RETURN_SUCCESS) { xfree((yyvsp[0].sval)); (yyval.dval) = jul; } else { xfree((yyvsp[0].sval)); yyerror("Invalid date"); return 1; } } break; case 92: #line 1026 "pars.yacc" { (yyval.dval) = (yyvsp[0].dval); } break; case 93: #line 1029 "pars.yacc" { double jul; Dates_format dummy; if (parse_date((yyvsp[0].sval), get_date_hint(), TRUE, &jul, &dummy) == RETURN_SUCCESS) { xfree((yyvsp[0].sval)); (yyval.dval) = jul; } else { xfree((yyvsp[0].sval)); yyerror("Invalid date"); return 1; } } break; case 94: #line 1046 "pars.yacc" { (yyval.vrbl) = (yyvsp[0].vrbl); } break; case 95: #line 1050 "pars.yacc" { double *ptr = getcol(vasgn_gno, vasgn_setno, (yyvsp[0].ival)); (yyval.vrbl) = &freelist[fcnt++]; (yyval.vrbl)->type = GRARR_SET; (yyval.vrbl)->data = ptr; if (ptr == NULL) { errmsg("NULL variable - check set type"); return 1; } else { (yyval.vrbl)->length = getsetlength(vasgn_gno, vasgn_setno); } } break; case 96: #line 1063 "pars.yacc" { double *ptr = getcol((yyvsp[-2].trgt)->gno, (yyvsp[-2].trgt)->setno, (yyvsp[0].ival)); (yyval.vrbl) = &freelist[fcnt++]; (yyval.vrbl)->type = GRARR_SET; (yyval.vrbl)->data = ptr; if (ptr == NULL) { errmsg("NULL variable - check set type"); return 1; } else { (yyval.vrbl)->length = getsetlength((yyvsp[-2].trgt)->gno, (yyvsp[-2].trgt)->setno); } } break; case 97: #line 1079 "pars.yacc" { (yyval.vrbl) = (yyvsp[0].vrbl); } break; case 98: #line 1083 "pars.yacc" { int start = (yyvsp[-3].ival) - index_shift, stop = (yyvsp[-1].ival) - index_shift; if (start < 0 || stop < start || stop >= (yyvsp[-5].vrbl)->length) { yyerror("Invalid index range"); } else { int len = stop - start + 1; double *ptr = xmalloc(len*SIZEOF_DOUBLE); if ((yyval.vrbl)->data == NULL) { yyerror("Not enough memory"); } else { int i; (yyval.vrbl) = &freelist[fcnt++]; (yyval.vrbl)->data = ptr; (yyval.vrbl)->length = len; (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < len; i++) { (yyval.vrbl)->data[i] = (yyvsp[-5].vrbl)->data[i + (yyvsp[-3].ival)]; } } } } break; case 99: #line 1105 "pars.yacc" { int len = (yyvsp[-1].ival); if (len < 1) { yyerror("npoints must be > 0"); } else { double *ptr = allocate_index_data(len); if (ptr == NULL) { errmsg("Malloc failed"); return 1; } else { (yyval.vrbl) = &freelist[fcnt++]; (yyval.vrbl)->type = GRARR_TMP; (yyval.vrbl)->data = ptr; (yyval.vrbl)->length = len; } } } break; case 100: #line 1123 "pars.yacc" { int len = (yyvsp[-1].ival); if (len < 2) { yyerror("npoints must be > 1"); } else { double *ptr = allocate_mesh((yyvsp[-5].dval), (yyvsp[-3].dval), len); if (ptr == NULL) { errmsg("Malloc failed"); return 1; } else { (yyval.vrbl) = &freelist[fcnt++]; (yyval.vrbl)->type = GRARR_TMP; (yyval.vrbl)->data = ptr; (yyval.vrbl)->length = len; } } } break; case 101: #line 1141 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; (yyval.vrbl)->data = xmalloc((yyvsp[-1].ival)*SIZEOF_DOUBLE); if ((yyval.vrbl)->data == NULL) { errmsg("Not enough memory"); return 1; } else { (yyval.vrbl)->length = (yyvsp[-1].ival); (yyval.vrbl)->type = GRARR_TMP; } for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = drand48(); } } break; case 102: #line 1157 "pars.yacc" { int rtype, i, len; char *rarray; rtype = RESTRICT_REG0 + (yyvsp[-3].ival); if (get_restriction_array((yyvsp[-1].trgt)->gno, (yyvsp[-1].trgt)->setno, rtype, FALSE, &rarray) != RETURN_SUCCESS) { errmsg("Error in region evaluation"); return 1; } len = getsetlength((yyvsp[-1].trgt)->gno, (yyvsp[-1].trgt)->setno); (yyval.vrbl) = &freelist[fcnt++]; (yyval.vrbl)->data = xmalloc(len*SIZEOF_DOUBLE); if ((yyval.vrbl)->data == NULL) { errmsg("Not enough memory"); return 1; } else { (yyval.vrbl)->length = len; (yyval.vrbl)->type = GRARR_TMP; } for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = rarray[i]; } xfree(rarray); } break; case 103: #line 1186 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-1].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 1; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] += (yyval.vrbl)->data[i - 1]; } } break; case 104: #line 1196 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-1].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((ParserFnc) (key[(yyvsp[-3].ival)].data)) ((int) ((yyvsp[-1].vrbl)->data[i])); } } break; case 105: #line 1206 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-1].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((ParserFnc) (key[(yyvsp[-3].ival)].data)) (((yyvsp[-1].vrbl)->data[i])); } } break; case 106: #line 1216 "pars.yacc" { int i; if ((yyvsp[-3].vrbl)->length != (yyvsp[-1].vrbl)->length) { errmsg("Can't operate on vectors of different lengths"); return 1; } (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-3].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((ParserFnc) (key[(yyvsp[-5].ival)].data)) ((yyvsp[-3].vrbl)->data[i], (yyvsp[-1].vrbl)->data[i]); } } break; case 107: #line 1231 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-1].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((ParserFnc) (key[(yyvsp[-5].ival)].data)) ((yyvsp[-3].dval), (yyvsp[-1].vrbl)->data[i]); } } break; case 108: #line 1242 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-3].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((ParserFnc) (key[(yyvsp[-5].ival)].data)) ((yyvsp[-3].vrbl)->data[i], (yyvsp[-1].dval)); } } break; case 109: #line 1253 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-1].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((ParserFnc) (key[(yyvsp[-5].ival)].data)) ((yyvsp[-3].ival), (yyvsp[-1].vrbl)->data[i]); } } break; case 110: #line 1264 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-1].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((ParserFnc) (key[(yyvsp[-7].ival)].data)) ((yyvsp[-5].ival), (yyvsp[-3].ival), (yyvsp[-1].vrbl)->data[i]); } } break; case 111: #line 1275 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-1].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((ParserFnc) (key[(yyvsp[-7].ival)].data)) ((yyvsp[-5].dval), (yyvsp[-3].dval), (yyvsp[-1].vrbl)->data[i]); } } break; case 112: #line 1286 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-1].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((ParserFnc) (key[(yyvsp[-9].ival)].data)) ((yyvsp[-7].dval), (yyvsp[-5].dval), (yyvsp[-3].dval), (yyvsp[-1].vrbl)->data[i]); } } break; case 113: #line 1297 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-1].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((ParserFnc) (key[(yyvsp[-11].ival)].data)) ((yyvsp[-9].dval), (yyvsp[-7].dval), (yyvsp[-5].dval), (yyvsp[-3].dval), (yyvsp[-1].vrbl)->data[i]); } } break; case 114: #line 1308 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-1].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((ParserFnc) (key[(yyvsp[-13].ival)].data)) ((yyvsp[-11].dval), (yyvsp[-9].dval), (yyvsp[-7].dval), (yyvsp[-5].dval), (yyvsp[-3].dval), (yyvsp[-1].vrbl)->data[i]); } } break; case 115: #line 1319 "pars.yacc" { int i; if ((yyvsp[-2].vrbl)->length != (yyvsp[0].vrbl)->length) { errmsg("Can't operate on vectors of different lengths"); return 1; } (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = (yyvsp[-2].vrbl)->data[i] + (yyvsp[0].vrbl)->data[i]; } } break; case 116: #line 1334 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = (yyvsp[-2].vrbl)->data[i] + (yyvsp[0].dval); } } break; case 117: #line 1345 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[0].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = (yyvsp[-2].dval) + (yyvsp[0].vrbl)->data[i]; } } break; case 118: #line 1356 "pars.yacc" { int i; if ((yyvsp[-2].vrbl)->length != (yyvsp[0].vrbl)->length) { errmsg("Can't operate on vectors of different lengths"); return 1; } (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = (yyvsp[-2].vrbl)->data[i] - (yyvsp[0].vrbl)->data[i]; } } break; case 119: #line 1371 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = (yyvsp[-2].vrbl)->data[i] - (yyvsp[0].dval); } } break; case 120: #line 1382 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[0].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = (yyvsp[-2].dval) - (yyvsp[0].vrbl)->data[i]; } } break; case 121: #line 1393 "pars.yacc" { int i; if ((yyvsp[-2].vrbl)->length != (yyvsp[0].vrbl)->length) { errmsg("Can't operate on vectors of different lengths"); return 1; } (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = (yyvsp[-2].vrbl)->data[i] * (yyvsp[0].vrbl)->data[i]; } } break; case 122: #line 1408 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = (yyvsp[-2].vrbl)->data[i] * (yyvsp[0].dval); } } break; case 123: #line 1419 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[0].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = (yyvsp[-2].dval) * (yyvsp[0].vrbl)->data[i]; } } break; case 124: #line 1430 "pars.yacc" { int i; if ((yyvsp[-2].vrbl)->length != (yyvsp[0].vrbl)->length) { errmsg("Can't operate on vectors of different lengths"); return 1; } (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { if ((yyvsp[0].vrbl)->data[i] == 0.0) { errmsg("Divide by zero"); return 1; } (yyval.vrbl)->data[i] = (yyvsp[-2].vrbl)->data[i] / (yyvsp[0].vrbl)->data[i]; } } break; case 125: #line 1449 "pars.yacc" { int i; if ((yyvsp[0].dval) == 0.0) { errmsg("Divide by zero"); return 1; } (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = (yyvsp[-2].vrbl)->data[i] / (yyvsp[0].dval); } } break; case 126: #line 1464 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[0].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { if ((yyvsp[0].vrbl)->data[i] == 0.0) { errmsg("Divide by zero"); return 1; } (yyval.vrbl)->data[i] = (yyvsp[-2].dval) / (yyvsp[0].vrbl)->data[i]; } } break; case 127: #line 1479 "pars.yacc" { int i; if ((yyvsp[-2].vrbl)->length != (yyvsp[0].vrbl)->length) { errmsg("Can't operate on vectors of different lengths"); return 1; } (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { if ((yyvsp[0].vrbl)->data[i] == 0.0) { errmsg("Divide by zero"); return 1; } else { (yyval.vrbl)->data[i] = fmod((yyvsp[-2].vrbl)->data[i], (yyvsp[0].vrbl)->data[i]); } } } break; case 128: #line 1499 "pars.yacc" { int i; if ((yyvsp[0].dval) == 0.0) { errmsg("Divide by zero"); return 1; } (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = fmod((yyvsp[-2].vrbl)->data[i], (yyvsp[0].dval)); } } break; case 129: #line 1514 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[0].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { if ((yyvsp[0].vrbl)->data[i] == 0.0) { errmsg("Divide by zero"); return 1; } else { (yyval.vrbl)->data[i] = fmod((yyvsp[-2].dval), (yyvsp[0].vrbl)->data[i]); } } } break; case 130: #line 1530 "pars.yacc" { int i; if ((yyvsp[-2].vrbl)->length != (yyvsp[0].vrbl)->length) { errmsg("Can't operate on vectors of different lengths"); return 1; } (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { if ((yyvsp[-2].vrbl)->data[i] < 0 && rint((yyvsp[0].vrbl)->data[i]) != (yyvsp[0].vrbl)->data[i]) { yyerror("Negative value raised to non-integer power"); return 1; } else if ((yyvsp[-2].vrbl)->data[i] == 0.0 && (yyvsp[0].vrbl)->data[i] <= 0.0) { yyerror("Zero raised to non-positive power"); return 1; } else { (yyval.vrbl)->data[i] = pow((yyvsp[-2].vrbl)->data[i], (yyvsp[0].vrbl)->data[i]); } } } break; case 131: #line 1553 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { if ((yyvsp[-2].vrbl)->data[i] < 0 && rint((yyvsp[0].dval)) != (yyvsp[0].dval)) { yyerror("Negative value raised to non-integer power"); return 1; } else if ((yyvsp[-2].vrbl)->data[i] == 0.0 && (yyvsp[0].dval) <= 0.0) { yyerror("Zero raised to non-positive power"); return 1; } else { (yyval.vrbl)->data[i] = pow((yyvsp[-2].vrbl)->data[i], (yyvsp[0].dval)); } } } break; case 132: #line 1572 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[0].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { if ((yyvsp[-2].dval) < 0 && rint((yyvsp[0].vrbl)->data[i]) != (yyvsp[0].vrbl)->data[i]) { yyerror("Negative value raised to non-integer power"); return 1; } else if ((yyvsp[-2].dval) == 0.0 && (yyvsp[0].vrbl)->data[i] <= 0.0) { yyerror("Zero raised to non-positive power"); return 1; } else { (yyval.vrbl)->data[i] = pow((yyvsp[-2].dval), (yyvsp[0].vrbl)->data[i]); } } } break; case 133: #line 1591 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-1].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = (yyvsp[-1].vrbl)->data[i] * ((ParserFnc) (key[(yyvsp[0].ival)].data)) (); } } break; case 134: #line 1600 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-4].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = CAST_DBL_TO_BOOL((yyvsp[-4].vrbl)->data[i]) ? (yyvsp[-2].dval) : (yyvsp[0].dval); } } break; case 135: #line 1609 "pars.yacc" { int i; if ((yyvsp[-4].vrbl)->length != (yyvsp[0].vrbl)->length) { errmsg("Can't operate on vectors of different lengths"); return 1; } (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-4].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = CAST_DBL_TO_BOOL((yyvsp[-4].vrbl)->data[i]) ? (yyvsp[-2].dval) : (yyvsp[0].vrbl)->data[i]; } } break; case 136: #line 1622 "pars.yacc" { int i; if ((yyvsp[-4].vrbl)->length != (yyvsp[-2].vrbl)->length) { errmsg("Can't operate on vectors of different lengths"); return 1; } (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-4].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = CAST_DBL_TO_BOOL((yyvsp[-4].vrbl)->data[i]) ? (yyvsp[-2].vrbl)->data[i] : (yyvsp[0].dval); } } break; case 137: #line 1635 "pars.yacc" { int i; if ((yyvsp[-4].vrbl)->length != (yyvsp[0].vrbl)->length || (yyvsp[-4].vrbl)->length != (yyvsp[-2].vrbl)->length) { errmsg("Can't operate on vectors of different lengths"); return 1; } (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-4].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = CAST_DBL_TO_BOOL((yyvsp[-4].vrbl)->data[i]) ? (yyvsp[-2].vrbl)->data[i] : (yyvsp[0].vrbl)->data[i]; } } break; case 138: #line 1649 "pars.yacc" { int i; if ((yyvsp[-2].vrbl)->length != (yyvsp[0].vrbl)->length) { errmsg("Can't operate on vectors of different lengths"); return 1; } (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = (yyvsp[-2].vrbl)->data[i] || (yyvsp[0].vrbl)->data[i]; } } break; case 139: #line 1664 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = (yyvsp[-2].vrbl)->data[i] || (yyvsp[0].dval); } } break; case 140: #line 1675 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[0].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = (yyvsp[-2].dval) || (yyvsp[0].vrbl)->data[i]; } } break; case 141: #line 1686 "pars.yacc" { int i; if ((yyvsp[-2].vrbl)->length != (yyvsp[0].vrbl)->length) { errmsg("Can't operate on vectors of different lengths"); return 1; } (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = (yyvsp[-2].vrbl)->data[i] && (yyvsp[0].vrbl)->data[i]; } } break; case 142: #line 1701 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = (yyvsp[-2].vrbl)->data[i] && (yyvsp[0].dval); } } break; case 143: #line 1712 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[0].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = (yyvsp[-2].dval) && (yyvsp[0].vrbl)->data[i]; } } break; case 144: #line 1723 "pars.yacc" { int i; if ((yyvsp[-2].vrbl)->length != (yyvsp[0].vrbl)->length) { errmsg("Can't operate on vectors of different lengths"); return 1; } (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((yyvsp[-2].vrbl)->data[i] > (yyvsp[0].vrbl)->data[i]); } } break; case 145: #line 1738 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((yyvsp[-2].vrbl)->data[i] > (yyvsp[0].dval)); } } break; case 146: #line 1749 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[0].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((yyvsp[-2].dval) > (yyvsp[0].vrbl)->data[i]); } } break; case 147: #line 1760 "pars.yacc" { int i; if ((yyvsp[-2].vrbl)->length != (yyvsp[0].vrbl)->length) { errmsg("Can't operate on vectors of different lengths"); return 1; } (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((yyvsp[-2].vrbl)->data[i] < (yyvsp[0].vrbl)->data[i]); } } break; case 148: #line 1775 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((yyvsp[-2].vrbl)->data[i] < (yyvsp[0].dval)); } } break; case 149: #line 1786 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[0].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((yyvsp[-2].dval) < (yyvsp[0].vrbl)->data[i]); } } break; case 150: #line 1797 "pars.yacc" { int i; if ((yyvsp[-2].vrbl)->length != (yyvsp[0].vrbl)->length) { errmsg("Can't operate on vectors of different lengths"); return 1; } (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((yyvsp[-2].vrbl)->data[i] >= (yyvsp[0].vrbl)->data[i]); } } break; case 151: #line 1812 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((yyvsp[-2].vrbl)->data[i] >= (yyvsp[0].dval)); } } break; case 152: #line 1823 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[0].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((yyvsp[-2].dval) >= (yyvsp[0].vrbl)->data[i]); } } break; case 153: #line 1834 "pars.yacc" { int i; if ((yyvsp[-2].vrbl)->length != (yyvsp[0].vrbl)->length) { errmsg("Can't operate on vectors of different lengths"); return 1; } (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((yyvsp[-2].vrbl)->data[i] <= (yyvsp[0].vrbl)->data[i]); } } break; case 154: #line 1849 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((yyvsp[-2].vrbl)->data[i] <= (yyvsp[0].dval)); } } break; case 155: #line 1860 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[0].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((yyvsp[-2].dval) <= (yyvsp[0].vrbl)->data[i]); } } break; case 156: #line 1871 "pars.yacc" { int i; if ((yyvsp[-2].vrbl)->length != (yyvsp[0].vrbl)->length) { errmsg("Can't operate on vectors of different lengths"); return 1; } (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((yyvsp[-2].vrbl)->data[i] == (yyvsp[0].vrbl)->data[i]); } } break; case 157: #line 1886 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((yyvsp[-2].vrbl)->data[i] == (yyvsp[0].dval)); } } break; case 158: #line 1897 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[0].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((yyvsp[-2].dval) == (yyvsp[0].vrbl)->data[i]); } } break; case 159: #line 1908 "pars.yacc" { int i; if ((yyvsp[-2].vrbl)->length != (yyvsp[0].vrbl)->length) { errmsg("Can't operate on vectors of different lengths"); return 1; } (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((yyvsp[-2].vrbl)->data[i] != (yyvsp[0].vrbl)->data[i]); } } break; case 160: #line 1923 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-2].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((yyvsp[-2].vrbl)->data[i] != (yyvsp[0].dval)); } } break; case 161: #line 1934 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[0].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = ((yyvsp[-2].dval) != (yyvsp[0].vrbl)->data[i]); } } break; case 162: #line 1945 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[0].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = !(yyvsp[0].vrbl)->data[i]; } } break; case 163: #line 1955 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[-1].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = (yyvsp[-1].vrbl)->data[i]; } } break; case 164: #line 1964 "pars.yacc" { int i; (yyval.vrbl) = &freelist[fcnt++]; copy_vrbl((yyval.vrbl), (yyvsp[0].vrbl)); (yyval.vrbl)->type = GRARR_TMP; for (i = 0; i < (yyval.vrbl)->length; i++) { (yyval.vrbl)->data[i] = - (yyvsp[0].vrbl)->data[i]; } } break; case 165: #line 1978 "pars.yacc" { *((yyvsp[-2].dptr)) = (yyvsp[0].dval); } break; case 166: #line 1982 "pars.yacc" { nonl_parms[(yyvsp[-2].ival)].value = (yyvsp[0].dval); } break; case 167: #line 1986 "pars.yacc" { nonl_parms[(yyvsp[-2].ival)].max = (yyvsp[0].dval); } break; case 168: #line 1990 "pars.yacc" { nonl_parms[(yyvsp[-2].ival)].min = (yyvsp[0].dval); } break; case 169: #line 1994 "pars.yacc" { if ((yyvsp[-2].ival) >= (yyvsp[-3].vrbl)->length) { yyerror("Access beyond array bounds"); return 1; } (yyvsp[-3].vrbl)->data[(yyvsp[-2].ival)] = (yyvsp[0].dval); } break; case 170: #line 2005 "pars.yacc" { target tgt; switch ((yyvsp[0].vrbl)->type) { case GRARR_SET: if (find_set_bydata((yyvsp[0].vrbl)->data, &tgt) == RETURN_SUCCESS) { vasgn_gno = tgt.gno; vasgn_setno = tgt.setno; } else { errmsg("Internal error"); return 1; } break; case GRARR_VEC: vasgn_gno = -1; vasgn_setno = -1; break; default: /* It can NOT be a tmp array on the left side! */ errmsg("Internal error"); return 1; } (yyval.vrbl) = (yyvsp[0].vrbl); } break; case 171: #line 2032 "pars.yacc" { int i; if ((yyvsp[-2].vrbl)->length != (yyvsp[0].vrbl)->length) { errmsg("Left and right vectors are of different lengths"); return 1; } for (i = 0; i < (yyvsp[-2].vrbl)->length; i++) { (yyvsp[-2].vrbl)->data[i] = (yyvsp[0].vrbl)->data[i]; } } break; case 172: #line 2043 "pars.yacc" { int i; for (i = 0; i < (yyvsp[-2].vrbl)->length; i++) { (yyvsp[-2].vrbl)->data[i] = (yyvsp[0].dval); } } break; case 173: #line 2053 "pars.yacc" { symtab_entry tmpkey; double *var; var = xmalloc(SIZEOF_DOUBLE); *var = 0.0; tmpkey.s = (yyvsp[0].sval); tmpkey.type = KEY_VAR; tmpkey.data = (void *) var; if (addto_symtab(tmpkey) != RETURN_SUCCESS) { yyerror("Adding new symbol failed"); } xfree((yyvsp[0].sval)); } break; case 174: #line 2070 "pars.yacc" { if (define_parser_arr((yyvsp[-2].sval)) == NULL) { yyerror("Adding new symbol failed"); } xfree((yyvsp[-2].sval)); } break; case 175: #line 2078 "pars.yacc" { grarr *var; if ((var = define_parser_arr((yyvsp[-3].sval))) == NULL) { yyerror("Adding new symbol failed"); } else { realloc_vrbl(var, (yyvsp[-1].ival)); } xfree((yyvsp[-3].sval)); } break; case 176: #line 2089 "pars.yacc" { yyerror("Keyword already exists"); } break; case 177: #line 2093 "pars.yacc" { yyerror("Keyword already exists"); } break; case 178: #line 2097 "pars.yacc" { undefine_parser_var((void *) (yyvsp[0].dptr)); xfree((yyvsp[0].dptr)); } break; case 179: #line 2102 "pars.yacc" { realloc_vrbl((yyvsp[0].vrbl), 0); undefine_parser_var((void *) (yyvsp[0].vrbl)); xfree((yyvsp[0].vrbl)); } break; case 180: #line 2107 "pars.yacc" { int position; lowtoupper((yyvsp[0].sval)); if ((position = findf(key, (yyvsp[0].sval))) >= 0) { symtab_entry tmpkey; tmpkey.s = (yyvsp[-1].sval); tmpkey.type = key[position].type; tmpkey.data = key[position].data; if (addto_symtab(tmpkey) != RETURN_SUCCESS) { yyerror("Keyword already exists"); } } else { yyerror("Aliased keyword not found"); } xfree((yyvsp[-1].sval)); xfree((yyvsp[0].sval)); } break; case 181: #line 2125 "pars.yacc" { alias_force = (yyvsp[0].ival); } break; case 182: #line 2128 "pars.yacc" { if (load_module((yyvsp[0].sval), (yyvsp[-4].sval), (yyvsp[-4].sval), (yyvsp[-2].ival)) != 0) { yyerror("DL module load failed"); } xfree((yyvsp[-4].sval)); xfree((yyvsp[0].sval)); } break; case 183: #line 2135 "pars.yacc" { if (load_module((yyvsp[-2].sval), (yyvsp[-6].sval), (yyvsp[0].sval), (yyvsp[-4].ival)) != 0) { yyerror("DL module load failed"); } xfree((yyvsp[-6].sval)); xfree((yyvsp[-2].sval)); xfree((yyvsp[0].sval)); } break; case 184: #line 2146 "pars.yacc" { rg[(yyvsp[-1].ival)].active = (yyvsp[0].ival); } break; case 185: #line 2149 "pars.yacc" { rg[(yyvsp[-2].ival)].type = (yyvsp[0].ival); } break; case 186: #line 2152 "pars.yacc" { rg[(yyvsp[-1].ival)].color = (yyvsp[0].ival); } break; case 187: #line 2155 "pars.yacc" { rg[(yyvsp[-1].ival)].lines = (yyvsp[0].ival); } break; case 188: #line 2158 "pars.yacc" { rg[(yyvsp[-1].ival)].linew = (yyvsp[0].dval); } break; case 189: #line 2162 "pars.yacc" { rg[(yyvsp[-8].ival)].x1 = (yyvsp[-6].dval); rg[(yyvsp[-8].ival)].y1 = (yyvsp[-4].dval); rg[(yyvsp[-8].ival)].x2 = (yyvsp[-2].dval); rg[(yyvsp[-8].ival)].y2 = (yyvsp[0].dval); } break; case 190: #line 2169 "pars.yacc" { rg[(yyvsp[-4].ival)].x = xrealloc(rg[(yyvsp[-4].ival)].x, (rg[(yyvsp[-4].ival)].n + 1) * SIZEOF_DOUBLE); rg[(yyvsp[-4].ival)].y = xrealloc(rg[(yyvsp[-4].ival)].y, (rg[(yyvsp[-4].ival)].n + 1) * SIZEOF_DOUBLE); rg[(yyvsp[-4].ival)].x[rg[(yyvsp[-4].ival)].n] = (yyvsp[-2].dval); rg[(yyvsp[-4].ival)].y[rg[(yyvsp[-4].ival)].n] = (yyvsp[0].dval); rg[(yyvsp[-4].ival)].n++; } break; case 191: #line 2176 "pars.yacc" { rg[(yyvsp[-2].ival)].linkto = (yyvsp[0].ival); } break; case 192: #line 2183 "pars.yacc" { if (set_project_version((yyvsp[0].ival)) != RETURN_SUCCESS) { errmsg("Project version is newer than software!"); } if (get_project_version() < 50001) { map_fonts(FONT_MAP_ACEGR); } else { map_fonts(FONT_MAP_DEFAULT); } } break; case 193: #line 2193 "pars.yacc" { set_page_dimensions((yyvsp[-2].ival), (yyvsp[0].ival), TRUE); } break; case 194: #line 2196 "pars.yacc" { set_page_dimensions((yyvsp[-2].ival), (yyvsp[0].ival), FALSE); } break; case 195: #line 2199 "pars.yacc" { int device_id; Device_entry dev; device_id = get_device_by_name((yyvsp[-5].sval)); xfree((yyvsp[-5].sval)); if (device_id < 0) { yyerror("Unknown device"); } else { dev = get_device_props(device_id); dev.pg.width = (long) ((yyvsp[-2].ival)*dev.pg.dpi/72); dev.pg.height = (long) ((yyvsp[0].ival)*dev.pg.dpi/72); set_device_props(device_id, dev); } } break; case 196: #line 2214 "pars.yacc" { int device_id; Device_entry dev; device_id = get_device_by_name((yyvsp[-2].sval)); if (device_id < 0) { yyerror("Unknown device"); } else { dev = get_device_props(device_id); dev.pg.dpi = (yyvsp[0].dval); set_device_props(device_id, dev); } xfree((yyvsp[-2].sval)); } break; case 197: #line 2228 "pars.yacc" { int device_id; Device_entry dev; device_id = get_device_by_name((yyvsp[-3].sval)); if (device_id < 0) { yyerror("Unknown device"); } else { dev = get_device_props(device_id); dev.fontaa = (yyvsp[0].ival); set_device_props(device_id, dev); } xfree((yyvsp[-3].sval)); } break; case 198: #line 2242 "pars.yacc" { int device_id; Device_entry dev; device_id = get_device_by_name((yyvsp[-2].sval)); if (device_id < 0) { yyerror("Unknown device"); } else { dev = get_device_props(device_id); dev.devfonts = (yyvsp[0].ival); set_device_props(device_id, dev); } xfree((yyvsp[-2].sval)); } break; case 199: #line 2256 "pars.yacc" { int device_id; device_id = get_device_by_name((yyvsp[-2].sval)); if (device_id < 0) { yyerror("Unknown device"); } else { if (parse_device_options(device_id, (yyvsp[0].sval)) != RETURN_SUCCESS) { yyerror("Incorrect device option string"); } } xfree((yyvsp[-2].sval)); xfree((yyvsp[0].sval)); } break; case 200: #line 2271 "pars.yacc" { set_printer_by_name((yyvsp[0].sval)); xfree((yyvsp[0].sval)); } break; case 201: #line 2275 "pars.yacc" { set_ref_date((yyvsp[0].dval)); } break; case 202: #line 2278 "pars.yacc" { allow_two_digits_years((yyvsp[0].ival)); } break; case 203: #line 2281 "pars.yacc" { set_wrap_year((yyvsp[0].ival)); } break; case 204: #line 2284 "pars.yacc" { setbgcolor((yyvsp[0].ival)); } break; case 205: #line 2287 "pars.yacc" { setbgfill((yyvsp[0].ival)); } break; case 206: #line 2290 "pars.yacc" { scroll_proc((int) (yyvsp[-1].dval)); } break; case 207: #line 2293 "pars.yacc" { scrollinout_proc((int) (yyvsp[-1].dval)); } break; case 208: #line 2296 "pars.yacc" { scrolling_islinked = (yyvsp[0].ival); } break; case 209: #line 2301 "pars.yacc" { add_world(whichgraph, (yyvsp[-6].dval), (yyvsp[-4].dval), (yyvsp[-2].dval), (yyvsp[0].dval)); } break; case 210: #line 2305 "pars.yacc" { timer_delay = (yyvsp[0].ival); } break; case 211: #line 2309 "pars.yacc" { target_set = *((yyvsp[0].trgt)); set_parser_setno(target_set.gno, target_set.setno); } break; case 212: #line 2313 "pars.yacc" { set_parser_gno((yyvsp[0].ival)); } break; case 213: #line 2316 "pars.yacc" { set_parser_setno((yyvsp[0].trgt)->gno, (yyvsp[0].trgt)->setno); } break; case 214: #line 2321 "pars.yacc" { set_hotlink((yyvsp[-3].trgt)->gno, (yyvsp[-3].trgt)->setno, 1, (yyvsp[0].sval), (yyvsp[-1].ival)); xfree((yyvsp[0].sval)); } break; case 215: #line 2325 "pars.yacc" { set_hotlink((yyvsp[-2].trgt)->gno, (yyvsp[-2].trgt)->setno, (yyvsp[0].ival), NULL, 0); } break; case 216: #line 2330 "pars.yacc" { curbox = next_box(); } break; case 217: #line 2333 "pars.yacc" { int no = (yyvsp[0].ival); if (is_valid_box(no) || realloc_boxes(no + 1) == RETURN_SUCCESS) { curbox = no; } } break; case 218: #line 2340 "pars.yacc" { if (!is_valid_box(curbox)) { yyerror("Box not active"); } else { boxes[curbox].active = (yyvsp[0].ival); } } break; case 219: #line 2347 "pars.yacc" { if (!is_valid_box(curbox)) { yyerror("Box not active"); } else { boxes[curbox].gno = (yyvsp[0].ival); } } break; case 220: #line 2354 "pars.yacc" { if (!is_valid_box(curbox)) { yyerror("Box not active"); } else { boxes[curbox].x1 = (yyvsp[-6].dval); boxes[curbox].y1 = (yyvsp[-4].dval); boxes[curbox].x2 = (yyvsp[-2].dval); boxes[curbox].y2 = (yyvsp[0].dval); } } break; case 221: #line 2364 "pars.yacc" { box_loctype = (yyvsp[0].ival); } break; case 222: #line 2367 "pars.yacc" { box_lines = (yyvsp[0].ival); } break; case 223: #line 2370 "pars.yacc" { box_linew = (yyvsp[0].dval); } break; case 224: #line 2373 "pars.yacc" { box_color = (yyvsp[0].ival); } break; case 225: #line 2376 "pars.yacc" { box_fillcolor = (yyvsp[0].ival); } break; case 226: #line 2379 "pars.yacc" { box_fillpat = (yyvsp[0].ival); } break; case 227: #line 2382 "pars.yacc" { if (!is_valid_box(curbox)) { yyerror("Box not active"); } else { boxes[curbox].lines = box_lines; boxes[curbox].linew = box_linew; boxes[curbox].color = box_color; if (get_project_version() <= 40102) { switch (filltype_obs) { case COLOR: boxes[curbox].fillcolor = box_fillcolor; boxes[curbox].fillpattern = 1; break; case PATTERN: boxes[curbox].fillcolor = 1; boxes[curbox].fillpattern = box_fillpat; break; default: /* NONE */ boxes[curbox].fillcolor = box_fillcolor; boxes[curbox].fillpattern = 0; break; } } else { boxes[curbox].fillcolor = box_fillcolor; boxes[curbox].fillpattern = box_fillpat; } boxes[curbox].loctype = box_loctype; } } break; case 228: #line 2413 "pars.yacc" { curellipse = next_ellipse(); } break; case 229: #line 2416 "pars.yacc" { int no = (yyvsp[0].ival); if (is_valid_ellipse(no) || realloc_ellipses(no + 1) == RETURN_SUCCESS) { curellipse = no; } } break; case 230: #line 2423 "pars.yacc" { if (!is_valid_ellipse(curellipse)) { yyerror("Ellipse not active"); } else { ellip[curellipse].active = (yyvsp[0].ival); } } break; case 231: #line 2430 "pars.yacc" { if (!is_valid_ellipse(curellipse)) { yyerror("Ellipse not active"); } else { ellip[curellipse].gno = (yyvsp[0].ival); } } break; case 232: #line 2437 "pars.yacc" { if (!is_valid_ellipse(curellipse)) { yyerror("Ellipse not active"); } else { ellip[curellipse].x1 = (yyvsp[-6].dval); ellip[curellipse].y1 = (yyvsp[-4].dval); ellip[curellipse].x2 = (yyvsp[-2].dval); ellip[curellipse].y2 = (yyvsp[0].dval); } } break; case 233: #line 2447 "pars.yacc" { ellipse_loctype = (yyvsp[0].ival); } break; case 234: #line 2450 "pars.yacc" { ellipse_lines = (yyvsp[0].ival); } break; case 235: #line 2453 "pars.yacc" { ellipse_linew = (yyvsp[0].dval); } break; case 236: #line 2456 "pars.yacc" { ellipse_color = (yyvsp[0].ival); } break; case 237: #line 2459 "pars.yacc" { ellipse_fillcolor = (yyvsp[0].ival); } break; case 238: #line 2462 "pars.yacc" { ellipse_fillpat = (yyvsp[0].ival); } break; case 239: #line 2465 "pars.yacc" { if (!is_valid_ellipse(curellipse)) { yyerror("Ellipse not active"); } else { ellip[curellipse].lines = ellipse_lines; ellip[curellipse].linew = ellipse_linew; ellip[curellipse].color = ellipse_color; if (get_project_version() <= 40102) { switch (filltype_obs) { case COLOR: ellip[curellipse].fillcolor = ellipse_fillcolor; ellip[curellipse].fillpattern = 1; break; case PATTERN: ellip[curellipse].fillcolor = 1; ellip[curellipse].fillpattern = ellipse_fillpat; break; default: /* NONE */ ellip[curellipse].fillcolor = ellipse_fillcolor; ellip[curellipse].fillpattern = 0; break; } } else { ellip[curellipse].fillcolor = ellipse_fillcolor; ellip[curellipse].fillpattern = ellipse_fillpat; } ellip[curellipse].loctype = ellipse_loctype; } } break; case 240: #line 2496 "pars.yacc" { curline = next_line(); } break; case 241: #line 2499 "pars.yacc" { int no = (yyvsp[0].ival); if (is_valid_line(no) || realloc_lines(no + 1) == RETURN_SUCCESS) { curline = no; } } break; case 242: #line 2506 "pars.yacc" { if (!is_valid_line(curline)) { yyerror("Line not active"); } else { lines[curline].active = (yyvsp[0].ival); } } break; case 243: #line 2513 "pars.yacc" { if (!is_valid_line(curline)) { yyerror("Line not active"); } else { lines[curline].gno = (yyvsp[0].ival); } } break; case 244: #line 2520 "pars.yacc" { if (!is_valid_line(curline)) { yyerror("Line not active"); } else { lines[curline].x1 = (yyvsp[-6].dval); lines[curline].y1 = (yyvsp[-4].dval); lines[curline].x2 = (yyvsp[-2].dval); lines[curline].y2 = (yyvsp[0].dval); } } break; case 245: #line 2530 "pars.yacc" { line_loctype = (yyvsp[0].ival); } break; case 246: #line 2533 "pars.yacc" { line_linew = (yyvsp[0].dval); } break; case 247: #line 2536 "pars.yacc" { line_lines = (yyvsp[0].ival); } break; case 248: #line 2539 "pars.yacc" { line_color = (yyvsp[0].ival); } break; case 249: #line 2542 "pars.yacc" { line_arrow_end = (yyvsp[0].ival); } break; case 250: #line 2545 "pars.yacc" { line_asize = (yyvsp[0].dval); } break; case 251: #line 2548 "pars.yacc" { line_atype = (yyvsp[0].ival); } break; case 252: #line 2551 "pars.yacc" { line_a_dL_ff = (yyvsp[-2].dval); line_a_lL_ff = (yyvsp[0].dval); } break; case 253: #line 2555 "pars.yacc" { if (!is_valid_line(curline)) { yyerror("Line not active"); } else { lines[curline].lines = line_lines; lines[curline].linew = line_linew; lines[curline].color = line_color; lines[curline].arrow_end = line_arrow_end; lines[curline].arrow.length = line_asize; lines[curline].arrow.type = line_atype; lines[curline].arrow.dL_ff = line_a_dL_ff; lines[curline].arrow.lL_ff = line_a_lL_ff; lines[curline].loctype = line_loctype; } } break; case 254: #line 2572 "pars.yacc" { curstring = next_string(); } break; case 255: #line 2575 "pars.yacc" { int no = (yyvsp[0].ival); if (is_valid_string(no) || realloc_strings(no + 1) == RETURN_SUCCESS) { curstring = no; } } break; case 256: #line 2582 "pars.yacc" { if (!is_valid_string(curstring)) { yyerror("String not active"); } else { pstr[curstring].active = (yyvsp[0].ival); } } break; case 257: #line 2589 "pars.yacc" { if (!is_valid_string(curstring)) { yyerror("String not active"); } else { pstr[curstring].gno = (yyvsp[0].ival); } } break; case 258: #line 2596 "pars.yacc" { if (!is_valid_string(curstring)) { yyerror("String not active"); } else { pstr[curstring].x = (yyvsp[-2].dval); pstr[curstring].y = (yyvsp[0].dval); } } break; case 259: #line 2604 "pars.yacc" { string_loctype = (yyvsp[0].ival); } break; case 260: #line 2607 "pars.yacc" { string_color = (yyvsp[0].ival); } break; case 261: #line 2610 "pars.yacc" { string_rot = (yyvsp[0].ival); } break; case 262: #line 2613 "pars.yacc" { string_font = (yyvsp[0].ival); } break; case 263: #line 2616 "pars.yacc" { string_just = (yyvsp[0].ival); } break; case 264: #line 2619 "pars.yacc" { string_size = (yyvsp[0].dval); } break; case 265: #line 2622 "pars.yacc" { if (!is_valid_string(curstring)) { yyerror("String not active"); } else { set_plotstr_string(&pstr[curstring], (yyvsp[0].sval)); pstr[curstring].color = string_color; pstr[curstring].font = string_font; pstr[curstring].just = string_just; pstr[curstring].loctype = string_loctype; pstr[curstring].rot = string_rot; pstr[curstring].charsize = string_size; } xfree((yyvsp[0].sval)); } break; case 266: #line 2638 "pars.yacc" { timestamp.active = (yyvsp[0].ival); } break; case 267: #line 2641 "pars.yacc" { timestamp.font = (yyvsp[0].ival); } break; case 268: #line 2644 "pars.yacc" { timestamp.charsize = (yyvsp[0].dval); } break; case 269: #line 2647 "pars.yacc" { timestamp.rot = (yyvsp[0].ival); } break; case 270: #line 2650 "pars.yacc" { timestamp.color = (yyvsp[0].ival); } break; case 271: #line 2653 "pars.yacc" { timestamp.x = (yyvsp[-2].dval); timestamp.y = (yyvsp[0].dval); } break; case 272: #line 2657 "pars.yacc" { set_plotstr_string(×tamp, (yyvsp[0].sval)); xfree((yyvsp[0].sval)); } break; case 273: #line 2663 "pars.yacc" { grdefaults.lines = (yyvsp[0].ival); box_lines = ellipse_lines = line_lines = (yyvsp[0].ival); } break; case 274: #line 2667 "pars.yacc" { grdefaults.linew = (yyvsp[0].dval); box_linew = ellipse_linew = line_linew = (yyvsp[0].dval); } break; case 275: #line 2671 "pars.yacc" { grdefaults.color = (yyvsp[0].ival); box_color = ellipse_color = line_color = string_color = (yyvsp[0].ival); } break; case 276: #line 2675 "pars.yacc" { grdefaults.pattern = (yyvsp[0].ival); } break; case 277: #line 2678 "pars.yacc" { grdefaults.charsize = (yyvsp[0].dval); string_size = (yyvsp[0].dval); } break; case 278: #line 2682 "pars.yacc" { grdefaults.font = (yyvsp[0].ival); string_font = (yyvsp[0].ival); } break; case 279: #line 2686 "pars.yacc" { grdefaults.symsize = (yyvsp[0].dval); } break; case 280: #line 2689 "pars.yacc" { strcpy(sformat, (yyvsp[0].sval)); xfree((yyvsp[0].sval)); } break; case 281: #line 2693 "pars.yacc" { if ((map_font_by_name((yyvsp[-2].sval), (yyvsp[-4].ival)) != RETURN_SUCCESS) && (map_font_by_name((yyvsp[0].sval), (yyvsp[-4].ival)) != RETURN_SUCCESS)) { errmsg("Failed mapping a font"); } xfree((yyvsp[-2].sval)); xfree((yyvsp[0].sval)); } break; case 282: #line 2701 "pars.yacc" { CMap_entry cmap; cmap.rgb.red = (yyvsp[-7].ival); cmap.rgb.green = (yyvsp[-5].ival); cmap.rgb.blue = (yyvsp[-3].ival); cmap.ctype = COLOR_MAIN; cmap.cname = (yyvsp[0].sval); if (store_color((yyvsp[-10].ival), cmap) == RETURN_FAILURE) { errmsg("Failed mapping a color"); } xfree((yyvsp[0].sval)); } break; case 283: #line 2714 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].w.xg1 = (yyvsp[-6].dval); g[whichgraph].w.yg1 = (yyvsp[-4].dval); g[whichgraph].w.xg2 = (yyvsp[-2].dval); g[whichgraph].w.yg2 = (yyvsp[0].dval); } break; case 284: #line 2724 "pars.yacc" { set_graph_znorm(whichgraph, (yyvsp[0].dval)); } break; case 285: #line 2727 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].v.xv1 = (yyvsp[-6].dval); g[whichgraph].v.yv1 = (yyvsp[-4].dval); g[whichgraph].v.xv2 = (yyvsp[-2].dval); g[whichgraph].v.yv2 = (yyvsp[0].dval); } break; case 286: #line 2737 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } set_plotstr_string(&g[whichgraph].labs.title, (yyvsp[0].sval)); xfree((yyvsp[0].sval)); } break; case 287: #line 2745 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].labs.title.font = (yyvsp[0].ival); } break; case 288: #line 2752 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].labs.title.charsize = (yyvsp[0].dval); } break; case 289: #line 2759 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].labs.title.color = (yyvsp[0].ival); } break; case 290: #line 2766 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } set_plotstr_string(&g[whichgraph].labs.stitle, (yyvsp[0].sval)); xfree((yyvsp[0].sval)); } break; case 291: #line 2774 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].labs.stitle.font = (yyvsp[0].ival); } break; case 292: #line 2781 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].labs.stitle.charsize = (yyvsp[0].dval); } break; case 293: #line 2788 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].labs.stitle.color = (yyvsp[0].ival); } break; case 294: #line 2796 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].xscale = (yyvsp[0].ival); } break; case 295: #line 2803 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].yscale = (yyvsp[0].ival); } break; case 296: #line 2810 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].xinvert = (yyvsp[0].ival); } break; case 297: #line 2817 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].yinvert = (yyvsp[0].ival); } break; case 298: #line 2824 "pars.yacc" { autoscale_onread = AUTOSCALE_NONE; } break; case 299: #line 2827 "pars.yacc" { autoscale_onread = AUTOSCALE_X; } break; case 300: #line 2830 "pars.yacc" { autoscale_onread = AUTOSCALE_Y; } break; case 301: #line 2833 "pars.yacc" { autoscale_onread = AUTOSCALE_XY; } break; case 302: #line 2837 "pars.yacc" { char *s; s = copy_string(NULL, get_project_description()); s = concat_strings(s, (yyvsp[0].sval)); xfree((yyvsp[0].sval)); s = concat_strings(s, "\n"); set_project_description(s); xfree(s); } break; case 303: #line 2846 "pars.yacc" { set_project_description(NULL); } break; case 304: #line 2850 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].l.active = (yyvsp[0].ival); } break; case 305: #line 2857 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].l.loctype = (yyvsp[0].ival); } break; case 306: #line 2864 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].l.vgap = (yyvsp[0].ival); } break; case 307: #line 2871 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].l.hgap = (yyvsp[0].ival); } break; case 308: #line 2878 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].l.len = (yyvsp[0].ival); } break; case 309: #line 2885 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].l.invert = (yyvsp[0].ival); } break; case 310: #line 2892 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].l.boxfillpen.color = (yyvsp[0].ival); } break; case 311: #line 2899 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].l.boxfillpen.pattern = (yyvsp[0].ival); } break; case 312: #line 2906 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].l.boxpen.color = (yyvsp[0].ival); } break; case 313: #line 2913 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].l.boxpen.pattern = (yyvsp[0].ival); } break; case 314: #line 2920 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].l.boxlines = (yyvsp[0].ival); } break; case 315: #line 2927 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].l.boxlinew = (yyvsp[0].dval); } break; case 316: #line 2934 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].l.legx = (yyvsp[-2].dval); g[whichgraph].l.legy = (yyvsp[0].dval); } break; case 317: #line 2942 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].l.charsize = (yyvsp[0].dval); } break; case 318: #line 2949 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].l.font = (yyvsp[0].ival); } break; case 319: #line 2956 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].l.color = (yyvsp[0].ival); } break; case 320: #line 2964 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].f.pen.pattern = (yyvsp[0].ival); } break; case 321: #line 2971 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].f.type = (yyvsp[0].ival); } break; case 322: #line 2978 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].f.lines = (yyvsp[0].ival); } break; case 323: #line 2985 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].f.linew = (yyvsp[0].dval); } break; case 324: #line 2992 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].f.pen.color = (yyvsp[0].ival); } break; case 325: #line 2999 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].f.pen.pattern = (yyvsp[0].ival); } break; case 326: #line 3007 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].f.fillpen.color = (yyvsp[0].ival); } break; case 327: #line 3015 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].f.fillpen.pattern = (yyvsp[0].ival); } break; case 328: #line 3023 "pars.yacc" { set_graph_hidden((yyvsp[-1].ival), !(yyvsp[0].ival)); } break; case 329: #line 3026 "pars.yacc" { set_graph_hidden((yyvsp[-2].ival), (yyvsp[0].ival)); } break; case 330: #line 3029 "pars.yacc" { set_graph_type((yyvsp[-2].ival), (yyvsp[0].ival)); } break; case 331: #line 3032 "pars.yacc" { set_graph_stacked((yyvsp[-2].ival), (yyvsp[0].ival)); } break; case 332: #line 3036 "pars.yacc" { set_graph_bargap((yyvsp[-3].ival), (yyvsp[0].dval)); } break; case 333: #line 3040 "pars.yacc" { g[(yyvsp[-2].ival)].locator.pointset = (yyvsp[0].ival); } break; case 334: #line 3043 "pars.yacc" { g[(yyvsp[-4].ival)].locator.fx = (yyvsp[-1].ival); g[(yyvsp[-4].ival)].locator.fy = (yyvsp[0].ival); } break; case 335: #line 3047 "pars.yacc" { g[(yyvsp[-5].ival)].locator.px = (yyvsp[-2].dval); g[(yyvsp[-5].ival)].locator.py = (yyvsp[0].dval); } break; case 336: #line 3051 "pars.yacc" { g[(yyvsp[-5].ival)].locator.dsx = (yyvsp[-2].dval); g[(yyvsp[-5].ival)].locator.dsy = (yyvsp[0].dval); } break; case 337: #line 3055 "pars.yacc" { g[(yyvsp[-3].ival)].locator.pt_type = (yyvsp[0].ival); } break; case 338: #line 3059 "pars.yacc" { curtype = (yyvsp[0].ival); } break; case 339: #line 3064 "pars.yacc" { if (add_io_filter((yyvsp[-3].ival), (yyvsp[-1].ival), (yyvsp[0].sval), (yyvsp[-2].sval)) != 0) { yyerror("Failed adding i/o filter"); } xfree((yyvsp[-2].sval)); xfree((yyvsp[0].sval)); } break; case 340: #line 3071 "pars.yacc" { clear_io_filters((yyvsp[0].ival)); } break; case 341: #line 3075 "pars.yacc" { cursource = (yyvsp[0].ival); } break; case 342: #line 3078 "pars.yacc" { readxformat = (yyvsp[0].ival); } break; case 343: #line 3081 "pars.yacc" { } break; case 344: #line 3082 "pars.yacc" { nonl_parms[(yyvsp[-2].ival)].constr = (yyvsp[0].ival); } break; case 345: #line 3088 "pars.yacc" { drawgraph(); } break; case 346: #line 3091 "pars.yacc" { #ifndef NONE_GUI if (inwin) { update_all(); } #endif } break; case 347: #line 3098 "pars.yacc" { set_workingdir((yyvsp[0].sval)); xfree((yyvsp[0].sval)); } break; case 348: #line 3102 "pars.yacc" { echomsg((yyvsp[0].sval)); xfree((yyvsp[0].sval)); } break; case 349: #line 3106 "pars.yacc" { char buf[32]; set_locale_num(TRUE); sprintf(buf, "%g", (yyvsp[0].dval)); set_locale_num(FALSE); echomsg(buf); } break; case 350: #line 3113 "pars.yacc" { close_input = copy_string(close_input, ""); } break; case 351: #line 3116 "pars.yacc" { close_input = copy_string(close_input, (yyvsp[0].sval)); } break; case 352: #line 3119 "pars.yacc" { exit(0); } break; case 353: #line 3122 "pars.yacc" { exit((yyvsp[-1].ival)); } break; case 354: #line 3125 "pars.yacc" { if (!safe_mode) { do_hardcopy(); } else { yyerror("File modifications are disabled in safe mode"); } } break; case 355: #line 3132 "pars.yacc" { set_ptofile(FALSE); } break; case 356: #line 3135 "pars.yacc" { set_ptofile(TRUE); strcpy(print_file, (yyvsp[0].sval)); xfree((yyvsp[0].sval)); } break; case 357: #line 3140 "pars.yacc" { switch ((yyvsp[0].ival)) { case UP: graph_scroll(GSCROLL_UP); break; case DOWN: graph_scroll(GSCROLL_DOWN); break; case RIGHT: graph_scroll(GSCROLL_RIGHT); break; case LEFT: graph_scroll(GSCROLL_LEFT); break; case IN: graph_zoom(GZOOM_SHRINK); break; case OUT: graph_zoom(GZOOM_EXPAND); break; } } break; case 358: #line 3162 "pars.yacc" { if ((yyvsp[0].dval) > 0) { msleep_wrap((unsigned int) (1000 * (yyvsp[0].dval))); } } break; case 359: #line 3167 "pars.yacc" { #ifndef NONE_GUI if (inwin) { HelpCB((yyvsp[0].sval)); } xfree((yyvsp[0].sval)); #endif } break; case 360: #line 3175 "pars.yacc" { #ifndef NONE_GUI if (inwin) { HelpCB("doc/UsersGuide.html"); } #endif } break; case 361: #line 3182 "pars.yacc" { gotparams = TRUE; strcpy(paramfile, (yyvsp[0].sval)); xfree((yyvsp[0].sval)); } break; case 362: #line 3187 "pars.yacc" { if (!safe_mode) { FILE *pp = grace_openw((yyvsp[0].sval)); if (pp != NULL) { putparms(whichgraph, pp, 0); grace_close(pp); } } else { yyerror("File modifications are disabled in safe mode"); } xfree((yyvsp[0].sval)); } break; case 363: #line 3199 "pars.yacc" { set_set_hidden((yyvsp[-2].trgt)->gno, (yyvsp[-2].trgt)->setno, (yyvsp[0].ival)); } break; case 364: #line 3202 "pars.yacc" { setlength((yyvsp[-2].trgt)->gno, (yyvsp[-2].trgt)->setno, (yyvsp[0].ival)); } break; case 365: #line 3205 "pars.yacc" { realloc_vrbl((yyvsp[-2].vrbl), (yyvsp[0].ival)); } break; case 366: #line 3208 "pars.yacc" { add_point((yyvsp[-4].trgt)->gno, (yyvsp[-4].trgt)->setno, (yyvsp[-2].dval), (yyvsp[0].dval)); } break; case 367: #line 3212 "pars.yacc" { int start = (yyvsp[-2].ival) - index_shift; int stop = (yyvsp[0].ival) - index_shift; droppoints((yyvsp[-4].trgt)->gno, (yyvsp[-4].trgt)->setno, start, stop); } break; case 368: #line 3217 "pars.yacc" { if (is_set_active((yyvsp[-2].trgt)->gno, (yyvsp[-2].trgt)->setno)) { sortset((yyvsp[-2].trgt)->gno, (yyvsp[-2].trgt)->setno, (yyvsp[-1].ival), (yyvsp[0].ival) == ASCENDING ? 0 : 1); } } break; case 369: #line 3222 "pars.yacc" { do_copyset((yyvsp[-2].trgt)->gno, (yyvsp[-2].trgt)->setno, (yyvsp[0].trgt)->gno, (yyvsp[0].trgt)->setno); } break; case 370: #line 3225 "pars.yacc" { if ((yyvsp[-2].trgt)->gno != (yyvsp[0].trgt)->gno) { errmsg("Can't append sets from different graphs"); } else { int sets[2]; sets[0] = (yyvsp[0].trgt)->setno; sets[1] = (yyvsp[-2].trgt)->setno; join_sets((yyvsp[-2].trgt)->gno, sets, 2); } } break; case 371: #line 3235 "pars.yacc" { reverse_set((yyvsp[0].trgt)->gno, (yyvsp[0].trgt)->setno); } break; case 372: #line 3238 "pars.yacc" { do_splitsets((yyvsp[-1].trgt)->gno, (yyvsp[-1].trgt)->setno, (yyvsp[0].ival)); } break; case 373: #line 3241 "pars.yacc" { do_moveset((yyvsp[-2].trgt)->gno, (yyvsp[-2].trgt)->setno, (yyvsp[0].trgt)->gno, (yyvsp[0].trgt)->setno); } break; case 374: #line 3244 "pars.yacc" { do_swapset((yyvsp[-2].trgt)->gno, (yyvsp[-2].trgt)->setno, (yyvsp[0].trgt)->gno, (yyvsp[0].trgt)->setno); } break; case 375: #line 3247 "pars.yacc" { killset((yyvsp[0].trgt)->gno, (yyvsp[0].trgt)->setno); } break; case 376: #line 3250 "pars.yacc" { killsetdata((yyvsp[-1].trgt)->gno, (yyvsp[-1].trgt)->setno); } break; case 377: #line 3253 "pars.yacc" { kill_graph((yyvsp[0].ival)); } break; case 378: #line 3256 "pars.yacc" { kill_region((yyvsp[0].ival)); } break; case 379: #line 3259 "pars.yacc" { wipeout(); } break; case 380: #line 3262 "pars.yacc" { arrange_graphs_simple((yyvsp[-9].ival), (yyvsp[-7].ival), 0, FALSE, (yyvsp[-5].dval), (yyvsp[-3].dval), (yyvsp[-1].dval)); } break; case 381: #line 3265 "pars.yacc" { int order = ((yyvsp[-5].ival) * GA_ORDER_HV_INV) | ((yyvsp[-3].ival) * GA_ORDER_H_INV ) | ((yyvsp[-1].ival) * GA_ORDER_V_INV ); arrange_graphs_simple((yyvsp[-15].ival), (yyvsp[-13].ival), order, FALSE, (yyvsp[-11].dval), (yyvsp[-9].dval), (yyvsp[-7].dval)); } break; case 382: #line 3271 "pars.yacc" { int order = ((yyvsp[-7].ival) * GA_ORDER_HV_INV) | ((yyvsp[-5].ival) * GA_ORDER_H_INV ) | ((yyvsp[-3].ival) * GA_ORDER_V_INV ); arrange_graphs_simple((yyvsp[-17].ival), (yyvsp[-15].ival), order, (yyvsp[-1].ival), (yyvsp[-13].dval), (yyvsp[-11].dval), (yyvsp[-9].dval)); } break; case 383: #line 3277 "pars.yacc" { gotnlfit = TRUE; nlfit_gno = (yyvsp[-3].trgt)->gno; nlfit_setno = (yyvsp[-3].trgt)->setno; nlfit_nsteps = (yyvsp[-1].ival); nlfit_warray = NULL; } break; case 384: #line 3284 "pars.yacc" { if (getsetlength((yyvsp[-5].trgt)->gno, (yyvsp[-5].trgt)->setno) != (yyvsp[-3].vrbl)->length) { errmsg("Data and weight arrays are of different lengths"); return 1; } else { gotnlfit = TRUE; nlfit_gno = (yyvsp[-5].trgt)->gno; nlfit_setno = (yyvsp[-5].trgt)->setno; nlfit_nsteps = (yyvsp[-1].ival); nlfit_warray = copy_data_column((yyvsp[-3].vrbl)->data, (yyvsp[-3].vrbl)->length); } } break; case 385: #line 3296 "pars.yacc" { do_regress((yyvsp[-3].trgt)->gno, (yyvsp[-3].trgt)->setno, (yyvsp[-1].ival), 0, -1, 0, -1); } break; case 386: #line 3299 "pars.yacc" { do_runavg((yyvsp[-3].trgt)->gno, (yyvsp[-3].trgt)->setno, (yyvsp[-1].ival), (yyvsp[-5].ival), -1, 0); } break; case 387: #line 3302 "pars.yacc" { do_fourier_command((yyvsp[-3].trgt)->gno, (yyvsp[-3].trgt)->setno, (yyvsp[-5].ival), (yyvsp[-1].ival)); } break; case 388: #line 3306 "pars.yacc" { switch ((yyvsp[-11].ival)) { case FFT_DFT: do_fourier((yyvsp[-9].trgt)->gno, (yyvsp[-9].trgt)->setno, 0, (yyvsp[-1].ival), (yyvsp[-3].ival), 0, (yyvsp[-7].ival), (yyvsp[-5].ival)); break; case FFT_INVDFT : do_fourier((yyvsp[-9].trgt)->gno, (yyvsp[-9].trgt)->setno, 0, (yyvsp[-1].ival), (yyvsp[-3].ival), 1, (yyvsp[-7].ival), (yyvsp[-5].ival)); break; case FFT_FFT: do_fourier((yyvsp[-9].trgt)->gno, (yyvsp[-9].trgt)->setno, 1, (yyvsp[-1].ival), (yyvsp[-3].ival), 0, (yyvsp[-7].ival), (yyvsp[-5].ival)); break; case FFT_INVFFT : do_fourier((yyvsp[-9].trgt)->gno, (yyvsp[-9].trgt)->setno, 1, (yyvsp[-1].ival), (yyvsp[-3].ival), 1, (yyvsp[-7].ival), (yyvsp[-5].ival)); break; default: errmsg("Internal error"); break; } } break; case 389: #line 3325 "pars.yacc" { do_interp((yyvsp[-7].trgt)->gno, (yyvsp[-7].trgt)->setno, get_cg(), SET_SELECT_NEXT, (yyvsp[-5].vrbl)->data, (yyvsp[-5].vrbl)->length, (yyvsp[-3].ival), (yyvsp[-1].ival)); } break; case 390: #line 3329 "pars.yacc" { do_histo((yyvsp[-7].trgt)->gno, (yyvsp[-7].trgt)->setno, get_cg(), SET_SELECT_NEXT, (yyvsp[-5].vrbl)->data, (yyvsp[-5].vrbl)->length - 1, (yyvsp[-3].ival), (yyvsp[-1].ival)); } break; case 391: #line 3333 "pars.yacc" { do_differ((yyvsp[-3].trgt)->gno, (yyvsp[-3].trgt)->setno, (yyvsp[-1].ival)); } break; case 392: #line 3336 "pars.yacc" { do_int((yyvsp[-1].trgt)->gno, (yyvsp[-1].trgt)->setno, 0); } break; case 393: #line 3339 "pars.yacc" { do_xcor((yyvsp[-7].trgt)->gno, (yyvsp[-7].trgt)->setno, (yyvsp[-5].trgt)->gno, (yyvsp[-5].trgt)->setno, (yyvsp[-3].ival), (yyvsp[-1].ival)); } break; case 394: #line 3342 "pars.yacc" { int len = getsetlength((yyvsp[-3].trgt)->gno, (yyvsp[-3].trgt)->setno); if (len != (yyvsp[-1].vrbl)->length) { errmsg("Filter expression is of a wrong length"); } else { char *rarray; rarray = xmalloc(len*SIZEOF_CHAR); if (rarray) { int i; for (i = 0; i < len; i++) { rarray[i] = CAST_DBL_TO_BOOL((yyvsp[-1].vrbl)->data[i]); } filter_set((yyvsp[-3].trgt)->gno, (yyvsp[-3].trgt)->setno, rarray); xfree(rarray); } } } break; case 395: #line 3359 "pars.yacc" { int rtype; char *rarray; rtype = RESTRICT_REG0 + (yyvsp[-3].ival); if (get_restriction_array((yyvsp[-5].trgt)->gno, (yyvsp[-5].trgt)->setno, rtype, (yyvsp[-1].ival), &rarray) != RETURN_SUCCESS) { errmsg("Error in region evaluation"); return 1; } else { filter_set((yyvsp[-5].trgt)->gno, (yyvsp[-5].trgt)->setno, rarray); xfree(rarray); } } break; case 396: #line 3374 "pars.yacc" { if (autoscale_graph(whichgraph, AUTOSCALE_XY) != RETURN_SUCCESS) { errmsg("Can't autoscale (no active sets?)"); } } break; case 397: #line 3379 "pars.yacc" { if (autoscale_graph(whichgraph, AUTOSCALE_X) != RETURN_SUCCESS) { errmsg("Can't autoscale (no active sets?)"); } } break; case 398: #line 3384 "pars.yacc" { if (autoscale_graph(whichgraph, AUTOSCALE_Y) != RETURN_SUCCESS) { errmsg("Can't autoscale (no active sets?)"); } } break; case 399: #line 3389 "pars.yacc" { autoscale_byset((yyvsp[0].trgt)->gno, (yyvsp[0].trgt)->setno, AUTOSCALE_XY); } break; case 400: #line 3392 "pars.yacc" { autotick_axis(whichgraph, ALL_AXES); } break; case 401: #line 3395 "pars.yacc" { int gno = (yyvsp[0].ival); if (is_graph_hidden(gno) == FALSE) { select_graph(gno); } else { errmsg("Graph is not active"); } } break; case 402: #line 3403 "pars.yacc" { gotread = TRUE; strcpy(readfile, (yyvsp[0].sval)); xfree((yyvsp[0].sval)); } break; case 403: #line 3408 "pars.yacc" { strcpy(batchfile, (yyvsp[0].sval)); xfree((yyvsp[0].sval)); } break; case 404: #line 3412 "pars.yacc" { getdata(whichgraph, (yyvsp[0].sval), SOURCE_DISK, LOAD_BLOCK); xfree((yyvsp[0].sval)); } break; case 405: #line 3416 "pars.yacc" { getdata(whichgraph, (yyvsp[0].sval), (yyvsp[-1].ival), LOAD_BLOCK); xfree((yyvsp[0].sval)); } break; case 406: #line 3420 "pars.yacc" { int nc, *cols, scol; if (field_string_to_cols((yyvsp[0].sval), &nc, &cols, &scol) != RETURN_SUCCESS) { errmsg("Erroneous field specifications"); xfree((yyvsp[0].sval)); return 1; } else { xfree((yyvsp[0].sval)); create_set_fromblock(whichgraph, NEW_SET, (yyvsp[-1].ival), nc, cols, scol, autoscale_onread); xfree(cols); } } break; case 407: #line 3433 "pars.yacc" { set_blockdata(NULL); } break; case 408: #line 3436 "pars.yacc" { gotread = TRUE; curtype = (yyvsp[-1].ival); strcpy(readfile, (yyvsp[0].sval)); xfree((yyvsp[0].sval)); } break; case 409: #line 3442 "pars.yacc" { gotread = TRUE; strcpy(readfile, (yyvsp[0].sval)); curtype = (yyvsp[-2].ival); cursource = (yyvsp[-1].ival); xfree((yyvsp[0].sval)); } break; case 410: #line 3449 "pars.yacc" { getdata(whichgraph, (yyvsp[0].sval), SOURCE_DISK, LOAD_NXY); xfree((yyvsp[0].sval)); } break; case 411: #line 3453 "pars.yacc" { getdata(whichgraph, (yyvsp[0].sval), (yyvsp[-1].ival), LOAD_NXY); xfree((yyvsp[0].sval)); } break; case 412: #line 3457 "pars.yacc" { if (!safe_mode) { outputset((yyvsp[0].trgt)->gno, (yyvsp[0].trgt)->setno, "stdout", NULL); } else { yyerror("File modifications are disabled in safe mode"); } } break; case 413: #line 3464 "pars.yacc" { if (!safe_mode) { outputset((yyvsp[-2].trgt)->gno, (yyvsp[-2].trgt)->setno, "stdout", (yyvsp[0].sval)); } else { yyerror("File modifications are disabled in safe mode"); } xfree((yyvsp[0].sval)); } break; case 414: #line 3472 "pars.yacc" { if (!safe_mode) { outputset((yyvsp[-2].trgt)->gno, (yyvsp[-2].trgt)->setno, (yyvsp[0].sval), NULL); } else { yyerror("File modifications are disabled in safe mode"); } xfree((yyvsp[0].sval)); } break; case 415: #line 3480 "pars.yacc" { if (!safe_mode) { outputset((yyvsp[-4].trgt)->gno, (yyvsp[-4].trgt)->setno, (yyvsp[-2].sval), (yyvsp[0].sval)); } else { yyerror("File modifications are disabled in safe mode"); } xfree((yyvsp[-2].sval)); xfree((yyvsp[0].sval)); } break; case 416: #line 3489 "pars.yacc" { if (!safe_mode) { save_project((yyvsp[0].sval)); } else { yyerror("File modifications are disabled in safe mode"); } xfree((yyvsp[0].sval)); } break; case 417: #line 3497 "pars.yacc" { load_project((yyvsp[0].sval)); xfree((yyvsp[0].sval)); } break; case 418: #line 3501 "pars.yacc" { new_project(NULL); } break; case 419: #line 3504 "pars.yacc" { new_project((yyvsp[0].sval)); xfree((yyvsp[0].sval)); } break; case 420: #line 3508 "pars.yacc" { push_world(); } break; case 421: #line 3511 "pars.yacc" { pop_world(); } break; case 422: #line 3514 "pars.yacc" { cycle_world_stack(); } break; case 423: #line 3517 "pars.yacc" { if ((yyvsp[0].ival) > 0) show_world_stack((yyvsp[0].ival) - 1); } break; case 424: #line 3521 "pars.yacc" { clear_world_stack(); } break; case 425: #line 3524 "pars.yacc" { do_clear_boxes(); } break; case 426: #line 3527 "pars.yacc" { do_clear_ellipses(); } break; case 427: #line 3530 "pars.yacc" { do_clear_lines(); } break; case 428: #line 3533 "pars.yacc" { do_clear_text(); } break; case 429: #line 3540 "pars.yacc" { #ifndef NONE_GUI set_pagelayout((yyvsp[0].ival)); #endif } break; case 430: #line 3545 "pars.yacc" { auto_redraw = (yyvsp[0].ival); } break; case 431: #line 3548 "pars.yacc" { draw_focus_flag = (yyvsp[0].ival); } break; case 432: #line 3551 "pars.yacc" { focus_policy = FOCUS_SET; } break; case 433: #line 3554 "pars.yacc" { focus_policy = FOCUS_FOLLOWS; } break; case 434: #line 3557 "pars.yacc" { focus_policy = FOCUS_CLICK; } break; case 435: #line 3564 "pars.yacc" {} break; case 436: #line 3565 "pars.yacc" {} break; case 437: #line 3569 "pars.yacc" { set_set_hidden((yyvsp[-1].trgt)->gno, (yyvsp[-1].trgt)->setno, !(yyvsp[0].ival)); } break; case 438: #line 3572 "pars.yacc" { set_dataset_type((yyvsp[-2].trgt)->gno, (yyvsp[-2].trgt)->setno, (yyvsp[0].ival)); } break; case 439: #line 3576 "pars.yacc" { g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].sym = (yyvsp[0].ival); } break; case 440: #line 3579 "pars.yacc" { g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].sympen.color = (yyvsp[0].ival); } break; case 441: #line 3582 "pars.yacc" { g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].sympen.pattern = (yyvsp[0].ival); } break; case 442: #line 3585 "pars.yacc" { g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].symlinew = (yyvsp[0].dval); } break; case 443: #line 3588 "pars.yacc" { g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].symlines = (yyvsp[0].ival); } break; case 444: #line 3591 "pars.yacc" { g[(yyvsp[-3].trgt)->gno].p[(yyvsp[-3].trgt)->setno].symfillpen.color = (yyvsp[0].ival); } break; case 445: #line 3594 "pars.yacc" { g[(yyvsp[-3].trgt)->gno].p[(yyvsp[-3].trgt)->setno].symfillpen.pattern = (yyvsp[0].ival); } break; case 446: #line 3597 "pars.yacc" { g[(yyvsp[-3].trgt)->gno].p[(yyvsp[-3].trgt)->setno].symsize = (yyvsp[0].dval); } break; case 447: #line 3600 "pars.yacc" { g[(yyvsp[-3].trgt)->gno].p[(yyvsp[-3].trgt)->setno].symchar = (yyvsp[0].ival); } break; case 448: #line 3603 "pars.yacc" { g[(yyvsp[-3].trgt)->gno].p[(yyvsp[-3].trgt)->setno].charfont = (yyvsp[0].ival); } break; case 449: #line 3606 "pars.yacc" { g[(yyvsp[-3].trgt)->gno].p[(yyvsp[-3].trgt)->setno].symskip = (yyvsp[0].ival); } break; case 450: #line 3611 "pars.yacc" { g[(yyvsp[-3].trgt)->gno].p[(yyvsp[-3].trgt)->setno].linet = (yyvsp[0].ival); } break; case 451: #line 3615 "pars.yacc" { g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].lines = (yyvsp[0].ival); } break; case 452: #line 3619 "pars.yacc" { g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].linew = (yyvsp[0].dval); } break; case 453: #line 3623 "pars.yacc" { g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].linepen.color = (yyvsp[0].ival); } break; case 454: #line 3627 "pars.yacc" { g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].linepen.pattern = (yyvsp[0].ival); } break; case 455: #line 3632 "pars.yacc" { g[(yyvsp[-3].trgt)->gno].p[(yyvsp[-3].trgt)->setno].filltype = (yyvsp[0].ival); } break; case 456: #line 3636 "pars.yacc" { g[(yyvsp[-3].trgt)->gno].p[(yyvsp[-3].trgt)->setno].fillrule = (yyvsp[0].ival); } break; case 457: #line 3640 "pars.yacc" { int prop = (yyvsp[0].ival); if (get_project_version() <= 40102 && get_project_version() >= 30000) { switch (filltype_obs) { case COLOR: break; case PATTERN: prop = 1; break; default: /* NONE */ prop = 0; break; } } g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].setfillpen.color = prop; } break; case 458: #line 3658 "pars.yacc" { int prop = (yyvsp[0].ival); if (get_project_version() <= 40102) { switch (filltype_obs) { case COLOR: prop = 1; break; case PATTERN: break; default: /* NONE */ prop = 0; break; } } g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].setfillpen.pattern = prop; } break; case 459: #line 3678 "pars.yacc" { g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].baseline = (yyvsp[0].ival); } break; case 460: #line 3682 "pars.yacc" { g[(yyvsp[-3].trgt)->gno].p[(yyvsp[-3].trgt)->setno].baseline_type = (yyvsp[0].ival); } break; case 461: #line 3687 "pars.yacc" { g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].dropline = (yyvsp[0].ival); } break; case 462: #line 3692 "pars.yacc" { g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].avalue.active = (yyvsp[0].ival); } break; case 463: #line 3696 "pars.yacc" { g[(yyvsp[-3].trgt)->gno].p[(yyvsp[-3].trgt)->setno].avalue.type = (yyvsp[0].ival); } break; case 464: #line 3700 "pars.yacc" { g[(yyvsp[-4].trgt)->gno].p[(yyvsp[-4].trgt)->setno].avalue.size = (yyvsp[0].dval); } break; case 465: #line 3704 "pars.yacc" { g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].avalue.font = (yyvsp[0].ival); } break; case 466: #line 3708 "pars.yacc" { g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].avalue.color = (yyvsp[0].ival); } break; case 467: #line 3712 "pars.yacc" { g[(yyvsp[-3].trgt)->gno].p[(yyvsp[-3].trgt)->setno].avalue.angle = (yyvsp[0].ival); } break; case 468: #line 3716 "pars.yacc" { g[(yyvsp[-3].trgt)->gno].p[(yyvsp[-3].trgt)->setno].avalue.format = (yyvsp[0].ival); } break; case 469: #line 3720 "pars.yacc" { g[(yyvsp[-3].trgt)->gno].p[(yyvsp[-3].trgt)->setno].avalue.prec = (yyvsp[0].ival); } break; case 470: #line 3723 "pars.yacc" { g[(yyvsp[-5].trgt)->gno].p[(yyvsp[-5].trgt)->setno].avalue.offset.x = (yyvsp[-2].dval); g[(yyvsp[-5].trgt)->gno].p[(yyvsp[-5].trgt)->setno].avalue.offset.y = (yyvsp[0].dval); } break; case 471: #line 3728 "pars.yacc" { strcpy(g[(yyvsp[-3].trgt)->gno].p[(yyvsp[-3].trgt)->setno].avalue.prestr, (yyvsp[0].sval)); xfree((yyvsp[0].sval)); } break; case 472: #line 3733 "pars.yacc" { strcpy(g[(yyvsp[-3].trgt)->gno].p[(yyvsp[-3].trgt)->setno].avalue.appstr, (yyvsp[0].sval)); xfree((yyvsp[0].sval)); } break; case 473: #line 3738 "pars.yacc" { g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].errbar.active = (yyvsp[0].ival); } break; case 474: #line 3741 "pars.yacc" { g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].errbar.ptype = (yyvsp[0].ival); } break; case 475: #line 3744 "pars.yacc" { g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].errbar.pen.color = (yyvsp[0].ival); } break; case 476: #line 3747 "pars.yacc" { g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].errbar.pen.pattern = (yyvsp[0].ival); } break; case 477: #line 3750 "pars.yacc" { g[(yyvsp[-3].trgt)->gno].p[(yyvsp[-3].trgt)->setno].errbar.barsize = (yyvsp[0].dval); } break; case 478: #line 3753 "pars.yacc" { g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].errbar.linew = (yyvsp[0].dval); } break; case 479: #line 3756 "pars.yacc" { g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].errbar.lines = (yyvsp[0].ival); } break; case 480: #line 3759 "pars.yacc" { g[(yyvsp[-3].trgt)->gno].p[(yyvsp[-3].trgt)->setno].errbar.riser_linew = (yyvsp[0].dval); } break; case 481: #line 3762 "pars.yacc" { g[(yyvsp[-3].trgt)->gno].p[(yyvsp[-3].trgt)->setno].errbar.riser_lines = (yyvsp[0].ival); } break; case 482: #line 3765 "pars.yacc" { g[(yyvsp[-4].trgt)->gno].p[(yyvsp[-4].trgt)->setno].errbar.arrow_clip = (yyvsp[0].ival); } break; case 483: #line 3768 "pars.yacc" { g[(yyvsp[-5].trgt)->gno].p[(yyvsp[-5].trgt)->setno].errbar.cliplen = (yyvsp[0].dval); } break; case 484: #line 3772 "pars.yacc" { strncpy(g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].comments, (yyvsp[0].sval), MAX_STRING_LENGTH - 1); xfree((yyvsp[0].sval)); } break; case 485: #line 3777 "pars.yacc" { strncpy(g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].lstr, (yyvsp[0].sval), MAX_STRING_LENGTH - 1); xfree((yyvsp[0].sval)); } break; case 486: #line 3785 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->active = (yyvsp[0].ival); } break; case 487: #line 3792 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->zero = (yyvsp[0].ival); } break; case 488: #line 3799 "pars.yacc" {} break; case 489: #line 3800 "pars.yacc" {} break; case 490: #line 3801 "pars.yacc" {} break; case 491: #line 3802 "pars.yacc" {} break; case 492: #line 3803 "pars.yacc" {} break; case 493: #line 3804 "pars.yacc" {} break; case 494: #line 3805 "pars.yacc" {} break; case 495: #line 3806 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->offsx = (yyvsp[-2].dval); g[whichgraph].t[naxis]->offsy = (yyvsp[0].dval); } break; case 496: #line 3817 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->t_flag = (yyvsp[0].ival); } break; case 497: #line 3824 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tmajor = (yyvsp[0].dval); } break; case 498: #line 3831 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->nminor = (yyvsp[0].ival); } break; case 499: #line 3838 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->t_round = (yyvsp[0].ival); } break; case 500: #line 3846 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->offsx = (yyvsp[0].dval); } break; case 501: #line 3853 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->offsy = (yyvsp[0].dval); } break; case 502: #line 3860 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->t_autonum = (yyvsp[0].ival); } break; case 503: #line 3867 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->t_inout = (yyvsp[0].ival); } break; case 504: #line 3874 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->props.size = (yyvsp[0].dval); } break; case 505: #line 3881 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->mprops.size = (yyvsp[0].dval); } break; case 506: #line 3888 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->props.color = g[whichgraph].t[naxis]->mprops.color = (yyvsp[0].ival); } break; case 507: #line 3895 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->props.color = (yyvsp[0].ival); } break; case 508: #line 3902 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->mprops.color = (yyvsp[0].ival); } break; case 509: #line 3909 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->props.linew = g[whichgraph].t[naxis]->mprops.linew = (yyvsp[0].dval); } break; case 510: #line 3916 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->props.linew = (yyvsp[0].dval); } break; case 511: #line 3923 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->mprops.linew = (yyvsp[0].dval); } break; case 512: #line 3930 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->props.lines = (yyvsp[0].ival); } break; case 513: #line 3937 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->mprops.lines = (yyvsp[0].ival); } break; case 514: #line 3944 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->props.gridflag = (yyvsp[0].ival); } break; case 515: #line 3951 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->mprops.gridflag = (yyvsp[0].ival); } break; case 516: #line 3958 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->t_op = (yyvsp[0].ival); } break; case 517: #line 3965 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->t_spec = (yyvsp[0].ival); } break; case 518: #line 3972 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->nticks = (yyvsp[0].ival); } break; case 519: #line 3979 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tloc[(yyvsp[-2].ival)].wtpos = (yyvsp[0].dval); g[whichgraph].t[naxis]->tloc[(yyvsp[-2].ival)].type = TICK_TYPE_MAJOR; } break; case 520: #line 3987 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tloc[(yyvsp[-2].ival)].wtpos = (yyvsp[0].dval); g[whichgraph].t[naxis]->tloc[(yyvsp[-2].ival)].type = TICK_TYPE_MINOR; } break; case 521: #line 3998 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tl_flag = (yyvsp[0].ival); } break; case 522: #line 4005 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tl_prec = (yyvsp[0].ival); } break; case 523: #line 4012 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tl_format = (yyvsp[0].ival); } break; case 524: #line 4019 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tl_format = (yyvsp[0].dval); } break; case 525: #line 4026 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } strcpy(g[whichgraph].t[naxis]->tl_appstr, (yyvsp[0].sval)); xfree((yyvsp[0].sval)); } break; case 526: #line 4034 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } strcpy(g[whichgraph].t[naxis]->tl_prestr, (yyvsp[0].sval)); xfree((yyvsp[0].sval)); } break; case 527: #line 4042 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tl_angle = (yyvsp[0].ival); } break; case 528: #line 4049 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tl_skip = (yyvsp[0].ival); } break; case 529: #line 4056 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tl_staggered = (yyvsp[0].ival); } break; case 530: #line 4063 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tl_op = (yyvsp[0].ival); } break; case 531: #line 4070 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tl_formula = copy_string(g[whichgraph].t[naxis]->tl_formula, (yyvsp[0].sval)); xfree((yyvsp[0].sval)); } break; case 532: #line 4079 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tl_start = (yyvsp[0].dval); } break; case 533: #line 4086 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tl_stop = (yyvsp[0].dval); } break; case 534: #line 4093 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tl_starttype = TYPE_SPEC; } break; case 535: #line 4100 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tl_starttype = TYPE_AUTO; } break; case 536: #line 4107 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tl_stoptype = TYPE_SPEC; } break; case 537: #line 4114 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tl_stoptype = TYPE_AUTO; } break; case 538: #line 4121 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tl_charsize = (yyvsp[0].dval); } break; case 539: #line 4128 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tl_font = (yyvsp[0].ival); } break; case 540: #line 4135 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tl_color = (yyvsp[0].ival); } break; case 541: #line 4142 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); xfree((yyvsp[0].sval)); return 1; } if ((yyvsp[-2].ival) >= MAX_TICKS) { yyerror("Number of ticks exceeds maximum"); xfree((yyvsp[0].sval)); return 1; } g[whichgraph].t[naxis]->tloc[(yyvsp[-2].ival)].label = copy_string(g[whichgraph].t[naxis]->tloc[(yyvsp[-2].ival)].label, (yyvsp[0].sval)); xfree((yyvsp[0].sval)); } break; case 542: #line 4157 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tl_gaptype = TYPE_AUTO; } break; case 543: #line 4164 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tl_gaptype = TYPE_SPEC; } break; case 544: #line 4171 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tl_gap.x = (yyvsp[-2].dval); g[whichgraph].t[naxis]->tl_gap.y = (yyvsp[0].dval); } break; case 545: #line 4182 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } set_plotstr_string(&g[whichgraph].t[naxis]->label, (yyvsp[0].sval)); xfree((yyvsp[0].sval)); } break; case 546: #line 4190 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->label_layout = LAYOUT_PERPENDICULAR; } break; case 547: #line 4197 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->label_layout = LAYOUT_PARALLEL; } break; case 548: #line 4204 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->label_place = TYPE_AUTO; } break; case 549: #line 4211 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->label_place = TYPE_SPEC; } break; case 550: #line 4218 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->label.x = (yyvsp[-2].dval); g[whichgraph].t[naxis]->label.y = (yyvsp[0].dval); } break; case 551: #line 4226 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->label.just = (yyvsp[0].ival); } break; case 552: #line 4233 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->label.charsize = (yyvsp[0].dval); } break; case 553: #line 4240 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->label.font = (yyvsp[0].ival); } break; case 554: #line 4247 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->label.color = (yyvsp[0].ival); } break; case 555: #line 4254 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->label_op = (yyvsp[0].ival); } break; case 556: #line 4264 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->t_drawbar = (yyvsp[0].ival); } break; case 557: #line 4271 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->t_drawbarcolor = (yyvsp[0].ival); } break; case 558: #line 4278 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->t_drawbarlines = (yyvsp[0].ival); } break; case 559: #line 4285 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->t_drawbarlinew = (yyvsp[0].dval); } break; case 560: #line 4295 "pars.yacc" { nonl_opts.title = copy_string(nonl_opts.title, (yyvsp[0].sval)); xfree((yyvsp[0].sval)); } break; case 561: #line 4299 "pars.yacc" { nonl_opts.formula = copy_string(nonl_opts.formula, (yyvsp[0].sval)); xfree((yyvsp[0].sval)); } break; case 562: #line 4303 "pars.yacc" { nonl_opts.parnum = (yyvsp[-1].ival); } break; case 563: #line 4306 "pars.yacc" { nonl_opts.tolerance = (yyvsp[0].dval); } break; case 564: #line 4313 "pars.yacc" { (yyval.ival) = (yyvsp[0].ival); } break; case 565: #line 4317 "pars.yacc" { (yyval.ival) = (yyvsp[0].ival); } break; case 566: #line 4324 "pars.yacc" { int gno = (yyvsp[-2].ival), setno = (yyvsp[0].ival); if (allocate_set(gno, setno) == RETURN_SUCCESS) { (yyval.trgt) = &trgt_pool[tgtn]; (yyval.trgt)->gno = gno; (yyval.trgt)->setno = setno; tgtn++; } else { errmsg("Can't allocate referred set"); return 1; } } break; case 567: #line 4337 "pars.yacc" { int gno = (yyvsp[-3].ival), setno = (yyvsp[0].ival); if (allocate_set(gno, setno) == RETURN_SUCCESS) { (yyval.trgt) = &trgt_pool[tgtn]; (yyval.trgt)->gno = gno; (yyval.trgt)->setno = setno; tgtn++; } else { errmsg("Can't allocate referred set"); return 1; } } break; case 568: #line 4350 "pars.yacc" { int gno = whichgraph, setno = (yyvsp[0].ival); if (allocate_set(gno, setno) == RETURN_SUCCESS) { (yyval.trgt) = &trgt_pool[tgtn]; (yyval.trgt)->gno = gno; (yyval.trgt)->setno = setno; tgtn++; } else { errmsg("Can't allocate referred set"); return 1; } } break; case 569: #line 4363 "pars.yacc" { int gno = whichgraph, setno = (yyvsp[0].ival); if (allocate_set(gno, setno) == RETURN_SUCCESS) { (yyval.trgt) = &trgt_pool[tgtn]; (yyval.trgt)->gno = gno; (yyval.trgt)->setno = setno; tgtn++; } else { errmsg("Can't allocate referred set"); return 1; } } break; case 570: #line 4378 "pars.yacc" {} break; case 571: #line 4379 "pars.yacc" {} break; case 572: #line 4383 "pars.yacc" { naxis = X_AXIS; } break; case 573: #line 4384 "pars.yacc" { naxis = Y_AXIS; } break; case 574: #line 4385 "pars.yacc" { naxis = ZX_AXIS; } break; case 575: #line 4386 "pars.yacc" { naxis = ZY_AXIS; } break; case 576: #line 4390 "pars.yacc" { (yyval.ival) = CONSTANT; } break; case 577: #line 4391 "pars.yacc" { (yyval.ival) = UCONSTANT; } break; case 578: #line 4392 "pars.yacc" { (yyval.ival) = FUNC_I; } break; case 579: #line 4393 "pars.yacc" { (yyval.ival) = FUNC_D; } break; case 580: #line 4394 "pars.yacc" { (yyval.ival) = FUNC_ND; } break; case 581: #line 4395 "pars.yacc" { (yyval.ival) = FUNC_NN; } break; case 582: #line 4396 "pars.yacc" { (yyval.ival) = FUNC_DD; } break; case 583: #line 4397 "pars.yacc" { (yyval.ival) = FUNC_NND; } break; case 584: #line 4398 "pars.yacc" { (yyval.ival) = FUNC_PPD; } break; case 585: #line 4399 "pars.yacc" { (yyval.ival) = FUNC_PPPD; } break; case 586: #line 4400 "pars.yacc" { (yyval.ival) = FUNC_PPPPD; } break; case 587: #line 4401 "pars.yacc" { (yyval.ival) = FUNC_PPPPPD; } break; case 588: #line 4405 "pars.yacc" { (yyval.ival) = TICKS_SPEC_NONE; } break; case 589: #line 4406 "pars.yacc" { (yyval.ival) = TICKS_SPEC_MARKS; } break; case 590: #line 4407 "pars.yacc" { (yyval.ival) = TICKS_SPEC_BOTH; } break; case 591: #line 4411 "pars.yacc" { (yyval.ival) = FILTER_INPUT; } break; case 592: #line 4412 "pars.yacc" { (yyval.ival) = FILTER_OUTPUT; } break; case 593: #line 4416 "pars.yacc" { (yyval.ival) = FILTER_MAGIC; } break; case 594: #line 4417 "pars.yacc" { (yyval.ival) = FILTER_PATTERN; } break; case 595: #line 4421 "pars.yacc" { (yyval.ival) = SET_XY; } break; case 596: #line 4422 "pars.yacc" { (yyval.ival) = SET_BAR; } break; case 597: #line 4423 "pars.yacc" { (yyval.ival) = SET_BARDY; } break; case 598: #line 4424 "pars.yacc" { (yyval.ival) = SET_BARDYDY; } break; case 599: #line 4425 "pars.yacc" { (yyval.ival) = SET_XYZ; } break; case 600: #line 4426 "pars.yacc" { (yyval.ival) = SET_XYDX; } break; case 601: #line 4427 "pars.yacc" { (yyval.ival) = SET_XYDY; } break; case 602: #line 4428 "pars.yacc" { (yyval.ival) = SET_XYDXDX; } break; case 603: #line 4429 "pars.yacc" { (yyval.ival) = SET_XYDYDY; } break; case 604: #line 4430 "pars.yacc" { (yyval.ival) = SET_XYDXDY; } break; case 605: #line 4431 "pars.yacc" { (yyval.ival) = SET_XYDXDXDYDY; } break; case 606: #line 4432 "pars.yacc" { (yyval.ival) = SET_XYHILO; } break; case 607: #line 4433 "pars.yacc" { (yyval.ival) = SET_XYR; } break; case 608: #line 4434 "pars.yacc" { (yyval.ival) = SET_XYSIZE; } break; case 609: #line 4435 "pars.yacc" { (yyval.ival) = SET_XYCOLOR; } break; case 610: #line 4436 "pars.yacc" { (yyval.ival) = SET_XYCOLPAT; } break; case 611: #line 4437 "pars.yacc" { (yyval.ival) = SET_XYVMAP; } break; case 612: #line 4438 "pars.yacc" { (yyval.ival) = SET_BOXPLOT; } break; case 613: #line 4439 "pars.yacc" { (yyval.ival) = SET_XY; } break; case 614: #line 4443 "pars.yacc" { (yyval.ival) = GRAPH_XY; } break; case 615: #line 4444 "pars.yacc" { (yyval.ival) = GRAPH_CHART; } break; case 616: #line 4445 "pars.yacc" { (yyval.ival) = GRAPH_POLAR; } break; case 617: #line 4446 "pars.yacc" { (yyval.ival) = GRAPH_SMITH; } break; case 618: #line 4447 "pars.yacc" { (yyval.ival) = GRAPH_FIXED; } break; case 619: #line 4448 "pars.yacc" { (yyval.ival) = GRAPH_PIE; } break; case 620: #line 4452 "pars.yacc" { (yyval.ival) = PAGE_FREE; } break; case 621: #line 4453 "pars.yacc" { (yyval.ival) = PAGE_FIXED; } break; case 622: #line 4457 "pars.yacc" { (yyval.ival) = PAGE_ORIENT_LANDSCAPE; } break; case 623: #line 4458 "pars.yacc" { (yyval.ival) = PAGE_ORIENT_PORTRAIT; } break; case 624: #line 4462 "pars.yacc" { (yyval.ival) = REGION_ABOVE; } break; case 625: #line 4463 "pars.yacc" { (yyval.ival) = REGION_BELOW; } break; case 626: #line 4464 "pars.yacc" { (yyval.ival) = REGION_TOLEFT; } break; case 627: #line 4465 "pars.yacc" { (yyval.ival) = REGION_TORIGHT; } break; case 628: #line 4466 "pars.yacc" { (yyval.ival) = REGION_POLYI; } break; case 629: #line 4467 "pars.yacc" { (yyval.ival) = REGION_POLYO; } break; case 630: #line 4468 "pars.yacc" { (yyval.ival) = REGION_HORIZI; } break; case 631: #line 4469 "pars.yacc" { (yyval.ival) = REGION_VERTI; } break; case 632: #line 4470 "pars.yacc" { (yyval.ival) = REGION_HORIZO; } break; case 633: #line 4471 "pars.yacc" { (yyval.ival) = REGION_VERTO; } break; case 634: #line 4474 "pars.yacc" { (yyval.ival) = SCALE_NORMAL; } break; case 635: #line 4475 "pars.yacc" { (yyval.ival) = SCALE_LOG; } break; case 636: #line 4476 "pars.yacc" { (yyval.ival) = SCALE_REC; } break; case 637: #line 4477 "pars.yacc" { (yyval.ival) = SCALE_LOGIT; } break; case 638: #line 4480 "pars.yacc" { (yyval.ival) = TRUE; } break; case 639: #line 4481 "pars.yacc" { (yyval.ival) = FALSE; } break; case 640: #line 4484 "pars.yacc" { (yyval.ival) = RUN_AVG; } break; case 641: #line 4485 "pars.yacc" { (yyval.ival) = RUN_STD; } break; case 642: #line 4486 "pars.yacc" { (yyval.ival) = RUN_MED; } break; case 643: #line 4487 "pars.yacc" { (yyval.ival) = RUN_MAX; } break; case 644: #line 4488 "pars.yacc" { (yyval.ival) = RUN_MIN; } break; case 645: #line 4492 "pars.yacc" { (yyval.ival) = SOURCE_DISK; } break; case 646: #line 4493 "pars.yacc" { if (!safe_mode) { (yyval.ival) = SOURCE_PIPE; } else { yyerror("Pipe inputs are disabled in safe mode"); (yyval.ival) = SOURCE_DISK; } } break; case 647: #line 4503 "pars.yacc" { (yyval.ival) = JUST_RIGHT; } break; case 648: #line 4504 "pars.yacc" { (yyval.ival) = JUST_LEFT; } break; case 649: #line 4505 "pars.yacc" { (yyval.ival) = JUST_CENTER; } break; case 650: #line 4508 "pars.yacc" { (yyval.ival) = TICKS_IN; } break; case 651: #line 4509 "pars.yacc" { (yyval.ival) = TICKS_OUT; } break; case 652: #line 4510 "pars.yacc" { (yyval.ival) = TICKS_BOTH; } break; case 653: #line 4513 "pars.yacc" { (yyval.ival) = FORMAT_DECIMAL; } break; case 654: #line 4514 "pars.yacc" { (yyval.ival) = FORMAT_EXPONENTIAL; } break; case 655: #line 4515 "pars.yacc" { (yyval.ival) = FORMAT_GENERAL; } break; case 656: #line 4516 "pars.yacc" { (yyval.ival) = FORMAT_SCIENTIFIC; } break; case 657: #line 4517 "pars.yacc" { (yyval.ival) = FORMAT_ENGINEERING; } break; case 658: #line 4518 "pars.yacc" { (yyval.ival) = FORMAT_COMPUTING; } break; case 659: #line 4519 "pars.yacc" { (yyval.ival) = FORMAT_POWER; } break; case 660: #line 4520 "pars.yacc" { (yyval.ival) = FORMAT_DDMMYY; } break; case 661: #line 4521 "pars.yacc" { (yyval.ival) = FORMAT_MMDDYY; } break; case 662: #line 4522 "pars.yacc" { (yyval.ival) = FORMAT_YYMMDD; } break; case 663: #line 4523 "pars.yacc" { (yyval.ival) = FORMAT_MMYY; } break; case 664: #line 4524 "pars.yacc" { (yyval.ival) = FORMAT_MMDD; } break; case 665: #line 4525 "pars.yacc" { (yyval.ival) = FORMAT_MONTHDAY; } break; case 666: #line 4526 "pars.yacc" { (yyval.ival) = FORMAT_DAYMONTH; } break; case 667: #line 4527 "pars.yacc" { (yyval.ival) = FORMAT_MONTHS; } break; case 668: #line 4528 "pars.yacc" { (yyval.ival) = FORMAT_MONTHSY; } break; case 669: #line 4529 "pars.yacc" { (yyval.ival) = FORMAT_MONTHL; } break; case 670: #line 4530 "pars.yacc" { (yyval.ival) = FORMAT_DAYOFWEEKS; } break; case 671: #line 4531 "pars.yacc" { (yyval.ival) = FORMAT_DAYOFWEEKL; } break; case 672: #line 4532 "pars.yacc" { (yyval.ival) = FORMAT_DAYOFYEAR; } break; case 673: #line 4533 "pars.yacc" { (yyval.ival) = FORMAT_HMS; } break; case 674: #line 4534 "pars.yacc" { (yyval.ival) = FORMAT_MMDDHMS; } break; case 675: #line 4535 "pars.yacc" { (yyval.ival) = FORMAT_MMDDYYHMS; } break; case 676: #line 4536 "pars.yacc" { (yyval.ival) = FORMAT_YYMMDDHMS; } break; case 677: #line 4537 "pars.yacc" { (yyval.ival) = FORMAT_DEGREESLON; } break; case 678: #line 4538 "pars.yacc" { (yyval.ival) = FORMAT_DEGREESMMLON; } break; case 679: #line 4539 "pars.yacc" { (yyval.ival) = FORMAT_DEGREESMMSSLON; } break; case 680: #line 4540 "pars.yacc" { (yyval.ival) = FORMAT_MMSSLON; } break; case 681: #line 4541 "pars.yacc" { (yyval.ival) = FORMAT_DEGREESLAT; } break; case 682: #line 4542 "pars.yacc" { (yyval.ival) = FORMAT_DEGREESMMLAT; } break; case 683: #line 4543 "pars.yacc" { (yyval.ival) = FORMAT_DEGREESMMSSLAT; } break; case 684: #line 4544 "pars.yacc" { (yyval.ival) = FORMAT_MMSSLAT; } break; case 685: #line 4547 "pars.yacc" { (yyval.ival) = SIGN_NORMAL; } break; case 686: #line 4548 "pars.yacc" { (yyval.ival) = SIGN_ABSOLUTE; } break; case 687: #line 4549 "pars.yacc" { (yyval.ival) = SIGN_NEGATE; } break; case 688: #line 4552 "pars.yacc" { (yyval.ival) = UP; } break; case 689: #line 4553 "pars.yacc" { (yyval.ival) = DOWN; } break; case 690: #line 4554 "pars.yacc" { (yyval.ival) = RIGHT; } break; case 691: #line 4555 "pars.yacc" { (yyval.ival) = LEFT; } break; case 692: #line 4556 "pars.yacc" { (yyval.ival) = IN; } break; case 693: #line 4557 "pars.yacc" { (yyval.ival) = OUT; } break; case 694: #line 4560 "pars.yacc" { (yyval.ival) = COORD_WORLD; } break; case 695: #line 4561 "pars.yacc" { (yyval.ival) = COORD_VIEW; } break; case 696: #line 4564 "pars.yacc" { (yyval.ival) = DATA_X; } break; case 697: #line 4565 "pars.yacc" { (yyval.ival) = DATA_Y; } break; case 698: #line 4566 "pars.yacc" { (yyval.ival) = DATA_X; } break; case 699: #line 4567 "pars.yacc" { (yyval.ival) = DATA_Y; } break; case 700: #line 4568 "pars.yacc" { (yyval.ival) = DATA_Y1; } break; case 701: #line 4569 "pars.yacc" { (yyval.ival) = DATA_Y2; } break; case 702: #line 4570 "pars.yacc" { (yyval.ival) = DATA_Y3; } break; case 703: #line 4571 "pars.yacc" { (yyval.ival) = DATA_Y4; } break; case 704: #line 4574 "pars.yacc" { (yyval.ival) = ASCENDING; } break; case 705: #line 4575 "pars.yacc" { (yyval.ival) = DESCENDING; } break; case 706: #line 4578 "pars.yacc" { (yyval.ival) = DATA_X; } break; case 707: #line 4579 "pars.yacc" { (yyval.ival) = DATA_Y; } break; case 708: #line 4582 "pars.yacc" { (yyval.ival) = FFT_DFT; } break; case 709: #line 4583 "pars.yacc" { (yyval.ival) = FFT_FFT; } break; case 710: #line 4584 "pars.yacc" { (yyval.ival) = FFT_INVDFT; } break; case 711: #line 4585 "pars.yacc" { (yyval.ival) = FFT_INVFFT; } break; case 712: #line 4589 "pars.yacc" {(yyval.ival)=0;} break; case 713: #line 4590 "pars.yacc" {(yyval.ival)=1;} break; case 714: #line 4594 "pars.yacc" {(yyval.ival)=0;} break; case 715: #line 4595 "pars.yacc" {(yyval.ival)=1;} break; case 716: #line 4596 "pars.yacc" {(yyval.ival)=2;} break; case 717: #line 4600 "pars.yacc" {(yyval.ival)=0;} break; case 718: #line 4601 "pars.yacc" {(yyval.ival)=1;} break; case 719: #line 4602 "pars.yacc" {(yyval.ival)=2;} break; case 720: #line 4606 "pars.yacc" {(yyval.ival)=0;} break; case 721: #line 4607 "pars.yacc" {(yyval.ival)=1;} break; case 722: #line 4608 "pars.yacc" {(yyval.ival)=2;} break; case 723: #line 4609 "pars.yacc" {(yyval.ival)=3;} break; case 724: #line 4610 "pars.yacc" {(yyval.ival)=4;} break; case 725: #line 4611 "pars.yacc" {(yyval.ival)=5;} break; case 726: #line 4612 "pars.yacc" {(yyval.ival)=6;} break; case 727: #line 4616 "pars.yacc" { (yyval.ival) = INTERP_LINEAR; } break; case 728: #line 4617 "pars.yacc" { (yyval.ival) = INTERP_SPLINE; } break; case 729: #line 4618 "pars.yacc" { (yyval.ival) = INTERP_ASPLINE; } break; case 730: #line 4621 "pars.yacc" { (yyval.ival) = MINP; } break; case 731: #line 4622 "pars.yacc" { (yyval.ival) = MAXP; } break; case 732: #line 4623 "pars.yacc" { (yyval.ival) = AVG; } break; case 733: #line 4624 "pars.yacc" { (yyval.ival) = SD; } break; case 734: #line 4625 "pars.yacc" { (yyval.ival) = SUM; } break; case 735: #line 4626 "pars.yacc" { (yyval.ival) = IMIN; } break; case 736: #line 4627 "pars.yacc" { (yyval.ival) = IMAX; } break; case 737: #line 4632 "pars.yacc" { (yyval.ival) = get_mapped_font((yyvsp[0].ival)); } break; case 738: #line 4636 "pars.yacc" { (yyval.ival) = get_font_by_name((yyvsp[0].sval)); xfree((yyvsp[0].sval)); } break; case 739: #line 4644 "pars.yacc" { int lines = (yyvsp[0].ival); if (lines >= 0 && lines < number_of_linestyles()) { (yyval.ival) = lines; } else { errmsg("invalid linestyle"); (yyval.ival) = 1; } } break; case 740: #line 4657 "pars.yacc" { int patno = (yyvsp[0].ival); if (patno >= 0 && patno < number_of_patterns()) { (yyval.ival) = patno; } else { errmsg("invalid pattern number"); (yyval.ival) = 1; } } break; case 741: #line 4670 "pars.yacc" { int c = (yyvsp[0].ival); if (c >= 0 && c < number_of_colors()) { (yyval.ival) = c; } else { errmsg("Invalid color ID"); (yyval.ival) = 1; } } break; case 742: #line 4680 "pars.yacc" { int c = get_color_by_name((yyvsp[0].sval)); if (c == BAD_COLOR) { errmsg("Invalid color name"); c = 1; } xfree((yyvsp[0].sval)); (yyval.ival) = c; } break; case 743: #line 4690 "pars.yacc" { int c; CMap_entry cmap; cmap.rgb.red = (yyvsp[-5].ival); cmap.rgb.green = (yyvsp[-3].ival); cmap.rgb.blue = (yyvsp[-1].ival); cmap.ctype = COLOR_MAIN; cmap.cname = NULL; c = add_color(cmap); if (c == BAD_COLOR) { errmsg("Can't allocate requested color"); c = 1; } (yyval.ival) = c; } break; case 744: #line 4709 "pars.yacc" { double linew; linew = (yyvsp[0].dval); if (linew < 0.0) { yyerror("Negative linewidth"); linew = 0.0; } else if (linew > MAX_LINEWIDTH) { yyerror("Linewidth too large"); linew = MAX_LINEWIDTH; } (yyval.dval) = linew; } break; case 745: #line 4724 "pars.yacc" { (yyval.ival) = (yyvsp[0].ival); } break; case 746: #line 4729 "pars.yacc" { (yyval.ival) = PLACEMENT_NORMAL; } break; case 747: #line 4730 "pars.yacc" { (yyval.ival) = PLACEMENT_OPPOSITE; } break; case 748: #line 4731 "pars.yacc" { (yyval.ival) = PLACEMENT_BOTH; } break; case 749: #line 4737 "pars.yacc" { int wpp, hpp; if ((yyvsp[0].ival) == PAGE_ORIENT_LANDSCAPE) { wpp = 792; hpp = 612; } else { wpp = 612; hpp = 792; } set_page_dimensions(wpp, hpp, FALSE); } break; case 750: #line 4748 "pars.yacc" { set_page_dimensions((int) (yyvsp[-1].dval), (int) (yyvsp[0].dval), FALSE); } break; case 751: #line 4751 "pars.yacc" { scroll_proc((yyvsp[0].ival)); } break; case 752: #line 4754 "pars.yacc" { scrollinout_proc((yyvsp[0].ival)); } break; case 753: #line 4758 "pars.yacc" { } break; case 754: #line 4762 "pars.yacc" { add_world(whichgraph, (yyvsp[-14].dval), (yyvsp[-12].dval), (yyvsp[-10].dval), (yyvsp[-8].dval)); } break; case 755: #line 4766 "pars.yacc" {filltype_obs = (yyvsp[0].ival);} break; case 756: #line 4768 "pars.yacc" {filltype_obs = (yyvsp[0].ival);} break; case 757: #line 4770 "pars.yacc" { } break; case 758: #line 4772 "pars.yacc" { } break; case 759: #line 4774 "pars.yacc" { } break; case 760: #line 4775 "pars.yacc" { } break; case 761: #line 4777 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } if ((yyvsp[0].ival) == FALSE && get_project_version() <= 40102) { g[whichgraph].l.boxpen.pattern = 0; } } break; case 762: #line 4786 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].l.legx = (yyvsp[0].dval); } break; case 763: #line 4793 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].l.legy = (yyvsp[0].dval); } break; case 764: #line 4800 "pars.yacc" { if (is_valid_setno(whichgraph, (yyvsp[-1].ival))) { strncpy(g[whichgraph].p[(yyvsp[-1].ival)].lstr, (yyvsp[0].sval), MAX_STRING_LENGTH - 1); } else { yyerror("Unallocated set"); } xfree((yyvsp[0].sval)); } break; case 765: #line 4808 "pars.yacc" { } break; case 766: #line 4809 "pars.yacc" {filltype_obs = (yyvsp[0].ival);} break; case 767: #line 4810 "pars.yacc" { } break; case 768: #line 4811 "pars.yacc" { } break; case 769: #line 4813 "pars.yacc" { } break; case 770: #line 4815 "pars.yacc" { g[(yyvsp[-2].ival)].type = GRAPH_XY; g[(yyvsp[-2].ival)].xscale = SCALE_LOG; } break; case 771: #line 4819 "pars.yacc" { g[(yyvsp[-2].ival)].type = GRAPH_XY; g[(yyvsp[-2].ival)].yscale = SCALE_LOG; } break; case 772: #line 4824 "pars.yacc" { g[(yyvsp[-2].ival)].type = GRAPH_XY; g[(yyvsp[-2].ival)].xscale = SCALE_LOG; g[(yyvsp[-2].ival)].yscale = SCALE_LOG; } break; case 773: #line 4830 "pars.yacc" { g[(yyvsp[-2].ival)].type = GRAPH_CHART; g[(yyvsp[-2].ival)].xyflip = FALSE; g[(yyvsp[-2].ival)].stacked = FALSE; } break; case 774: #line 4836 "pars.yacc" { g[(yyvsp[-2].ival)].type = GRAPH_CHART; g[(yyvsp[-2].ival)].xyflip = TRUE; } break; case 775: #line 4841 "pars.yacc" { g[(yyvsp[-2].ival)].type = GRAPH_CHART; g[(yyvsp[-2].ival)].stacked = TRUE; } break; case 776: #line 4846 "pars.yacc" { g[(yyvsp[-2].ival)].type = GRAPH_CHART; g[(yyvsp[-2].ival)].stacked = TRUE; g[(yyvsp[-2].ival)].xyflip = TRUE; } break; case 777: #line 4852 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].w.xg1 = (yyvsp[0].dval); } break; case 778: #line 4859 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].w.xg2 = (yyvsp[0].dval); } break; case 779: #line 4866 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].w.yg1 = (yyvsp[0].dval); } break; case 780: #line 4873 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].w.yg2 = (yyvsp[0].dval); } break; case 781: #line 4881 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].v.xv1 = (yyvsp[0].dval); } break; case 782: #line 4888 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].v.xv2 = (yyvsp[0].dval); } break; case 783: #line 4895 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].v.yv1 = (yyvsp[0].dval); } break; case 784: #line 4902 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].v.yv2 = (yyvsp[0].dval); } break; case 785: #line 4910 "pars.yacc" { } break; case 786: #line 4913 "pars.yacc" { if (!is_valid_gno(whichgraph)) { yyerror("No valid graph selected"); return 1; } g[whichgraph].f.fillpen.pattern = (yyvsp[0].ival); } break; case 787: #line 4921 "pars.yacc" { } break; case 788: #line 4923 "pars.yacc" { } break; case 789: #line 4926 "pars.yacc" { line_asize = 2.0*(yyvsp[0].dval); } break; case 790: #line 4930 "pars.yacc" { } break; case 791: #line 4931 "pars.yacc" { } break; case 792: #line 4932 "pars.yacc" { } break; case 793: #line 4933 "pars.yacc" { } break; case 794: #line 4938 "pars.yacc" { } break; case 795: #line 4939 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->label_op = (yyvsp[0].ival); } break; case 796: #line 4949 "pars.yacc" { switch ((yyvsp[0].ival)){ case 0: g[(yyvsp[-3].trgt)->gno].p[(yyvsp[-3].trgt)->setno].symfillpen.pattern = 0; break; case 1: g[(yyvsp[-3].trgt)->gno].p[(yyvsp[-3].trgt)->setno].symfillpen.pattern = 1; break; case 2: g[(yyvsp[-3].trgt)->gno].p[(yyvsp[-3].trgt)->setno].symfillpen.pattern = 1; g[(yyvsp[-3].trgt)->gno].p[(yyvsp[-3].trgt)->setno].symfillpen.color = getbgcolor(); break; } } break; case 797: #line 4964 "pars.yacc" { g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].symskip = (yyvsp[0].ival); } break; case 798: #line 4968 "pars.yacc" { switch ((yyvsp[0].ival)) { case 0: g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].filltype = SETFILL_NONE; break; case 1: g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].filltype = SETFILL_POLYGON; break; case 2: g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].filltype = SETFILL_BASELINE; g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].baseline_type = BASELINE_TYPE_0; break; case 6: g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].filltype = SETFILL_BASELINE; g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].baseline_type = BASELINE_TYPE_GMIN; break; case 7: g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].filltype = SETFILL_BASELINE; g[(yyvsp[-2].trgt)->gno].p[(yyvsp[-2].trgt)->setno].baseline_type = BASELINE_TYPE_GMAX; break; } } break; case 799: #line 4990 "pars.yacc" { g[(yyvsp[-3].trgt)->gno].p[(yyvsp[-3].trgt)->setno].errbar.ptype = (yyvsp[0].ival); } break; case 800: #line 4998 "pars.yacc" { } break; case 801: #line 4999 "pars.yacc" { g[(yyvsp[-1].trgt)->gno].p[(yyvsp[-1].trgt)->setno].lines = (yyvsp[0].ival); } break; case 802: #line 5002 "pars.yacc" { g[(yyvsp[-1].trgt)->gno].p[(yyvsp[-1].trgt)->setno].linew = (yyvsp[0].dval); } break; case 803: #line 5005 "pars.yacc" { g[(yyvsp[-1].trgt)->gno].p[(yyvsp[-1].trgt)->setno].linepen.color = (yyvsp[0].ival); } break; case 804: #line 5008 "pars.yacc" {filltype_obs = (yyvsp[0].ival);} break; case 805: #line 5009 "pars.yacc" { } break; case 806: #line 5010 "pars.yacc" { g[(yyvsp[-3].trgt)->gno].p[(yyvsp[-3].trgt)->setno].errbar.barsize = (yyvsp[0].dval); } break; case 807: #line 5013 "pars.yacc" { } break; case 808: #line 5018 "pars.yacc" { /* <= xmgr-4.1 */ if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->active = (yyvsp[0].ival); } break; case 809: #line 5026 "pars.yacc" { } break; case 810: #line 5027 "pars.yacc" { } break; case 811: #line 5028 "pars.yacc" { } break; case 812: #line 5029 "pars.yacc" { } break; case 813: #line 5030 "pars.yacc" { } break; case 814: #line 5031 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->t_spec = TICKS_SPEC_NONE; } break; case 815: #line 5038 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } if (g[whichgraph].t[naxis]->t_spec != TICKS_SPEC_BOTH) { g[whichgraph].t[naxis]->t_spec = TICKS_SPEC_MARKS; } } break; case 816: #line 5047 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } if ((yyvsp[0].dval) != 0.0) { g[whichgraph].t[naxis]->nminor = (int) rint(g[whichgraph].t[naxis]->tmajor / (yyvsp[0].dval) - 1); } else { g[whichgraph].t[naxis]->nminor = 0; } } break; case 817: #line 5059 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->props.size = (yyvsp[0].dval); } break; case 818: #line 5066 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tloc[(yyvsp[-2].ival)].wtpos = (yyvsp[0].dval); g[whichgraph].t[naxis]->tloc[(yyvsp[-2].ival)].type = TICK_TYPE_MAJOR; } break; case 819: #line 5074 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->t_op = (yyvsp[0].ival); } break; case 820: #line 5084 "pars.yacc" { } break; case 821: #line 5085 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } if (g[whichgraph].t[naxis]->t_spec == TICKS_SPEC_BOTH) { g[whichgraph].t[naxis]->t_spec = TICKS_SPEC_MARKS; } } break; case 822: #line 5094 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->t_spec = TICKS_SPEC_BOTH; } break; case 823: #line 5101 "pars.yacc" { } break; case 824: #line 5103 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tl_angle = 0; } break; case 825: #line 5110 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tl_angle = 90; } break; case 826: #line 5117 "pars.yacc" { } break; case 827: #line 5118 "pars.yacc" { } break; case 828: #line 5119 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } g[whichgraph].t[naxis]->tl_op = (yyvsp[0].ival); } break; case 829: #line 5126 "pars.yacc" { if (!is_valid_axis(whichgraph, naxis)) { yyerror("No valid axis selected"); return 1; } switch((yyvsp[0].ival)) { case SIGN_NEGATE: g[whichgraph].t[naxis]->tl_formula = copy_string(g[whichgraph].t[naxis]->tl_formula, "-$t"); break; case SIGN_ABSOLUTE: g[whichgraph].t[naxis]->tl_formula = copy_string(g[whichgraph].t[naxis]->tl_formula, "abs($t)"); break; default: g[whichgraph].t[naxis]->tl_formula = copy_string(g[whichgraph].t[naxis]->tl_formula, NULL); break; } } break; case 833: #line 5154 "pars.yacc" { (yyval.ival) = (yyvsp[0].ival); } break; case 834: #line 5159 "pars.yacc" { (yyval.ival) = PLACEMENT_OPPOSITE; } break; case 835: #line 5160 "pars.yacc" { (yyval.ival) = PLACEMENT_NORMAL; } break; case 836: #line 5161 "pars.yacc" { (yyval.ival) = PLACEMENT_NORMAL; } break; case 837: #line 5162 "pars.yacc" { (yyval.ival) = PLACEMENT_OPPOSITE; } break; case 838: #line 5163 "pars.yacc" { (yyval.ival) = PLACEMENT_BOTH; } break; default: break; } /* Line 1126 of yacc.c. */ #line 13123 "y.tab.c" yyvsp -= yylen; yyssp -= yylen; YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ yyn = yyr1[yyn]; yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else yystate = yydefgoto[yyn - YYNTOKENS]; goto yynewstate; /*------------------------------------. | yyerrlab -- here on detecting error | `------------------------------------*/ yyerrlab: /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; #if YYERROR_VERBOSE yyn = yypact[yystate]; if (YYPACT_NINF < yyn && yyn < YYLAST) { int yytype = YYTRANSLATE (yychar); YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); YYSIZE_T yysize = yysize0; YYSIZE_T yysize1; int yysize_overflow = 0; char *yymsg = 0; # define YYERROR_VERBOSE_ARGS_MAXIMUM 5 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; int yyx; #if 0 /* This is so xgettext sees the translatable formats that are constructed on the fly. */ YY_("syntax error, unexpected %s"); YY_("syntax error, unexpected %s, expecting %s"); YY_("syntax error, unexpected %s, expecting %s or %s"); YY_("syntax error, unexpected %s, expecting %s or %s or %s"); YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); #endif char *yyfmt; char const *yyf; static char const yyunexpected[] = "syntax error, unexpected %s"; static char const yyexpecting[] = ", expecting %s"; static char const yyor[] = " or %s"; char yyformat[sizeof yyunexpected + sizeof yyexpecting - 1 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) * (sizeof yyor - 1))]; char const *yyprefix = yyexpecting; /* Start YYX at -YYN if negative to avoid negative indexes in YYCHECK. */ int yyxbegin = yyn < 0 ? -yyn : 0; /* Stay within bounds of both yycheck and yytname. */ int yychecklim = YYLAST - yyn; int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; int yycount = 1; yyarg[0] = yytname[yytype]; yyfmt = yystpcpy (yyformat, yyunexpected); for (yyx = yyxbegin; yyx < yyxend; ++yyx) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) { if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) { yycount = 1; yysize = yysize0; yyformat[sizeof yyunexpected - 1] = '\0'; break; } yyarg[yycount++] = yytname[yyx]; yysize1 = yysize + yytnamerr (0, yytname[yyx]); yysize_overflow |= yysize1 < yysize; yysize = yysize1; yyfmt = yystpcpy (yyfmt, yyprefix); yyprefix = yyor; } yyf = YY_(yyformat); yysize1 = yysize + yystrlen (yyf); yysize_overflow |= yysize1 < yysize; yysize = yysize1; if (!yysize_overflow && yysize <= YYSTACK_ALLOC_MAXIMUM) yymsg = (char *) YYSTACK_ALLOC (yysize); if (yymsg) { /* Avoid sprintf, as that infringes on the user's name space. Don't have undefined behavior even if the translation produced a string with the wrong number of "%s"s. */ char *yyp = yymsg; int yyi = 0; while ((*yyp = *yyf)) { if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) { yyp += yytnamerr (yyp, yyarg[yyi++]); yyf += 2; } else { yyp++; yyf++; } } yyerror (yymsg); YYSTACK_FREE (yymsg); } else { yyerror (YY_("syntax error")); goto yyexhaustedlab; } } else #endif /* YYERROR_VERBOSE */ yyerror (YY_("syntax error")); } if (yyerrstatus == 3) { /* If just tried and failed to reuse look-ahead token after an error, discard it. */ if (yychar <= YYEOF) { /* Return failure if at end of input. */ if (yychar == YYEOF) YYABORT; } else { yydestruct ("Error: discarding", yytoken, &yylval); yychar = YYEMPTY; } } /* Else will try to reuse look-ahead token after shifting the error token. */ goto yyerrlab1; /*---------------------------------------------------. | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: /* Pacify compilers like GCC when the user code never invokes YYERROR and the label yyerrorlab therefore never appears in user code. */ if (0) goto yyerrorlab; yyvsp -= yylen; yyssp -= yylen; yystate = *yyssp; goto yyerrlab1; /*-------------------------------------------------------------. | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) { yyn = yypact[yystate]; if (yyn != YYPACT_NINF) { yyn += YYTERROR; if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) { yyn = yytable[yyn]; if (0 < yyn) break; } } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) YYABORT; yydestruct ("Error: popping", yystos[yystate], yyvsp); YYPOPSTACK; yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } if (yyn == YYFINAL) YYACCEPT; *++yyvsp = yylval; /* Shift the error token. */ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); yystate = yyn; goto yynewstate; /*-------------------------------------. | yyacceptlab -- YYACCEPT comes here. | `-------------------------------------*/ yyacceptlab: yyresult = 0; goto yyreturn; /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ yyabortlab: yyresult = 1; goto yyreturn; #ifndef yyoverflow /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; /* Fall through. */ #endif yyreturn: if (yychar != YYEOF && yychar != YYEMPTY) yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval); while (yyssp != yyss) { yydestruct ("Cleanup: popping", yystos[*yyssp], yyvsp); YYPOPSTACK; } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif return yyresult; } #line 5166 "pars.yacc" /* list of intrinsic functions and keywords */ symtab_entry ikey[] = { {"A0", FITPARM, NULL}, {"A0MAX", FITPMAX, NULL}, {"A0MIN", FITPMIN, NULL}, {"A1", FITPARM, NULL}, {"A1MAX", FITPMAX, NULL}, {"A1MIN", FITPMIN, NULL}, {"A2", FITPARM, NULL}, {"A2MAX", FITPMAX, NULL}, {"A2MIN", FITPMIN, NULL}, {"A3", FITPARM, NULL}, {"A3MAX", FITPMAX, NULL}, {"A3MIN", FITPMIN, NULL}, {"A4", FITPARM, NULL}, {"A4MAX", FITPMAX, NULL}, {"A4MIN", FITPMIN, NULL}, {"A5", FITPARM, NULL}, {"A5MAX", FITPMAX, NULL}, {"A5MIN", FITPMIN, NULL}, {"A6", FITPARM, NULL}, {"A6MAX", FITPMAX, NULL}, {"A6MIN", FITPMIN, NULL}, {"A7", FITPARM, NULL}, {"A7MAX", FITPMAX, NULL}, {"A7MIN", FITPMIN, NULL}, {"A8", FITPARM, NULL}, {"A8MAX", FITPMAX, NULL}, {"A8MIN", FITPMIN, NULL}, {"A9", FITPARM, NULL}, {"A9MAX", FITPMAX, NULL}, {"A9MIN", FITPMIN, NULL}, {"ABOVE", ABOVE, NULL}, {"ABS", FUNC_D, (void *) fabs}, {"ABSOLUTE", ABSOLUTE, NULL}, {"ACOS", FUNC_D, (void *) acos}, {"ACOSH", FUNC_D, (void *) acosh}, {"AI", FUNC_D, (void *) ai_wrap}, {"ALIAS", ALIAS, NULL}, {"ALT", ALT, NULL}, {"ALTXAXIS", ALTXAXIS, NULL}, {"ALTYAXIS", ALTYAXIS, NULL}, {"AND", AND, NULL}, {"ANGLE", ANGLE, NULL}, {"ANTIALIASING", ANTIALIASING, NULL}, {"APPEND", APPEND, NULL}, {"ARRANGE", ARRANGE, NULL}, {"ARROW", ARROW, NULL}, {"ASCENDING", ASCENDING, NULL}, {"ASIN", FUNC_D, (void *) asin}, {"ASINH", FUNC_D, (void *) asinh}, {"ASPLINE", ASPLINE, NULL}, {"ATAN", FUNC_D, (void *) atan}, {"ATAN2", FUNC_DD, (void *) atan2}, {"ATANH", FUNC_D, (void *) atanh}, {"AUTO", AUTO, NULL}, {"AUTOSCALE", AUTOSCALE, NULL}, {"AUTOTICKS", AUTOTICKS, NULL}, {"AVALUE", AVALUE, NULL}, {"AVG", AVG, NULL}, {"BACKGROUND", BACKGROUND, NULL}, {"BAR", BAR, NULL}, {"BARDY", BARDY, NULL}, {"BARDYDY", BARDYDY, NULL}, {"BASELINE", BASELINE, NULL}, {"BATCH", BATCH, NULL}, {"BEGIN", BEGIN, NULL}, {"BELOW", BELOW, NULL}, {"BETA", FUNC_DD, (void *) beta}, {"BETWEEN", BETWEEN, NULL}, {"BI", FUNC_D, (void *) bi_wrap}, {"BLACKMAN", BLACKMAN, NULL}, {"BLOCK", BLOCK, NULL}, {"BOTH", BOTH, NULL}, {"BOTTOM", BOTTOM, NULL}, {"BOX", BOX, NULL}, {"CD", CD, NULL}, {"CEIL", FUNC_D, (void *) ceil}, {"CENTER", CENTER, NULL}, {"CHAR", CHAR, NULL}, {"CHART", CHART, NULL}, {"CHDTR", FUNC_DD, (void *) chdtr}, {"CHDTRC", FUNC_DD, (void *) chdtrc}, {"CHDTRI", FUNC_DD, (void *) chdtri}, {"CHI", FUNC_D, (void *) chi_wrap}, {"CI", FUNC_D, (void *) ci_wrap}, {"CLEAR", CLEAR, NULL}, {"CLICK", CLICK, NULL}, {"CLIP", CLIP, NULL}, {"CLOSE", CLOSE, NULL}, {"COEFFICIENTS", COEFFICIENTS, NULL}, {"COLOR", COLOR, NULL}, {"COMMENT", COMMENT, NULL}, {"COMPLEX", COMPLEX, NULL}, {"COMPUTING", COMPUTING, NULL}, {"CONST", KEY_CONST, NULL}, {"CONSTRAINTS", CONSTRAINTS, NULL}, {"COPY", COPY, NULL}, {"COS", FUNC_D, (void *) cos}, {"COSH", FUNC_D, (void *) cosh}, {"CYCLE", CYCLE, NULL}, {"DATE", DATE, NULL}, {"DAWSN", FUNC_D, (void *) dawsn}, {"DAYMONTH", DAYMONTH, NULL}, {"DAYOFWEEKL", DAYOFWEEKL, NULL}, {"DAYOFWEEKS", DAYOFWEEKS, NULL}, {"DAYOFYEAR", DAYOFYEAR, NULL}, {"DDMMYY", DDMMYY, NULL}, {"DECIMAL", DECIMAL, NULL}, {"DEF", DEF, NULL}, {"DEFAULT", DEFAULT, NULL}, {"DEFINE", DEFINE, NULL}, {"DEG", UCONSTANT, (void *) deg_uconst}, {"DEGREESLAT", DEGREESLAT, NULL}, {"DEGREESLON", DEGREESLON, NULL}, {"DEGREESMMLAT", DEGREESMMLAT, NULL}, {"DEGREESMMLON", DEGREESMMLON, NULL}, {"DEGREESMMSSLAT", DEGREESMMSSLAT, NULL}, {"DEGREESMMSSLON", DEGREESMMSSLON, NULL}, {"DESCENDING", DESCENDING, NULL}, {"DESCRIPTION", DESCRIPTION, NULL}, {"DEVICE", DEVICE, NULL}, {"DFT", DFT, NULL}, {"DIFF", DIFFERENCE, NULL}, {"DIFFERENCE", DIFFERENCE, NULL}, {"DISK", DISK, NULL}, {"DOWN", DOWN, NULL}, {"DPI", DPI, NULL}, {"DROP", DROP, NULL}, {"DROPLINE", DROPLINE, NULL}, {"ECHO", ECHO, NULL}, {"ELLIE", FUNC_DD, (void *) ellie}, {"ELLIK", FUNC_DD, (void *) ellik}, {"ELLIPSE", ELLIPSE, NULL}, {"ELLPE", FUNC_D, (void *) ellpe_wrap}, {"ELLPK", FUNC_D, (void *) ellpk_wrap}, {"ENGINEERING", ENGINEERING, NULL}, {"EQ", EQ, NULL}, {"ER", ERRORBAR, NULL}, {"ERF", FUNC_D, (void *) erf}, {"ERFC", FUNC_D, (void *) erfc}, {"ERRORBAR", ERRORBAR, NULL}, {"EXIT", EXIT, NULL}, {"EXP", FUNC_D, (void *) exp}, {"EXPN", FUNC_ND, (void *) expn}, {"EXPONENTIAL", EXPONENTIAL, NULL}, {"FAC", FUNC_I, (void *) fac}, {"FALSE", OFF, NULL}, {"FDTR", FUNC_NND, (void *) fdtr}, {"FDTRC", FUNC_NND, (void *) fdtrc}, {"FDTRI", FUNC_NND, (void *) fdtri}, {"FFT", FFT, NULL}, {"FILE", FILEP, NULL}, {"FILL", FILL, NULL}, {"FIT", FIT, NULL}, {"FIXED", FIXED, NULL}, {"FIXEDPOINT", FIXEDPOINT, NULL}, {"FLOOR", FUNC_D, (void *) floor}, {"FLUSH", FLUSH, NULL}, {"FOCUS", FOCUS, NULL}, {"FOLLOWS", FOLLOWS, NULL}, {"FONT", FONTP, NULL}, {"FORCE", FORCE, NULL}, {"FORMAT", FORMAT, NULL}, {"FORMULA", FORMULA, NULL}, {"FRAME", FRAMEP, NULL}, {"FREE", FREE, NULL}, {"FREQUENCY", FREQUENCY, NULL}, {"FRESNLC", FUNC_D, (void *) fresnlc_wrap}, {"FRESNLS", FUNC_D, (void *) fresnls_wrap}, {"FROM", FROM, NULL}, {"F_OF_D", KEY_FUNC_D, NULL}, {"F_OF_DD", KEY_FUNC_DD, NULL}, {"F_OF_I", KEY_FUNC_I, NULL}, {"F_OF_ND", KEY_FUNC_ND, NULL}, {"F_OF_NN", KEY_FUNC_NN, NULL}, {"F_OF_NND", KEY_FUNC_NND, NULL}, {"F_OF_PPD", KEY_FUNC_PPD, NULL}, {"F_OF_PPPD", KEY_FUNC_PPPD, NULL}, {"F_OF_PPPPD", KEY_FUNC_PPPPD, NULL}, {"F_OF_PPPPPD", KEY_FUNC_PPPPPD, NULL}, {"GAMMA", FUNC_D, (void *) true_gamma}, {"GDTR", FUNC_PPD, (void *) gdtr}, {"GDTRC", FUNC_PPD, (void *) gdtrc}, {"GE", GE, NULL}, {"GENERAL", GENERAL, NULL}, {"GETP", GETP, NULL}, {"GRAPH", GRAPH, NULL}, {"GRID", GRID, NULL}, {"GT", GT, NULL}, {"HAMMING", HAMMING, NULL}, {"HANNING", HANNING, NULL}, {"HARDCOPY", HARDCOPY, NULL}, {"HBAR", HBAR, NULL}, {"HELP", HELP, NULL}, {"HGAP", HGAP, NULL}, {"HIDDEN", HIDDEN, NULL}, {"HISTOGRAM", HISTOGRAM, NULL}, {"HMS", HMS, NULL}, {"HORIZI", HORIZI, NULL}, {"HORIZO", HORIZO, NULL}, {"HORIZONTAL", HORIZONTAL, NULL}, {"HYP2F1", FUNC_PPPD, (void *) hyp2f1}, {"HYPERG", FUNC_PPD, (void *) hyperg}, {"HYPOT", FUNC_DD, (void *) hypot}, {"I0E", FUNC_D, (void *) i0e}, {"I1E", FUNC_D, (void *) i1e}, {"ID", ID, NULL}, {"IFILTER", IFILTER, NULL}, {"IGAM", FUNC_DD, (void *) igam}, {"IGAMC", FUNC_DD, (void *) igamc}, {"IGAMI", FUNC_DD, (void *) igami}, {"IMAX", IMAX, NULL}, {"IMIN", IMIN, NULL}, {"IN", IN, NULL}, {"INCBET", FUNC_PPD, (void *) incbet}, {"INCBI", FUNC_PPD, (void *) incbi}, {"INCREMENT", INCREMENT, NULL}, {"INDEX", INDEX, NULL}, {"INOUT", INOUT, NULL}, {"INT", INT, NULL}, {"INTEGRATE", INTEGRATE, NULL}, {"INTERPOLATE", INTERPOLATE, NULL}, {"INVDFT", INVDFT, NULL}, {"INVERT", INVERT, NULL}, {"INVFFT", INVFFT, NULL}, {"IRAND", FUNC_I, (void *) irand_wrap}, {"IV", FUNC_DD, (void *) iv_wrap}, {"JUST", JUST, NULL}, {"JV", FUNC_DD, (void *) jv_wrap}, {"K0E", FUNC_D, (void *) k0e}, {"K1E", FUNC_D, (void *) k1e}, {"KILL", KILL, NULL}, {"KN", FUNC_ND, (void *) kn_wrap}, {"LABEL", LABEL, NULL}, {"LANDSCAPE", LANDSCAPE, NULL}, {"LAYOUT", LAYOUT, NULL}, {"LBETA", FUNC_DD, (void *) lbeta}, {"LE", LE, NULL}, {"LEFT", LEFT, NULL}, {"LEGEND", LEGEND, NULL}, {"LENGTH", LENGTH, NULL}, {"LGAMMA", FUNC_D, (void *) lgamma}, {"LINE", LINE, NULL}, {"LINEAR", LINEAR, NULL}, {"LINESTYLE", LINESTYLE, NULL}, {"LINEWIDTH", LINEWIDTH, NULL}, {"LINK", LINK, NULL}, {"LN", FUNC_D, (void *) log}, {"LOAD", LOAD, NULL}, {"LOCTYPE", LOCTYPE, NULL}, {"LOG", LOG, NULL}, {"LOG10", FUNC_D, (void *) log10}, {"LOG2", FUNC_D, (void *) log2}, {"LOGARITHMIC", LOGARITHMIC, NULL}, {"LOGX", LOGX, NULL}, {"LOGXY", LOGXY, NULL}, {"LOGY", LOGY, NULL}, {"LOGIT", LOGIT, NULL}, {"LT", LT, NULL}, {"MAGIC", MAGIC, NULL}, {"MAGNITUDE", MAGNITUDE, NULL}, {"MAJOR", MAJOR, NULL}, {"MAP", MAP, NULL}, {"MAX", MAXP, NULL}, {"MAXOF", FUNC_DD, (void *) max_wrap}, {"MESH", MESH, NULL}, {"MIN", MINP, NULL}, {"MINOF", FUNC_DD, (void *) min_wrap}, {"MINOR", MINOR, NULL}, {"MMDD", MMDD, NULL}, {"MMDDHMS", MMDDHMS, NULL}, {"MMDDYY", MMDDYY, NULL}, {"MMDDYYHMS", MMDDYYHMS, NULL}, {"MMSSLAT", MMSSLAT, NULL}, {"MMSSLON", MMSSLON, NULL}, {"MMYY", MMYY, NULL}, {"MOD", FUNC_DD, (void *) fmod}, {"MONTHDAY", MONTHDAY, NULL}, {"MONTHL", MONTHL, NULL}, {"MONTHS", MONTHS, NULL}, {"MONTHSY", MONTHSY, NULL}, {"MOVE", MOVE, NULL}, {"NDTR", FUNC_D, (void *) ndtr}, {"NDTRI", FUNC_D, (void *) ndtri}, {"NE", NE, NULL}, {"NEGATE", NEGATE, NULL}, {"NEW", NEW, NULL}, {"NONE", NONE, NULL}, {"NONLFIT", NONLFIT, NULL}, {"NORM", FUNC_D, (void *) fx}, {"NORMAL", NORMAL, NULL}, {"NOT", NOT, NULL}, {"NXY", NXY, NULL}, {"OFF", OFF, NULL}, {"OFFSET", OFFSET, NULL}, {"OFFSETX", OFFSETX, NULL}, {"OFFSETY", OFFSETY, NULL}, {"OFILTER", OFILTER, NULL}, {"ON", ON, NULL}, {"ONREAD", ONREAD, NULL}, {"OP", OP, NULL}, {"OPPOSITE", OPPOSITE, NULL}, {"OR", OR, NULL}, {"OUT", OUT, NULL}, {"PAGE", PAGE, NULL}, {"PARA", PARA, NULL}, {"PARAMETERS", PARAMETERS, NULL}, {"PARZEN", PARZEN, NULL}, {"PATTERN", PATTERN, NULL}, {"PDTR", FUNC_ND, (void *) pdtr}, {"PDTRC", FUNC_ND, (void *) pdtrc}, {"PDTRI", FUNC_ND, (void *) pdtri}, {"PERIOD", PERIOD, NULL}, {"PERP", PERP, NULL}, {"PHASE", PHASE, NULL}, {"PI", CONSTANT, (void *) pi_const}, {"PIE", PIE, NULL}, {"PIPE", PIPE, NULL}, {"PLACE", PLACE, NULL}, {"POINT", POINT, NULL}, {"POLAR", POLAR, NULL}, {"POLYI", POLYI, NULL}, {"POLYO", POLYO, NULL}, {"POP", POP, NULL}, {"PORTRAIT", PORTRAIT, NULL}, {"POWER", POWER, NULL}, {"PREC", PREC, NULL}, {"PREPEND", PREPEND, NULL}, {"PRINT", PRINT, NULL}, {"PS", PS, NULL}, {"PSI", FUNC_D, (void *) psi}, {"PUSH", PUSH, NULL}, {"PUTP", PUTP, NULL}, {"RAD", UCONSTANT, (void *) rad_uconst}, {"RAND", RAND, NULL}, {"READ", READ, NULL}, {"REAL", REAL, NULL}, {"RECIPROCAL", RECIPROCAL, NULL}, {"REDRAW", REDRAW, NULL}, {"REFERENCE", REFERENCE, NULL}, {"REGRESS", REGRESS, NULL}, {"RESIZE", RESIZE, NULL}, {"RESTRICT", RESTRICT, NULL}, {"REVERSE", REVERSE, NULL}, {"RGAMMA", FUNC_D, (void *) rgamma}, {"RIGHT", RIGHT, NULL}, {"RINT", FUNC_D, (void *) rint}, {"RISER", RISER, NULL}, {"RNORM", FUNC_DD, (void *) rnorm}, {"ROT", ROT, NULL}, {"ROUNDED", ROUNDED, NULL}, {"RSUM", RSUM, NULL}, {"RULE", RULE, NULL}, {"RUNAVG", RUNAVG, NULL}, {"RUNMAX", RUNMAX, NULL}, {"RUNMED", RUNMED, NULL}, {"RUNMIN", RUNMIN, NULL}, {"RUNSTD", RUNSTD, NULL}, {"SAVEALL", SAVEALL, NULL}, {"SCALE", SCALE, NULL}, {"SCIENTIFIC", SCIENTIFIC, NULL}, {"SCROLL", SCROLL, NULL}, {"SD", SD, NULL}, {"SET", SET, NULL}, {"SFORMAT", SFORMAT, NULL}, {"SGN", FUNC_D, (void *) sign_wrap}, {"SHI", FUNC_D, (void *) shi_wrap}, {"SI", FUNC_D, (void *) si_wrap}, {"SIGN", SIGN, NULL}, {"SIN", FUNC_D, (void *) sin}, {"SINH", FUNC_D, (void *) sinh}, {"SIZE", SIZE, NULL}, {"SKIP", SKIP, NULL}, {"SLEEP", SLEEP, NULL}, {"SMITH", SMITH, NULL}, {"SORT", SORT, NULL}, {"SOURCE", SOURCE, NULL}, {"SPEC", SPEC, NULL}, {"SPENCE", FUNC_D, (void *) spence}, {"SPLINE", SPLINE, NULL}, {"SPLIT", SPLIT, NULL}, {"SQR", FUNC_D, (void *) sqr_wrap}, {"SQRT", FUNC_D, (void *) sqrt}, {"STACK", STACK, NULL}, {"STACKED", STACKED, NULL}, {"STACKEDBAR", STACKEDBAR, NULL}, {"STACKEDHBAR", STACKEDHBAR, NULL}, {"STAGGER", STAGGER, NULL}, {"START", START, NULL}, {"STDTR", FUNC_ND, (void *) stdtr}, {"STDTRI", FUNC_ND, (void *) stdtri}, {"STOP", STOP, NULL}, {"STRING", STRING, NULL}, {"STRUVE", FUNC_DD, (void *) struve}, {"SUBTITLE", SUBTITLE, NULL}, {"SUM", SUM, NULL}, {"SWAP", SWAP, NULL}, {"SYMBOL", SYMBOL, NULL}, {"TAN", FUNC_D, (void *) tan}, {"TANH", FUNC_D, (void *) tanh}, {"TARGET", TARGET, NULL}, {"TICK", TICKP, NULL}, {"TICKLABEL", TICKLABEL, NULL}, {"TICKS", TICKSP, NULL}, {"TIMER", TIMER, NULL}, {"TIMESTAMP", TIMESTAMP, NULL}, {"TITLE", TITLE, NULL}, {"TO", TO, NULL}, {"TOP", TOP, NULL}, {"TRIANGULAR", TRIANGULAR, NULL}, {"TRUE", ON, NULL}, {"TYPE", TYPE, NULL}, {"UNIT", KEY_UNIT, NULL}, {"UP", UP, NULL}, {"UPDATEALL", UPDATEALL, NULL}, {"USE", USE, NULL}, {"VERSION", VERSION, NULL}, {"VERTI", VERTI, NULL}, {"VERTICAL", VERTICAL, NULL}, {"VERTO", VERTO, NULL}, {"VGAP", VGAP, NULL}, {"VIEW", VIEW, NULL}, {"VX1", VX1, NULL}, {"VX2", VX2, NULL}, {"VXMAX", VXMAX, NULL}, {"VY1", VY1, NULL}, {"VY2", VY2, NULL}, {"VYMAX", VYMAX, NULL}, {"WELCH", WELCH, NULL}, {"WITH", WITH, NULL}, {"WORLD", WORLD, NULL}, {"WRAP", WRAP, NULL}, {"WRITE", WRITE, NULL}, {"WX1", WX1, NULL}, {"WX2", WX2, NULL}, {"WY1", WY1, NULL}, {"WY2", WY2, NULL}, {"X", X_TOK, NULL}, {"X0", X0, NULL}, {"X1", X1, NULL}, {"XAXES", XAXES, NULL}, {"XAXIS", XAXIS, NULL}, {"XCOR", XCOR, NULL}, {"XMAX", XMAX, NULL}, {"XMIN", XMIN, NULL}, {"XY", XY, NULL}, {"XYAXES", XYAXES, NULL}, {"XYBOXPLOT", XYBOXPLOT, NULL}, {"XYCOLOR", XYCOLOR, NULL}, {"XYCOLPAT", XYCOLPAT, NULL}, {"XYDX", XYDX, NULL}, {"XYDXDX", XYDXDX, NULL}, {"XYDXDXDYDY", XYDXDXDYDY, NULL}, {"XYDXDY", XYDXDY, NULL}, {"XYDY", XYDY, NULL}, {"XYDYDY", XYDYDY, NULL}, {"XYHILO", XYHILO, NULL}, {"XYR", XYR, NULL}, {"XYSIZE", XYSIZE, NULL}, {"XYSTRING", XYSTRING, NULL}, {"XYVMAP", XYVMAP, NULL}, {"XYZ", XYZ, NULL}, {"Y", Y_TOK, NULL}, {"Y0", Y0, NULL}, {"Y1", Y1, NULL}, {"Y2", Y2, NULL}, {"Y3", Y3, NULL}, {"Y4", Y4, NULL}, {"YAXES", YAXES, NULL}, {"YAXIS", YAXIS, NULL}, {"YEAR", YEAR, NULL}, {"YMAX", YMAX, NULL}, {"YMIN", YMIN, NULL}, {"YV", FUNC_DD, (void *) yv_wrap}, {"YYMMDD", YYMMDD, NULL}, {"YYMMDDHMS", YYMMDDHMS, NULL}, {"ZERO", ZERO, NULL}, {"ZEROXAXIS", ALTXAXIS, NULL}, {"ZEROYAXIS", ALTYAXIS, NULL}, {"ZETA", FUNC_DD, (void *) zeta}, {"ZETAC", FUNC_D, (void *) zetac}, {"ZNORM", ZNORM, NULL} }; static int maxfunc = sizeof(ikey) / sizeof(symtab_entry); int get_parser_gno(void) { return whichgraph; } int set_parser_gno(int gno) { if (is_valid_gno(gno) == TRUE) { whichgraph = gno; return RETURN_SUCCESS; } else { return RETURN_FAILURE; } } int get_parser_setno(void) { return whichset; } int set_parser_setno(int gno, int setno) { if (is_valid_setno(gno, setno) == TRUE) { whichgraph = gno; whichset = setno; /* those will usually be overridden except when evaluating a _standalone_ vexpr */ vasgn_gno = gno; vasgn_setno = setno; return RETURN_SUCCESS; } else { return RETURN_FAILURE; } } void realloc_vrbl(grarr *vrbl, int len) { double *a; int i, oldlen; if (vrbl->type != GRARR_VEC) { errmsg("Internal error"); return; } oldlen = vrbl->length; if (oldlen == len) { return; } else { a = xrealloc(vrbl->data, len*SIZEOF_DOUBLE); if (a != NULL || len == 0) { vrbl->data = a; vrbl->length = len; for (i = oldlen; i < len; i++) { vrbl->data[i] = 0.0; } } else { errmsg("Malloc failed in realloc_vrbl()"); } } } #define PARSER_TYPE_VOID 0 #define PARSER_TYPE_EXPR 1 #define PARSER_TYPE_VEXPR 2 static int parser(char *s, int type) { char *seekpos; int i; if (s == NULL || s[0] == '\0') { if (type == PARSER_TYPE_VOID) { /* don't consider an empty string as error for generic parser */ return RETURN_SUCCESS; } else { return RETURN_FAILURE; } } strncpy(f_string, s, MAX_PARS_STRING_LENGTH - 2); f_string[MAX_PARS_STRING_LENGTH - 2] = '\0'; strcat(f_string, " "); seekpos = f_string; while ((seekpos - f_string < MAX_PARS_STRING_LENGTH - 1) && (*seekpos == ' ' || *seekpos == '\t')) { seekpos++; } if (*seekpos == '\n' || *seekpos == '#') { if (type == PARSER_TYPE_VOID) { /* don't consider an empty string as error for generic parser */ return RETURN_SUCCESS; } else { return RETURN_FAILURE; } } lowtoupper(f_string); pos = 0; interr = 0; expr_parsed = FALSE; vexpr_parsed = FALSE; yyparse(); /* free temp. arrays; for a vector expression keep the last one * (which is none but v_result), given there have been no errors * and it's what we've been asked for */ if (vexpr_parsed && !interr && type == PARSER_TYPE_VEXPR) { for (i = 0; i < fcnt - 1; i++) { free_tmpvrbl(&(freelist[i])); } } else { for (i = 0; i < fcnt; i++) { free_tmpvrbl(&(freelist[i])); } } fcnt = 0; tgtn = 0; if ((type == PARSER_TYPE_VEXPR && !vexpr_parsed) || (type == PARSER_TYPE_EXPR && !expr_parsed)) { return RETURN_FAILURE; } else { return (interr ? RETURN_FAILURE:RETURN_SUCCESS); } } int s_scanner(char *s, double *res) { int retval = parser(s, PARSER_TYPE_EXPR); *res = s_result; return retval; } int v_scanner(char *s, int *reslen, double **vres) { int retval = parser(s, PARSER_TYPE_VEXPR); if (retval != RETURN_SUCCESS) { return RETURN_FAILURE; } else { *reslen = v_result->length; if (v_result->type == GRARR_TMP) { *vres = v_result->data; v_result->length = 0; v_result->data = NULL; } else { *vres = copy_data_column(v_result->data, v_result->length); } return RETURN_SUCCESS; } } int scanner(char *s) { int retval = parser(s, PARSER_TYPE_VOID); if (retval != RETURN_SUCCESS) { return RETURN_FAILURE; } if (gotparams) { gotparams = FALSE; getparms(paramfile); } if (gotread) { gotread = FALSE; getdata(whichgraph, readfile, cursource, LOAD_SINGLE); } if (gotnlfit) { gotnlfit = FALSE; do_nonlfit(nlfit_gno, nlfit_setno, nlfit_warray, NULL, nlfit_nsteps); XCFREE(nlfit_warray); } return retval; } static void free_tmpvrbl(grarr *vrbl) { if (vrbl->type == GRARR_TMP) { vrbl->length = 0; XCFREE(vrbl->data); } } static void copy_vrbl(grarr *dest, grarr *src) { dest->type = src->type; dest->data = xmalloc(src->length*SIZEOF_DOUBLE); if (dest->data == NULL) { errmsg("Malloc failed in copy_vrbl()"); } else { memcpy(dest->data, src->data, src->length*SIZEOF_DOUBLE); dest->length = src->length; } } grarr *get_parser_arr_by_name(char * const name) { int position; char *s; s = copy_string(NULL, name); lowtoupper(s); position = findf(key, s); xfree(s); if (position >= 0) { if (key[position].type == KEY_VEC) { return (grarr *) key[position].data; } } return NULL; } grarr *define_parser_arr(char * const name) { if (get_parser_arr_by_name(name) == NULL) { symtab_entry tmpkey; grarr *var; var = xmalloc(sizeof(grarr)); var->type = GRARR_VEC; var->length = 0; var->data = NULL; tmpkey.s = name; tmpkey.type = KEY_VEC; tmpkey.data = (void *) var; if (addto_symtab(tmpkey) == RETURN_SUCCESS) { return var; } else { return NULL; } } else { return NULL; } } int undefine_parser_var(void *ptr) { int i; for (i = 0; i < maxfunc; i++) { if (key[i].data == ptr) { xfree(key[i].s); maxfunc--; if (i != maxfunc) { memmove(&(key[i]), &(key[i + 1]), (maxfunc - i)*sizeof(symtab_entry)); } key = xrealloc(key, maxfunc*sizeof(symtab_entry)); return RETURN_SUCCESS; } } return RETURN_FAILURE; } static int find_set_bydata(double *data, target *tgt) { int gno, setno, ncol; if (data == NULL) { return RETURN_FAILURE; } else { for (gno = 0; gno < number_of_graphs(); gno++) { for (setno = 0; setno < number_of_sets(gno); setno++) { for (ncol = 0; ncol < MAX_SET_COLS; ncol++) { if (getcol(gno, setno, ncol) == data) { tgt->gno = gno; tgt->setno = setno; return RETURN_SUCCESS; } } } } } return RETURN_FAILURE; } static int findf(symtab_entry *keytable, char *s) { int low, high, mid; low = 0; high = maxfunc - 1; while (low <= high) { mid = (low + high) / 2; if (strcmp(s, keytable[mid].s) < 0) { high = mid - 1; } else { if (strcmp(s, keytable[mid].s) > 0) { low = mid + 1; } else { return (mid); } } } return (-1); } static int compare_keys (const void *a, const void *b) { return (int) strcmp (((const symtab_entry*)a)->s, ((const symtab_entry*)b)->s); } /* add new entry to the symbol table */ int addto_symtab(symtab_entry newkey) { int position; char *s; s = copy_string(NULL, newkey.s); lowtoupper(s); if ((position = findf(key, s)) < 0) { if ((key = (symtab_entry *) xrealloc(key, (maxfunc + 1)*sizeof(symtab_entry))) != NULL) { key[maxfunc].type = newkey.type; key[maxfunc].data = newkey.data; key[maxfunc].s = s; maxfunc++; qsort(key, maxfunc, sizeof(symtab_entry), compare_keys); return RETURN_SUCCESS; } else { xfree(s); return RETURN_FAILURE; } } else if (alias_force == TRUE) { /* already exists but alias_force enabled */ key[position].type = newkey.type; key[position].data = newkey.data; return RETURN_SUCCESS; } else { xfree(s); return RETURN_FAILURE; } } /* initialize symbol table */ void init_symtab(void) { int i; if ((key = (symtab_entry *) xmalloc(maxfunc*sizeof(symtab_entry))) != NULL) { memcpy (key, ikey, maxfunc*sizeof(symtab_entry)); for (i = 0; i < maxfunc; i++) { key[i].s = xmalloc(strlen(ikey[i].s) + 1); strcpy(key[i].s, ikey[i].s); } qsort(key, maxfunc, sizeof(symtab_entry), compare_keys); return; } else { key = ikey; return; } } static int getcharstr(void) { if (pos >= strlen(f_string)) return EOF; return (f_string[pos++]); } static void ungetchstr(void) { if (pos > 0) pos--; } static int yylex(void) { int c, i; int found; char sbuf[MAX_PARS_STRING_LENGTH + 40]; while ((c = getcharstr()) == ' ' || c == '\t'); if (c == EOF) { return (0); } if (c == '"') { i = 0; while ((c = getcharstr()) != '"' && c != EOF) { if (c == '\\') { int ctmp; ctmp = getcharstr(); if (ctmp != '"') { ungetchstr(); } else { c = ctmp; } } sbuf[i] = c; i++; } if (c == EOF) { yyerror("Nonterminating string"); return 0; } sbuf[i] = '\0'; yylval.sval = copy_string(NULL, sbuf); return CHRSTR; } if (c == '.' || isdigit(c)) { double d; int i, gotdot = 0; i = 0; while (c == '.' || isdigit(c)) { if (c == '.') { if (gotdot) { yyerror("Reading number, too many dots"); return 0; } else { gotdot = 1; } } sbuf[i++] = c; c = getcharstr(); } if (c == 'E' || c == 'e') { sbuf[i++] = c; c = getcharstr(); if (c == '+' || c == '-') { sbuf[i++] = c; c = getcharstr(); } while (isdigit(c)) { sbuf[i++] = c; c = getcharstr(); } } if (gotdot && i == 1) { ungetchstr(); return '.'; } sbuf[i] = '\0'; ungetchstr(); sscanf(sbuf, "%lf", &d); yylval.dval = d; return NUMBER; } /* graphs, sets, regions resp. */ if (c == 'G' || c == 'S' || c == 'R') { int i = 0, ctmp = c, gn, sn, rn; c = getcharstr(); while (isdigit(c) || c == '$' || c == '_') { sbuf[i++] = c; c = getcharstr(); } if (i == 0) { c = ctmp; ungetchstr(); } else { ungetchstr(); if (ctmp == 'G') { sbuf[i] = '\0'; if (i == 1 && sbuf[0] == '_') { gn = get_recent_gno(); } else if (i == 1 && sbuf[0] == '$') { gn = whichgraph; } else { gn = atoi(sbuf); } if (is_valid_gno(gn) || graph_allocate(gn) == RETURN_SUCCESS) { yylval.ival = gn; return GRAPHNO; } } else if (ctmp == 'S') { sbuf[i] = '\0'; if (i == 1 && sbuf[0] == '_') { sn = get_recent_setno(); } else if (i == 1 && sbuf[0] == '$') { sn = whichset; } else { sn = atoi(sbuf); } yylval.ival = sn; return SETNUM; } else if (ctmp == 'R') { sbuf[i] = '\0'; rn = atoi(sbuf); if (rn >= 0 && rn < MAXREGION) { yylval.ival = rn; return REGNUM; } else { errmsg("Invalid region number"); } } } } if (isalpha(c) || c == '$') { char *p = sbuf; do { *p++ = c; } while ((c = getcharstr()) != EOF && (isalpha(c) || isdigit(c) || c == '_' || c == '$')); ungetchstr(); *p = '\0'; #ifdef DEBUG if (get_debuglevel() == 2) { printf("->%s<-\n", sbuf); } #endif found = -1; if ((found = findf(key, sbuf)) >= 0) { if (key[found].type == FITPARM) { int index = sbuf[1] - '0'; yylval.ival = index; return FITPARM; } else if (key[found].type == FITPMAX) { int index = sbuf[1] - '0'; yylval.ival = index; return FITPMAX; } else if (key[found].type == FITPMIN) { int index = sbuf[1] - '0'; yylval.ival = index; return FITPMIN; } else if (key[found].type == KEY_VAR) { yylval.dptr = (double *) key[found].data; return VAR_D; } else if (key[found].type == KEY_VEC) { yylval.vrbl = (grarr *) key[found].data; return VEC_D; } else if (key[found].type == FUNC_I) { yylval.ival = found; return FUNC_I; } else if (key[found].type == CONSTANT) { yylval.ival = found; return CONSTANT; } else if (key[found].type == UCONSTANT) { yylval.ival = found; return UCONSTANT; } else if (key[found].type == FUNC_D) { yylval.ival = found; return FUNC_D; } else if (key[found].type == FUNC_ND) { yylval.ival = found; return FUNC_ND; } else if (key[found].type == FUNC_DD) { yylval.ival = found; return FUNC_DD; } else if (key[found].type == FUNC_NND) { yylval.ival = found; return FUNC_NND; } else if (key[found].type == FUNC_PPD) { yylval.ival = found; return FUNC_PPD; } else if (key[found].type == FUNC_PPPD) { yylval.ival = found; return FUNC_PPPD; } else if (key[found].type == FUNC_PPPPD) { yylval.ival = found; return FUNC_PPPPD; } else if (key[found].type == FUNC_PPPPPD) { yylval.ival = found; return FUNC_PPPPPD; } else { yylval.ival = key[found].type; return key[found].type; } } else { yylval.sval = copy_string(NULL, sbuf); return NEW_TOKEN; } } switch (c) { case '>': return follow('=', GE, GT); case '<': return follow('=', LE, LT); case '=': return follow('=', EQ, '='); case '!': return follow('=', NE, NOT); case '|': return follow('|', OR, '|'); case '&': return follow('&', AND, '&'); case '\n': return '\n'; default: return c; } } static int follow(int expect, int ifyes, int ifno) { int c = getcharstr(); if (c == expect) { return ifyes; } ungetchstr(); return ifno; } static void yyerror(char *s) { char *buf; buf = copy_string(NULL, s); buf = concat_strings(buf, ": "); buf = concat_strings(buf, f_string); errmsg(buf); xfree(buf); interr = 1; }