ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 2252
Committed: Sun Jun 16 13:29:13 2013 UTC (12 years, 2 months ago) by michael
Content type: text/x-csrc
File size: 225762 byte(s)
Log Message:
- conf_parser.y: don't attempt to copy ciphers if there aren't any

File Contents

# Content
1 /* A Bison parser, made by GNU Bison 2.7.12-4996. */
2
3 /* Bison implementation for Yacc-like parsers in C
4
5 Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
6
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19
20 /* As a special exception, you may create a larger work that contains
21 part or all of the Bison parser skeleton and distribute that work
22 under terms of your choice, so long as that work isn't itself a
23 parser generator using the skeleton or a modified version thereof
24 as a parser skeleton. Alternatively, if you modify or redistribute
25 the parser skeleton itself, you may (at your option) remove this
26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.
29
30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
32
33 /* C LALR(1) parser skeleton written by Richard Stallman, by
34 simplifying the original so-called "semantic" parser. */
35
36 /* All symbols defined below should begin with yy or YY, to avoid
37 infringing on user name space. This should be done even for local
38 variables, as they might otherwise be expanded by user macros.
39 There are some unavoidable exceptions within include files to
40 define necessary library symbols; they are noted "INFRINGES ON
41 USER NAME SPACE" below. */
42
43 /* Identify Bison output. */
44 #define YYBISON 1
45
46 /* Bison version. */
47 #define YYBISON_VERSION "2.7.12-4996"
48
49 /* Skeleton name. */
50 #define YYSKELETON_NAME "yacc.c"
51
52 /* Pure parsers. */
53 #define YYPURE 0
54
55 /* Push parsers. */
56 #define YYPUSH 0
57
58 /* Pull parsers. */
59 #define YYPULL 1
60
61
62
63
64 /* Copy the first part of user declarations. */
65 /* Line 371 of yacc.c */
66 #line 25 "conf_parser.y"
67
68
69 #define YY_NO_UNPUT
70 #include <sys/types.h>
71 #include <string.h>
72
73 #include "config.h"
74 #include "stdinc.h"
75 #include "ircd.h"
76 #include "list.h"
77 #include "conf.h"
78 #include "conf_class.h"
79 #include "event.h"
80 #include "log.h"
81 #include "client.h" /* for UMODE_ALL only */
82 #include "irc_string.h"
83 #include "memory.h"
84 #include "modules.h"
85 #include "s_serv.h"
86 #include "hostmask.h"
87 #include "send.h"
88 #include "listener.h"
89 #include "resv.h"
90 #include "numeric.h"
91 #include "s_user.h"
92 #include "motd.h"
93
94 #ifdef HAVE_LIBCRYPTO
95 #include <openssl/rsa.h>
96 #include <openssl/bio.h>
97 #include <openssl/pem.h>
98 #include <openssl/dh.h>
99 #endif
100
101 #include "rsa.h"
102
103 int yylex(void);
104
105 static struct
106 {
107 struct {
108 dlink_list list;
109 } mask,
110 leaf,
111 hub;
112
113 struct {
114 char buf[IRCD_BUFSIZE];
115 } name,
116 user,
117 host,
118 addr,
119 bind,
120 file,
121 ciph,
122 cert,
123 rpass,
124 spass,
125 class;
126
127 struct {
128 unsigned int value;
129 } flags,
130 modes,
131 size,
132 type,
133 port,
134 aftype,
135 ping_freq,
136 max_perip,
137 con_freq,
138 min_idle,
139 max_idle,
140 max_total,
141 max_global,
142 max_local,
143 max_ident,
144 max_sendq,
145 max_recvq,
146 cidr_bitlen_ipv4,
147 cidr_bitlen_ipv6,
148 number_per_cidr;
149 } block_state;
150
151 static void
152 reset_block_state(void)
153 {
154 dlink_node *ptr = NULL, *ptr_next = NULL;
155
156 DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
157 {
158 MyFree(ptr->data);
159 dlinkDelete(ptr, &block_state.mask.list);
160 free_dlink_node(ptr);
161 }
162
163 DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
164 {
165 MyFree(ptr->data);
166 dlinkDelete(ptr, &block_state.leaf.list);
167 free_dlink_node(ptr);
168 }
169
170 DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
171 {
172 MyFree(ptr->data);
173 dlinkDelete(ptr, &block_state.hub.list);
174 free_dlink_node(ptr);
175 }
176
177 memset(&block_state, 0, sizeof(block_state));
178 }
179
180
181 /* Line 371 of yacc.c */
182 #line 183 "conf_parser.c"
183
184 # ifndef YY_NULL
185 # if defined __cplusplus && 201103L <= __cplusplus
186 # define YY_NULL nullptr
187 # else
188 # define YY_NULL 0
189 # endif
190 # endif
191
192 /* Enabling verbose error messages. */
193 #ifdef YYERROR_VERBOSE
194 # undef YYERROR_VERBOSE
195 # define YYERROR_VERBOSE 1
196 #else
197 # define YYERROR_VERBOSE 0
198 #endif
199
200 /* In a future release of Bison, this section will be replaced
201 by #include "y.tab.h". */
202 #ifndef YY_YY_CONF_PARSER_H_INCLUDED
203 # define YY_YY_CONF_PARSER_H_INCLUDED
204 /* Enabling traces. */
205 #ifndef YYDEBUG
206 # define YYDEBUG 0
207 #endif
208 #if YYDEBUG
209 extern int yydebug;
210 #endif
211
212 /* Tokens. */
213 #ifndef YYTOKENTYPE
214 # define YYTOKENTYPE
215 /* Put the tokens into the symbol table, so that GDB and other debuggers
216 know about them. */
217 enum yytokentype {
218 ACCEPT_PASSWORD = 258,
219 ADMIN = 259,
220 AFTYPE = 260,
221 ANTI_NICK_FLOOD = 261,
222 ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
223 AUTOCONN = 263,
224 BYTES = 264,
225 KBYTES = 265,
226 MBYTES = 266,
227 CALLER_ID_WAIT = 267,
228 CAN_FLOOD = 268,
229 CHANNEL = 269,
230 CIDR_BITLEN_IPV4 = 270,
231 CIDR_BITLEN_IPV6 = 271,
232 CLASS = 272,
233 CONNECT = 273,
234 CONNECTFREQ = 274,
235 DEFAULT_FLOODCOUNT = 275,
236 DEFAULT_SPLIT_SERVER_COUNT = 276,
237 DEFAULT_SPLIT_USER_COUNT = 277,
238 DENY = 278,
239 DESCRIPTION = 279,
240 DIE = 280,
241 DISABLE_AUTH = 281,
242 DISABLE_FAKE_CHANNELS = 282,
243 DISABLE_REMOTE_COMMANDS = 283,
244 DOTS_IN_IDENT = 284,
245 EGDPOOL_PATH = 285,
246 EMAIL = 286,
247 ENCRYPTED = 287,
248 EXCEED_LIMIT = 288,
249 EXEMPT = 289,
250 FAILED_OPER_NOTICE = 290,
251 FLATTEN_LINKS = 291,
252 GECOS = 292,
253 GENERAL = 293,
254 GLINE = 294,
255 GLINE_DURATION = 295,
256 GLINE_ENABLE = 296,
257 GLINE_EXEMPT = 297,
258 GLINE_MIN_CIDR = 298,
259 GLINE_MIN_CIDR6 = 299,
260 GLINE_REQUEST_DURATION = 300,
261 GLOBAL_KILL = 301,
262 HAVENT_READ_CONF = 302,
263 HIDDEN = 303,
264 HIDDEN_NAME = 304,
265 HIDE_IDLE_FROM_OPERS = 305,
266 HIDE_SERVER_IPS = 306,
267 HIDE_SERVERS = 307,
268 HIDE_SERVICES = 308,
269 HIDE_SPOOF_IPS = 309,
270 HOST = 310,
271 HUB = 311,
272 HUB_MASK = 312,
273 IGNORE_BOGUS_TS = 313,
274 INVISIBLE_ON_CONNECT = 314,
275 IP = 315,
276 IRCD_AUTH = 316,
277 IRCD_FLAGS = 317,
278 IRCD_SID = 318,
279 JOIN_FLOOD_COUNT = 319,
280 JOIN_FLOOD_TIME = 320,
281 KILL = 321,
282 KILL_CHASE_TIME_LIMIT = 322,
283 KLINE = 323,
284 KLINE_EXEMPT = 324,
285 KNOCK_DELAY = 325,
286 KNOCK_DELAY_CHANNEL = 326,
287 LEAF_MASK = 327,
288 LINKS_DELAY = 328,
289 LISTEN = 329,
290 MASK = 330,
291 MAX_ACCEPT = 331,
292 MAX_BANS = 332,
293 MAX_CHANS_PER_OPER = 333,
294 MAX_CHANS_PER_USER = 334,
295 MAX_GLOBAL = 335,
296 MAX_IDENT = 336,
297 MAX_IDLE = 337,
298 MAX_LOCAL = 338,
299 MAX_NICK_CHANGES = 339,
300 MAX_NICK_LENGTH = 340,
301 MAX_NICK_TIME = 341,
302 MAX_NUMBER = 342,
303 MAX_TARGETS = 343,
304 MAX_TOPIC_LENGTH = 344,
305 MAX_WATCH = 345,
306 MIN_IDLE = 346,
307 MIN_NONWILDCARD = 347,
308 MIN_NONWILDCARD_SIMPLE = 348,
309 MODULE = 349,
310 MODULES = 350,
311 MOTD = 351,
312 NAME = 352,
313 NEED_IDENT = 353,
314 NEED_PASSWORD = 354,
315 NETWORK_DESC = 355,
316 NETWORK_NAME = 356,
317 NICK = 357,
318 NO_CREATE_ON_SPLIT = 358,
319 NO_JOIN_ON_SPLIT = 359,
320 NO_OPER_FLOOD = 360,
321 NO_TILDE = 361,
322 NUMBER = 362,
323 NUMBER_PER_CIDR = 363,
324 NUMBER_PER_IP = 364,
325 OPER_ONLY_UMODES = 365,
326 OPER_PASS_RESV = 366,
327 OPER_UMODES = 367,
328 OPERATOR = 368,
329 OPERS_BYPASS_CALLERID = 369,
330 PACE_WAIT = 370,
331 PACE_WAIT_SIMPLE = 371,
332 PASSWORD = 372,
333 PATH = 373,
334 PING_COOKIE = 374,
335 PING_TIME = 375,
336 PORT = 376,
337 QSTRING = 377,
338 RANDOM_IDLE = 378,
339 REASON = 379,
340 REDIRPORT = 380,
341 REDIRSERV = 381,
342 REHASH = 382,
343 REMOTE = 383,
344 REMOTEBAN = 384,
345 RESV = 385,
346 RESV_EXEMPT = 386,
347 RSA_PRIVATE_KEY_FILE = 387,
348 RSA_PUBLIC_KEY_FILE = 388,
349 SECONDS = 389,
350 MINUTES = 390,
351 HOURS = 391,
352 DAYS = 392,
353 WEEKS = 393,
354 MONTHS = 394,
355 YEARS = 395,
356 SEND_PASSWORD = 396,
357 SENDQ = 397,
358 SERVERHIDE = 398,
359 SERVERINFO = 399,
360 SHORT_MOTD = 400,
361 SPOOF = 401,
362 SPOOF_NOTICE = 402,
363 SQUIT = 403,
364 SSL_CERTIFICATE_FILE = 404,
365 SSL_CERTIFICATE_FINGERPRINT = 405,
366 SSL_CONNECTION_REQUIRED = 406,
367 SSL_DH_PARAM_FILE = 407,
368 STATS_E_DISABLED = 408,
369 STATS_I_OPER_ONLY = 409,
370 STATS_K_OPER_ONLY = 410,
371 STATS_O_OPER_ONLY = 411,
372 STATS_P_OPER_ONLY = 412,
373 T_ALL = 413,
374 T_BOTS = 414,
375 T_CALLERID = 415,
376 T_CCONN = 416,
377 T_CLUSTER = 417,
378 T_DEAF = 418,
379 T_DEBUG = 419,
380 T_DLINE = 420,
381 T_EXTERNAL = 421,
382 T_FARCONNECT = 422,
383 T_FILE = 423,
384 T_FULL = 424,
385 T_GLOBOPS = 425,
386 T_INVISIBLE = 426,
387 T_IPV4 = 427,
388 T_IPV6 = 428,
389 T_LOCOPS = 429,
390 T_LOG = 430,
391 T_MAX_CLIENTS = 431,
392 T_NCHANGE = 432,
393 T_NONONREG = 433,
394 T_OPERWALL = 434,
395 T_RECVQ = 435,
396 T_REJ = 436,
397 T_RESTART = 437,
398 T_SERVER = 438,
399 T_SERVICE = 439,
400 T_SERVICES_NAME = 440,
401 T_SERVNOTICE = 441,
402 T_SET = 442,
403 T_SHARED = 443,
404 T_SIZE = 444,
405 T_SKILL = 445,
406 T_SOFTCALLERID = 446,
407 T_SPY = 447,
408 T_SSL = 448,
409 T_SSL_CIPHER_LIST = 449,
410 T_SSL_CLIENT_METHOD = 450,
411 T_SSL_SERVER_METHOD = 451,
412 T_SSLV3 = 452,
413 T_TLSV1 = 453,
414 T_UMODES = 454,
415 T_UNAUTH = 455,
416 T_UNDLINE = 456,
417 T_UNLIMITED = 457,
418 T_UNRESV = 458,
419 T_UNXLINE = 459,
420 T_WALLOP = 460,
421 T_WALLOPS = 461,
422 T_WEBIRC = 462,
423 TBOOL = 463,
424 THROTTLE_TIME = 464,
425 TKLINE_EXPIRE_NOTICES = 465,
426 TMASKED = 466,
427 TRUE_NO_OPER_FLOOD = 467,
428 TS_MAX_DELTA = 468,
429 TS_WARN_DELTA = 469,
430 TWODOTS = 470,
431 TYPE = 471,
432 UNKLINE = 472,
433 USE_EGD = 473,
434 USE_LOGGING = 474,
435 USER = 475,
436 VHOST = 476,
437 VHOST6 = 477,
438 WARN_NO_NLINE = 478,
439 XLINE = 479
440 };
441 #endif
442 /* Tokens. */
443 #define ACCEPT_PASSWORD 258
444 #define ADMIN 259
445 #define AFTYPE 260
446 #define ANTI_NICK_FLOOD 261
447 #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
448 #define AUTOCONN 263
449 #define BYTES 264
450 #define KBYTES 265
451 #define MBYTES 266
452 #define CALLER_ID_WAIT 267
453 #define CAN_FLOOD 268
454 #define CHANNEL 269
455 #define CIDR_BITLEN_IPV4 270
456 #define CIDR_BITLEN_IPV6 271
457 #define CLASS 272
458 #define CONNECT 273
459 #define CONNECTFREQ 274
460 #define DEFAULT_FLOODCOUNT 275
461 #define DEFAULT_SPLIT_SERVER_COUNT 276
462 #define DEFAULT_SPLIT_USER_COUNT 277
463 #define DENY 278
464 #define DESCRIPTION 279
465 #define DIE 280
466 #define DISABLE_AUTH 281
467 #define DISABLE_FAKE_CHANNELS 282
468 #define DISABLE_REMOTE_COMMANDS 283
469 #define DOTS_IN_IDENT 284
470 #define EGDPOOL_PATH 285
471 #define EMAIL 286
472 #define ENCRYPTED 287
473 #define EXCEED_LIMIT 288
474 #define EXEMPT 289
475 #define FAILED_OPER_NOTICE 290
476 #define FLATTEN_LINKS 291
477 #define GECOS 292
478 #define GENERAL 293
479 #define GLINE 294
480 #define GLINE_DURATION 295
481 #define GLINE_ENABLE 296
482 #define GLINE_EXEMPT 297
483 #define GLINE_MIN_CIDR 298
484 #define GLINE_MIN_CIDR6 299
485 #define GLINE_REQUEST_DURATION 300
486 #define GLOBAL_KILL 301
487 #define HAVENT_READ_CONF 302
488 #define HIDDEN 303
489 #define HIDDEN_NAME 304
490 #define HIDE_IDLE_FROM_OPERS 305
491 #define HIDE_SERVER_IPS 306
492 #define HIDE_SERVERS 307
493 #define HIDE_SERVICES 308
494 #define HIDE_SPOOF_IPS 309
495 #define HOST 310
496 #define HUB 311
497 #define HUB_MASK 312
498 #define IGNORE_BOGUS_TS 313
499 #define INVISIBLE_ON_CONNECT 314
500 #define IP 315
501 #define IRCD_AUTH 316
502 #define IRCD_FLAGS 317
503 #define IRCD_SID 318
504 #define JOIN_FLOOD_COUNT 319
505 #define JOIN_FLOOD_TIME 320
506 #define KILL 321
507 #define KILL_CHASE_TIME_LIMIT 322
508 #define KLINE 323
509 #define KLINE_EXEMPT 324
510 #define KNOCK_DELAY 325
511 #define KNOCK_DELAY_CHANNEL 326
512 #define LEAF_MASK 327
513 #define LINKS_DELAY 328
514 #define LISTEN 329
515 #define MASK 330
516 #define MAX_ACCEPT 331
517 #define MAX_BANS 332
518 #define MAX_CHANS_PER_OPER 333
519 #define MAX_CHANS_PER_USER 334
520 #define MAX_GLOBAL 335
521 #define MAX_IDENT 336
522 #define MAX_IDLE 337
523 #define MAX_LOCAL 338
524 #define MAX_NICK_CHANGES 339
525 #define MAX_NICK_LENGTH 340
526 #define MAX_NICK_TIME 341
527 #define MAX_NUMBER 342
528 #define MAX_TARGETS 343
529 #define MAX_TOPIC_LENGTH 344
530 #define MAX_WATCH 345
531 #define MIN_IDLE 346
532 #define MIN_NONWILDCARD 347
533 #define MIN_NONWILDCARD_SIMPLE 348
534 #define MODULE 349
535 #define MODULES 350
536 #define MOTD 351
537 #define NAME 352
538 #define NEED_IDENT 353
539 #define NEED_PASSWORD 354
540 #define NETWORK_DESC 355
541 #define NETWORK_NAME 356
542 #define NICK 357
543 #define NO_CREATE_ON_SPLIT 358
544 #define NO_JOIN_ON_SPLIT 359
545 #define NO_OPER_FLOOD 360
546 #define NO_TILDE 361
547 #define NUMBER 362
548 #define NUMBER_PER_CIDR 363
549 #define NUMBER_PER_IP 364
550 #define OPER_ONLY_UMODES 365
551 #define OPER_PASS_RESV 366
552 #define OPER_UMODES 367
553 #define OPERATOR 368
554 #define OPERS_BYPASS_CALLERID 369
555 #define PACE_WAIT 370
556 #define PACE_WAIT_SIMPLE 371
557 #define PASSWORD 372
558 #define PATH 373
559 #define PING_COOKIE 374
560 #define PING_TIME 375
561 #define PORT 376
562 #define QSTRING 377
563 #define RANDOM_IDLE 378
564 #define REASON 379
565 #define REDIRPORT 380
566 #define REDIRSERV 381
567 #define REHASH 382
568 #define REMOTE 383
569 #define REMOTEBAN 384
570 #define RESV 385
571 #define RESV_EXEMPT 386
572 #define RSA_PRIVATE_KEY_FILE 387
573 #define RSA_PUBLIC_KEY_FILE 388
574 #define SECONDS 389
575 #define MINUTES 390
576 #define HOURS 391
577 #define DAYS 392
578 #define WEEKS 393
579 #define MONTHS 394
580 #define YEARS 395
581 #define SEND_PASSWORD 396
582 #define SENDQ 397
583 #define SERVERHIDE 398
584 #define SERVERINFO 399
585 #define SHORT_MOTD 400
586 #define SPOOF 401
587 #define SPOOF_NOTICE 402
588 #define SQUIT 403
589 #define SSL_CERTIFICATE_FILE 404
590 #define SSL_CERTIFICATE_FINGERPRINT 405
591 #define SSL_CONNECTION_REQUIRED 406
592 #define SSL_DH_PARAM_FILE 407
593 #define STATS_E_DISABLED 408
594 #define STATS_I_OPER_ONLY 409
595 #define STATS_K_OPER_ONLY 410
596 #define STATS_O_OPER_ONLY 411
597 #define STATS_P_OPER_ONLY 412
598 #define T_ALL 413
599 #define T_BOTS 414
600 #define T_CALLERID 415
601 #define T_CCONN 416
602 #define T_CLUSTER 417
603 #define T_DEAF 418
604 #define T_DEBUG 419
605 #define T_DLINE 420
606 #define T_EXTERNAL 421
607 #define T_FARCONNECT 422
608 #define T_FILE 423
609 #define T_FULL 424
610 #define T_GLOBOPS 425
611 #define T_INVISIBLE 426
612 #define T_IPV4 427
613 #define T_IPV6 428
614 #define T_LOCOPS 429
615 #define T_LOG 430
616 #define T_MAX_CLIENTS 431
617 #define T_NCHANGE 432
618 #define T_NONONREG 433
619 #define T_OPERWALL 434
620 #define T_RECVQ 435
621 #define T_REJ 436
622 #define T_RESTART 437
623 #define T_SERVER 438
624 #define T_SERVICE 439
625 #define T_SERVICES_NAME 440
626 #define T_SERVNOTICE 441
627 #define T_SET 442
628 #define T_SHARED 443
629 #define T_SIZE 444
630 #define T_SKILL 445
631 #define T_SOFTCALLERID 446
632 #define T_SPY 447
633 #define T_SSL 448
634 #define T_SSL_CIPHER_LIST 449
635 #define T_SSL_CLIENT_METHOD 450
636 #define T_SSL_SERVER_METHOD 451
637 #define T_SSLV3 452
638 #define T_TLSV1 453
639 #define T_UMODES 454
640 #define T_UNAUTH 455
641 #define T_UNDLINE 456
642 #define T_UNLIMITED 457
643 #define T_UNRESV 458
644 #define T_UNXLINE 459
645 #define T_WALLOP 460
646 #define T_WALLOPS 461
647 #define T_WEBIRC 462
648 #define TBOOL 463
649 #define THROTTLE_TIME 464
650 #define TKLINE_EXPIRE_NOTICES 465
651 #define TMASKED 466
652 #define TRUE_NO_OPER_FLOOD 467
653 #define TS_MAX_DELTA 468
654 #define TS_WARN_DELTA 469
655 #define TWODOTS 470
656 #define TYPE 471
657 #define UNKLINE 472
658 #define USE_EGD 473
659 #define USE_LOGGING 474
660 #define USER 475
661 #define VHOST 476
662 #define VHOST6 477
663 #define WARN_NO_NLINE 478
664 #define XLINE 479
665
666
667
668 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
669 typedef union YYSTYPE
670 {
671 /* Line 387 of yacc.c */
672 #line 140 "conf_parser.y"
673
674 int number;
675 char *string;
676
677
678 /* Line 387 of yacc.c */
679 #line 680 "conf_parser.c"
680 } YYSTYPE;
681 # define YYSTYPE_IS_TRIVIAL 1
682 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
683 # define YYSTYPE_IS_DECLARED 1
684 #endif
685
686 extern YYSTYPE yylval;
687
688 #ifdef YYPARSE_PARAM
689 #if defined __STDC__ || defined __cplusplus
690 int yyparse (void *YYPARSE_PARAM);
691 #else
692 int yyparse ();
693 #endif
694 #else /* ! YYPARSE_PARAM */
695 #if defined __STDC__ || defined __cplusplus
696 int yyparse (void);
697 #else
698 int yyparse ();
699 #endif
700 #endif /* ! YYPARSE_PARAM */
701
702 #endif /* !YY_YY_CONF_PARSER_H_INCLUDED */
703
704 /* Copy the second part of user declarations. */
705
706 /* Line 390 of yacc.c */
707 #line 708 "conf_parser.c"
708
709 #ifdef short
710 # undef short
711 #endif
712
713 #ifdef YYTYPE_UINT8
714 typedef YYTYPE_UINT8 yytype_uint8;
715 #else
716 typedef unsigned char yytype_uint8;
717 #endif
718
719 #ifdef YYTYPE_INT8
720 typedef YYTYPE_INT8 yytype_int8;
721 #elif (defined __STDC__ || defined __C99__FUNC__ \
722 || defined __cplusplus || defined _MSC_VER)
723 typedef signed char yytype_int8;
724 #else
725 typedef short int yytype_int8;
726 #endif
727
728 #ifdef YYTYPE_UINT16
729 typedef YYTYPE_UINT16 yytype_uint16;
730 #else
731 typedef unsigned short int yytype_uint16;
732 #endif
733
734 #ifdef YYTYPE_INT16
735 typedef YYTYPE_INT16 yytype_int16;
736 #else
737 typedef short int yytype_int16;
738 #endif
739
740 #ifndef YYSIZE_T
741 # ifdef __SIZE_TYPE__
742 # define YYSIZE_T __SIZE_TYPE__
743 # elif defined size_t
744 # define YYSIZE_T size_t
745 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
746 || defined __cplusplus || defined _MSC_VER)
747 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
748 # define YYSIZE_T size_t
749 # else
750 # define YYSIZE_T unsigned int
751 # endif
752 #endif
753
754 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
755
756 #ifndef YY_
757 # if defined YYENABLE_NLS && YYENABLE_NLS
758 # if ENABLE_NLS
759 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
760 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
761 # endif
762 # endif
763 # ifndef YY_
764 # define YY_(Msgid) Msgid
765 # endif
766 #endif
767
768 #ifndef __attribute__
769 /* This feature is available in gcc versions 2.5 and later. */
770 # if (! defined __GNUC__ || __GNUC__ < 2 \
771 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
772 # define __attribute__(Spec) /* empty */
773 # endif
774 #endif
775
776 /* Suppress unused-variable warnings by "using" E. */
777 #if ! defined lint || defined __GNUC__
778 # define YYUSE(E) ((void) (E))
779 #else
780 # define YYUSE(E) /* empty */
781 #endif
782
783
784 /* Identity function, used to suppress warnings about constant conditions. */
785 #ifndef lint
786 # define YYID(N) (N)
787 #else
788 #if (defined __STDC__ || defined __C99__FUNC__ \
789 || defined __cplusplus || defined _MSC_VER)
790 static int
791 YYID (int yyi)
792 #else
793 static int
794 YYID (yyi)
795 int yyi;
796 #endif
797 {
798 return yyi;
799 }
800 #endif
801
802 #if ! defined yyoverflow || YYERROR_VERBOSE
803
804 /* The parser invokes alloca or malloc; define the necessary symbols. */
805
806 # ifdef YYSTACK_USE_ALLOCA
807 # if YYSTACK_USE_ALLOCA
808 # ifdef __GNUC__
809 # define YYSTACK_ALLOC __builtin_alloca
810 # elif defined __BUILTIN_VA_ARG_INCR
811 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
812 # elif defined _AIX
813 # define YYSTACK_ALLOC __alloca
814 # elif defined _MSC_VER
815 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
816 # define alloca _alloca
817 # else
818 # define YYSTACK_ALLOC alloca
819 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
820 || defined __cplusplus || defined _MSC_VER)
821 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
822 /* Use EXIT_SUCCESS as a witness for stdlib.h. */
823 # ifndef EXIT_SUCCESS
824 # define EXIT_SUCCESS 0
825 # endif
826 # endif
827 # endif
828 # endif
829 # endif
830
831 # ifdef YYSTACK_ALLOC
832 /* Pacify GCC's `empty if-body' warning. */
833 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
834 # ifndef YYSTACK_ALLOC_MAXIMUM
835 /* The OS might guarantee only one guard page at the bottom of the stack,
836 and a page size can be as small as 4096 bytes. So we cannot safely
837 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
838 to allow for a few compiler-allocated temporary stack slots. */
839 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
840 # endif
841 # else
842 # define YYSTACK_ALLOC YYMALLOC
843 # define YYSTACK_FREE YYFREE
844 # ifndef YYSTACK_ALLOC_MAXIMUM
845 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
846 # endif
847 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
848 && ! ((defined YYMALLOC || defined malloc) \
849 && (defined YYFREE || defined free)))
850 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
851 # ifndef EXIT_SUCCESS
852 # define EXIT_SUCCESS 0
853 # endif
854 # endif
855 # ifndef YYMALLOC
856 # define YYMALLOC malloc
857 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
858 || defined __cplusplus || defined _MSC_VER)
859 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
860 # endif
861 # endif
862 # ifndef YYFREE
863 # define YYFREE free
864 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
865 || defined __cplusplus || defined _MSC_VER)
866 void free (void *); /* INFRINGES ON USER NAME SPACE */
867 # endif
868 # endif
869 # endif
870 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
871
872
873 #if (! defined yyoverflow \
874 && (! defined __cplusplus \
875 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
876
877 /* A type that is properly aligned for any stack member. */
878 union yyalloc
879 {
880 yytype_int16 yyss_alloc;
881 YYSTYPE yyvs_alloc;
882 };
883
884 /* The size of the maximum gap between one aligned stack and the next. */
885 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
886
887 /* The size of an array large to enough to hold all stacks, each with
888 N elements. */
889 # define YYSTACK_BYTES(N) \
890 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
891 + YYSTACK_GAP_MAXIMUM)
892
893 # define YYCOPY_NEEDED 1
894
895 /* Relocate STACK from its old location to the new one. The
896 local variables YYSIZE and YYSTACKSIZE give the old and new number of
897 elements in the stack, and YYPTR gives the new location of the
898 stack. Advance YYPTR to a properly aligned location for the next
899 stack. */
900 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
901 do \
902 { \
903 YYSIZE_T yynewbytes; \
904 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
905 Stack = &yyptr->Stack_alloc; \
906 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
907 yyptr += yynewbytes / sizeof (*yyptr); \
908 } \
909 while (YYID (0))
910
911 #endif
912
913 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
914 /* Copy COUNT objects from SRC to DST. The source and destination do
915 not overlap. */
916 # ifndef YYCOPY
917 # if defined __GNUC__ && 1 < __GNUC__
918 # define YYCOPY(Dst, Src, Count) \
919 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
920 # else
921 # define YYCOPY(Dst, Src, Count) \
922 do \
923 { \
924 YYSIZE_T yyi; \
925 for (yyi = 0; yyi < (Count); yyi++) \
926 (Dst)[yyi] = (Src)[yyi]; \
927 } \
928 while (YYID (0))
929 # endif
930 # endif
931 #endif /* !YYCOPY_NEEDED */
932
933 /* YYFINAL -- State number of the termination state. */
934 #define YYFINAL 2
935 /* YYLAST -- Last index in YYTABLE. */
936 #define YYLAST 1223
937
938 /* YYNTOKENS -- Number of terminals. */
939 #define YYNTOKENS 231
940 /* YYNNTS -- Number of nonterminals. */
941 #define YYNNTS 289
942 /* YYNRULES -- Number of rules. */
943 #define YYNRULES 650
944 /* YYNRULES -- Number of states. */
945 #define YYNSTATES 1275
946
947 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
948 #define YYUNDEFTOK 2
949 #define YYMAXUTOK 479
950
951 #define YYTRANSLATE(YYX) \
952 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
953
954 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
955 static const yytype_uint8 yytranslate[] =
956 {
957 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
958 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
959 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
960 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
961 2, 2, 2, 2, 229, 2, 2, 2, 2, 2,
962 2, 2, 2, 2, 2, 2, 2, 2, 230, 225,
963 2, 228, 2, 2, 2, 2, 2, 2, 2, 2,
964 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
965 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
966 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
967 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
968 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
969 2, 2, 2, 227, 2, 226, 2, 2, 2, 2,
970 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
971 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
972 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
973 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
974 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
975 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
976 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
977 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
978 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
979 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
980 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
981 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
982 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
983 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
984 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
985 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
986 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
987 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
988 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
989 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
990 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
991 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
992 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
993 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
994 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
995 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
996 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
997 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
998 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
999 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
1000 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1001 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1002 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
1003 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
1004 215, 216, 217, 218, 219, 220, 221, 222, 223, 224
1005 };
1006
1007 #if YYDEBUG
1008 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
1009 YYRHS. */
1010 static const yytype_uint16 yyprhs[] =
1011 {
1012 0, 0, 3, 4, 7, 9, 11, 13, 15, 17,
1013 19, 21, 23, 25, 27, 29, 31, 33, 35, 37,
1014 39, 41, 43, 45, 47, 49, 52, 55, 56, 58,
1015 61, 65, 69, 73, 77, 81, 85, 89, 90, 92,
1016 95, 99, 103, 107, 113, 116, 118, 120, 122, 125,
1017 130, 135, 141, 144, 146, 148, 150, 152, 154, 156,
1018 158, 160, 162, 164, 166, 168, 170, 172, 174, 176,
1019 178, 180, 183, 188, 193, 197, 199, 201, 203, 207,
1020 209, 211, 213, 218, 223, 228, 233, 238, 243, 248,
1021 253, 258, 263, 268, 273, 278, 283, 288, 294, 297,
1022 299, 301, 303, 305, 308, 313, 318, 323, 324, 331,
1023 334, 336, 338, 340, 343, 348, 353, 359, 362, 364,
1024 366, 368, 371, 376, 377, 384, 387, 389, 391, 393,
1025 395, 398, 403, 408, 413, 414, 420, 424, 426, 428,
1026 430, 432, 434, 436, 438, 440, 441, 448, 451, 453,
1027 455, 457, 459, 461, 463, 465, 467, 469, 471, 473,
1028 476, 481, 486, 491, 496, 501, 506, 511, 516, 517,
1029 523, 527, 529, 531, 533, 535, 537, 539, 541, 543,
1030 545, 547, 549, 551, 553, 555, 557, 559, 561, 563,
1031 565, 567, 569, 571, 572, 578, 582, 584, 588, 590,
1032 594, 596, 600, 602, 604, 606, 608, 610, 612, 614,
1033 616, 618, 620, 622, 624, 626, 628, 630, 632, 634,
1034 636, 637, 644, 647, 649, 651, 653, 655, 657, 659,
1035 661, 663, 665, 667, 669, 671, 673, 675, 677, 679,
1036 681, 684, 689, 694, 699, 704, 709, 714, 719, 724,
1037 729, 734, 739, 744, 749, 754, 759, 760, 766, 770,
1038 772, 774, 776, 777, 784, 785, 791, 795, 797, 799,
1039 801, 803, 806, 808, 810, 812, 814, 816, 819, 820,
1040 826, 830, 832, 834, 838, 843, 848, 849, 856, 859,
1041 861, 863, 865, 867, 869, 871, 873, 875, 877, 880,
1042 885, 890, 895, 900, 901, 907, 911, 913, 915, 917,
1043 919, 921, 923, 925, 927, 929, 931, 933, 938, 943,
1044 948, 949, 956, 959, 961, 963, 965, 967, 970, 975,
1045 980, 985, 991, 994, 996, 998, 1000, 1005, 1006, 1013,
1046 1016, 1018, 1020, 1022, 1024, 1027, 1032, 1037, 1038, 1044,
1047 1048, 1050, 1052, 1054, 1056, 1058, 1060, 1062, 1064, 1066,
1048 1068, 1070, 1071, 1078, 1081, 1083, 1085, 1087, 1090, 1095,
1049 1096, 1102, 1106, 1108, 1110, 1112, 1114, 1116, 1118, 1120,
1050 1122, 1124, 1126, 1128, 1129, 1136, 1139, 1141, 1143, 1145,
1051 1147, 1149, 1151, 1153, 1155, 1157, 1159, 1161, 1163, 1165,
1052 1167, 1169, 1172, 1177, 1182, 1187, 1192, 1197, 1202, 1207,
1053 1212, 1217, 1218, 1224, 1228, 1230, 1232, 1234, 1239, 1244,
1054 1249, 1254, 1259, 1260, 1267, 1270, 1272, 1274, 1276, 1278,
1055 1283, 1288, 1289, 1296, 1299, 1301, 1303, 1305, 1307, 1312,
1056 1317, 1323, 1326, 1328, 1330, 1332, 1337, 1338, 1345, 1348,
1057 1350, 1352, 1354, 1356, 1361, 1366, 1372, 1375, 1377, 1379,
1058 1381, 1383, 1385, 1387, 1389, 1391, 1393, 1395, 1397, 1399,
1059 1401, 1403, 1405, 1407, 1409, 1411, 1413, 1415, 1417, 1419,
1060 1421, 1423, 1425, 1427, 1429, 1431, 1433, 1435, 1437, 1439,
1061 1441, 1443, 1445, 1447, 1449, 1451, 1453, 1455, 1457, 1459,
1062 1461, 1463, 1465, 1467, 1469, 1471, 1473, 1478, 1483, 1488,
1063 1493, 1498, 1503, 1508, 1513, 1518, 1523, 1528, 1533, 1538,
1064 1543, 1548, 1553, 1558, 1563, 1568, 1573, 1578, 1583, 1588,
1065 1593, 1598, 1603, 1608, 1613, 1618, 1623, 1628, 1633, 1638,
1066 1643, 1648, 1653, 1658, 1663, 1668, 1673, 1678, 1683, 1688,
1067 1693, 1694, 1700, 1704, 1706, 1708, 1710, 1712, 1714, 1716,
1068 1718, 1720, 1722, 1724, 1726, 1728, 1730, 1732, 1734, 1736,
1069 1738, 1740, 1742, 1744, 1746, 1748, 1749, 1755, 1759, 1761,
1070 1763, 1765, 1767, 1769, 1771, 1773, 1775, 1777, 1779, 1781,
1071 1783, 1785, 1787, 1789, 1791, 1793, 1795, 1797, 1799, 1801,
1072 1803, 1808, 1813, 1818, 1824, 1827, 1829, 1831, 1833, 1835,
1073 1837, 1839, 1841, 1843, 1845, 1847, 1849, 1851, 1853, 1855,
1074 1860, 1865, 1870, 1875, 1880, 1885, 1890, 1895, 1900, 1905,
1075 1910, 1915, 1921, 1924, 1926, 1928, 1930, 1932, 1934, 1936,
1076 1938, 1940, 1942, 1944, 1949, 1954, 1959, 1964, 1969, 1974,
1077 1979
1078 };
1079
1080 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
1081 static const yytype_int16 yyrhs[] =
1082 {
1083 232, 0, -1, -1, 232, 233, -1, 267, -1, 279,
1084 -1, 293, -1, 494, -1, 313, -1, 336, -1, 350,
1085 -1, 243, -1, 509, -1, 365, -1, 372, -1, 376,
1086 -1, 386, -1, 395, -1, 416, -1, 422, -1, 428,
1087 -1, 438, -1, 432, -1, 238, -1, 273, -1, 1,
1088 225, -1, 1, 226, -1, -1, 235, -1, 107, 234,
1089 -1, 107, 134, 234, -1, 107, 135, 234, -1, 107,
1090 136, 234, -1, 107, 137, 234, -1, 107, 138, 234,
1091 -1, 107, 139, 234, -1, 107, 140, 234, -1, -1,
1092 237, -1, 107, 236, -1, 107, 9, 236, -1, 107,
1093 10, 236, -1, 107, 11, 236, -1, 95, 227, 239,
1094 226, 225, -1, 239, 240, -1, 240, -1, 241, -1,
1095 242, -1, 1, 225, -1, 94, 228, 122, 225, -1,
1096 118, 228, 122, 225, -1, 144, 227, 244, 226, 225,
1097 -1, 244, 245, -1, 245, -1, 256, -1, 261, -1,
1098 266, -1, 258, -1, 259, -1, 260, -1, 263, -1,
1099 264, -1, 265, -1, 254, -1, 253, -1, 262, -1,
1100 257, -1, 252, -1, 246, -1, 247, -1, 255, -1,
1101 1, 225, -1, 195, 228, 248, 225, -1, 196, 228,
1102 250, 225, -1, 248, 229, 249, -1, 249, -1, 197,
1103 -1, 198, -1, 250, 229, 251, -1, 251, -1, 197,
1104 -1, 198, -1, 149, 228, 122, 225, -1, 132, 228,
1105 122, 225, -1, 152, 228, 122, 225, -1, 194, 228,
1106 122, 225, -1, 97, 228, 122, 225, -1, 63, 228,
1107 122, 225, -1, 24, 228, 122, 225, -1, 101, 228,
1108 122, 225, -1, 100, 228, 122, 225, -1, 221, 228,
1109 122, 225, -1, 222, 228, 122, 225, -1, 176, 228,
1110 107, 225, -1, 85, 228, 107, 225, -1, 89, 228,
1111 107, 225, -1, 56, 228, 208, 225, -1, 4, 227,
1112 268, 226, 225, -1, 268, 269, -1, 269, -1, 270,
1113 -1, 272, -1, 271, -1, 1, 225, -1, 97, 228,
1114 122, 225, -1, 31, 228, 122, 225, -1, 24, 228,
1115 122, 225, -1, -1, 96, 274, 227, 275, 226, 225,
1116 -1, 275, 276, -1, 276, -1, 277, -1, 278, -1,
1117 1, 225, -1, 75, 228, 122, 225, -1, 168, 228,
1118 122, 225, -1, 175, 227, 280, 226, 225, -1, 280,
1119 281, -1, 281, -1, 282, -1, 283, -1, 1, 225,
1120 -1, 219, 228, 208, 225, -1, -1, 284, 168, 227,
1121 285, 226, 225, -1, 285, 286, -1, 286, -1, 287,
1122 -1, 289, -1, 288, -1, 1, 225, -1, 97, 228,
1123 122, 225, -1, 189, 228, 237, 225, -1, 189, 228,
1124 202, 225, -1, -1, 216, 290, 228, 291, 225, -1,
1125 291, 229, 292, -1, 292, -1, 220, -1, 113, -1,
1126 39, -1, 165, -1, 68, -1, 66, -1, 164, -1,
1127 -1, 113, 294, 227, 295, 226, 225, -1, 295, 296,
1128 -1, 296, -1, 297, -1, 298, -1, 299, -1, 305,
1129 -1, 304, -1, 300, -1, 301, -1, 302, -1, 303,
1130 -1, 309, -1, 1, 225, -1, 97, 228, 122, 225,
1131 -1, 220, 228, 122, 225, -1, 117, 228, 122, 225,
1132 -1, 32, 228, 208, 225, -1, 133, 228, 122, 225,
1133 -1, 150, 228, 122, 225, -1, 151, 228, 208, 225,
1134 -1, 17, 228, 122, 225, -1, -1, 199, 306, 228,
1135 307, 225, -1, 307, 229, 308, -1, 308, -1, 159,
1136 -1, 161, -1, 163, -1, 164, -1, 169, -1, 48,
1137 -1, 190, -1, 177, -1, 181, -1, 200, -1, 192,
1138 -1, 166, -1, 179, -1, 186, -1, 171, -1, 205,
1139 -1, 191, -1, 160, -1, 174, -1, 178, -1, 167,
1140 -1, -1, 62, 310, 228, 311, 225, -1, 311, 229,
1141 312, -1, 312, -1, 66, 230, 128, -1, 66, -1,
1142 18, 230, 128, -1, 18, -1, 148, 230, 128, -1,
1143 148, -1, 68, -1, 217, -1, 165, -1, 201, -1,
1144 224, -1, 39, -1, 25, -1, 182, -1, 127, -1,
1145 4, -1, 179, -1, 170, -1, 206, -1, 174, -1,
1146 129, -1, 187, -1, 94, -1, -1, 17, 314, 227,
1147 315, 226, 225, -1, 315, 316, -1, 316, -1, 317,
1148 -1, 327, -1, 328, -1, 318, -1, 329, -1, 319,
1149 -1, 320, -1, 321, -1, 322, -1, 323, -1, 324,
1150 -1, 325, -1, 326, -1, 330, -1, 331, -1, 332,
1151 -1, 1, 225, -1, 97, 228, 122, 225, -1, 120,
1152 228, 235, 225, -1, 109, 228, 107, 225, -1, 19,
1153 228, 235, 225, -1, 87, 228, 107, 225, -1, 80,
1154 228, 107, 225, -1, 83, 228, 107, 225, -1, 81,
1155 228, 107, 225, -1, 142, 228, 237, 225, -1, 180,
1156 228, 237, 225, -1, 15, 228, 107, 225, -1, 16,
1157 228, 107, 225, -1, 108, 228, 107, 225, -1, 91,
1158 228, 235, 225, -1, 82, 228, 235, 225, -1, -1,
1159 62, 333, 228, 334, 225, -1, 334, 229, 335, -1,
1160 335, -1, 123, -1, 50, -1, -1, 74, 337, 227,
1161 342, 226, 225, -1, -1, 62, 339, 228, 340, 225,
1162 -1, 340, 229, 341, -1, 341, -1, 193, -1, 48,
1163 -1, 183, -1, 342, 343, -1, 343, -1, 344, -1,
1164 338, -1, 348, -1, 349, -1, 1, 225, -1, -1,
1165 121, 228, 346, 345, 225, -1, 346, 229, 347, -1,
1166 347, -1, 107, -1, 107, 215, 107, -1, 60, 228,
1167 122, 225, -1, 55, 228, 122, 225, -1, -1, 61,
1168 351, 227, 352, 226, 225, -1, 352, 353, -1, 353,
1169 -1, 354, -1, 355, -1, 356, -1, 358, -1, 362,
1170 -1, 363, -1, 364, -1, 357, -1, 1, 225, -1,
1171 220, 228, 122, 225, -1, 117, 228, 122, 225, -1,
1172 17, 228, 122, 225, -1, 32, 228, 208, 225, -1,
1173 -1, 62, 359, 228, 360, 225, -1, 360, 229, 361,
1174 -1, 361, -1, 147, -1, 33, -1, 69, -1, 98,
1175 -1, 13, -1, 106, -1, 42, -1, 131, -1, 207,
1176 -1, 99, -1, 146, 228, 122, 225, -1, 126, 228,
1177 122, 225, -1, 125, 228, 107, 225, -1, -1, 130,
1178 366, 227, 367, 226, 225, -1, 367, 368, -1, 368,
1179 -1, 369, -1, 370, -1, 371, -1, 1, 225, -1,
1180 75, 228, 122, 225, -1, 124, 228, 122, 225, -1,
1181 34, 228, 122, 225, -1, 184, 227, 373, 226, 225,
1182 -1, 373, 374, -1, 374, -1, 375, -1, 1, -1,
1183 97, 228, 122, 225, -1, -1, 188, 377, 227, 378,
1184 226, 225, -1, 378, 379, -1, 379, -1, 380, -1,
1185 381, -1, 382, -1, 1, 225, -1, 97, 228, 122,
1186 225, -1, 220, 228, 122, 225, -1, -1, 216, 383,
1187 228, 384, 225, -1, 384, 229, 385, -1, 385, -1,
1188 68, -1, 217, -1, 165, -1, 201, -1, 224, -1,
1189 204, -1, 130, -1, 203, -1, 174, -1, 158, -1,
1190 -1, 162, 387, 227, 388, 226, 225, -1, 388, 389,
1191 -1, 389, -1, 390, -1, 391, -1, 1, 225, -1,
1192 97, 228, 122, 225, -1, -1, 216, 392, 228, 393,
1193 225, -1, 393, 229, 394, -1, 394, -1, 68, -1,
1194 217, -1, 165, -1, 201, -1, 224, -1, 204, -1,
1195 130, -1, 203, -1, 174, -1, 158, -1, -1, 18,
1196 396, 227, 397, 226, 225, -1, 397, 398, -1, 398,
1197 -1, 399, -1, 400, -1, 401, -1, 402, -1, 403,
1198 -1, 404, -1, 406, -1, 405, -1, 415, -1, 407,
1199 -1, 412, -1, 413, -1, 414, -1, 411, -1, 1,
1200 225, -1, 97, 228, 122, 225, -1, 55, 228, 122,
1201 225, -1, 221, 228, 122, 225, -1, 141, 228, 122,
1202 225, -1, 3, 228, 122, 225, -1, 150, 228, 122,
1203 225, -1, 121, 228, 107, 225, -1, 5, 228, 172,
1204 225, -1, 5, 228, 173, 225, -1, -1, 62, 408,
1205 228, 409, 225, -1, 409, 229, 410, -1, 410, -1,
1206 8, -1, 193, -1, 32, 228, 208, 225, -1, 57,
1207 228, 122, 225, -1, 72, 228, 122, 225, -1, 17,
1208 228, 122, 225, -1, 194, 228, 122, 225, -1, -1,
1209 66, 417, 227, 418, 226, 225, -1, 418, 419, -1,
1210 419, -1, 420, -1, 421, -1, 1, -1, 220, 228,
1211 122, 225, -1, 124, 228, 122, 225, -1, -1, 23,
1212 423, 227, 424, 226, 225, -1, 424, 425, -1, 425,
1213 -1, 426, -1, 427, -1, 1, -1, 60, 228, 122,
1214 225, -1, 124, 228, 122, 225, -1, 34, 227, 429,
1215 226, 225, -1, 429, 430, -1, 430, -1, 431, -1,
1216 1, -1, 60, 228, 122, 225, -1, -1, 37, 433,
1217 227, 434, 226, 225, -1, 434, 435, -1, 435, -1,
1218 436, -1, 437, -1, 1, -1, 97, 228, 122, 225,
1219 -1, 124, 228, 122, 225, -1, 38, 227, 439, 226,
1220 225, -1, 439, 440, -1, 440, -1, 449, -1, 450,
1221 -1, 451, -1, 452, -1, 453, -1, 454, -1, 455,
1222 -1, 456, -1, 457, -1, 458, -1, 448, -1, 460,
1223 -1, 461, -1, 475, -1, 463, -1, 465, -1, 467,
1224 -1, 466, -1, 470, -1, 464, -1, 471, -1, 472,
1225 -1, 473, -1, 474, -1, 487, -1, 476, -1, 477,
1226 -1, 478, -1, 483, -1, 468, -1, 469, -1, 493,
1227 -1, 491, -1, 492, -1, 482, -1, 459, -1, 480,
1228 -1, 481, -1, 447, -1, 442, -1, 443, -1, 444,
1229 -1, 445, -1, 446, -1, 462, -1, 441, -1, 479,
1230 -1, 1, -1, 90, 228, 107, 225, -1, 41, 228,
1231 208, 225, -1, 40, 228, 235, 225, -1, 45, 228,
1232 235, 225, -1, 43, 228, 107, 225, -1, 44, 228,
1233 107, 225, -1, 210, 228, 208, 225, -1, 67, 228,
1234 235, 225, -1, 54, 228, 208, 225, -1, 58, 228,
1235 208, 225, -1, 35, 228, 208, 225, -1, 6, 228,
1236 208, 225, -1, 86, 228, 235, 225, -1, 84, 228,
1237 107, 225, -1, 76, 228, 107, 225, -1, 7, 228,
1238 235, 225, -1, 214, 228, 235, 225, -1, 213, 228,
1239 235, 225, -1, 47, 228, 107, 225, -1, 59, 228,
1240 208, 225, -1, 223, 228, 208, 225, -1, 153, 228,
1241 208, 225, -1, 156, 228, 208, 225, -1, 157, 228,
1242 208, 225, -1, 155, 228, 208, 225, -1, 155, 228,
1243 211, 225, -1, 154, 228, 208, 225, -1, 154, 228,
1244 211, 225, -1, 115, 228, 235, 225, -1, 12, 228,
1245 235, 225, -1, 114, 228, 208, 225, -1, 116, 228,
1246 235, 225, -1, 145, 228, 208, 225, -1, 105, 228,
1247 208, 225, -1, 212, 228, 208, 225, -1, 111, 228,
1248 208, 225, -1, 29, 228, 107, 225, -1, 88, 228,
1249 107, 225, -1, 218, 228, 208, 225, -1, 30, 228,
1250 122, 225, -1, 185, 228, 122, 225, -1, 119, 228,
1251 208, 225, -1, 26, 228, 208, 225, -1, 209, 228,
1252 235, 225, -1, -1, 112, 484, 228, 485, 225, -1,
1253 485, 229, 486, -1, 486, -1, 159, -1, 161, -1,
1254 163, -1, 164, -1, 169, -1, 48, -1, 190, -1,
1255 177, -1, 181, -1, 200, -1, 192, -1, 166, -1,
1256 179, -1, 186, -1, 171, -1, 205, -1, 191, -1,
1257 160, -1, 174, -1, 178, -1, 167, -1, -1, 110,
1258 488, 228, 489, 225, -1, 489, 229, 490, -1, 490,
1259 -1, 159, -1, 161, -1, 163, -1, 164, -1, 169,
1260 -1, 190, -1, 48, -1, 177, -1, 181, -1, 200,
1261 -1, 192, -1, 166, -1, 179, -1, 186, -1, 171,
1262 -1, 205, -1, 191, -1, 160, -1, 174, -1, 178,
1263 -1, 167, -1, 92, 228, 107, 225, -1, 93, 228,
1264 107, 225, -1, 20, 228, 107, 225, -1, 14, 227,
1265 495, 226, 225, -1, 495, 496, -1, 496, -1, 502,
1266 -1, 498, -1, 499, -1, 500, -1, 501, -1, 503,
1267 -1, 504, -1, 505, -1, 506, -1, 507, -1, 508,
1268 -1, 497, -1, 1, -1, 27, 228, 208, 225, -1,
1269 70, 228, 235, 225, -1, 71, 228, 235, 225, -1,
1270 79, 228, 107, 225, -1, 78, 228, 107, 225, -1,
1271 77, 228, 107, 225, -1, 22, 228, 107, 225, -1,
1272 21, 228, 107, 225, -1, 103, 228, 208, 225, -1,
1273 104, 228, 208, 225, -1, 64, 228, 107, 225, -1,
1274 65, 228, 235, 225, -1, 143, 227, 510, 226, 225,
1275 -1, 510, 511, -1, 511, -1, 512, -1, 513, -1,
1276 514, -1, 515, -1, 517, -1, 518, -1, 516, -1,
1277 519, -1, 1, -1, 36, 228, 208, 225, -1, 28,
1278 228, 208, 225, -1, 52, 228, 208, 225, -1, 53,
1279 228, 208, 225, -1, 49, 228, 122, 225, -1, 73,
1280 228, 235, 225, -1, 48, 228, 208, 225, -1, 51,
1281 228, 208, 225, -1
1282 };
1283
1284 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
1285 static const yytype_uint16 yyrline[] =
1286 {
1287 0, 368, 368, 369, 372, 373, 374, 375, 376, 377,
1288 378, 379, 380, 381, 382, 383, 384, 385, 386, 387,
1289 388, 389, 390, 391, 392, 393, 394, 398, 398, 399,
1290 403, 407, 411, 415, 419, 423, 427, 433, 433, 434,
1291 435, 436, 437, 444, 447, 447, 448, 448, 448, 450,
1292 456, 463, 465, 465, 466, 466, 467, 467, 468, 468,
1293 469, 469, 470, 470, 471, 471, 472, 472, 473, 473,
1294 474, 475, 478, 479, 481, 481, 482, 488, 496, 496,
1295 497, 503, 511, 553, 612, 640, 648, 663, 678, 687,
1296 701, 710, 738, 768, 793, 815, 837, 846, 848, 848,
1297 849, 849, 850, 850, 852, 861, 870, 883, 882, 900,
1298 900, 901, 901, 901, 903, 909, 918, 919, 919, 921,
1299 921, 922, 924, 931, 931, 944, 945, 947, 947, 948,
1300 948, 950, 958, 961, 967, 966, 972, 972, 973, 977,
1301 981, 985, 989, 993, 997, 1008, 1007, 1087, 1087, 1088,
1302 1088, 1088, 1089, 1089, 1089, 1090, 1090, 1091, 1092, 1092,
1303 1094, 1100, 1106, 1112, 1123, 1129, 1135, 1146, 1153, 1152,
1304 1158, 1158, 1159, 1163, 1167, 1171, 1175, 1179, 1183, 1187,
1305 1191, 1195, 1199, 1203, 1207, 1211, 1215, 1219, 1223, 1227,
1306 1231, 1235, 1239, 1246, 1245, 1251, 1251, 1252, 1256, 1260,
1307 1264, 1268, 1272, 1276, 1280, 1284, 1288, 1292, 1296, 1300,
1308 1304, 1308, 1312, 1316, 1320, 1324, 1328, 1332, 1336, 1340,
1309 1351, 1350, 1411, 1411, 1412, 1413, 1413, 1414, 1415, 1416,
1310 1417, 1418, 1419, 1420, 1421, 1422, 1422, 1423, 1424, 1425,
1311 1426, 1428, 1434, 1440, 1446, 1452, 1458, 1464, 1470, 1476,
1312 1482, 1489, 1495, 1501, 1507, 1516, 1526, 1525, 1531, 1531,
1313 1532, 1536, 1547, 1546, 1553, 1552, 1557, 1557, 1558, 1562,
1314 1566, 1572, 1572, 1573, 1573, 1573, 1573, 1573, 1575, 1575,
1315 1577, 1577, 1579, 1593, 1613, 1619, 1629, 1628, 1670, 1670,
1316 1671, 1671, 1671, 1671, 1672, 1672, 1672, 1673, 1673, 1675,
1317 1681, 1687, 1693, 1705, 1704, 1710, 1710, 1711, 1715, 1719,
1318 1723, 1727, 1731, 1735, 1739, 1743, 1747, 1753, 1767, 1776,
1319 1790, 1789, 1804, 1804, 1805, 1805, 1805, 1805, 1807, 1813,
1320 1819, 1829, 1831, 1831, 1832, 1832, 1834, 1850, 1849, 1874,
1321 1874, 1875, 1875, 1875, 1875, 1877, 1883, 1903, 1902, 1908,
1322 1908, 1909, 1913, 1917, 1921, 1925, 1929, 1933, 1937, 1941,
1323 1945, 1955, 1954, 1975, 1975, 1976, 1976, 1976, 1978, 1985,
1324 1984, 1990, 1990, 1991, 1995, 1999, 2003, 2007, 2011, 2015,
1325 2019, 2023, 2027, 2037, 2036, 2107, 2107, 2108, 2108, 2108,
1326 2109, 2109, 2110, 2111, 2111, 2111, 2112, 2112, 2112, 2113,
1327 2113, 2114, 2116, 2122, 2128, 2134, 2147, 2160, 2166, 2172,
1328 2176, 2185, 2184, 2189, 2189, 2190, 2194, 2200, 2211, 2217,
1329 2223, 2229, 2245, 2244, 2270, 2270, 2271, 2271, 2271, 2273,
1330 2293, 2303, 2302, 2329, 2329, 2330, 2330, 2330, 2332, 2338,
1331 2347, 2349, 2349, 2350, 2350, 2352, 2370, 2369, 2392, 2392,
1332 2393, 2393, 2393, 2395, 2401, 2410, 2413, 2413, 2414, 2414,
1333 2415, 2415, 2416, 2416, 2417, 2417, 2418, 2418, 2419, 2420,
1334 2421, 2421, 2422, 2422, 2423, 2423, 2424, 2424, 2425, 2425,
1335 2426, 2426, 2427, 2427, 2428, 2428, 2429, 2429, 2430, 2430,
1336 2431, 2431, 2432, 2432, 2433, 2434, 2435, 2435, 2436, 2436,
1337 2437, 2438, 2439, 2440, 2440, 2441, 2444, 2449, 2455, 2461,
1338 2467, 2472, 2477, 2482, 2487, 2492, 2497, 2502, 2507, 2512,
1339 2517, 2522, 2527, 2532, 2538, 2549, 2554, 2559, 2564, 2569,
1340 2574, 2577, 2582, 2585, 2590, 2595, 2600, 2605, 2610, 2615,
1341 2620, 2625, 2630, 2635, 2640, 2645, 2654, 2663, 2668, 2673,
1342 2679, 2678, 2683, 2683, 2684, 2687, 2690, 2693, 2696, 2699,
1343 2702, 2705, 2708, 2711, 2714, 2717, 2720, 2723, 2726, 2729,
1344 2732, 2735, 2738, 2741, 2744, 2750, 2749, 2754, 2754, 2755,
1345 2758, 2761, 2764, 2767, 2770, 2773, 2776, 2779, 2782, 2785,
1346 2788, 2791, 2794, 2797, 2800, 2803, 2806, 2809, 2812, 2815,
1347 2820, 2825, 2830, 2839, 2842, 2842, 2843, 2844, 2844, 2845,
1348 2845, 2846, 2847, 2848, 2849, 2850, 2850, 2851, 2851, 2853,
1349 2858, 2863, 2868, 2873, 2878, 2883, 2888, 2893, 2898, 2903,
1350 2908, 2916, 2919, 2919, 2920, 2920, 2921, 2922, 2923, 2924,
1351 2924, 2925, 2926, 2928, 2934, 2940, 2946, 2952, 2961, 2975,
1352 2981
1353 };
1354 #endif
1355
1356 #if YYDEBUG || YYERROR_VERBOSE || 0
1357 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1358 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1359 static const char *const yytname[] =
1360 {
1361 "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1362 "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1363 "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1364 "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1365 "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1366 "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1367 "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1368 "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1369 "FAILED_OPER_NOTICE", "FLATTEN_LINKS", "GECOS", "GENERAL", "GLINE",
1370 "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT", "GLINE_MIN_CIDR",
1371 "GLINE_MIN_CIDR6", "GLINE_REQUEST_DURATION", "GLOBAL_KILL",
1372 "HAVENT_READ_CONF", "HIDDEN", "HIDDEN_NAME", "HIDE_IDLE_FROM_OPERS",
1373 "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SERVICES", "HIDE_SPOOF_IPS",
1374 "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1375 "IP", "IRCD_AUTH", "IRCD_FLAGS", "IRCD_SID", "JOIN_FLOOD_COUNT",
1376 "JOIN_FLOOD_TIME", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE",
1377 "KLINE_EXEMPT", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1378 "LINKS_DELAY", "LISTEN", "MASK", "MAX_ACCEPT", "MAX_BANS",
1379 "MAX_CHANS_PER_OPER", "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT",
1380 "MAX_IDLE", "MAX_LOCAL", "MAX_NICK_CHANGES", "MAX_NICK_LENGTH",
1381 "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS", "MAX_TOPIC_LENGTH",
1382 "MAX_WATCH", "MIN_IDLE", "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE",
1383 "MODULE", "MODULES", "MOTD", "NAME", "NEED_IDENT", "NEED_PASSWORD",
1384 "NETWORK_DESC", "NETWORK_NAME", "NICK", "NO_CREATE_ON_SPLIT",
1385 "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE", "NUMBER",
1386 "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1387 "OPER_UMODES", "OPERATOR", "OPERS_BYPASS_CALLERID", "PACE_WAIT",
1388 "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME",
1389 "PORT", "QSTRING", "RANDOM_IDLE", "REASON", "REDIRPORT", "REDIRSERV",
1390 "REHASH", "REMOTE", "REMOTEBAN", "RESV", "RESV_EXEMPT",
1391 "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE", "SECONDS", "MINUTES",
1392 "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ",
1393 "SERVERHIDE", "SERVERINFO", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1394 "SQUIT", "SSL_CERTIFICATE_FILE", "SSL_CERTIFICATE_FINGERPRINT",
1395 "SSL_CONNECTION_REQUIRED", "SSL_DH_PARAM_FILE", "STATS_E_DISABLED",
1396 "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY",
1397 "STATS_P_OPER_ONLY", "T_ALL", "T_BOTS", "T_CALLERID", "T_CCONN",
1398 "T_CLUSTER", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1399 "T_FARCONNECT", "T_FILE", "T_FULL", "T_GLOBOPS", "T_INVISIBLE", "T_IPV4",
1400 "T_IPV6", "T_LOCOPS", "T_LOG", "T_MAX_CLIENTS", "T_NCHANGE",
1401 "T_NONONREG", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_RESTART", "T_SERVER",
1402 "T_SERVICE", "T_SERVICES_NAME", "T_SERVNOTICE", "T_SET", "T_SHARED",
1403 "T_SIZE", "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL",
1404 "T_SSL_CIPHER_LIST", "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD",
1405 "T_SSLV3", "T_TLSV1", "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED",
1406 "T_UNRESV", "T_UNXLINE", "T_WALLOP", "T_WALLOPS", "T_WEBIRC", "TBOOL",
1407 "THROTTLE_TIME", "TKLINE_EXPIRE_NOTICES", "TMASKED",
1408 "TRUE_NO_OPER_FLOOD", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "TYPE",
1409 "UNKLINE", "USE_EGD", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1410 "WARN_NO_NLINE", "XLINE", "';'", "'}'", "'{'", "'='", "','", "':'",
1411 "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1412 "sizespec", "modules_entry", "modules_items", "modules_item",
1413 "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1414 "serverinfo_item", "serverinfo_ssl_client_method",
1415 "serverinfo_ssl_server_method", "client_method_types",
1416 "client_method_type_item", "server_method_types",
1417 "server_method_type_item", "serverinfo_ssl_certificate_file",
1418 "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1419 "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1420 "serverinfo_description", "serverinfo_network_name",
1421 "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1422 "serverinfo_max_clients", "serverinfo_max_nick_length",
1423 "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1424 "admin_items", "admin_item", "admin_name", "admin_email",
1425 "admin_description", "motd_entry", "$@1", "motd_items", "motd_item",
1426 "motd_mask", "motd_file", "logging_entry", "logging_items",
1427 "logging_item", "logging_use_logging", "logging_file_entry", "$@2",
1428 "logging_file_items", "logging_file_item", "logging_file_name",
1429 "logging_file_size", "logging_file_type", "$@3",
1430 "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@4",
1431 "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1432 "oper_encrypted", "oper_rsa_public_key_file",
1433 "oper_ssl_certificate_fingerprint", "oper_ssl_connection_required",
1434 "oper_class", "oper_umodes", "$@5", "oper_umodes_items",
1435 "oper_umodes_item", "oper_flags", "$@6", "oper_flags_items",
1436 "oper_flags_item", "class_entry", "$@7", "class_items", "class_item",
1437 "class_name", "class_ping_time", "class_number_per_ip",
1438 "class_connectfreq", "class_max_number", "class_max_global",
1439 "class_max_local", "class_max_ident", "class_sendq", "class_recvq",
1440 "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1441 "class_number_per_cidr", "class_min_idle", "class_max_idle",
1442 "class_flags", "$@8", "class_flags_items", "class_flags_item",
1443 "listen_entry", "$@9", "listen_flags", "$@10", "listen_flags_items",
1444 "listen_flags_item", "listen_items", "listen_item", "listen_port",
1445 "$@11", "port_items", "port_item", "listen_address", "listen_host",
1446 "auth_entry", "$@12", "auth_items", "auth_item", "auth_user",
1447 "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@13",
1448 "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1449 "auth_redir_port", "resv_entry", "$@14", "resv_items", "resv_item",
1450 "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1451 "service_items", "service_item", "service_name", "shared_entry", "$@15",
1452 "shared_items", "shared_item", "shared_name", "shared_user",
1453 "shared_type", "$@16", "shared_types", "shared_type_item",
1454 "cluster_entry", "$@17", "cluster_items", "cluster_item", "cluster_name",
1455 "cluster_type", "$@18", "cluster_types", "cluster_type_item",
1456 "connect_entry", "$@19", "connect_items", "connect_item", "connect_name",
1457 "connect_host", "connect_vhost", "connect_send_password",
1458 "connect_accept_password", "connect_ssl_certificate_fingerprint",
1459 "connect_port", "connect_aftype", "connect_flags", "$@20",
1460 "connect_flags_items", "connect_flags_item", "connect_encrypted",
1461 "connect_hub_mask", "connect_leaf_mask", "connect_class",
1462 "connect_ssl_cipher_list", "kill_entry", "$@21", "kill_items",
1463 "kill_item", "kill_user", "kill_reason", "deny_entry", "$@22",
1464 "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1465 "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@23",
1466 "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1467 "general_entry", "general_items", "general_item", "general_max_watch",
1468 "general_gline_enable", "general_gline_duration",
1469 "general_gline_request_duration", "general_gline_min_cidr",
1470 "general_gline_min_cidr6", "general_tkline_expire_notices",
1471 "general_kill_chase_time_limit", "general_hide_spoof_ips",
1472 "general_ignore_bogus_ts", "general_failed_oper_notice",
1473 "general_anti_nick_flood", "general_max_nick_time",
1474 "general_max_nick_changes", "general_max_accept",
1475 "general_anti_spam_exit_message_time", "general_ts_warn_delta",
1476 "general_ts_max_delta", "general_havent_read_conf",
1477 "general_invisible_on_connect", "general_warn_no_nline",
1478 "general_stats_e_disabled", "general_stats_o_oper_only",
1479 "general_stats_P_oper_only", "general_stats_k_oper_only",
1480 "general_stats_i_oper_only", "general_pace_wait",
1481 "general_caller_id_wait", "general_opers_bypass_callerid",
1482 "general_pace_wait_simple", "general_short_motd",
1483 "general_no_oper_flood", "general_true_no_oper_flood",
1484 "general_oper_pass_resv", "general_dots_in_ident", "general_max_targets",
1485 "general_use_egd", "general_egdpool_path", "general_services_name",
1486 "general_ping_cookie", "general_disable_auth", "general_throttle_time",
1487 "general_oper_umodes", "$@24", "umode_oitems", "umode_oitem",
1488 "general_oper_only_umodes", "$@25", "umode_items", "umode_item",
1489 "general_min_nonwildcard", "general_min_nonwildcard_simple",
1490 "general_default_floodcount", "channel_entry", "channel_items",
1491 "channel_item", "channel_disable_fake_channels", "channel_knock_delay",
1492 "channel_knock_delay_channel", "channel_max_chans_per_user",
1493 "channel_max_chans_per_oper", "channel_max_bans",
1494 "channel_default_split_user_count", "channel_default_split_server_count",
1495 "channel_no_create_on_split", "channel_no_join_on_split",
1496 "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1497 "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1498 "serverhide_disable_remote_commands", "serverhide_hide_servers",
1499 "serverhide_hide_services", "serverhide_hidden_name",
1500 "serverhide_links_delay", "serverhide_hidden",
1501 "serverhide_hide_server_ips", YY_NULL
1502 };
1503 #endif
1504
1505 # ifdef YYPRINT
1506 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1507 token YYLEX-NUM. */
1508 static const yytype_uint16 yytoknum[] =
1509 {
1510 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1511 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1512 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1513 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1514 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1515 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1516 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1517 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1518 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1519 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1520 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1521 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1522 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1523 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1524 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1525 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1526 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
1527 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
1528 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1529 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
1530 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
1531 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
1532 475, 476, 477, 478, 479, 59, 125, 123, 61, 44,
1533 58
1534 };
1535 # endif
1536
1537 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1538 static const yytype_uint16 yyr1[] =
1539 {
1540 0, 231, 232, 232, 233, 233, 233, 233, 233, 233,
1541 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
1542 233, 233, 233, 233, 233, 233, 233, 234, 234, 235,
1543 235, 235, 235, 235, 235, 235, 235, 236, 236, 237,
1544 237, 237, 237, 238, 239, 239, 240, 240, 240, 241,
1545 242, 243, 244, 244, 245, 245, 245, 245, 245, 245,
1546 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
1547 245, 245, 246, 247, 248, 248, 249, 249, 250, 250,
1548 251, 251, 252, 253, 254, 255, 256, 257, 258, 259,
1549 260, 261, 262, 263, 264, 265, 266, 267, 268, 268,
1550 269, 269, 269, 269, 270, 271, 272, 274, 273, 275,
1551 275, 276, 276, 276, 277, 278, 279, 280, 280, 281,
1552 281, 281, 282, 284, 283, 285, 285, 286, 286, 286,
1553 286, 287, 288, 288, 290, 289, 291, 291, 292, 292,
1554 292, 292, 292, 292, 292, 294, 293, 295, 295, 296,
1555 296, 296, 296, 296, 296, 296, 296, 296, 296, 296,
1556 297, 298, 299, 300, 301, 302, 303, 304, 306, 305,
1557 307, 307, 308, 308, 308, 308, 308, 308, 308, 308,
1558 308, 308, 308, 308, 308, 308, 308, 308, 308, 308,
1559 308, 308, 308, 310, 309, 311, 311, 312, 312, 312,
1560 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
1561 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
1562 314, 313, 315, 315, 316, 316, 316, 316, 316, 316,
1563 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
1564 316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
1565 326, 327, 328, 329, 330, 331, 333, 332, 334, 334,
1566 335, 335, 337, 336, 339, 338, 340, 340, 341, 341,
1567 341, 342, 342, 343, 343, 343, 343, 343, 345, 344,
1568 346, 346, 347, 347, 348, 349, 351, 350, 352, 352,
1569 353, 353, 353, 353, 353, 353, 353, 353, 353, 354,
1570 355, 356, 357, 359, 358, 360, 360, 361, 361, 361,
1571 361, 361, 361, 361, 361, 361, 361, 362, 363, 364,
1572 366, 365, 367, 367, 368, 368, 368, 368, 369, 370,
1573 371, 372, 373, 373, 374, 374, 375, 377, 376, 378,
1574 378, 379, 379, 379, 379, 380, 381, 383, 382, 384,
1575 384, 385, 385, 385, 385, 385, 385, 385, 385, 385,
1576 385, 387, 386, 388, 388, 389, 389, 389, 390, 392,
1577 391, 393, 393, 394, 394, 394, 394, 394, 394, 394,
1578 394, 394, 394, 396, 395, 397, 397, 398, 398, 398,
1579 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
1580 398, 398, 399, 400, 401, 402, 403, 404, 405, 406,
1581 406, 408, 407, 409, 409, 410, 410, 411, 412, 413,
1582 414, 415, 417, 416, 418, 418, 419, 419, 419, 420,
1583 421, 423, 422, 424, 424, 425, 425, 425, 426, 427,
1584 428, 429, 429, 430, 430, 431, 433, 432, 434, 434,
1585 435, 435, 435, 436, 437, 438, 439, 439, 440, 440,
1586 440, 440, 440, 440, 440, 440, 440, 440, 440, 440,
1587 440, 440, 440, 440, 440, 440, 440, 440, 440, 440,
1588 440, 440, 440, 440, 440, 440, 440, 440, 440, 440,
1589 440, 440, 440, 440, 440, 440, 440, 440, 440, 440,
1590 440, 440, 440, 440, 440, 440, 441, 442, 443, 444,
1591 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
1592 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
1593 465, 465, 466, 466, 467, 468, 469, 470, 471, 472,
1594 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
1595 484, 483, 485, 485, 486, 486, 486, 486, 486, 486,
1596 486, 486, 486, 486, 486, 486, 486, 486, 486, 486,
1597 486, 486, 486, 486, 486, 488, 487, 489, 489, 490,
1598 490, 490, 490, 490, 490, 490, 490, 490, 490, 490,
1599 490, 490, 490, 490, 490, 490, 490, 490, 490, 490,
1600 491, 492, 493, 494, 495, 495, 496, 496, 496, 496,
1601 496, 496, 496, 496, 496, 496, 496, 496, 496, 497,
1602 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
1603 508, 509, 510, 510, 511, 511, 511, 511, 511, 511,
1604 511, 511, 511, 512, 513, 514, 515, 516, 517, 518,
1605 519
1606 };
1607
1608 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
1609 static const yytype_uint8 yyr2[] =
1610 {
1611 0, 2, 0, 2, 1, 1, 1, 1, 1, 1,
1612 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1613 1, 1, 1, 1, 1, 2, 2, 0, 1, 2,
1614 3, 3, 3, 3, 3, 3, 3, 0, 1, 2,
1615 3, 3, 3, 5, 2, 1, 1, 1, 2, 4,
1616 4, 5, 2, 1, 1, 1, 1, 1, 1, 1,
1617 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1618 1, 2, 4, 4, 3, 1, 1, 1, 3, 1,
1619 1, 1, 4, 4, 4, 4, 4, 4, 4, 4,
1620 4, 4, 4, 4, 4, 4, 4, 5, 2, 1,
1621 1, 1, 1, 2, 4, 4, 4, 0, 6, 2,
1622 1, 1, 1, 2, 4, 4, 5, 2, 1, 1,
1623 1, 2, 4, 0, 6, 2, 1, 1, 1, 1,
1624 2, 4, 4, 4, 0, 5, 3, 1, 1, 1,
1625 1, 1, 1, 1, 1, 0, 6, 2, 1, 1,
1626 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
1627 4, 4, 4, 4, 4, 4, 4, 4, 0, 5,
1628 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1629 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1630 1, 1, 1, 0, 5, 3, 1, 3, 1, 3,
1631 1, 3, 1, 1, 1, 1, 1, 1, 1, 1,
1632 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1633 0, 6, 2, 1, 1, 1, 1, 1, 1, 1,
1634 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1635 2, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1636 4, 4, 4, 4, 4, 4, 0, 5, 3, 1,
1637 1, 1, 0, 6, 0, 5, 3, 1, 1, 1,
1638 1, 2, 1, 1, 1, 1, 1, 2, 0, 5,
1639 3, 1, 1, 3, 4, 4, 0, 6, 2, 1,
1640 1, 1, 1, 1, 1, 1, 1, 1, 2, 4,
1641 4, 4, 4, 0, 5, 3, 1, 1, 1, 1,
1642 1, 1, 1, 1, 1, 1, 1, 4, 4, 4,
1643 0, 6, 2, 1, 1, 1, 1, 2, 4, 4,
1644 4, 5, 2, 1, 1, 1, 4, 0, 6, 2,
1645 1, 1, 1, 1, 2, 4, 4, 0, 5, 3,
1646 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1647 1, 0, 6, 2, 1, 1, 1, 2, 4, 0,
1648 5, 3, 1, 1, 1, 1, 1, 1, 1, 1,
1649 1, 1, 1, 0, 6, 2, 1, 1, 1, 1,
1650 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1651 1, 2, 4, 4, 4, 4, 4, 4, 4, 4,
1652 4, 0, 5, 3, 1, 1, 1, 4, 4, 4,
1653 4, 4, 0, 6, 2, 1, 1, 1, 1, 4,
1654 4, 0, 6, 2, 1, 1, 1, 1, 4, 4,
1655 5, 2, 1, 1, 1, 4, 0, 6, 2, 1,
1656 1, 1, 1, 4, 4, 5, 2, 1, 1, 1,
1657 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1658 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1659 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1660 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1661 1, 1, 1, 1, 1, 1, 4, 4, 4, 4,
1662 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1663 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1664 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1665 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1666 0, 5, 3, 1, 1, 1, 1, 1, 1, 1,
1667 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1668 1, 1, 1, 1, 1, 0, 5, 3, 1, 1,
1669 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1670 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1671 4, 4, 4, 5, 2, 1, 1, 1, 1, 1,
1672 1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
1673 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1674 4, 5, 2, 1, 1, 1, 1, 1, 1, 1,
1675 1, 1, 1, 4, 4, 4, 4, 4, 4, 4,
1676 4
1677 };
1678
1679 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
1680 Performed when YYTABLE doesn't specify something else to do. Zero
1681 means the default is an error. */
1682 static const yytype_uint16 yydefact[] =
1683 {
1684 2, 0, 1, 0, 0, 0, 220, 383, 431, 0,
1685 446, 0, 286, 422, 262, 0, 107, 145, 320, 0,
1686 0, 361, 0, 0, 337, 3, 23, 11, 4, 24,
1687 5, 6, 8, 9, 10, 13, 14, 15, 16, 17,
1688 18, 19, 20, 22, 21, 7, 12, 25, 26, 0,
1689 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1690 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1691 0, 0, 0, 0, 0, 99, 100, 102, 101, 618,
1692 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1693 0, 0, 0, 605, 617, 607, 608, 609, 610, 606,
1694 611, 612, 613, 614, 615, 616, 0, 0, 0, 444,
1695 0, 0, 442, 443, 0, 505, 0, 0, 0, 0,
1696 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1697 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1698 0, 0, 575, 0, 550, 0, 0, 0, 0, 0,
1699 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1700 0, 0, 0, 0, 457, 503, 497, 498, 499, 500,
1701 501, 496, 468, 458, 459, 460, 461, 462, 463, 464,
1702 465, 466, 467, 493, 469, 470, 502, 472, 477, 473,
1703 475, 474, 487, 488, 476, 478, 479, 480, 481, 471,
1704 483, 484, 485, 504, 494, 495, 492, 486, 482, 490,
1705 491, 489, 0, 0, 0, 0, 0, 0, 0, 45,
1706 46, 47, 0, 0, 0, 642, 0, 0, 0, 0,
1707 0, 0, 0, 0, 0, 633, 634, 635, 636, 637,
1708 640, 638, 639, 641, 0, 0, 0, 0, 0, 0,
1709 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1710 0, 0, 0, 53, 68, 69, 67, 64, 63, 70,
1711 54, 66, 57, 58, 59, 55, 65, 60, 61, 62,
1712 56, 0, 0, 0, 0, 118, 119, 120, 0, 335,
1713 0, 0, 333, 334, 0, 103, 0, 0, 0, 0,
1714 98, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1715 0, 0, 0, 0, 604, 0, 0, 0, 0, 256,
1716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1717 0, 0, 0, 223, 224, 227, 229, 230, 231, 232,
1718 233, 234, 235, 236, 225, 226, 228, 237, 238, 239,
1719 0, 0, 0, 0, 0, 0, 0, 411, 0, 0,
1720 0, 0, 0, 0, 0, 0, 386, 387, 388, 389,
1721 390, 391, 392, 394, 393, 396, 400, 397, 398, 399,
1722 395, 437, 0, 0, 0, 434, 435, 436, 0, 0,
1723 441, 452, 0, 0, 0, 449, 450, 451, 0, 0,
1724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1725 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1726 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1727 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1728 0, 0, 0, 0, 0, 0, 456, 0, 0, 0,
1729 303, 0, 0, 0, 0, 0, 0, 289, 290, 291,
1730 292, 297, 293, 294, 295, 296, 428, 0, 0, 0,
1731 425, 426, 427, 0, 0, 0, 264, 0, 274, 0,
1732 272, 273, 275, 276, 48, 0, 0, 0, 44, 0,
1733 0, 0, 0, 110, 111, 112, 0, 0, 0, 193,
1734 0, 0, 0, 0, 0, 168, 0, 0, 148, 149,
1735 150, 151, 154, 155, 156, 157, 153, 152, 158, 0,
1736 0, 0, 0, 0, 323, 324, 325, 326, 0, 0,
1737 0, 0, 0, 0, 0, 0, 0, 632, 71, 0,
1738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1739 0, 0, 0, 0, 0, 0, 0, 52, 0, 0,
1740 369, 0, 364, 365, 366, 121, 0, 0, 117, 0,
1741 0, 0, 332, 0, 0, 347, 0, 0, 340, 341,
1742 342, 343, 0, 0, 0, 97, 0, 0, 0, 0,
1743 27, 0, 0, 0, 0, 0, 0, 0, 0, 603,
1744 240, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1745 0, 0, 0, 0, 0, 0, 0, 0, 222, 401,
1746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1747 0, 0, 0, 0, 0, 385, 0, 0, 0, 433,
1748 0, 440, 0, 0, 0, 448, 0, 0, 0, 0,
1749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1753 0, 0, 0, 0, 0, 455, 298, 0, 0, 0,
1754 0, 0, 0, 0, 0, 0, 288, 0, 0, 0,
1755 424, 277, 0, 0, 0, 0, 0, 271, 0, 0,
1756 43, 113, 0, 0, 0, 109, 159, 0, 0, 0,
1757 0, 0, 0, 0, 0, 0, 0, 0, 147, 327,
1758 0, 0, 0, 0, 322, 0, 0, 0, 0, 0,
1759 0, 0, 0, 631, 0, 0, 0, 0, 0, 0,
1760 0, 0, 0, 0, 0, 0, 0, 76, 77, 0,
1761 75, 80, 81, 0, 79, 0, 0, 51, 367, 0,
1762 0, 0, 363, 0, 116, 0, 0, 331, 344, 0,
1763 0, 0, 0, 339, 106, 105, 104, 626, 625, 619,
1764 629, 27, 27, 27, 27, 27, 27, 27, 29, 28,
1765 630, 620, 621, 624, 623, 622, 627, 628, 0, 0,
1766 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1767 0, 0, 37, 0, 0, 221, 0, 0, 0, 0,
1768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1769 0, 384, 0, 0, 432, 445, 0, 0, 447, 517,
1770 521, 535, 602, 548, 542, 545, 516, 508, 507, 510,
1771 511, 509, 524, 514, 515, 525, 513, 520, 519, 518,
1772 543, 506, 600, 601, 539, 585, 579, 596, 580, 581,
1773 582, 590, 599, 583, 593, 597, 586, 598, 591, 587,
1774 592, 584, 595, 589, 588, 594, 0, 578, 541, 559,
1775 554, 571, 555, 556, 557, 565, 574, 558, 568, 572,
1776 561, 573, 566, 562, 567, 560, 570, 564, 563, 569,
1777 0, 553, 536, 534, 537, 547, 538, 527, 532, 533,
1778 530, 531, 528, 529, 546, 549, 512, 540, 523, 522,
1779 544, 526, 0, 0, 0, 0, 0, 0, 0, 0,
1780 287, 0, 0, 423, 0, 0, 0, 282, 278, 281,
1781 263, 49, 50, 0, 0, 108, 0, 0, 0, 0,
1782 0, 0, 0, 0, 0, 0, 146, 0, 0, 0,
1783 321, 644, 643, 649, 647, 650, 645, 646, 648, 88,
1784 96, 87, 94, 95, 86, 90, 89, 83, 82, 84,
1785 93, 85, 72, 0, 73, 0, 91, 92, 0, 0,
1786 362, 122, 0, 0, 0, 134, 0, 126, 127, 129,
1787 128, 336, 0, 0, 0, 338, 30, 31, 32, 33,
1788 34, 35, 36, 251, 252, 244, 261, 260, 0, 259,
1789 246, 248, 255, 247, 245, 254, 241, 253, 243, 242,
1790 37, 37, 37, 39, 38, 249, 250, 406, 409, 410,
1791 420, 417, 403, 418, 415, 416, 0, 414, 419, 402,
1792 408, 405, 407, 421, 404, 438, 439, 453, 454, 576,
1793 0, 551, 0, 301, 302, 311, 308, 313, 309, 310,
1794 316, 312, 314, 307, 315, 0, 306, 300, 319, 318,
1795 317, 299, 430, 429, 285, 284, 269, 270, 268, 0,
1796 267, 0, 0, 0, 114, 115, 167, 163, 212, 200,
1797 209, 208, 198, 203, 219, 211, 217, 202, 205, 214,
1798 216, 213, 210, 218, 206, 215, 204, 207, 0, 196,
1799 160, 162, 164, 165, 166, 177, 172, 189, 173, 174,
1800 175, 183, 192, 176, 186, 190, 179, 191, 184, 180,
1801 185, 178, 188, 182, 181, 187, 0, 171, 161, 330,
1802 328, 329, 74, 78, 368, 373, 379, 382, 375, 381,
1803 376, 380, 378, 374, 377, 0, 372, 130, 0, 0,
1804 0, 0, 125, 345, 351, 357, 360, 353, 359, 354,
1805 358, 356, 352, 355, 0, 350, 346, 257, 0, 40,
1806 41, 42, 412, 0, 577, 552, 304, 0, 265, 0,
1807 283, 280, 279, 0, 0, 0, 194, 0, 169, 0,
1808 370, 0, 0, 0, 0, 0, 124, 348, 0, 258,
1809 413, 305, 266, 199, 197, 201, 195, 170, 371, 131,
1810 133, 132, 140, 143, 142, 139, 144, 141, 138, 0,
1811 137, 349, 135, 0, 136
1812 };
1813
1814 /* YYDEFGOTO[NTERM-NUM]. */
1815 static const yytype_int16 yydefgoto[] =
1816 {
1817 -1, 1, 25, 808, 809, 1063, 1064, 26, 218, 219,
1818 220, 221, 27, 262, 263, 264, 265, 769, 770, 773,
1819 774, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1820 275, 276, 277, 278, 279, 280, 28, 74, 75, 76,
1821 77, 78, 29, 61, 492, 493, 494, 495, 30, 284,
1822 285, 286, 287, 288, 1026, 1027, 1028, 1029, 1030, 1200,
1823 1269, 1270, 31, 62, 507, 508, 509, 510, 511, 512,
1824 513, 514, 515, 516, 517, 735, 1176, 1177, 518, 729,
1825 1148, 1149, 32, 51, 332, 333, 334, 335, 336, 337,
1826 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
1827 348, 349, 604, 1048, 1049, 33, 59, 478, 714, 1119,
1828 1120, 479, 480, 481, 1123, 968, 969, 482, 483, 34,
1829 57, 456, 457, 458, 459, 460, 461, 462, 699, 1105,
1830 1106, 463, 464, 465, 35, 63, 523, 524, 525, 526,
1831 527, 36, 291, 292, 293, 37, 69, 577, 578, 579,
1832 580, 581, 790, 1214, 1215, 38, 66, 561, 562, 563,
1833 564, 780, 1195, 1196, 39, 52, 365, 366, 367, 368,
1834 369, 370, 371, 372, 373, 374, 375, 626, 1076, 1077,
1835 376, 377, 378, 379, 380, 40, 58, 469, 470, 471,
1836 472, 41, 53, 384, 385, 386, 387, 42, 111, 112,
1837 113, 43, 55, 394, 395, 396, 397, 44, 163, 164,
1838 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
1839 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1840 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1841 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
1842 205, 206, 207, 426, 930, 931, 208, 424, 906, 907,
1843 209, 210, 211, 45, 92, 93, 94, 95, 96, 97,
1844 98, 99, 100, 101, 102, 103, 104, 105, 46, 234,
1845 235, 236, 237, 238, 239, 240, 241, 242, 243
1846 };
1847
1848 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1849 STATE-NUM. */
1850 #define YYPACT_NINF -1050
1851 static const yytype_int16 yypact[] =
1852 {
1853 -1050, 656, -1050, -170, -181, -163, -1050, -1050, -1050, -158,
1854 -1050, -151, -1050, -1050, -1050, -111, -1050, -1050, -1050, -93,
1855 -87, -1050, -69, -58, -1050, -1050, -1050, -1050, -1050, -1050,
1856 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1857 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, 20,
1858 926, -33, -3, 0, 30, 11, 387, 39, 62, 74,
1859 197, 81, 82, 83, 685, 428, 87, 40, 60, 91,
1860 -176, 29, 43, 66, 8, -1050, -1050, -1050, -1050, -1050,
1861 94, 95, 109, 111, 112, 113, 115, 116, 117, 118,
1862 122, 123, 7, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1863 -1050, -1050, -1050, -1050, -1050, -1050, 683, 364, 35, -1050,
1864 124, 23, -1050, -1050, 200, -1050, 125, 127, 129, 130,
1865 132, 133, 135, 136, 138, 142, 143, 144, 145, 149,
1866 150, 151, 152, 155, 156, 157, 159, 161, 162, 164,
1867 172, 175, -1050, 176, -1050, 177, 181, 182, 183, 184,
1868 186, 187, 190, 192, 195, 205, 209, 210, 212, 215,
1869 216, 219, 220, 107, -1050, -1050, -1050, -1050, -1050, -1050,
1870 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1871 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1872 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1873 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1874 -1050, -1050, 449, 19, 287, -47, 221, 223, 5, -1050,
1875 -1050, -1050, 16, 438, 6, -1050, 225, 228, 229, 230,
1876 231, 232, 236, 237, 14, -1050, -1050, -1050, -1050, -1050,
1877 -1050, -1050, -1050, -1050, 110, 240, 244, 246, 248, 250,
1878 254, 258, 259, 260, 261, 267, 268, 279, 280, 281,
1879 282, 284, 180, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1880 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1881 -1050, 34, 173, 288, 9, -1050, -1050, -1050, 119, -1050,
1882 298, 44, -1050, -1050, 59, -1050, 214, 303, 393, 302,
1883 -1050, 423, 427, 328, 430, 431, 431, 431, 432, 439,
1884 441, 337, 342, 326, -1050, 327, 325, 333, 334, -1050,
1885 335, 336, 340, 341, 345, 350, 351, 353, 354, 355,
1886 358, 362, 105, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1887 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1888 331, 363, 365, 370, 374, 378, 379, -1050, 380, 381,
1889 383, 384, 397, 399, 400, 241, -1050, -1050, -1050, -1050,
1890 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1891 -1050, -1050, 401, 403, 22, -1050, -1050, -1050, 435, 396,
1892 -1050, -1050, 406, 408, 58, -1050, -1050, -1050, 346, 431,
1893 431, 458, 433, 463, 516, 434, 431, 437, 536, 539,
1894 431, 541, 443, 445, 446, 431, 548, 552, 431, 554,
1895 555, 556, 557, 459, 440, 464, 447, 468, 431, 431,
1896 469, 470, 472, -189, -178, 475, 477, 569, 431, 484,
1897 487, 431, 431, 488, 489, 476, -1050, 478, 479, 481,
1898 -1050, 482, 483, 486, 490, 491, 128, -1050, -1050, -1050,
1899 -1050, -1050, -1050, -1050, -1050, -1050, -1050, 492, 496, 79,
1900 -1050, -1050, -1050, 500, 498, 499, -1050, 501, -1050, 108,
1901 -1050, -1050, -1050, -1050, -1050, 578, 582, 503, -1050, 506,
1902 511, 512, 69, -1050, -1050, -1050, 517, 515, 518, -1050,
1903 519, 520, 522, 525, 526, -1050, 527, 56, -1050, -1050,
1904 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, 531,
1905 529, 532, 540, 4, -1050, -1050, -1050, -1050, 497, 504,
1906 507, 584, 559, 563, 564, 431, 551, -1050, -1050, 586,
1907 565, 622, 672, 674, 661, 663, 665, 666, 667, 668,
1908 688, 675, -123, -105, 676, 679, 571, -1050, 577, 566,
1909 -1050, 25, -1050, -1050, -1050, -1050, 596, 580, -1050, 579,
1910 686, 585, -1050, 587, 581, -1050, 583, 52, -1050, -1050,
1911 -1050, -1050, 589, 590, 591, -1050, 592, 594, 599, 601,
1912 480, 602, 603, 604, 605, 607, 608, 609, 610, -1050,
1913 -1050, 700, 714, 431, 611, 731, 734, 431, 735, 738,
1914 431, 715, 742, 745, 431, 748, 748, 632, -1050, -1050,
1915 737, -71, 740, 652, 747, 749, 639, 750, 752, 763,
1916 753, 754, 758, 759, 657, -1050, 761, 762, 660, -1050,
1917 670, -1050, 764, 766, 673, -1050, 677, 678, 680, 681,
1918 689, 690, 692, 693, 694, 698, 708, 712, 713, 716,
1919 720, 724, 725, 727, 729, 733, 736, 739, 741, 743,
1920 744, 746, 687, 751, 730, 755, 756, 757, 760, 767,
1921 768, 769, 770, 773, 774, 775, 776, 777, 781, 782,
1922 783, 784, 785, 786, 787, -1050, -1050, 778, 702, 684,
1923 791, 833, 837, 838, 840, 788, -1050, 841, 845, 789,
1924 -1050, -1050, 850, 851, 790, 867, 792, -1050, 794, 795,
1925 -1050, -1050, 853, 855, 796, -1050, -1050, 856, 771, 797,
1926 861, 862, 864, 865, 780, 798, 893, 799, -1050, -1050,
1927 894, 900, 901, 802, -1050, 803, 806, 807, 808, 809,
1928 810, 811, 812, -1050, 813, 814, 815, 816, 817, 818,
1929 819, 820, 821, 822, 823, 824, 825, -1050, -1050, -211,
1930 -1050, -1050, -1050, -182, -1050, 826, 827, -1050, -1050, 931,
1931 828, 829, -1050, 830, -1050, 170, 832, -1050, -1050, 936,
1932 831, 938, 836, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1933 -1050, 431, 431, 431, 431, 431, 431, 431, -1050, -1050,
1934 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, 839, 842,
1935 843, -34, 844, 846, 847, 848, 849, 852, 854, 857,
1936 858, 859, 317, 860, 863, -1050, 866, 868, 869, 870,
1937 871, 872, 873, 17, 874, 875, 876, 877, 878, 879,
1938 880, -1050, 881, 882, -1050, -1050, 883, 884, -1050, -1050,
1939 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1940 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1941 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1942 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1943 -1050, -1050, -1050, -1050, -1050, -1050, -177, -1050, -1050, -1050,
1944 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1945 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1946 -171, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1947 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1948 -1050, -1050, 885, 886, 534, 887, 888, 889, 890, 891,
1949 -1050, 892, 895, -1050, 896, 897, -21, 903, 834, -1050,
1950 -1050, -1050, -1050, 898, 899, -1050, 902, 904, 465, 905,
1951 906, 907, 908, 909, 765, 910, -1050, 911, 912, 913,
1952 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1953 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1954 -1050, -1050, -1050, -123, -1050, -105, -1050, -1050, 914, 558,
1955 -1050, -1050, 915, 916, 917, -1050, 67, -1050, -1050, -1050,
1956 -1050, -1050, 918, 619, 921, -1050, -1050, -1050, -1050, -1050,
1957 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -131, -1050,
1958 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1959 748, 748, 748, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1960 -1050, -1050, -1050, -1050, -1050, -1050, -125, -1050, -1050, -1050,
1961 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1962 687, -1050, 730, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1963 -1050, -1050, -1050, -1050, -1050, -50, -1050, -1050, -1050, -1050,
1964 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -49,
1965 -1050, 955, 867, 922, -1050, -1050, -1050, -1050, -1050, 835,
1966 -1050, -1050, 919, -1050, -1050, -1050, -1050, 920, -1050, -1050,
1967 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -20, -1050,
1968 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1969 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1970 -1050, -1050, -1050, -1050, -1050, -1050, -14, -1050, -1050, -1050,
1971 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1972 -1050, -1050, -1050, -1050, -1050, -9, -1050, -1050, 944, -70,
1973 923, 927, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1974 -1050, -1050, -1050, -1050, 61, -1050, -1050, -1050, -34, -1050,
1975 -1050, -1050, -1050, 17, -1050, -1050, -1050, 534, -1050, -21,
1976 -1050, -1050, -1050, 942, 947, 948, -1050, 465, -1050, 765,
1977 -1050, 558, 928, 929, 930, 329, -1050, -1050, 619, -1050,
1978 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1979 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, 77,
1980 -1050, -1050, -1050, 329, -1050
1981 };
1982
1983 /* YYPGOTO[NTERM-NUM]. */
1984 static const yytype_int16 yypgoto[] =
1985 {
1986 -1050, -1050, -1050, -283, -303, -1049, -615, -1050, -1050, 924,
1987 -1050, -1050, -1050, -1050, 925, -1050, -1050, -1050, -24, -1050,
1988 63, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1989 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, 1006, -1050,
1990 -1050, -1050, -1050, -1050, -1050, 595, -1050, -1050, -1050, -1050,
1991 805, -1050, -1050, -1050, -1050, 55, -1050, -1050, -1050, -1050,
1992 -1050, -187, -1050, -1050, -1050, 612, -1050, -1050, -1050, -1050,
1993 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -149, -1050, -1050,
1994 -1050, -145, -1050, -1050, -1050, 793, -1050, -1050, -1050, -1050,
1995 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1996 -1050, -1050, -1050, -1050, -92, -1050, -1050, -1050, -1050, -1050,
1997 -101, -1050, 662, -1050, -1050, -1050, 26, -1050, -1050, -1050,
1998 -1050, -1050, 701, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1999 -68, -1050, -1050, -1050, -1050, -1050, -1050, 633, -1050, -1050,
2000 -1050, -1050, -1050, 932, -1050, -1050, -1050, -1050, 588, -1050,
2001 -1050, -1050, -1050, -1050, -90, -1050, -1050, -1050, 600, -1050,
2002 -1050, -1050, -1050, -81, -1050, -1050, -1050, 801, -1050, -1050,
2003 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -61,
2004 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, 695, -1050,
2005 -1050, -1050, -1050, -1050, 779, -1050, -1050, -1050, -1050, 1056,
2006 -1050, -1050, -1050, -1050, 800, -1050, -1050, -1050, -1050, 1005,
2007 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
2008 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
2009 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
2010 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
2011 -1050, -1050, -1050, -1050, -1050, 78, -1050, -1050, -1050, 84,
2012 -1050, -1050, -1050, -1050, -1050, 1077, -1050, -1050, -1050, -1050,
2013 -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
2014 937, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050
2015 };
2016
2017 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
2018 positive, shift that token. If negative, reduce the rule which
2019 number is the opposite. If YYTABLE_NINF, syntax error. */
2020 #define YYTABLE_NINF -124
2021 static const yytype_int16 yytable[] =
2022 {
2023 833, 834, 591, 592, 593, 519, 215, 519, 79, 70,
2024 282, 1219, 1220, 1221, 1012, 225, 1046, 489, 1013, 681,
2025 466, 70, 682, 381, 109, 1074, 558, 1116, 80, 81,
2026 683, 109, 71, 684, 82, 558, 381, 832, 520, 72,
2027 520, 282, 226, 1014, 71, 289, 49, 1015, 1089, 295,
2028 227, 72, 1090, 573, 1091, 47, 48, 496, 1092, 391,
2029 573, 289, 228, 229, 50, 230, 231, 232, 1022, 54,
2030 489, 83, 84, 497, 767, 768, 56, 85, 86, 521,
2031 466, 521, 382, 110, 87, 88, 89, 233, 498, 1047,
2032 110, 490, 771, 772, 1217, 382, 647, 648, 1218, 216,
2033 1222, 837, 838, 654, 1223, 73, 315, 658, 115, 473,
2034 90, 91, 663, 116, 117, 666, 60, 73, 499, 118,
2035 316, 317, 559, 217, 318, 676, 677, 119, 522, 447,
2036 522, 559, 1243, 120, 64, 688, 121, 122, 691, 692,
2037 65, 290, 123, 467, 490, 448, 383, 124, 125, 574,
2038 126, 127, 128, 500, 129, 392, 574, 290, 67, 383,
2039 449, 130, 1117, 474, 1023, 131, 132, 319, 475, 68,
2040 476, 1022, 1118, 501, 133, 1226, 1228, -123, 484, 1227,
2041 1229, 244, 393, 134, 491, 320, 321, 322, 323, 502,
2042 450, 135, 324, 136, 106, 137, 325, 138, 215, 139,
2043 140, 391, 326, 467, 245, 1236, 503, 504, -123, 1237,
2044 1075, 1238, 141, 327, 328, 1239, 1240, 142, 143, 144,
2045 1241, 145, 146, 147, 107, 329, 148, 108, 283, 477,
2046 743, 487, 752, 313, 299, 567, 246, 491, 114, 468,
2047 536, 560, 350, 247, 351, 451, 352, 330, 638, 389,
2048 560, 781, 149, 452, 453, 505, 1024, 296, 353, 283,
2049 150, 151, 152, 153, 154, 248, 212, 1023, 575, 249,
2050 571, 297, 576, 354, 454, 575, 506, 250, 792, 576,
2051 251, 252, 737, 1025, 644, 331, 1247, 569, 473, 213,
2052 1248, 216, 155, 1201, 298, 724, 355, 392, 356, 468,
2053 820, 214, 1272, 357, 824, 709, 1273, 827, 222, 223,
2054 224, 831, 253, 358, 281, 217, 156, 157, 294, 158,
2055 159, 160, 301, 302, 393, 161, 1060, 1061, 1062, 254,
2056 162, 617, 255, 445, 716, 538, 582, 303, 359, 304,
2057 305, 306, 474, 307, 308, 309, 310, 475, 455, 476,
2058 311, 312, 388, 398, 705, 399, 256, 400, 401, 1024,
2059 402, 403, 360, 404, 405, 350, 406, 351, 1262, 352,
2060 407, 408, 409, 410, 257, 258, 259, 411, 412, 413,
2061 414, 353, 361, 415, 416, 417, 1025, 418, 115, 419,
2062 420, 362, 421, 116, 117, 1263, 354, 1264, 565, 118,
2063 422, 260, 261, 423, 425, 427, 556, 119, 477, 428,
2064 429, 430, 431, 120, 432, 433, 121, 122, 434, 355,
2065 435, 356, 123, 436, 832, 583, 357, 124, 125, 244,
2066 126, 127, 128, 437, 129, 363, 358, 438, 439, 496,
2067 440, 130, 1265, 441, 442, 131, 132, 443, 444, 485,
2068 447, 486, 245, 528, 133, 497, 529, 530, 531, 532,
2069 533, 359, 364, 134, 534, 535, 448, 634, 539, 1128,
2070 498, 135, 540, 136, 541, 137, 542, 138, 543, 139,
2071 140, 449, 544, 1129, 246, 360, 545, 546, 547, 548,
2072 1130, 247, 141, 1266, 1267, 549, 550, 142, 143, 144,
2073 499, 145, 146, 147, 1131, 361, 148, 551, 552, 553,
2074 554, 450, 555, 248, 362, 584, 566, 249, 1036, 1037,
2075 1038, 1039, 1040, 1041, 1042, 250, 570, 585, 251, 252,
2076 586, 1132, 149, 1133, 587, 500, 588, 589, 590, 594,
2077 150, 151, 152, 153, 154, 597, 595, 1095, 596, 1268,
2078 598, 599, 600, 601, 646, 501, 619, 640, 363, 1134,
2079 253, 602, 603, 605, 606, 649, 451, 1096, 607, 608,
2080 651, 502, 155, 609, 452, 453, 1097, 254, 610, 611,
2081 255, 612, 613, 614, 1244, 364, 615, 590, 503, 504,
2082 616, 620, 1135, 621, 1136, 454, 156, 157, 622, 158,
2083 159, 160, 623, 1098, 256, 161, 624, 625, 627, 628,
2084 162, 629, 630, 1137, 801, 802, 803, 804, 805, 806,
2085 807, 641, 257, 258, 259, 631, 1185, 632, 633, 636,
2086 1138, 637, 1099, 1100, 642, 1139, 643, 505, 652, 1140,
2087 1101, 650, 653, 656, 1141, 655, 657, 1142, 659, 260,
2088 261, 660, 1143, 661, 662, 664, 2, 3, 506, 665,
2089 4, 667, 668, 669, 670, 1102, 1144, 671, 672, 455,
2090 5, 1145, 673, 6, 7, 674, 675, 678, 679, 8,
2091 680, 1103, 1146, 685, 315, 686, 225, 1204, 1186, 1147,
2092 9, 687, 689, 10, 11, 690, 693, 694, 316, 317,
2093 718, 695, 318, 696, 719, 745, 748, 697, 754, 698,
2094 700, 701, 746, 226, 702, 747, 1187, 12, 703, 704,
2095 707, 227, 13, 1188, 708, 711, 712, 713, 720, 715,
2096 14, 721, 1189, 228, 229, 885, 230, 231, 232, 722,
2097 723, 1104, 726, 727, 756, 319, 728, 730, 731, 1205,
2098 732, 15, 16, 733, 734, 736, 739, 740, 233, 1190,
2099 741, 1191, 1192, 320, 321, 322, 323, 749, 742, 17,
2100 324, 750, 751, 755, 325, 1193, 753, 1206, 909, 757,
2101 326, 758, 1194, 759, 1207, 760, 18, 761, 762, 763,
2102 764, 327, 328, 1208, 779, 765, 777, 766, 775, 19,
2103 20, 776, 778, 329, 783, 784, 785, 818, 786, 789,
2104 787, 791, 788, 1155, 794, 795, 796, 797, 21, 798,
2105 1209, 819, 1210, 1211, 799, 330, 800, 810, 811, 812,
2106 813, 22, 814, 815, 816, 817, 1212, 828, 822, 821,
2107 23, 823, 825, 1213, 24, 826, 886, 887, 888, 829,
2108 889, 890, 830, 891, 892, 832, 893, 835, 894, 836,
2109 840, 895, 839, 331, 896, 897, 898, 843, 899, 841,
2110 846, 842, 844, 900, 845, 847, 848, 901, 902, 903,
2111 849, 850, 851, 852, 853, 854, 856, 904, 857, 910,
2112 911, 912, 905, 913, 914, 855, 915, 916, 858, 917,
2113 952, 918, 859, 860, 919, 861, 862, 920, 921, 922,
2114 953, 923, 954, 955, 863, 864, 924, 865, 866, 867,
2115 925, 926, 927, 868, 1156, 1157, 1158, 79, 1159, 1160,
2116 928, 1161, 1162, 869, 1163, 929, 1164, 870, 871, 1165,
2117 956, 872, 1166, 1167, 1168, 873, 1169, 80, 81, 874,
2118 875, 1170, 876, 82, 877, 1171, 1172, 1173, 878, 957,
2119 958, 879, 959, 961, 880, 1174, 881, 962, 882, 883,
2120 1175, 884, 964, 965, 967, 973, 908, 974, 976, 977,
2121 932, 933, 934, 979, 980, 935, 981, 982, 983, 1182,
2122 83, 84, 936, 937, 938, 939, 85, 86, 940, 941,
2123 942, 943, 944, 87, 88, 89, 945, 946, 947, 948,
2124 949, 950, 951, 960, 963, 985, 987, 970, 966, 971,
2125 972, 975, 988, 989, 986, 978, 984, 990, 991, 90,
2126 91, 992, 993, 994, 995, 996, 997, 998, 999, 1000,
2127 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010,
2128 1011, 1016, 1017, 1018, 1020, 1021, 1019, 1031, 1032, 1033,
2129 1034, 1035, 1230, 1122, 1043, 1233, 1242, 1044, 1045, 1050,
2130 1253, 1051, 1052, 1053, 1054, 1254, 1255, 1055, 1183, 1056,
2131 300, 1202, 1057, 1058, 1059, 1065, 1274, 725, 1066, 568,
2132 1257, 1067, 1256, 1068, 1069, 1070, 1071, 1072, 1073, 1078,
2133 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088,
2134 1093, 1094, 1107, 1108, 1109, 1110, 1111, 1112, 1121, 738,
2135 1113, 1114, 1115, 1124, 1125, 618, 1249, 1126, 1252, 1127,
2136 1150, 1151, 1152, 1153, 1154, 1178, 1179, 1180, 1181, 1184,
2137 1197, 717, 488, 1203, 1198, 1199, 1216, 1232, 1231, 1234,
2138 1235, 1245, 1246, 1259, 1260, 1261, 744, 706, 1271, 1251,
2139 1258, 782, 1250, 639, 710, 793, 635, 390, 446, 314,
2140 1225, 537, 0, 0, 1224, 0, 0, 0, 0, 0,
2141 0, 0, 0, 0, 0, 0, 0, 557, 0, 0,
2142 0, 0, 0, 0, 645, 0, 0, 0, 0, 0,
2143 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2144 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2145 0, 0, 0, 572
2146 };
2147
2148 #define yypact_value_is_default(Yystate) \
2149 (!!((Yystate) == (-1050)))
2150
2151 #define yytable_value_is_error(Yytable_value) \
2152 YYID (0)
2153
2154 static const yytype_int16 yycheck[] =
2155 {
2156 615, 616, 305, 306, 307, 1, 1, 1, 1, 1,
2157 1, 1060, 1061, 1062, 225, 1, 50, 1, 229, 208,
2158 1, 1, 211, 1, 1, 8, 1, 48, 21, 22,
2159 208, 1, 24, 211, 27, 1, 1, 107, 34, 31,
2160 34, 1, 28, 225, 24, 1, 227, 229, 225, 225,
2161 36, 31, 229, 1, 225, 225, 226, 1, 229, 1,
2162 1, 1, 48, 49, 227, 51, 52, 53, 1, 227,
2163 1, 64, 65, 17, 197, 198, 227, 70, 71, 75,
2164 1, 75, 60, 60, 77, 78, 79, 73, 32, 123,
2165 60, 75, 197, 198, 225, 60, 399, 400, 229, 94,
2166 225, 172, 173, 406, 229, 97, 1, 410, 1, 1,
2167 103, 104, 415, 6, 7, 418, 227, 97, 62, 12,
2168 15, 16, 97, 118, 19, 428, 429, 20, 124, 1,
2169 124, 97, 202, 26, 227, 438, 29, 30, 441, 442,
2170 227, 97, 35, 124, 75, 17, 124, 40, 41, 97,
2171 43, 44, 45, 97, 47, 97, 97, 97, 227, 124,
2172 32, 54, 183, 55, 97, 58, 59, 62, 60, 227,
2173 62, 1, 193, 117, 67, 225, 225, 168, 225, 229,
2174 229, 1, 124, 76, 168, 80, 81, 82, 83, 133,
2175 62, 84, 87, 86, 227, 88, 91, 90, 1, 92,
2176 93, 1, 97, 124, 24, 225, 150, 151, 168, 229,
2177 193, 225, 105, 108, 109, 229, 225, 110, 111, 112,
2178 229, 114, 115, 116, 227, 120, 119, 227, 219, 121,
2179 226, 226, 535, 226, 226, 226, 56, 168, 227, 220,
2180 226, 216, 1, 63, 3, 117, 5, 142, 226, 226,
2181 216, 226, 145, 125, 126, 199, 189, 228, 17, 219,
2182 153, 154, 155, 156, 157, 85, 227, 97, 216, 89,
2183 226, 228, 220, 32, 146, 216, 220, 97, 226, 220,
2184 100, 101, 226, 216, 226, 180, 225, 168, 1, 227,
2185 229, 94, 185, 226, 228, 226, 55, 97, 57, 220,
2186 603, 227, 225, 62, 607, 226, 229, 610, 227, 227,
2187 227, 614, 132, 72, 227, 118, 209, 210, 227, 212,
2188 213, 214, 228, 228, 124, 218, 9, 10, 11, 149,
2189 223, 226, 152, 226, 226, 225, 122, 228, 97, 228,
2190 228, 228, 55, 228, 228, 228, 228, 60, 220, 62,
2191 228, 228, 228, 228, 226, 228, 176, 228, 228, 189,
2192 228, 228, 121, 228, 228, 1, 228, 3, 39, 5,
2193 228, 228, 228, 228, 194, 195, 196, 228, 228, 228,
2194 228, 17, 141, 228, 228, 228, 216, 228, 1, 228,
2195 228, 150, 228, 6, 7, 66, 32, 68, 225, 12,
2196 228, 221, 222, 228, 228, 228, 226, 20, 121, 228,
2197 228, 228, 228, 26, 228, 228, 29, 30, 228, 55,
2198 228, 57, 35, 228, 107, 122, 62, 40, 41, 1,
2199 43, 44, 45, 228, 47, 194, 72, 228, 228, 1,
2200 228, 54, 113, 228, 228, 58, 59, 228, 228, 228,
2201 1, 228, 24, 228, 67, 17, 228, 228, 228, 228,
2202 228, 97, 221, 76, 228, 228, 17, 226, 228, 4,
2203 32, 84, 228, 86, 228, 88, 228, 90, 228, 92,
2204 93, 32, 228, 18, 56, 121, 228, 228, 228, 228,
2205 25, 63, 105, 164, 165, 228, 228, 110, 111, 112,
2206 62, 114, 115, 116, 39, 141, 119, 228, 228, 228,
2207 228, 62, 228, 85, 150, 122, 228, 89, 801, 802,
2208 803, 804, 805, 806, 807, 97, 228, 225, 100, 101,
2209 107, 66, 145, 68, 107, 97, 208, 107, 107, 107,
2210 153, 154, 155, 156, 157, 208, 107, 13, 107, 220,
2211 208, 225, 225, 228, 208, 117, 225, 122, 194, 94,
2212 132, 228, 228, 228, 228, 107, 117, 33, 228, 228,
2213 107, 133, 185, 228, 125, 126, 42, 149, 228, 228,
2214 152, 228, 228, 228, 1199, 221, 228, 107, 150, 151,
2215 228, 228, 127, 228, 129, 146, 209, 210, 228, 212,
2216 213, 214, 228, 69, 176, 218, 228, 228, 228, 228,
2217 223, 228, 228, 148, 134, 135, 136, 137, 138, 139,
2218 140, 225, 194, 195, 196, 228, 68, 228, 228, 228,
2219 165, 228, 98, 99, 228, 170, 228, 199, 122, 174,
2220 106, 208, 208, 107, 179, 208, 107, 182, 107, 221,
2221 222, 208, 187, 208, 208, 107, 0, 1, 220, 107,
2222 4, 107, 107, 107, 107, 131, 201, 208, 228, 220,
2223 14, 206, 208, 17, 18, 228, 208, 208, 208, 23,
2224 208, 147, 217, 208, 1, 208, 1, 68, 130, 224,
2225 34, 122, 208, 37, 38, 208, 208, 208, 15, 16,
2226 122, 225, 19, 225, 122, 208, 122, 228, 122, 228,
2227 228, 228, 208, 28, 228, 208, 158, 61, 228, 228,
2228 228, 36, 66, 165, 228, 225, 228, 228, 225, 228,
2229 74, 225, 174, 48, 49, 48, 51, 52, 53, 228,
2230 228, 207, 225, 228, 122, 62, 228, 228, 228, 130,
2231 228, 95, 96, 228, 228, 228, 225, 228, 73, 201,
2232 228, 203, 204, 80, 81, 82, 83, 208, 228, 113,
2233 87, 208, 208, 208, 91, 217, 225, 158, 48, 107,
2234 97, 107, 224, 122, 165, 122, 130, 122, 122, 122,
2235 122, 108, 109, 174, 228, 107, 225, 122, 122, 143,
2236 144, 122, 225, 120, 208, 225, 227, 107, 122, 228,
2237 225, 228, 225, 48, 225, 225, 225, 225, 162, 225,
2238 201, 107, 203, 204, 225, 142, 225, 225, 225, 225,
2239 225, 175, 225, 225, 225, 225, 217, 122, 107, 228,
2240 184, 107, 107, 224, 188, 107, 159, 160, 161, 107,
2241 163, 164, 107, 166, 167, 107, 169, 225, 171, 122,
2242 208, 174, 122, 180, 177, 178, 179, 228, 181, 122,
2243 107, 122, 122, 186, 122, 122, 122, 190, 191, 192,
2244 122, 122, 225, 122, 122, 225, 122, 200, 122, 159,
2245 160, 161, 205, 163, 164, 225, 166, 167, 225, 169,
2246 122, 171, 225, 225, 174, 225, 225, 177, 178, 179,
2247 208, 181, 228, 122, 225, 225, 186, 225, 225, 225,
2248 190, 191, 192, 225, 159, 160, 161, 1, 163, 164,
2249 200, 166, 167, 225, 169, 205, 171, 225, 225, 174,
2250 107, 225, 177, 178, 179, 225, 181, 21, 22, 225,
2251 225, 186, 225, 27, 225, 190, 191, 192, 225, 122,
2252 122, 225, 122, 122, 225, 200, 225, 122, 225, 225,
2253 205, 225, 122, 122, 107, 122, 225, 122, 122, 208,
2254 225, 225, 225, 122, 122, 225, 122, 122, 208, 1013,
2255 64, 65, 225, 225, 225, 225, 70, 71, 225, 225,
2256 225, 225, 225, 77, 78, 79, 225, 225, 225, 225,
2257 225, 225, 225, 225, 225, 122, 122, 225, 228, 225,
2258 225, 225, 122, 122, 225, 228, 228, 225, 225, 103,
2259 104, 225, 225, 225, 225, 225, 225, 225, 225, 225,
2260 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
2261 225, 225, 225, 122, 225, 225, 228, 225, 122, 228,
2262 122, 225, 107, 229, 225, 230, 122, 225, 225, 225,
2263 128, 225, 225, 225, 225, 128, 128, 225, 1015, 225,
2264 74, 1026, 225, 225, 225, 225, 1273, 492, 225, 284,
2265 1239, 225, 1237, 225, 225, 225, 225, 225, 225, 225,
2266 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
2267 225, 225, 225, 225, 225, 225, 225, 225, 215, 507,
2268 225, 225, 225, 225, 225, 332, 1218, 225, 1229, 225,
2269 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
2270 225, 479, 218, 225, 228, 228, 225, 225, 1122, 230,
2271 230, 228, 225, 225, 225, 225, 523, 456, 1248, 1227,
2272 1241, 561, 1223, 384, 469, 577, 365, 111, 163, 92,
2273 1092, 234, -1, -1, 1090, -1, -1, -1, -1, -1,
2274 -1, -1, -1, -1, -1, -1, -1, 262, -1, -1,
2275 -1, -1, -1, -1, 394, -1, -1, -1, -1, -1,
2276 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2277 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2278 -1, -1, -1, 291
2279 };
2280
2281 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2282 symbol of state STATE-NUM. */
2283 static const yytype_uint16 yystos[] =
2284 {
2285 0, 232, 0, 1, 4, 14, 17, 18, 23, 34,
2286 37, 38, 61, 66, 74, 95, 96, 113, 130, 143,
2287 144, 162, 175, 184, 188, 233, 238, 243, 267, 273,
2288 279, 293, 313, 336, 350, 365, 372, 376, 386, 395,
2289 416, 422, 428, 432, 438, 494, 509, 225, 226, 227,
2290 227, 314, 396, 423, 227, 433, 227, 351, 417, 337,
2291 227, 274, 294, 366, 227, 227, 387, 227, 227, 377,
2292 1, 24, 31, 97, 268, 269, 270, 271, 272, 1,
2293 21, 22, 27, 64, 65, 70, 71, 77, 78, 79,
2294 103, 104, 495, 496, 497, 498, 499, 500, 501, 502,
2295 503, 504, 505, 506, 507, 508, 227, 227, 227, 1,
2296 60, 429, 430, 431, 227, 1, 6, 7, 12, 20,
2297 26, 29, 30, 35, 40, 41, 43, 44, 45, 47,
2298 54, 58, 59, 67, 76, 84, 86, 88, 90, 92,
2299 93, 105, 110, 111, 112, 114, 115, 116, 119, 145,
2300 153, 154, 155, 156, 157, 185, 209, 210, 212, 213,
2301 214, 218, 223, 439, 440, 441, 442, 443, 444, 445,
2302 446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
2303 456, 457, 458, 459, 460, 461, 462, 463, 464, 465,
2304 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
2305 476, 477, 478, 479, 480, 481, 482, 483, 487, 491,
2306 492, 493, 227, 227, 227, 1, 94, 118, 239, 240,
2307 241, 242, 227, 227, 227, 1, 28, 36, 48, 49,
2308 51, 52, 53, 73, 510, 511, 512, 513, 514, 515,
2309 516, 517, 518, 519, 1, 24, 56, 63, 85, 89,
2310 97, 100, 101, 132, 149, 152, 176, 194, 195, 196,
2311 221, 222, 244, 245, 246, 247, 252, 253, 254, 255,
2312 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
2313 266, 227, 1, 219, 280, 281, 282, 283, 284, 1,
2314 97, 373, 374, 375, 227, 225, 228, 228, 228, 226,
2315 269, 228, 228, 228, 228, 228, 228, 228, 228, 228,
2316 228, 228, 228, 226, 496, 1, 15, 16, 19, 62,
2317 80, 81, 82, 83, 87, 91, 97, 108, 109, 120,
2318 142, 180, 315, 316, 317, 318, 319, 320, 321, 322,
2319 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
2320 1, 3, 5, 17, 32, 55, 57, 62, 72, 97,
2321 121, 141, 150, 194, 221, 397, 398, 399, 400, 401,
2322 402, 403, 404, 405, 406, 407, 411, 412, 413, 414,
2323 415, 1, 60, 124, 424, 425, 426, 427, 228, 226,
2324 430, 1, 97, 124, 434, 435, 436, 437, 228, 228,
2325 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
2326 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
2327 228, 228, 228, 228, 488, 228, 484, 228, 228, 228,
2328 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
2329 228, 228, 228, 228, 228, 226, 440, 1, 17, 32,
2330 62, 117, 125, 126, 146, 220, 352, 353, 354, 355,
2331 356, 357, 358, 362, 363, 364, 1, 124, 220, 418,
2332 419, 420, 421, 1, 55, 60, 62, 121, 338, 342,
2333 343, 344, 348, 349, 225, 228, 228, 226, 240, 1,
2334 75, 168, 275, 276, 277, 278, 1, 17, 32, 62,
2335 97, 117, 133, 150, 151, 199, 220, 295, 296, 297,
2336 298, 299, 300, 301, 302, 303, 304, 305, 309, 1,
2337 34, 75, 124, 367, 368, 369, 370, 371, 228, 228,
2338 228, 228, 228, 228, 228, 228, 226, 511, 225, 228,
2339 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
2340 228, 228, 228, 228, 228, 228, 226, 245, 1, 97,
2341 216, 388, 389, 390, 391, 225, 228, 226, 281, 168,
2342 228, 226, 374, 1, 97, 216, 220, 378, 379, 380,
2343 381, 382, 122, 122, 122, 225, 107, 107, 208, 107,
2344 107, 235, 235, 235, 107, 107, 107, 208, 208, 225,
2345 225, 228, 228, 228, 333, 228, 228, 228, 228, 228,
2346 228, 228, 228, 228, 228, 228, 228, 226, 316, 225,
2347 228, 228, 228, 228, 228, 228, 408, 228, 228, 228,
2348 228, 228, 228, 228, 226, 398, 228, 228, 226, 425,
2349 122, 225, 228, 228, 226, 435, 208, 235, 235, 107,
2350 208, 107, 122, 208, 235, 208, 107, 107, 235, 107,
2351 208, 208, 208, 235, 107, 107, 235, 107, 107, 107,
2352 107, 208, 228, 208, 228, 208, 235, 235, 208, 208,
2353 208, 208, 211, 208, 211, 208, 208, 122, 235, 208,
2354 208, 235, 235, 208, 208, 225, 225, 228, 228, 359,
2355 228, 228, 228, 228, 228, 226, 353, 228, 228, 226,
2356 419, 225, 228, 228, 339, 228, 226, 343, 122, 122,
2357 225, 225, 228, 228, 226, 276, 225, 228, 228, 310,
2358 228, 228, 228, 228, 228, 306, 228, 226, 296, 225,
2359 228, 228, 228, 226, 368, 208, 208, 208, 122, 208,
2360 208, 208, 235, 225, 122, 208, 122, 107, 107, 122,
2361 122, 122, 122, 122, 122, 107, 122, 197, 198, 248,
2362 249, 197, 198, 250, 251, 122, 122, 225, 225, 228,
2363 392, 226, 389, 208, 225, 227, 122, 225, 225, 228,
2364 383, 228, 226, 379, 225, 225, 225, 225, 225, 225,
2365 225, 134, 135, 136, 137, 138, 139, 140, 234, 235,
2366 225, 225, 225, 225, 225, 225, 225, 225, 107, 107,
2367 235, 228, 107, 107, 235, 107, 107, 235, 122, 107,
2368 107, 235, 107, 237, 237, 225, 122, 172, 173, 122,
2369 208, 122, 122, 228, 122, 122, 107, 122, 122, 122,
2370 122, 225, 122, 122, 225, 225, 122, 122, 225, 225,
2371 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
2372 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
2373 225, 225, 225, 225, 225, 48, 159, 160, 161, 163,
2374 164, 166, 167, 169, 171, 174, 177, 178, 179, 181,
2375 186, 190, 191, 192, 200, 205, 489, 490, 225, 48,
2376 159, 160, 161, 163, 164, 166, 167, 169, 171, 174,
2377 177, 178, 179, 181, 186, 190, 191, 192, 200, 205,
2378 485, 486, 225, 225, 225, 225, 225, 225, 225, 225,
2379 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
2380 225, 225, 122, 208, 228, 122, 107, 122, 122, 122,
2381 225, 122, 122, 225, 122, 122, 228, 107, 346, 347,
2382 225, 225, 225, 122, 122, 225, 122, 208, 228, 122,
2383 122, 122, 122, 208, 228, 122, 225, 122, 122, 122,
2384 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
2385 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
2386 225, 225, 225, 229, 225, 229, 225, 225, 122, 228,
2387 225, 225, 1, 97, 189, 216, 285, 286, 287, 288,
2388 289, 225, 122, 228, 122, 225, 234, 234, 234, 234,
2389 234, 234, 234, 225, 225, 225, 50, 123, 334, 335,
2390 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
2391 9, 10, 11, 236, 237, 225, 225, 225, 225, 225,
2392 225, 225, 225, 225, 8, 193, 409, 410, 225, 225,
2393 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
2394 229, 225, 229, 225, 225, 13, 33, 42, 69, 98,
2395 99, 106, 131, 147, 207, 360, 361, 225, 225, 225,
2396 225, 225, 225, 225, 225, 225, 48, 183, 193, 340,
2397 341, 215, 229, 345, 225, 225, 225, 225, 4, 18,
2398 25, 39, 66, 68, 94, 127, 129, 148, 165, 170,
2399 174, 179, 182, 187, 201, 206, 217, 224, 311, 312,
2400 225, 225, 225, 225, 225, 48, 159, 160, 161, 163,
2401 164, 166, 167, 169, 171, 174, 177, 178, 179, 181,
2402 186, 190, 191, 192, 200, 205, 307, 308, 225, 225,
2403 225, 225, 249, 251, 225, 68, 130, 158, 165, 174,
2404 201, 203, 204, 217, 224, 393, 394, 225, 228, 228,
2405 290, 226, 286, 225, 68, 130, 158, 165, 174, 201,
2406 203, 204, 217, 224, 384, 385, 225, 225, 229, 236,
2407 236, 236, 225, 229, 490, 486, 225, 229, 225, 229,
2408 107, 347, 225, 230, 230, 230, 225, 229, 225, 229,
2409 225, 229, 122, 202, 237, 228, 225, 225, 229, 335,
2410 410, 361, 341, 128, 128, 128, 312, 308, 394, 225,
2411 225, 225, 39, 66, 68, 113, 164, 165, 220, 291,
2412 292, 385, 225, 229, 292
2413 };
2414
2415 #define yyerrok (yyerrstatus = 0)
2416 #define yyclearin (yychar = YYEMPTY)
2417 #define YYEMPTY (-2)
2418 #define YYEOF 0
2419
2420 #define YYACCEPT goto yyacceptlab
2421 #define YYABORT goto yyabortlab
2422 #define YYERROR goto yyerrorlab
2423
2424
2425 /* Like YYERROR except do call yyerror. This remains here temporarily
2426 to ease the transition to the new meaning of YYERROR, for GCC.
2427 Once GCC version 2 has supplanted version 1, this can go. However,
2428 YYFAIL appears to be in use. Nevertheless, it is formally deprecated
2429 in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2430 discussed. */
2431
2432 #define YYFAIL goto yyerrlab
2433 #if defined YYFAIL
2434 /* This is here to suppress warnings from the GCC cpp's
2435 -Wunused-macros. Normally we don't worry about that warning, but
2436 some users do, and we want to make it easy for users to remove
2437 YYFAIL uses, which will produce warnings from Bison 2.5. */
2438 #endif
2439
2440 #define YYRECOVERING() (!!yyerrstatus)
2441
2442 #define YYBACKUP(Token, Value) \
2443 do \
2444 if (yychar == YYEMPTY) \
2445 { \
2446 yychar = (Token); \
2447 yylval = (Value); \
2448 YYPOPSTACK (yylen); \
2449 yystate = *yyssp; \
2450 goto yybackup; \
2451 } \
2452 else \
2453 { \
2454 yyerror (YY_("syntax error: cannot back up")); \
2455 YYERROR; \
2456 } \
2457 while (YYID (0))
2458
2459 /* Error token number */
2460 #define YYTERROR 1
2461 #define YYERRCODE 256
2462
2463
2464 /* This macro is provided for backward compatibility. */
2465 #ifndef YY_LOCATION_PRINT
2466 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2467 #endif
2468
2469
2470 /* YYLEX -- calling `yylex' with the right arguments. */
2471 #ifdef YYLEX_PARAM
2472 # define YYLEX yylex (YYLEX_PARAM)
2473 #else
2474 # define YYLEX yylex ()
2475 #endif
2476
2477 /* Enable debugging if requested. */
2478 #if YYDEBUG
2479
2480 # ifndef YYFPRINTF
2481 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2482 # define YYFPRINTF fprintf
2483 # endif
2484
2485 # define YYDPRINTF(Args) \
2486 do { \
2487 if (yydebug) \
2488 YYFPRINTF Args; \
2489 } while (YYID (0))
2490
2491 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2492 do { \
2493 if (yydebug) \
2494 { \
2495 YYFPRINTF (stderr, "%s ", Title); \
2496 yy_symbol_print (stderr, \
2497 Type, Value); \
2498 YYFPRINTF (stderr, "\n"); \
2499 } \
2500 } while (YYID (0))
2501
2502
2503 /*--------------------------------.
2504 | Print this symbol on YYOUTPUT. |
2505 `--------------------------------*/
2506
2507 /*ARGSUSED*/
2508 #if (defined __STDC__ || defined __C99__FUNC__ \
2509 || defined __cplusplus || defined _MSC_VER)
2510 static void
2511 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2512 #else
2513 static void
2514 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
2515 FILE *yyoutput;
2516 int yytype;
2517 YYSTYPE const * const yyvaluep;
2518 #endif
2519 {
2520 FILE *yyo = yyoutput;
2521 YYUSE (yyo);
2522 if (!yyvaluep)
2523 return;
2524 # ifdef YYPRINT
2525 if (yytype < YYNTOKENS)
2526 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2527 # else
2528 YYUSE (yyoutput);
2529 # endif
2530 YYUSE (yytype);
2531 }
2532
2533
2534 /*--------------------------------.
2535 | Print this symbol on YYOUTPUT. |
2536 `--------------------------------*/
2537
2538 #if (defined __STDC__ || defined __C99__FUNC__ \
2539 || defined __cplusplus || defined _MSC_VER)
2540 static void
2541 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2542 #else
2543 static void
2544 yy_symbol_print (yyoutput, yytype, yyvaluep)
2545 FILE *yyoutput;
2546 int yytype;
2547 YYSTYPE const * const yyvaluep;
2548 #endif
2549 {
2550 if (yytype < YYNTOKENS)
2551 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2552 else
2553 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2554
2555 yy_symbol_value_print (yyoutput, yytype, yyvaluep);
2556 YYFPRINTF (yyoutput, ")");
2557 }
2558
2559 /*------------------------------------------------------------------.
2560 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2561 | TOP (included). |
2562 `------------------------------------------------------------------*/
2563
2564 #if (defined __STDC__ || defined __C99__FUNC__ \
2565 || defined __cplusplus || defined _MSC_VER)
2566 static void
2567 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2568 #else
2569 static void
2570 yy_stack_print (yybottom, yytop)
2571 yytype_int16 *yybottom;
2572 yytype_int16 *yytop;
2573 #endif
2574 {
2575 YYFPRINTF (stderr, "Stack now");
2576 for (; yybottom <= yytop; yybottom++)
2577 {
2578 int yybot = *yybottom;
2579 YYFPRINTF (stderr, " %d", yybot);
2580 }
2581 YYFPRINTF (stderr, "\n");
2582 }
2583
2584 # define YY_STACK_PRINT(Bottom, Top) \
2585 do { \
2586 if (yydebug) \
2587 yy_stack_print ((Bottom), (Top)); \
2588 } while (YYID (0))
2589
2590
2591 /*------------------------------------------------.
2592 | Report that the YYRULE is going to be reduced. |
2593 `------------------------------------------------*/
2594
2595 #if (defined __STDC__ || defined __C99__FUNC__ \
2596 || defined __cplusplus || defined _MSC_VER)
2597 static void
2598 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
2599 #else
2600 static void
2601 yy_reduce_print (yyvsp, yyrule)
2602 YYSTYPE *yyvsp;
2603 int yyrule;
2604 #endif
2605 {
2606 int yynrhs = yyr2[yyrule];
2607 int yyi;
2608 unsigned long int yylno = yyrline[yyrule];
2609 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2610 yyrule - 1, yylno);
2611 /* The symbols being reduced. */
2612 for (yyi = 0; yyi < yynrhs; yyi++)
2613 {
2614 YYFPRINTF (stderr, " $%d = ", yyi + 1);
2615 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
2616 &(yyvsp[(yyi + 1) - (yynrhs)])
2617 );
2618 YYFPRINTF (stderr, "\n");
2619 }
2620 }
2621
2622 # define YY_REDUCE_PRINT(Rule) \
2623 do { \
2624 if (yydebug) \
2625 yy_reduce_print (yyvsp, Rule); \
2626 } while (YYID (0))
2627
2628 /* Nonzero means print parse trace. It is left uninitialized so that
2629 multiple parsers can coexist. */
2630 int yydebug;
2631 #else /* !YYDEBUG */
2632 # define YYDPRINTF(Args)
2633 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2634 # define YY_STACK_PRINT(Bottom, Top)
2635 # define YY_REDUCE_PRINT(Rule)
2636 #endif /* !YYDEBUG */
2637
2638
2639 /* YYINITDEPTH -- initial size of the parser's stacks. */
2640 #ifndef YYINITDEPTH
2641 # define YYINITDEPTH 200
2642 #endif
2643
2644 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2645 if the built-in stack extension method is used).
2646
2647 Do not make this value too large; the results are undefined if
2648 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2649 evaluated with infinite-precision integer arithmetic. */
2650
2651 #ifndef YYMAXDEPTH
2652 # define YYMAXDEPTH 10000
2653 #endif
2654
2655
2656 #if YYERROR_VERBOSE
2657
2658 # ifndef yystrlen
2659 # if defined __GLIBC__ && defined _STRING_H
2660 # define yystrlen strlen
2661 # else
2662 /* Return the length of YYSTR. */
2663 #if (defined __STDC__ || defined __C99__FUNC__ \
2664 || defined __cplusplus || defined _MSC_VER)
2665 static YYSIZE_T
2666 yystrlen (const char *yystr)
2667 #else
2668 static YYSIZE_T
2669 yystrlen (yystr)
2670 const char *yystr;
2671 #endif
2672 {
2673 YYSIZE_T yylen;
2674 for (yylen = 0; yystr[yylen]; yylen++)
2675 continue;
2676 return yylen;
2677 }
2678 # endif
2679 # endif
2680
2681 # ifndef yystpcpy
2682 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2683 # define yystpcpy stpcpy
2684 # else
2685 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2686 YYDEST. */
2687 #if (defined __STDC__ || defined __C99__FUNC__ \
2688 || defined __cplusplus || defined _MSC_VER)
2689 static char *
2690 yystpcpy (char *yydest, const char *yysrc)
2691 #else
2692 static char *
2693 yystpcpy (yydest, yysrc)
2694 char *yydest;
2695 const char *yysrc;
2696 #endif
2697 {
2698 char *yyd = yydest;
2699 const char *yys = yysrc;
2700
2701 while ((*yyd++ = *yys++) != '\0')
2702 continue;
2703
2704 return yyd - 1;
2705 }
2706 # endif
2707 # endif
2708
2709 # ifndef yytnamerr
2710 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2711 quotes and backslashes, so that it's suitable for yyerror. The
2712 heuristic is that double-quoting is unnecessary unless the string
2713 contains an apostrophe, a comma, or backslash (other than
2714 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2715 null, do not copy; instead, return the length of what the result
2716 would have been. */
2717 static YYSIZE_T
2718 yytnamerr (char *yyres, const char *yystr)
2719 {
2720 if (*yystr == '"')
2721 {
2722 YYSIZE_T yyn = 0;
2723 char const *yyp = yystr;
2724
2725 for (;;)
2726 switch (*++yyp)
2727 {
2728 case '\'':
2729 case ',':
2730 goto do_not_strip_quotes;
2731
2732 case '\\':
2733 if (*++yyp != '\\')
2734 goto do_not_strip_quotes;
2735 /* Fall through. */
2736 default:
2737 if (yyres)
2738 yyres[yyn] = *yyp;
2739 yyn++;
2740 break;
2741
2742 case '"':
2743 if (yyres)
2744 yyres[yyn] = '\0';
2745 return yyn;
2746 }
2747 do_not_strip_quotes: ;
2748 }
2749
2750 if (! yyres)
2751 return yystrlen (yystr);
2752
2753 return yystpcpy (yyres, yystr) - yyres;
2754 }
2755 # endif
2756
2757 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2758 about the unexpected token YYTOKEN for the state stack whose top is
2759 YYSSP.
2760
2761 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
2762 not large enough to hold the message. In that case, also set
2763 *YYMSG_ALLOC to the required number of bytes. Return 2 if the
2764 required number of bytes is too large to store. */
2765 static int
2766 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2767 yytype_int16 *yyssp, int yytoken)
2768 {
2769 YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
2770 YYSIZE_T yysize = yysize0;
2771 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2772 /* Internationalized format string. */
2773 const char *yyformat = YY_NULL;
2774 /* Arguments of yyformat. */
2775 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2776 /* Number of reported tokens (one for the "unexpected", one per
2777 "expected"). */
2778 int yycount = 0;
2779
2780 /* There are many possibilities here to consider:
2781 - Assume YYFAIL is not used. It's too flawed to consider. See
2782 <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
2783 for details. YYERROR is fine as it does not invoke this
2784 function.
2785 - If this state is a consistent state with a default action, then
2786 the only way this function was invoked is if the default action
2787 is an error action. In that case, don't check for expected
2788 tokens because there are none.
2789 - The only way there can be no lookahead present (in yychar) is if
2790 this state is a consistent state with a default action. Thus,
2791 detecting the absence of a lookahead is sufficient to determine
2792 that there is no unexpected or expected token to report. In that
2793 case, just report a simple "syntax error".
2794 - Don't assume there isn't a lookahead just because this state is a
2795 consistent state with a default action. There might have been a
2796 previous inconsistent state, consistent state with a non-default
2797 action, or user semantic action that manipulated yychar.
2798 - Of course, the expected token list depends on states to have
2799 correct lookahead information, and it depends on the parser not
2800 to perform extra reductions after fetching a lookahead from the
2801 scanner and before detecting a syntax error. Thus, state merging
2802 (from LALR or IELR) and default reductions corrupt the expected
2803 token list. However, the list is correct for canonical LR with
2804 one exception: it will still contain any token that will not be
2805 accepted due to an error action in a later state.
2806 */
2807 if (yytoken != YYEMPTY)
2808 {
2809 int yyn = yypact[*yyssp];
2810 yyarg[yycount++] = yytname[yytoken];
2811 if (!yypact_value_is_default (yyn))
2812 {
2813 /* Start YYX at -YYN if negative to avoid negative indexes in
2814 YYCHECK. In other words, skip the first -YYN actions for
2815 this state because they are default actions. */
2816 int yyxbegin = yyn < 0 ? -yyn : 0;
2817 /* Stay within bounds of both yycheck and yytname. */
2818 int yychecklim = YYLAST - yyn + 1;
2819 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2820 int yyx;
2821
2822 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2823 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
2824 && !yytable_value_is_error (yytable[yyx + yyn]))
2825 {
2826 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2827 {
2828 yycount = 1;
2829 yysize = yysize0;
2830 break;
2831 }
2832 yyarg[yycount++] = yytname[yyx];
2833 {
2834 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2835 if (! (yysize <= yysize1
2836 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2837 return 2;
2838 yysize = yysize1;
2839 }
2840 }
2841 }
2842 }
2843
2844 switch (yycount)
2845 {
2846 # define YYCASE_(N, S) \
2847 case N: \
2848 yyformat = S; \
2849 break
2850 YYCASE_(0, YY_("syntax error"));
2851 YYCASE_(1, YY_("syntax error, unexpected %s"));
2852 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2853 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2854 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2855 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2856 # undef YYCASE_
2857 }
2858
2859 {
2860 YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2861 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2862 return 2;
2863 yysize = yysize1;
2864 }
2865
2866 if (*yymsg_alloc < yysize)
2867 {
2868 *yymsg_alloc = 2 * yysize;
2869 if (! (yysize <= *yymsg_alloc
2870 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2871 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2872 return 1;
2873 }
2874
2875 /* Avoid sprintf, as that infringes on the user's name space.
2876 Don't have undefined behavior even if the translation
2877 produced a string with the wrong number of "%s"s. */
2878 {
2879 char *yyp = *yymsg;
2880 int yyi = 0;
2881 while ((*yyp = *yyformat) != '\0')
2882 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2883 {
2884 yyp += yytnamerr (yyp, yyarg[yyi++]);
2885 yyformat += 2;
2886 }
2887 else
2888 {
2889 yyp++;
2890 yyformat++;
2891 }
2892 }
2893 return 0;
2894 }
2895 #endif /* YYERROR_VERBOSE */
2896
2897 /*-----------------------------------------------.
2898 | Release the memory associated to this symbol. |
2899 `-----------------------------------------------*/
2900
2901 /*ARGSUSED*/
2902 #if (defined __STDC__ || defined __C99__FUNC__ \
2903 || defined __cplusplus || defined _MSC_VER)
2904 static void
2905 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
2906 #else
2907 static void
2908 yydestruct (yymsg, yytype, yyvaluep)
2909 const char *yymsg;
2910 int yytype;
2911 YYSTYPE *yyvaluep;
2912 #endif
2913 {
2914 YYUSE (yyvaluep);
2915
2916 if (!yymsg)
2917 yymsg = "Deleting";
2918 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2919
2920 YYUSE (yytype);
2921 }
2922
2923
2924
2925
2926 /* The lookahead symbol. */
2927 int yychar;
2928
2929
2930 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2931 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2932 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
2933 #endif
2934 #ifndef YY_INITIAL_VALUE
2935 # define YY_INITIAL_VALUE(Value) /* Nothing. */
2936 #endif
2937
2938 /* The semantic value of the lookahead symbol. */
2939 YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
2940
2941 /* Number of syntax errors so far. */
2942 int yynerrs;
2943
2944
2945 /*----------.
2946 | yyparse. |
2947 `----------*/
2948
2949 #ifdef YYPARSE_PARAM
2950 #if (defined __STDC__ || defined __C99__FUNC__ \
2951 || defined __cplusplus || defined _MSC_VER)
2952 int
2953 yyparse (void *YYPARSE_PARAM)
2954 #else
2955 int
2956 yyparse (YYPARSE_PARAM)
2957 void *YYPARSE_PARAM;
2958 #endif
2959 #else /* ! YYPARSE_PARAM */
2960 #if (defined __STDC__ || defined __C99__FUNC__ \
2961 || defined __cplusplus || defined _MSC_VER)
2962 int
2963 yyparse (void)
2964 #else
2965 int
2966 yyparse ()
2967
2968 #endif
2969 #endif
2970 {
2971 int yystate;
2972 /* Number of tokens to shift before error messages enabled. */
2973 int yyerrstatus;
2974
2975 /* The stacks and their tools:
2976 `yyss': related to states.
2977 `yyvs': related to semantic values.
2978
2979 Refer to the stacks through separate pointers, to allow yyoverflow
2980 to reallocate them elsewhere. */
2981
2982 /* The state stack. */
2983 yytype_int16 yyssa[YYINITDEPTH];
2984 yytype_int16 *yyss;
2985 yytype_int16 *yyssp;
2986
2987 /* The semantic value stack. */
2988 YYSTYPE yyvsa[YYINITDEPTH];
2989 YYSTYPE *yyvs;
2990 YYSTYPE *yyvsp;
2991
2992 YYSIZE_T yystacksize;
2993
2994 int yyn;
2995 int yyresult;
2996 /* Lookahead token as an internal (translated) token number. */
2997 int yytoken = 0;
2998 /* The variables used to return semantic value and location from the
2999 action routines. */
3000 YYSTYPE yyval;
3001
3002 #if YYERROR_VERBOSE
3003 /* Buffer for error messages, and its allocated size. */
3004 char yymsgbuf[128];
3005 char *yymsg = yymsgbuf;
3006 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
3007 #endif
3008
3009 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
3010
3011 /* The number of symbols on the RHS of the reduced rule.
3012 Keep to zero when no symbol should be popped. */
3013 int yylen = 0;
3014
3015 yyssp = yyss = yyssa;
3016 yyvsp = yyvs = yyvsa;
3017 yystacksize = YYINITDEPTH;
3018
3019 YYDPRINTF ((stderr, "Starting parse\n"));
3020
3021 yystate = 0;
3022 yyerrstatus = 0;
3023 yynerrs = 0;
3024 yychar = YYEMPTY; /* Cause a token to be read. */
3025 goto yysetstate;
3026
3027 /*------------------------------------------------------------.
3028 | yynewstate -- Push a new state, which is found in yystate. |
3029 `------------------------------------------------------------*/
3030 yynewstate:
3031 /* In all cases, when you get here, the value and location stacks
3032 have just been pushed. So pushing a state here evens the stacks. */
3033 yyssp++;
3034
3035 yysetstate:
3036 *yyssp = yystate;
3037
3038 if (yyss + yystacksize - 1 <= yyssp)
3039 {
3040 /* Get the current used size of the three stacks, in elements. */
3041 YYSIZE_T yysize = yyssp - yyss + 1;
3042
3043 #ifdef yyoverflow
3044 {
3045 /* Give user a chance to reallocate the stack. Use copies of
3046 these so that the &'s don't force the real ones into
3047 memory. */
3048 YYSTYPE *yyvs1 = yyvs;
3049 yytype_int16 *yyss1 = yyss;
3050
3051 /* Each stack pointer address is followed by the size of the
3052 data in use in that stack, in bytes. This used to be a
3053 conditional around just the two extra args, but that might
3054 be undefined if yyoverflow is a macro. */
3055 yyoverflow (YY_("memory exhausted"),
3056 &yyss1, yysize * sizeof (*yyssp),
3057 &yyvs1, yysize * sizeof (*yyvsp),
3058 &yystacksize);
3059
3060 yyss = yyss1;
3061 yyvs = yyvs1;
3062 }
3063 #else /* no yyoverflow */
3064 # ifndef YYSTACK_RELOCATE
3065 goto yyexhaustedlab;
3066 # else
3067 /* Extend the stack our own way. */
3068 if (YYMAXDEPTH <= yystacksize)
3069 goto yyexhaustedlab;
3070 yystacksize *= 2;
3071 if (YYMAXDEPTH < yystacksize)
3072 yystacksize = YYMAXDEPTH;
3073
3074 {
3075 yytype_int16 *yyss1 = yyss;
3076 union yyalloc *yyptr =
3077 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
3078 if (! yyptr)
3079 goto yyexhaustedlab;
3080 YYSTACK_RELOCATE (yyss_alloc, yyss);
3081 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
3082 # undef YYSTACK_RELOCATE
3083 if (yyss1 != yyssa)
3084 YYSTACK_FREE (yyss1);
3085 }
3086 # endif
3087 #endif /* no yyoverflow */
3088
3089 yyssp = yyss + yysize - 1;
3090 yyvsp = yyvs + yysize - 1;
3091
3092 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
3093 (unsigned long int) yystacksize));
3094
3095 if (yyss + yystacksize - 1 <= yyssp)
3096 YYABORT;
3097 }
3098
3099 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
3100
3101 if (yystate == YYFINAL)
3102 YYACCEPT;
3103
3104 goto yybackup;
3105
3106 /*-----------.
3107 | yybackup. |
3108 `-----------*/
3109 yybackup:
3110
3111 /* Do appropriate processing given the current state. Read a
3112 lookahead token if we need one and don't already have one. */
3113
3114 /* First try to decide what to do without reference to lookahead token. */
3115 yyn = yypact[yystate];
3116 if (yypact_value_is_default (yyn))
3117 goto yydefault;
3118
3119 /* Not known => get a lookahead token if don't already have one. */
3120
3121 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
3122 if (yychar == YYEMPTY)
3123 {
3124 YYDPRINTF ((stderr, "Reading a token: "));
3125 yychar = YYLEX;
3126 }
3127
3128 if (yychar <= YYEOF)
3129 {
3130 yychar = yytoken = YYEOF;
3131 YYDPRINTF ((stderr, "Now at end of input.\n"));
3132 }
3133 else
3134 {
3135 yytoken = YYTRANSLATE (yychar);
3136 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
3137 }
3138
3139 /* If the proper action on seeing token YYTOKEN is to reduce or to
3140 detect an error, take that action. */
3141 yyn += yytoken;
3142 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
3143 goto yydefault;
3144 yyn = yytable[yyn];
3145 if (yyn <= 0)
3146 {
3147 if (yytable_value_is_error (yyn))
3148 goto yyerrlab;
3149 yyn = -yyn;
3150 goto yyreduce;
3151 }
3152
3153 /* Count tokens shifted since error; after three, turn off error
3154 status. */
3155 if (yyerrstatus)
3156 yyerrstatus--;
3157
3158 /* Shift the lookahead token. */
3159 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
3160
3161 /* Discard the shifted token. */
3162 yychar = YYEMPTY;
3163
3164 yystate = yyn;
3165 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3166 *++yyvsp = yylval;
3167 YY_IGNORE_MAYBE_UNINITIALIZED_END
3168
3169 goto yynewstate;
3170
3171
3172 /*-----------------------------------------------------------.
3173 | yydefault -- do the default action for the current state. |
3174 `-----------------------------------------------------------*/
3175 yydefault:
3176 yyn = yydefact[yystate];
3177 if (yyn == 0)
3178 goto yyerrlab;
3179 goto yyreduce;
3180
3181
3182 /*-----------------------------.
3183 | yyreduce -- Do a reduction. |
3184 `-----------------------------*/
3185 yyreduce:
3186 /* yyn is the number of a rule to reduce with. */
3187 yylen = yyr2[yyn];
3188
3189 /* If YYLEN is nonzero, implement the default value of the action:
3190 `$$ = $1'.
3191
3192 Otherwise, the following line sets YYVAL to garbage.
3193 This behavior is undocumented and Bison
3194 users should not rely upon it. Assigning to YYVAL
3195 unconditionally makes the parser a bit smaller, and it avoids a
3196 GCC warning that YYVAL may be used uninitialized. */
3197 yyval = yyvsp[1-yylen];
3198
3199
3200 YY_REDUCE_PRINT (yyn);
3201 switch (yyn)
3202 {
3203 case 27:
3204 /* Line 1787 of yacc.c */
3205 #line 398 "conf_parser.y"
3206 { (yyval.number) = 0; }
3207 break;
3208
3209 case 29:
3210 /* Line 1787 of yacc.c */
3211 #line 400 "conf_parser.y"
3212 {
3213 (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3214 }
3215 break;
3216
3217 case 30:
3218 /* Line 1787 of yacc.c */
3219 #line 404 "conf_parser.y"
3220 {
3221 (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3222 }
3223 break;
3224
3225 case 31:
3226 /* Line 1787 of yacc.c */
3227 #line 408 "conf_parser.y"
3228 {
3229 (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3230 }
3231 break;
3232
3233 case 32:
3234 /* Line 1787 of yacc.c */
3235 #line 412 "conf_parser.y"
3236 {
3237 (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3238 }
3239 break;
3240
3241 case 33:
3242 /* Line 1787 of yacc.c */
3243 #line 416 "conf_parser.y"
3244 {
3245 (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3246 }
3247 break;
3248
3249 case 34:
3250 /* Line 1787 of yacc.c */
3251 #line 420 "conf_parser.y"
3252 {
3253 (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3254 }
3255 break;
3256
3257 case 35:
3258 /* Line 1787 of yacc.c */
3259 #line 424 "conf_parser.y"
3260 {
3261 (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[(3) - (3)].number);
3262 }
3263 break;
3264
3265 case 36:
3266 /* Line 1787 of yacc.c */
3267 #line 428 "conf_parser.y"
3268 {
3269 (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 365 + (yyvsp[(3) - (3)].number);
3270 }
3271 break;
3272
3273 case 37:
3274 /* Line 1787 of yacc.c */
3275 #line 433 "conf_parser.y"
3276 { (yyval.number) = 0; }
3277 break;
3278
3279 case 39:
3280 /* Line 1787 of yacc.c */
3281 #line 434 "conf_parser.y"
3282 { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
3283 break;
3284
3285 case 40:
3286 /* Line 1787 of yacc.c */
3287 #line 435 "conf_parser.y"
3288 { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
3289 break;
3290
3291 case 41:
3292 /* Line 1787 of yacc.c */
3293 #line 436 "conf_parser.y"
3294 { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
3295 break;
3296
3297 case 42:
3298 /* Line 1787 of yacc.c */
3299 #line 437 "conf_parser.y"
3300 { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
3301 break;
3302
3303 case 49:
3304 /* Line 1787 of yacc.c */
3305 #line 451 "conf_parser.y"
3306 {
3307 if (conf_parser_ctx.pass == 2)
3308 add_conf_module(libio_basename(yylval.string));
3309 }
3310 break;
3311
3312 case 50:
3313 /* Line 1787 of yacc.c */
3314 #line 457 "conf_parser.y"
3315 {
3316 if (conf_parser_ctx.pass == 2)
3317 mod_add_path(yylval.string);
3318 }
3319 break;
3320
3321 case 76:
3322 /* Line 1787 of yacc.c */
3323 #line 483 "conf_parser.y"
3324 {
3325 #ifdef HAVE_LIBCRYPTO
3326 if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3327 SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
3328 #endif
3329 }
3330 break;
3331
3332 case 77:
3333 /* Line 1787 of yacc.c */
3334 #line 489 "conf_parser.y"
3335 {
3336 #ifdef HAVE_LIBCRYPTO
3337 if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3338 SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
3339 #endif
3340 }
3341 break;
3342
3343 case 80:
3344 /* Line 1787 of yacc.c */
3345 #line 498 "conf_parser.y"
3346 {
3347 #ifdef HAVE_LIBCRYPTO
3348 if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3349 SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3350 #endif
3351 }
3352 break;
3353
3354 case 81:
3355 /* Line 1787 of yacc.c */
3356 #line 504 "conf_parser.y"
3357 {
3358 #ifdef HAVE_LIBCRYPTO
3359 if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3360 SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3361 #endif
3362 }
3363 break;
3364
3365 case 82:
3366 /* Line 1787 of yacc.c */
3367 #line 512 "conf_parser.y"
3368 {
3369 #ifdef HAVE_LIBCRYPTO
3370 if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3371 {
3372 if (!ServerInfo.rsa_private_key_file)
3373 {
3374 conf_error_report("No rsa_private_key_file specified, SSL disabled");
3375 break;
3376 }
3377
3378 if (SSL_CTX_use_certificate_file(ServerInfo.server_ctx, yylval.string,
3379 SSL_FILETYPE_PEM) <= 0 ||
3380 SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3381 SSL_FILETYPE_PEM) <= 0)
3382 {
3383 report_crypto_errors();
3384 conf_error_report("Could not open/read certificate file");
3385 break;
3386 }
3387
3388 if (SSL_CTX_use_PrivateKey_file(ServerInfo.server_ctx, ServerInfo.rsa_private_key_file,
3389 SSL_FILETYPE_PEM) <= 0 ||
3390 SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3391 SSL_FILETYPE_PEM) <= 0)
3392 {
3393 report_crypto_errors();
3394 conf_error_report("Could not read RSA private key");
3395 break;
3396 }
3397
3398 if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3399 !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3400 {
3401 report_crypto_errors();
3402 conf_error_report("Could not read RSA private key");
3403 break;
3404 }
3405 }
3406 #endif
3407 }
3408 break;
3409
3410 case 83:
3411 /* Line 1787 of yacc.c */
3412 #line 554 "conf_parser.y"
3413 {
3414 #ifdef HAVE_LIBCRYPTO
3415 BIO *file = NULL;
3416
3417 if (conf_parser_ctx.pass != 1)
3418 break;
3419
3420 if (ServerInfo.rsa_private_key)
3421 {
3422 RSA_free(ServerInfo.rsa_private_key);
3423 ServerInfo.rsa_private_key = NULL;
3424 }
3425
3426 if (ServerInfo.rsa_private_key_file)
3427 {
3428 MyFree(ServerInfo.rsa_private_key_file);
3429 ServerInfo.rsa_private_key_file = NULL;
3430 }
3431
3432 ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3433
3434 if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3435 {
3436 conf_error_report("File open failed, ignoring");
3437 break;
3438 }
3439
3440 ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3441
3442 BIO_set_close(file, BIO_CLOSE);
3443 BIO_free(file);
3444
3445 if (ServerInfo.rsa_private_key == NULL)
3446 {
3447 conf_error_report("Couldn't extract key, ignoring");
3448 break;
3449 }
3450
3451 if (!RSA_check_key(ServerInfo.rsa_private_key))
3452 {
3453 RSA_free(ServerInfo.rsa_private_key);
3454 ServerInfo.rsa_private_key = NULL;
3455
3456 conf_error_report("Invalid key, ignoring");
3457 break;
3458 }
3459
3460 /* require 2048 bit (256 byte) key */
3461 if (RSA_size(ServerInfo.rsa_private_key) != 256)
3462 {
3463 RSA_free(ServerInfo.rsa_private_key);
3464 ServerInfo.rsa_private_key = NULL;
3465
3466 conf_error_report("Not a 2048 bit key, ignoring");
3467 }
3468 #endif
3469 }
3470 break;
3471
3472 case 84:
3473 /* Line 1787 of yacc.c */
3474 #line 613 "conf_parser.y"
3475 {
3476 /* TBD - XXX: error reporting */
3477 #ifdef HAVE_LIBCRYPTO
3478 if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3479 {
3480 BIO *file = BIO_new_file(yylval.string, "r");
3481
3482 if (file)
3483 {
3484 DH *dh = PEM_read_bio_DHparams(file, NULL, NULL, NULL);
3485
3486 BIO_free(file);
3487
3488 if (dh)
3489 {
3490 if (DH_size(dh) < 128)
3491 conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3492 else
3493 SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3494
3495 DH_free(dh);
3496 }
3497 }
3498 }
3499 #endif
3500 }
3501 break;
3502
3503 case 85:
3504 /* Line 1787 of yacc.c */
3505 #line 641 "conf_parser.y"
3506 {
3507 #ifdef HAVE_LIBCRYPTO
3508 if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3509 SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3510 #endif
3511 }
3512 break;
3513
3514 case 86:
3515 /* Line 1787 of yacc.c */
3516 #line 649 "conf_parser.y"
3517 {
3518 /* this isn't rehashable */
3519 if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3520 {
3521 if (valid_servname(yylval.string))
3522 ServerInfo.name = xstrdup(yylval.string);
3523 else
3524 {
3525 conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3526 exit(0);
3527 }
3528 }
3529 }
3530 break;
3531
3532 case 87:
3533 /* Line 1787 of yacc.c */
3534 #line 664 "conf_parser.y"
3535 {
3536 /* this isn't rehashable */
3537 if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3538 {
3539 if (valid_sid(yylval.string))
3540 ServerInfo.sid = xstrdup(yylval.string);
3541 else
3542 {
3543 conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3544 exit(0);
3545 }
3546 }
3547 }
3548 break;
3549
3550 case 88:
3551 /* Line 1787 of yacc.c */
3552 #line 679 "conf_parser.y"
3553 {
3554 if (conf_parser_ctx.pass == 2)
3555 {
3556 MyFree(ServerInfo.description);
3557 ServerInfo.description = xstrdup(yylval.string);
3558 }
3559 }
3560 break;
3561
3562 case 89:
3563 /* Line 1787 of yacc.c */
3564 #line 688 "conf_parser.y"
3565 {
3566 if (conf_parser_ctx.pass == 2)
3567 {
3568 char *p;
3569
3570 if ((p = strchr(yylval.string, ' ')) != NULL)
3571 p = '\0';
3572
3573 MyFree(ServerInfo.network_name);
3574 ServerInfo.network_name = xstrdup(yylval.string);
3575 }
3576 }
3577 break;
3578
3579 case 90:
3580 /* Line 1787 of yacc.c */
3581 #line 702 "conf_parser.y"
3582 {
3583 if (conf_parser_ctx.pass != 2)
3584 break;
3585
3586 MyFree(ServerInfo.network_desc);
3587 ServerInfo.network_desc = xstrdup(yylval.string);
3588 }
3589 break;
3590
3591 case 91:
3592 /* Line 1787 of yacc.c */
3593 #line 711 "conf_parser.y"
3594 {
3595 if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3596 {
3597 struct addrinfo hints, *res;
3598
3599 memset(&hints, 0, sizeof(hints));
3600
3601 hints.ai_family = AF_UNSPEC;
3602 hints.ai_socktype = SOCK_STREAM;
3603 hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST;
3604
3605 if (getaddrinfo(yylval.string, NULL, &hints, &res))
3606 ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3607 else
3608 {
3609 assert(res != NULL);
3610
3611 memcpy(&ServerInfo.ip, res->ai_addr, res->ai_addrlen);
3612 ServerInfo.ip.ss.ss_family = res->ai_family;
3613 ServerInfo.ip.ss_len = res->ai_addrlen;
3614 freeaddrinfo(res);
3615
3616 ServerInfo.specific_ipv4_vhost = 1;
3617 }
3618 }
3619 }
3620 break;
3621
3622 case 92:
3623 /* Line 1787 of yacc.c */
3624 #line 739 "conf_parser.y"
3625 {
3626 #ifdef IPV6
3627 if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3628 {
3629 struct addrinfo hints, *res;
3630
3631 memset(&hints, 0, sizeof(hints));
3632
3633 hints.ai_family = AF_UNSPEC;
3634 hints.ai_socktype = SOCK_STREAM;
3635 hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST;
3636
3637 if (getaddrinfo(yylval.string, NULL, &hints, &res))
3638 ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3639 else
3640 {
3641 assert(res != NULL);
3642
3643 memcpy(&ServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3644 ServerInfo.ip6.ss.ss_family = res->ai_family;
3645 ServerInfo.ip6.ss_len = res->ai_addrlen;
3646 freeaddrinfo(res);
3647
3648 ServerInfo.specific_ipv6_vhost = 1;
3649 }
3650 }
3651 #endif
3652 }
3653 break;
3654
3655 case 93:
3656 /* Line 1787 of yacc.c */
3657 #line 769 "conf_parser.y"
3658 {
3659 if (conf_parser_ctx.pass != 2)
3660 break;
3661
3662 if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3663 {
3664 char buf[IRCD_BUFSIZE];
3665
3666 snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3667 conf_error_report(buf);
3668 ServerInfo.max_clients = MAXCLIENTS_MIN;
3669 }
3670 else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3671 {
3672 char buf[IRCD_BUFSIZE];
3673
3674 snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3675 conf_error_report(buf);
3676 ServerInfo.max_clients = MAXCLIENTS_MAX;
3677 }
3678 else
3679 ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3680 }
3681 break;
3682
3683 case 94:
3684 /* Line 1787 of yacc.c */
3685 #line 794 "conf_parser.y"
3686 {
3687 if (conf_parser_ctx.pass != 2)
3688 break;
3689
3690 if ((yyvsp[(3) - (4)].number) < 9)
3691 {
3692 conf_error_report("max_nick_length too low, setting to 9");
3693 ServerInfo.max_nick_length = 9;
3694 }
3695 else if ((yyvsp[(3) - (4)].number) > NICKLEN)
3696 {
3697 char buf[IRCD_BUFSIZE];
3698
3699 snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3700 conf_error_report(buf);
3701 ServerInfo.max_nick_length = NICKLEN;
3702 }
3703 else
3704 ServerInfo.max_nick_length = (yyvsp[(3) - (4)].number);
3705 }
3706 break;
3707
3708 case 95:
3709 /* Line 1787 of yacc.c */
3710 #line 816 "conf_parser.y"
3711 {
3712 if (conf_parser_ctx.pass != 2)
3713 break;
3714
3715 if ((yyvsp[(3) - (4)].number) < 80)
3716 {
3717 conf_error_report("max_topic_length too low, setting to 80");
3718 ServerInfo.max_topic_length = 80;
3719 }
3720 else if ((yyvsp[(3) - (4)].number) > TOPICLEN)
3721 {
3722 char buf[IRCD_BUFSIZE];
3723
3724 snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3725 conf_error_report(buf);
3726 ServerInfo.max_topic_length = TOPICLEN;
3727 }
3728 else
3729 ServerInfo.max_topic_length = (yyvsp[(3) - (4)].number);
3730 }
3731 break;
3732
3733 case 96:
3734 /* Line 1787 of yacc.c */
3735 #line 838 "conf_parser.y"
3736 {
3737 if (conf_parser_ctx.pass == 2)
3738 ServerInfo.hub = yylval.number;
3739 }
3740 break;
3741
3742 case 104:
3743 /* Line 1787 of yacc.c */
3744 #line 853 "conf_parser.y"
3745 {
3746 if (conf_parser_ctx.pass != 2)
3747 break;
3748
3749 MyFree(AdminInfo.name);
3750 AdminInfo.name = xstrdup(yylval.string);
3751 }
3752 break;
3753
3754 case 105:
3755 /* Line 1787 of yacc.c */
3756 #line 862 "conf_parser.y"
3757 {
3758 if (conf_parser_ctx.pass != 2)
3759 break;
3760
3761 MyFree(AdminInfo.email);
3762 AdminInfo.email = xstrdup(yylval.string);
3763 }
3764 break;
3765
3766 case 106:
3767 /* Line 1787 of yacc.c */
3768 #line 871 "conf_parser.y"
3769 {
3770 if (conf_parser_ctx.pass != 2)
3771 break;
3772
3773 MyFree(AdminInfo.description);
3774 AdminInfo.description = xstrdup(yylval.string);
3775 }
3776 break;
3777
3778 case 107:
3779 /* Line 1787 of yacc.c */
3780 #line 883 "conf_parser.y"
3781 {
3782 if (conf_parser_ctx.pass == 2)
3783 reset_block_state();
3784 }
3785 break;
3786
3787 case 108:
3788 /* Line 1787 of yacc.c */
3789 #line 887 "conf_parser.y"
3790 {
3791 dlink_node *ptr = NULL;
3792
3793 if (conf_parser_ctx.pass != 2)
3794 break;
3795
3796 if (!block_state.file.buf[0])
3797 break;
3798
3799 DLINK_FOREACH(ptr, block_state.mask.list.head)
3800 motd_add(ptr->data, block_state.file.buf);
3801 }
3802 break;
3803
3804 case 114:
3805 /* Line 1787 of yacc.c */
3806 #line 904 "conf_parser.y"
3807 {
3808 if (conf_parser_ctx.pass == 2)
3809 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3810 }
3811 break;
3812
3813 case 115:
3814 /* Line 1787 of yacc.c */
3815 #line 910 "conf_parser.y"
3816 {
3817 if (conf_parser_ctx.pass == 2)
3818 strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3819 }
3820 break;
3821
3822 case 122:
3823 /* Line 1787 of yacc.c */
3824 #line 925 "conf_parser.y"
3825 {
3826 if (conf_parser_ctx.pass == 2)
3827 ConfigLoggingEntry.use_logging = yylval.number;
3828 }
3829 break;
3830
3831 case 123:
3832 /* Line 1787 of yacc.c */
3833 #line 931 "conf_parser.y"
3834 {
3835 if (conf_parser_ctx.pass == 2)
3836 reset_block_state();
3837 }
3838 break;
3839
3840 case 124:
3841 /* Line 1787 of yacc.c */
3842 #line 935 "conf_parser.y"
3843 {
3844 if (conf_parser_ctx.pass != 2)
3845 break;
3846
3847 if (block_state.type.value && block_state.file.buf[0])
3848 log_set_file(block_state.type.value, block_state.size.value,
3849 block_state.file.buf);
3850 }
3851 break;
3852
3853 case 131:
3854 /* Line 1787 of yacc.c */
3855 #line 951 "conf_parser.y"
3856 {
3857 if (conf_parser_ctx.pass != 2)
3858 break;
3859
3860 strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3861 }
3862 break;
3863
3864 case 132:
3865 /* Line 1787 of yacc.c */
3866 #line 959 "conf_parser.y"
3867 {
3868 block_state.size.value = (yyvsp[(3) - (4)].number);
3869 }
3870 break;
3871
3872 case 133:
3873 /* Line 1787 of yacc.c */
3874 #line 962 "conf_parser.y"
3875 {
3876 block_state.size.value = 0;
3877 }
3878 break;
3879
3880 case 134:
3881 /* Line 1787 of yacc.c */
3882 #line 967 "conf_parser.y"
3883 {
3884 if (conf_parser_ctx.pass == 2)
3885 block_state.type.value = 0;
3886 }
3887 break;
3888
3889 case 138:
3890 /* Line 1787 of yacc.c */
3891 #line 974 "conf_parser.y"
3892 {
3893 if (conf_parser_ctx.pass == 2)
3894 block_state.type.value = LOG_TYPE_USER;
3895 }
3896 break;
3897
3898 case 139:
3899 /* Line 1787 of yacc.c */
3900 #line 978 "conf_parser.y"
3901 {
3902 if (conf_parser_ctx.pass == 2)
3903 block_state.type.value = LOG_TYPE_OPER;
3904 }
3905 break;
3906
3907 case 140:
3908 /* Line 1787 of yacc.c */
3909 #line 982 "conf_parser.y"
3910 {
3911 if (conf_parser_ctx.pass == 2)
3912 block_state.type.value = LOG_TYPE_GLINE;
3913 }
3914 break;
3915
3916 case 141:
3917 /* Line 1787 of yacc.c */
3918 #line 986 "conf_parser.y"
3919 {
3920 if (conf_parser_ctx.pass == 2)
3921 block_state.type.value = LOG_TYPE_DLINE;
3922 }
3923 break;
3924
3925 case 142:
3926 /* Line 1787 of yacc.c */
3927 #line 990 "conf_parser.y"
3928 {
3929 if (conf_parser_ctx.pass == 2)
3930 block_state.type.value = LOG_TYPE_KLINE;
3931 }
3932 break;
3933
3934 case 143:
3935 /* Line 1787 of yacc.c */
3936 #line 994 "conf_parser.y"
3937 {
3938 if (conf_parser_ctx.pass == 2)
3939 block_state.type.value = LOG_TYPE_KILL;
3940 }
3941 break;
3942
3943 case 144:
3944 /* Line 1787 of yacc.c */
3945 #line 998 "conf_parser.y"
3946 {
3947 if (conf_parser_ctx.pass == 2)
3948 block_state.type.value = LOG_TYPE_DEBUG;
3949 }
3950 break;
3951
3952 case 145:
3953 /* Line 1787 of yacc.c */
3954 #line 1008 "conf_parser.y"
3955 {
3956 if (conf_parser_ctx.pass != 2)
3957 break;
3958
3959 reset_block_state();
3960 block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3961 }
3962 break;
3963
3964 case 146:
3965 /* Line 1787 of yacc.c */
3966 #line 1015 "conf_parser.y"
3967 {
3968 dlink_node *ptr = NULL;
3969
3970 if (conf_parser_ctx.pass != 2)
3971 break;
3972
3973 if (!block_state.name.buf[0])
3974 break;
3975 #ifdef HAVE_LIBCRYPTO
3976 if (!block_state.file.buf[0] &&
3977 !block_state.rpass.buf[0])
3978 break;
3979 #else
3980 if (!block_state.rpass.buf[0])
3981 break;
3982 #endif
3983
3984 DLINK_FOREACH(ptr, block_state.mask.list.head)
3985 {
3986 struct MaskItem *conf = NULL;
3987 struct split_nuh_item nuh;
3988
3989 nuh.nuhmask = ptr->data;
3990 nuh.nickptr = NULL;
3991 nuh.userptr = block_state.user.buf;
3992 nuh.hostptr = block_state.host.buf;
3993 nuh.nicksize = 0;
3994 nuh.usersize = sizeof(block_state.user.buf);
3995 nuh.hostsize = sizeof(block_state.host.buf);
3996 split_nuh(&nuh);
3997
3998 conf = conf_make(CONF_OPER);
3999 conf->name = xstrdup(block_state.name.buf);
4000 conf->user = xstrdup(block_state.user.buf);
4001 conf->host = xstrdup(block_state.host.buf);
4002
4003 if (block_state.cert.buf[0])
4004 conf->certfp = xstrdup(block_state.cert.buf);
4005
4006 if (block_state.rpass.buf[0])
4007 conf->passwd = xstrdup(block_state.rpass.buf);
4008
4009 conf->flags = block_state.flags.value;
4010 conf->modes = block_state.modes.value;
4011 conf->port = block_state.port.value;
4012 conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
4013
4014 conf_add_class_to_conf(conf, block_state.class.buf);
4015
4016 #ifdef HAVE_LIBCRYPTO
4017 if (block_state.file.buf[0])
4018 {
4019 BIO *file = NULL;
4020 RSA *pkey = NULL;
4021
4022 if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
4023 {
4024 conf_error_report("Ignoring rsa_public_key_file -- file doesn't exist");
4025 break;
4026 }
4027
4028 if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
4029 conf_error_report("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
4030
4031 conf->rsa_public_key = pkey;
4032 BIO_set_close(file, BIO_CLOSE);
4033 BIO_free(file);
4034 }
4035 #endif /* HAVE_LIBCRYPTO */
4036 }
4037 }
4038 break;
4039
4040 case 160:
4041 /* Line 1787 of yacc.c */
4042 #line 1095 "conf_parser.y"
4043 {
4044 if (conf_parser_ctx.pass == 2)
4045 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4046 }
4047 break;
4048
4049 case 161:
4050 /* Line 1787 of yacc.c */
4051 #line 1101 "conf_parser.y"
4052 {
4053 if (conf_parser_ctx.pass == 2)
4054 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4055 }
4056 break;
4057
4058 case 162:
4059 /* Line 1787 of yacc.c */
4060 #line 1107 "conf_parser.y"
4061 {
4062 if (conf_parser_ctx.pass == 2)
4063 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4064 }
4065 break;
4066
4067 case 163:
4068 /* Line 1787 of yacc.c */
4069 #line 1113 "conf_parser.y"
4070 {
4071 if (conf_parser_ctx.pass != 2)
4072 break;
4073
4074 if (yylval.number)
4075 block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4076 else
4077 block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4078 }
4079 break;
4080
4081 case 164:
4082 /* Line 1787 of yacc.c */
4083 #line 1124 "conf_parser.y"
4084 {
4085 if (conf_parser_ctx.pass == 2)
4086 strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
4087 }
4088 break;
4089
4090 case 165:
4091 /* Line 1787 of yacc.c */
4092 #line 1130 "conf_parser.y"
4093 {
4094 if (conf_parser_ctx.pass == 2)
4095 strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
4096 }
4097 break;
4098
4099 case 166:
4100 /* Line 1787 of yacc.c */
4101 #line 1136 "conf_parser.y"
4102 {
4103 if (conf_parser_ctx.pass != 2)
4104 break;
4105
4106 if (yylval.number)
4107 block_state.flags.value |= CONF_FLAGS_SSL;
4108 else
4109 block_state.flags.value &= ~CONF_FLAGS_SSL;
4110 }
4111 break;
4112
4113 case 167:
4114 /* Line 1787 of yacc.c */
4115 #line 1147 "conf_parser.y"
4116 {
4117 if (conf_parser_ctx.pass == 2)
4118 strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4119 }
4120 break;
4121
4122 case 168:
4123 /* Line 1787 of yacc.c */
4124 #line 1153 "conf_parser.y"
4125 {
4126 if (conf_parser_ctx.pass == 2)
4127 block_state.modes.value = 0;
4128 }
4129 break;
4130
4131 case 172:
4132 /* Line 1787 of yacc.c */
4133 #line 1160 "conf_parser.y"
4134 {
4135 if (conf_parser_ctx.pass == 2)
4136 block_state.modes.value |= UMODE_BOTS;
4137 }
4138 break;
4139
4140 case 173:
4141 /* Line 1787 of yacc.c */
4142 #line 1164 "conf_parser.y"
4143 {
4144 if (conf_parser_ctx.pass == 2)
4145 block_state.modes.value |= UMODE_CCONN;
4146 }
4147 break;
4148
4149 case 174:
4150 /* Line 1787 of yacc.c */
4151 #line 1168 "conf_parser.y"
4152 {
4153 if (conf_parser_ctx.pass == 2)
4154 block_state.modes.value |= UMODE_DEAF;
4155 }
4156 break;
4157
4158 case 175:
4159 /* Line 1787 of yacc.c */
4160 #line 1172 "conf_parser.y"
4161 {
4162 if (conf_parser_ctx.pass == 2)
4163 block_state.modes.value |= UMODE_DEBUG;
4164 }
4165 break;
4166
4167 case 176:
4168 /* Line 1787 of yacc.c */
4169 #line 1176 "conf_parser.y"
4170 {
4171 if (conf_parser_ctx.pass == 2)
4172 block_state.modes.value |= UMODE_FULL;
4173 }
4174 break;
4175
4176 case 177:
4177 /* Line 1787 of yacc.c */
4178 #line 1180 "conf_parser.y"
4179 {
4180 if (conf_parser_ctx.pass == 2)
4181 block_state.modes.value |= UMODE_HIDDEN;
4182 }
4183 break;
4184
4185 case 178:
4186 /* Line 1787 of yacc.c */
4187 #line 1184 "conf_parser.y"
4188 {
4189 if (conf_parser_ctx.pass == 2)
4190 block_state.modes.value |= UMODE_SKILL;
4191 }
4192 break;
4193
4194 case 179:
4195 /* Line 1787 of yacc.c */
4196 #line 1188 "conf_parser.y"
4197 {
4198 if (conf_parser_ctx.pass == 2)
4199 block_state.modes.value |= UMODE_NCHANGE;
4200 }
4201 break;
4202
4203 case 180:
4204 /* Line 1787 of yacc.c */
4205 #line 1192 "conf_parser.y"
4206 {
4207 if (conf_parser_ctx.pass == 2)
4208 block_state.modes.value |= UMODE_REJ;
4209 }
4210 break;
4211
4212 case 181:
4213 /* Line 1787 of yacc.c */
4214 #line 1196 "conf_parser.y"
4215 {
4216 if (conf_parser_ctx.pass == 2)
4217 block_state.modes.value |= UMODE_UNAUTH;
4218 }
4219 break;
4220
4221 case 182:
4222 /* Line 1787 of yacc.c */
4223 #line 1200 "conf_parser.y"
4224 {
4225 if (conf_parser_ctx.pass == 2)
4226 block_state.modes.value |= UMODE_SPY;
4227 }
4228 break;
4229
4230 case 183:
4231 /* Line 1787 of yacc.c */
4232 #line 1204 "conf_parser.y"
4233 {
4234 if (conf_parser_ctx.pass == 2)
4235 block_state.modes.value |= UMODE_EXTERNAL;
4236 }
4237 break;
4238
4239 case 184:
4240 /* Line 1787 of yacc.c */
4241 #line 1208 "conf_parser.y"
4242 {
4243 if (conf_parser_ctx.pass == 2)
4244 block_state.modes.value |= UMODE_OPERWALL;
4245 }
4246 break;
4247
4248 case 185:
4249 /* Line 1787 of yacc.c */
4250 #line 1212 "conf_parser.y"
4251 {
4252 if (conf_parser_ctx.pass == 2)
4253 block_state.modes.value |= UMODE_SERVNOTICE;
4254 }
4255 break;
4256
4257 case 186:
4258 /* Line 1787 of yacc.c */
4259 #line 1216 "conf_parser.y"
4260 {
4261 if (conf_parser_ctx.pass == 2)
4262 block_state.modes.value |= UMODE_INVISIBLE;
4263 }
4264 break;
4265
4266 case 187:
4267 /* Line 1787 of yacc.c */
4268 #line 1220 "conf_parser.y"
4269 {
4270 if (conf_parser_ctx.pass == 2)
4271 block_state.modes.value |= UMODE_WALLOP;
4272 }
4273 break;
4274
4275 case 188:
4276 /* Line 1787 of yacc.c */
4277 #line 1224 "conf_parser.y"
4278 {
4279 if (conf_parser_ctx.pass == 2)
4280 block_state.modes.value |= UMODE_SOFTCALLERID;
4281 }
4282 break;
4283
4284 case 189:
4285 /* Line 1787 of yacc.c */
4286 #line 1228 "conf_parser.y"
4287 {
4288 if (conf_parser_ctx.pass == 2)
4289 block_state.modes.value |= UMODE_CALLERID;
4290 }
4291 break;
4292
4293 case 190:
4294 /* Line 1787 of yacc.c */
4295 #line 1232 "conf_parser.y"
4296 {
4297 if (conf_parser_ctx.pass == 2)
4298 block_state.modes.value |= UMODE_LOCOPS;
4299 }
4300 break;
4301
4302 case 191:
4303 /* Line 1787 of yacc.c */
4304 #line 1236 "conf_parser.y"
4305 {
4306 if (conf_parser_ctx.pass == 2)
4307 block_state.modes.value |= UMODE_REGONLY;
4308 }
4309 break;
4310
4311 case 192:
4312 /* Line 1787 of yacc.c */
4313 #line 1240 "conf_parser.y"
4314 {
4315 if (conf_parser_ctx.pass == 2)
4316 block_state.modes.value |= UMODE_FARCONNECT;
4317 }
4318 break;
4319
4320 case 193:
4321 /* Line 1787 of yacc.c */
4322 #line 1246 "conf_parser.y"
4323 {
4324 if (conf_parser_ctx.pass == 2)
4325 block_state.port.value = 0;
4326 }
4327 break;
4328
4329 case 197:
4330 /* Line 1787 of yacc.c */
4331 #line 1253 "conf_parser.y"
4332 {
4333 if (conf_parser_ctx.pass == 2)
4334 block_state.port.value |= OPER_FLAG_KILL_REMOTE;
4335 }
4336 break;
4337
4338 case 198:
4339 /* Line 1787 of yacc.c */
4340 #line 1257 "conf_parser.y"
4341 {
4342 if (conf_parser_ctx.pass == 2)
4343 block_state.port.value |= OPER_FLAG_KILL;
4344 }
4345 break;
4346
4347 case 199:
4348 /* Line 1787 of yacc.c */
4349 #line 1261 "conf_parser.y"
4350 {
4351 if (conf_parser_ctx.pass == 2)
4352 block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
4353 }
4354 break;
4355
4356 case 200:
4357 /* Line 1787 of yacc.c */
4358 #line 1265 "conf_parser.y"
4359 {
4360 if (conf_parser_ctx.pass == 2)
4361 block_state.port.value |= OPER_FLAG_CONNECT;
4362 }
4363 break;
4364
4365 case 201:
4366 /* Line 1787 of yacc.c */
4367 #line 1269 "conf_parser.y"
4368 {
4369 if (conf_parser_ctx.pass == 2)
4370 block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
4371 }
4372 break;
4373
4374 case 202:
4375 /* Line 1787 of yacc.c */
4376 #line 1273 "conf_parser.y"
4377 {
4378 if (conf_parser_ctx.pass == 2)
4379 block_state.port.value |= OPER_FLAG_SQUIT;
4380 }
4381 break;
4382
4383 case 203:
4384 /* Line 1787 of yacc.c */
4385 #line 1277 "conf_parser.y"
4386 {
4387 if (conf_parser_ctx.pass == 2)
4388 block_state.port.value |= OPER_FLAG_K;
4389 }
4390 break;
4391
4392 case 204:
4393 /* Line 1787 of yacc.c */
4394 #line 1281 "conf_parser.y"
4395 {
4396 if (conf_parser_ctx.pass == 2)
4397 block_state.port.value |= OPER_FLAG_UNKLINE;
4398 }
4399 break;
4400
4401 case 205:
4402 /* Line 1787 of yacc.c */
4403 #line 1285 "conf_parser.y"
4404 {
4405 if (conf_parser_ctx.pass == 2)
4406 block_state.port.value |= OPER_FLAG_DLINE;
4407 }
4408 break;
4409
4410 case 206:
4411 /* Line 1787 of yacc.c */
4412 #line 1289 "conf_parser.y"
4413 {
4414 if (conf_parser_ctx.pass == 2)
4415 block_state.port.value |= OPER_FLAG_UNDLINE;
4416 }
4417 break;
4418
4419 case 207:
4420 /* Line 1787 of yacc.c */
4421 #line 1293 "conf_parser.y"
4422 {
4423 if (conf_parser_ctx.pass == 2)
4424 block_state.port.value |= OPER_FLAG_X;
4425 }
4426 break;
4427
4428 case 208:
4429 /* Line 1787 of yacc.c */
4430 #line 1297 "conf_parser.y"
4431 {
4432 if (conf_parser_ctx.pass == 2)
4433 block_state.port.value |= OPER_FLAG_GLINE;
4434 }
4435 break;
4436
4437 case 209:
4438 /* Line 1787 of yacc.c */
4439 #line 1301 "conf_parser.y"
4440 {
4441 if (conf_parser_ctx.pass == 2)
4442 block_state.port.value |= OPER_FLAG_DIE;
4443 }
4444 break;
4445
4446 case 210:
4447 /* Line 1787 of yacc.c */
4448 #line 1305 "conf_parser.y"
4449 {
4450 if (conf_parser_ctx.pass == 2)
4451 block_state.port.value |= OPER_FLAG_RESTART;
4452 }
4453 break;
4454
4455 case 211:
4456 /* Line 1787 of yacc.c */
4457 #line 1309 "conf_parser.y"
4458 {
4459 if (conf_parser_ctx.pass == 2)
4460 block_state.port.value |= OPER_FLAG_REHASH;
4461 }
4462 break;
4463
4464 case 212:
4465 /* Line 1787 of yacc.c */
4466 #line 1313 "conf_parser.y"
4467 {
4468 if (conf_parser_ctx.pass == 2)
4469 block_state.port.value |= OPER_FLAG_ADMIN;
4470 }
4471 break;
4472
4473 case 213:
4474 /* Line 1787 of yacc.c */
4475 #line 1317 "conf_parser.y"
4476 {
4477 if (conf_parser_ctx.pass == 2)
4478 block_state.port.value |= OPER_FLAG_OPERWALL;
4479 }
4480 break;
4481
4482 case 214:
4483 /* Line 1787 of yacc.c */
4484 #line 1321 "conf_parser.y"
4485 {
4486 if (conf_parser_ctx.pass == 2)
4487 block_state.port.value |= OPER_FLAG_GLOBOPS;
4488 }
4489 break;
4490
4491 case 215:
4492 /* Line 1787 of yacc.c */
4493 #line 1325 "conf_parser.y"
4494 {
4495 if (conf_parser_ctx.pass == 2)
4496 block_state.port.value |= OPER_FLAG_WALLOPS;
4497 }
4498 break;
4499
4500 case 216:
4501 /* Line 1787 of yacc.c */
4502 #line 1329 "conf_parser.y"
4503 {
4504 if (conf_parser_ctx.pass == 2)
4505 block_state.port.value |= OPER_FLAG_LOCOPS;
4506 }
4507 break;
4508
4509 case 217:
4510 /* Line 1787 of yacc.c */
4511 #line 1333 "conf_parser.y"
4512 {
4513 if (conf_parser_ctx.pass == 2)
4514 block_state.port.value |= OPER_FLAG_REMOTEBAN;
4515 }
4516 break;
4517
4518 case 218:
4519 /* Line 1787 of yacc.c */
4520 #line 1337 "conf_parser.y"
4521 {
4522 if (conf_parser_ctx.pass == 2)
4523 block_state.port.value |= OPER_FLAG_SET;
4524 }
4525 break;
4526
4527 case 219:
4528 /* Line 1787 of yacc.c */
4529 #line 1341 "conf_parser.y"
4530 {
4531 if (conf_parser_ctx.pass == 2)
4532 block_state.port.value |= OPER_FLAG_MODULE;
4533 }
4534 break;
4535
4536 case 220:
4537 /* Line 1787 of yacc.c */
4538 #line 1351 "conf_parser.y"
4539 {
4540 if (conf_parser_ctx.pass != 1)
4541 break;
4542
4543 reset_block_state();
4544
4545 block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4546 block_state.con_freq.value = DEFAULT_CONNECTFREQUENCY;
4547 block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4548 block_state.max_sendq.value = DEFAULT_SENDQ;
4549 block_state.max_recvq.value = DEFAULT_RECVQ;
4550 }
4551 break;
4552
4553 case 221:
4554 /* Line 1787 of yacc.c */
4555 #line 1363 "conf_parser.y"
4556 {
4557 struct ClassItem *class = NULL;
4558
4559 if (conf_parser_ctx.pass != 1)
4560 break;
4561
4562 if (!block_state.class.buf[0])
4563 break;
4564
4565 if (!(class = class_find(block_state.class.buf, 0)))
4566 class = class_make();
4567
4568 class->active = 1;
4569 MyFree(class->name);
4570 class->name = xstrdup(block_state.class.buf);
4571 class->ping_freq = block_state.ping_freq.value;
4572 class->max_perip = block_state.max_perip.value;
4573 class->con_freq = block_state.con_freq.value;
4574 class->max_total = block_state.max_total.value;
4575 class->max_global = block_state.max_global.value;
4576 class->max_local = block_state.max_local.value;
4577 class->max_ident = block_state.max_ident.value;
4578 class->max_sendq = block_state.max_sendq.value;
4579 class->max_recvq = block_state.max_recvq.value;
4580
4581 if (block_state.min_idle.value > block_state.max_idle.value)
4582 {
4583 block_state.min_idle.value = 0;
4584 block_state.max_idle.value = 0;
4585 block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4586 }
4587
4588 class->flags = block_state.flags.value;
4589 class->min_idle = block_state.min_idle.value;
4590 class->max_idle = block_state.max_idle.value;
4591
4592 if (class->number_per_cidr && block_state.number_per_cidr.value)
4593 if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4594 (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4595 if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4596 (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4597 rebuild_cidr_list(class);
4598
4599 class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4600 class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4601 class->number_per_cidr = block_state.number_per_cidr.value;
4602 }
4603 break;
4604
4605 case 241:
4606 /* Line 1787 of yacc.c */
4607 #line 1429 "conf_parser.y"
4608 {
4609 if (conf_parser_ctx.pass == 1)
4610 strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4611 }
4612 break;
4613
4614 case 242:
4615 /* Line 1787 of yacc.c */
4616 #line 1435 "conf_parser.y"
4617 {
4618 if (conf_parser_ctx.pass == 1)
4619 block_state.ping_freq.value = (yyvsp[(3) - (4)].number);
4620 }
4621 break;
4622
4623 case 243:
4624 /* Line 1787 of yacc.c */
4625 #line 1441 "conf_parser.y"
4626 {
4627 if (conf_parser_ctx.pass == 1)
4628 block_state.max_perip.value = (yyvsp[(3) - (4)].number);
4629 }
4630 break;
4631
4632 case 244:
4633 /* Line 1787 of yacc.c */
4634 #line 1447 "conf_parser.y"
4635 {
4636 if (conf_parser_ctx.pass == 1)
4637 block_state.con_freq.value = (yyvsp[(3) - (4)].number);
4638 }
4639 break;
4640
4641 case 245:
4642 /* Line 1787 of yacc.c */
4643 #line 1453 "conf_parser.y"
4644 {
4645 if (conf_parser_ctx.pass == 1)
4646 block_state.max_total.value = (yyvsp[(3) - (4)].number);
4647 }
4648 break;
4649
4650 case 246:
4651 /* Line 1787 of yacc.c */
4652 #line 1459 "conf_parser.y"
4653 {
4654 if (conf_parser_ctx.pass == 1)
4655 block_state.max_global.value = (yyvsp[(3) - (4)].number);
4656 }
4657 break;
4658
4659 case 247:
4660 /* Line 1787 of yacc.c */
4661 #line 1465 "conf_parser.y"
4662 {
4663 if (conf_parser_ctx.pass == 1)
4664 block_state.max_local.value = (yyvsp[(3) - (4)].number);
4665 }
4666 break;
4667
4668 case 248:
4669 /* Line 1787 of yacc.c */
4670 #line 1471 "conf_parser.y"
4671 {
4672 if (conf_parser_ctx.pass == 1)
4673 block_state.max_ident.value = (yyvsp[(3) - (4)].number);
4674 }
4675 break;
4676
4677 case 249:
4678 /* Line 1787 of yacc.c */
4679 #line 1477 "conf_parser.y"
4680 {
4681 if (conf_parser_ctx.pass == 1)
4682 block_state.max_sendq.value = (yyvsp[(3) - (4)].number);
4683 }
4684 break;
4685
4686 case 250:
4687 /* Line 1787 of yacc.c */
4688 #line 1483 "conf_parser.y"
4689 {
4690 if (conf_parser_ctx.pass == 1)
4691 if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4692 block_state.max_recvq.value = (yyvsp[(3) - (4)].number);
4693 }
4694 break;
4695
4696 case 251:
4697 /* Line 1787 of yacc.c */
4698 #line 1490 "conf_parser.y"
4699 {
4700 if (conf_parser_ctx.pass == 1)
4701 block_state.cidr_bitlen_ipv4.value = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4702 }
4703 break;
4704
4705 case 252:
4706 /* Line 1787 of yacc.c */
4707 #line 1496 "conf_parser.y"
4708 {
4709 if (conf_parser_ctx.pass == 1)
4710 block_state.cidr_bitlen_ipv6.value = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4711 }
4712 break;
4713
4714 case 253:
4715 /* Line 1787 of yacc.c */
4716 #line 1502 "conf_parser.y"
4717 {
4718 if (conf_parser_ctx.pass == 1)
4719 block_state.number_per_cidr.value = (yyvsp[(3) - (4)].number);
4720 }
4721 break;
4722
4723 case 254:
4724 /* Line 1787 of yacc.c */
4725 #line 1508 "conf_parser.y"
4726 {
4727 if (conf_parser_ctx.pass != 1)
4728 break;
4729
4730 block_state.min_idle.value = (yyvsp[(3) - (4)].number);
4731 block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4732 }
4733 break;
4734
4735 case 255:
4736 /* Line 1787 of yacc.c */
4737 #line 1517 "conf_parser.y"
4738 {
4739 if (conf_parser_ctx.pass != 1)
4740 break;
4741
4742 block_state.max_idle.value = (yyvsp[(3) - (4)].number);
4743 block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4744 }
4745 break;
4746
4747 case 256:
4748 /* Line 1787 of yacc.c */
4749 #line 1526 "conf_parser.y"
4750 {
4751 if (conf_parser_ctx.pass == 1)
4752 block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4753 }
4754 break;
4755
4756 case 260:
4757 /* Line 1787 of yacc.c */
4758 #line 1533 "conf_parser.y"
4759 {
4760 if (conf_parser_ctx.pass == 1)
4761 block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4762 }
4763 break;
4764
4765 case 261:
4766 /* Line 1787 of yacc.c */
4767 #line 1537 "conf_parser.y"
4768 {
4769 if (conf_parser_ctx.pass == 1)
4770 block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4771 }
4772 break;
4773
4774 case 262:
4775 /* Line 1787 of yacc.c */
4776 #line 1547 "conf_parser.y"
4777 {
4778 if (conf_parser_ctx.pass == 2)
4779 reset_block_state();
4780 }
4781 break;
4782
4783 case 264:
4784 /* Line 1787 of yacc.c */
4785 #line 1553 "conf_parser.y"
4786 {
4787 block_state.flags.value = 0;
4788 }
4789 break;
4790
4791 case 268:
4792 /* Line 1787 of yacc.c */
4793 #line 1559 "conf_parser.y"
4794 {
4795 if (conf_parser_ctx.pass == 2)
4796 block_state.flags.value |= LISTENER_SSL;
4797 }
4798 break;
4799
4800 case 269:
4801 /* Line 1787 of yacc.c */
4802 #line 1563 "conf_parser.y"
4803 {
4804 if (conf_parser_ctx.pass == 2)
4805 block_state.flags.value |= LISTENER_HIDDEN;
4806 }
4807 break;
4808
4809 case 270:
4810 /* Line 1787 of yacc.c */
4811 #line 1567 "conf_parser.y"
4812 {
4813 if (conf_parser_ctx.pass == 2)
4814 block_state.flags.value |= LISTENER_SERVER;
4815 }
4816 break;
4817
4818 case 278:
4819 /* Line 1787 of yacc.c */
4820 #line 1575 "conf_parser.y"
4821 { block_state.flags.value = 0; }
4822 break;
4823
4824 case 282:
4825 /* Line 1787 of yacc.c */
4826 #line 1580 "conf_parser.y"
4827 {
4828 if (conf_parser_ctx.pass == 2)
4829 {
4830 if (block_state.flags.value & LISTENER_SSL)
4831 #ifdef HAVE_LIBCRYPTO
4832 if (!ServerInfo.server_ctx)
4833 #endif
4834 {
4835 conf_error_report("SSL not available - port closed");
4836 break;
4837 }
4838 add_listener((yyvsp[(1) - (1)].number), block_state.addr.buf, block_state.flags.value);
4839 }
4840 }
4841 break;
4842
4843 case 283:
4844 /* Line 1787 of yacc.c */
4845 #line 1594 "conf_parser.y"
4846 {
4847 if (conf_parser_ctx.pass == 2)
4848 {
4849 int i;
4850
4851 if (block_state.flags.value & LISTENER_SSL)
4852 #ifdef HAVE_LIBCRYPTO
4853 if (!ServerInfo.server_ctx)
4854 #endif
4855 {
4856 conf_error_report("SSL not available - port closed");
4857 break;
4858 }
4859
4860 for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4861 add_listener(i, block_state.addr.buf, block_state.flags.value);
4862 }
4863 }
4864 break;
4865
4866 case 284:
4867 /* Line 1787 of yacc.c */
4868 #line 1614 "conf_parser.y"
4869 {
4870 if (conf_parser_ctx.pass == 2)
4871 strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4872 }
4873 break;
4874
4875 case 285:
4876 /* Line 1787 of yacc.c */
4877 #line 1620 "conf_parser.y"
4878 {
4879 if (conf_parser_ctx.pass == 2)
4880 strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4881 }
4882 break;
4883
4884 case 286:
4885 /* Line 1787 of yacc.c */
4886 #line 1629 "conf_parser.y"
4887 {
4888 if (conf_parser_ctx.pass == 2)
4889 reset_block_state();
4890 }
4891 break;
4892
4893 case 287:
4894 /* Line 1787 of yacc.c */
4895 #line 1633 "conf_parser.y"
4896 {
4897 dlink_node *ptr = NULL;
4898
4899 if (conf_parser_ctx.pass != 2)
4900 break;
4901
4902 DLINK_FOREACH(ptr, block_state.mask.list.head)
4903 {
4904 struct MaskItem *conf = NULL;
4905 struct split_nuh_item nuh;
4906
4907 nuh.nuhmask = ptr->data;
4908 nuh.nickptr = NULL;
4909 nuh.userptr = block_state.user.buf;
4910 nuh.hostptr = block_state.host.buf;
4911 nuh.nicksize = 0;
4912 nuh.usersize = sizeof(block_state.user.buf);
4913 nuh.hostsize = sizeof(block_state.host.buf);
4914 split_nuh(&nuh);
4915
4916 conf = conf_make(CONF_CLIENT);
4917 conf->user = xstrdup(block_state.user.buf);
4918 conf->host = xstrdup(block_state.host.buf);
4919
4920 if (block_state.rpass.buf[0])
4921 conf->passwd = xstrdup(block_state.rpass.buf);
4922 if (block_state.name.buf[0])
4923 conf->name = xstrdup(block_state.name.buf);
4924
4925 conf->flags = block_state.flags.value;
4926 conf->port = block_state.port.value;
4927
4928 conf_add_class_to_conf(conf, block_state.class.buf);
4929 add_conf_by_address(CONF_CLIENT, conf);
4930 }
4931 }
4932 break;
4933
4934 case 299:
4935 /* Line 1787 of yacc.c */
4936 #line 1676 "conf_parser.y"
4937 {
4938 if (conf_parser_ctx.pass == 2)
4939 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4940 }
4941 break;
4942
4943 case 300:
4944 /* Line 1787 of yacc.c */
4945 #line 1682 "conf_parser.y"
4946 {
4947 if (conf_parser_ctx.pass == 2)
4948 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4949 }
4950 break;
4951
4952 case 301:
4953 /* Line 1787 of yacc.c */
4954 #line 1688 "conf_parser.y"
4955 {
4956 if (conf_parser_ctx.pass == 2)
4957 strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4958 }
4959 break;
4960
4961 case 302:
4962 /* Line 1787 of yacc.c */
4963 #line 1694 "conf_parser.y"
4964 {
4965 if (conf_parser_ctx.pass == 2)
4966 {
4967 if (yylval.number)
4968 block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4969 else
4970 block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4971 }
4972 }
4973 break;
4974
4975 case 303:
4976 /* Line 1787 of yacc.c */
4977 #line 1705 "conf_parser.y"
4978 {
4979 if (conf_parser_ctx.pass == 2)
4980 block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4981 }
4982 break;
4983
4984 case 307:
4985 /* Line 1787 of yacc.c */
4986 #line 1712 "conf_parser.y"
4987 {
4988 if (conf_parser_ctx.pass == 2)
4989 block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4990 }
4991 break;
4992
4993 case 308:
4994 /* Line 1787 of yacc.c */
4995 #line 1716 "conf_parser.y"
4996 {
4997 if (conf_parser_ctx.pass == 2)
4998 block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4999 }
5000 break;
5001
5002 case 309:
5003 /* Line 1787 of yacc.c */
5004 #line 1720 "conf_parser.y"
5005 {
5006 if (conf_parser_ctx.pass == 2)
5007 block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
5008 }
5009 break;
5010
5011 case 310:
5012 /* Line 1787 of yacc.c */
5013 #line 1724 "conf_parser.y"
5014 {
5015 if (conf_parser_ctx.pass == 2)
5016 block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
5017 }
5018 break;
5019
5020 case 311:
5021 /* Line 1787 of yacc.c */
5022 #line 1728 "conf_parser.y"
5023 {
5024 if (conf_parser_ctx.pass == 2)
5025 block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
5026 }
5027 break;
5028
5029 case 312:
5030 /* Line 1787 of yacc.c */
5031 #line 1732 "conf_parser.y"
5032 {
5033 if (conf_parser_ctx.pass == 2)
5034 block_state.flags.value |= CONF_FLAGS_NO_TILDE;
5035 }
5036 break;
5037
5038 case 313:
5039 /* Line 1787 of yacc.c */
5040 #line 1736 "conf_parser.y"
5041 {
5042 if (conf_parser_ctx.pass == 2)
5043 block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
5044 }
5045 break;
5046
5047 case 314:
5048 /* Line 1787 of yacc.c */
5049 #line 1740 "conf_parser.y"
5050 {
5051 if (conf_parser_ctx.pass == 2)
5052 block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
5053 }
5054 break;
5055
5056 case 315:
5057 /* Line 1787 of yacc.c */
5058 #line 1744 "conf_parser.y"
5059 {
5060 if (conf_parser_ctx.pass == 2)
5061 block_state.flags.value |= CONF_FLAGS_WEBIRC;
5062 }
5063 break;
5064
5065 case 316:
5066 /* Line 1787 of yacc.c */
5067 #line 1748 "conf_parser.y"
5068 {
5069 if (conf_parser_ctx.pass == 2)
5070 block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
5071 }
5072 break;
5073
5074 case 317:
5075 /* Line 1787 of yacc.c */
5076 #line 1754 "conf_parser.y"
5077 {
5078 if (conf_parser_ctx.pass != 2)
5079 break;
5080
5081 if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
5082 {
5083 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5084 block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
5085 }
5086 else
5087 ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
5088 }
5089 break;
5090
5091 case 318:
5092 /* Line 1787 of yacc.c */
5093 #line 1768 "conf_parser.y"
5094 {
5095 if (conf_parser_ctx.pass != 2)
5096 break;
5097
5098 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5099 block_state.flags.value |= CONF_FLAGS_REDIR;
5100 }
5101 break;
5102
5103 case 319:
5104 /* Line 1787 of yacc.c */
5105 #line 1777 "conf_parser.y"
5106 {
5107 if (conf_parser_ctx.pass != 2)
5108 break;
5109
5110 block_state.flags.value |= CONF_FLAGS_REDIR;
5111 block_state.port.value = (yyvsp[(3) - (4)].number);
5112 }
5113 break;
5114
5115 case 320:
5116 /* Line 1787 of yacc.c */
5117 #line 1790 "conf_parser.y"
5118 {
5119 if (conf_parser_ctx.pass != 2)
5120 break;
5121
5122 reset_block_state();
5123 strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
5124 }
5125 break;
5126
5127 case 321:
5128 /* Line 1787 of yacc.c */
5129 #line 1797 "conf_parser.y"
5130 {
5131 if (conf_parser_ctx.pass != 2)
5132 break;
5133
5134 create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
5135 }
5136 break;
5137
5138 case 328:
5139 /* Line 1787 of yacc.c */
5140 #line 1808 "conf_parser.y"
5141 {
5142 if (conf_parser_ctx.pass == 2)
5143 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5144 }
5145 break;
5146
5147 case 329:
5148 /* Line 1787 of yacc.c */
5149 #line 1814 "conf_parser.y"
5150 {
5151 if (conf_parser_ctx.pass == 2)
5152 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5153 }
5154 break;
5155
5156 case 330:
5157 /* Line 1787 of yacc.c */
5158 #line 1820 "conf_parser.y"
5159 {
5160 if (conf_parser_ctx.pass == 2)
5161 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
5162 }
5163 break;
5164
5165 case 336:
5166 /* Line 1787 of yacc.c */
5167 #line 1835 "conf_parser.y"
5168 {
5169 if (conf_parser_ctx.pass != 2)
5170 break;
5171
5172 if (valid_servname(yylval.string))
5173 {
5174 struct MaskItem *conf = conf_make(CONF_SERVICE);
5175 conf->name = xstrdup(yylval.string);
5176 }
5177 }
5178 break;
5179
5180 case 337:
5181 /* Line 1787 of yacc.c */
5182 #line 1850 "conf_parser.y"
5183 {
5184 if (conf_parser_ctx.pass != 2)
5185 break;
5186
5187 reset_block_state();
5188
5189 strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5190 strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
5191 strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
5192 block_state.flags.value = SHARED_ALL;
5193 }
5194 break;
5195
5196 case 338:
5197 /* Line 1787 of yacc.c */
5198 #line 1861 "conf_parser.y"
5199 {
5200 struct MaskItem *conf = NULL;
5201
5202 if (conf_parser_ctx.pass != 2)
5203 break;
5204
5205 conf = conf_make(CONF_ULINE);
5206 conf->flags = block_state.flags.value;
5207 conf->name = xstrdup(block_state.name.buf);
5208 conf->user = xstrdup(block_state.user.buf);
5209 conf->host = xstrdup(block_state.host.buf);
5210 }
5211 break;
5212
5213 case 345:
5214 /* Line 1787 of yacc.c */
5215 #line 1878 "conf_parser.y"
5216 {
5217 if (conf_parser_ctx.pass == 2)
5218 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5219 }
5220 break;
5221
5222 case 346:
5223 /* Line 1787 of yacc.c */
5224 #line 1884 "conf_parser.y"
5225 {
5226 if (conf_parser_ctx.pass == 2)
5227 {
5228 struct split_nuh_item nuh;
5229
5230 nuh.nuhmask = yylval.string;
5231 nuh.nickptr = NULL;
5232 nuh.userptr = block_state.user.buf;
5233 nuh.hostptr = block_state.host.buf;
5234
5235 nuh.nicksize = 0;
5236 nuh.usersize = sizeof(block_state.user.buf);
5237 nuh.hostsize = sizeof(block_state.host.buf);
5238
5239 split_nuh(&nuh);
5240 }
5241 }
5242 break;
5243
5244 case 347:
5245 /* Line 1787 of yacc.c */
5246 #line 1903 "conf_parser.y"
5247 {
5248 if (conf_parser_ctx.pass == 2)
5249 block_state.flags.value = 0;
5250 }
5251 break;
5252
5253 case 351:
5254 /* Line 1787 of yacc.c */
5255 #line 1910 "conf_parser.y"
5256 {
5257 if (conf_parser_ctx.pass == 2)
5258 block_state.flags.value |= SHARED_KLINE;
5259 }
5260 break;
5261
5262 case 352:
5263 /* Line 1787 of yacc.c */
5264 #line 1914 "conf_parser.y"
5265 {
5266 if (conf_parser_ctx.pass == 2)
5267 block_state.flags.value |= SHARED_UNKLINE;
5268 }
5269 break;
5270
5271 case 353:
5272 /* Line 1787 of yacc.c */
5273 #line 1918 "conf_parser.y"
5274 {
5275 if (conf_parser_ctx.pass == 2)
5276 block_state.flags.value |= SHARED_DLINE;
5277 }
5278 break;
5279
5280 case 354:
5281 /* Line 1787 of yacc.c */
5282 #line 1922 "conf_parser.y"
5283 {
5284 if (conf_parser_ctx.pass == 2)
5285 block_state.flags.value |= SHARED_UNDLINE;
5286 }
5287 break;
5288
5289 case 355:
5290 /* Line 1787 of yacc.c */
5291 #line 1926 "conf_parser.y"
5292 {
5293 if (conf_parser_ctx.pass == 2)
5294 block_state.flags.value |= SHARED_XLINE;
5295 }
5296 break;
5297
5298 case 356:
5299 /* Line 1787 of yacc.c */
5300 #line 1930 "conf_parser.y"
5301 {
5302 if (conf_parser_ctx.pass == 2)
5303 block_state.flags.value |= SHARED_UNXLINE;
5304 }
5305 break;
5306
5307 case 357:
5308 /* Line 1787 of yacc.c */
5309 #line 1934 "conf_parser.y"
5310 {
5311 if (conf_parser_ctx.pass == 2)
5312 block_state.flags.value |= SHARED_RESV;
5313 }
5314 break;
5315
5316 case 358:
5317 /* Line 1787 of yacc.c */
5318 #line 1938 "conf_parser.y"
5319 {
5320 if (conf_parser_ctx.pass == 2)
5321 block_state.flags.value |= SHARED_UNRESV;
5322 }
5323 break;
5324
5325 case 359:
5326 /* Line 1787 of yacc.c */
5327 #line 1942 "conf_parser.y"
5328 {
5329 if (conf_parser_ctx.pass == 2)
5330 block_state.flags.value |= SHARED_LOCOPS;
5331 }
5332 break;
5333
5334 case 360:
5335 /* Line 1787 of yacc.c */
5336 #line 1946 "conf_parser.y"
5337 {
5338 if (conf_parser_ctx.pass == 2)
5339 block_state.flags.value = SHARED_ALL;
5340 }
5341 break;
5342
5343 case 361:
5344 /* Line 1787 of yacc.c */
5345 #line 1955 "conf_parser.y"
5346 {
5347 if (conf_parser_ctx.pass != 2)
5348 break;
5349
5350 reset_block_state();
5351
5352 strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5353 block_state.flags.value = SHARED_ALL;
5354 }
5355 break;
5356
5357 case 362:
5358 /* Line 1787 of yacc.c */
5359 #line 1964 "conf_parser.y"
5360 {
5361 struct MaskItem *conf = NULL;
5362
5363 if (conf_parser_ctx.pass != 2)
5364 break;
5365
5366 conf = conf_make(CONF_CLUSTER);
5367 conf->flags = block_state.flags.value;
5368 conf->name = xstrdup(block_state.name.buf);
5369 }
5370 break;
5371
5372 case 368:
5373 /* Line 1787 of yacc.c */
5374 #line 1979 "conf_parser.y"
5375 {
5376 if (conf_parser_ctx.pass == 2)
5377 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5378 }
5379 break;
5380
5381 case 369:
5382 /* Line 1787 of yacc.c */
5383 #line 1985 "conf_parser.y"
5384 {
5385 if (conf_parser_ctx.pass == 2)
5386 block_state.flags.value = 0;
5387 }
5388 break;
5389
5390 case 373:
5391 /* Line 1787 of yacc.c */
5392 #line 1992 "conf_parser.y"
5393 {
5394 if (conf_parser_ctx.pass == 2)
5395 block_state.flags.value |= SHARED_KLINE;
5396 }
5397 break;
5398
5399 case 374:
5400 /* Line 1787 of yacc.c */
5401 #line 1996 "conf_parser.y"
5402 {
5403 if (conf_parser_ctx.pass == 2)
5404 block_state.flags.value |= SHARED_UNKLINE;
5405 }
5406 break;
5407
5408 case 375:
5409 /* Line 1787 of yacc.c */
5410 #line 2000 "conf_parser.y"
5411 {
5412 if (conf_parser_ctx.pass == 2)
5413 block_state.flags.value |= SHARED_DLINE;
5414 }
5415 break;
5416
5417 case 376:
5418 /* Line 1787 of yacc.c */
5419 #line 2004 "conf_parser.y"
5420 {
5421 if (conf_parser_ctx.pass == 2)
5422 block_state.flags.value |= SHARED_UNDLINE;
5423 }
5424 break;
5425
5426 case 377:
5427 /* Line 1787 of yacc.c */
5428 #line 2008 "conf_parser.y"
5429 {
5430 if (conf_parser_ctx.pass == 2)
5431 block_state.flags.value |= SHARED_XLINE;
5432 }
5433 break;
5434
5435 case 378:
5436 /* Line 1787 of yacc.c */
5437 #line 2012 "conf_parser.y"
5438 {
5439 if (conf_parser_ctx.pass == 2)
5440 block_state.flags.value |= SHARED_UNXLINE;
5441 }
5442 break;
5443
5444 case 379:
5445 /* Line 1787 of yacc.c */
5446 #line 2016 "conf_parser.y"
5447 {
5448 if (conf_parser_ctx.pass == 2)
5449 block_state.flags.value |= SHARED_RESV;
5450 }
5451 break;
5452
5453 case 380:
5454 /* Line 1787 of yacc.c */
5455 #line 2020 "conf_parser.y"
5456 {
5457 if (conf_parser_ctx.pass == 2)
5458 block_state.flags.value |= SHARED_UNRESV;
5459 }
5460 break;
5461
5462 case 381:
5463 /* Line 1787 of yacc.c */
5464 #line 2024 "conf_parser.y"
5465 {
5466 if (conf_parser_ctx.pass == 2)
5467 block_state.flags.value |= SHARED_LOCOPS;
5468 }
5469 break;
5470
5471 case 382:
5472 /* Line 1787 of yacc.c */
5473 #line 2028 "conf_parser.y"
5474 {
5475 if (conf_parser_ctx.pass == 2)
5476 block_state.flags.value = SHARED_ALL;
5477 }
5478 break;
5479
5480 case 383:
5481 /* Line 1787 of yacc.c */
5482 #line 2037 "conf_parser.y"
5483 {
5484
5485 if (conf_parser_ctx.pass != 2)
5486 break;
5487
5488 reset_block_state();
5489 block_state.port.value = PORTNUM;
5490 }
5491 break;
5492
5493 case 384:
5494 /* Line 1787 of yacc.c */
5495 #line 2045 "conf_parser.y"
5496 {
5497 struct MaskItem *conf = NULL;
5498 struct addrinfo hints, *res;
5499
5500 if (conf_parser_ctx.pass != 2)
5501 break;
5502
5503 if (!block_state.name.buf[0] ||
5504 !block_state.host.buf[0])
5505 break;
5506
5507 if (!block_state.rpass.buf[0] ||
5508 !block_state.spass.buf[0])
5509 break;
5510
5511 if (has_wildcards(block_state.name.buf) ||
5512 has_wildcards(block_state.host.buf))
5513 break;
5514
5515 conf = conf_make(CONF_SERVER);
5516 conf->port = block_state.port.value;
5517 conf->flags = block_state.flags.value;
5518 conf->aftype = block_state.aftype.value;
5519 conf->host = xstrdup(block_state.host.buf);
5520 conf->name = xstrdup(block_state.name.buf);
5521 conf->passwd = xstrdup(block_state.rpass.buf);
5522 conf->spasswd = xstrdup(block_state.spass.buf);
5523
5524 if (block_state.cert.buf[0])
5525 conf->certfp = xstrdup(block_state.cert.buf);
5526
5527 if (block_state.ciph.buf[0])
5528 conf->cipher_list = xstrdup(block_state.ciph.buf);
5529
5530 dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5531 dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5532
5533 if (block_state.bind.buf[0])
5534 {
5535 memset(&hints, 0, sizeof(hints));
5536
5537 hints.ai_family = AF_UNSPEC;
5538 hints.ai_socktype = SOCK_STREAM;
5539 hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST;
5540
5541 if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5542 ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5543 else
5544 {
5545 assert(res != NULL);
5546
5547 memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5548 conf->bind.ss.ss_family = res->ai_family;
5549 conf->bind.ss_len = res->ai_addrlen;
5550 freeaddrinfo(res);
5551 }
5552 }
5553
5554 conf_add_class_to_conf(conf, block_state.class.buf);
5555 lookup_confhost(conf);
5556 }
5557 break;
5558
5559 case 402:
5560 /* Line 1787 of yacc.c */
5561 #line 2117 "conf_parser.y"
5562 {
5563 if (conf_parser_ctx.pass == 2)
5564 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5565 }
5566 break;
5567
5568 case 403:
5569 /* Line 1787 of yacc.c */
5570 #line 2123 "conf_parser.y"
5571 {
5572 if (conf_parser_ctx.pass == 2)
5573 strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5574 }
5575 break;
5576
5577 case 404:
5578 /* Line 1787 of yacc.c */
5579 #line 2129 "conf_parser.y"
5580 {
5581 if (conf_parser_ctx.pass == 2)
5582 strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5583 }
5584 break;
5585
5586 case 405:
5587 /* Line 1787 of yacc.c */
5588 #line 2135 "conf_parser.y"
5589 {
5590 if (conf_parser_ctx.pass != 2)
5591 break;
5592
5593 if ((yyvsp[(3) - (4)].string)[0] == ':')
5594 conf_error_report("Server passwords cannot begin with a colon");
5595 else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5596 conf_error_report("Server passwords cannot contain spaces");
5597 else
5598 strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5599 }
5600 break;
5601
5602 case 406:
5603 /* Line 1787 of yacc.c */
5604 #line 2148 "conf_parser.y"
5605 {
5606 if (conf_parser_ctx.pass != 2)
5607 break;
5608
5609 if ((yyvsp[(3) - (4)].string)[0] == ':')
5610 conf_error_report("Server passwords cannot begin with a colon");
5611 else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5612 conf_error_report("Server passwords cannot contain spaces");
5613 else
5614 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5615 }
5616 break;
5617
5618 case 407:
5619 /* Line 1787 of yacc.c */
5620 #line 2161 "conf_parser.y"
5621 {
5622 if (conf_parser_ctx.pass == 2)
5623 strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5624 }
5625 break;
5626
5627 case 408:
5628 /* Line 1787 of yacc.c */
5629 #line 2167 "conf_parser.y"
5630 {
5631 if (conf_parser_ctx.pass == 2)
5632 block_state.port.value = (yyvsp[(3) - (4)].number);
5633 }
5634 break;
5635
5636 case 409:
5637 /* Line 1787 of yacc.c */
5638 #line 2173 "conf_parser.y"
5639 {
5640 if (conf_parser_ctx.pass == 2)
5641 block_state.aftype.value = AF_INET;
5642 }
5643 break;
5644
5645 case 410:
5646 /* Line 1787 of yacc.c */
5647 #line 2177 "conf_parser.y"
5648 {
5649 #ifdef IPV6
5650 if (conf_parser_ctx.pass == 2)
5651 block_state.aftype.value = AF_INET6;
5652 #endif
5653 }
5654 break;
5655
5656 case 411:
5657 /* Line 1787 of yacc.c */
5658 #line 2185 "conf_parser.y"
5659 {
5660 block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5661 }
5662 break;
5663
5664 case 415:
5665 /* Line 1787 of yacc.c */
5666 #line 2191 "conf_parser.y"
5667 {
5668 if (conf_parser_ctx.pass == 2)
5669 block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5670 }
5671 break;
5672
5673 case 416:
5674 /* Line 1787 of yacc.c */
5675 #line 2195 "conf_parser.y"
5676 {
5677 if (conf_parser_ctx.pass == 2)
5678 block_state.flags.value |= CONF_FLAGS_SSL;
5679 }
5680 break;
5681
5682 case 417:
5683 /* Line 1787 of yacc.c */
5684 #line 2201 "conf_parser.y"
5685 {
5686 if (conf_parser_ctx.pass == 2)
5687 {
5688 if (yylval.number)
5689 block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5690 else
5691 block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5692 }
5693 }
5694 break;
5695
5696 case 418:
5697 /* Line 1787 of yacc.c */
5698 #line 2212 "conf_parser.y"
5699 {
5700 if (conf_parser_ctx.pass == 2)
5701 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5702 }
5703 break;
5704
5705 case 419:
5706 /* Line 1787 of yacc.c */
5707 #line 2218 "conf_parser.y"
5708 {
5709 if (conf_parser_ctx.pass == 2)
5710 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5711 }
5712 break;
5713
5714 case 420:
5715 /* Line 1787 of yacc.c */
5716 #line 2224 "conf_parser.y"
5717 {
5718 if (conf_parser_ctx.pass == 2)
5719 strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5720 }
5721 break;
5722
5723 case 421:
5724 /* Line 1787 of yacc.c */
5725 #line 2230 "conf_parser.y"
5726 {
5727 #ifdef HAVE_LIBCRYPTO
5728 if (conf_parser_ctx.pass == 2)
5729 strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5730 #else
5731 if (conf_parser_ctx.pass == 2)
5732 conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5733 #endif
5734 }
5735 break;
5736
5737 case 422:
5738 /* Line 1787 of yacc.c */
5739 #line 2245 "conf_parser.y"
5740 {
5741 if (conf_parser_ctx.pass == 2)
5742 reset_block_state();
5743 }
5744 break;
5745
5746 case 423:
5747 /* Line 1787 of yacc.c */
5748 #line 2249 "conf_parser.y"
5749 {
5750 struct MaskItem *conf = NULL;
5751
5752 if (conf_parser_ctx.pass != 2)
5753 break;
5754
5755 if (!block_state.user.buf[0] ||
5756 !block_state.host.buf[0])
5757 break;
5758
5759 conf = conf_make(CONF_KLINE);
5760 conf->user = xstrdup(block_state.user.buf);
5761 conf->host = xstrdup(block_state.host.buf);
5762
5763 if (block_state.rpass.buf[0])
5764 conf->reason = xstrdup(block_state.rpass.buf);
5765 else
5766 conf->reason = xstrdup(CONF_NOREASON);
5767 add_conf_by_address(CONF_KLINE, conf);
5768 }
5769 break;
5770
5771 case 429:
5772 /* Line 1787 of yacc.c */
5773 #line 2274 "conf_parser.y"
5774 {
5775
5776 if (conf_parser_ctx.pass == 2)
5777 {
5778 struct split_nuh_item nuh;
5779
5780 nuh.nuhmask = yylval.string;
5781 nuh.nickptr = NULL;
5782 nuh.userptr = block_state.user.buf;
5783 nuh.hostptr = block_state.host.buf;
5784
5785 nuh.nicksize = 0;
5786 nuh.usersize = sizeof(block_state.user.buf);
5787 nuh.hostsize = sizeof(block_state.host.buf);
5788
5789 split_nuh(&nuh);
5790 }
5791 }
5792 break;
5793
5794 case 430:
5795 /* Line 1787 of yacc.c */
5796 #line 2294 "conf_parser.y"
5797 {
5798 if (conf_parser_ctx.pass == 2)
5799 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5800 }
5801 break;
5802
5803 case 431:
5804 /* Line 1787 of yacc.c */
5805 #line 2303 "conf_parser.y"
5806 {
5807 if (conf_parser_ctx.pass == 2)
5808 reset_block_state();
5809 }
5810 break;
5811
5812 case 432:
5813 /* Line 1787 of yacc.c */
5814 #line 2307 "conf_parser.y"
5815 {
5816 struct MaskItem *conf = NULL;
5817
5818 if (conf_parser_ctx.pass != 2)
5819 break;
5820
5821 if (!block_state.addr.buf[0])
5822 break;
5823
5824 if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5825 {
5826 conf = conf_make(CONF_DLINE);
5827 conf->host = xstrdup(block_state.addr.buf);
5828
5829 if (block_state.rpass.buf[0])
5830 conf->reason = xstrdup(block_state.rpass.buf);
5831 else
5832 conf->reason = xstrdup(CONF_NOREASON);
5833 add_conf_by_address(CONF_DLINE, conf);
5834 }
5835 }
5836 break;
5837
5838 case 438:
5839 /* Line 1787 of yacc.c */
5840 #line 2333 "conf_parser.y"
5841 {
5842 if (conf_parser_ctx.pass == 2)
5843 strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5844 }
5845 break;
5846
5847 case 439:
5848 /* Line 1787 of yacc.c */
5849 #line 2339 "conf_parser.y"
5850 {
5851 if (conf_parser_ctx.pass == 2)
5852 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5853 }
5854 break;
5855
5856 case 445:
5857 /* Line 1787 of yacc.c */
5858 #line 2353 "conf_parser.y"
5859 {
5860 if (conf_parser_ctx.pass == 2)
5861 {
5862 if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5863 {
5864 struct MaskItem *conf = conf_make(CONF_EXEMPT);
5865 conf->host = xstrdup(yylval.string);
5866
5867 add_conf_by_address(CONF_EXEMPT, conf);
5868 }
5869 }
5870 }
5871 break;
5872
5873 case 446:
5874 /* Line 1787 of yacc.c */
5875 #line 2370 "conf_parser.y"
5876 {
5877 if (conf_parser_ctx.pass == 2)
5878 reset_block_state();
5879 }
5880 break;
5881
5882 case 447:
5883 /* Line 1787 of yacc.c */
5884 #line 2374 "conf_parser.y"
5885 {
5886 struct MaskItem *conf = NULL;
5887
5888 if (conf_parser_ctx.pass != 2)
5889 break;
5890
5891 if (!block_state.name.buf[0])
5892 break;
5893
5894 conf = conf_make(CONF_XLINE);
5895 conf->name = xstrdup(block_state.name.buf);
5896
5897 if (block_state.rpass.buf[0])
5898 conf->reason = xstrdup(block_state.rpass.buf);
5899 else
5900 conf->reason = xstrdup(CONF_NOREASON);
5901 }
5902 break;
5903
5904 case 453:
5905 /* Line 1787 of yacc.c */
5906 #line 2396 "conf_parser.y"
5907 {
5908 if (conf_parser_ctx.pass == 2)
5909 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5910 }
5911 break;
5912
5913 case 454:
5914 /* Line 1787 of yacc.c */
5915 #line 2402 "conf_parser.y"
5916 {
5917 if (conf_parser_ctx.pass == 2)
5918 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5919 }
5920 break;
5921
5922 case 506:
5923 /* Line 1787 of yacc.c */
5924 #line 2445 "conf_parser.y"
5925 {
5926 ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5927 }
5928 break;
5929
5930 case 507:
5931 /* Line 1787 of yacc.c */
5932 #line 2450 "conf_parser.y"
5933 {
5934 if (conf_parser_ctx.pass == 2)
5935 ConfigFileEntry.glines = yylval.number;
5936 }
5937 break;
5938
5939 case 508:
5940 /* Line 1787 of yacc.c */
5941 #line 2456 "conf_parser.y"
5942 {
5943 if (conf_parser_ctx.pass == 2)
5944 ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5945 }
5946 break;
5947
5948 case 509:
5949 /* Line 1787 of yacc.c */
5950 #line 2462 "conf_parser.y"
5951 {
5952 if (conf_parser_ctx.pass == 2)
5953 ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5954 }
5955 break;
5956
5957 case 510:
5958 /* Line 1787 of yacc.c */
5959 #line 2468 "conf_parser.y"
5960 {
5961 ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5962 }
5963 break;
5964
5965 case 511:
5966 /* Line 1787 of yacc.c */
5967 #line 2473 "conf_parser.y"
5968 {
5969 ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5970 }
5971 break;
5972
5973 case 512:
5974 /* Line 1787 of yacc.c */
5975 #line 2478 "conf_parser.y"
5976 {
5977 ConfigFileEntry.tkline_expire_notices = yylval.number;
5978 }
5979 break;
5980
5981 case 513:
5982 /* Line 1787 of yacc.c */
5983 #line 2483 "conf_parser.y"
5984 {
5985 ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5986 }
5987 break;
5988
5989 case 514:
5990 /* Line 1787 of yacc.c */
5991 #line 2488 "conf_parser.y"
5992 {
5993 ConfigFileEntry.hide_spoof_ips = yylval.number;
5994 }
5995 break;
5996
5997 case 515:
5998 /* Line 1787 of yacc.c */
5999 #line 2493 "conf_parser.y"
6000 {
6001 ConfigFileEntry.ignore_bogus_ts = yylval.number;
6002 }
6003 break;
6004
6005 case 516:
6006 /* Line 1787 of yacc.c */
6007 #line 2498 "conf_parser.y"
6008 {
6009 ConfigFileEntry.failed_oper_notice = yylval.number;
6010 }
6011 break;
6012
6013 case 517:
6014 /* Line 1787 of yacc.c */
6015 #line 2503 "conf_parser.y"
6016 {
6017 ConfigFileEntry.anti_nick_flood = yylval.number;
6018 }
6019 break;
6020
6021 case 518:
6022 /* Line 1787 of yacc.c */
6023 #line 2508 "conf_parser.y"
6024 {
6025 ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
6026 }
6027 break;
6028
6029 case 519:
6030 /* Line 1787 of yacc.c */
6031 #line 2513 "conf_parser.y"
6032 {
6033 ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
6034 }
6035 break;
6036
6037 case 520:
6038 /* Line 1787 of yacc.c */
6039 #line 2518 "conf_parser.y"
6040 {
6041 ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
6042 }
6043 break;
6044
6045 case 521:
6046 /* Line 1787 of yacc.c */
6047 #line 2523 "conf_parser.y"
6048 {
6049 ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
6050 }
6051 break;
6052
6053 case 522:
6054 /* Line 1787 of yacc.c */
6055 #line 2528 "conf_parser.y"
6056 {
6057 ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
6058 }
6059 break;
6060
6061 case 523:
6062 /* Line 1787 of yacc.c */
6063 #line 2533 "conf_parser.y"
6064 {
6065 if (conf_parser_ctx.pass == 2)
6066 ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
6067 }
6068 break;
6069
6070 case 524:
6071 /* Line 1787 of yacc.c */
6072 #line 2539 "conf_parser.y"
6073 {
6074 if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
6075 {
6076 ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
6077 ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
6078 ilog(LOG_TYPE_IRCD, "Consider actually reading/editing the conf file, and removing this line.");
6079 exit(0);
6080 }
6081 }
6082 break;
6083
6084 case 525:
6085 /* Line 1787 of yacc.c */
6086 #line 2550 "conf_parser.y"
6087 {
6088 ConfigFileEntry.invisible_on_connect = yylval.number;
6089 }
6090 break;
6091
6092 case 526:
6093 /* Line 1787 of yacc.c */
6094 #line 2555 "conf_parser.y"
6095 {
6096 ConfigFileEntry.warn_no_nline = yylval.number;
6097 }
6098 break;
6099
6100 case 527:
6101 /* Line 1787 of yacc.c */
6102 #line 2560 "conf_parser.y"
6103 {
6104 ConfigFileEntry.stats_e_disabled = yylval.number;
6105 }
6106 break;
6107
6108 case 528:
6109 /* Line 1787 of yacc.c */
6110 #line 2565 "conf_parser.y"
6111 {
6112 ConfigFileEntry.stats_o_oper_only = yylval.number;
6113 }
6114 break;
6115
6116 case 529:
6117 /* Line 1787 of yacc.c */
6118 #line 2570 "conf_parser.y"
6119 {
6120 ConfigFileEntry.stats_P_oper_only = yylval.number;
6121 }
6122 break;
6123
6124 case 530:
6125 /* Line 1787 of yacc.c */
6126 #line 2575 "conf_parser.y"
6127 {
6128 ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
6129 }
6130 break;
6131
6132 case 531:
6133 /* Line 1787 of yacc.c */
6134 #line 2578 "conf_parser.y"
6135 {
6136 ConfigFileEntry.stats_k_oper_only = 1;
6137 }
6138 break;
6139
6140 case 532:
6141 /* Line 1787 of yacc.c */
6142 #line 2583 "conf_parser.y"
6143 {
6144 ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
6145 }
6146 break;
6147
6148 case 533:
6149 /* Line 1787 of yacc.c */
6150 #line 2586 "conf_parser.y"
6151 {
6152 ConfigFileEntry.stats_i_oper_only = 1;
6153 }
6154 break;
6155
6156 case 534:
6157 /* Line 1787 of yacc.c */
6158 #line 2591 "conf_parser.y"
6159 {
6160 ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
6161 }
6162 break;
6163
6164 case 535:
6165 /* Line 1787 of yacc.c */
6166 #line 2596 "conf_parser.y"
6167 {
6168 ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
6169 }
6170 break;
6171
6172 case 536:
6173 /* Line 1787 of yacc.c */
6174 #line 2601 "conf_parser.y"
6175 {
6176 ConfigFileEntry.opers_bypass_callerid = yylval.number;
6177 }
6178 break;
6179
6180 case 537:
6181 /* Line 1787 of yacc.c */
6182 #line 2606 "conf_parser.y"
6183 {
6184 ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
6185 }
6186 break;
6187
6188 case 538:
6189 /* Line 1787 of yacc.c */
6190 #line 2611 "conf_parser.y"
6191 {
6192 ConfigFileEntry.short_motd = yylval.number;
6193 }
6194 break;
6195
6196 case 539:
6197 /* Line 1787 of yacc.c */
6198 #line 2616 "conf_parser.y"
6199 {
6200 ConfigFileEntry.no_oper_flood = yylval.number;
6201 }
6202 break;
6203
6204 case 540:
6205 /* Line 1787 of yacc.c */
6206 #line 2621 "conf_parser.y"
6207 {
6208 ConfigFileEntry.true_no_oper_flood = yylval.number;
6209 }
6210 break;
6211
6212 case 541:
6213 /* Line 1787 of yacc.c */
6214 #line 2626 "conf_parser.y"
6215 {
6216 ConfigFileEntry.oper_pass_resv = yylval.number;
6217 }
6218 break;
6219
6220 case 542:
6221 /* Line 1787 of yacc.c */
6222 #line 2631 "conf_parser.y"
6223 {
6224 ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
6225 }
6226 break;
6227
6228 case 543:
6229 /* Line 1787 of yacc.c */
6230 #line 2636 "conf_parser.y"
6231 {
6232 ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
6233 }
6234 break;
6235
6236 case 544:
6237 /* Line 1787 of yacc.c */
6238 #line 2641 "conf_parser.y"
6239 {
6240 ConfigFileEntry.use_egd = yylval.number;
6241 }
6242 break;
6243
6244 case 545:
6245 /* Line 1787 of yacc.c */
6246 #line 2646 "conf_parser.y"
6247 {
6248 if (conf_parser_ctx.pass == 2)
6249 {
6250 MyFree(ConfigFileEntry.egdpool_path);
6251 ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6252 }
6253 }
6254 break;
6255
6256 case 546:
6257 /* Line 1787 of yacc.c */
6258 #line 2655 "conf_parser.y"
6259 {
6260 if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6261 {
6262 MyFree(ConfigFileEntry.service_name);
6263 ConfigFileEntry.service_name = xstrdup(yylval.string);
6264 }
6265 }
6266 break;
6267
6268 case 547:
6269 /* Line 1787 of yacc.c */
6270 #line 2664 "conf_parser.y"
6271 {
6272 ConfigFileEntry.ping_cookie = yylval.number;
6273 }
6274 break;
6275
6276 case 548:
6277 /* Line 1787 of yacc.c */
6278 #line 2669 "conf_parser.y"
6279 {
6280 ConfigFileEntry.disable_auth = yylval.number;
6281 }
6282 break;
6283
6284 case 549:
6285 /* Line 1787 of yacc.c */
6286 #line 2674 "conf_parser.y"
6287 {
6288 ConfigFileEntry.throttle_time = yylval.number;
6289 }
6290 break;
6291
6292 case 550:
6293 /* Line 1787 of yacc.c */
6294 #line 2679 "conf_parser.y"
6295 {
6296 ConfigFileEntry.oper_umodes = 0;
6297 }
6298 break;
6299
6300 case 554:
6301 /* Line 1787 of yacc.c */
6302 #line 2685 "conf_parser.y"
6303 {
6304 ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6305 }
6306 break;
6307
6308 case 555:
6309 /* Line 1787 of yacc.c */
6310 #line 2688 "conf_parser.y"
6311 {
6312 ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6313 }
6314 break;
6315
6316 case 556:
6317 /* Line 1787 of yacc.c */
6318 #line 2691 "conf_parser.y"
6319 {
6320 ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6321 }
6322 break;
6323
6324 case 557:
6325 /* Line 1787 of yacc.c */
6326 #line 2694 "conf_parser.y"
6327 {
6328 ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6329 }
6330 break;
6331
6332 case 558:
6333 /* Line 1787 of yacc.c */
6334 #line 2697 "conf_parser.y"
6335 {
6336 ConfigFileEntry.oper_umodes |= UMODE_FULL;
6337 }
6338 break;
6339
6340 case 559:
6341 /* Line 1787 of yacc.c */
6342 #line 2700 "conf_parser.y"
6343 {
6344 ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6345 }
6346 break;
6347
6348 case 560:
6349 /* Line 1787 of yacc.c */
6350 #line 2703 "conf_parser.y"
6351 {
6352 ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6353 }
6354 break;
6355
6356 case 561:
6357 /* Line 1787 of yacc.c */
6358 #line 2706 "conf_parser.y"
6359 {
6360 ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6361 }
6362 break;
6363
6364 case 562:
6365 /* Line 1787 of yacc.c */
6366 #line 2709 "conf_parser.y"
6367 {
6368 ConfigFileEntry.oper_umodes |= UMODE_REJ;
6369 }
6370 break;
6371
6372 case 563:
6373 /* Line 1787 of yacc.c */
6374 #line 2712 "conf_parser.y"
6375 {
6376 ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6377 }
6378 break;
6379
6380 case 564:
6381 /* Line 1787 of yacc.c */
6382 #line 2715 "conf_parser.y"
6383 {
6384 ConfigFileEntry.oper_umodes |= UMODE_SPY;
6385 }
6386 break;
6387
6388 case 565:
6389 /* Line 1787 of yacc.c */
6390 #line 2718 "conf_parser.y"
6391 {
6392 ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6393 }
6394 break;
6395
6396 case 566:
6397 /* Line 1787 of yacc.c */
6398 #line 2721 "conf_parser.y"
6399 {
6400 ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6401 }
6402 break;
6403
6404 case 567:
6405 /* Line 1787 of yacc.c */
6406 #line 2724 "conf_parser.y"
6407 {
6408 ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6409 }
6410 break;
6411
6412 case 568:
6413 /* Line 1787 of yacc.c */
6414 #line 2727 "conf_parser.y"
6415 {
6416 ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6417 }
6418 break;
6419
6420 case 569:
6421 /* Line 1787 of yacc.c */
6422 #line 2730 "conf_parser.y"
6423 {
6424 ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6425 }
6426 break;
6427
6428 case 570:
6429 /* Line 1787 of yacc.c */
6430 #line 2733 "conf_parser.y"
6431 {
6432 ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6433 }
6434 break;
6435
6436 case 571:
6437 /* Line 1787 of yacc.c */
6438 #line 2736 "conf_parser.y"
6439 {
6440 ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6441 }
6442 break;
6443
6444 case 572:
6445 /* Line 1787 of yacc.c */
6446 #line 2739 "conf_parser.y"
6447 {
6448 ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6449 }
6450 break;
6451
6452 case 573:
6453 /* Line 1787 of yacc.c */
6454 #line 2742 "conf_parser.y"
6455 {
6456 ConfigFileEntry.oper_umodes |= UMODE_REGONLY;
6457 }
6458 break;
6459
6460 case 574:
6461 /* Line 1787 of yacc.c */
6462 #line 2745 "conf_parser.y"
6463 {
6464 ConfigFileEntry.oper_umodes |= UMODE_FARCONNECT;
6465 }
6466 break;
6467
6468 case 575:
6469 /* Line 1787 of yacc.c */
6470 #line 2750 "conf_parser.y"
6471 {
6472 ConfigFileEntry.oper_only_umodes = 0;
6473 }
6474 break;
6475
6476 case 579:
6477 /* Line 1787 of yacc.c */
6478 #line 2756 "conf_parser.y"
6479 {
6480 ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6481 }
6482 break;
6483
6484 case 580:
6485 /* Line 1787 of yacc.c */
6486 #line 2759 "conf_parser.y"
6487 {
6488 ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6489 }
6490 break;
6491
6492 case 581:
6493 /* Line 1787 of yacc.c */
6494 #line 2762 "conf_parser.y"
6495 {
6496 ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6497 }
6498 break;
6499
6500 case 582:
6501 /* Line 1787 of yacc.c */
6502 #line 2765 "conf_parser.y"
6503 {
6504 ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6505 }
6506 break;
6507
6508 case 583:
6509 /* Line 1787 of yacc.c */
6510 #line 2768 "conf_parser.y"
6511 {
6512 ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6513 }
6514 break;
6515
6516 case 584:
6517 /* Line 1787 of yacc.c */
6518 #line 2771 "conf_parser.y"
6519 {
6520 ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6521 }
6522 break;
6523
6524 case 585:
6525 /* Line 1787 of yacc.c */
6526 #line 2774 "conf_parser.y"
6527 {
6528 ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6529 }
6530 break;
6531
6532 case 586:
6533 /* Line 1787 of yacc.c */
6534 #line 2777 "conf_parser.y"
6535 {
6536 ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6537 }
6538 break;
6539
6540 case 587:
6541 /* Line 1787 of yacc.c */
6542 #line 2780 "conf_parser.y"
6543 {
6544 ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6545 }
6546 break;
6547
6548 case 588:
6549 /* Line 1787 of yacc.c */
6550 #line 2783 "conf_parser.y"
6551 {
6552 ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6553 }
6554 break;
6555
6556 case 589:
6557 /* Line 1787 of yacc.c */
6558 #line 2786 "conf_parser.y"
6559 {
6560 ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6561 }
6562 break;
6563
6564 case 590:
6565 /* Line 1787 of yacc.c */
6566 #line 2789 "conf_parser.y"
6567 {
6568 ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6569 }
6570 break;
6571
6572 case 591:
6573 /* Line 1787 of yacc.c */
6574 #line 2792 "conf_parser.y"
6575 {
6576 ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6577 }
6578 break;
6579
6580 case 592:
6581 /* Line 1787 of yacc.c */
6582 #line 2795 "conf_parser.y"
6583 {
6584 ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6585 }
6586 break;
6587
6588 case 593:
6589 /* Line 1787 of yacc.c */
6590 #line 2798 "conf_parser.y"
6591 {
6592 ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6593 }
6594 break;
6595
6596 case 594:
6597 /* Line 1787 of yacc.c */
6598 #line 2801 "conf_parser.y"
6599 {
6600 ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6601 }
6602 break;
6603
6604 case 595:
6605 /* Line 1787 of yacc.c */
6606 #line 2804 "conf_parser.y"
6607 {
6608 ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6609 }
6610 break;
6611
6612 case 596:
6613 /* Line 1787 of yacc.c */
6614 #line 2807 "conf_parser.y"
6615 {
6616 ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6617 }
6618 break;
6619
6620 case 597:
6621 /* Line 1787 of yacc.c */
6622 #line 2810 "conf_parser.y"
6623 {
6624 ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6625 }
6626 break;
6627
6628 case 598:
6629 /* Line 1787 of yacc.c */
6630 #line 2813 "conf_parser.y"
6631 {
6632 ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6633 }
6634 break;
6635
6636 case 599:
6637 /* Line 1787 of yacc.c */
6638 #line 2816 "conf_parser.y"
6639 {
6640 ConfigFileEntry.oper_only_umodes |= UMODE_FARCONNECT;
6641 }
6642 break;
6643
6644 case 600:
6645 /* Line 1787 of yacc.c */
6646 #line 2821 "conf_parser.y"
6647 {
6648 ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6649 }
6650 break;
6651
6652 case 601:
6653 /* Line 1787 of yacc.c */
6654 #line 2826 "conf_parser.y"
6655 {
6656 ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6657 }
6658 break;
6659
6660 case 602:
6661 /* Line 1787 of yacc.c */
6662 #line 2831 "conf_parser.y"
6663 {
6664 ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6665 }
6666 break;
6667
6668 case 619:
6669 /* Line 1787 of yacc.c */
6670 #line 2854 "conf_parser.y"
6671 {
6672 ConfigChannel.disable_fake_channels = yylval.number;
6673 }
6674 break;
6675
6676 case 620:
6677 /* Line 1787 of yacc.c */
6678 #line 2859 "conf_parser.y"
6679 {
6680 ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6681 }
6682 break;
6683
6684 case 621:
6685 /* Line 1787 of yacc.c */
6686 #line 2864 "conf_parser.y"
6687 {
6688 ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6689 }
6690 break;
6691
6692 case 622:
6693 /* Line 1787 of yacc.c */
6694 #line 2869 "conf_parser.y"
6695 {
6696 ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6697 }
6698 break;
6699
6700 case 623:
6701 /* Line 1787 of yacc.c */
6702 #line 2874 "conf_parser.y"
6703 {
6704 ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6705 }
6706 break;
6707
6708 case 624:
6709 /* Line 1787 of yacc.c */
6710 #line 2879 "conf_parser.y"
6711 {
6712 ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6713 }
6714 break;
6715
6716 case 625:
6717 /* Line 1787 of yacc.c */
6718 #line 2884 "conf_parser.y"
6719 {
6720 ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6721 }
6722 break;
6723
6724 case 626:
6725 /* Line 1787 of yacc.c */
6726 #line 2889 "conf_parser.y"
6727 {
6728 ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6729 }
6730 break;
6731
6732 case 627:
6733 /* Line 1787 of yacc.c */
6734 #line 2894 "conf_parser.y"
6735 {
6736 ConfigChannel.no_create_on_split = yylval.number;
6737 }
6738 break;
6739
6740 case 628:
6741 /* Line 1787 of yacc.c */
6742 #line 2899 "conf_parser.y"
6743 {
6744 ConfigChannel.no_join_on_split = yylval.number;
6745 }
6746 break;
6747
6748 case 629:
6749 /* Line 1787 of yacc.c */
6750 #line 2904 "conf_parser.y"
6751 {
6752 GlobalSetOptions.joinfloodcount = yylval.number;
6753 }
6754 break;
6755
6756 case 630:
6757 /* Line 1787 of yacc.c */
6758 #line 2909 "conf_parser.y"
6759 {
6760 GlobalSetOptions.joinfloodtime = yylval.number;
6761 }
6762 break;
6763
6764 case 643:
6765 /* Line 1787 of yacc.c */
6766 #line 2929 "conf_parser.y"
6767 {
6768 if (conf_parser_ctx.pass == 2)
6769 ConfigServerHide.flatten_links = yylval.number;
6770 }
6771 break;
6772
6773 case 644:
6774 /* Line 1787 of yacc.c */
6775 #line 2935 "conf_parser.y"
6776 {
6777 if (conf_parser_ctx.pass == 2)
6778 ConfigServerHide.disable_remote_commands = yylval.number;
6779 }
6780 break;
6781
6782 case 645:
6783 /* Line 1787 of yacc.c */
6784 #line 2941 "conf_parser.y"
6785 {
6786 if (conf_parser_ctx.pass == 2)
6787 ConfigServerHide.hide_servers = yylval.number;
6788 }
6789 break;
6790
6791 case 646:
6792 /* Line 1787 of yacc.c */
6793 #line 2947 "conf_parser.y"
6794 {
6795 if (conf_parser_ctx.pass == 2)
6796 ConfigServerHide.hide_services = yylval.number;
6797 }
6798 break;
6799
6800 case 647:
6801 /* Line 1787 of yacc.c */
6802 #line 2953 "conf_parser.y"
6803 {
6804 if (conf_parser_ctx.pass == 2)
6805 {
6806 MyFree(ConfigServerHide.hidden_name);
6807 ConfigServerHide.hidden_name = xstrdup(yylval.string);
6808 }
6809 }
6810 break;
6811
6812 case 648:
6813 /* Line 1787 of yacc.c */
6814 #line 2962 "conf_parser.y"
6815 {
6816 if (conf_parser_ctx.pass == 2)
6817 {
6818 if (((yyvsp[(3) - (4)].number) > 0) && ConfigServerHide.links_disabled == 1)
6819 {
6820 eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[(3) - (4)].number));
6821 ConfigServerHide.links_disabled = 0;
6822 }
6823
6824 ConfigServerHide.links_delay = (yyvsp[(3) - (4)].number);
6825 }
6826 }
6827 break;
6828
6829 case 649:
6830 /* Line 1787 of yacc.c */
6831 #line 2976 "conf_parser.y"
6832 {
6833 if (conf_parser_ctx.pass == 2)
6834 ConfigServerHide.hidden = yylval.number;
6835 }
6836 break;
6837
6838 case 650:
6839 /* Line 1787 of yacc.c */
6840 #line 2982 "conf_parser.y"
6841 {
6842 if (conf_parser_ctx.pass == 2)
6843 ConfigServerHide.hide_server_ips = yylval.number;
6844 }
6845 break;
6846
6847
6848 /* Line 1787 of yacc.c */
6849 #line 6850 "conf_parser.c"
6850 default: break;
6851 }
6852 /* User semantic actions sometimes alter yychar, and that requires
6853 that yytoken be updated with the new translation. We take the
6854 approach of translating immediately before every use of yytoken.
6855 One alternative is translating here after every semantic action,
6856 but that translation would be missed if the semantic action invokes
6857 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
6858 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
6859 incorrect destructor might then be invoked immediately. In the
6860 case of YYERROR or YYBACKUP, subsequent parser actions might lead
6861 to an incorrect destructor call or verbose syntax error message
6862 before the lookahead is translated. */
6863 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
6864
6865 YYPOPSTACK (yylen);
6866 yylen = 0;
6867 YY_STACK_PRINT (yyss, yyssp);
6868
6869 *++yyvsp = yyval;
6870
6871 /* Now `shift' the result of the reduction. Determine what state
6872 that goes to, based on the state we popped back to and the rule
6873 number reduced by. */
6874
6875 yyn = yyr1[yyn];
6876
6877 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
6878 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
6879 yystate = yytable[yystate];
6880 else
6881 yystate = yydefgoto[yyn - YYNTOKENS];
6882
6883 goto yynewstate;
6884
6885
6886 /*------------------------------------.
6887 | yyerrlab -- here on detecting error |
6888 `------------------------------------*/
6889 yyerrlab:
6890 /* Make sure we have latest lookahead translation. See comments at
6891 user semantic actions for why this is necessary. */
6892 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
6893
6894 /* If not already recovering from an error, report this error. */
6895 if (!yyerrstatus)
6896 {
6897 ++yynerrs;
6898 #if ! YYERROR_VERBOSE
6899 yyerror (YY_("syntax error"));
6900 #else
6901 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
6902 yyssp, yytoken)
6903 {
6904 char const *yymsgp = YY_("syntax error");
6905 int yysyntax_error_status;
6906 yysyntax_error_status = YYSYNTAX_ERROR;
6907 if (yysyntax_error_status == 0)
6908 yymsgp = yymsg;
6909 else if (yysyntax_error_status == 1)
6910 {
6911 if (yymsg != yymsgbuf)
6912 YYSTACK_FREE (yymsg);
6913 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
6914 if (!yymsg)
6915 {
6916 yymsg = yymsgbuf;
6917 yymsg_alloc = sizeof yymsgbuf;
6918 yysyntax_error_status = 2;
6919 }
6920 else
6921 {
6922 yysyntax_error_status = YYSYNTAX_ERROR;
6923 yymsgp = yymsg;
6924 }
6925 }
6926 yyerror (yymsgp);
6927 if (yysyntax_error_status == 2)
6928 goto yyexhaustedlab;
6929 }
6930 # undef YYSYNTAX_ERROR
6931 #endif
6932 }
6933
6934
6935
6936 if (yyerrstatus == 3)
6937 {
6938 /* If just tried and failed to reuse lookahead token after an
6939 error, discard it. */
6940
6941 if (yychar <= YYEOF)
6942 {
6943 /* Return failure if at end of input. */
6944 if (yychar == YYEOF)
6945 YYABORT;
6946 }
6947 else
6948 {
6949 yydestruct ("Error: discarding",
6950 yytoken, &yylval);
6951 yychar = YYEMPTY;
6952 }
6953 }
6954
6955 /* Else will try to reuse lookahead token after shifting the error
6956 token. */
6957 goto yyerrlab1;
6958
6959
6960 /*---------------------------------------------------.
6961 | yyerrorlab -- error raised explicitly by YYERROR. |
6962 `---------------------------------------------------*/
6963 yyerrorlab:
6964
6965 /* Pacify compilers like GCC when the user code never invokes
6966 YYERROR and the label yyerrorlab therefore never appears in user
6967 code. */
6968 if (/*CONSTCOND*/ 0)
6969 goto yyerrorlab;
6970
6971 /* Do not reclaim the symbols of the rule which action triggered
6972 this YYERROR. */
6973 YYPOPSTACK (yylen);
6974 yylen = 0;
6975 YY_STACK_PRINT (yyss, yyssp);
6976 yystate = *yyssp;
6977 goto yyerrlab1;
6978
6979
6980 /*-------------------------------------------------------------.
6981 | yyerrlab1 -- common code for both syntax error and YYERROR. |
6982 `-------------------------------------------------------------*/
6983 yyerrlab1:
6984 yyerrstatus = 3; /* Each real token shifted decrements this. */
6985
6986 for (;;)
6987 {
6988 yyn = yypact[yystate];
6989 if (!yypact_value_is_default (yyn))
6990 {
6991 yyn += YYTERROR;
6992 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6993 {
6994 yyn = yytable[yyn];
6995 if (0 < yyn)
6996 break;
6997 }
6998 }
6999
7000 /* Pop the current state because it cannot handle the error token. */
7001 if (yyssp == yyss)
7002 YYABORT;
7003
7004
7005 yydestruct ("Error: popping",
7006 yystos[yystate], yyvsp);
7007 YYPOPSTACK (1);
7008 yystate = *yyssp;
7009 YY_STACK_PRINT (yyss, yyssp);
7010 }
7011
7012 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
7013 *++yyvsp = yylval;
7014 YY_IGNORE_MAYBE_UNINITIALIZED_END
7015
7016
7017 /* Shift the error token. */
7018 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
7019
7020 yystate = yyn;
7021 goto yynewstate;
7022
7023
7024 /*-------------------------------------.
7025 | yyacceptlab -- YYACCEPT comes here. |
7026 `-------------------------------------*/
7027 yyacceptlab:
7028 yyresult = 0;
7029 goto yyreturn;
7030
7031 /*-----------------------------------.
7032 | yyabortlab -- YYABORT comes here. |
7033 `-----------------------------------*/
7034 yyabortlab:
7035 yyresult = 1;
7036 goto yyreturn;
7037
7038 #if !defined yyoverflow || YYERROR_VERBOSE
7039 /*-------------------------------------------------.
7040 | yyexhaustedlab -- memory exhaustion comes here. |
7041 `-------------------------------------------------*/
7042 yyexhaustedlab:
7043 yyerror (YY_("memory exhausted"));
7044 yyresult = 2;
7045 /* Fall through. */
7046 #endif
7047
7048 yyreturn:
7049 if (yychar != YYEMPTY)
7050 {
7051 /* Make sure we have latest lookahead translation. See comments at
7052 user semantic actions for why this is necessary. */
7053 yytoken = YYTRANSLATE (yychar);
7054 yydestruct ("Cleanup: discarding lookahead",
7055 yytoken, &yylval);
7056 }
7057 /* Do not reclaim the symbols of the rule which action triggered
7058 this YYABORT or YYACCEPT. */
7059 YYPOPSTACK (yylen);
7060 YY_STACK_PRINT (yyss, yyssp);
7061 while (yyssp != yyss)
7062 {
7063 yydestruct ("Cleanup: popping",
7064 yystos[*yyssp], yyvsp);
7065 YYPOPSTACK (1);
7066 }
7067 #ifndef yyoverflow
7068 if (yyss != yyssa)
7069 YYSTACK_FREE (yyss);
7070 #endif
7071 #if YYERROR_VERBOSE
7072 if (yymsg != yymsgbuf)
7073 YYSTACK_FREE (yymsg);
7074 #endif
7075 /* Make sure YYID is used. */
7076 return YYID (yyresult);
7077 }
7078
7079

Properties

Name Value
svn:eol-style native
svn:keywords Id Revision