ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/branches/8.2.x/src/conf_parser.c
(Generate patch)

Comparing:
ircd-hybrid/trunk/src/conf_parser.c (file contents), Revision 3347 by michael, Sun Apr 20 14:03:06 2014 UTC vs.
ircd-hybrid/branches/8.2.x/src/conf_parser.c (file contents), Revision 8659 by michael, Sun Nov 18 12:53:34 2018 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 3.0.2.  */
1 > /* A Bison parser, made by GNU Bison 3.0.4.  */
2  
3   /* Bison implementation for Yacc-like parsers in C
4  
5 <   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
5 >   Copyright (C) 1984, 1989-1990, 2000-2015 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
# Line 44 | Line 44
44   #define YYBISON 1
45  
46   /* Bison version.  */
47 < #define YYBISON_VERSION "3.0.2"
47 > #define YYBISON_VERSION "3.0.4"
48  
49   /* Skeleton name.  */
50   #define YYSKELETON_NAME "yacc.c"
# Line 65 | Line 65
65   #line 28 "conf_parser.y" /* yacc.c:339  */
66  
67  
68 #define YY_NO_UNPUT
69 #include <sys/types.h>
70 #include <string.h>
71
68   #include "config.h"
69   #include "stdinc.h"
70   #include "ircd.h"
71   #include "list.h"
72 + #include "parse.h"
73   #include "conf.h"
74   #include "conf_class.h"
75 + #include "conf_cluster.h"
76 + #include "conf_gecos.h"
77 + #include "conf_pseudo.h"
78 + #include "conf_resv.h"
79 + #include "conf_service.h"
80 + #include "conf_shared.h"
81   #include "event.h"
82 + #include "id.h"
83   #include "log.h"
80 #include "client.h"     /* for UMODE_ALL only */
84   #include "irc_string.h"
85   #include "memory.h"
86   #include "modules.h"
87   #include "server.h"
88   #include "hostmask.h"
86 #include "send.h"
89   #include "listener.h"
88 #include "resv.h"
89 #include "numeric.h"
90   #include "user.h"
91   #include "motd.h"
92  
93 #ifdef HAVE_LIBCRYPTO
94 #include <openssl/rsa.h>
95 #include <openssl/bio.h>
96 #include <openssl/pem.h>
97 #include <openssl/dh.h>
98 #endif
99
100 #include "rsa.h"
101
93   int yylex(void);
94  
95   static struct
96   {
97 <  struct {
97 >  struct
98 >  {
99      dlink_list list;
100    } mask,
101      leaf,
102      hub;
103  
104 <  struct {
104 >  struct
105 >  {
106      char buf[IRCD_BUFSIZE];
107    } name,
108 +    nick,
109      user,
110      host,
111      addr,
# Line 121 | Line 115 | static struct
115      cert,
116      rpass,
117      spass,
118 <    class;
118 >    whois,
119 >    class,
120 >    target,
121 >    prepend,
122 >    command;
123  
124 <  struct {
124 >  struct
125 >  {
126      unsigned int value;
127    } flags,
128      modes,
# Line 132 | Line 131 | static struct
131      port,
132      aftype,
133      ping_freq,
134 <    max_perip,
134 >    max_perip_local,
135 >    max_perip_global,
136      con_freq,
137      min_idle,
138      max_idle,
139      max_total,
140    max_global,
141    max_local,
142    max_ident,
140      max_sendq,
141      max_recvq,
142 +    max_channels,
143      cidr_bitlen_ipv4,
144      cidr_bitlen_ipv6,
145      number_per_cidr;
# Line 150 | Line 148 | static struct
148   static void
149   reset_block_state(void)
150   {
151 <  dlink_node *ptr = NULL, *ptr_next = NULL;
151 >  dlink_node *node = NULL, *node_next = NULL;
152  
153 <  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
153 >  DLINK_FOREACH_SAFE(node, node_next, block_state.mask.list.head)
154    {
155 <    MyFree(ptr->data);
156 <    dlinkDelete(ptr, &block_state.mask.list);
157 <    free_dlink_node(ptr);
155 >    xfree(node->data);
156 >    dlinkDelete(node, &block_state.mask.list);
157 >    free_dlink_node(node);
158    }
159  
160 <  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
160 >  DLINK_FOREACH_SAFE(node, node_next, block_state.leaf.list.head)
161    {
162 <    MyFree(ptr->data);
163 <    dlinkDelete(ptr, &block_state.leaf.list);
164 <    free_dlink_node(ptr);
162 >    xfree(node->data);
163 >    dlinkDelete(node, &block_state.leaf.list);
164 >    free_dlink_node(node);
165    }
166  
167 <  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
167 >  DLINK_FOREACH_SAFE(node, node_next, block_state.hub.list.head)
168    {
169 <    MyFree(ptr->data);
170 <    dlinkDelete(ptr, &block_state.hub.list);
171 <    free_dlink_node(ptr);
169 >    xfree(node->data);
170 >    dlinkDelete(node, &block_state.hub.list);
171 >    free_dlink_node(node);
172    }
173  
174    memset(&block_state, 0, sizeof(block_state));
175   }
176  
177  
178 < #line 181 "conf_parser.c" /* yacc.c:339  */
178 > #line 179 "conf_parser.c" /* yacc.c:339  */
179  
180   # ifndef YY_NULLPTR
181   #  if defined __cplusplus && 201103L <= __cplusplus
# Line 218 | Line 216 | extern int yydebug;
216      ANTI_NICK_FLOOD = 261,
217      ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
218      AUTOCONN = 263,
219 <    BYTES = 264,
220 <    KBYTES = 265,
221 <    MBYTES = 266,
222 <    CALLER_ID_WAIT = 267,
223 <    CAN_FLOOD = 268,
224 <    CHANNEL = 269,
225 <    CIDR_BITLEN_IPV4 = 270,
226 <    CIDR_BITLEN_IPV6 = 271,
227 <    CLASS = 272,
228 <    CONNECT = 273,
229 <    CONNECTFREQ = 274,
230 <    CYCLE_ON_HOST_CHANGE = 275,
231 <    DEFAULT_FLOODCOUNT = 276,
232 <    DEFAULT_SPLIT_SERVER_COUNT = 277,
233 <    DEFAULT_SPLIT_USER_COUNT = 278,
234 <    DENY = 279,
235 <    DESCRIPTION = 280,
236 <    DIE = 281,
237 <    DISABLE_AUTH = 282,
238 <    DISABLE_FAKE_CHANNELS = 283,
239 <    DISABLE_REMOTE_COMMANDS = 284,
240 <    DOTS_IN_IDENT = 285,
241 <    EGDPOOL_PATH = 286,
242 <    EMAIL = 287,
243 <    ENCRYPTED = 288,
244 <    EXCEED_LIMIT = 289,
245 <    EXEMPT = 290,
246 <    FAILED_OPER_NOTICE = 291,
247 <    FLATTEN_LINKS = 292,
248 <    GECOS = 293,
249 <    GENERAL = 294,
250 <    GLINE = 295,
251 <    GLINE_DURATION = 296,
252 <    GLINE_ENABLE = 297,
253 <    GLINE_EXEMPT = 298,
254 <    GLINE_MIN_CIDR = 299,
255 <    GLINE_MIN_CIDR6 = 300,
256 <    GLINE_REQUEST_DURATION = 301,
257 <    GLOBAL_KILL = 302,
258 <    HAVENT_READ_CONF = 303,
259 <    HIDDEN = 304,
260 <    HIDDEN_NAME = 305,
261 <    HIDE_IDLE_FROM_OPERS = 306,
262 <    HIDE_SERVER_IPS = 307,
263 <    HIDE_SERVERS = 308,
264 <    HIDE_SERVICES = 309,
265 <    HIDE_SPOOF_IPS = 310,
219 >    AWAY_COUNT = 264,
220 >    AWAY_TIME = 265,
221 >    BYTES = 266,
222 >    KBYTES = 267,
223 >    MBYTES = 268,
224 >    CALLER_ID_WAIT = 269,
225 >    CAN_FLOOD = 270,
226 >    CHANNEL = 271,
227 >    CIDR_BITLEN_IPV4 = 272,
228 >    CIDR_BITLEN_IPV6 = 273,
229 >    CLASS = 274,
230 >    CLOSE = 275,
231 >    CONNECT = 276,
232 >    CONNECTFREQ = 277,
233 >    CYCLE_ON_HOST_CHANGE = 278,
234 >    DEFAULT_FLOODCOUNT = 279,
235 >    DEFAULT_FLOODTIME = 280,
236 >    DEFAULT_JOIN_FLOOD_COUNT = 281,
237 >    DEFAULT_JOIN_FLOOD_TIME = 282,
238 >    DEFAULT_MAX_CLIENTS = 283,
239 >    DENY = 284,
240 >    DESCRIPTION = 285,
241 >    DIE = 286,
242 >    DISABLE_AUTH = 287,
243 >    DISABLE_FAKE_CHANNELS = 288,
244 >    DISABLE_REMOTE_COMMANDS = 289,
245 >    DLINE_MIN_CIDR = 290,
246 >    DLINE_MIN_CIDR6 = 291,
247 >    DOTS_IN_IDENT = 292,
248 >    EMAIL = 293,
249 >    ENCRYPTED = 294,
250 >    EXCEED_LIMIT = 295,
251 >    EXEMPT = 296,
252 >    FAILED_OPER_NOTICE = 297,
253 >    FLATTEN_LINKS = 298,
254 >    FLATTEN_LINKS_DELAY = 299,
255 >    FLATTEN_LINKS_FILE = 300,
256 >    GECOS = 301,
257 >    GENERAL = 302,
258 >    HIDDEN = 303,
259 >    HIDDEN_NAME = 304,
260 >    HIDE_CHANS = 305,
261 >    HIDE_IDLE = 306,
262 >    HIDE_IDLE_FROM_OPERS = 307,
263 >    HIDE_SERVER_IPS = 308,
264 >    HIDE_SERVERS = 309,
265 >    HIDE_SERVICES = 310,
266      HOST = 311,
267      HUB = 312,
268      HUB_MASK = 313,
269      IGNORE_BOGUS_TS = 314,
270      INVISIBLE_ON_CONNECT = 315,
271 <    IP = 316,
272 <    IRCD_AUTH = 317,
273 <    IRCD_FLAGS = 318,
274 <    IRCD_SID = 319,
275 <    JOIN_FLOOD_COUNT = 320,
276 <    JOIN_FLOOD_TIME = 321,
277 <    KILL = 322,
278 <    KILL_CHASE_TIME_LIMIT = 323,
279 <    KLINE = 324,
280 <    KLINE_EXEMPT = 325,
281 <    KNOCK_DELAY = 326,
282 <    KNOCK_DELAY_CHANNEL = 327,
283 <    LEAF_MASK = 328,
284 <    LINKS_DELAY = 329,
285 <    LISTEN = 330,
286 <    MASK = 331,
287 <    MAX_ACCEPT = 332,
288 <    MAX_BANS = 333,
289 <    MAX_CHANS_PER_OPER = 334,
290 <    MAX_CHANS_PER_USER = 335,
291 <    MAX_GLOBAL = 336,
292 <    MAX_IDENT = 337,
293 <    MAX_IDLE = 338,
294 <    MAX_LOCAL = 339,
295 <    MAX_NICK_CHANGES = 340,
296 <    MAX_NICK_LENGTH = 341,
297 <    MAX_NICK_TIME = 342,
298 <    MAX_NUMBER = 343,
299 <    MAX_TARGETS = 344,
300 <    MAX_TOPIC_LENGTH = 345,
301 <    MAX_WATCH = 346,
302 <    MIN_IDLE = 347,
303 <    MIN_NONWILDCARD = 348,
304 <    MIN_NONWILDCARD_SIMPLE = 349,
305 <    MODULE = 350,
306 <    MODULES = 351,
307 <    MOTD = 352,
308 <    NAME = 353,
309 <    NEED_IDENT = 354,
310 <    NEED_PASSWORD = 355,
311 <    NETWORK_DESC = 356,
312 <    NETWORK_NAME = 357,
313 <    NICK = 358,
314 <    NO_CREATE_ON_SPLIT = 359,
315 <    NO_JOIN_ON_SPLIT = 360,
316 <    NO_OPER_FLOOD = 361,
317 <    NO_TILDE = 362,
318 <    NUMBER = 363,
319 <    NUMBER_PER_CIDR = 364,
320 <    NUMBER_PER_IP = 365,
321 <    OPER_ONLY_UMODES = 366,
322 <    OPER_PASS_RESV = 367,
323 <    OPER_UMODES = 368,
324 <    OPERATOR = 369,
325 <    OPERS_BYPASS_CALLERID = 370,
326 <    PACE_WAIT = 371,
327 <    PACE_WAIT_SIMPLE = 372,
328 <    PASSWORD = 373,
329 <    PATH = 374,
330 <    PING_COOKIE = 375,
331 <    PING_TIME = 376,
332 <    PORT = 377,
333 <    QSTRING = 378,
334 <    RANDOM_IDLE = 379,
335 <    REASON = 380,
336 <    REDIRPORT = 381,
337 <    REDIRSERV = 382,
338 <    REHASH = 383,
339 <    REMOTE = 384,
340 <    REMOTEBAN = 385,
341 <    RESV = 386,
342 <    RESV_EXEMPT = 387,
343 <    RSA_PRIVATE_KEY_FILE = 388,
344 <    RSA_PUBLIC_KEY_FILE = 389,
271 >    INVITE_CLIENT_COUNT = 316,
272 >    INVITE_CLIENT_TIME = 317,
273 >    INVITE_DELAY_CHANNEL = 318,
274 >    INVITE_EXPIRE_TIME = 319,
275 >    IP = 320,
276 >    IRCD_AUTH = 321,
277 >    IRCD_FLAGS = 322,
278 >    IRCD_SID = 323,
279 >    JOIN = 324,
280 >    KILL = 325,
281 >    KILL_CHASE_TIME_LIMIT = 326,
282 >    KLINE = 327,
283 >    KLINE_EXEMPT = 328,
284 >    KLINE_MIN_CIDR = 329,
285 >    KLINE_MIN_CIDR6 = 330,
286 >    KNOCK_CLIENT_COUNT = 331,
287 >    KNOCK_CLIENT_TIME = 332,
288 >    KNOCK_DELAY_CHANNEL = 333,
289 >    LEAF_MASK = 334,
290 >    LISTEN = 335,
291 >    MASK = 336,
292 >    MAX_ACCEPT = 337,
293 >    MAX_BANS = 338,
294 >    MAX_BANS_LARGE = 339,
295 >    MAX_CHANNELS = 340,
296 >    MAX_IDLE = 341,
297 >    MAX_INVITES = 342,
298 >    MAX_NICK_CHANGES = 343,
299 >    MAX_NICK_LENGTH = 344,
300 >    MAX_NICK_TIME = 345,
301 >    MAX_NUMBER = 346,
302 >    MAX_TARGETS = 347,
303 >    MAX_TOPIC_LENGTH = 348,
304 >    MAX_WATCH = 349,
305 >    MIN_IDLE = 350,
306 >    MIN_NONWILDCARD = 351,
307 >    MIN_NONWILDCARD_SIMPLE = 352,
308 >    MODULE = 353,
309 >    MODULES = 354,
310 >    MOTD = 355,
311 >    NAME = 356,
312 >    NEED_IDENT = 357,
313 >    NEED_PASSWORD = 358,
314 >    NETWORK_DESC = 359,
315 >    NETWORK_NAME = 360,
316 >    NICK = 361,
317 >    NO_OPER_FLOOD = 362,
318 >    NO_TILDE = 363,
319 >    NUMBER = 364,
320 >    NUMBER_PER_CIDR = 365,
321 >    NUMBER_PER_IP_GLOBAL = 366,
322 >    NUMBER_PER_IP_LOCAL = 367,
323 >    OPER_ONLY_UMODES = 368,
324 >    OPER_UMODES = 369,
325 >    OPERATOR = 370,
326 >    OPERS_BYPASS_CALLERID = 371,
327 >    PACE_WAIT = 372,
328 >    PACE_WAIT_SIMPLE = 373,
329 >    PASSWORD = 374,
330 >    PATH = 375,
331 >    PING_COOKIE = 376,
332 >    PING_TIME = 377,
333 >    PORT = 378,
334 >    QSTRING = 379,
335 >    RANDOM_IDLE = 380,
336 >    REASON = 381,
337 >    REDIRPORT = 382,
338 >    REDIRSERV = 383,
339 >    REHASH = 384,
340 >    REMOTE = 385,
341 >    REMOTEBAN = 386,
342 >    RESV = 387,
343 >    RESV_EXEMPT = 388,
344 >    RSA_PRIVATE_KEY_FILE = 389,
345      SECONDS = 390,
346      MINUTES = 391,
347      HOURS = 392,
# Line 362 | Line 360 | extern int yydebug;
360      SSL_CERTIFICATE_FILE = 405,
361      SSL_CERTIFICATE_FINGERPRINT = 406,
362      SSL_CONNECTION_REQUIRED = 407,
363 <    SSL_DH_PARAM_FILE = 408,
364 <    STATS_E_DISABLED = 409,
365 <    STATS_I_OPER_ONLY = 410,
366 <    STATS_K_OPER_ONLY = 411,
367 <    STATS_O_OPER_ONLY = 412,
368 <    STATS_P_OPER_ONLY = 413,
369 <    STATS_U_OPER_ONLY = 414,
370 <    T_ALL = 415,
371 <    T_BOTS = 416,
372 <    T_CALLERID = 417,
373 <    T_CCONN = 418,
374 <    T_CLUSTER = 419,
375 <    T_DEAF = 420,
376 <    T_DEBUG = 421,
377 <    T_DLINE = 422,
378 <    T_EXTERNAL = 423,
379 <    T_FARCONNECT = 424,
380 <    T_FILE = 425,
381 <    T_FULL = 426,
382 <    T_GLOBOPS = 427,
383 <    T_INVISIBLE = 428,
384 <    T_IPV4 = 429,
385 <    T_IPV6 = 430,
386 <    T_LOCOPS = 431,
387 <    T_LOG = 432,
388 <    T_MAX_CLIENTS = 433,
389 <    T_NCHANGE = 434,
390 <    T_NONONREG = 435,
391 <    T_OPERWALL = 436,
392 <    T_RECVQ = 437,
393 <    T_REJ = 438,
394 <    T_RESTART = 439,
395 <    T_SERVER = 440,
396 <    T_SERVICE = 441,
397 <    T_SERVICES_NAME = 442,
398 <    T_SERVNOTICE = 443,
399 <    T_SET = 444,
400 <    T_SHARED = 445,
401 <    T_SIZE = 446,
402 <    T_SKILL = 447,
403 <    T_SOFTCALLERID = 448,
404 <    T_SPY = 449,
405 <    T_SSL = 450,
406 <    T_SSL_CIPHER_LIST = 451,
407 <    T_SSL_CLIENT_METHOD = 452,
408 <    T_SSL_SERVER_METHOD = 453,
409 <    T_SSLV3 = 454,
410 <    T_TLSV1 = 455,
411 <    T_UMODES = 456,
412 <    T_UNAUTH = 457,
413 <    T_UNDLINE = 458,
414 <    T_UNLIMITED = 459,
415 <    T_UNRESV = 460,
416 <    T_UNXLINE = 461,
417 <    T_WALLOP = 462,
418 <    T_WALLOPS = 463,
419 <    T_WEBIRC = 464,
420 <    TBOOL = 465,
421 <    THROTTLE_TIME = 466,
422 <    TKLINE_EXPIRE_NOTICES = 467,
423 <    TMASKED = 468,
424 <    TRUE_NO_OPER_FLOOD = 469,
425 <    TS_MAX_DELTA = 470,
426 <    TS_WARN_DELTA = 471,
427 <    TWODOTS = 472,
428 <    TYPE = 473,
429 <    UNKLINE = 474,
430 <    USE_EGD = 475,
363 >    SSL_DH_ELLIPTIC_CURVE = 408,
364 >    SSL_DH_PARAM_FILE = 409,
365 >    SSL_MESSAGE_DIGEST_ALGORITHM = 410,
366 >    STATS_E_DISABLED = 411,
367 >    STATS_I_OPER_ONLY = 412,
368 >    STATS_K_OPER_ONLY = 413,
369 >    STATS_M_OPER_ONLY = 414,
370 >    STATS_O_OPER_ONLY = 415,
371 >    STATS_P_OPER_ONLY = 416,
372 >    STATS_U_OPER_ONLY = 417,
373 >    T_ALL = 418,
374 >    T_BOTS = 419,
375 >    T_CALLERID = 420,
376 >    T_CCONN = 421,
377 >    T_COMMAND = 422,
378 >    T_CLUSTER = 423,
379 >    T_DEAF = 424,
380 >    T_DEBUG = 425,
381 >    T_DLINE = 426,
382 >    T_EXTERNAL = 427,
383 >    T_FARCONNECT = 428,
384 >    T_FILE = 429,
385 >    T_FULL = 430,
386 >    T_GLOBOPS = 431,
387 >    T_INVISIBLE = 432,
388 >    T_IPV4 = 433,
389 >    T_IPV6 = 434,
390 >    T_LOCOPS = 435,
391 >    T_LOG = 436,
392 >    T_NCHANGE = 437,
393 >    T_NONONREG = 438,
394 >    T_OPME = 439,
395 >    T_PREPEND = 440,
396 >    T_PSEUDO = 441,
397 >    T_RECVQ = 442,
398 >    T_REJ = 443,
399 >    T_RESTART = 444,
400 >    T_SERVER = 445,
401 >    T_SERVICE = 446,
402 >    T_SERVNOTICE = 447,
403 >    T_SET = 448,
404 >    T_SHARED = 449,
405 >    T_SIZE = 450,
406 >    T_SKILL = 451,
407 >    T_SOFTCALLERID = 452,
408 >    T_SPY = 453,
409 >    T_SSL = 454,
410 >    T_SSL_CIPHER_LIST = 455,
411 >    T_TARGET = 456,
412 >    T_UMODES = 457,
413 >    T_UNAUTH = 458,
414 >    T_UNDLINE = 459,
415 >    T_UNLIMITED = 460,
416 >    T_UNRESV = 461,
417 >    T_UNXLINE = 462,
418 >    T_WALLOP = 463,
419 >    T_WALLOPS = 464,
420 >    T_WEBIRC = 465,
421 >    TBOOL = 466,
422 >    THROTTLE_COUNT = 467,
423 >    THROTTLE_TIME = 468,
424 >    TKLINE_EXPIRE_NOTICES = 469,
425 >    TMASKED = 470,
426 >    TS_MAX_DELTA = 471,
427 >    TS_WARN_DELTA = 472,
428 >    TWODOTS = 473,
429 >    TYPE = 474,
430 >    UNKLINE = 475,
431      USE_LOGGING = 476,
432      USER = 477,
433      VHOST = 478,
434      VHOST6 = 479,
435 <    WARN_NO_NLINE = 480,
436 <    XLINE = 481
435 >    WARN_NO_CONNECT_BLOCK = 480,
436 >    WHOIS = 481,
437 >    WHOWAS_HISTORY_LENGTH = 482,
438 >    XLINE = 483,
439 >    XLINE_EXEMPT = 484
440    };
441   #endif
442   /* Tokens.  */
# Line 445 | Line 446 | extern int yydebug;
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 CYCLE_ON_HOST_CHANGE 275
461 < #define DEFAULT_FLOODCOUNT 276
462 < #define DEFAULT_SPLIT_SERVER_COUNT 277
463 < #define DEFAULT_SPLIT_USER_COUNT 278
464 < #define DENY 279
465 < #define DESCRIPTION 280
466 < #define DIE 281
467 < #define DISABLE_AUTH 282
468 < #define DISABLE_FAKE_CHANNELS 283
469 < #define DISABLE_REMOTE_COMMANDS 284
470 < #define DOTS_IN_IDENT 285
471 < #define EGDPOOL_PATH 286
472 < #define EMAIL 287
473 < #define ENCRYPTED 288
474 < #define EXCEED_LIMIT 289
475 < #define EXEMPT 290
476 < #define FAILED_OPER_NOTICE 291
477 < #define FLATTEN_LINKS 292
478 < #define GECOS 293
479 < #define GENERAL 294
480 < #define GLINE 295
481 < #define GLINE_DURATION 296
482 < #define GLINE_ENABLE 297
483 < #define GLINE_EXEMPT 298
484 < #define GLINE_MIN_CIDR 299
485 < #define GLINE_MIN_CIDR6 300
486 < #define GLINE_REQUEST_DURATION 301
487 < #define GLOBAL_KILL 302
488 < #define HAVENT_READ_CONF 303
489 < #define HIDDEN 304
490 < #define HIDDEN_NAME 305
491 < #define HIDE_IDLE_FROM_OPERS 306
492 < #define HIDE_SERVER_IPS 307
493 < #define HIDE_SERVERS 308
494 < #define HIDE_SERVICES 309
495 < #define HIDE_SPOOF_IPS 310
449 > #define AWAY_COUNT 264
450 > #define AWAY_TIME 265
451 > #define BYTES 266
452 > #define KBYTES 267
453 > #define MBYTES 268
454 > #define CALLER_ID_WAIT 269
455 > #define CAN_FLOOD 270
456 > #define CHANNEL 271
457 > #define CIDR_BITLEN_IPV4 272
458 > #define CIDR_BITLEN_IPV6 273
459 > #define CLASS 274
460 > #define CLOSE 275
461 > #define CONNECT 276
462 > #define CONNECTFREQ 277
463 > #define CYCLE_ON_HOST_CHANGE 278
464 > #define DEFAULT_FLOODCOUNT 279
465 > #define DEFAULT_FLOODTIME 280
466 > #define DEFAULT_JOIN_FLOOD_COUNT 281
467 > #define DEFAULT_JOIN_FLOOD_TIME 282
468 > #define DEFAULT_MAX_CLIENTS 283
469 > #define DENY 284
470 > #define DESCRIPTION 285
471 > #define DIE 286
472 > #define DISABLE_AUTH 287
473 > #define DISABLE_FAKE_CHANNELS 288
474 > #define DISABLE_REMOTE_COMMANDS 289
475 > #define DLINE_MIN_CIDR 290
476 > #define DLINE_MIN_CIDR6 291
477 > #define DOTS_IN_IDENT 292
478 > #define EMAIL 293
479 > #define ENCRYPTED 294
480 > #define EXCEED_LIMIT 295
481 > #define EXEMPT 296
482 > #define FAILED_OPER_NOTICE 297
483 > #define FLATTEN_LINKS 298
484 > #define FLATTEN_LINKS_DELAY 299
485 > #define FLATTEN_LINKS_FILE 300
486 > #define GECOS 301
487 > #define GENERAL 302
488 > #define HIDDEN 303
489 > #define HIDDEN_NAME 304
490 > #define HIDE_CHANS 305
491 > #define HIDE_IDLE 306
492 > #define HIDE_IDLE_FROM_OPERS 307
493 > #define HIDE_SERVER_IPS 308
494 > #define HIDE_SERVERS 309
495 > #define HIDE_SERVICES 310
496   #define HOST 311
497   #define HUB 312
498   #define HUB_MASK 313
499   #define IGNORE_BOGUS_TS 314
500   #define INVISIBLE_ON_CONNECT 315
501 < #define IP 316
502 < #define IRCD_AUTH 317
503 < #define IRCD_FLAGS 318
504 < #define IRCD_SID 319
505 < #define JOIN_FLOOD_COUNT 320
506 < #define JOIN_FLOOD_TIME 321
507 < #define KILL 322
508 < #define KILL_CHASE_TIME_LIMIT 323
509 < #define KLINE 324
510 < #define KLINE_EXEMPT 325
511 < #define KNOCK_DELAY 326
512 < #define KNOCK_DELAY_CHANNEL 327
513 < #define LEAF_MASK 328
514 < #define LINKS_DELAY 329
515 < #define LISTEN 330
516 < #define MASK 331
517 < #define MAX_ACCEPT 332
518 < #define MAX_BANS 333
519 < #define MAX_CHANS_PER_OPER 334
520 < #define MAX_CHANS_PER_USER 335
521 < #define MAX_GLOBAL 336
522 < #define MAX_IDENT 337
523 < #define MAX_IDLE 338
524 < #define MAX_LOCAL 339
525 < #define MAX_NICK_CHANGES 340
526 < #define MAX_NICK_LENGTH 341
527 < #define MAX_NICK_TIME 342
528 < #define MAX_NUMBER 343
529 < #define MAX_TARGETS 344
530 < #define MAX_TOPIC_LENGTH 345
531 < #define MAX_WATCH 346
532 < #define MIN_IDLE 347
533 < #define MIN_NONWILDCARD 348
534 < #define MIN_NONWILDCARD_SIMPLE 349
535 < #define MODULE 350
536 < #define MODULES 351
537 < #define MOTD 352
538 < #define NAME 353
539 < #define NEED_IDENT 354
540 < #define NEED_PASSWORD 355
541 < #define NETWORK_DESC 356
542 < #define NETWORK_NAME 357
543 < #define NICK 358
544 < #define NO_CREATE_ON_SPLIT 359
545 < #define NO_JOIN_ON_SPLIT 360
546 < #define NO_OPER_FLOOD 361
547 < #define NO_TILDE 362
548 < #define NUMBER 363
549 < #define NUMBER_PER_CIDR 364
550 < #define NUMBER_PER_IP 365
551 < #define OPER_ONLY_UMODES 366
552 < #define OPER_PASS_RESV 367
553 < #define OPER_UMODES 368
554 < #define OPERATOR 369
555 < #define OPERS_BYPASS_CALLERID 370
556 < #define PACE_WAIT 371
557 < #define PACE_WAIT_SIMPLE 372
558 < #define PASSWORD 373
559 < #define PATH 374
560 < #define PING_COOKIE 375
561 < #define PING_TIME 376
562 < #define PORT 377
563 < #define QSTRING 378
564 < #define RANDOM_IDLE 379
565 < #define REASON 380
566 < #define REDIRPORT 381
567 < #define REDIRSERV 382
568 < #define REHASH 383
569 < #define REMOTE 384
570 < #define REMOTEBAN 385
571 < #define RESV 386
572 < #define RESV_EXEMPT 387
573 < #define RSA_PRIVATE_KEY_FILE 388
574 < #define RSA_PUBLIC_KEY_FILE 389
501 > #define INVITE_CLIENT_COUNT 316
502 > #define INVITE_CLIENT_TIME 317
503 > #define INVITE_DELAY_CHANNEL 318
504 > #define INVITE_EXPIRE_TIME 319
505 > #define IP 320
506 > #define IRCD_AUTH 321
507 > #define IRCD_FLAGS 322
508 > #define IRCD_SID 323
509 > #define JOIN 324
510 > #define KILL 325
511 > #define KILL_CHASE_TIME_LIMIT 326
512 > #define KLINE 327
513 > #define KLINE_EXEMPT 328
514 > #define KLINE_MIN_CIDR 329
515 > #define KLINE_MIN_CIDR6 330
516 > #define KNOCK_CLIENT_COUNT 331
517 > #define KNOCK_CLIENT_TIME 332
518 > #define KNOCK_DELAY_CHANNEL 333
519 > #define LEAF_MASK 334
520 > #define LISTEN 335
521 > #define MASK 336
522 > #define MAX_ACCEPT 337
523 > #define MAX_BANS 338
524 > #define MAX_BANS_LARGE 339
525 > #define MAX_CHANNELS 340
526 > #define MAX_IDLE 341
527 > #define MAX_INVITES 342
528 > #define MAX_NICK_CHANGES 343
529 > #define MAX_NICK_LENGTH 344
530 > #define MAX_NICK_TIME 345
531 > #define MAX_NUMBER 346
532 > #define MAX_TARGETS 347
533 > #define MAX_TOPIC_LENGTH 348
534 > #define MAX_WATCH 349
535 > #define MIN_IDLE 350
536 > #define MIN_NONWILDCARD 351
537 > #define MIN_NONWILDCARD_SIMPLE 352
538 > #define MODULE 353
539 > #define MODULES 354
540 > #define MOTD 355
541 > #define NAME 356
542 > #define NEED_IDENT 357
543 > #define NEED_PASSWORD 358
544 > #define NETWORK_DESC 359
545 > #define NETWORK_NAME 360
546 > #define NICK 361
547 > #define NO_OPER_FLOOD 362
548 > #define NO_TILDE 363
549 > #define NUMBER 364
550 > #define NUMBER_PER_CIDR 365
551 > #define NUMBER_PER_IP_GLOBAL 366
552 > #define NUMBER_PER_IP_LOCAL 367
553 > #define OPER_ONLY_UMODES 368
554 > #define OPER_UMODES 369
555 > #define OPERATOR 370
556 > #define OPERS_BYPASS_CALLERID 371
557 > #define PACE_WAIT 372
558 > #define PACE_WAIT_SIMPLE 373
559 > #define PASSWORD 374
560 > #define PATH 375
561 > #define PING_COOKIE 376
562 > #define PING_TIME 377
563 > #define PORT 378
564 > #define QSTRING 379
565 > #define RANDOM_IDLE 380
566 > #define REASON 381
567 > #define REDIRPORT 382
568 > #define REDIRSERV 383
569 > #define REHASH 384
570 > #define REMOTE 385
571 > #define REMOTEBAN 386
572 > #define RESV 387
573 > #define RESV_EXEMPT 388
574 > #define RSA_PRIVATE_KEY_FILE 389
575   #define SECONDS 390
576   #define MINUTES 391
577   #define HOURS 392
# Line 589 | Line 590 | extern int yydebug;
590   #define SSL_CERTIFICATE_FILE 405
591   #define SSL_CERTIFICATE_FINGERPRINT 406
592   #define SSL_CONNECTION_REQUIRED 407
593 < #define SSL_DH_PARAM_FILE 408
594 < #define STATS_E_DISABLED 409
595 < #define STATS_I_OPER_ONLY 410
596 < #define STATS_K_OPER_ONLY 411
597 < #define STATS_O_OPER_ONLY 412
598 < #define STATS_P_OPER_ONLY 413
599 < #define STATS_U_OPER_ONLY 414
600 < #define T_ALL 415
601 < #define T_BOTS 416
602 < #define T_CALLERID 417
603 < #define T_CCONN 418
604 < #define T_CLUSTER 419
605 < #define T_DEAF 420
606 < #define T_DEBUG 421
607 < #define T_DLINE 422
608 < #define T_EXTERNAL 423
609 < #define T_FARCONNECT 424
610 < #define T_FILE 425
611 < #define T_FULL 426
612 < #define T_GLOBOPS 427
613 < #define T_INVISIBLE 428
614 < #define T_IPV4 429
615 < #define T_IPV6 430
616 < #define T_LOCOPS 431
617 < #define T_LOG 432
618 < #define T_MAX_CLIENTS 433
619 < #define T_NCHANGE 434
620 < #define T_NONONREG 435
621 < #define T_OPERWALL 436
622 < #define T_RECVQ 437
623 < #define T_REJ 438
624 < #define T_RESTART 439
625 < #define T_SERVER 440
626 < #define T_SERVICE 441
627 < #define T_SERVICES_NAME 442
628 < #define T_SERVNOTICE 443
629 < #define T_SET 444
630 < #define T_SHARED 445
631 < #define T_SIZE 446
632 < #define T_SKILL 447
633 < #define T_SOFTCALLERID 448
634 < #define T_SPY 449
635 < #define T_SSL 450
636 < #define T_SSL_CIPHER_LIST 451
637 < #define T_SSL_CLIENT_METHOD 452
638 < #define T_SSL_SERVER_METHOD 453
639 < #define T_SSLV3 454
640 < #define T_TLSV1 455
641 < #define T_UMODES 456
642 < #define T_UNAUTH 457
643 < #define T_UNDLINE 458
644 < #define T_UNLIMITED 459
645 < #define T_UNRESV 460
646 < #define T_UNXLINE 461
647 < #define T_WALLOP 462
648 < #define T_WALLOPS 463
649 < #define T_WEBIRC 464
650 < #define TBOOL 465
651 < #define THROTTLE_TIME 466
652 < #define TKLINE_EXPIRE_NOTICES 467
653 < #define TMASKED 468
654 < #define TRUE_NO_OPER_FLOOD 469
655 < #define TS_MAX_DELTA 470
656 < #define TS_WARN_DELTA 471
657 < #define TWODOTS 472
658 < #define TYPE 473
659 < #define UNKLINE 474
660 < #define USE_EGD 475
593 > #define SSL_DH_ELLIPTIC_CURVE 408
594 > #define SSL_DH_PARAM_FILE 409
595 > #define SSL_MESSAGE_DIGEST_ALGORITHM 410
596 > #define STATS_E_DISABLED 411
597 > #define STATS_I_OPER_ONLY 412
598 > #define STATS_K_OPER_ONLY 413
599 > #define STATS_M_OPER_ONLY 414
600 > #define STATS_O_OPER_ONLY 415
601 > #define STATS_P_OPER_ONLY 416
602 > #define STATS_U_OPER_ONLY 417
603 > #define T_ALL 418
604 > #define T_BOTS 419
605 > #define T_CALLERID 420
606 > #define T_CCONN 421
607 > #define T_COMMAND 422
608 > #define T_CLUSTER 423
609 > #define T_DEAF 424
610 > #define T_DEBUG 425
611 > #define T_DLINE 426
612 > #define T_EXTERNAL 427
613 > #define T_FARCONNECT 428
614 > #define T_FILE 429
615 > #define T_FULL 430
616 > #define T_GLOBOPS 431
617 > #define T_INVISIBLE 432
618 > #define T_IPV4 433
619 > #define T_IPV6 434
620 > #define T_LOCOPS 435
621 > #define T_LOG 436
622 > #define T_NCHANGE 437
623 > #define T_NONONREG 438
624 > #define T_OPME 439
625 > #define T_PREPEND 440
626 > #define T_PSEUDO 441
627 > #define T_RECVQ 442
628 > #define T_REJ 443
629 > #define T_RESTART 444
630 > #define T_SERVER 445
631 > #define T_SERVICE 446
632 > #define T_SERVNOTICE 447
633 > #define T_SET 448
634 > #define T_SHARED 449
635 > #define T_SIZE 450
636 > #define T_SKILL 451
637 > #define T_SOFTCALLERID 452
638 > #define T_SPY 453
639 > #define T_SSL 454
640 > #define T_SSL_CIPHER_LIST 455
641 > #define T_TARGET 456
642 > #define T_UMODES 457
643 > #define T_UNAUTH 458
644 > #define T_UNDLINE 459
645 > #define T_UNLIMITED 460
646 > #define T_UNRESV 461
647 > #define T_UNXLINE 462
648 > #define T_WALLOP 463
649 > #define T_WALLOPS 464
650 > #define T_WEBIRC 465
651 > #define TBOOL 466
652 > #define THROTTLE_COUNT 467
653 > #define THROTTLE_TIME 468
654 > #define TKLINE_EXPIRE_NOTICES 469
655 > #define TMASKED 470
656 > #define TS_MAX_DELTA 471
657 > #define TS_WARN_DELTA 472
658 > #define TWODOTS 473
659 > #define TYPE 474
660 > #define UNKLINE 475
661   #define USE_LOGGING 476
662   #define USER 477
663   #define VHOST 478
664   #define VHOST6 479
665 < #define WARN_NO_NLINE 480
666 < #define XLINE 481
665 > #define WARN_NO_CONNECT_BLOCK 480
666 > #define WHOIS 481
667 > #define WHOWAS_HISTORY_LENGTH 482
668 > #define XLINE 483
669 > #define XLINE_EXEMPT 484
670  
671   /* Value type.  */
672   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
673 < typedef union YYSTYPE YYSTYPE;
673 >
674   union YYSTYPE
675   {
676 < #line 143 "conf_parser.y" /* yacc.c:355  */
676 > #line 141 "conf_parser.y" /* yacc.c:355  */
677  
678    int number;
679    char *string;
680  
681 < #line 678 "conf_parser.c" /* yacc.c:355  */
681 > #line 682 "conf_parser.c" /* yacc.c:355  */
682   };
683 +
684 + typedef union YYSTYPE YYSTYPE;
685   # define YYSTYPE_IS_TRIVIAL 1
686   # define YYSTYPE_IS_DECLARED 1
687   #endif
# Line 689 | Line 695 | int yyparse (void);
695  
696   /* Copy the second part of user declarations.  */
697  
698 < #line 693 "conf_parser.c" /* yacc.c:358  */
698 > #line 699 "conf_parser.c" /* yacc.c:358  */
699  
700   #ifdef short
701   # undef short
# Line 931 | Line 937 | union yyalloc
937   /* YYFINAL -- State number of the termination state.  */
938   #define YYFINAL  2
939   /* YYLAST -- Last index in YYTABLE.  */
940 < #define YYLAST   1233
940 > #define YYLAST   1348
941  
942   /* YYNTOKENS -- Number of terminals.  */
943 < #define YYNTOKENS  233
943 > #define YYNTOKENS  236
944   /* YYNNTS -- Number of nonterminals.  */
945 < #define YYNNTS  291
945 > #define YYNNTS  295
946   /* YYNRULES -- Number of rules.  */
947 < #define YYNRULES  657
947 > #define YYNRULES  668
948   /* YYNSTATES -- Number of states.  */
949 < #define YYNSTATES  1288
949 > #define YYNSTATES  1319
950  
951   /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
952     by yylex, with out-of-bounds checking.  */
953   #define YYUNDEFTOK  2
954 < #define YYMAXUTOK   481
954 > #define YYMAXUTOK   484
955  
956   #define YYTRANSLATE(YYX)                                                \
957    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
# Line 958 | Line 964 | static const yytype_uint8 yytranslate[]
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,   231,     2,     2,     2,     2,     2,
968 <       2,     2,     2,     2,     2,     2,     2,     2,   232,   227,
969 <       2,   230,     2,     2,     2,     2,     2,     2,     2,     2,
967 >       2,     2,     2,     2,   234,     2,     2,     2,     2,     2,
968 >       2,     2,     2,     2,     2,     2,     2,     2,   235,   230,
969 >       2,   233,     2,     2,     2,     2,     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,   229,     2,   228,     2,     2,     2,     2,
975 >       2,     2,     2,   232,     2,   231,     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,
# Line 1002 | Line 1008 | static const yytype_uint8 yytranslate[]
1008       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1009       205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1010       215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1011 <     225,   226
1011 >     225,   226,   227,   228,   229
1012   };
1013  
1014   #if YYDEBUG
1015    /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1016   static const yytype_uint16 yyrline[] =
1017   {
1018 <       0,   373,   373,   374,   377,   378,   379,   380,   381,   382,
1019 <     383,   384,   385,   386,   387,   388,   389,   390,   391,   392,
1020 <     393,   394,   395,   396,   397,   398,   399,   403,   403,   404,
1021 <     408,   412,   416,   420,   424,   428,   432,   438,   438,   439,
1022 <     440,   441,   442,   449,   452,   452,   453,   453,   453,   455,
1023 <     461,   468,   470,   470,   471,   471,   472,   472,   473,   473,
1024 <     474,   474,   475,   475,   476,   476,   477,   477,   478,   478,
1025 <     479,   480,   483,   484,   486,   486,   487,   493,   501,   501,
1026 <     502,   508,   516,   558,   616,   644,   652,   667,   682,   691,
1027 <     705,   714,   742,   772,   797,   819,   841,   850,   852,   852,
1028 <     853,   853,   854,   854,   856,   865,   874,   887,   886,   904,
1029 <     904,   905,   905,   905,   907,   913,   922,   923,   923,   925,
1030 <     925,   926,   928,   935,   935,   948,   949,   951,   951,   952,
1031 <     952,   954,   962,   965,   971,   970,   976,   976,   977,   981,
1032 <     985,   989,   993,   997,  1001,  1005,  1009,  1020,  1019,  1099,
1033 <    1099,  1100,  1100,  1100,  1101,  1101,  1101,  1102,  1102,  1103,
1034 <    1104,  1104,  1106,  1112,  1118,  1124,  1135,  1141,  1147,  1158,
1035 <    1165,  1164,  1170,  1170,  1171,  1175,  1179,  1183,  1187,  1191,
1036 <    1195,  1199,  1203,  1207,  1211,  1215,  1219,  1223,  1227,  1231,
1037 <    1235,  1239,  1243,  1247,  1251,  1258,  1257,  1263,  1263,  1264,
1038 <    1268,  1272,  1276,  1280,  1284,  1288,  1292,  1296,  1300,  1304,
1039 <    1308,  1312,  1316,  1320,  1324,  1328,  1332,  1336,  1340,  1344,
1040 <    1348,  1352,  1356,  1367,  1366,  1427,  1427,  1428,  1429,  1429,
1041 <    1430,  1431,  1432,  1433,  1434,  1435,  1436,  1437,  1438,  1438,
1042 <    1439,  1440,  1441,  1442,  1444,  1450,  1456,  1462,  1468,  1474,
1043 <    1480,  1486,  1492,  1498,  1505,  1511,  1517,  1523,  1532,  1542,
1044 <    1541,  1547,  1547,  1548,  1552,  1563,  1562,  1569,  1568,  1573,
1045 <    1573,  1574,  1578,  1582,  1588,  1588,  1589,  1589,  1589,  1589,
1046 <    1589,  1591,  1591,  1593,  1593,  1595,  1609,  1629,  1635,  1645,
1047 <    1644,  1686,  1686,  1687,  1687,  1687,  1687,  1688,  1688,  1688,
1048 <    1689,  1689,  1691,  1697,  1703,  1709,  1721,  1720,  1726,  1726,
1049 <    1727,  1731,  1735,  1739,  1743,  1747,  1751,  1755,  1759,  1763,
1050 <    1769,  1783,  1792,  1806,  1805,  1820,  1820,  1821,  1821,  1821,
1051 <    1821,  1823,  1829,  1835,  1845,  1847,  1847,  1848,  1848,  1850,
1052 <    1866,  1865,  1890,  1890,  1891,  1891,  1891,  1891,  1893,  1899,
1053 <    1919,  1918,  1924,  1924,  1925,  1929,  1933,  1937,  1941,  1945,
1054 <    1949,  1953,  1957,  1961,  1971,  1970,  1991,  1991,  1992,  1992,
1055 <    1992,  1994,  2001,  2000,  2006,  2006,  2007,  2011,  2015,  2019,
1056 <    2023,  2027,  2031,  2035,  2039,  2043,  2053,  2052,  2124,  2124,
1057 <    2125,  2125,  2125,  2126,  2126,  2127,  2128,  2128,  2128,  2129,
1058 <    2129,  2129,  2130,  2130,  2131,  2133,  2139,  2145,  2151,  2164,
1059 <    2177,  2183,  2189,  2193,  2202,  2201,  2206,  2206,  2207,  2211,
1060 <    2217,  2228,  2234,  2240,  2246,  2262,  2261,  2287,  2287,  2288,
1061 <    2288,  2288,  2290,  2310,  2320,  2319,  2346,  2346,  2347,  2347,
1062 <    2347,  2349,  2355,  2364,  2366,  2366,  2367,  2367,  2369,  2387,
1063 <    2386,  2409,  2409,  2410,  2410,  2410,  2412,  2418,  2427,  2430,
1064 <    2430,  2431,  2431,  2432,  2432,  2433,  2433,  2434,  2434,  2435,
1065 <    2435,  2436,  2437,  2438,  2438,  2439,  2439,  2440,  2440,  2441,
1066 <    2441,  2442,  2443,  2443,  2444,  2444,  2445,  2445,  2446,  2446,
1067 <    2447,  2447,  2448,  2448,  2449,  2449,  2450,  2450,  2451,  2452,
1068 <    2453,  2453,  2454,  2454,  2455,  2456,  2457,  2458,  2458,  2459,
1069 <    2460,  2463,  2468,  2474,  2480,  2486,  2492,  2497,  2502,  2507,
1070 <    2512,  2517,  2522,  2527,  2532,  2537,  2542,  2547,  2552,  2557,
1071 <    2563,  2574,  2579,  2584,  2589,  2594,  2599,  2604,  2607,  2612,
1072 <    2615,  2620,  2625,  2630,  2635,  2640,  2645,  2650,  2655,  2660,
1073 <    2665,  2670,  2675,  2684,  2693,  2698,  2703,  2709,  2708,  2713,
1074 <    2713,  2714,  2717,  2720,  2723,  2726,  2729,  2732,  2735,  2738,
1075 <    2741,  2744,  2747,  2750,  2753,  2756,  2759,  2762,  2765,  2768,
1076 <    2771,  2774,  2780,  2779,  2784,  2784,  2785,  2788,  2791,  2794,
1077 <    2797,  2800,  2803,  2806,  2809,  2812,  2815,  2818,  2821,  2824,
1078 <    2827,  2830,  2833,  2836,  2839,  2842,  2845,  2850,  2855,  2860,
1079 <    2869,  2872,  2872,  2873,  2874,  2874,  2875,  2875,  2876,  2877,
1080 <    2878,  2879,  2880,  2880,  2881,  2881,  2883,  2888,  2893,  2898,
1081 <    2903,  2908,  2913,  2918,  2923,  2928,  2933,  2938,  2946,  2949,
1082 <    2949,  2950,  2950,  2951,  2952,  2953,  2954,  2954,  2955,  2956,
1083 <    2958,  2964,  2970,  2976,  2982,  2991,  3005,  3011
1018 >       0,   374,   374,   375,   378,   379,   380,   381,   382,   383,
1019 >     384,   385,   386,   387,   388,   389,   390,   391,   392,   393,
1020 >     394,   395,   396,   397,   398,   399,   400,   401,   405,   405,
1021 >     406,   407,   408,   409,   410,   411,   412,   413,   416,   416,
1022 >     417,   418,   419,   420,   427,   429,   429,   430,   430,   430,
1023 >     432,   438,   448,   450,   450,   451,   452,   453,   454,   455,
1024 >     456,   457,   458,   459,   460,   461,   462,   463,   464,   465,
1025 >     466,   467,   468,   471,   480,   489,   498,   507,   516,   525,
1026 >     540,   555,   565,   579,   588,   616,   644,   669,   691,   713,
1027 >     723,   725,   725,   726,   727,   728,   729,   731,   740,   749,
1028 >     763,   762,   780,   780,   781,   781,   781,   783,   789,   800,
1029 >     799,   818,   818,   819,   819,   819,   819,   819,   821,   827,
1030 >     833,   839,   861,   862,   862,   864,   864,   865,   867,   874,
1031 >     874,   887,   888,   890,   890,   891,   891,   893,   901,   904,
1032 >     910,   909,   915,   915,   916,   920,   924,   928,   932,   936,
1033 >     940,   944,   955,   954,  1015,  1015,  1016,  1017,  1018,  1019,
1034 >    1020,  1021,  1022,  1023,  1024,  1025,  1026,  1028,  1034,  1040,
1035 >    1046,  1052,  1063,  1069,  1080,  1087,  1086,  1092,  1092,  1093,
1036 >    1097,  1101,  1105,  1109,  1113,  1117,  1121,  1125,  1129,  1133,
1037 >    1137,  1141,  1145,  1149,  1153,  1157,  1161,  1165,  1169,  1173,
1038 >    1177,  1184,  1183,  1189,  1189,  1190,  1194,  1198,  1202,  1206,
1039 >    1210,  1214,  1218,  1222,  1226,  1230,  1234,  1238,  1242,  1246,
1040 >    1250,  1254,  1258,  1262,  1266,  1270,  1274,  1278,  1282,  1286,
1041 >    1290,  1294,  1298,  1302,  1313,  1312,  1370,  1370,  1371,  1372,
1042 >    1373,  1374,  1375,  1376,  1377,  1378,  1379,  1380,  1381,  1382,
1043 >    1383,  1384,  1385,  1386,  1388,  1394,  1400,  1406,  1412,  1418,
1044 >    1424,  1430,  1436,  1443,  1449,  1455,  1461,  1470,  1480,  1479,
1045 >    1485,  1485,  1486,  1490,  1501,  1500,  1507,  1506,  1511,  1511,
1046 >    1512,  1516,  1520,  1526,  1526,  1527,  1527,  1527,  1527,  1527,
1047 >    1529,  1529,  1531,  1531,  1533,  1546,  1563,  1569,  1580,  1579,
1048 >    1625,  1625,  1626,  1627,  1628,  1629,  1630,  1631,  1632,  1633,
1049 >    1634,  1636,  1642,  1648,  1654,  1666,  1665,  1671,  1671,  1672,
1050 >    1676,  1680,  1684,  1688,  1692,  1696,  1700,  1704,  1708,  1714,
1051 >    1728,  1737,  1751,  1750,  1765,  1765,  1766,  1766,  1766,  1766,
1052 >    1768,  1774,  1780,  1790,  1792,  1792,  1793,  1793,  1795,  1812,
1053 >    1811,  1834,  1834,  1835,  1835,  1835,  1835,  1837,  1843,  1863,
1054 >    1862,  1868,  1868,  1869,  1873,  1877,  1881,  1885,  1889,  1893,
1055 >    1897,  1901,  1905,  1916,  1915,  1934,  1934,  1935,  1935,  1935,
1056 >    1937,  1944,  1943,  1949,  1949,  1950,  1954,  1958,  1962,  1966,
1057 >    1970,  1974,  1978,  1982,  1986,  1997,  1996,  2068,  2068,  2069,
1058 >    2070,  2071,  2072,  2073,  2074,  2075,  2076,  2077,  2078,  2079,
1059 >    2080,  2081,  2082,  2083,  2085,  2091,  2097,  2103,  2116,  2129,
1060 >    2135,  2141,  2145,  2152,  2151,  2156,  2156,  2157,  2161,  2167,
1061 >    2178,  2184,  2190,  2196,  2212,  2211,  2237,  2237,  2238,  2238,
1062 >    2238,  2240,  2260,  2271,  2270,  2297,  2297,  2298,  2298,  2298,
1063 >    2300,  2306,  2316,  2318,  2318,  2319,  2319,  2321,  2339,  2338,
1064 >    2359,  2359,  2360,  2360,  2360,  2362,  2368,  2378,  2380,  2380,
1065 >    2381,  2382,  2383,  2384,  2385,  2386,  2387,  2388,  2389,  2390,
1066 >    2391,  2392,  2393,  2394,  2395,  2396,  2397,  2398,  2399,  2400,
1067 >    2401,  2402,  2403,  2404,  2405,  2406,  2407,  2408,  2409,  2410,
1068 >    2411,  2412,  2413,  2414,  2415,  2416,  2417,  2418,  2419,  2420,
1069 >    2421,  2422,  2423,  2424,  2425,  2426,  2427,  2428,  2431,  2436,
1070 >    2441,  2446,  2451,  2457,  2462,  2467,  2472,  2477,  2482,  2487,
1071 >    2492,  2497,  2502,  2507,  2512,  2517,  2522,  2527,  2533,  2538,
1072 >    2543,  2548,  2553,  2558,  2563,  2568,  2571,  2576,  2579,  2584,
1073 >    2589,  2594,  2599,  2604,  2609,  2614,  2619,  2624,  2629,  2634,
1074 >    2639,  2645,  2644,  2649,  2649,  2650,  2653,  2656,  2659,  2662,
1075 >    2665,  2668,  2671,  2674,  2677,  2680,  2683,  2686,  2689,  2692,
1076 >    2695,  2698,  2701,  2704,  2707,  2710,  2713,  2719,  2718,  2723,
1077 >    2723,  2724,  2727,  2730,  2733,  2736,  2739,  2742,  2745,  2748,
1078 >    2751,  2754,  2757,  2760,  2763,  2766,  2769,  2772,  2775,  2778,
1079 >    2781,  2786,  2791,  2796,  2801,  2810,  2812,  2812,  2813,  2814,
1080 >    2815,  2816,  2817,  2818,  2819,  2820,  2821,  2822,  2823,  2824,
1081 >    2825,  2826,  2827,  2829,  2834,  2839,  2844,  2849,  2854,  2859,
1082 >    2864,  2869,  2874,  2879,  2884,  2889,  2894,  2903,  2905,  2905,
1083 >    2906,  2907,  2908,  2909,  2910,  2911,  2912,  2913,  2914,  2915,
1084 >    2917,  2923,  2939,  2948,  2954,  2960,  2966,  2975,  2981
1085   };
1086   #endif
1087  
# Line 1084 | Line 1091 | static const yytype_uint16 yyrline[] =
1091   static const char *const yytname[] =
1092   {
1093    "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1094 <  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1095 <  "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1096 <  "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1097 <  "CONNECTFREQ", "CYCLE_ON_HOST_CHANGE", "DEFAULT_FLOODCOUNT",
1098 <  "DEFAULT_SPLIT_SERVER_COUNT", "DEFAULT_SPLIT_USER_COUNT", "DENY",
1099 <  "DESCRIPTION", "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1100 <  "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT", "EGDPOOL_PATH", "EMAIL",
1101 <  "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT", "FAILED_OPER_NOTICE",
1102 <  "FLATTEN_LINKS", "GECOS", "GENERAL", "GLINE", "GLINE_DURATION",
1103 <  "GLINE_ENABLE", "GLINE_EXEMPT", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1104 <  "GLINE_REQUEST_DURATION", "GLOBAL_KILL", "HAVENT_READ_CONF", "HIDDEN",
1105 <  "HIDDEN_NAME", "HIDE_IDLE_FROM_OPERS", "HIDE_SERVER_IPS", "HIDE_SERVERS",
1106 <  "HIDE_SERVICES", "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK",
1107 <  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "IP", "IRCD_AUTH",
1108 <  "IRCD_FLAGS", "IRCD_SID", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "KILL",
1109 <  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KNOCK_DELAY",
1110 <  "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY", "LISTEN", "MASK",
1111 <  "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_OPER", "MAX_CHANS_PER_USER",
1112 <  "MAX_GLOBAL", "MAX_IDENT", "MAX_IDLE", "MAX_LOCAL", "MAX_NICK_CHANGES",
1113 <  "MAX_NICK_LENGTH", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1114 <  "MAX_TOPIC_LENGTH", "MAX_WATCH", "MIN_IDLE", "MIN_NONWILDCARD",
1115 <  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "MOTD", "NAME",
1116 <  "NEED_IDENT", "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME", "NICK",
1117 <  "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1118 <  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPER_ONLY_UMODES",
1119 <  "OPER_PASS_RESV", "OPER_UMODES", "OPERATOR", "OPERS_BYPASS_CALLERID",
1120 <  "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1121 <  "PING_TIME", "PORT", "QSTRING", "RANDOM_IDLE", "REASON", "REDIRPORT",
1122 <  "REDIRSERV", "REHASH", "REMOTE", "REMOTEBAN", "RESV", "RESV_EXEMPT",
1123 <  "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE", "SECONDS", "MINUTES",
1124 <  "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ",
1125 <  "SERVERHIDE", "SERVERINFO", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1126 <  "SQUIT", "SSL_CERTIFICATE_FILE", "SSL_CERTIFICATE_FINGERPRINT",
1127 <  "SSL_CONNECTION_REQUIRED", "SSL_DH_PARAM_FILE", "STATS_E_DISABLED",
1128 <  "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY",
1094 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN",
1095 >  "AWAY_COUNT", "AWAY_TIME", "BYTES", "KBYTES", "MBYTES", "CALLER_ID_WAIT",
1096 >  "CAN_FLOOD", "CHANNEL", "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS",
1097 >  "CLOSE", "CONNECT", "CONNECTFREQ", "CYCLE_ON_HOST_CHANGE",
1098 >  "DEFAULT_FLOODCOUNT", "DEFAULT_FLOODTIME", "DEFAULT_JOIN_FLOOD_COUNT",
1099 >  "DEFAULT_JOIN_FLOOD_TIME", "DEFAULT_MAX_CLIENTS", "DENY", "DESCRIPTION",
1100 >  "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1101 >  "DISABLE_REMOTE_COMMANDS", "DLINE_MIN_CIDR", "DLINE_MIN_CIDR6",
1102 >  "DOTS_IN_IDENT", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1103 >  "FAILED_OPER_NOTICE", "FLATTEN_LINKS", "FLATTEN_LINKS_DELAY",
1104 >  "FLATTEN_LINKS_FILE", "GECOS", "GENERAL", "HIDDEN", "HIDDEN_NAME",
1105 >  "HIDE_CHANS", "HIDE_IDLE", "HIDE_IDLE_FROM_OPERS", "HIDE_SERVER_IPS",
1106 >  "HIDE_SERVERS", "HIDE_SERVICES", "HOST", "HUB", "HUB_MASK",
1107 >  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "INVITE_CLIENT_COUNT",
1108 >  "INVITE_CLIENT_TIME", "INVITE_DELAY_CHANNEL", "INVITE_EXPIRE_TIME", "IP",
1109 >  "IRCD_AUTH", "IRCD_FLAGS", "IRCD_SID", "JOIN", "KILL",
1110 >  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KLINE_MIN_CIDR",
1111 >  "KLINE_MIN_CIDR6", "KNOCK_CLIENT_COUNT", "KNOCK_CLIENT_TIME",
1112 >  "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LISTEN", "MASK", "MAX_ACCEPT",
1113 >  "MAX_BANS", "MAX_BANS_LARGE", "MAX_CHANNELS", "MAX_IDLE", "MAX_INVITES",
1114 >  "MAX_NICK_CHANGES", "MAX_NICK_LENGTH", "MAX_NICK_TIME", "MAX_NUMBER",
1115 >  "MAX_TARGETS", "MAX_TOPIC_LENGTH", "MAX_WATCH", "MIN_IDLE",
1116 >  "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "MOTD",
1117 >  "NAME", "NEED_IDENT", "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME",
1118 >  "NICK", "NO_OPER_FLOOD", "NO_TILDE", "NUMBER", "NUMBER_PER_CIDR",
1119 >  "NUMBER_PER_IP_GLOBAL", "NUMBER_PER_IP_LOCAL", "OPER_ONLY_UMODES",
1120 >  "OPER_UMODES", "OPERATOR", "OPERS_BYPASS_CALLERID", "PACE_WAIT",
1121 >  "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME",
1122 >  "PORT", "QSTRING", "RANDOM_IDLE", "REASON", "REDIRPORT", "REDIRSERV",
1123 >  "REHASH", "REMOTE", "REMOTEBAN", "RESV", "RESV_EXEMPT",
1124 >  "RSA_PRIVATE_KEY_FILE", "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS",
1125 >  "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ", "SERVERHIDE", "SERVERINFO",
1126 >  "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE", "SQUIT", "SSL_CERTIFICATE_FILE",
1127 >  "SSL_CERTIFICATE_FINGERPRINT", "SSL_CONNECTION_REQUIRED",
1128 >  "SSL_DH_ELLIPTIC_CURVE", "SSL_DH_PARAM_FILE",
1129 >  "SSL_MESSAGE_DIGEST_ALGORITHM", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1130 >  "STATS_K_OPER_ONLY", "STATS_M_OPER_ONLY", "STATS_O_OPER_ONLY",
1131    "STATS_P_OPER_ONLY", "STATS_U_OPER_ONLY", "T_ALL", "T_BOTS",
1132 <  "T_CALLERID", "T_CCONN", "T_CLUSTER", "T_DEAF", "T_DEBUG", "T_DLINE",
1133 <  "T_EXTERNAL", "T_FARCONNECT", "T_FILE", "T_FULL", "T_GLOBOPS",
1134 <  "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_LOG", "T_MAX_CLIENTS",
1135 <  "T_NCHANGE", "T_NONONREG", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_RESTART",
1136 <  "T_SERVER", "T_SERVICE", "T_SERVICES_NAME", "T_SERVNOTICE", "T_SET",
1132 >  "T_CALLERID", "T_CCONN", "T_COMMAND", "T_CLUSTER", "T_DEAF", "T_DEBUG",
1133 >  "T_DLINE", "T_EXTERNAL", "T_FARCONNECT", "T_FILE", "T_FULL", "T_GLOBOPS",
1134 >  "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_LOG", "T_NCHANGE",
1135 >  "T_NONONREG", "T_OPME", "T_PREPEND", "T_PSEUDO", "T_RECVQ", "T_REJ",
1136 >  "T_RESTART", "T_SERVER", "T_SERVICE", "T_SERVNOTICE", "T_SET",
1137    "T_SHARED", "T_SIZE", "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL",
1138 <  "T_SSL_CIPHER_LIST", "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD",
1139 <  "T_SSLV3", "T_TLSV1", "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED",
1140 <  "T_UNRESV", "T_UNXLINE", "T_WALLOP", "T_WALLOPS", "T_WEBIRC", "TBOOL",
1141 <  "THROTTLE_TIME", "TKLINE_EXPIRE_NOTICES", "TMASKED",
1142 <  "TRUE_NO_OPER_FLOOD", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "TYPE",
1143 <  "UNKLINE", "USE_EGD", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1144 <  "WARN_NO_NLINE", "XLINE", "';'", "'}'", "'{'", "'='", "','", "':'",
1145 <  "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1146 <  "sizespec", "modules_entry", "modules_items", "modules_item",
1147 <  "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1148 <  "serverinfo_item", "serverinfo_ssl_client_method",
1140 <  "serverinfo_ssl_server_method", "client_method_types",
1141 <  "client_method_type_item", "server_method_types",
1142 <  "server_method_type_item", "serverinfo_ssl_certificate_file",
1138 >  "T_SSL_CIPHER_LIST", "T_TARGET", "T_UMODES", "T_UNAUTH", "T_UNDLINE",
1139 >  "T_UNLIMITED", "T_UNRESV", "T_UNXLINE", "T_WALLOP", "T_WALLOPS",
1140 >  "T_WEBIRC", "TBOOL", "THROTTLE_COUNT", "THROTTLE_TIME",
1141 >  "TKLINE_EXPIRE_NOTICES", "TMASKED", "TS_MAX_DELTA", "TS_WARN_DELTA",
1142 >  "TWODOTS", "TYPE", "UNKLINE", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1143 >  "WARN_NO_CONNECT_BLOCK", "WHOIS", "WHOWAS_HISTORY_LENGTH", "XLINE",
1144 >  "XLINE_EXEMPT", "';'", "'}'", "'{'", "'='", "','", "':'", "$accept",
1145 >  "conf", "conf_item", "timespec_", "timespec", "sizespec_", "sizespec",
1146 >  "modules_entry", "modules_items", "modules_item", "modules_module",
1147 >  "modules_path", "serverinfo_entry", "serverinfo_items",
1148 >  "serverinfo_item", "serverinfo_ssl_certificate_file",
1149    "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1150 <  "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1150 >  "serverinfo_ssl_cipher_list", "serverinfo_ssl_message_digest_algorithm",
1151 >  "serverinfo_ssl_dh_elliptic_curve", "serverinfo_name", "serverinfo_sid",
1152    "serverinfo_description", "serverinfo_network_name",
1153    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1154 <  "serverinfo_max_clients", "serverinfo_max_nick_length",
1154 >  "serverinfo_default_max_clients", "serverinfo_max_nick_length",
1155    "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1156    "admin_items", "admin_item", "admin_name", "admin_email",
1157    "admin_description", "motd_entry", "$@1", "motd_items", "motd_item",
1158 <  "motd_mask", "motd_file", "logging_entry", "logging_items",
1159 <  "logging_item", "logging_use_logging", "logging_file_entry", "$@2",
1160 <  "logging_file_items", "logging_file_item", "logging_file_name",
1161 <  "logging_file_size", "logging_file_type", "$@3",
1162 <  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@4",
1163 <  "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1164 <  "oper_encrypted", "oper_rsa_public_key_file",
1165 <  "oper_ssl_certificate_fingerprint", "oper_ssl_connection_required",
1166 <  "oper_class", "oper_umodes", "$@5", "oper_umodes_items",
1167 <  "oper_umodes_item", "oper_flags", "$@6", "oper_flags_items",
1168 <  "oper_flags_item", "class_entry", "$@7", "class_items", "class_item",
1169 <  "class_name", "class_ping_time", "class_number_per_ip",
1170 <  "class_connectfreq", "class_max_number", "class_max_global",
1171 <  "class_max_local", "class_max_ident", "class_sendq", "class_recvq",
1172 <  "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1173 <  "class_number_per_cidr", "class_min_idle", "class_max_idle",
1174 <  "class_flags", "$@8", "class_flags_items", "class_flags_item",
1175 <  "listen_entry", "$@9", "listen_flags", "$@10", "listen_flags_items",
1176 <  "listen_flags_item", "listen_items", "listen_item", "listen_port",
1177 <  "$@11", "port_items", "port_item", "listen_address", "listen_host",
1178 <  "auth_entry", "$@12", "auth_items", "auth_item", "auth_user",
1179 <  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@13",
1180 <  "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1181 <  "auth_redir_port", "resv_entry", "$@14", "resv_items", "resv_item",
1182 <  "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1183 <  "service_items", "service_item", "service_name", "shared_entry", "$@15",
1158 >  "motd_mask", "motd_file", "pseudo_entry", "$@2", "pseudo_items",
1159 >  "pseudo_item", "pseudo_command", "pseudo_name", "pseudo_prepend",
1160 >  "pseudo_target", "logging_entry", "logging_items", "logging_item",
1161 >  "logging_use_logging", "logging_file_entry", "$@3", "logging_file_items",
1162 >  "logging_file_item", "logging_file_name", "logging_file_size",
1163 >  "logging_file_type", "$@4", "logging_file_type_items",
1164 >  "logging_file_type_item", "oper_entry", "$@5", "oper_items", "oper_item",
1165 >  "oper_name", "oper_user", "oper_password", "oper_whois",
1166 >  "oper_encrypted", "oper_ssl_certificate_fingerprint",
1167 >  "oper_ssl_connection_required", "oper_class", "oper_umodes", "$@6",
1168 >  "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@7",
1169 >  "oper_flags_items", "oper_flags_item", "class_entry", "$@8",
1170 >  "class_items", "class_item", "class_name", "class_ping_time",
1171 >  "class_number_per_ip_local", "class_number_per_ip_global",
1172 >  "class_connectfreq", "class_max_channels", "class_max_number",
1173 >  "class_sendq", "class_recvq", "class_cidr_bitlen_ipv4",
1174 >  "class_cidr_bitlen_ipv6", "class_number_per_cidr", "class_min_idle",
1175 >  "class_max_idle", "class_flags", "$@9", "class_flags_items",
1176 >  "class_flags_item", "listen_entry", "$@10", "listen_flags", "$@11",
1177 >  "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1178 >  "listen_port", "$@12", "port_items", "port_item", "listen_address",
1179 >  "listen_host", "auth_entry", "$@13", "auth_items", "auth_item",
1180 >  "auth_user", "auth_passwd", "auth_class", "auth_encrypted", "auth_flags",
1181 >  "$@14", "auth_flags_items", "auth_flags_item", "auth_spoof",
1182 >  "auth_redir_serv", "auth_redir_port", "resv_entry", "$@15", "resv_items",
1183 >  "resv_item", "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1184 >  "service_items", "service_item", "service_name", "shared_entry", "$@16",
1185    "shared_items", "shared_item", "shared_name", "shared_user",
1186 <  "shared_type", "$@16", "shared_types", "shared_type_item",
1187 <  "cluster_entry", "$@17", "cluster_items", "cluster_item", "cluster_name",
1188 <  "cluster_type", "$@18", "cluster_types", "cluster_type_item",
1189 <  "connect_entry", "$@19", "connect_items", "connect_item", "connect_name",
1186 >  "shared_type", "$@17", "shared_types", "shared_type_item",
1187 >  "cluster_entry", "$@18", "cluster_items", "cluster_item", "cluster_name",
1188 >  "cluster_type", "$@19", "cluster_types", "cluster_type_item",
1189 >  "connect_entry", "$@20", "connect_items", "connect_item", "connect_name",
1190    "connect_host", "connect_vhost", "connect_send_password",
1191    "connect_accept_password", "connect_ssl_certificate_fingerprint",
1192 <  "connect_port", "connect_aftype", "connect_flags", "$@20",
1192 >  "connect_port", "connect_aftype", "connect_flags", "$@21",
1193    "connect_flags_items", "connect_flags_item", "connect_encrypted",
1194    "connect_hub_mask", "connect_leaf_mask", "connect_class",
1195 <  "connect_ssl_cipher_list", "kill_entry", "$@21", "kill_items",
1196 <  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@22",
1195 >  "connect_ssl_cipher_list", "kill_entry", "$@22", "kill_items",
1196 >  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@23",
1197    "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1198 <  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@23",
1198 >  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@24",
1199    "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1200 <  "general_entry", "general_items", "general_item", "general_max_watch",
1201 <  "general_cycle_on_host_change", "general_gline_enable",
1202 <  "general_gline_duration", "general_gline_request_duration",
1203 <  "general_gline_min_cidr", "general_gline_min_cidr6",
1200 >  "general_entry", "general_items", "general_item", "general_away_count",
1201 >  "general_away_time", "general_max_watch",
1202 >  "general_whowas_history_length", "general_cycle_on_host_change",
1203 >  "general_dline_min_cidr", "general_dline_min_cidr6",
1204 >  "general_kline_min_cidr", "general_kline_min_cidr6",
1205    "general_tkline_expire_notices", "general_kill_chase_time_limit",
1206 <  "general_hide_spoof_ips", "general_ignore_bogus_ts",
1207 <  "general_failed_oper_notice", "general_anti_nick_flood",
1208 <  "general_max_nick_time", "general_max_nick_changes",
1209 <  "general_max_accept", "general_anti_spam_exit_message_time",
1210 <  "general_ts_warn_delta", "general_ts_max_delta",
1211 <  "general_havent_read_conf", "general_invisible_on_connect",
1212 <  "general_warn_no_nline", "general_stats_e_disabled",
1213 <  "general_stats_o_oper_only", "general_stats_P_oper_only",
1214 <  "general_stats_u_oper_only", "general_stats_k_oper_only",
1215 <  "general_stats_i_oper_only", "general_pace_wait",
1216 <  "general_caller_id_wait", "general_opers_bypass_callerid",
1217 <  "general_pace_wait_simple", "general_short_motd",
1218 <  "general_no_oper_flood", "general_true_no_oper_flood",
1219 <  "general_oper_pass_resv", "general_dots_in_ident", "general_max_targets",
1220 <  "general_use_egd", "general_egdpool_path", "general_services_name",
1221 <  "general_ping_cookie", "general_disable_auth", "general_throttle_time",
1222 <  "general_oper_umodes", "$@24", "umode_oitems", "umode_oitem",
1223 <  "general_oper_only_umodes", "$@25", "umode_items", "umode_item",
1224 <  "general_min_nonwildcard", "general_min_nonwildcard_simple",
1225 <  "general_default_floodcount", "channel_entry", "channel_items",
1226 <  "channel_item", "channel_disable_fake_channels", "channel_knock_delay",
1227 <  "channel_knock_delay_channel", "channel_max_chans_per_user",
1228 <  "channel_max_chans_per_oper", "channel_max_bans",
1229 <  "channel_default_split_user_count", "channel_default_split_server_count",
1230 <  "channel_no_create_on_split", "channel_no_join_on_split",
1231 <  "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1232 <  "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1233 <  "serverhide_disable_remote_commands", "serverhide_hide_servers",
1234 <  "serverhide_hide_services", "serverhide_hidden_name",
1235 <  "serverhide_links_delay", "serverhide_hidden",
1206 >  "general_ignore_bogus_ts", "general_failed_oper_notice",
1207 >  "general_anti_nick_flood", "general_max_nick_time",
1208 >  "general_max_nick_changes", "general_max_accept",
1209 >  "general_anti_spam_exit_message_time", "general_ts_warn_delta",
1210 >  "general_ts_max_delta", "general_invisible_on_connect",
1211 >  "general_warn_no_connect_block", "general_stats_e_disabled",
1212 >  "general_stats_m_oper_only", "general_stats_o_oper_only",
1213 >  "general_stats_P_oper_only", "general_stats_u_oper_only",
1214 >  "general_stats_k_oper_only", "general_stats_i_oper_only",
1215 >  "general_pace_wait", "general_caller_id_wait",
1216 >  "general_opers_bypass_callerid", "general_pace_wait_simple",
1217 >  "general_short_motd", "general_no_oper_flood", "general_dots_in_ident",
1218 >  "general_max_targets", "general_ping_cookie", "general_disable_auth",
1219 >  "general_throttle_count", "general_throttle_time", "general_oper_umodes",
1220 >  "$@25", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1221 >  "$@26", "umode_items", "umode_item", "general_min_nonwildcard",
1222 >  "general_min_nonwildcard_simple", "general_default_floodcount",
1223 >  "general_default_floodtime", "channel_entry", "channel_items",
1224 >  "channel_item", "channel_disable_fake_channels",
1225 >  "channel_invite_client_count", "channel_invite_client_time",
1226 >  "channel_invite_delay_channel", "channel_invite_expire_time",
1227 >  "channel_knock_client_count", "channel_knock_client_time",
1228 >  "channel_knock_delay_channel", "channel_max_channels",
1229 >  "channel_max_invites", "channel_max_bans", "channel_max_bans_large",
1230 >  "channel_default_join_flood_count", "channel_default_join_flood_time",
1231 >  "serverhide_entry", "serverhide_items", "serverhide_item",
1232 >  "serverhide_flatten_links", "serverhide_flatten_links_delay",
1233 >  "serverhide_flatten_links_file", "serverhide_disable_remote_commands",
1234 >  "serverhide_hide_servers", "serverhide_hide_services",
1235 >  "serverhide_hidden_name", "serverhide_hidden",
1236    "serverhide_hide_server_ips", YY_NULLPTR
1237   };
1238   #endif
# Line 1255 | Line 1264 | static const yytype_uint16 yytoknum[] =
1264       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1265       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1266       465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1267 <     475,   476,   477,   478,   479,   480,   481,    59,   125,   123,
1268 <      61,    44,    58
1267 >     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1268 >      59,   125,   123,    61,    44,    58
1269   };
1270   # endif
1271  
1272 < #define YYPACT_NINF -755
1272 > #define YYPACT_NINF -1054
1273  
1274   #define yypact_value_is_default(Yystate) \
1275 <  (!!((Yystate) == (-755)))
1275 >  (!!((Yystate) == (-1054)))
1276  
1277 < #define YYTABLE_NINF -124
1277 > #define YYTABLE_NINF -130
1278  
1279   #define yytable_value_is_error(Yytable_value) \
1280    0
# Line 1274 | Line 1283 | static const yytype_uint16 yytoknum[] =
1283       STATE-NUM.  */
1284   static const yytype_int16 yypact[] =
1285   {
1286 <    -755,   717,  -755,  -198,  -223,  -208,  -755,  -755,  -755,  -186,
1287 <    -755,  -184,  -755,  -755,  -755,  -179,  -755,  -755,  -755,  -168,
1288 <    -154,  -755,  -146,  -123,  -755,  -755,  -755,  -755,  -755,  -755,
1289 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1290 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,   282,
1291 <     963,   -84,   -59,   -46,   130,   -45,   414,   -39,   -26,   -19,
1292 <      79,   -18,   -11,    21,   503,   408,    40,    39,    53,    41,
1293 <     -14,    -1,    64,    66,     7,  -755,  -755,  -755,  -755,  -755,
1294 <      81,    82,    96,   100,   102,   104,   105,   117,   119,   121,
1295 <     127,   128,    13,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1296 <    -755,  -755,  -755,  -755,  -755,  -755,   723,   577,    61,  -755,
1297 <     131,    10,  -755,  -755,    36,  -755,   132,   133,   135,   139,
1298 <     141,   142,   143,   144,   146,   148,   151,   153,   157,   158,
1299 <     160,   162,   164,   165,   166,   168,   170,   180,   182,   183,
1300 <     187,   188,   189,  -755,   192,  -755,   193,   195,   197,   199,
1301 <     200,   201,   202,   206,   207,   208,   209,   212,   213,   216,
1302 <     217,   219,   221,   222,   223,   108,  -755,  -755,  -755,  -755,
1303 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1304 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1305 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1306 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1307 <    -755,  -755,  -755,  -755,  -755,  -755,   353,     8,   292,    29,
1308 <     227,   231,    24,  -755,  -755,  -755,    22,   546,    47,  -755,
1309 <     236,   237,   240,   246,   248,   251,   253,   254,    15,  -755,
1310 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,    60,   255,
1311 <     257,   259,   260,   262,   263,   265,   266,   272,   288,   291,
1312 <     294,   303,   305,   306,   307,   308,     9,  -755,  -755,  -755,
1313 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1314 <    -755,  -755,  -755,  -755,  -755,     4,    65,   309,    19,  -755,
1315 <    -755,  -755,   155,  -755,   313,    23,  -755,  -755,    62,  -755,
1316 <     215,   352,   365,   270,  -755,   252,   436,   335,   438,   440,
1317 <     440,   440,   443,   451,   454,   355,   356,   340,  -755,   347,
1318 <     346,   351,   354,  -755,   357,   358,   360,   362,   366,   367,
1319 <     368,   369,   370,   372,   373,   377,   258,  -755,  -755,  -755,
1320 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1321 <    -755,  -755,  -755,  -755,   381,   382,   383,   384,   385,   386,
1322 <     387,  -755,   388,   390,   391,   392,   393,   394,   397,   326,
1323 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1324 <    -755,  -755,  -755,  -755,  -755,  -755,   406,   407,    69,  -755,
1325 <    -755,  -755,   460,   411,  -755,  -755,   412,   413,    48,  -755,
1326 <    -755,  -755,   375,   440,   440,   401,   487,   431,   537,   523,
1327 <     437,   440,   439,   540,   543,   440,   547,   446,   447,   448,
1328 <     440,   551,   552,   440,   553,   554,   555,   557,   456,   441,
1329 <     457,   442,   458,   440,   440,   459,   464,   466,    58,    95,
1330 <     467,   468,   469,   558,   440,   472,   473,   440,   440,   474,
1331 <     475,   461,  -755,   462,   463,   465,  -755,   471,   476,   477,
1332 <     479,   480,   163,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1333 <    -755,  -755,  -755,   481,   482,    50,  -755,  -755,  -755,   489,
1334 <     484,   490,  -755,   492,  -755,    25,  -755,  -755,  -755,  -755,
1335 <    -755,   563,   564,   496,  -755,   498,   499,   506,    18,  -755,
1336 <    -755,  -755,   510,   515,   516,  -755,   518,   519,   527,   528,
1337 <     529,  -755,   531,    14,  -755,  -755,  -755,  -755,  -755,  -755,
1338 <    -755,  -755,  -755,  -755,  -755,   513,   532,   533,   534,    11,
1339 <    -755,  -755,  -755,  -755,   493,   494,   544,   567,   556,   559,
1340 <     560,   440,   526,  -755,  -755,   569,   561,   571,   562,   594,
1341 <     603,   642,   644,   649,   651,   652,   668,   654,   -99,   -42,
1342 <     655,   657,   566,  -755,   568,   572,  -755,    73,  -755,  -755,
1343 <    -755,  -755,   573,   570,  -755,   565,   658,   574,  -755,   581,
1344 <     579,  -755,   582,    27,  -755,  -755,  -755,  -755,   589,   590,
1345 <     591,  -755,   592,   593,   595,   596,   267,   597,   598,   599,
1346 <     600,   601,   602,   607,   608,  -755,  -755,   674,   677,   440,
1347 <     606,   680,   683,   440,   690,   691,   440,   707,   729,   732,
1348 <     440,   733,   733,   615,  -755,  -755,   720,   129,   728,   646,
1349 <     731,   735,   629,   745,   746,   762,   748,   750,   751,   752,
1350 <     653,  -755,   756,   759,   656,  -755,   660,  -755,   761,   765,
1351 <     662,  -755,   663,   665,   666,   669,   670,   671,   672,   675,
1352 <     679,   687,   692,   694,   695,   697,   698,   704,   705,   706,
1353 <     710,   711,   715,   716,   719,   721,   730,   738,   740,   684,
1354 <     741,   747,   749,   753,   754,   760,   763,   766,   767,   771,
1355 <     772,   773,   774,   775,   776,   777,   778,   779,   780,   781,
1356 <     782,   783,   784,  -755,  -755,   788,   685,   714,   794,   793,
1357 <     811,   824,   827,   785,  -755,   837,   839,   786,  -755,  -755,
1358 <     854,   856,   787,   796,   789,  -755,   791,   792,  -755,  -755,
1359 <     866,   873,   795,  -755,  -755,   891,   805,   797,   897,   898,
1360 <     900,   901,   815,   800,   903,   804,  -755,  -755,   909,   910,
1361 <     913,   810,  -755,   812,   813,   817,   818,   819,   820,   821,
1362 <     822,  -755,   823,   825,   826,   828,   829,   830,   831,   832,
1363 <     833,   834,   835,   836,   838,  -755,  -755,  -209,  -755,  -755,
1364 <    -755,  -189,  -755,   842,   843,  -755,  -755,   915,   841,   845,
1365 <    -755,   846,  -755,    26,   847,  -755,  -755,   928,   848,   931,
1366 <     849,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,   440,
1367 <     440,   440,   440,   440,   440,   440,  -755,  -755,  -755,  -755,
1368 <    -755,  -755,  -755,  -755,  -755,  -755,   850,   852,   853,   -34,
1369 <     855,   857,   858,   859,   860,   861,   862,   863,   864,   865,
1370 <     289,   867,   868,  -755,   869,   870,   871,   872,   874,   875,
1371 <     876,     5,   877,   878,   879,   880,   881,   882,   883,  -755,
1372 <     884,   885,  -755,  -755,   886,   887,  -755,  -755,  -755,  -755,
1373 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1374 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1375 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1376 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1377 <    -755,  -755,  -755,  -755,  -755,  -174,  -755,  -755,  -755,  -755,
1378 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1379 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -172,
1380 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1381 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1382 <    -755,  -755,   888,   889,   245,   890,   892,   893,   894,   895,
1383 <    -755,   896,   899,  -755,   902,   904,   -16,   907,   844,  -755,
1384 <    -755,  -755,  -755,   905,   906,  -755,   908,   911,   524,   912,
1385 <     914,   916,   917,   918,   790,   919,  -755,   920,   921,   922,
1386 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1387 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1388 <    -755,  -755,  -755,   -99,  -755,   -42,  -755,  -755,   923,   584,
1389 <    -755,  -755,   924,   851,   925,  -755,    57,  -755,  -755,  -755,
1390 <    -755,  -755,   926,   769,   927,  -755,  -755,  -755,  -755,  -755,
1391 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -171,  -755,
1392 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1393 <     733,   733,   733,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1394 <    -755,  -755,  -755,  -755,  -755,  -755,  -155,  -755,  -755,  -755,
1395 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1396 <     684,  -755,   747,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1397 <    -755,  -755,  -755,  -755,  -755,   -50,  -755,  -755,  -755,  -755,
1398 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,   -49,
1399 <    -755,   956,   796,   929,  -755,  -755,  -755,  -755,  -755,   930,
1400 <    -755,  -755,   932,  -755,  -755,  -755,  -755,   933,  -755,  -755,
1401 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,   -23,
1402 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1403 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1404 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,   -15,  -755,  -755,
1405 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1406 <    -755,  -755,  -755,  -755,  -755,  -755,     0,  -755,  -755,   943,
1407 <    -101,   936,   934,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1408 <    -755,  -755,  -755,  -755,  -755,    30,  -755,  -755,  -755,   -34,
1409 <    -755,  -755,  -755,  -755,     5,  -755,  -755,  -755,   245,  -755,
1410 <     -16,  -755,  -755,  -755,   954,   964,   971,  -755,   524,  -755,
1411 <     790,  -755,   584,   940,   941,   942,   297,  -755,  -755,   769,
1412 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1413 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1414 <    -755,  -755,    55,  -755,  -755,  -755,   297,  -755
1286 >   -1054,   723, -1054,  -205,  -214,  -204, -1054, -1054, -1054,  -188,
1287 >   -1054,  -183, -1054, -1054, -1054,  -180, -1054, -1054, -1054,  -175,
1288 >    -165, -1054,  -159, -1054,  -144, -1054, -1054, -1054, -1054, -1054,
1289 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1290 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1291 >   -1054,   294,   939,  -143,  -116,  -108,    21,  -107,   414,   -97,
1292 >     -96,   -72,    33,   -58,   -57,   -39,   985,   583,   -28,    15,
1293 >     -26,    11,   -23,  -156,  -150,    -8,     4,     3, -1054, -1054,
1294 >   -1054, -1054, -1054,    23,    50,    52,    60,    68,    69,    71,
1295 >      76,    85,    96,   104,   105,   106,   110,   272, -1054, -1054,
1296 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1297 >   -1054, -1054, -1054,   729,   578,    38, -1054,   112,    19, -1054,
1298 >   -1054,    81, -1054,   113,   114,   118,   121,   125,   128,   130,
1299 >     133,   135,   136,   138,   139,   142,   146,   147,   152,   156,
1300 >     157,   170,   173,   174,   175,   176,   178,   179,   180, -1054,
1301 >   -1054,   181,   183,   185,   186,   189,   203,   207,   209,   210,
1302 >     211,   212,   214,   219,   221,   222,   224,   225,   227,   229,
1303 >      55, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1304 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1305 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1306 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1307 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,   440,
1308 >      41,    67,    -7,   231,   235,     2, -1054, -1054, -1054,    26,
1309 >     386,    30, -1054,   236,   237,   238,   239,   242,   244,   245,
1310 >     247,   248,   143, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1311 >   -1054, -1054, -1054,    14,   249,   250,   251,   253,   257,   258,
1312 >     259,   260,   262,   265,   266,   267,   268,   276,   282,   283,
1313 >     285,   153, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1314 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1315 >      16,    58,   286,    34, -1054, -1054, -1054,   100,   193, -1054,
1316 >     287,    47, -1054, -1054,    62, -1054,   269,   339,   370,   292,
1317 >   -1054,   168,   403,   315,   420,   403,   403,   403,   424,   403,
1318 >     403,   425,   427,   430,   431,   311, -1054,   312,   310,   313,
1319 >     314, -1054,   316,   317,   318,   319,   320,   321,   322,   324,
1320 >     328,   331,   333,   230, -1054, -1054, -1054, -1054, -1054, -1054,
1321 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1322 >     347,   336,   345,   349,   352,   353,   356, -1054,   357,   359,
1323 >     360,   362,   363,   365,   367,   325, -1054, -1054, -1054, -1054,
1324 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1325 >   -1054, -1054,   368,   369,    29, -1054, -1054, -1054,   421,   350,
1326 >   -1054, -1054,   371,   372,    39, -1054, -1054, -1054,   392,   403,
1327 >     435,   403,   403,   395,   449,   403,   396,   500,   501,   505,
1328 >     404,   405,   407,   403,   510,   511,   512,   520,   403,   523,
1329 >     524,   526,   528,   432,   411,   413,   436,   403,   403,   438,
1330 >     443,   444,  -168,  -160,   445,   447,   448,   450,   529,   403,
1331 >     452,   403,   403,   454,   551,   437, -1054,   441,   433,   442,
1332 >   -1054,   456,   457,   458,   459,   460,    31, -1054, -1054, -1054,
1333 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054,   461,   462,    44,
1334 >   -1054, -1054, -1054,   453,   463,   465, -1054,   470, -1054,    10,
1335 >   -1054, -1054, -1054, -1054, -1054,   544,   546,   455, -1054,   474,
1336 >     472,   473,    28, -1054, -1054, -1054,   477,   475,   476, -1054,
1337 >     479,   481,   482,   485, -1054,   486,   489,   160, -1054, -1054,
1338 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,   495,
1339 >     498,   499,   502,    12, -1054, -1054, -1054, -1054,   467,   469,
1340 >     403,   550,   515,   604,   532,   534,   537,   504, -1054, -1054,
1341 >     631,   625,   539,   629,   645,   646,   633,   635,   638,   639,
1342 >     641,   649,   652,   656,   657,   662,   663,   558, -1054,   561,
1343 >     559, -1054,    20, -1054, -1054, -1054, -1054,   584,   567, -1054,
1344 >      13,   572,   575,   576,   579,   580,    18, -1054, -1054, -1054,
1345 >   -1054, -1054,   687,   586, -1054,   587,   588, -1054,   592,     7,
1346 >   -1054, -1054, -1054, -1054,   589,   596,   597, -1054,   598,   261,
1347 >     599,   601,   603,   605,   606,   612,   614,   615,   616,   617,
1348 >     618,   619,   622, -1054, -1054,   725,   744,   403,   621,   747,
1349 >     403,   748,   403,   708,   749,   750,   751,   403,   752,   752,
1350 >     632, -1054, -1054,   739,  -119,   740,   654,   742,   745,   637,
1351 >     753,   754,   762,   757,   760,   764,   765,   643, -1054,   770,
1352 >     772,   665, -1054,   667, -1054,   775,   776,   671, -1054,   675,
1353 >     681,   682,   685,   689,   693,   694,   697,   700,   702,   705,
1354 >     707,   713,   715,   716,   717,   720,   726,   727,   730,   731,
1355 >     732,   733,   737,   738,   741,   756,   602,   743,   746,   758,
1356 >     759,   763,   766,   767,   774,   777,   779,   780,   781,   782,
1357 >     783,   784,   788,   790,   791,   795,   797,   801, -1054, -1054,
1358 >     831,   768,   653,   845,   861,   850,   856,   857,   802, -1054,
1359 >     859,   863,   805, -1054, -1054,   866,   868,   761,   886,   806,
1360 >   -1054,   807,   811, -1054, -1054,   881,   884,   812, -1054, -1054,
1361 >     919,   833,   813,   921,   923,   924,   838,   817,   927,   928,
1362 >     823, -1054, -1054,   930,   931,   932,   827, -1054,   828,   829,
1363 >     830,   832,   834,   835,   836,   837,   839, -1054,   840,   841,
1364 >     842,   843,   844,   846,   847,   848,   849,   851,   852,   853,
1365 >     854,   855,   858,   860,   862, -1054, -1054,   937,   864,   865,
1366 >   -1054,   869, -1054,    94, -1054,   944,   951,   956,   962,   870,
1367 >   -1054,   871, -1054, -1054,   963,   872,   965,   873, -1054, -1054,
1368 >   -1054, -1054, -1054,   403,   403,   403,   403,   403,   403,   403,
1369 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1370 >   -1054, -1054, -1054, -1054, -1054,   874,   876,   877,   -29,   878,
1371 >     879,   880,   882,   883,   885,   887,   888,   889,   279,   890,
1372 >     891, -1054,   892,   893,   894,   895,   896,   897,   898,     6,
1373 >     899,   900,   901,   902,   903,   904,   905, -1054,   906,   907,
1374 >   -1054, -1054,   908,   909, -1054, -1054, -1054, -1054, -1054, -1054,
1375 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1376 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1377 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1378 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1379 >   -1054,  -176, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1380 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1381 >   -1054, -1054, -1054, -1054, -1054,  -158, -1054, -1054, -1054, -1054,
1382 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1383 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,   910,   911,
1384 >     608,   912,   913,   914,   915,   916, -1054,   917,   918, -1054,
1385 >     920,   922,   -33,   875,   925, -1054, -1054, -1054, -1054,   926,
1386 >     933, -1054,   934,   935,   493,   936,   938,   940,   941,   710,
1387 >     942,   943, -1054,   945,   946,   947, -1054, -1054, -1054, -1054,
1388 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1389 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1390 >   -1054, -1054, -1054,   948,   771, -1054, -1054,   949,   929,   950,
1391 >   -1054,    45, -1054, -1054, -1054, -1054,   952,   954,   955,   957,
1392 >   -1054, -1054,   958,   778,   959, -1054, -1054, -1054, -1054, -1054,
1393 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,  -149, -1054,
1394 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,   752,
1395 >     752,   752, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1396 >   -1054, -1054, -1054, -1054, -1054,  -124, -1054, -1054, -1054, -1054,
1397 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,   756,
1398 >   -1054,   602, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1399 >   -1054, -1054, -1054, -1054,   -50, -1054, -1054, -1054, -1054, -1054,
1400 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,   -12, -1054,
1401 >     982,   886,   960, -1054, -1054, -1054, -1054, -1054, -1054,   867,
1402 >   -1054,   961,   964, -1054, -1054,   966,   967, -1054, -1054,   968,
1403 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1404 >   -1054, -1054,   -10, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1405 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1406 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1407 >      -2, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1408 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,    66, -1054,
1409 >   -1054,   970,   -85,   953,   974, -1054, -1054, -1054, -1054, -1054,
1410 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1411 >   -1054,    80, -1054, -1054, -1054,   -29, -1054, -1054, -1054, -1054,
1412 >       6, -1054, -1054, -1054,   608, -1054,   -33, -1054, -1054, -1054,
1413 >     981,   984,  1019,  1021,  1024,  1025, -1054,   493, -1054,   710,
1414 >   -1054,   771,   975,   976,   977,   295, -1054, -1054,   778, -1054,
1415 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1416 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1417 >   -1054, -1054, -1054,    89, -1054, -1054, -1054,   295, -1054
1418   };
1419  
1420    /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
# Line 1410 | Line 1422 | static const yytype_int16 yypact[] =
1422       means the default is an error.  */
1423   static const yytype_uint16 yydefact[] =
1424   {
1425 <       2,     0,     1,     0,     0,     0,   223,   386,   434,     0,
1426 <     449,     0,   289,   425,   265,     0,   107,   147,   323,     0,
1427 <       0,   364,     0,     0,   340,     3,    23,    11,     4,    24,
1428 <       5,     6,     8,     9,    10,    13,    14,    15,    16,    17,
1429 <      18,    19,    20,    22,    21,     7,    12,    25,    26,     0,
1430 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1425 >       2,     0,     1,     0,     0,     0,   234,   395,   443,     0,
1426 >     458,     0,   298,   434,   274,     0,   100,   152,   332,     0,
1427 >       0,   373,     0,   109,     0,   349,     3,    23,    11,     4,
1428 >      24,    25,     5,     6,     8,     9,    10,    13,    14,    15,
1429 >      16,    17,    18,    19,    20,    22,    21,     7,    12,    26,
1430 >      27,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1431         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1432 <       0,     0,     0,     0,     0,    99,   100,   102,   101,   625,
1432 >       0,     0,     0,     0,     0,     0,     0,     0,    92,    93,
1433 >      95,    94,   632,     0,     0,     0,     0,     0,     0,     0,
1434 >       0,     0,     0,     0,     0,     0,     0,     0,   617,   631,
1435 >     620,   621,   622,   623,   624,   625,   626,   627,   628,   618,
1436 >     619,   629,   630,     0,     0,     0,   456,     0,     0,   454,
1437 >     455,     0,   517,     0,     0,     0,     0,     0,     0,     0,
1438         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1439 <       0,     0,     0,   612,   624,   614,   615,   616,   617,   613,
1440 <     618,   619,   620,   621,   622,   623,     0,     0,     0,   447,
1424 <       0,     0,   445,   446,     0,   510,     0,     0,     0,     0,
1439 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   587,
1440 >     561,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1441         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1442 +       0,   469,   470,   471,   515,   478,   516,   510,   511,   512,
1443 +     513,   509,   482,   472,   473,   474,   475,   476,   477,   479,
1444 +     480,   481,   483,   484,   514,   488,   489,   490,   491,   487,
1445 +     486,   492,   499,   500,   493,   494,   495,   485,   497,   507,
1446 +     508,   505,   506,   498,   496,   503,   504,   501,   502,     0,
1447 +       0,     0,     0,     0,     0,     0,    46,    47,    48,     0,
1448 +       0,     0,   659,     0,     0,     0,     0,     0,     0,     0,
1449 +       0,     0,     0,   649,   650,   651,   652,   653,   654,   655,
1450 +     657,   656,   658,     0,     0,     0,     0,     0,     0,     0,
1451         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1452 <       0,     0,     0,   582,     0,   557,     0,     0,     0,     0,
1452 >       0,     0,    54,    69,    66,    64,    70,    71,    65,    55,
1453 >      68,    58,    59,    60,    56,    67,    61,    62,    63,    57,
1454 >       0,     0,     0,     0,   124,   125,   126,     0,     0,   347,
1455 >       0,     0,   345,   346,     0,    96,     0,     0,     0,     0,
1456 >      91,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1457 >       0,     0,     0,     0,     0,     0,   616,     0,     0,     0,
1458 >       0,   268,     0,     0,     0,     0,     0,     0,     0,     0,
1459 >       0,     0,     0,     0,   237,   238,   241,   243,   244,   245,
1460 >     246,   247,   248,   249,   239,   240,   242,   250,   251,   252,
1461 >       0,     0,     0,     0,     0,     0,     0,   423,     0,     0,
1462 >       0,     0,     0,     0,     0,     0,   398,   399,   400,   401,
1463 >     402,   403,   404,   406,   405,   408,   412,   409,   410,   411,
1464 >     407,   449,     0,     0,     0,   446,   447,   448,     0,     0,
1465 >     453,   464,     0,     0,     0,   461,   462,   463,     0,     0,
1466         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1429       0,     0,     0,     0,     0,     0,   460,   507,   509,   501,
1430     502,   503,   504,   505,   500,   471,   461,   462,   463,   464,
1431     465,   466,   467,   468,   469,   470,   497,   472,   473,   506,
1432     475,   480,   481,   476,   478,   477,   491,   492,   479,   482,
1433     483,   484,   485,   474,   487,   488,   489,   508,   498,   499,
1434     496,   490,   486,   494,   495,   493,     0,     0,     0,     0,
1435       0,     0,     0,    45,    46,    47,     0,     0,     0,   649,
1436       0,     0,     0,     0,     0,     0,     0,     0,     0,   640,
1437     641,   642,   643,   644,   647,   645,   646,   648,     0,     0,
1467         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1439       0,     0,     0,     0,     0,     0,     0,    53,    68,    69,
1440      67,    64,    63,    70,    54,    66,    57,    58,    59,    55,
1441      65,    60,    61,    62,    56,     0,     0,     0,     0,   118,
1442     119,   120,     0,   338,     0,     0,   336,   337,     0,   103,
1443       0,     0,     0,     0,    98,     0,     0,     0,     0,     0,
1444       0,     0,     0,     0,     0,     0,     0,     0,   611,     0,
1445       0,     0,     0,   259,     0,     0,     0,     0,     0,     0,
1446       0,     0,     0,     0,     0,     0,     0,   226,   227,   230,
1447     232,   233,   234,   235,   236,   237,   238,   239,   228,   229,
1448     231,   240,   241,   242,     0,     0,     0,     0,     0,     0,
1449       0,   414,     0,     0,     0,     0,     0,     0,     0,     0,
1450     389,   390,   391,   392,   393,   394,   395,   397,   396,   399,
1451     403,   400,   401,   402,   398,   440,     0,     0,     0,   437,
1452     438,   439,     0,     0,   444,   455,     0,     0,     0,   452,
1453     453,   454,     0,     0,     0,     0,     0,     0,     0,     0,
1468         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1469         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1470 +       0,     0,     0,     0,     0,     0,   468,     0,     0,     0,
1471 +     315,     0,     0,     0,     0,     0,     0,   301,   302,   303,
1472 +     304,   309,   305,   306,   307,   308,   440,     0,     0,     0,
1473 +     437,   438,   439,     0,     0,     0,   276,     0,   286,     0,
1474 +     284,   285,   287,   288,    49,     0,     0,     0,    45,     0,
1475 +       0,     0,     0,   103,   104,   105,     0,     0,     0,   201,
1476 +       0,     0,     0,     0,   175,     0,     0,     0,   155,   156,
1477 +     157,   158,   159,   162,   163,   164,   161,   160,   165,     0,
1478 +       0,     0,     0,     0,   335,   336,   337,   338,     0,     0,
1479 +       0,     0,     0,     0,     0,     0,     0,     0,   648,    72,
1480         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1481 +       0,     0,     0,     0,     0,     0,     0,     0,    53,     0,
1482 +       0,   381,     0,   376,   377,   378,   127,     0,     0,   123,
1483 +       0,     0,     0,     0,     0,     0,     0,   112,   113,   115,
1484 +     114,   116,     0,     0,   344,     0,     0,   359,     0,     0,
1485 +     352,   353,   354,   355,     0,     0,     0,    90,     0,    28,
1486         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1487 <       0,     0,   459,     0,     0,     0,   306,     0,     0,     0,
1459 <       0,     0,     0,   292,   293,   294,   295,   300,   296,   297,
1460 <     298,   299,   431,     0,     0,     0,   428,   429,   430,     0,
1461 <       0,     0,   267,     0,   277,     0,   275,   276,   278,   279,
1462 <      48,     0,     0,     0,    44,     0,     0,     0,     0,   110,
1463 <     111,   112,     0,     0,     0,   195,     0,     0,     0,     0,
1464 <       0,   170,     0,     0,   150,   151,   152,   153,   156,   157,
1465 <     158,   159,   155,   154,   160,     0,     0,     0,     0,     0,
1466 <     326,   327,   328,   329,     0,     0,     0,     0,     0,     0,
1467 <       0,     0,     0,   639,    71,     0,     0,     0,     0,     0,
1487 >       0,     0,     0,   615,   253,     0,     0,     0,     0,     0,
1488         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1489 <       0,     0,     0,    52,     0,     0,   372,     0,   367,   368,
1490 <     369,   121,     0,     0,   117,     0,     0,     0,   335,     0,
1491 <       0,   350,     0,     0,   343,   344,   345,   346,     0,     0,
1472 <       0,    97,     0,     0,     0,     0,    27,     0,     0,     0,
1473 <       0,     0,     0,     0,     0,   610,   243,     0,     0,     0,
1489 >       0,   236,   413,     0,     0,     0,     0,     0,     0,     0,
1490 >       0,     0,     0,     0,     0,     0,     0,     0,   397,     0,
1491 >       0,     0,   445,     0,   452,     0,     0,     0,   460,     0,
1492         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1475       0,     0,     0,     0,   225,   404,     0,     0,     0,     0,
1493         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1477       0,   388,     0,     0,     0,   436,     0,   443,     0,     0,
1478       0,   451,     0,     0,     0,     0,     0,     0,     0,     0,
1494         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1495         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1496 +       0,     0,     0,     0,     0,     0,     0,     0,   467,   310,
1497 +       0,     0,     0,     0,     0,     0,     0,     0,     0,   300,
1498 +       0,     0,     0,   436,   289,     0,     0,     0,     0,     0,
1499 +     283,     0,     0,    44,   106,     0,     0,     0,   102,   166,
1500         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1501 +       0,   154,   339,     0,     0,     0,     0,   334,     0,     0,
1502 +       0,     0,     0,     0,     0,     0,     0,   647,     0,     0,
1503         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1504 <       0,     0,     0,   458,   301,     0,     0,     0,     0,     0,
1505 <       0,     0,     0,     0,   291,     0,     0,     0,   427,   280,
1506 <       0,     0,     0,     0,     0,   274,     0,     0,    43,   113,
1507 <       0,     0,     0,   109,   161,     0,     0,     0,     0,     0,
1508 <       0,     0,     0,     0,     0,     0,   149,   330,     0,     0,
1509 <       0,     0,   325,     0,     0,     0,     0,     0,     0,     0,
1510 <       0,   638,     0,     0,     0,     0,     0,     0,     0,     0,
1511 <       0,     0,     0,     0,     0,    76,    77,     0,    75,    80,
1512 <      81,     0,    79,     0,     0,    51,   370,     0,     0,     0,
1513 <     366,     0,   116,     0,     0,   334,   347,     0,     0,     0,
1514 <       0,   342,   106,   105,   104,   633,   632,   626,   636,    27,
1515 <      27,    27,    27,    27,    27,    27,    29,    28,   637,   627,
1516 <     628,   631,   630,   629,   634,   635,     0,     0,     0,     0,
1517 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1518 <      37,     0,     0,   224,     0,     0,     0,     0,     0,     0,
1519 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   387,
1520 <       0,     0,   435,   448,     0,     0,   450,   523,   527,   542,
1521 <     512,   609,   555,   549,   552,   522,   514,   513,   516,   517,
1522 <     515,   530,   520,   521,   531,   519,   526,   525,   524,   550,
1523 <     511,   607,   608,   546,   592,   586,   603,   587,   588,   589,
1524 <     597,   606,   590,   600,   604,   593,   605,   598,   594,   599,
1525 <     591,   602,   596,   595,   601,     0,   585,   548,   566,   561,
1526 <     578,   562,   563,   564,   572,   581,   565,   575,   579,   568,
1527 <     580,   573,   569,   574,   567,   577,   571,   570,   576,     0,
1528 <     560,   543,   541,   544,   554,   545,   533,   539,   540,   537,
1529 <     538,   534,   535,   536,   553,   556,   518,   547,   529,   528,
1530 <     551,   532,     0,     0,     0,     0,     0,     0,     0,     0,
1531 <     290,     0,     0,   426,     0,     0,     0,   285,   281,   284,
1532 <     266,    49,    50,     0,     0,   108,     0,     0,     0,     0,
1533 <       0,     0,     0,     0,     0,     0,   148,     0,     0,     0,
1534 <     324,   651,   650,   656,   654,   657,   652,   653,   655,    88,
1535 <      96,    87,    94,    95,    86,    90,    89,    83,    82,    84,
1536 <      93,    85,    72,     0,    73,     0,    91,    92,     0,     0,
1537 <     365,   122,     0,     0,     0,   134,     0,   126,   127,   129,
1538 <     128,   339,     0,     0,     0,   341,    30,    31,    32,    33,
1539 <      34,    35,    36,   254,   255,   247,   264,   263,     0,   262,
1540 <     249,   251,   258,   250,   248,   257,   244,   256,   246,   245,
1541 <      37,    37,    37,    39,    38,   252,   253,   409,   412,   413,
1542 <     423,   420,   406,   421,   418,   419,     0,   417,   422,   405,
1543 <     411,   408,   410,   424,   407,   441,   442,   456,   457,   583,
1544 <       0,   558,     0,   304,   305,   314,   311,   316,   312,   313,
1545 <     319,   315,   317,   310,   318,     0,   309,   303,   322,   321,
1546 <     320,   302,   433,   432,   288,   287,   272,   273,   271,     0,
1547 <     270,     0,     0,     0,   114,   115,   169,   165,   215,   202,
1548 <     212,   211,   200,   205,   222,   214,   220,   204,   207,   217,
1549 <     219,   216,   213,   221,   208,   210,   218,   206,   209,     0,
1550 <     198,   162,   164,   166,   167,   168,   179,   174,   191,   175,
1551 <     176,   177,   185,   194,   178,   188,   192,   181,   193,   186,
1552 <     182,   187,   180,   190,   184,   183,   189,     0,   173,   163,
1553 <     333,   331,   332,    74,    78,   371,   376,   382,   385,   378,
1554 <     384,   379,   383,   381,   377,   380,     0,   375,   130,     0,
1555 <       0,     0,     0,   125,   348,   354,   360,   363,   356,   362,
1556 <     357,   361,   359,   355,   358,     0,   353,   349,   260,     0,
1536 <      40,    41,    42,   415,     0,   584,   559,   307,     0,   268,
1537 <       0,   286,   283,   282,     0,     0,     0,   196,     0,   171,
1538 <       0,   373,     0,     0,     0,     0,     0,   124,   351,     0,
1539 <     261,   416,   308,   269,   201,   199,   203,   197,   172,   374,
1540 <     131,   133,   132,   140,   145,   144,   139,   142,   146,   143,
1541 <     138,   141,     0,   137,   352,   135,     0,   136
1504 >       0,     0,     0,     0,     0,    52,   379,     0,     0,     0,
1505 >     375,     0,   122,     0,   117,     0,     0,     0,     0,     0,
1506 >     111,     0,   343,   356,     0,     0,     0,     0,   351,    99,
1507 >      98,    97,   645,    28,    28,    28,    28,    28,    28,    28,
1508 >      30,    29,   646,   633,   634,   635,   636,   637,   638,   639,
1509 >     640,   643,   644,   641,   642,     0,     0,     0,     0,     0,
1510 >       0,     0,     0,     0,     0,     0,     0,     0,    38,     0,
1511 >       0,   235,     0,     0,     0,     0,     0,     0,     0,     0,
1512 >       0,     0,     0,     0,     0,     0,     0,   396,     0,     0,
1513 >     444,   457,     0,     0,   459,   531,   535,   518,   519,   550,
1514 >     522,   613,   614,   558,   523,   524,   555,   530,   529,   538,
1515 >     528,   525,   526,   534,   533,   532,   556,   520,   611,   612,
1516 >     554,   597,   591,   607,   592,   593,   594,   602,   610,   595,
1517 >     604,   608,   598,   609,   599,   603,   596,   606,   601,   600,
1518 >     605,     0,   590,   570,   571,   572,   565,   583,   566,   567,
1519 >     568,   578,   586,   569,   580,   584,   574,   585,   575,   579,
1520 >     573,   582,   577,   576,   581,     0,   564,   551,   549,   552,
1521 >     557,   553,   540,   547,   548,   545,   546,   541,   542,   543,
1522 >     544,   559,   560,   527,   537,   536,   539,   521,     0,     0,
1523 >       0,     0,     0,     0,     0,     0,   299,     0,     0,   435,
1524 >       0,     0,     0,   294,   290,   293,   275,    50,    51,     0,
1525 >       0,   101,     0,     0,     0,     0,     0,     0,     0,     0,
1526 >       0,     0,   153,     0,     0,     0,   333,   663,   660,   661,
1527 >     662,   667,   666,   668,   664,   665,    86,    81,    89,    80,
1528 >      87,    88,    79,    83,    82,    74,    73,    78,    75,    77,
1529 >      76,    84,    85,     0,     0,   374,   128,     0,     0,     0,
1530 >     140,     0,   132,   133,   135,   134,     0,     0,     0,     0,
1531 >     110,   348,     0,     0,     0,   350,    31,    32,    33,    34,
1532 >      35,    36,    37,   263,   264,   258,   273,   272,     0,   271,
1533 >     259,   267,   260,   266,   254,   265,   257,   256,   255,    38,
1534 >      38,    38,    40,    39,   261,   262,   418,   421,   422,   432,
1535 >     429,   415,   430,   427,   428,     0,   426,   431,   414,   420,
1536 >     417,   419,   433,   416,   450,   451,   465,   466,   588,     0,
1537 >     562,     0,   313,   314,   324,   320,   321,   323,   328,   325,
1538 >     326,   319,   327,   322,     0,   318,   312,   331,   330,   329,
1539 >     311,   442,   441,   297,   296,   281,   282,   280,     0,   279,
1540 >       0,     0,     0,   107,   108,   174,   171,   221,   233,   208,
1541 >     217,     0,   206,   211,   227,     0,   220,   225,   231,   210,
1542 >     213,   222,   224,   228,   218,   226,   214,   232,   216,   223,
1543 >     212,   215,     0,   204,   167,   169,   172,   173,   184,   185,
1544 >     186,   179,   197,   180,   181,   182,   192,   200,   183,   194,
1545 >     198,   188,   199,   189,   193,   187,   196,   191,   190,   195,
1546 >       0,   178,   168,   170,   342,   340,   341,   380,   385,   391,
1547 >     394,   387,   393,   388,   392,   390,   386,   389,     0,   384,
1548 >     136,     0,     0,     0,     0,   131,   119,   118,   120,   121,
1549 >     357,   363,   369,   372,   365,   371,   366,   370,   368,   364,
1550 >     367,     0,   362,   358,   269,     0,    41,    42,    43,   424,
1551 >       0,   589,   563,   316,     0,   277,     0,   295,   292,   291,
1552 >       0,     0,     0,     0,     0,     0,   202,     0,   176,     0,
1553 >     382,     0,     0,     0,     0,     0,   130,   360,     0,   270,
1554 >     425,   317,   278,   207,   230,   205,   229,   219,   209,   203,
1555 >     177,   383,   137,   139,   138,   150,   149,   145,   147,   151,
1556 >     148,   144,   146,     0,   143,   361,   141,     0,   142
1557   };
1558  
1559    /* YYPGOTO[NTERM-NUM].  */
1560   static const yytype_int16 yypgoto[] =
1561   {
1562 <    -755,  -755,  -755,  -298,  -307,  -754,  -621,  -755,  -755,   935,
1563 <    -755,  -755,  -755,  -755,   619,  -755,  -755,  -755,   107,  -755,
1564 <      93,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1565 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  1051,  -755,
1566 <    -755,  -755,  -755,  -755,  -755,   630,  -755,  -755,  -755,  -755,
1567 <     937,  -755,  -755,  -755,  -755,    91,  -755,  -755,  -755,  -755,
1568 <    -755,  -152,  -755,  -755,  -755,   623,  -755,  -755,  -755,  -755,
1569 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -113,  -755,  -755,
1570 <    -755,  -108,  -755,  -755,  -755,   806,  -755,  -755,  -755,  -755,
1571 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1572 <    -755,  -755,  -755,  -755,   -77,  -755,  -755,  -755,  -755,  -755,
1573 <     -82,  -755,   678,  -755,  -755,  -755,    28,  -755,  -755,  -755,
1574 <    -755,  -755,   708,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1575 <     -79,  -755,  -755,  -755,  -755,  -755,  -755,   643,  -755,  -755,
1576 <    -755,  -755,  -755,   938,  -755,  -755,  -755,  -755,   588,  -755,
1577 <    -755,  -755,  -755,  -755,   -86,  -755,  -755,  -755,   609,  -755,
1578 <    -755,  -755,  -755,   -78,  -755,  -755,  -755,   808,  -755,  -755,
1579 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,   -56,
1580 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,   700,  -755,
1581 <    -755,  -755,  -755,  -755,   798,  -755,  -755,  -755,  -755,  1068,
1582 <    -755,  -755,  -755,  -755,   799,  -755,  -755,  -755,  -755,  1015,
1583 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1584 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1585 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1586 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1587 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,    80,  -755,  -755,
1588 <    -755,    83,  -755,  -755,  -755,  -755,  -755,  1089,  -755,  -755,
1589 <    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1590 <    -755,  -755,   946,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1591 <    -755
1562 >   -1054, -1054, -1054,  -394,  -310, -1053,  -638, -1054, -1054,   969,
1563 >   -1054, -1054, -1054, -1054,   792, -1054, -1054, -1054, -1054, -1054,
1564 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1565 >   -1054, -1054, -1054, -1054,  1037, -1054, -1054, -1054, -1054, -1054,
1566 >   -1054,   594, -1054, -1054, -1054, -1054, -1054,   565, -1054, -1054,
1567 >   -1054, -1054, -1054, -1054,   971, -1054, -1054, -1054, -1054,   107,
1568 >   -1054, -1054, -1054, -1054, -1054,  -219, -1054, -1054, -1054,   640,
1569 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1570 >   -1054,  -118, -1054, -1054, -1054,  -117, -1054, -1054, -1054,   824,
1571 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1572 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054,   -86, -1054, -1054,
1573 >   -1054, -1054, -1054,   -92, -1054,   691, -1054, -1054, -1054,    40,
1574 >   -1054, -1054, -1054, -1054, -1054,   734, -1054, -1054, -1054, -1054,
1575 >   -1054, -1054, -1054,   -83, -1054, -1054, -1054, -1054, -1054, -1054,
1576 >     659, -1054, -1054, -1054, -1054, -1054,   972, -1054, -1054, -1054,
1577 >   -1054,   609, -1054, -1054, -1054, -1054, -1054,   -95, -1054, -1054,
1578 >   -1054,   623, -1054, -1054, -1054, -1054,   -84, -1054, -1054, -1054,
1579 >     973, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1580 >   -1054, -1054,   -62, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1581 >   -1054,   735, -1054, -1054, -1054, -1054, -1054,   815, -1054, -1054,
1582 >   -1054, -1054,  1092, -1054, -1054, -1054, -1054,   808, -1054, -1054,
1583 >   -1054, -1054,  1041, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1584 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1585 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1586 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1587 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054,    92, -1054, -1054,
1588 >   -1054,    97, -1054, -1054, -1054, -1054, -1054, -1054,  1118, -1054,
1589 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1590 >   -1054, -1054, -1054, -1054, -1054,   978, -1054, -1054, -1054, -1054,
1591 >   -1054, -1054, -1054, -1054, -1054
1592   };
1593  
1594    /* YYDEFGOTO[NTERM-NUM].  */
1595   static const yytype_int16 yydefgoto[] =
1596   {
1597 <      -1,     1,    25,   816,   817,  1073,  1074,    26,   222,   223,
1598 <     224,   225,    27,   266,   267,   268,   269,   777,   778,   781,
1599 <     782,   270,   271,   272,   273,   274,   275,   276,   277,   278,
1600 <     279,   280,   281,   282,   283,   284,    28,    74,    75,    76,
1601 <      77,    78,    29,    61,   498,   499,   500,   501,    30,   288,
1602 <     289,   290,   291,   292,  1036,  1037,  1038,  1039,  1040,  1211,
1603 <    1282,  1283,    31,    62,   513,   514,   515,   516,   517,   518,
1604 <     519,   520,   521,   522,   523,   743,  1187,  1188,   524,   737,
1605 <    1159,  1160,    32,    51,   336,   337,   338,   339,   340,   341,
1606 <     342,   343,   344,   345,   346,   347,   348,   349,   350,   351,
1607 <     352,   353,   610,  1058,  1059,    33,    59,   484,   722,  1129,
1608 <    1130,   485,   486,   487,  1133,   978,   979,   488,   489,    34,
1609 <      57,   462,   463,   464,   465,   466,   467,   468,   707,  1115,
1610 <    1116,   469,   470,   471,    35,    63,   529,   530,   531,   532,
1611 <     533,    36,   295,   296,   297,    37,    69,   583,   584,   585,
1612 <     586,   587,   798,  1225,  1226,    38,    66,   567,   568,   569,
1613 <     570,   788,  1206,  1207,    39,    52,   369,   370,   371,   372,
1614 <     373,   374,   375,   376,   377,   378,   379,   632,  1086,  1087,
1615 <     380,   381,   382,   383,   384,    40,    58,   475,   476,   477,
1616 <     478,    41,    53,   388,   389,   390,   391,    42,   111,   112,
1617 <     113,    43,    55,   398,   399,   400,   401,    44,   165,   166,
1618 <     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1619 <     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1620 <     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1621 <     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1622 <     207,   208,   209,   210,   211,   431,   939,   940,   212,   429,
1623 <     915,   916,   213,   214,   215,    45,    92,    93,    94,    95,
1624 <      96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1625 <      46,   238,   239,   240,   241,   242,   243,   244,   245,   246,
1626 <     247
1597 >      -1,     1,    26,   830,   831,  1092,  1093,    27,   225,   226,
1598 >     227,   228,    28,   271,   272,   273,   274,   275,   276,   277,
1599 >     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
1600 >     288,   289,    29,    77,    78,    79,    80,    81,    30,    63,
1601 >     502,   503,   504,   505,    31,    70,   586,   587,   588,   589,
1602 >     590,   591,    32,   293,   294,   295,   296,   297,  1051,  1052,
1603 >    1053,  1054,  1055,  1233,  1313,  1314,    33,    64,   517,   518,
1604 >     519,   520,   521,   522,   523,   524,   525,   526,   527,   757,
1605 >    1210,  1211,   528,   752,  1182,  1183,    34,    53,   343,   344,
1606 >     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1607 >     355,   356,   357,   358,   359,   628,  1078,  1079,    35,    61,
1608 >     488,   737,  1148,  1149,   489,   490,   491,  1152,   994,   995,
1609 >     492,   493,    36,    59,   466,   467,   468,   469,   470,   471,
1610 >     472,   722,  1134,  1135,   473,   474,   475,    37,    65,   533,
1611 >     534,   535,   536,   537,    38,   301,   302,   303,    39,    72,
1612 >     599,   600,   601,   602,   603,   815,  1251,  1252,    40,    68,
1613 >     572,   573,   574,   575,   798,  1228,  1229,    41,    54,   375,
1614 >     376,   377,   378,   379,   380,   381,   382,   383,   384,   385,
1615 >     649,  1105,  1106,   386,   387,   388,   389,   390,    42,    60,
1616 >     479,   480,   481,   482,    43,    55,   394,   395,   396,   397,
1617 >      44,   118,   119,   120,    45,    57,   404,   405,   406,   407,
1618 >      46,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1619 >     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1620 >     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1621 >     199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1622 >     209,   210,   211,   212,   213,   435,   955,   956,   214,   434,
1623 >     931,   932,   215,   216,   217,   218,    47,    97,    98,    99,
1624 >     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1625 >     110,   111,   112,    48,   242,   243,   244,   245,   246,   247,
1626 >     248,   249,   250,   251,   252
1627   };
1628  
1629    /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
# Line 1616 | Line 1631 | static const yytype_int16 yydefgoto[] =
1631       number is the opposite.  If YYTABLE_NINF, syntax error.  */
1632   static const yytype_int16 yytable[] =
1633   {
1634 <     841,   842,   597,   598,   599,   564,    49,   840,    70,   472,
1635 <     248,   109,   525,  1084,    79,   502,   229,  1056,  1022,   495,
1636 <     286,    50,  1023,   495,   293,   219,   479,  1032,   579,    47,
1637 <      48,   503,    71,  1126,   249,    80,    81,   395,  1024,    72,
1638 <     286,    82,  1025,    54,   230,    56,   526,   504,   525,   395,
1639 <      60,   472,   231,  1099,   293,  1101,  1228,  1100,  1032,  1102,
1640 <    1229,    64,   385,   579,   232,   233,   250,   234,   235,   236,
1641 <     385,   110,  1233,   251,   564,    65,  1234,   505,    83,    84,
1642 <     219,   480,   526,    67,    85,    86,   481,   527,   482,   237,
1643 <    1057,    87,    88,    89,   496,   252,   653,   654,   496,   253,
1644 <     775,   776,   565,  1254,   661,    73,    68,   254,   665,   115,
1645 <     255,   256,   506,   670,   116,   117,   673,    90,    91,   220,
1646 <     118,   294,   386,   527,  1033,   580,   683,   684,   119,   120,
1647 <     386,   109,   507,   473,   396,   121,   528,   696,   122,   123,
1648 <     699,   700,   257,   221,   124,   106,   396,   483,   508,   125,
1649 <     126,   294,   127,   128,   129,  1033,   130,   779,   780,   258,
1650 <     580,   397,   259,   131,   453,   509,   510,   132,   133,  1127,
1651 <     107,   565,   528,   397,   220,   473,   134,  1237,  1239,  1128,
1652 <     454,  1238,  1240,   108,   114,   135,   387,   260,   497,  -123,
1653 <     216,   110,   497,   136,   387,   137,   455,   138,   221,   139,
1654 <    1085,   140,   141,   217,  1247,   261,   262,   263,  1248,  -123,
1655 <     218,   226,  1249,   299,   142,   511,  1250,  1034,   227,   143,
1656 <     144,   145,   566,   146,   147,   148,   456,  1251,   149,   300,
1657 <     474,  1252,   264,   265,   760,   303,   512,   562,   393,   751,
1658 <     287,   317,   745,   542,  1035,   581,   732,   573,  1034,   582,
1659 <     228,   577,   493,   724,   150,   800,   490,  1258,  1105,   319,
1660 <     287,  1259,   151,   152,   153,   154,   155,   156,   688,   285,
1661 <     298,   689,   474,   320,   321,  1035,   650,   322,   717,  1106,
1662 <     581,   457,  1285,    70,   582,  1212,  1286,   544,  1107,   458,
1663 <     459,   566,   571,   479,   301,   157,   302,   644,  1070,  1071,
1664 <    1072,   789,   828,   845,   846,   690,   832,    71,   691,   835,
1665 <     460,   305,   306,   839,    72,  1108,  1230,  1231,  1232,   158,
1666 <     159,   323,   160,   161,   162,   575,   307,   354,   163,   355,
1667 <     308,   356,   309,   164,   310,   311,   451,  1273,   588,   324,
1668 <     325,   326,   327,   357,  1109,  1110,   328,   312,   480,   313,
1669 <     329,   314,  1111,   481,   453,   482,   330,   315,   316,   358,
1670 <     592,   392,   402,   403,  1274,   404,  1275,   331,   332,   405,
1671 <     454,   406,   407,   408,   409,   596,   410,  1112,   411,   333,
1672 <      73,   412,   359,   413,   360,   461,   455,   414,   415,   361,
1673 <     416,   713,   417,  1113,   418,   419,   420,   840,   421,   362,
1674 <     422,   334,   809,   810,   811,   812,   813,   814,   815,   248,
1675 <     423,  1276,   424,   425,   483,   115,   456,   426,   427,   428,
1676 <     116,   117,   430,   432,   363,   433,   118,   434,  1277,   435,
1677 <     436,   437,   438,   249,   119,   120,   439,   440,   441,   442,
1678 <     335,   121,   443,   444,   122,   123,   445,   446,   364,   447,
1679 <     124,   448,   449,   450,  1114,   125,   126,   491,   127,   128,
1680 <     129,   492,   130,  1278,  1279,   250,   534,   535,   365,   131,
1681 <     536,   457,   251,   132,   133,   589,   537,   366,   538,   458,
1682 <     459,   539,   134,   540,   541,   545,   623,   546,   590,   547,
1683 <     548,   135,   549,   550,   252,   551,   552,   591,   253,   136,
1684 <     460,   137,   553,   138,   229,   139,   254,   140,   141,   255,
1685 <     256,  1046,  1047,  1048,  1049,  1050,  1051,  1052,   554,  1280,
1686 <     142,   555,   367,  1281,   556,   143,   144,   145,  1138,   146,
1687 <     147,   148,   230,   557,   149,   558,   559,   560,   561,   572,
1688 <     231,   257,  1139,   576,   593,   594,   595,   502,   596,   368,
1689 <    1140,   600,   232,   233,   640,   234,   235,   236,   258,   601,
1690 <     150,   259,   602,   503,  1141,   603,   604,   605,   151,   152,
1691 <     153,   154,   155,   156,   606,   461,   607,   237,   354,   504,
1692 <     355,   608,   356,   646,   609,   652,   260,   611,   612,  1255,
1693 <     613,  1142,   614,  1143,   357,   656,   615,   616,   617,   618,
1694 <     619,   157,   620,   621,   261,   262,   263,   622,   625,   505,
1695 <     358,   655,   626,   627,   628,   629,   630,   631,   633,  1144,
1696 <     634,   635,   636,   637,   638,   158,   159,   639,   160,   161,
1697 <     162,   264,   265,   359,   163,   360,   642,   643,   647,   164,
1698 <     361,   657,   648,   649,   506,   658,   659,   660,   663,   662,
1699 <     362,   664,  1145,  1196,  1146,   666,   667,   668,   669,   671,
1700 <     672,   674,   675,   676,   507,   677,   678,   680,   682,   685,
1701 <     765,   679,   681,  1147,   686,   363,   687,   692,   693,   694,
1702 <     508,   695,   697,   698,   701,   702,   726,   727,   703,   704,
1703 <     756,  1148,   762,   705,   764,   706,  1149,   509,   510,   364,
1704 <    1150,   708,   766,   753,   754,  1151,   709,   710,  1152,   711,
1705 <     712,   715,   716,  1153,   720,  1197,   719,     2,     3,   365,
1706 <     721,     4,   723,   728,   319,   729,   767,  1154,   366,   730,
1707 <    1155,     5,  1156,   894,     6,     7,   731,   734,   320,   321,
1708 <     747,     8,   322,  1157,  1198,   735,   736,   511,   738,   739,
1709 <    1158,  1199,     9,   761,   755,    10,    11,   740,   741,   742,
1710 <    1200,   744,   748,   749,   750,   768,   757,   769,   512,   758,
1711 <     759,   763,   770,   367,   771,   772,   773,   774,   783,    12,
1712 <     784,   794,   826,   791,    13,   827,   323,  1201,   830,  1202,
1713 <    1203,   831,    14,   785,   793,   786,   918,   792,   833,   834,
1714 <     368,   795,   787,  1204,   324,   325,   326,   327,   796,   797,
1715 <    1205,   328,   799,    15,    16,   329,   802,   803,   804,   805,
1716 <     806,   330,   807,   808,   818,   819,   820,   821,   822,   823,
1717 <     836,    17,   331,   332,   824,   825,   829,   837,  1215,  1166,
1718 <     838,   840,   843,   844,   333,   895,   896,   897,    18,   898,
1719 <     899,   847,   900,   901,   849,   902,   848,   903,   850,   851,
1720 <     904,    19,    20,   905,   906,   907,   334,   908,   852,   853,
1721 <     854,   855,   909,   856,   857,   858,   910,   911,   912,   860,
1722 <     859,    21,   861,   862,   864,   563,   913,   863,   865,   866,
1723 <     867,   914,   868,   869,    22,   963,   870,   871,   872,   873,
1724 <    1216,   966,   874,    23,   977,   335,   875,    24,   919,   920,
1725 <     921,   962,   922,   923,   876,   924,   925,   965,   926,   877,
1726 <     927,   878,   879,   928,   880,   881,   929,   930,   931,  1217,
1727 <     932,   882,   883,   884,   967,   933,  1218,   885,   886,   934,
1728 <     935,   936,   887,   888,   964,  1219,   889,   968,   890,   937,
1729 <     969,  1167,  1168,  1169,   938,  1170,  1171,   891,  1172,  1173,
1730 <     971,  1174,   972,  1175,    79,   892,  1176,   893,   917,  1177,
1731 <    1178,  1179,  1220,  1180,  1221,  1222,   941,   974,  1181,   975,
1732 <     942,   943,  1182,  1183,  1184,    80,    81,   944,  1223,   983,
1733 <     945,    82,  1185,   946,   947,  1224,   984,  1186,   948,   949,
1734 <     950,   951,   952,   953,   954,   955,   956,   957,   958,   959,
1735 <     960,   961,   970,   973,   986,   987,   980,   976,   981,   982,
1736 <     989,   990,   985,   991,   992,   993,   995,   988,    83,    84,
1737 <     994,   996,   997,   998,    85,    86,   999,  1000,  1028,  1001,
1738 <    1002,    87,    88,    89,  1003,  1004,  1005,  1006,  1007,  1008,
1739 <    1009,  1042,  1010,  1011,  1044,  1012,  1013,  1014,  1015,  1016,
1740 <    1017,  1018,  1019,  1020,  1241,  1021,  1253,    90,    91,  1026,
1741 <    1027,  1029,  1030,  1031,  1041,  1132,  1045,  1053,  1043,  1054,
1742 <    1055,  1209,  1060,  1264,  1061,  1062,  1063,  1064,  1065,  1066,
1743 <    1067,  1068,  1069,  1265,  1075,  1076,  1077,  1078,  1079,  1080,
1744 <    1266,  1081,  1082,  1083,  1088,  1089,  1090,  1091,  1092,  1093,
1745 <    1094,  1095,  1096,  1097,  1098,  1103,  1104,  1117,  1194,  1118,
1746 <    1119,  1120,  1121,  1122,  1131,   304,  1123,  1213,   733,  1124,
1747 <    1193,  1125,  1134,  1135,  1287,  1136,   746,  1268,  1137,  1161,
1748 <    1267,  1162,   624,  1163,  1164,  1165,  1189,  1190,  1191,  1192,
1749 <    1195,  1208,  1260,  1214,  1227,  1210,  1243,   494,  1263,  1262,
1750 <    1242,  1257,  1244,   725,  1245,  1246,  1256,  1270,  1271,  1272,
1751 <     714,   801,   752,  1284,  1269,   718,   790,   641,  1261,   394,
1752 <     452,   318,  1236,  1235,   543,     0,   645,     0,     0,     0,
1753 <       0,     0,     0,     0,     0,     0,     0,   651,     0,     0,
1634 >     859,   860,   610,   222,    73,   613,   614,   615,   595,   617,
1635 >     618,   483,   299,   529,  1103,  1145,   291,   569,    51,   581,
1636 >     116,   569,   116,  1076,   858,    49,    50,   499,    52,   499,
1637 >     391,   529,   457,    74,   222,   291,  1256,  1257,  1258,   391,
1638 >     401,    75,   476,   703,    56,   476,  1047,   704,   299,    58,
1639 >     458,   705,    62,   530,  1118,   706,   122,    66,  1119,   863,
1640 >     864,   123,   124,   595,   125,   126,   484,    67,   483,   127,
1641 >     459,   530,  1120,    69,   305,   485,  1121,   486,   128,   129,
1642 >     130,  1254,   401,   306,   117,  1255,   117,   131,    71,   113,
1643 >     132,   133,   134,   531,   392,  1047,  1077,   135,   460,   670,
1644 >     223,   672,   673,   392,    76,   676,  1259,   500,   596,   500,
1645 >    1260,   531,   300,   684,   136,   137,   114,   570,   689,   582,
1646 >    1283,   570,   224,   484,   115,   121,   138,   698,   699,   139,
1647 >     140,   223,   485,   487,   486,   219,   220,   141,   532,   712,
1648 >     402,   714,   715,   142,   232,   143,  1048,   144,   300,   145,
1649 >     461,   146,   147,   224,   253,   393,   532,  1146,   462,   463,
1650 >     221,   506,   148,   596,   393,   403,  1147,   477,   149,   150,
1651 >     477,   151,   152,   153,   229,   230,   154,   233,   464,   507,
1652 >    1263,   254,   402,   255,  1264,   583,   234,   235,   236,  -129,
1653 >     487,   237,   238,   231,   581,  1048,   239,   240,   241,   508,
1654 >     501,   155,   501,   584,   290,  1104,   298,   403,  -129,   304,
1655 >     256,   156,   157,   158,   159,   160,   161,   162,  1265,   585,
1656 >    1276,   257,  1266,   494,  1277,   307,   597,   509,  1278,   598,
1657 >     770,   327,  1279,   497,   309,   571,   292,   308,   817,   571,
1658 >    1049,   739,   258,   766,   549,   803,   259,   328,   329,   809,
1659 >     399,   799,   330,   465,   260,   292,   311,   261,   262,   747,
1660 >     661,   510,   728,   478,  1050,   578,   478,   163,   164,   165,
1661 >     667,   166,   167,    82,   580,   732,  1234,   608,   593,   511,
1662 >     168,   597,   169,   312,   598,   313,   455,   263,   576,  1049,
1663 >    1089,  1090,  1091,   314,   582,    73,  1280,   331,    83,    84,
1664 >    1281,   315,   316,   264,   317,    85,   265,   266,   267,   318,
1665 >    1287,   512,   513,  1050,  1288,   332,   333,   847,   319,  1316,
1666 >     850,   334,   852,  1317,    74,   335,   360,   857,   361,   320,
1667 >     362,   336,    75,    86,    87,    88,    89,   321,   322,   323,
1668 >     337,   338,   339,   324,   363,   398,   408,   409,    90,    91,
1669 >      92,   410,   340,   268,   411,    93,    94,    95,   412,    96,
1670 >     583,   413,   514,   414,   364,  1305,   415,  1306,   416,   417,
1671 >     609,   418,   419,   341,   547,   420,   269,   270,   584,   421,
1672 >     422,   365,   515,   366,   567,   423,   516,   506,   858,   424,
1673 >     425,   760,   367,   604,   585,    76,   823,   824,   825,   826,
1674 >     827,   828,   829,   426,   368,   507,   427,   428,   429,   430,
1675 >    1307,   431,   432,   433,   436,   122,   437,   342,   438,   439,
1676 >     123,   124,   440,   125,   126,   508,   369,  1308,   127,  1066,
1677 >    1067,  1068,  1069,  1070,  1071,  1072,   441,   128,   129,   130,
1678 >     442,   457,   443,   444,   445,   446,   131,   447,   370,   132,
1679 >     133,   134,   448,   509,   449,   450,   135,   451,   452,   458,
1680 >     453,   640,   454,   605,   495,  1309,  1310,   371,   496,   538,
1681 >     539,   540,   541,   136,   137,   542,   372,   543,   544,   459,
1682 >     545,   546,   550,   551,   552,   138,   553,   510,   139,   140,
1683 >     554,   555,   556,   557,   606,   558,   141,  1157,   559,   560,
1684 >     561,   562,   142,   325,   143,   511,   144,   460,   145,   563,
1685 >     146,   147,   609,  1158,  1159,   564,   565,  1311,   566,   577,
1686 >     592,   148,   607,  1312,  1160,   373,   611,   149,   150,   612,
1687 >     151,   152,   153,   616,   619,   154,   620,   512,   513,   621,
1688 >     622,   623,   624,   625,   671,   663,   626,   627,   374,   629,
1689 >     630,   631,   632,   633,   634,   635,   657,   636,   675,   461,
1690 >     155,   637,  1161,  1162,   638,  1163,   639,   462,   463,   643,
1691 >     156,   157,   158,   159,   160,   161,   162,   642,   644,   360,
1692 >     664,   361,   645,   362,   253,   646,   647,   464,   514,   648,
1693 >     650,  1164,   651,   652,  1284,   653,   654,   363,   655,  1165,
1694 >     656,   659,   660,   669,   665,   666,   674,   677,   515,   678,
1695 >     679,   254,   516,   255,   680,   681,   682,   364,   683,   685,
1696 >     686,   687,  1166,  1124,  1167,  1168,   163,   164,   165,   688,
1697 >     166,   167,   690,   691,   365,   692,   366,   693,   711,   168,
1698 >     256,   169,  1169,   694,   695,   367,   696,   697,  1125,   700,
1699 >     933,   257,   934,   935,   701,   702,   707,   368,   708,   709,
1700 >     717,   710,   465,   713,  1170,   716,   720,   718,   741,  1171,
1701 >     742,   719,   258,  1172,   771,   721,   259,  1173,   768,   369,
1702 >     769,  1126,  1174,   734,   260,   743,  1175,   261,   262,   723,
1703 >     724,   725,   726,   727,   730,   731,   735,  1176,   736,  1177,
1704 >    1178,   370,  1179,   738,   744,   745,   746,   749,   750,   751,
1705 >    1127,  1128,   753,  1180,   754,   755,  1129,   263,   756,   758,
1706 >     371,  1181,   759,     2,     3,   762,   772,     4,   773,   372,
1707 >     327,   763,   764,   264,   777,   765,   265,   266,   267,     5,
1708 >     778,  1130,     6,   774,     7,   775,   328,   329,   776,   779,
1709 >     780,   330,     8,   781,   782,   783,  1131,   784,  1188,   785,
1710 >    1189,  1190,   786,   787,     9,   788,   936,   937,   938,    10,
1711 >      11,   939,   940,   789,   941,   942,   790,   943,   373,   944,
1712 >     791,   792,   945,   268,   946,   947,   793,   794,   795,    12,
1713 >     948,   796,   797,    13,   949,   801,   331,   802,   950,   951,
1714 >     952,   374,   804,    14,   911,   953,   269,   270,   805,   806,
1715 >     954,   811,   807,   808,   332,   333,   812,   813,  1132,   819,
1716 >     334,   814,    15,    16,   335,   816,   820,   821,   822,   832,
1717 >     336,   833,   853,   834,   845,   835,   836,  1133,    17,   337,
1718 >     338,   339,   837,  1218,   838,   839,   840,   841,   842,   843,
1719 >    1241,   340,   844,   846,   848,    18,   849,   851,   854,   855,
1720 >     856,   858,   861,   862,   865,   866,   867,    19,    20,   868,
1721 >     869,   872,   341,   877,  1191,  1192,  1193,   870,   871,  1194,
1722 >    1195,   873,  1196,  1197,   874,  1198,   980,  1199,   875,   876,
1723 >    1200,    21,  1201,  1202,   878,   880,   879,   881,  1203,   882,
1724 >     883,   884,  1204,  1219,    22,   885,  1205,  1206,  1207,    23,
1725 >    1242,   886,   887,  1208,    24,   888,   342,    25,  1209,   889,
1726 >     912,   913,   914,   890,   891,   915,   916,   892,   917,   918,
1727 >     893,   919,   894,   920,  1220,   895,   921,   896,   922,   923,
1728 >      82,  1243,  1221,   897,   924,   898,   899,   900,   925,  1244,
1729 >     901,  1222,   926,   927,   928,   978,   902,   903,  1245,   929,
1730 >     904,   905,   906,   907,   930,    83,    84,   908,   909,   981,
1731 >     982,   910,    85,   957,   983,  1223,   958,  1224,  1225,   979,
1732 >     984,   985,  1246,   987,  1247,  1248,   232,   988,   959,   960,
1733 >     990,  1226,   991,   961,   992,   993,   962,   963,  1249,  1227,
1734 >      86,    87,    88,    89,   964,   999,  1250,   965,  1000,   966,
1735 >     967,   968,   969,   970,   971,    90,    91,    92,   972,   233,
1736 >     973,   974,    93,    94,    95,   975,    96,   976,   234,   235,
1737 >     236,   977,   986,   237,   238,   989,   996,   997,   239,   240,
1738 >     241,   998,  1001,  1002,  1003,  1005,  1004,  1006,  1007,  1008,
1739 >    1009,  1010,  1011,  1012,  1013,  1014,  1015,  1016,  1017,  1018,
1740 >    1019,  1043,  1020,   568,  1021,  1022,  1023,  1024,  1056,  1025,
1741 >    1026,  1027,  1028,  1029,  1030,  1057,  1031,  1032,  1033,  1034,
1742 >    1058,  1035,  1036,  1037,  1038,  1039,  1059,  1062,  1040,  1064,
1743 >    1041,  1267,  1042,  1150,  1282,  1045,   748,  1044,  1318,  1046,
1744 >    1060,  1061,  1270,  1065,  1073,  1063,  1074,  1075,  1080,  1081,
1745 >    1082,  1293,  1083,  1084,   310,  1085,  1294,  1086,  1087,  1088,
1746 >    1094,  1095,  1096,  1097,  1098,  1099,  1100,  1101,  1102,  1107,
1747 >    1108,  1109,  1110,  1111,  1112,  1113,  1114,  1115,  1116,  1117,
1748 >    1122,  1123,  1136,  1137,  1138,  1139,  1140,  1141,  1142,  1295,
1749 >    1143,   810,  1144,  1296,  1297,  1298,  1153,   761,  1235,  1151,
1750 >    1299,  1300,  1231,  1154,  1155,  1156,  1184,   641,  1185,  1289,
1751 >    1186,  1187,  1212,  1213,  1292,  1214,  1215,  1216,  1217,  1230,
1752 >     740,  1291,  1236,  1232,  1237,  1238,  1285,  1239,  1240,  1253,
1753 >    1269,  1268,   767,  1315,   498,   800,  1271,  1301,  1290,  1272,
1754 >     729,  1273,  1274,  1275,  1286,  1302,  1303,  1304,   818,   662,
1755 >     400,   456,   668,  1262,   733,   326,  1261,     0,     0,     0,
1756 >     548,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1757 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1758 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1759 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1760 >       0,     0,     0,     0,   579,     0,     0,     0,     0,     0,
1761 >       0,     0,     0,   594,     0,     0,     0,     0,     0,     0,
1762 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1763 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1764         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1765         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1766 <       0,     0,     0,     0,     0,   574,     0,     0,     0,     0,
1767 <       0,     0,     0,   578
1766 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1767 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1768 >       0,     0,     0,     0,     0,     0,     0,     0,   658
1769   };
1770  
1771   static const yytype_int16 yycheck[] =
1772   {
1773 <     621,   622,   309,   310,   311,     1,   229,   108,     1,     1,
1774 <       1,     1,     1,     8,     1,     1,     1,    51,   227,     1,
1775 <       1,   229,   231,     1,     1,     1,     1,     1,     1,   227,
1776 <     228,    17,    25,    49,    25,    22,    23,     1,   227,    32,
1777 <       1,    28,   231,   229,    29,   229,    35,    33,     1,     1,
1778 <     229,     1,    37,   227,     1,   227,   227,   231,     1,   231,
1779 <     231,   229,     1,     1,    49,    50,    57,    52,    53,    54,
1780 <       1,    61,   227,    64,     1,   229,   231,    63,    65,    66,
1781 <       1,    56,    35,   229,    71,    72,    61,    76,    63,    74,
1782 <     124,    78,    79,    80,    76,    86,   403,   404,    76,    90,
1783 <     199,   200,    98,   204,   411,    98,   229,    98,   415,     1,
1784 <     101,   102,    98,   420,     6,     7,   423,   104,   105,    95,
1785 <      12,    98,    61,    76,    98,    98,   433,   434,    20,    21,
1786 <      61,     1,   118,   125,    98,    27,   125,   444,    30,    31,
1787 <     447,   448,   133,   119,    36,   229,    98,   122,   134,    41,
1788 <      42,    98,    44,    45,    46,    98,    48,   199,   200,   150,
1789 <      98,   125,   153,    55,     1,   151,   152,    59,    60,   185,
1790 <     229,    98,   125,   125,    95,   125,    68,   227,   227,   195,
1791 <      17,   231,   231,   229,   229,    77,   125,   178,   170,   170,
1792 <     229,    61,   170,    85,   125,    87,    33,    89,   119,    91,
1793 <     195,    93,    94,   229,   227,   196,   197,   198,   231,   170,
1794 <     229,   229,   227,   227,   106,   201,   231,   191,   229,   111,
1795 <     112,   113,   218,   115,   116,   117,    63,   227,   120,   230,
1796 <     222,   231,   223,   224,   541,   228,   222,   228,   228,   228,
1797 <     221,   228,   228,   228,   218,   218,   228,   228,   191,   222,
1798 <     229,   228,   228,   228,   146,   228,   227,   227,    13,     1,
1799 <     221,   231,   154,   155,   156,   157,   158,   159,   210,   229,
1800 <     229,   213,   222,    15,    16,   218,   228,    19,   228,    34,
1801 <     218,   118,   227,     1,   222,   228,   231,   227,    43,   126,
1802 <     127,   218,   227,     1,   230,   187,   230,   228,     9,    10,
1803 <      11,   228,   609,   174,   175,   210,   613,    25,   213,   616,
1804 <     147,   230,   230,   620,    32,    70,  1070,  1071,  1072,   211,
1805 <     212,    63,   214,   215,   216,   170,   230,     1,   220,     3,
1806 <     230,     5,   230,   225,   230,   230,   228,    40,   123,    81,
1807 <      82,    83,    84,    17,    99,   100,    88,   230,    56,   230,
1808 <      92,   230,   107,    61,     1,    63,    98,   230,   230,    33,
1809 <     108,   230,   230,   230,    67,   230,    69,   109,   110,   230,
1810 <      17,   230,   230,   230,   230,   108,   230,   132,   230,   121,
1811 <      98,   230,    56,   230,    58,   222,    33,   230,   230,    63,
1812 <     230,   228,   230,   148,   230,   230,   230,   108,   230,    73,
1813 <     230,   143,   135,   136,   137,   138,   139,   140,   141,     1,
1814 <     230,   114,   230,   230,   122,     1,    63,   230,   230,   230,
1815 <       6,     7,   230,   230,    98,   230,    12,   230,   131,   230,
1816 <     230,   230,   230,    25,    20,    21,   230,   230,   230,   230,
1817 <     182,    27,   230,   230,    30,    31,   230,   230,   122,   230,
1818 <      36,   230,   230,   230,   209,    41,    42,   230,    44,    45,
1819 <      46,   230,    48,   166,   167,    57,   230,   230,   142,    55,
1820 <     230,   118,    64,    59,    60,   123,   230,   151,   230,   126,
1821 <     127,   230,    68,   230,   230,   230,   228,   230,   123,   230,
1822 <     230,    77,   230,   230,    86,   230,   230,   227,    90,    85,
1823 <     147,    87,   230,    89,     1,    91,    98,    93,    94,   101,
1824 <     102,   809,   810,   811,   812,   813,   814,   815,   230,   222,
1825 <     106,   230,   196,   226,   230,   111,   112,   113,     4,   115,
1826 <     116,   117,    29,   230,   120,   230,   230,   230,   230,   230,
1827 <      37,   133,    18,   230,   108,   210,   108,     1,   108,   223,
1828 <      26,   108,    49,    50,   228,    52,    53,    54,   150,   108,
1829 <     146,   153,   108,    17,    40,   210,   210,   227,   154,   155,
1830 <     156,   157,   158,   159,   227,   222,   230,    74,     1,    33,
1831 <       3,   230,     5,   123,   230,   210,   178,   230,   230,  1210,
1832 <     230,    67,   230,    69,    17,   108,   230,   230,   230,   230,
1833 <     230,   187,   230,   230,   196,   197,   198,   230,   227,    63,
1834 <      33,   210,   230,   230,   230,   230,   230,   230,   230,    95,
1835 <     230,   230,   230,   230,   230,   211,   212,   230,   214,   215,
1836 <     216,   223,   224,    56,   220,    58,   230,   230,   227,   225,
1837 <      63,   210,   230,   230,    98,   108,   123,   210,   108,   210,
1838 <      73,   108,   128,    69,   130,   108,   210,   210,   210,   108,
1839 <     108,   108,   108,   108,   118,   108,   210,   210,   210,   210,
1840 <     108,   230,   230,   149,   210,    98,   210,   210,   210,   210,
1841 <     134,   123,   210,   210,   210,   210,   123,   123,   227,   227,
1842 <     123,   167,   123,   230,   123,   230,   172,   151,   152,   122,
1843 <     176,   230,   108,   210,   210,   181,   230,   230,   184,   230,
1844 <     230,   230,   230,   189,   230,   131,   227,     0,     1,   142,
1845 <     230,     4,   230,   227,     1,   227,   123,   203,   151,   230,
1846 <     206,    14,   208,    49,    17,    18,   230,   227,    15,    16,
1847 <     227,    24,    19,   219,   160,   230,   230,   201,   230,   230,
1848 <     226,   167,    35,   227,   210,    38,    39,   230,   230,   230,
1849 <     176,   230,   230,   230,   230,   123,   210,   123,   222,   210,
1850 <     210,   210,   123,   196,   123,   123,   108,   123,   123,    62,
1851 <     123,   123,   108,   210,    67,   108,    63,   203,   108,   205,
1852 <     206,   108,    75,   227,   229,   227,    49,   227,   108,   108,
1853 <     223,   227,   230,   219,    81,    82,    83,    84,   227,   230,
1854 <     226,    88,   230,    96,    97,    92,   227,   227,   227,   227,
1855 <     227,    98,   227,   227,   227,   227,   227,   227,   227,   227,
1856 <     123,   114,   109,   110,   227,   227,   230,   108,    69,    49,
1857 <     108,   108,   227,   123,   121,   161,   162,   163,   131,   165,
1858 <     166,   123,   168,   169,   123,   171,   210,   173,   123,   230,
1859 <     176,   144,   145,   179,   180,   181,   143,   183,   123,   123,
1860 <     108,   123,   188,   123,   123,   123,   192,   193,   194,   123,
1861 <     227,   164,   123,   227,   123,   266,   202,   227,   123,   227,
1862 <     227,   207,   227,   227,   177,   210,   227,   227,   227,   227,
1863 <     131,   108,   227,   186,   108,   182,   227,   190,   161,   162,
1864 <     163,   123,   165,   166,   227,   168,   169,   123,   171,   227,
1865 <     173,   227,   227,   176,   227,   227,   179,   180,   181,   160,
1866 <     183,   227,   227,   227,   123,   188,   167,   227,   227,   192,
1867 <     193,   194,   227,   227,   230,   176,   227,   123,   227,   202,
1868 <     123,   161,   162,   163,   207,   165,   166,   227,   168,   169,
1869 <     123,   171,   123,   173,     1,   227,   176,   227,   227,   179,
1870 <     180,   181,   203,   183,   205,   206,   227,   123,   188,   123,
1871 <     227,   227,   192,   193,   194,    22,    23,   227,   219,   123,
1872 <     227,    28,   202,   227,   227,   226,   123,   207,   227,   227,
1873 <     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1874 <     227,   227,   227,   227,   123,   210,   227,   230,   227,   227,
1875 <     123,   123,   227,   123,   123,   210,   123,   230,    65,    66,
1876 <     230,   227,   123,   123,    71,    72,   123,   227,   123,   227,
1877 <     227,    78,    79,    80,   227,   227,   227,   227,   227,   227,
1878 <     227,   123,   227,   227,   123,   227,   227,   227,   227,   227,
1879 <     227,   227,   227,   227,   108,   227,   123,   104,   105,   227,
1880 <     227,   230,   227,   227,   227,   231,   227,   227,   230,   227,
1881 <     227,   230,   227,   129,   227,   227,   227,   227,   227,   227,
1882 <     227,   227,   227,   129,   227,   227,   227,   227,   227,   227,
1883 <     129,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1884 <     227,   227,   227,   227,   227,   227,   227,   227,  1025,   227,
1885 <     227,   227,   227,   227,   217,    74,   227,  1036,   498,   227,
1886 <    1023,   227,   227,   227,  1286,   227,   513,  1250,   227,   227,
1887 <    1248,   227,   336,   227,   227,   227,   227,   227,   227,   227,
1888 <     227,   227,  1229,   227,   227,   230,   227,   222,  1240,  1238,
1889 <    1132,   227,   232,   485,   232,   232,   230,   227,   227,   227,
1890 <     462,   583,   529,  1259,  1252,   475,   567,   369,  1234,   111,
1891 <     165,    92,  1102,  1100,   238,    -1,   388,    -1,    -1,    -1,
1892 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,   398,    -1,    -1,
1773 >     638,   639,   312,     1,     1,   315,   316,   317,     1,   319,
1774 >     320,     1,     1,     1,     8,    48,     1,     1,   232,     1,
1775 >       1,     1,     1,    52,   109,   230,   231,     1,   232,     1,
1776 >       1,     1,     1,    30,     1,     1,  1089,  1090,  1091,     1,
1777 >       1,    38,     1,   211,   232,     1,     1,   215,     1,   232,
1778 >      19,   211,   232,    41,   230,   215,     1,   232,   234,   178,
1779 >     179,     6,     7,     1,     9,    10,    56,   232,     1,    14,
1780 >      39,    41,   230,   232,   230,    65,   234,    67,    23,    24,
1781 >      25,   230,     1,   233,    65,   234,    65,    32,   232,   232,
1782 >      35,    36,    37,    81,    65,     1,   125,    42,    67,   409,
1783 >      98,   411,   412,    65,   101,   415,   230,    81,   101,    81,
1784 >     234,    81,   101,   423,    59,    60,   232,   101,   428,   101,
1785 >     205,   101,   120,    56,   232,   232,    71,   437,   438,    74,
1786 >      75,    98,    65,   123,    67,   232,   232,    82,   126,   449,
1787 >     101,   451,   452,    88,     1,    90,   101,    92,   101,    94,
1788 >     119,    96,    97,   120,     1,   126,   126,   190,   127,   128,
1789 >     232,     1,   107,   101,   126,   126,   199,   126,   113,   114,
1790 >     126,   116,   117,   118,   232,   232,   121,    34,   147,    19,
1791 >     230,    28,   101,    30,   234,   167,    43,    44,    45,   174,
1792 >     123,    48,    49,   232,     1,   101,    53,    54,    55,    39,
1793 >     174,   146,   174,   185,   232,   199,   232,   126,   174,   232,
1794 >      57,   156,   157,   158,   159,   160,   161,   162,   230,   201,
1795 >     230,    68,   234,   230,   234,   233,   219,    67,   230,   222,
1796 >     540,     1,   234,   231,   231,   219,   221,   233,   231,   219,
1797 >     195,   231,    89,   231,   230,   232,    93,    17,    18,   231,
1798 >     231,   231,    22,   222,   101,   221,   233,   104,   105,   231,
1799 >     231,   101,   231,   222,   219,   231,   222,   212,   213,   214,
1800 >     231,   216,   217,     1,   174,   231,   231,   109,   231,   119,
1801 >     225,   219,   227,   233,   222,   233,   231,   134,   230,   195,
1802 >      11,    12,    13,   233,   101,     1,   230,    67,    26,    27,
1803 >     234,   233,   233,   150,   233,    33,   153,   154,   155,   233,
1804 >     230,   151,   152,   219,   234,    85,    86,   627,   233,   230,
1805 >     630,    91,   632,   234,    30,    95,     1,   637,     3,   233,
1806 >       5,   101,    38,    61,    62,    63,    64,   233,   233,   233,
1807 >     110,   111,   112,   233,    19,   233,   233,   233,    76,    77,
1808 >      78,   233,   122,   200,   233,    83,    84,    85,   233,    87,
1809 >     167,   233,   202,   233,    39,    70,   233,    72,   233,   233,
1810 >     109,   233,   233,   143,   231,   233,   223,   224,   185,   233,
1811 >     233,    56,   222,    58,   231,   233,   226,     1,   109,   233,
1812 >     233,   231,    67,   124,   201,   101,   135,   136,   137,   138,
1813 >     139,   140,   141,   233,    79,    19,   233,   233,   233,   233,
1814 >     115,   233,   233,   233,   233,     1,   233,   187,   233,   233,
1815 >       6,     7,   233,     9,    10,    39,   101,   132,    14,   823,
1816 >     824,   825,   826,   827,   828,   829,   233,    23,    24,    25,
1817 >     233,     1,   233,   233,   233,   233,    32,   233,   123,    35,
1818 >      36,    37,   233,    67,   233,   233,    42,   233,   233,    19,
1819 >     233,   231,   233,   124,   233,   170,   171,   142,   233,   233,
1820 >     233,   233,   233,    59,    60,   233,   151,   233,   233,    39,
1821 >     233,   233,   233,   233,   233,    71,   233,   101,    74,    75,
1822 >     233,   233,   233,   233,   124,   233,    82,     4,   233,   233,
1823 >     233,   233,    88,   231,    90,   119,    92,    67,    94,   233,
1824 >      96,    97,   109,    20,    21,   233,   233,   222,   233,   233,
1825 >     233,   107,   230,   228,    31,   200,   211,   113,   114,   109,
1826 >     116,   117,   118,   109,   109,   121,   109,   151,   152,   109,
1827 >     109,   230,   230,   233,   109,   124,   233,   233,   223,   233,
1828 >     233,   233,   233,   233,   233,   233,   231,   233,   109,   119,
1829 >     146,   233,    69,    70,   233,    72,   233,   127,   128,   233,
1830 >     156,   157,   158,   159,   160,   161,   162,   230,   233,     1,
1831 >     230,     3,   233,     5,     1,   233,   233,   147,   202,   233,
1832 >     233,    98,   233,   233,  1232,   233,   233,    19,   233,   106,
1833 >     233,   233,   233,   211,   233,   233,   211,   211,   222,   109,
1834 >     109,    28,   226,    30,   109,   211,   211,    39,   211,   109,
1835 >     109,   109,   129,    15,   131,   132,   212,   213,   214,   109,
1836 >     216,   217,   109,   109,    56,   109,    58,   109,   109,   225,
1837 >      57,   227,   149,   211,   233,    67,   233,   211,    40,   211,
1838 >      48,    68,    50,    51,   211,   211,   211,    79,   211,   211,
1839 >     109,   211,   222,   211,   171,   211,   233,   230,   124,   176,
1840 >     124,   230,    89,   180,   124,   233,    93,   184,   211,   101,
1841 >     211,    73,   189,   230,   101,   230,   193,   104,   105,   233,
1842 >     233,   233,   233,   233,   233,   233,   233,   204,   233,   206,
1843 >     207,   123,   209,   233,   230,   233,   233,   230,   233,   233,
1844 >     102,   103,   233,   220,   233,   233,   108,   134,   233,   233,
1845 >     142,   228,   233,     0,     1,   230,   211,     4,   124,   151,
1846 >       1,   233,   233,   150,   230,   233,   153,   154,   155,    16,
1847 >     109,   133,    19,   211,    21,   211,    17,    18,   211,   124,
1848 >     211,    22,    29,   124,   109,   109,   148,   124,    48,   124,
1849 >      50,    51,   124,   124,    41,   124,   164,   165,   166,    46,
1850 >      47,   169,   170,   124,   172,   173,   124,   175,   200,   177,
1851 >     124,   124,   180,   200,   182,   183,   124,   124,   230,    66,
1852 >     188,   230,   233,    70,   192,   211,    67,   230,   196,   197,
1853 >     198,   223,   230,    80,    48,   203,   223,   224,   233,   233,
1854 >     208,   124,   233,   233,    85,    86,   230,   230,   210,   230,
1855 >      91,   233,    99,   100,    95,   233,   230,   230,   230,   230,
1856 >     101,   230,   124,   230,   109,   230,   230,   229,   115,   110,
1857 >     111,   112,   230,    72,   230,   230,   230,   230,   230,   230,
1858 >      72,   122,   230,   109,   233,   132,   109,   109,   109,   109,
1859 >     109,   109,   230,   124,   124,   211,   124,   144,   145,   124,
1860 >     233,   109,   143,   230,   164,   165,   166,   124,   124,   169,
1861 >     170,   124,   172,   173,   124,   175,   233,   177,   124,   124,
1862 >     180,   168,   182,   183,   124,   230,   124,   230,   188,   124,
1863 >     124,   230,   192,   132,   181,   230,   196,   197,   198,   186,
1864 >     132,   230,   230,   203,   191,   230,   187,   194,   208,   230,
1865 >     164,   165,   166,   230,   230,   169,   170,   230,   172,   173,
1866 >     230,   175,   230,   177,   163,   230,   180,   230,   182,   183,
1867 >       1,   163,   171,   230,   188,   230,   230,   230,   192,   171,
1868 >     230,   180,   196,   197,   198,   124,   230,   230,   180,   203,
1869 >     230,   230,   230,   230,   208,    26,    27,   230,   230,   124,
1870 >     109,   230,    33,   230,   124,   204,   230,   206,   207,   211,
1871 >     124,   124,   204,   124,   206,   207,     1,   124,   230,   230,
1872 >     124,   220,   124,   230,   233,   109,   230,   230,   220,   228,
1873 >      61,    62,    63,    64,   230,   124,   228,   230,   124,   230,
1874 >     230,   230,   230,   230,   230,    76,    77,    78,   230,    34,
1875 >     230,   230,    83,    84,    85,   230,    87,   230,    43,    44,
1876 >      45,   230,   230,    48,    49,   230,   230,   230,    53,    54,
1877 >      55,   230,   230,   124,   211,   124,   233,   124,   124,   211,
1878 >     233,   124,   124,   230,   124,   124,   124,   230,   230,   230,
1879 >     230,   124,   230,   271,   230,   230,   230,   230,   124,   230,
1880 >     230,   230,   230,   230,   230,   124,   230,   230,   230,   230,
1881 >     124,   230,   230,   230,   230,   230,   124,   124,   230,   124,
1882 >     230,   109,   230,   218,   124,   230,   502,   233,  1317,   230,
1883 >     230,   230,   235,   230,   230,   233,   230,   230,   230,   230,
1884 >     230,   130,   230,   230,    77,   230,   132,   230,   230,   230,
1885 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
1886 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
1887 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   130,
1888 >     230,   586,   230,   132,   130,   130,   230,   517,  1051,   234,
1889 >    1277,  1279,   233,   230,   230,   230,   230,   343,   230,  1255,
1890 >     230,   230,   230,   230,  1266,   230,   230,   230,   230,   230,
1891 >     489,  1264,   230,   233,   230,   230,   233,   230,   230,   230,
1892 >     230,  1151,   533,  1288,   225,   572,   235,  1281,  1260,   235,
1893 >     466,   235,   235,   235,   230,   230,   230,   230,   599,   394,
1894 >     118,   170,   404,  1121,   479,    97,  1119,    -1,    -1,    -1,
1895 >     242,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1896 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1897 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1898        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1899 +      -1,    -1,    -1,    -1,   293,    -1,    -1,    -1,    -1,    -1,
1900 +      -1,    -1,    -1,   301,    -1,    -1,    -1,    -1,    -1,    -1,
1901        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1902 <      -1,    -1,    -1,    -1,    -1,   288,    -1,    -1,    -1,    -1,
1903 <      -1,    -1,    -1,   295
1902 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1903 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1904 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1905 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1906 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1907 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   375
1908   };
1909  
1910    /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1911       symbol of state STATE-NUM.  */
1912   static const yytype_uint16 yystos[] =
1913   {
1914 <       0,   234,     0,     1,     4,    14,    17,    18,    24,    35,
1915 <      38,    39,    62,    67,    75,    96,    97,   114,   131,   144,
1916 <     145,   164,   177,   186,   190,   235,   240,   245,   269,   275,
1917 <     281,   295,   315,   338,   352,   367,   374,   378,   388,   397,
1918 <     418,   424,   430,   434,   440,   498,   513,   227,   228,   229,
1919 <     229,   316,   398,   425,   229,   435,   229,   353,   419,   339,
1920 <     229,   276,   296,   368,   229,   229,   389,   229,   229,   379,
1921 <       1,    25,    32,    98,   270,   271,   272,   273,   274,     1,
1922 <      22,    23,    28,    65,    66,    71,    72,    78,    79,    80,
1923 <     104,   105,   499,   500,   501,   502,   503,   504,   505,   506,
1924 <     507,   508,   509,   510,   511,   512,   229,   229,   229,     1,
1925 <      61,   431,   432,   433,   229,     1,     6,     7,    12,    20,
1926 <      21,    27,    30,    31,    36,    41,    42,    44,    45,    46,
1927 <      48,    55,    59,    60,    68,    77,    85,    87,    89,    91,
1928 <      93,    94,   106,   111,   112,   113,   115,   116,   117,   120,
1929 <     146,   154,   155,   156,   157,   158,   159,   187,   211,   212,
1930 <     214,   215,   216,   220,   225,   441,   442,   443,   444,   445,
1931 <     446,   447,   448,   449,   450,   451,   452,   453,   454,   455,
1932 <     456,   457,   458,   459,   460,   461,   462,   463,   464,   465,
1933 <     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
1934 <     476,   477,   478,   479,   480,   481,   482,   483,   484,   485,
1935 <     486,   487,   491,   495,   496,   497,   229,   229,   229,     1,
1936 <      95,   119,   241,   242,   243,   244,   229,   229,   229,     1,
1937 <      29,    37,    49,    50,    52,    53,    54,    74,   514,   515,
1938 <     516,   517,   518,   519,   520,   521,   522,   523,     1,    25,
1939 <      57,    64,    86,    90,    98,   101,   102,   133,   150,   153,
1940 <     178,   196,   197,   198,   223,   224,   246,   247,   248,   249,
1941 <     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
1942 <     264,   265,   266,   267,   268,   229,     1,   221,   282,   283,
1943 <     284,   285,   286,     1,    98,   375,   376,   377,   229,   227,
1944 <     230,   230,   230,   228,   271,   230,   230,   230,   230,   230,
1945 <     230,   230,   230,   230,   230,   230,   230,   228,   500,     1,
1946 <      15,    16,    19,    63,    81,    82,    83,    84,    88,    92,
1947 <      98,   109,   110,   121,   143,   182,   317,   318,   319,   320,
1948 <     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
1949 <     331,   332,   333,   334,     1,     3,     5,    17,    33,    56,
1950 <      58,    63,    73,    98,   122,   142,   151,   196,   223,   399,
1951 <     400,   401,   402,   403,   404,   405,   406,   407,   408,   409,
1952 <     413,   414,   415,   416,   417,     1,    61,   125,   426,   427,
1953 <     428,   429,   230,   228,   432,     1,    98,   125,   436,   437,
1954 <     438,   439,   230,   230,   230,   230,   230,   230,   230,   230,
1914 >       0,   237,     0,     1,     4,    16,    19,    21,    29,    41,
1915 >      46,    47,    66,    70,    80,    99,   100,   115,   132,   144,
1916 >     145,   168,   181,   186,   191,   194,   238,   243,   248,   268,
1917 >     274,   280,   288,   302,   322,   344,   358,   373,   380,   384,
1918 >     394,   403,   424,   430,   436,   440,   446,   502,   519,   230,
1919 >     231,   232,   232,   323,   404,   431,   232,   441,   232,   359,
1920 >     425,   345,   232,   275,   303,   374,   232,   232,   395,   232,
1921 >     281,   232,   385,     1,    30,    38,   101,   269,   270,   271,
1922 >     272,   273,     1,    26,    27,    33,    61,    62,    63,    64,
1923 >      76,    77,    78,    83,    84,    85,    87,   503,   504,   505,
1924 >     506,   507,   508,   509,   510,   511,   512,   513,   514,   515,
1925 >     516,   517,   518,   232,   232,   232,     1,    65,   437,   438,
1926 >     439,   232,     1,     6,     7,     9,    10,    14,    23,    24,
1927 >      25,    32,    35,    36,    37,    42,    59,    60,    71,    74,
1928 >      75,    82,    88,    90,    92,    94,    96,    97,   107,   113,
1929 >     114,   116,   117,   118,   121,   146,   156,   157,   158,   159,
1930 >     160,   161,   162,   212,   213,   214,   216,   217,   225,   227,
1931 >     447,   448,   449,   450,   451,   452,   453,   454,   455,   456,
1932 >     457,   458,   459,   460,   461,   462,   463,   464,   465,   466,
1933 >     467,   468,   469,   470,   471,   472,   473,   474,   475,   476,
1934 >     477,   478,   479,   480,   481,   482,   483,   484,   485,   486,
1935 >     487,   488,   489,   490,   494,   498,   499,   500,   501,   232,
1936 >     232,   232,     1,    98,   120,   244,   245,   246,   247,   232,
1937 >     232,   232,     1,    34,    43,    44,    45,    48,    49,    53,
1938 >      54,    55,   520,   521,   522,   523,   524,   525,   526,   527,
1939 >     528,   529,   530,     1,    28,    30,    57,    68,    89,    93,
1940 >     101,   104,   105,   134,   150,   153,   154,   155,   200,   223,
1941 >     224,   249,   250,   251,   252,   253,   254,   255,   256,   257,
1942 >     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
1943 >     232,     1,   221,   289,   290,   291,   292,   293,   232,     1,
1944 >     101,   381,   382,   383,   232,   230,   233,   233,   233,   231,
1945 >     270,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1946 >     233,   233,   233,   233,   233,   231,   504,     1,    17,    18,
1947 >      22,    67,    85,    86,    91,    95,   101,   110,   111,   112,
1948 >     122,   143,   187,   324,   325,   326,   327,   328,   329,   330,
1949 >     331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
1950 >       1,     3,     5,    19,    39,    56,    58,    67,    79,   101,
1951 >     123,   142,   151,   200,   223,   405,   406,   407,   408,   409,
1952 >     410,   411,   412,   413,   414,   415,   419,   420,   421,   422,
1953 >     423,     1,    65,   126,   432,   433,   434,   435,   233,   231,
1954 >     438,     1,   101,   126,   442,   443,   444,   445,   233,   233,
1955 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1956 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1957 >     233,   233,   233,   233,   495,   491,   233,   233,   233,   233,
1958 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1959 >     233,   233,   233,   233,   233,   231,   448,     1,    19,    39,
1960 >      67,   119,   127,   128,   147,   222,   360,   361,   362,   363,
1961 >     364,   365,   366,   370,   371,   372,     1,   126,   222,   426,
1962 >     427,   428,   429,     1,    56,    65,    67,   123,   346,   350,
1963 >     351,   352,   356,   357,   230,   233,   233,   231,   245,     1,
1964 >      81,   174,   276,   277,   278,   279,     1,    19,    39,    67,
1965 >     101,   119,   151,   152,   202,   222,   226,   304,   305,   306,
1966 >     307,   308,   309,   310,   311,   312,   313,   314,   318,     1,
1967 >      41,    81,   126,   375,   376,   377,   378,   379,   233,   233,
1968 >     233,   233,   233,   233,   233,   233,   233,   231,   521,   230,
1969 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1970 >     233,   233,   233,   233,   233,   233,   233,   231,   250,     1,
1971 >     101,   219,   396,   397,   398,   399,   230,   233,   231,   290,
1972 >     174,     1,   101,   167,   185,   201,   282,   283,   284,   285,
1973 >     286,   287,   233,   231,   382,     1,   101,   219,   222,   386,
1974 >     387,   388,   389,   390,   124,   124,   124,   230,   109,   109,
1975 >     240,   211,   109,   240,   240,   240,   109,   240,   240,   109,
1976 >     109,   109,   109,   230,   230,   233,   233,   233,   341,   233,
1977 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1978 >     231,   325,   230,   233,   233,   233,   233,   233,   233,   416,
1979 >     233,   233,   233,   233,   233,   233,   233,   231,   406,   233,
1980 >     233,   231,   433,   124,   230,   233,   233,   231,   443,   211,
1981 >     240,   109,   240,   240,   211,   109,   240,   211,   109,   109,
1982 >     109,   211,   211,   211,   240,   109,   109,   109,   109,   240,
1983 >     109,   109,   109,   109,   211,   233,   233,   211,   240,   240,
1984 >     211,   211,   211,   211,   215,   211,   215,   211,   211,   211,
1985 >     211,   109,   240,   211,   240,   240,   211,   109,   230,   230,
1986 >     233,   233,   367,   233,   233,   233,   233,   233,   231,   361,
1987 >     233,   233,   231,   427,   230,   233,   233,   347,   233,   231,
1988 >     351,   124,   124,   230,   230,   233,   233,   231,   277,   230,
1989 >     233,   233,   319,   233,   233,   233,   233,   315,   233,   233,
1990 >     231,   305,   230,   233,   233,   233,   231,   376,   211,   211,
1991 >     240,   124,   211,   124,   211,   211,   211,   230,   109,   124,
1992 >     211,   124,   109,   109,   124,   124,   124,   124,   124,   124,
1993 >     124,   124,   124,   124,   124,   230,   230,   233,   400,   231,
1994 >     397,   211,   230,   232,   230,   233,   233,   233,   233,   231,
1995 >     283,   124,   230,   230,   233,   391,   233,   231,   387,   230,
1996 >     230,   230,   230,   135,   136,   137,   138,   139,   140,   141,
1997 >     239,   240,   230,   230,   230,   230,   230,   230,   230,   230,
1998 >     230,   230,   230,   230,   230,   109,   109,   240,   233,   109,
1999 >     240,   109,   240,   124,   109,   109,   109,   240,   109,   242,
2000 >     242,   230,   124,   178,   179,   124,   211,   124,   124,   233,
2001 >     124,   124,   109,   124,   124,   124,   124,   230,   124,   124,
2002 >     230,   230,   124,   124,   230,   230,   230,   230,   230,   230,
2003 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
2004       230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
2005 <     230,   230,   230,   230,   230,   230,   230,   230,   230,   492,
2006 <     230,   488,   230,   230,   230,   230,   230,   230,   230,   230,
2005 >     230,    48,   164,   165,   166,   169,   170,   172,   173,   175,
2006 >     177,   180,   182,   183,   188,   192,   196,   197,   198,   203,
2007 >     208,   496,   497,    48,    50,    51,   164,   165,   166,   169,
2008 >     170,   172,   173,   175,   177,   180,   182,   183,   188,   192,
2009 >     196,   197,   198,   203,   208,   492,   493,   230,   230,   230,
2010       230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
2011 <     230,   228,   442,     1,    17,    33,    63,   118,   126,   127,
2012 <     147,   222,   354,   355,   356,   357,   358,   359,   360,   364,
2013 <     365,   366,     1,   125,   222,   420,   421,   422,   423,     1,
2014 <      56,    61,    63,   122,   340,   344,   345,   346,   350,   351,
2015 <     227,   230,   230,   228,   242,     1,    76,   170,   277,   278,
1927 <     279,   280,     1,    17,    33,    63,    98,   118,   134,   151,
1928 <     152,   201,   222,   297,   298,   299,   300,   301,   302,   303,
1929 <     304,   305,   306,   307,   311,     1,    35,    76,   125,   369,
1930 <     370,   371,   372,   373,   230,   230,   230,   230,   230,   230,
1931 <     230,   230,   228,   515,   227,   230,   230,   230,   230,   230,
2011 >     230,   230,   230,   230,   230,   230,   230,   230,   124,   211,
2012 >     233,   124,   109,   124,   124,   124,   230,   124,   124,   230,
2013 >     124,   124,   233,   109,   354,   355,   230,   230,   230,   124,
2014 >     124,   230,   124,   211,   233,   124,   124,   124,   211,   233,
2015 >     124,   124,   230,   124,   124,   124,   230,   230,   230,   230,
2016       230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
2017 <     230,   230,   228,   247,     1,    98,   218,   390,   391,   392,
2018 <     393,   227,   230,   228,   283,   170,   230,   228,   376,     1,
2019 <      98,   218,   222,   380,   381,   382,   383,   384,   123,   123,
2020 <     123,   227,   108,   108,   210,   108,   108,   237,   237,   237,
2021 <     108,   108,   108,   210,   210,   227,   227,   230,   230,   230,
2022 <     335,   230,   230,   230,   230,   230,   230,   230,   230,   230,
2023 <     230,   230,   230,   228,   318,   227,   230,   230,   230,   230,
2024 <     230,   230,   410,   230,   230,   230,   230,   230,   230,   230,
2025 <     228,   400,   230,   230,   228,   427,   123,   227,   230,   230,
2026 <     228,   437,   210,   237,   237,   210,   108,   210,   108,   123,
2027 <     210,   237,   210,   108,   108,   237,   108,   210,   210,   210,
2028 <     237,   108,   108,   237,   108,   108,   108,   108,   210,   230,
2029 <     210,   230,   210,   237,   237,   210,   210,   210,   210,   213,
2030 <     210,   213,   210,   210,   210,   123,   237,   210,   210,   237,
2031 <     237,   210,   210,   227,   227,   230,   230,   361,   230,   230,
2032 <     230,   230,   230,   228,   355,   230,   230,   228,   421,   227,
2033 <     230,   230,   341,   230,   228,   345,   123,   123,   227,   227,
2034 <     230,   230,   228,   278,   227,   230,   230,   312,   230,   230,
2035 <     230,   230,   230,   308,   230,   228,   298,   227,   230,   230,
2036 <     230,   228,   370,   210,   210,   210,   123,   210,   210,   210,
2037 <     237,   227,   123,   210,   123,   108,   108,   123,   123,   123,
2038 <     123,   123,   123,   108,   123,   199,   200,   250,   251,   199,
2039 <     200,   252,   253,   123,   123,   227,   227,   230,   394,   228,
2040 <     391,   210,   227,   229,   123,   227,   227,   230,   385,   230,
2041 <     228,   381,   227,   227,   227,   227,   227,   227,   227,   135,
2042 <     136,   137,   138,   139,   140,   141,   236,   237,   227,   227,
2043 <     227,   227,   227,   227,   227,   227,   108,   108,   237,   230,
2044 <     108,   108,   237,   108,   108,   237,   123,   108,   108,   237,
2045 <     108,   239,   239,   227,   123,   174,   175,   123,   210,   123,
1962 <     123,   230,   123,   123,   108,   123,   123,   123,   123,   227,
1963 <     123,   123,   227,   227,   123,   123,   227,   227,   227,   227,
1964 <     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1965 <     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1966 <     227,   227,   227,   227,    49,   161,   162,   163,   165,   166,
1967 <     168,   169,   171,   173,   176,   179,   180,   181,   183,   188,
1968 <     192,   193,   194,   202,   207,   493,   494,   227,    49,   161,
1969 <     162,   163,   165,   166,   168,   169,   171,   173,   176,   179,
1970 <     180,   181,   183,   188,   192,   193,   194,   202,   207,   489,
1971 <     490,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1972 <     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1973 <     227,   227,   123,   210,   230,   123,   108,   123,   123,   123,
1974 <     227,   123,   123,   227,   123,   123,   230,   108,   348,   349,
1975 <     227,   227,   227,   123,   123,   227,   123,   210,   230,   123,
1976 <     123,   123,   123,   210,   230,   123,   227,   123,   123,   123,
1977 <     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1978 <     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1979 <     227,   227,   227,   231,   227,   231,   227,   227,   123,   230,
1980 <     227,   227,     1,    98,   191,   218,   287,   288,   289,   290,
1981 <     291,   227,   123,   230,   123,   227,   236,   236,   236,   236,
1982 <     236,   236,   236,   227,   227,   227,    51,   124,   336,   337,
1983 <     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1984 <       9,    10,    11,   238,   239,   227,   227,   227,   227,   227,
1985 <     227,   227,   227,   227,     8,   195,   411,   412,   227,   227,
1986 <     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1987 <     231,   227,   231,   227,   227,    13,    34,    43,    70,    99,
1988 <     100,   107,   132,   148,   209,   362,   363,   227,   227,   227,
1989 <     227,   227,   227,   227,   227,   227,    49,   185,   195,   342,
1990 <     343,   217,   231,   347,   227,   227,   227,   227,     4,    18,
1991 <      26,    40,    67,    69,    95,   128,   130,   149,   167,   172,
1992 <     176,   181,   184,   189,   203,   206,   208,   219,   226,   313,
1993 <     314,   227,   227,   227,   227,   227,    49,   161,   162,   163,
1994 <     165,   166,   168,   169,   171,   173,   176,   179,   180,   181,
1995 <     183,   188,   192,   193,   194,   202,   207,   309,   310,   227,
1996 <     227,   227,   227,   251,   253,   227,    69,   131,   160,   167,
1997 <     176,   203,   205,   206,   219,   226,   395,   396,   227,   230,
1998 <     230,   292,   228,   288,   227,    69,   131,   160,   167,   176,
1999 <     203,   205,   206,   219,   226,   386,   387,   227,   227,   231,
2000 <     238,   238,   238,   227,   231,   494,   490,   227,   231,   227,
2001 <     231,   108,   349,   227,   232,   232,   232,   227,   231,   227,
2002 <     231,   227,   231,   123,   204,   239,   230,   227,   227,   231,
2003 <     337,   412,   363,   343,   129,   129,   129,   314,   310,   396,
2004 <     227,   227,   227,    40,    67,    69,   114,   131,   166,   167,
2005 <     222,   226,   293,   294,   387,   227,   231,   294
2017 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
2018 >     230,   230,   230,   124,   233,   230,   230,     1,   101,   195,
2019 >     219,   294,   295,   296,   297,   298,   124,   124,   124,   124,
2020 >     230,   230,   124,   233,   124,   230,   239,   239,   239,   239,
2021 >     239,   239,   239,   230,   230,   230,    52,   125,   342,   343,
2022 >     230,   230,   230,   230,   230,   230,   230,   230,   230,    11,
2023 >      12,    13,   241,   242,   230,   230,   230,   230,   230,   230,
2024 >     230,   230,   230,     8,   199,   417,   418,   230,   230,   230,
2025 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   234,
2026 >     230,   234,   230,   230,    15,    40,    73,   102,   103,   108,
2027 >     133,   148,   210,   229,   368,   369,   230,   230,   230,   230,
2028 >     230,   230,   230,   230,   230,    48,   190,   199,   348,   349,
2029 >     218,   234,   353,   230,   230,   230,   230,     4,    20,    21,
2030 >      31,    69,    70,    72,    98,   106,   129,   131,   132,   149,
2031 >     171,   176,   180,   184,   189,   193,   204,   206,   207,   209,
2032 >     220,   228,   320,   321,   230,   230,   230,   230,    48,    50,
2033 >      51,   164,   165,   166,   169,   170,   172,   173,   175,   177,
2034 >     180,   182,   183,   188,   192,   196,   197,   198,   203,   208,
2035 >     316,   317,   230,   230,   230,   230,   230,   230,    72,   132,
2036 >     163,   171,   180,   204,   206,   207,   220,   228,   401,   402,
2037 >     230,   233,   233,   299,   231,   295,   230,   230,   230,   230,
2038 >     230,    72,   132,   163,   171,   180,   204,   206,   207,   220,
2039 >     228,   392,   393,   230,   230,   234,   241,   241,   241,   230,
2040 >     234,   497,   493,   230,   234,   230,   234,   109,   355,   230,
2041 >     235,   235,   235,   235,   235,   235,   230,   234,   230,   234,
2042 >     230,   234,   124,   205,   242,   233,   230,   230,   234,   343,
2043 >     418,   369,   349,   130,   132,   130,   132,   130,   130,   321,
2044 >     317,   402,   230,   230,   230,    70,    72,   115,   132,   170,
2045 >     171,   222,   228,   300,   301,   393,   230,   234,   301
2046   };
2047  
2048    /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
2049   static const yytype_uint16 yyr1[] =
2050   {
2051 <       0,   233,   234,   234,   235,   235,   235,   235,   235,   235,
2052 <     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
2053 <     235,   235,   235,   235,   235,   235,   235,   236,   236,   237,
2054 <     237,   237,   237,   237,   237,   237,   237,   238,   238,   239,
2055 <     239,   239,   239,   240,   241,   241,   242,   242,   242,   243,
2056 <     244,   245,   246,   246,   247,   247,   247,   247,   247,   247,
2057 <     247,   247,   247,   247,   247,   247,   247,   247,   247,   247,
2058 <     247,   247,   248,   249,   250,   250,   251,   251,   252,   252,
2059 <     253,   253,   254,   255,   256,   257,   258,   259,   260,   261,
2060 <     262,   263,   264,   265,   266,   267,   268,   269,   270,   270,
2061 <     271,   271,   271,   271,   272,   273,   274,   276,   275,   277,
2062 <     277,   278,   278,   278,   279,   280,   281,   282,   282,   283,
2063 <     283,   283,   284,   286,   285,   287,   287,   288,   288,   288,
2064 <     288,   289,   290,   290,   292,   291,   293,   293,   294,   294,
2065 <     294,   294,   294,   294,   294,   294,   294,   296,   295,   297,
2066 <     297,   298,   298,   298,   298,   298,   298,   298,   298,   298,
2067 <     298,   298,   299,   300,   301,   302,   303,   304,   305,   306,
2068 <     308,   307,   309,   309,   310,   310,   310,   310,   310,   310,
2069 <     310,   310,   310,   310,   310,   310,   310,   310,   310,   310,
2070 <     310,   310,   310,   310,   310,   312,   311,   313,   313,   314,
2071 <     314,   314,   314,   314,   314,   314,   314,   314,   314,   314,
2072 <     314,   314,   314,   314,   314,   314,   314,   314,   314,   314,
2073 <     314,   314,   314,   316,   315,   317,   317,   318,   318,   318,
2074 <     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
2075 <     318,   318,   318,   318,   319,   320,   321,   322,   323,   324,
2076 <     325,   326,   327,   328,   329,   330,   331,   332,   333,   335,
2077 <     334,   336,   336,   337,   337,   339,   338,   341,   340,   342,
2078 <     342,   343,   343,   343,   344,   344,   345,   345,   345,   345,
2079 <     345,   347,   346,   348,   348,   349,   349,   350,   351,   353,
2080 <     352,   354,   354,   355,   355,   355,   355,   355,   355,   355,
2081 <     355,   355,   356,   357,   358,   359,   361,   360,   362,   362,
2082 <     363,   363,   363,   363,   363,   363,   363,   363,   363,   363,
2083 <     364,   365,   366,   368,   367,   369,   369,   370,   370,   370,
2084 <     370,   371,   372,   373,   374,   375,   375,   376,   376,   377,
2085 <     379,   378,   380,   380,   381,   381,   381,   381,   382,   383,
2086 <     385,   384,   386,   386,   387,   387,   387,   387,   387,   387,
2087 <     387,   387,   387,   387,   389,   388,   390,   390,   391,   391,
2088 <     391,   392,   394,   393,   395,   395,   396,   396,   396,   396,
2089 <     396,   396,   396,   396,   396,   396,   398,   397,   399,   399,
2090 <     400,   400,   400,   400,   400,   400,   400,   400,   400,   400,
2091 <     400,   400,   400,   400,   400,   401,   402,   403,   404,   405,
2092 <     406,   407,   408,   408,   410,   409,   411,   411,   412,   412,
2093 <     413,   414,   415,   416,   417,   419,   418,   420,   420,   421,
2094 <     421,   421,   422,   423,   425,   424,   426,   426,   427,   427,
2095 <     427,   428,   429,   430,   431,   431,   432,   432,   433,   435,
2096 <     434,   436,   436,   437,   437,   437,   438,   439,   440,   441,
2097 <     441,   442,   442,   442,   442,   442,   442,   442,   442,   442,
2098 <     442,   442,   442,   442,   442,   442,   442,   442,   442,   442,
2099 <     442,   442,   442,   442,   442,   442,   442,   442,   442,   442,
2100 <     442,   442,   442,   442,   442,   442,   442,   442,   442,   442,
2101 <     442,   442,   442,   442,   442,   442,   442,   442,   442,   442,
2102 <     442,   443,   444,   445,   446,   447,   448,   449,   450,   451,
2103 <     452,   453,   454,   455,   456,   457,   458,   459,   460,   461,
2104 <     462,   463,   464,   465,   466,   467,   468,   469,   469,   470,
2105 <     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
2106 <     480,   481,   482,   483,   484,   485,   486,   488,   487,   489,
2107 <     489,   490,   490,   490,   490,   490,   490,   490,   490,   490,
2108 <     490,   490,   490,   490,   490,   490,   490,   490,   490,   490,
2109 <     490,   490,   492,   491,   493,   493,   494,   494,   494,   494,
2110 <     494,   494,   494,   494,   494,   494,   494,   494,   494,   494,
2111 <     494,   494,   494,   494,   494,   494,   494,   495,   496,   497,
2112 <     498,   499,   499,   500,   500,   500,   500,   500,   500,   500,
2113 <     500,   500,   500,   500,   500,   500,   501,   502,   503,   504,
2114 <     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
2115 <     514,   515,   515,   515,   515,   515,   515,   515,   515,   515,
2116 <     516,   517,   518,   519,   520,   521,   522,   523
2051 >       0,   236,   237,   237,   238,   238,   238,   238,   238,   238,
2052 >     238,   238,   238,   238,   238,   238,   238,   238,   238,   238,
2053 >     238,   238,   238,   238,   238,   238,   238,   238,   239,   239,
2054 >     240,   240,   240,   240,   240,   240,   240,   240,   241,   241,
2055 >     242,   242,   242,   242,   243,   244,   244,   245,   245,   245,
2056 >     246,   247,   248,   249,   249,   250,   250,   250,   250,   250,
2057 >     250,   250,   250,   250,   250,   250,   250,   250,   250,   250,
2058 >     250,   250,   250,   251,   252,   253,   254,   255,   256,   257,
2059 >     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
2060 >     268,   269,   269,   270,   270,   270,   270,   271,   272,   273,
2061 >     275,   274,   276,   276,   277,   277,   277,   278,   279,   281,
2062 >     280,   282,   282,   283,   283,   283,   283,   283,   284,   285,
2063 >     286,   287,   288,   289,   289,   290,   290,   290,   291,   293,
2064 >     292,   294,   294,   295,   295,   295,   295,   296,   297,   297,
2065 >     299,   298,   300,   300,   301,   301,   301,   301,   301,   301,
2066 >     301,   301,   303,   302,   304,   304,   305,   305,   305,   305,
2067 >     305,   305,   305,   305,   305,   305,   305,   306,   307,   308,
2068 >     309,   310,   311,   312,   313,   315,   314,   316,   316,   317,
2069 >     317,   317,   317,   317,   317,   317,   317,   317,   317,   317,
2070 >     317,   317,   317,   317,   317,   317,   317,   317,   317,   317,
2071 >     317,   319,   318,   320,   320,   321,   321,   321,   321,   321,
2072 >     321,   321,   321,   321,   321,   321,   321,   321,   321,   321,
2073 >     321,   321,   321,   321,   321,   321,   321,   321,   321,   321,
2074 >     321,   321,   321,   321,   323,   322,   324,   324,   325,   325,
2075 >     325,   325,   325,   325,   325,   325,   325,   325,   325,   325,
2076 >     325,   325,   325,   325,   326,   327,   328,   329,   330,   331,
2077 >     332,   333,   334,   335,   336,   337,   338,   339,   341,   340,
2078 >     342,   342,   343,   343,   345,   344,   347,   346,   348,   348,
2079 >     349,   349,   349,   350,   350,   351,   351,   351,   351,   351,
2080 >     353,   352,   354,   354,   355,   355,   356,   357,   359,   358,
2081 >     360,   360,   361,   361,   361,   361,   361,   361,   361,   361,
2082 >     361,   362,   363,   364,   365,   367,   366,   368,   368,   369,
2083 >     369,   369,   369,   369,   369,   369,   369,   369,   369,   370,
2084 >     371,   372,   374,   373,   375,   375,   376,   376,   376,   376,
2085 >     377,   378,   379,   380,   381,   381,   382,   382,   383,   385,
2086 >     384,   386,   386,   387,   387,   387,   387,   388,   389,   391,
2087 >     390,   392,   392,   393,   393,   393,   393,   393,   393,   393,
2088 >     393,   393,   393,   395,   394,   396,   396,   397,   397,   397,
2089 >     398,   400,   399,   401,   401,   402,   402,   402,   402,   402,
2090 >     402,   402,   402,   402,   402,   404,   403,   405,   405,   406,
2091 >     406,   406,   406,   406,   406,   406,   406,   406,   406,   406,
2092 >     406,   406,   406,   406,   407,   408,   409,   410,   411,   412,
2093 >     413,   414,   414,   416,   415,   417,   417,   418,   418,   419,
2094 >     420,   421,   422,   423,   425,   424,   426,   426,   427,   427,
2095 >     427,   428,   429,   431,   430,   432,   432,   433,   433,   433,
2096 >     434,   435,   436,   437,   437,   438,   438,   439,   441,   440,
2097 >     442,   442,   443,   443,   443,   444,   445,   446,   447,   447,
2098 >     448,   448,   448,   448,   448,   448,   448,   448,   448,   448,
2099 >     448,   448,   448,   448,   448,   448,   448,   448,   448,   448,
2100 >     448,   448,   448,   448,   448,   448,   448,   448,   448,   448,
2101 >     448,   448,   448,   448,   448,   448,   448,   448,   448,   448,
2102 >     448,   448,   448,   448,   448,   448,   448,   448,   449,   450,
2103 >     451,   452,   453,   454,   455,   456,   457,   458,   459,   460,
2104 >     461,   462,   463,   464,   465,   466,   467,   468,   469,   470,
2105 >     471,   472,   473,   474,   475,   476,   476,   477,   477,   478,
2106 >     479,   480,   481,   482,   483,   484,   485,   486,   487,   488,
2107 >     489,   491,   490,   492,   492,   493,   493,   493,   493,   493,
2108 >     493,   493,   493,   493,   493,   493,   493,   493,   493,   493,
2109 >     493,   493,   493,   493,   493,   493,   493,   495,   494,   496,
2110 >     496,   497,   497,   497,   497,   497,   497,   497,   497,   497,
2111 >     497,   497,   497,   497,   497,   497,   497,   497,   497,   497,
2112 >     497,   498,   499,   500,   501,   502,   503,   503,   504,   504,
2113 >     504,   504,   504,   504,   504,   504,   504,   504,   504,   504,
2114 >     504,   504,   504,   505,   506,   507,   508,   509,   510,   511,
2115 >     512,   513,   514,   515,   516,   517,   518,   519,   520,   520,
2116 >     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
2117 >     522,   523,   524,   525,   526,   527,   528,   529,   530
2118   };
2119  
2120    /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
# Line 2081 | Line 2122 | static const yytype_uint8 yyr2[] =
2122   {
2123         0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
2124         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2125 <       1,     1,     1,     1,     1,     2,     2,     0,     1,     2,
2126 <       3,     3,     3,     3,     3,     3,     3,     0,     1,     2,
2127 <       3,     3,     3,     5,     2,     1,     1,     1,     2,     4,
2128 <       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
2088 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2089 <       1,     2,     4,     4,     3,     1,     1,     1,     3,     1,
2090 <       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
2091 <       4,     4,     4,     4,     4,     4,     4,     5,     2,     1,
2092 <       1,     1,     1,     2,     4,     4,     4,     0,     6,     2,
2093 <       1,     1,     1,     2,     4,     4,     5,     2,     1,     1,
2094 <       1,     2,     4,     0,     6,     2,     1,     1,     1,     1,
2095 <       2,     4,     4,     4,     0,     5,     3,     1,     1,     1,
2096 <       1,     1,     1,     1,     1,     1,     1,     0,     6,     2,
2125 >       1,     1,     1,     1,     1,     1,     2,     2,     0,     1,
2126 >       2,     3,     3,     3,     3,     3,     3,     3,     0,     1,
2127 >       2,     3,     3,     3,     5,     2,     1,     1,     1,     2,
2128 >       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
2129         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2130 <       1,     2,     4,     4,     4,     4,     4,     4,     4,     4,
2130 >       1,     1,     2,     4,     4,     4,     4,     4,     4,     4,
2131 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2132 >       5,     2,     1,     1,     1,     1,     2,     4,     4,     4,
2133 >       0,     6,     2,     1,     1,     1,     2,     4,     4,     0,
2134 >       6,     2,     1,     1,     1,     1,     1,     2,     4,     4,
2135 >       4,     4,     5,     2,     1,     1,     1,     2,     4,     0,
2136 >       6,     2,     1,     1,     1,     1,     2,     4,     4,     4,
2137         0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
2138 +       1,     1,     0,     6,     2,     1,     1,     1,     1,     1,
2139 +       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
2140 +       4,     4,     4,     4,     4,     0,     5,     3,     1,     1,
2141         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2101       1,     1,     1,     1,     1,     0,     5,     3,     1,     3,
2102       1,     3,     1,     3,     1,     1,     1,     1,     1,     1,
2142         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2143 <       1,     1,     1,     0,     6,     2,     1,     1,     1,     1,
2143 >       1,     0,     5,     3,     1,     3,     1,     3,     1,     3,
2144 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
2145 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
2146 >       3,     1,     1,     1,     0,     6,     2,     1,     1,     1,
2147         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2148         1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
2149 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     0,
2150 <       5,     3,     1,     1,     1,     0,     6,     0,     5,     3,
2151 <       1,     1,     1,     1,     2,     1,     1,     1,     1,     1,
2152 <       2,     0,     5,     3,     1,     1,     3,     4,     4,     0,
2153 <       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
2154 <       1,     2,     4,     4,     4,     4,     0,     5,     3,     1,
2155 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2156 <       4,     4,     4,     0,     6,     2,     1,     1,     1,     1,
2157 <       2,     4,     4,     4,     5,     2,     1,     1,     1,     4,
2158 <       0,     6,     2,     1,     1,     1,     1,     2,     4,     4,
2159 <       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
2160 <       1,     1,     1,     1,     0,     6,     2,     1,     1,     1,
2161 <       2,     4,     0,     5,     3,     1,     1,     1,     1,     1,
2162 <       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
2121 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2122 <       1,     1,     1,     1,     2,     4,     4,     4,     4,     4,
2123 <       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
2124 <       4,     4,     4,     4,     4,     0,     6,     2,     1,     1,
2125 <       1,     1,     4,     4,     0,     6,     2,     1,     1,     1,
2126 <       1,     4,     4,     5,     2,     1,     1,     1,     4,     0,
2127 <       6,     2,     1,     1,     1,     1,     4,     4,     5,     2,
2149 >       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
2150 >       3,     1,     1,     1,     0,     6,     0,     5,     3,     1,
2151 >       1,     1,     1,     2,     1,     1,     1,     1,     1,     2,
2152 >       0,     5,     3,     1,     1,     3,     4,     4,     0,     6,
2153 >       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2154 >       2,     4,     4,     4,     4,     0,     5,     3,     1,     1,
2155 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
2156 >       4,     4,     0,     6,     2,     1,     1,     1,     1,     2,
2157 >       4,     4,     4,     5,     2,     1,     1,     1,     4,     0,
2158 >       6,     2,     1,     1,     1,     1,     2,     4,     4,     0,
2159 >       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
2160 >       1,     1,     1,     0,     6,     2,     1,     1,     1,     2,
2161 >       4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
2162 >       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
2163         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2164 +       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
2165 +       4,     4,     4,     0,     5,     3,     1,     1,     1,     4,
2166 +       4,     4,     4,     4,     0,     6,     2,     1,     1,     1,
2167 +       1,     4,     4,     0,     6,     2,     1,     1,     1,     1,
2168 +       4,     4,     5,     2,     1,     1,     1,     4,     0,     6,
2169 +       2,     1,     1,     1,     1,     4,     4,     5,     2,     1,
2170         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2171         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2172         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2173         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2174 <       1,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2174 >       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
2175         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2176         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2177         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2178 <       4,     4,     4,     4,     4,     4,     4,     0,     5,     3,
2178 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2179 >       4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
2180         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2181 +       1,     1,     1,     1,     1,     1,     1,     0,     5,     3,
2182         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2140       1,     1,     0,     5,     3,     1,     1,     1,     1,     1,
2183         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2184 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
2143 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
2144 <       1,     1,     1,     1,     1,     1,     4,     4,     4,     4,
2145 <       4,     4,     4,     4,     4,     4,     4,     4,     5,     2,
2184 >       1,     4,     4,     4,     4,     5,     2,     1,     1,     1,
2185         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2186 <       4,     4,     4,     4,     4,     4,     4,     4
2186 >       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
2187 >       4,     4,     4,     4,     4,     4,     4,     5,     2,     1,
2188 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2189 >       4,     4,     4,     4,     4,     4,     4,     4,     4
2190   };
2191  
2192  
# Line 2820 | Line 2862 | yyreduce:
2862    YY_REDUCE_PRINT (yyn);
2863    switch (yyn)
2864      {
2865 <        case 27:
2824 < #line 403 "conf_parser.y" /* yacc.c:1646  */
2825 <    { (yyval.number) = 0; }
2826 < #line 2827 "conf_parser.c" /* yacc.c:1646  */
2827 <    break;
2828 <
2829 <  case 29:
2865 >        case 28:
2866   #line 405 "conf_parser.y" /* yacc.c:1646  */
2867 <    {
2868 <                        (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number);
2833 <                }
2834 < #line 2835 "conf_parser.c" /* yacc.c:1646  */
2867 >    { (yyval.number) = 0; }
2868 > #line 2869 "conf_parser.c" /* yacc.c:1646  */
2869      break;
2870  
2871    case 30:
2872 < #line 409 "conf_parser.y" /* yacc.c:1646  */
2873 <    {
2874 <                        (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number);
2841 <                }
2842 < #line 2843 "conf_parser.c" /* yacc.c:1646  */
2872 > #line 406 "conf_parser.y" /* yacc.c:1646  */
2873 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2874 > #line 2875 "conf_parser.c" /* yacc.c:1646  */
2875      break;
2876  
2877    case 31:
2878 < #line 413 "conf_parser.y" /* yacc.c:1646  */
2879 <    {
2880 <                        (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number);
2849 <                }
2850 < #line 2851 "conf_parser.c" /* yacc.c:1646  */
2878 > #line 407 "conf_parser.y" /* yacc.c:1646  */
2879 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2880 > #line 2881 "conf_parser.c" /* yacc.c:1646  */
2881      break;
2882  
2883    case 32:
2884 < #line 417 "conf_parser.y" /* yacc.c:1646  */
2885 <    {
2886 <                        (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number);
2857 <                }
2858 < #line 2859 "conf_parser.c" /* yacc.c:1646  */
2884 > #line 408 "conf_parser.y" /* yacc.c:1646  */
2885 >    { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); }
2886 > #line 2887 "conf_parser.c" /* yacc.c:1646  */
2887      break;
2888  
2889    case 33:
2890 < #line 421 "conf_parser.y" /* yacc.c:1646  */
2891 <    {
2892 <                        (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number);
2865 <                }
2866 < #line 2867 "conf_parser.c" /* yacc.c:1646  */
2890 > #line 409 "conf_parser.y" /* yacc.c:1646  */
2891 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); }
2892 > #line 2893 "conf_parser.c" /* yacc.c:1646  */
2893      break;
2894  
2895    case 34:
2896 < #line 425 "conf_parser.y" /* yacc.c:1646  */
2897 <    {
2898 <                        (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number);
2873 <                }
2874 < #line 2875 "conf_parser.c" /* yacc.c:1646  */
2896 > #line 410 "conf_parser.y" /* yacc.c:1646  */
2897 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); }
2898 > #line 2899 "conf_parser.c" /* yacc.c:1646  */
2899      break;
2900  
2901    case 35:
2902 < #line 429 "conf_parser.y" /* yacc.c:1646  */
2903 <    {
2904 <                        (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number);
2881 <                }
2882 < #line 2883 "conf_parser.c" /* yacc.c:1646  */
2902 > #line 411 "conf_parser.y" /* yacc.c:1646  */
2903 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); }
2904 > #line 2905 "conf_parser.c" /* yacc.c:1646  */
2905      break;
2906  
2907    case 36:
2908 < #line 433 "conf_parser.y" /* yacc.c:1646  */
2909 <    {
2910 <                        (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number);
2889 <                }
2890 < #line 2891 "conf_parser.c" /* yacc.c:1646  */
2908 > #line 412 "conf_parser.y" /* yacc.c:1646  */
2909 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); }
2910 > #line 2911 "conf_parser.c" /* yacc.c:1646  */
2911      break;
2912  
2913    case 37:
2914 < #line 438 "conf_parser.y" /* yacc.c:1646  */
2914 > #line 413 "conf_parser.y" /* yacc.c:1646  */
2915 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); }
2916 > #line 2917 "conf_parser.c" /* yacc.c:1646  */
2917 >    break;
2918 >
2919 >  case 38:
2920 > #line 416 "conf_parser.y" /* yacc.c:1646  */
2921      { (yyval.number) = 0; }
2922 < #line 2897 "conf_parser.c" /* yacc.c:1646  */
2922 > #line 2923 "conf_parser.c" /* yacc.c:1646  */
2923      break;
2924  
2925 <  case 39:
2926 < #line 439 "conf_parser.y" /* yacc.c:1646  */
2925 >  case 40:
2926 > #line 417 "conf_parser.y" /* yacc.c:1646  */
2927      { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2928 < #line 2903 "conf_parser.c" /* yacc.c:1646  */
2928 > #line 2929 "conf_parser.c" /* yacc.c:1646  */
2929      break;
2930  
2931 <  case 40:
2932 < #line 440 "conf_parser.y" /* yacc.c:1646  */
2931 >  case 41:
2932 > #line 418 "conf_parser.y" /* yacc.c:1646  */
2933      { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2934 < #line 2909 "conf_parser.c" /* yacc.c:1646  */
2934 > #line 2935 "conf_parser.c" /* yacc.c:1646  */
2935      break;
2936  
2937 <  case 41:
2938 < #line 441 "conf_parser.y" /* yacc.c:1646  */
2937 >  case 42:
2938 > #line 419 "conf_parser.y" /* yacc.c:1646  */
2939      { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); }
2940 < #line 2915 "conf_parser.c" /* yacc.c:1646  */
2940 > #line 2941 "conf_parser.c" /* yacc.c:1646  */
2941      break;
2942  
2943 <  case 42:
2944 < #line 442 "conf_parser.y" /* yacc.c:1646  */
2943 >  case 43:
2944 > #line 420 "conf_parser.y" /* yacc.c:1646  */
2945      { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); }
2946 < #line 2921 "conf_parser.c" /* yacc.c:1646  */
2946 > #line 2947 "conf_parser.c" /* yacc.c:1646  */
2947      break;
2948  
2949 <  case 49:
2950 < #line 456 "conf_parser.y" /* yacc.c:1646  */
2949 >  case 50:
2950 > #line 433 "conf_parser.y" /* yacc.c:1646  */
2951      {
2952    if (conf_parser_ctx.pass == 2)
2953      add_conf_module(libio_basename(yylval.string));
2954   }
2955 < #line 2930 "conf_parser.c" /* yacc.c:1646  */
2955 > #line 2956 "conf_parser.c" /* yacc.c:1646  */
2956      break;
2957  
2958 <  case 50:
2959 < #line 462 "conf_parser.y" /* yacc.c:1646  */
2958 >  case 51:
2959 > #line 439 "conf_parser.y" /* yacc.c:1646  */
2960      {
2961    if (conf_parser_ctx.pass == 2)
2962      mod_add_path(yylval.string);
2963   }
2964 < #line 2939 "conf_parser.c" /* yacc.c:1646  */
2964 > #line 2965 "conf_parser.c" /* yacc.c:1646  */
2965      break;
2966  
2967 <  case 76:
2968 < #line 488 "conf_parser.y" /* yacc.c:1646  */
2967 >  case 73:
2968 > #line 472 "conf_parser.y" /* yacc.c:1646  */
2969      {
2970 < #ifdef HAVE_LIBCRYPTO
2945 <  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
2946 <    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
2947 < #endif
2948 < }
2949 < #line 2950 "conf_parser.c" /* yacc.c:1646  */
2950 <    break;
2951 <
2952 <  case 77:
2953 < #line 494 "conf_parser.y" /* yacc.c:1646  */
2954 <    {
2955 < #ifdef HAVE_LIBCRYPTO
2956 <  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
2957 <    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
2958 < #endif
2959 < }
2960 < #line 2961 "conf_parser.c" /* yacc.c:1646  */
2961 <    break;
2962 <
2963 <  case 80:
2964 < #line 503 "conf_parser.y" /* yacc.c:1646  */
2965 <    {
2966 < #ifdef HAVE_LIBCRYPTO
2967 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2968 <    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
2969 < #endif
2970 < }
2971 < #line 2972 "conf_parser.c" /* yacc.c:1646  */
2972 <    break;
2973 <
2974 <  case 81:
2975 < #line 509 "conf_parser.y" /* yacc.c:1646  */
2976 <    {
2977 < #ifdef HAVE_LIBCRYPTO
2978 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2979 <    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
2980 < #endif
2981 < }
2982 < #line 2983 "conf_parser.c" /* yacc.c:1646  */
2983 <    break;
2984 <
2985 <  case 82:
2986 < #line 517 "conf_parser.y" /* yacc.c:1646  */
2987 <    {
2988 < #ifdef HAVE_LIBCRYPTO
2989 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2970 >  if (conf_parser_ctx.pass == 2)
2971    {
2972 <    if (!ServerInfo.rsa_private_key_file)
2973 <    {
2993 <      conf_error_report("No rsa_private_key_file specified, SSL disabled");
2994 <      break;
2995 <    }
2996 <
2997 <    if (SSL_CTX_use_certificate_file(ServerInfo.server_ctx, yylval.string,
2998 <                                     SSL_FILETYPE_PEM) <= 0 ||
2999 <        SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3000 <                                     SSL_FILETYPE_PEM) <= 0)
3001 <    {
3002 <      report_crypto_errors();
3003 <      conf_error_report("Could not open/read certificate file");
3004 <      break;
3005 <    }
3006 <
3007 <    if (SSL_CTX_use_PrivateKey_file(ServerInfo.server_ctx, ServerInfo.rsa_private_key_file,
3008 <                                    SSL_FILETYPE_PEM) <= 0 ||
3009 <        SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3010 <                                    SSL_FILETYPE_PEM) <= 0)
3011 <    {
3012 <      report_crypto_errors();
3013 <      conf_error_report("Could not read RSA private key");
3014 <      break;
3015 <    }
3016 <
3017 <    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3018 <        !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3019 <    {
3020 <      report_crypto_errors();
3021 <      conf_error_report("Could not read RSA private key");
3022 <      break;
3023 <    }
2972 >    xfree(ConfigServerInfo.ssl_certificate_file);
2973 >    ConfigServerInfo.ssl_certificate_file = xstrdup(yylval.string);
2974    }
3025 #endif
2975   }
2976 < #line 3028 "conf_parser.c" /* yacc.c:1646  */
2976 > #line 2977 "conf_parser.c" /* yacc.c:1646  */
2977      break;
2978  
2979 <  case 83:
2980 < #line 559 "conf_parser.y" /* yacc.c:1646  */
2979 >  case 74:
2980 > #line 481 "conf_parser.y" /* yacc.c:1646  */
2981      {
2982 < #ifdef HAVE_LIBCRYPTO
3034 <  BIO *file = NULL;
3035 <
3036 <  if (conf_parser_ctx.pass != 1)
3037 <    break;
3038 <
3039 <  if (ServerInfo.rsa_private_key)
3040 <  {
3041 <    RSA_free(ServerInfo.rsa_private_key);
3042 <    ServerInfo.rsa_private_key = NULL;
3043 <  }
3044 <
3045 <  if (ServerInfo.rsa_private_key_file)
2982 >  if (conf_parser_ctx.pass == 2)
2983    {
2984 <    MyFree(ServerInfo.rsa_private_key_file);
2985 <    ServerInfo.rsa_private_key_file = NULL;
2984 >    xfree(ConfigServerInfo.rsa_private_key_file);
2985 >    ConfigServerInfo.rsa_private_key_file = xstrdup(yylval.string);
2986    }
2987 <
2988 <  ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3052 <
3053 <  if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3054 <  {
3055 <    conf_error_report("File open failed, ignoring");
2987 > }
2988 > #line 2989 "conf_parser.c" /* yacc.c:1646  */
2989      break;
3057  }
2990  
2991 <  ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
2992 <
2993 <  BIO_set_close(file, BIO_CLOSE);
2994 <  BIO_free(file);
3063 <
3064 <  if (ServerInfo.rsa_private_key == NULL)
2991 >  case 75:
2992 > #line 490 "conf_parser.y" /* yacc.c:1646  */
2993 >    {
2994 >  if (conf_parser_ctx.pass == 2)
2995    {
2996 <    conf_error_report("Couldn't extract key, ignoring");
2997 <    break;
2996 >    xfree(ConfigServerInfo.ssl_dh_param_file);
2997 >    ConfigServerInfo.ssl_dh_param_file = xstrdup(yylval.string);
2998    }
2999 <
3000 <  if (!RSA_check_key(ServerInfo.rsa_private_key))
3071 <  {
3072 <    RSA_free(ServerInfo.rsa_private_key);
3073 <    ServerInfo.rsa_private_key = NULL;
3074 <
3075 <    conf_error_report("Invalid key, ignoring");
2999 > }
3000 > #line 3001 "conf_parser.c" /* yacc.c:1646  */
3001      break;
3077  }
3002  
3003 <  if (RSA_size(ServerInfo.rsa_private_key) < 128)
3003 >  case 76:
3004 > #line 499 "conf_parser.y" /* yacc.c:1646  */
3005 >    {
3006 >  if (conf_parser_ctx.pass == 2)
3007    {
3008 <    RSA_free(ServerInfo.rsa_private_key);
3009 <    ServerInfo.rsa_private_key = NULL;
3083 <
3084 <    conf_error_report("Ignoring serverinfo::rsa_private_key_file -- need at least a 1024 bit key size");
3008 >    xfree(ConfigServerInfo.ssl_cipher_list);
3009 >    ConfigServerInfo.ssl_cipher_list = xstrdup(yylval.string);
3010    }
3086 #endif
3011   }
3012 < #line 3089 "conf_parser.c" /* yacc.c:1646  */
3012 > #line 3013 "conf_parser.c" /* yacc.c:1646  */
3013      break;
3014  
3015 <  case 84:
3016 < #line 617 "conf_parser.y" /* yacc.c:1646  */
3015 >  case 77:
3016 > #line 508 "conf_parser.y" /* yacc.c:1646  */
3017      {
3018 < /* TBD - XXX: error reporting */
3095 < #ifdef HAVE_LIBCRYPTO
3096 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3018 >  if (conf_parser_ctx.pass == 2)
3019    {
3020 <    BIO *file = BIO_new_file(yylval.string, "r");
3021 <
3100 <    if (file)
3101 <    {
3102 <      DH *dh = PEM_read_bio_DHparams(file, NULL, NULL, NULL);
3103 <
3104 <      BIO_free(file);
3105 <
3106 <      if (dh)
3107 <      {
3108 <        if (DH_size(dh) < 128)
3109 <          conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3110 <        else
3111 <          SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3112 <
3113 <        DH_free(dh);
3114 <      }
3115 <    }
3020 >    xfree(ConfigServerInfo.ssl_message_digest_algorithm);
3021 >    ConfigServerInfo.ssl_message_digest_algorithm = xstrdup(yylval.string);
3022    }
3117 #endif
3023   }
3024 < #line 3120 "conf_parser.c" /* yacc.c:1646  */
3024 > #line 3025 "conf_parser.c" /* yacc.c:1646  */
3025      break;
3026  
3027 <  case 85:
3028 < #line 645 "conf_parser.y" /* yacc.c:1646  */
3027 >  case 78:
3028 > #line 517 "conf_parser.y" /* yacc.c:1646  */
3029      {
3030 < #ifdef HAVE_LIBCRYPTO
3031 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3032 <    SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3033 < #endif
3030 >  if (conf_parser_ctx.pass == 2)
3031 >  {
3032 >    xfree(ConfigServerInfo.ssl_dh_elliptic_curve);
3033 >    ConfigServerInfo.ssl_dh_elliptic_curve = xstrdup(yylval.string);
3034 >  }
3035   }
3036 < #line 3131 "conf_parser.c" /* yacc.c:1646  */
3036 > #line 3037 "conf_parser.c" /* yacc.c:1646  */
3037      break;
3038  
3039 <  case 86:
3040 < #line 653 "conf_parser.y" /* yacc.c:1646  */
3039 >  case 79:
3040 > #line 526 "conf_parser.y" /* yacc.c:1646  */
3041      {
3042 <  /* this isn't rehashable */
3043 <  if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3042 >  /* This isn't rehashable */
3043 >  if (conf_parser_ctx.pass == 2 && !ConfigServerInfo.name)
3044    {
3045 <    if (valid_servname(yylval.string))
3046 <      ServerInfo.name = xstrdup(yylval.string);
3045 >    if (server_valid_name(yylval.string) == true)
3046 >      ConfigServerInfo.name = xstrdup(yylval.string);
3047      else
3048      {
3049        conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3050 <      exit(0);
3050 >      exit(EXIT_FAILURE);
3051      }
3052    }
3053   }
3054 < #line 3149 "conf_parser.c" /* yacc.c:1646  */
3054 > #line 3055 "conf_parser.c" /* yacc.c:1646  */
3055      break;
3056  
3057 <  case 87:
3058 < #line 668 "conf_parser.y" /* yacc.c:1646  */
3057 >  case 80:
3058 > #line 541 "conf_parser.y" /* yacc.c:1646  */
3059      {
3060 <  /* this isn't rehashable */
3061 <  if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3060 >  /* This isn't rehashable */
3061 >  if (conf_parser_ctx.pass == 2 && !ConfigServerInfo.sid)
3062    {
3063      if (valid_sid(yylval.string))
3064 <      ServerInfo.sid = xstrdup(yylval.string);
3064 >      ConfigServerInfo.sid = xstrdup(yylval.string);
3065      else
3066      {
3067        conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3068 <      exit(0);
3068 >      exit(EXIT_FAILURE);
3069      }
3070    }
3071   }
3072 < #line 3167 "conf_parser.c" /* yacc.c:1646  */
3072 > #line 3073 "conf_parser.c" /* yacc.c:1646  */
3073      break;
3074  
3075 <  case 88:
3076 < #line 683 "conf_parser.y" /* yacc.c:1646  */
3075 >  case 81:
3076 > #line 556 "conf_parser.y" /* yacc.c:1646  */
3077      {
3078    if (conf_parser_ctx.pass == 2)
3079    {
3080 <    MyFree(ServerInfo.description);
3081 <    ServerInfo.description = xstrdup(yylval.string);
3080 >    xfree(ConfigServerInfo.description);
3081 >    ConfigServerInfo.description = xstrdup(yylval.string);
3082 >    strlcpy(me.info, ConfigServerInfo.description, sizeof(me.info));
3083    }
3084   }
3085 < #line 3179 "conf_parser.c" /* yacc.c:1646  */
3085 > #line 3086 "conf_parser.c" /* yacc.c:1646  */
3086      break;
3087  
3088 <  case 89:
3089 < #line 692 "conf_parser.y" /* yacc.c:1646  */
3088 >  case 82:
3089 > #line 566 "conf_parser.y" /* yacc.c:1646  */
3090      {
3091    if (conf_parser_ctx.pass == 2)
3092    {
3093      char *p;
3094  
3095 <    if ((p = strchr(yylval.string, ' ')) != NULL)
3096 <      p = '\0';
3095 >    if ((p = strchr(yylval.string, ' ')))
3096 >      *p = '\0';
3097  
3098 <    MyFree(ServerInfo.network_name);
3099 <    ServerInfo.network_name = xstrdup(yylval.string);
3098 >    xfree(ConfigServerInfo.network_name);
3099 >    ConfigServerInfo.network_name = xstrdup(yylval.string);
3100    }
3101   }
3102 < #line 3196 "conf_parser.c" /* yacc.c:1646  */
3102 > #line 3103 "conf_parser.c" /* yacc.c:1646  */
3103      break;
3104  
3105 <  case 90:
3106 < #line 706 "conf_parser.y" /* yacc.c:1646  */
3105 >  case 83:
3106 > #line 580 "conf_parser.y" /* yacc.c:1646  */
3107      {
3108    if (conf_parser_ctx.pass != 2)
3109      break;
3110  
3111 <  MyFree(ServerInfo.network_desc);
3112 <  ServerInfo.network_desc = xstrdup(yylval.string);
3111 >  xfree(ConfigServerInfo.network_desc);
3112 >  ConfigServerInfo.network_desc = xstrdup(yylval.string);
3113   }
3114 < #line 3208 "conf_parser.c" /* yacc.c:1646  */
3114 > #line 3115 "conf_parser.c" /* yacc.c:1646  */
3115      break;
3116  
3117 <  case 91:
3118 < #line 715 "conf_parser.y" /* yacc.c:1646  */
3117 >  case 84:
3118 > #line 589 "conf_parser.y" /* yacc.c:1646  */
3119      {
3120    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3121    {
# Line 3224 | Line 3131 | yyreduce:
3131        ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3132      else
3133      {
3134 <      assert(res != NULL);
3134 >      assert(res);
3135  
3136 <      memcpy(&ServerInfo.ip, res->ai_addr, res->ai_addrlen);
3137 <      ServerInfo.ip.ss.ss_family = res->ai_family;
3138 <      ServerInfo.ip.ss_len = res->ai_addrlen;
3136 >      memcpy(&ConfigServerInfo.ip, res->ai_addr, res->ai_addrlen);
3137 >      ConfigServerInfo.ip.ss.ss_family = res->ai_family;
3138 >      ConfigServerInfo.ip.ss_len = res->ai_addrlen;
3139        freeaddrinfo(res);
3140  
3141 <      ServerInfo.specific_ipv4_vhost = 1;
3141 >      ConfigServerInfo.specific_ipv4_vhost = 1;
3142      }
3143    }
3144   }
3145 < #line 3239 "conf_parser.c" /* yacc.c:1646  */
3145 > #line 3146 "conf_parser.c" /* yacc.c:1646  */
3146      break;
3147  
3148 <  case 92:
3149 < #line 743 "conf_parser.y" /* yacc.c:1646  */
3148 >  case 85:
3149 > #line 617 "conf_parser.y" /* yacc.c:1646  */
3150      {
3244 #ifdef IPV6
3151    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3152    {
3153      struct addrinfo hints, *res;
# Line 3256 | Line 3162 | yyreduce:
3162        ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3163      else
3164      {
3165 <      assert(res != NULL);
3165 >      assert(res);
3166  
3167 <      memcpy(&ServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3168 <      ServerInfo.ip6.ss.ss_family = res->ai_family;
3169 <      ServerInfo.ip6.ss_len = res->ai_addrlen;
3167 >      memcpy(&ConfigServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3168 >      ConfigServerInfo.ip6.ss.ss_family = res->ai_family;
3169 >      ConfigServerInfo.ip6.ss_len = res->ai_addrlen;
3170        freeaddrinfo(res);
3171  
3172 <      ServerInfo.specific_ipv6_vhost = 1;
3172 >      ConfigServerInfo.specific_ipv6_vhost = 1;
3173      }
3174    }
3269 #endif
3175   }
3176 < #line 3272 "conf_parser.c" /* yacc.c:1646  */
3176 > #line 3177 "conf_parser.c" /* yacc.c:1646  */
3177      break;
3178  
3179 <  case 93:
3180 < #line 773 "conf_parser.y" /* yacc.c:1646  */
3179 >  case 86:
3180 > #line 645 "conf_parser.y" /* yacc.c:1646  */
3181      {
3182    if (conf_parser_ctx.pass != 2)
3183      break;
3184  
3185    if ((yyvsp[-1].number) < MAXCLIENTS_MIN)
3186    {
3187 <    char buf[IRCD_BUFSIZE];
3187 >    char buf[IRCD_BUFSIZE] = "";
3188  
3189      snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3190      conf_error_report(buf);
3191 <    ServerInfo.max_clients = MAXCLIENTS_MIN;
3191 >    ConfigServerInfo.default_max_clients = MAXCLIENTS_MIN;
3192    }
3193    else if ((yyvsp[-1].number) > MAXCLIENTS_MAX)
3194    {
3195 <    char buf[IRCD_BUFSIZE];
3195 >    char buf[IRCD_BUFSIZE] = "";
3196  
3197      snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3198      conf_error_report(buf);
3199 <    ServerInfo.max_clients = MAXCLIENTS_MAX;
3199 >    ConfigServerInfo.default_max_clients = MAXCLIENTS_MAX;
3200    }
3201    else
3202 <    ServerInfo.max_clients = (yyvsp[-1].number);
3202 >    ConfigServerInfo.default_max_clients = (yyvsp[-1].number);
3203   }
3204 < #line 3300 "conf_parser.c" /* yacc.c:1646  */
3204 > #line 3205 "conf_parser.c" /* yacc.c:1646  */
3205      break;
3206  
3207 <  case 94:
3208 < #line 798 "conf_parser.y" /* yacc.c:1646  */
3207 >  case 87:
3208 > #line 670 "conf_parser.y" /* yacc.c:1646  */
3209      {
3210    if (conf_parser_ctx.pass != 2)
3211      break;
# Line 3308 | Line 3213 | yyreduce:
3213    if ((yyvsp[-1].number) < 9)
3214    {
3215      conf_error_report("max_nick_length too low, setting to 9");
3216 <    ServerInfo.max_nick_length = 9;
3216 >    ConfigServerInfo.max_nick_length = 9;
3217    }
3218    else if ((yyvsp[-1].number) > NICKLEN)
3219    {
3220 <    char buf[IRCD_BUFSIZE];
3220 >    char buf[IRCD_BUFSIZE] = "";
3221  
3222      snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3223      conf_error_report(buf);
3224 <    ServerInfo.max_nick_length = NICKLEN;
3224 >    ConfigServerInfo.max_nick_length = NICKLEN;
3225    }
3226    else
3227 <    ServerInfo.max_nick_length = (yyvsp[-1].number);
3227 >    ConfigServerInfo.max_nick_length = (yyvsp[-1].number);
3228   }
3229 < #line 3325 "conf_parser.c" /* yacc.c:1646  */
3229 > #line 3230 "conf_parser.c" /* yacc.c:1646  */
3230      break;
3231  
3232 <  case 95:
3233 < #line 820 "conf_parser.y" /* yacc.c:1646  */
3232 >  case 88:
3233 > #line 692 "conf_parser.y" /* yacc.c:1646  */
3234      {
3235    if (conf_parser_ctx.pass != 2)
3236      break;
# Line 3333 | Line 3238 | yyreduce:
3238    if ((yyvsp[-1].number) < 80)
3239    {
3240      conf_error_report("max_topic_length too low, setting to 80");
3241 <    ServerInfo.max_topic_length = 80;
3241 >    ConfigServerInfo.max_topic_length = 80;
3242    }
3243    else if ((yyvsp[-1].number) > TOPICLEN)
3244    {
3245 <    char buf[IRCD_BUFSIZE];
3245 >    char buf[IRCD_BUFSIZE] = "";
3246  
3247      snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3248      conf_error_report(buf);
3249 <    ServerInfo.max_topic_length = TOPICLEN;
3249 >    ConfigServerInfo.max_topic_length = TOPICLEN;
3250    }
3251    else
3252 <    ServerInfo.max_topic_length = (yyvsp[-1].number);
3252 >    ConfigServerInfo.max_topic_length = (yyvsp[-1].number);
3253   }
3254 < #line 3350 "conf_parser.c" /* yacc.c:1646  */
3254 > #line 3255 "conf_parser.c" /* yacc.c:1646  */
3255      break;
3256  
3257 <  case 96:
3258 < #line 842 "conf_parser.y" /* yacc.c:1646  */
3257 >  case 89:
3258 > #line 714 "conf_parser.y" /* yacc.c:1646  */
3259      {
3260    if (conf_parser_ctx.pass == 2)
3261 <    ServerInfo.hub = yylval.number;
3261 >    ConfigServerInfo.hub = yylval.number;
3262   }
3263 < #line 3359 "conf_parser.c" /* yacc.c:1646  */
3263 > #line 3264 "conf_parser.c" /* yacc.c:1646  */
3264      break;
3265  
3266 <  case 104:
3267 < #line 857 "conf_parser.y" /* yacc.c:1646  */
3266 >  case 97:
3267 > #line 732 "conf_parser.y" /* yacc.c:1646  */
3268      {
3269    if (conf_parser_ctx.pass != 2)
3270      break;
3271  
3272 <  MyFree(AdminInfo.name);
3273 <  AdminInfo.name = xstrdup(yylval.string);
3272 >  xfree(ConfigAdminInfo.name);
3273 >  ConfigAdminInfo.name = xstrdup(yylval.string);
3274   }
3275 < #line 3371 "conf_parser.c" /* yacc.c:1646  */
3275 > #line 3276 "conf_parser.c" /* yacc.c:1646  */
3276      break;
3277  
3278 <  case 105:
3279 < #line 866 "conf_parser.y" /* yacc.c:1646  */
3278 >  case 98:
3279 > #line 741 "conf_parser.y" /* yacc.c:1646  */
3280      {
3281    if (conf_parser_ctx.pass != 2)
3282      break;
3283  
3284 <  MyFree(AdminInfo.email);
3285 <  AdminInfo.email = xstrdup(yylval.string);
3284 >  xfree(ConfigAdminInfo.email);
3285 >  ConfigAdminInfo.email = xstrdup(yylval.string);
3286   }
3287 < #line 3383 "conf_parser.c" /* yacc.c:1646  */
3287 > #line 3288 "conf_parser.c" /* yacc.c:1646  */
3288      break;
3289  
3290 <  case 106:
3291 < #line 875 "conf_parser.y" /* yacc.c:1646  */
3290 >  case 99:
3291 > #line 750 "conf_parser.y" /* yacc.c:1646  */
3292      {
3293    if (conf_parser_ctx.pass != 2)
3294      break;
3295  
3296 <  MyFree(AdminInfo.description);
3297 <  AdminInfo.description = xstrdup(yylval.string);
3296 >  xfree(ConfigAdminInfo.description);
3297 >  ConfigAdminInfo.description = xstrdup(yylval.string);
3298   }
3299 < #line 3395 "conf_parser.c" /* yacc.c:1646  */
3299 > #line 3300 "conf_parser.c" /* yacc.c:1646  */
3300      break;
3301  
3302 <  case 107:
3303 < #line 887 "conf_parser.y" /* yacc.c:1646  */
3302 >  case 100:
3303 > #line 763 "conf_parser.y" /* yacc.c:1646  */
3304      {
3305    if (conf_parser_ctx.pass == 2)
3306      reset_block_state();
3307   }
3308 < #line 3404 "conf_parser.c" /* yacc.c:1646  */
3308 > #line 3309 "conf_parser.c" /* yacc.c:1646  */
3309      break;
3310  
3311 <  case 108:
3312 < #line 891 "conf_parser.y" /* yacc.c:1646  */
3311 >  case 101:
3312 > #line 767 "conf_parser.y" /* yacc.c:1646  */
3313      {
3314 <  dlink_node *ptr = NULL;
3314 >  dlink_node *node = NULL;
3315  
3316    if (conf_parser_ctx.pass != 2)
3317      break;
# Line 3414 | Line 3319 | yyreduce:
3319    if (!block_state.file.buf[0])
3320      break;
3321  
3322 <  DLINK_FOREACH(ptr, block_state.mask.list.head)
3323 <    motd_add(ptr->data, block_state.file.buf);
3322 >  DLINK_FOREACH(node, block_state.mask.list.head)
3323 >    motd_add(node->data, block_state.file.buf);
3324   }
3325 < #line 3421 "conf_parser.c" /* yacc.c:1646  */
3325 > #line 3326 "conf_parser.c" /* yacc.c:1646  */
3326      break;
3327  
3328 <  case 114:
3329 < #line 908 "conf_parser.y" /* yacc.c:1646  */
3328 >  case 107:
3329 > #line 784 "conf_parser.y" /* yacc.c:1646  */
3330      {
3331    if (conf_parser_ctx.pass == 2)
3332      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3333   }
3334 < #line 3430 "conf_parser.c" /* yacc.c:1646  */
3334 > #line 3335 "conf_parser.c" /* yacc.c:1646  */
3335      break;
3336  
3337 <  case 115:
3338 < #line 914 "conf_parser.y" /* yacc.c:1646  */
3337 >  case 108:
3338 > #line 790 "conf_parser.y" /* yacc.c:1646  */
3339      {
3340    if (conf_parser_ctx.pass == 2)
3341      strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3342   }
3343 < #line 3439 "conf_parser.c" /* yacc.c:1646  */
3343 > #line 3344 "conf_parser.c" /* yacc.c:1646  */
3344      break;
3345  
3346 <  case 122:
3347 < #line 929 "conf_parser.y" /* yacc.c:1646  */
3346 >  case 109:
3347 > #line 800 "conf_parser.y" /* yacc.c:1646  */
3348      {
3349    if (conf_parser_ctx.pass == 2)
3350 <    ConfigLoggingEntry.use_logging = yylval.number;
3350 >    reset_block_state();
3351 > }
3352 > #line 3353 "conf_parser.c" /* yacc.c:1646  */
3353 >    break;
3354 >
3355 >  case 110:
3356 > #line 804 "conf_parser.y" /* yacc.c:1646  */
3357 >    {
3358 >  if (conf_parser_ctx.pass != 2)
3359 >    break;
3360 >
3361 >  if (!block_state.command.buf[0] ||
3362 >      !block_state.name.buf[0] ||
3363 >      !block_state.nick.buf[0] ||
3364 >      !block_state.host.buf[0])
3365 >    break;
3366 >
3367 >  pseudo_register(block_state.name.buf, block_state.nick.buf, block_state.host.buf,
3368 >                  block_state.prepend.buf, block_state.command.buf);
3369 > }
3370 > #line 3371 "conf_parser.c" /* yacc.c:1646  */
3371 >    break;
3372 >
3373 >  case 118:
3374 > #line 822 "conf_parser.y" /* yacc.c:1646  */
3375 >    {
3376 >  if (conf_parser_ctx.pass == 2)
3377 >    strlcpy(block_state.command.buf, yylval.string, sizeof(block_state.command.buf));
3378 > }
3379 > #line 3380 "conf_parser.c" /* yacc.c:1646  */
3380 >    break;
3381 >
3382 >  case 119:
3383 > #line 828 "conf_parser.y" /* yacc.c:1646  */
3384 >    {
3385 >  if (conf_parser_ctx.pass == 2)
3386 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3387 > }
3388 > #line 3389 "conf_parser.c" /* yacc.c:1646  */
3389 >    break;
3390 >
3391 >  case 120:
3392 > #line 834 "conf_parser.y" /* yacc.c:1646  */
3393 >    {
3394 >  if (conf_parser_ctx.pass == 2)
3395 >    strlcpy(block_state.prepend.buf, yylval.string, sizeof(block_state.prepend.buf));
3396 > }
3397 > #line 3398 "conf_parser.c" /* yacc.c:1646  */
3398 >    break;
3399 >
3400 >  case 121:
3401 > #line 840 "conf_parser.y" /* yacc.c:1646  */
3402 >    {
3403 >  if (conf_parser_ctx.pass == 2)
3404 >  {
3405 >    struct split_nuh_item nuh;
3406 >
3407 >    nuh.nuhmask  = yylval.string;
3408 >    nuh.nickptr  = NULL;
3409 >    nuh.userptr  = block_state.nick.buf;
3410 >    nuh.hostptr  = block_state.host.buf;
3411 >    nuh.nicksize = 0;
3412 >    nuh.usersize = sizeof(block_state.nick.buf);
3413 >    nuh.hostsize = sizeof(block_state.host.buf);
3414 >
3415 >    split_nuh(&nuh);
3416 >  }
3417   }
3418 < #line 3448 "conf_parser.c" /* yacc.c:1646  */
3418 > #line 3419 "conf_parser.c" /* yacc.c:1646  */
3419      break;
3420  
3421 <  case 123:
3422 < #line 935 "conf_parser.y" /* yacc.c:1646  */
3421 >  case 128:
3422 > #line 868 "conf_parser.y" /* yacc.c:1646  */
3423 >    {
3424 >  if (conf_parser_ctx.pass == 2)
3425 >    ConfigLog.use_logging = yylval.number;
3426 > }
3427 > #line 3428 "conf_parser.c" /* yacc.c:1646  */
3428 >    break;
3429 >
3430 >  case 129:
3431 > #line 874 "conf_parser.y" /* yacc.c:1646  */
3432      {
3433    if (conf_parser_ctx.pass == 2)
3434      reset_block_state();
3435   }
3436 < #line 3457 "conf_parser.c" /* yacc.c:1646  */
3436 > #line 3437 "conf_parser.c" /* yacc.c:1646  */
3437      break;
3438  
3439 <  case 124:
3440 < #line 939 "conf_parser.y" /* yacc.c:1646  */
3439 >  case 130:
3440 > #line 878 "conf_parser.y" /* yacc.c:1646  */
3441      {
3442    if (conf_parser_ctx.pass != 2)
3443      break;
# Line 3466 | Line 3446 | yyreduce:
3446      log_set_file(block_state.type.value, block_state.size.value,
3447                   block_state.file.buf);
3448   }
3449 < #line 3470 "conf_parser.c" /* yacc.c:1646  */
3449 > #line 3450 "conf_parser.c" /* yacc.c:1646  */
3450      break;
3451  
3452 <  case 131:
3453 < #line 955 "conf_parser.y" /* yacc.c:1646  */
3452 >  case 137:
3453 > #line 894 "conf_parser.y" /* yacc.c:1646  */
3454      {
3455    if (conf_parser_ctx.pass != 2)
3456      break;
3457  
3458    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3459   }
3460 < #line 3481 "conf_parser.c" /* yacc.c:1646  */
3460 > #line 3461 "conf_parser.c" /* yacc.c:1646  */
3461      break;
3462  
3463 <  case 132:
3464 < #line 963 "conf_parser.y" /* yacc.c:1646  */
3463 >  case 138:
3464 > #line 902 "conf_parser.y" /* yacc.c:1646  */
3465      {
3466    block_state.size.value = (yyvsp[-1].number);
3467   }
3468 < #line 3489 "conf_parser.c" /* yacc.c:1646  */
3468 > #line 3469 "conf_parser.c" /* yacc.c:1646  */
3469      break;
3470  
3471 <  case 133:
3472 < #line 966 "conf_parser.y" /* yacc.c:1646  */
3471 >  case 139:
3472 > #line 905 "conf_parser.y" /* yacc.c:1646  */
3473      {
3474    block_state.size.value = 0;
3475   }
3476 < #line 3497 "conf_parser.c" /* yacc.c:1646  */
3476 > #line 3477 "conf_parser.c" /* yacc.c:1646  */
3477      break;
3478  
3479 <  case 134:
3480 < #line 971 "conf_parser.y" /* yacc.c:1646  */
3479 >  case 140:
3480 > #line 910 "conf_parser.y" /* yacc.c:1646  */
3481      {
3482    if (conf_parser_ctx.pass == 2)
3483      block_state.type.value = 0;
3484   }
3485 < #line 3506 "conf_parser.c" /* yacc.c:1646  */
3485 > #line 3486 "conf_parser.c" /* yacc.c:1646  */
3486      break;
3487  
3488 <  case 138:
3489 < #line 978 "conf_parser.y" /* yacc.c:1646  */
3488 >  case 144:
3489 > #line 917 "conf_parser.y" /* yacc.c:1646  */
3490      {
3491    if (conf_parser_ctx.pass == 2)
3492      block_state.type.value = LOG_TYPE_USER;
3493   }
3494 < #line 3515 "conf_parser.c" /* yacc.c:1646  */
3494 > #line 3495 "conf_parser.c" /* yacc.c:1646  */
3495      break;
3496  
3497 <  case 139:
3498 < #line 982 "conf_parser.y" /* yacc.c:1646  */
3497 >  case 145:
3498 > #line 921 "conf_parser.y" /* yacc.c:1646  */
3499      {
3500    if (conf_parser_ctx.pass == 2)
3501      block_state.type.value = LOG_TYPE_OPER;
3502   }
3503 < #line 3524 "conf_parser.c" /* yacc.c:1646  */
3503 > #line 3504 "conf_parser.c" /* yacc.c:1646  */
3504      break;
3505  
3506 <  case 140:
3507 < #line 986 "conf_parser.y" /* yacc.c:1646  */
3528 <    {
3529 <  if (conf_parser_ctx.pass == 2)
3530 <    block_state.type.value = LOG_TYPE_GLINE;
3531 < }
3532 < #line 3533 "conf_parser.c" /* yacc.c:1646  */
3533 <    break;
3534 <
3535 <  case 141:
3536 < #line 990 "conf_parser.y" /* yacc.c:1646  */
3506 >  case 146:
3507 > #line 925 "conf_parser.y" /* yacc.c:1646  */
3508      {
3509    if (conf_parser_ctx.pass == 2)
3510      block_state.type.value = LOG_TYPE_XLINE;
3511   }
3512 < #line 3542 "conf_parser.c" /* yacc.c:1646  */
3512 > #line 3513 "conf_parser.c" /* yacc.c:1646  */
3513      break;
3514  
3515 <  case 142:
3516 < #line 994 "conf_parser.y" /* yacc.c:1646  */
3515 >  case 147:
3516 > #line 929 "conf_parser.y" /* yacc.c:1646  */
3517      {
3518    if (conf_parser_ctx.pass == 2)
3519      block_state.type.value = LOG_TYPE_RESV;
3520   }
3521 < #line 3551 "conf_parser.c" /* yacc.c:1646  */
3521 > #line 3522 "conf_parser.c" /* yacc.c:1646  */
3522      break;
3523  
3524 <  case 143:
3525 < #line 998 "conf_parser.y" /* yacc.c:1646  */
3524 >  case 148:
3525 > #line 933 "conf_parser.y" /* yacc.c:1646  */
3526      {
3527    if (conf_parser_ctx.pass == 2)
3528      block_state.type.value = LOG_TYPE_DLINE;
3529   }
3530 < #line 3560 "conf_parser.c" /* yacc.c:1646  */
3530 > #line 3531 "conf_parser.c" /* yacc.c:1646  */
3531      break;
3532  
3533 <  case 144:
3534 < #line 1002 "conf_parser.y" /* yacc.c:1646  */
3533 >  case 149:
3534 > #line 937 "conf_parser.y" /* yacc.c:1646  */
3535      {
3536    if (conf_parser_ctx.pass == 2)
3537      block_state.type.value = LOG_TYPE_KLINE;
3538   }
3539 < #line 3569 "conf_parser.c" /* yacc.c:1646  */
3539 > #line 3540 "conf_parser.c" /* yacc.c:1646  */
3540      break;
3541  
3542 <  case 145:
3543 < #line 1006 "conf_parser.y" /* yacc.c:1646  */
3542 >  case 150:
3543 > #line 941 "conf_parser.y" /* yacc.c:1646  */
3544      {
3545    if (conf_parser_ctx.pass == 2)
3546      block_state.type.value = LOG_TYPE_KILL;
3547   }
3548 < #line 3578 "conf_parser.c" /* yacc.c:1646  */
3548 > #line 3549 "conf_parser.c" /* yacc.c:1646  */
3549      break;
3550  
3551 <  case 146:
3552 < #line 1010 "conf_parser.y" /* yacc.c:1646  */
3551 >  case 151:
3552 > #line 945 "conf_parser.y" /* yacc.c:1646  */
3553      {
3554    if (conf_parser_ctx.pass == 2)
3555      block_state.type.value = LOG_TYPE_DEBUG;
3556   }
3557 < #line 3587 "conf_parser.c" /* yacc.c:1646  */
3557 > #line 3558 "conf_parser.c" /* yacc.c:1646  */
3558      break;
3559  
3560 <  case 147:
3561 < #line 1020 "conf_parser.y" /* yacc.c:1646  */
3560 >  case 152:
3561 > #line 955 "conf_parser.y" /* yacc.c:1646  */
3562      {
3563    if (conf_parser_ctx.pass != 2)
3564      break;
# Line 3595 | Line 3566 | yyreduce:
3566    reset_block_state();
3567    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3568   }
3569 < #line 3599 "conf_parser.c" /* yacc.c:1646  */
3569 > #line 3570 "conf_parser.c" /* yacc.c:1646  */
3570      break;
3571  
3572 <  case 148:
3573 < #line 1027 "conf_parser.y" /* yacc.c:1646  */
3572 >  case 153:
3573 > #line 962 "conf_parser.y" /* yacc.c:1646  */
3574      {
3575 <  dlink_node *ptr = NULL;
3575 >  dlink_node *node = NULL;
3576  
3577    if (conf_parser_ctx.pass != 2)
3578      break;
3579  
3580    if (!block_state.name.buf[0])
3581      break;
3582 < #ifdef HAVE_LIBCRYPTO
3612 <  if (!block_state.file.buf[0] &&
3613 <      !block_state.rpass.buf[0])
3614 <    break;
3615 < #else
3582 >
3583    if (!block_state.rpass.buf[0])
3584      break;
3618 #endif
3585  
3586 <  DLINK_FOREACH(ptr, block_state.mask.list.head)
3586 >  DLINK_FOREACH(node, block_state.mask.list.head)
3587    {
3588      struct MaskItem *conf = NULL;
3589      struct split_nuh_item nuh;
3590 +    char *s = node->data;
3591 +
3592 +    if (EmptyString(s))
3593 +      continue;
3594  
3595 <    nuh.nuhmask  = ptr->data;
3595 >    nuh.nuhmask  = s;
3596      nuh.nickptr  = NULL;
3597      nuh.userptr  = block_state.user.buf;
3598      nuh.hostptr  = block_state.host.buf;
# Line 3642 | Line 3612 | yyreduce:
3612      if (block_state.rpass.buf[0])
3613        conf->passwd = xstrdup(block_state.rpass.buf);
3614  
3615 +    if (block_state.whois.buf[0])
3616 +      conf->whois = xstrdup(block_state.whois.buf);
3617 +
3618      conf->flags = block_state.flags.value;
3619      conf->modes = block_state.modes.value;
3620      conf->port  = block_state.port.value;
3621      conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3622  
3623      conf_add_class_to_conf(conf, block_state.class.buf);
3651
3652 #ifdef HAVE_LIBCRYPTO
3653    if (block_state.file.buf[0])
3654    {
3655      BIO *file = NULL;
3656      RSA *pkey = NULL;
3657
3658      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3659      {
3660        conf_error_report("Ignoring rsa_public_key_file -- file doesn't exist");
3661        break;
3662      }
3663
3664      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3665        conf_error_report("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3666
3667      conf->rsa_public_key = pkey;
3668      BIO_set_close(file, BIO_CLOSE);
3669      BIO_free(file);
3670    }
3671 #endif /* HAVE_LIBCRYPTO */
3624    }
3625   }
3626 < #line 3675 "conf_parser.c" /* yacc.c:1646  */
3626 > #line 3627 "conf_parser.c" /* yacc.c:1646  */
3627      break;
3628  
3629 <  case 162:
3630 < #line 1107 "conf_parser.y" /* yacc.c:1646  */
3629 >  case 167:
3630 > #line 1029 "conf_parser.y" /* yacc.c:1646  */
3631      {
3632    if (conf_parser_ctx.pass == 2)
3633      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3634   }
3635 < #line 3684 "conf_parser.c" /* yacc.c:1646  */
3635 > #line 3636 "conf_parser.c" /* yacc.c:1646  */
3636      break;
3637  
3638 <  case 163:
3639 < #line 1113 "conf_parser.y" /* yacc.c:1646  */
3638 >  case 168:
3639 > #line 1035 "conf_parser.y" /* yacc.c:1646  */
3640      {
3641    if (conf_parser_ctx.pass == 2)
3642      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3643   }
3644 < #line 3693 "conf_parser.c" /* yacc.c:1646  */
3644 > #line 3645 "conf_parser.c" /* yacc.c:1646  */
3645      break;
3646  
3647 <  case 164:
3648 < #line 1119 "conf_parser.y" /* yacc.c:1646  */
3647 >  case 169:
3648 > #line 1041 "conf_parser.y" /* yacc.c:1646  */
3649      {
3650    if (conf_parser_ctx.pass == 2)
3651      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3652   }
3653 < #line 3702 "conf_parser.c" /* yacc.c:1646  */
3653 > #line 3654 "conf_parser.c" /* yacc.c:1646  */
3654      break;
3655  
3656 <  case 165:
3657 < #line 1125 "conf_parser.y" /* yacc.c:1646  */
3656 >  case 170:
3657 > #line 1047 "conf_parser.y" /* yacc.c:1646  */
3658 >    {
3659 >  if (conf_parser_ctx.pass == 2)
3660 >    strlcpy(block_state.whois.buf, yylval.string, sizeof(block_state.whois.buf));
3661 > }
3662 > #line 3663 "conf_parser.c" /* yacc.c:1646  */
3663 >    break;
3664 >
3665 >  case 171:
3666 > #line 1053 "conf_parser.y" /* yacc.c:1646  */
3667      {
3668    if (conf_parser_ctx.pass != 2)
3669      break;
# Line 3712 | Line 3673 | yyreduce:
3673    else
3674      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3675   }
3676 < #line 3716 "conf_parser.c" /* yacc.c:1646  */
3676 > #line 3677 "conf_parser.c" /* yacc.c:1646  */
3677      break;
3678  
3679 <  case 166:
3680 < #line 1136 "conf_parser.y" /* yacc.c:1646  */
3720 <    {
3721 <  if (conf_parser_ctx.pass == 2)
3722 <    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3723 < }
3724 < #line 3725 "conf_parser.c" /* yacc.c:1646  */
3725 <    break;
3726 <
3727 <  case 167:
3728 < #line 1142 "conf_parser.y" /* yacc.c:1646  */
3679 >  case 172:
3680 > #line 1064 "conf_parser.y" /* yacc.c:1646  */
3681      {
3682    if (conf_parser_ctx.pass == 2)
3683      strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
3684   }
3685 < #line 3734 "conf_parser.c" /* yacc.c:1646  */
3685 > #line 3686 "conf_parser.c" /* yacc.c:1646  */
3686      break;
3687  
3688 <  case 168:
3689 < #line 1148 "conf_parser.y" /* yacc.c:1646  */
3688 >  case 173:
3689 > #line 1070 "conf_parser.y" /* yacc.c:1646  */
3690      {
3691    if (conf_parser_ctx.pass != 2)
3692      break;
# Line 3744 | Line 3696 | yyreduce:
3696    else
3697      block_state.flags.value &= ~CONF_FLAGS_SSL;
3698   }
3699 < #line 3748 "conf_parser.c" /* yacc.c:1646  */
3699 > #line 3700 "conf_parser.c" /* yacc.c:1646  */
3700      break;
3701  
3702 <  case 169:
3703 < #line 1159 "conf_parser.y" /* yacc.c:1646  */
3702 >  case 174:
3703 > #line 1081 "conf_parser.y" /* yacc.c:1646  */
3704      {
3705    if (conf_parser_ctx.pass == 2)
3706      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3707   }
3708 < #line 3757 "conf_parser.c" /* yacc.c:1646  */
3708 > #line 3709 "conf_parser.c" /* yacc.c:1646  */
3709      break;
3710  
3711 <  case 170:
3712 < #line 1165 "conf_parser.y" /* yacc.c:1646  */
3711 >  case 175:
3712 > #line 1087 "conf_parser.y" /* yacc.c:1646  */
3713      {
3714    if (conf_parser_ctx.pass == 2)
3715      block_state.modes.value = 0;
3716   }
3717 < #line 3766 "conf_parser.c" /* yacc.c:1646  */
3717 > #line 3718 "conf_parser.c" /* yacc.c:1646  */
3718      break;
3719  
3720 <  case 174:
3721 < #line 1172 "conf_parser.y" /* yacc.c:1646  */
3720 >  case 179:
3721 > #line 1094 "conf_parser.y" /* yacc.c:1646  */
3722      {
3723    if (conf_parser_ctx.pass == 2)
3724      block_state.modes.value |= UMODE_BOTS;
3725   }
3726 < #line 3775 "conf_parser.c" /* yacc.c:1646  */
3726 > #line 3727 "conf_parser.c" /* yacc.c:1646  */
3727      break;
3728  
3729 <  case 175:
3730 < #line 1176 "conf_parser.y" /* yacc.c:1646  */
3729 >  case 180:
3730 > #line 1098 "conf_parser.y" /* yacc.c:1646  */
3731      {
3732    if (conf_parser_ctx.pass == 2)
3733      block_state.modes.value |= UMODE_CCONN;
3734   }
3735 < #line 3784 "conf_parser.c" /* yacc.c:1646  */
3735 > #line 3736 "conf_parser.c" /* yacc.c:1646  */
3736      break;
3737  
3738 <  case 176:
3739 < #line 1180 "conf_parser.y" /* yacc.c:1646  */
3738 >  case 181:
3739 > #line 1102 "conf_parser.y" /* yacc.c:1646  */
3740      {
3741    if (conf_parser_ctx.pass == 2)
3742      block_state.modes.value |= UMODE_DEAF;
3743   }
3744 < #line 3793 "conf_parser.c" /* yacc.c:1646  */
3744 > #line 3745 "conf_parser.c" /* yacc.c:1646  */
3745      break;
3746  
3747 <  case 177:
3748 < #line 1184 "conf_parser.y" /* yacc.c:1646  */
3747 >  case 182:
3748 > #line 1106 "conf_parser.y" /* yacc.c:1646  */
3749      {
3750    if (conf_parser_ctx.pass == 2)
3751      block_state.modes.value |= UMODE_DEBUG;
3752   }
3753 < #line 3802 "conf_parser.c" /* yacc.c:1646  */
3753 > #line 3754 "conf_parser.c" /* yacc.c:1646  */
3754      break;
3755  
3756 <  case 178:
3757 < #line 1188 "conf_parser.y" /* yacc.c:1646  */
3756 >  case 183:
3757 > #line 1110 "conf_parser.y" /* yacc.c:1646  */
3758      {
3759    if (conf_parser_ctx.pass == 2)
3760      block_state.modes.value |= UMODE_FULL;
3761   }
3762 < #line 3811 "conf_parser.c" /* yacc.c:1646  */
3762 > #line 3763 "conf_parser.c" /* yacc.c:1646  */
3763      break;
3764  
3765 <  case 179:
3766 < #line 1192 "conf_parser.y" /* yacc.c:1646  */
3765 >  case 184:
3766 > #line 1114 "conf_parser.y" /* yacc.c:1646  */
3767      {
3768    if (conf_parser_ctx.pass == 2)
3769      block_state.modes.value |= UMODE_HIDDEN;
3770   }
3771 < #line 3820 "conf_parser.c" /* yacc.c:1646  */
3771 > #line 3772 "conf_parser.c" /* yacc.c:1646  */
3772      break;
3773  
3774 <  case 180:
3775 < #line 1196 "conf_parser.y" /* yacc.c:1646  */
3774 >  case 185:
3775 > #line 1118 "conf_parser.y" /* yacc.c:1646  */
3776 >    {
3777 >  if (conf_parser_ctx.pass == 2)
3778 >    block_state.modes.value |= UMODE_HIDECHANS;
3779 > }
3780 > #line 3781 "conf_parser.c" /* yacc.c:1646  */
3781 >    break;
3782 >
3783 >  case 186:
3784 > #line 1122 "conf_parser.y" /* yacc.c:1646  */
3785 >    {
3786 >  if (conf_parser_ctx.pass == 2)
3787 >    block_state.modes.value |= UMODE_HIDEIDLE;
3788 > }
3789 > #line 3790 "conf_parser.c" /* yacc.c:1646  */
3790 >    break;
3791 >
3792 >  case 187:
3793 > #line 1126 "conf_parser.y" /* yacc.c:1646  */
3794      {
3795    if (conf_parser_ctx.pass == 2)
3796      block_state.modes.value |= UMODE_SKILL;
3797   }
3798 < #line 3829 "conf_parser.c" /* yacc.c:1646  */
3798 > #line 3799 "conf_parser.c" /* yacc.c:1646  */
3799      break;
3800  
3801 <  case 181:
3802 < #line 1200 "conf_parser.y" /* yacc.c:1646  */
3801 >  case 188:
3802 > #line 1130 "conf_parser.y" /* yacc.c:1646  */
3803      {
3804    if (conf_parser_ctx.pass == 2)
3805      block_state.modes.value |= UMODE_NCHANGE;
3806   }
3807 < #line 3838 "conf_parser.c" /* yacc.c:1646  */
3807 > #line 3808 "conf_parser.c" /* yacc.c:1646  */
3808      break;
3809  
3810 <  case 182:
3811 < #line 1204 "conf_parser.y" /* yacc.c:1646  */
3810 >  case 189:
3811 > #line 1134 "conf_parser.y" /* yacc.c:1646  */
3812      {
3813    if (conf_parser_ctx.pass == 2)
3814      block_state.modes.value |= UMODE_REJ;
3815   }
3816 < #line 3847 "conf_parser.c" /* yacc.c:1646  */
3816 > #line 3817 "conf_parser.c" /* yacc.c:1646  */
3817      break;
3818  
3819 <  case 183:
3820 < #line 1208 "conf_parser.y" /* yacc.c:1646  */
3819 >  case 190:
3820 > #line 1138 "conf_parser.y" /* yacc.c:1646  */
3821      {
3822    if (conf_parser_ctx.pass == 2)
3823      block_state.modes.value |= UMODE_UNAUTH;
3824   }
3825 < #line 3856 "conf_parser.c" /* yacc.c:1646  */
3825 > #line 3826 "conf_parser.c" /* yacc.c:1646  */
3826      break;
3827  
3828 <  case 184:
3829 < #line 1212 "conf_parser.y" /* yacc.c:1646  */
3828 >  case 191:
3829 > #line 1142 "conf_parser.y" /* yacc.c:1646  */
3830      {
3831    if (conf_parser_ctx.pass == 2)
3832      block_state.modes.value |= UMODE_SPY;
3833   }
3834 < #line 3865 "conf_parser.c" /* yacc.c:1646  */
3834 > #line 3835 "conf_parser.c" /* yacc.c:1646  */
3835      break;
3836  
3837 <  case 185:
3838 < #line 1216 "conf_parser.y" /* yacc.c:1646  */
3837 >  case 192:
3838 > #line 1146 "conf_parser.y" /* yacc.c:1646  */
3839      {
3840    if (conf_parser_ctx.pass == 2)
3841      block_state.modes.value |= UMODE_EXTERNAL;
3842   }
3843 < #line 3874 "conf_parser.c" /* yacc.c:1646  */
3874 <    break;
3875 <
3876 <  case 186:
3877 < #line 1220 "conf_parser.y" /* yacc.c:1646  */
3878 <    {
3879 <  if (conf_parser_ctx.pass == 2)
3880 <    block_state.modes.value |= UMODE_OPERWALL;
3881 < }
3882 < #line 3883 "conf_parser.c" /* yacc.c:1646  */
3843 > #line 3844 "conf_parser.c" /* yacc.c:1646  */
3844      break;
3845  
3846 <  case 187:
3847 < #line 1224 "conf_parser.y" /* yacc.c:1646  */
3846 >  case 193:
3847 > #line 1150 "conf_parser.y" /* yacc.c:1646  */
3848      {
3849    if (conf_parser_ctx.pass == 2)
3850      block_state.modes.value |= UMODE_SERVNOTICE;
3851   }
3852 < #line 3892 "conf_parser.c" /* yacc.c:1646  */
3852 > #line 3853 "conf_parser.c" /* yacc.c:1646  */
3853      break;
3854  
3855 <  case 188:
3856 < #line 1228 "conf_parser.y" /* yacc.c:1646  */
3855 >  case 194:
3856 > #line 1154 "conf_parser.y" /* yacc.c:1646  */
3857      {
3858    if (conf_parser_ctx.pass == 2)
3859      block_state.modes.value |= UMODE_INVISIBLE;
3860   }
3861 < #line 3901 "conf_parser.c" /* yacc.c:1646  */
3861 > #line 3862 "conf_parser.c" /* yacc.c:1646  */
3862      break;
3863  
3864 <  case 189:
3865 < #line 1232 "conf_parser.y" /* yacc.c:1646  */
3864 >  case 195:
3865 > #line 1158 "conf_parser.y" /* yacc.c:1646  */
3866      {
3867    if (conf_parser_ctx.pass == 2)
3868      block_state.modes.value |= UMODE_WALLOP;
3869   }
3870 < #line 3910 "conf_parser.c" /* yacc.c:1646  */
3870 > #line 3871 "conf_parser.c" /* yacc.c:1646  */
3871      break;
3872  
3873 <  case 190:
3874 < #line 1236 "conf_parser.y" /* yacc.c:1646  */
3873 >  case 196:
3874 > #line 1162 "conf_parser.y" /* yacc.c:1646  */
3875      {
3876    if (conf_parser_ctx.pass == 2)
3877      block_state.modes.value |= UMODE_SOFTCALLERID;
3878   }
3879 < #line 3919 "conf_parser.c" /* yacc.c:1646  */
3879 > #line 3880 "conf_parser.c" /* yacc.c:1646  */
3880      break;
3881  
3882 <  case 191:
3883 < #line 1240 "conf_parser.y" /* yacc.c:1646  */
3882 >  case 197:
3883 > #line 1166 "conf_parser.y" /* yacc.c:1646  */
3884      {
3885    if (conf_parser_ctx.pass == 2)
3886      block_state.modes.value |= UMODE_CALLERID;
3887   }
3888 < #line 3928 "conf_parser.c" /* yacc.c:1646  */
3888 > #line 3889 "conf_parser.c" /* yacc.c:1646  */
3889      break;
3890  
3891 <  case 192:
3892 < #line 1244 "conf_parser.y" /* yacc.c:1646  */
3891 >  case 198:
3892 > #line 1170 "conf_parser.y" /* yacc.c:1646  */
3893      {
3894    if (conf_parser_ctx.pass == 2)
3895      block_state.modes.value |= UMODE_LOCOPS;
3896   }
3897 < #line 3937 "conf_parser.c" /* yacc.c:1646  */
3897 > #line 3898 "conf_parser.c" /* yacc.c:1646  */
3898      break;
3899  
3900 <  case 193:
3901 < #line 1248 "conf_parser.y" /* yacc.c:1646  */
3900 >  case 199:
3901 > #line 1174 "conf_parser.y" /* yacc.c:1646  */
3902      {
3903    if (conf_parser_ctx.pass == 2)
3904      block_state.modes.value |= UMODE_REGONLY;
3905   }
3906 < #line 3946 "conf_parser.c" /* yacc.c:1646  */
3906 > #line 3907 "conf_parser.c" /* yacc.c:1646  */
3907      break;
3908  
3909 <  case 194:
3910 < #line 1252 "conf_parser.y" /* yacc.c:1646  */
3909 >  case 200:
3910 > #line 1178 "conf_parser.y" /* yacc.c:1646  */
3911      {
3912    if (conf_parser_ctx.pass == 2)
3913      block_state.modes.value |= UMODE_FARCONNECT;
3914   }
3915 < #line 3955 "conf_parser.c" /* yacc.c:1646  */
3915 > #line 3916 "conf_parser.c" /* yacc.c:1646  */
3916      break;
3917  
3918 <  case 195:
3919 < #line 1258 "conf_parser.y" /* yacc.c:1646  */
3918 >  case 201:
3919 > #line 1184 "conf_parser.y" /* yacc.c:1646  */
3920      {
3921    if (conf_parser_ctx.pass == 2)
3922      block_state.port.value = 0;
3923   }
3924 < #line 3964 "conf_parser.c" /* yacc.c:1646  */
3924 > #line 3925 "conf_parser.c" /* yacc.c:1646  */
3925      break;
3926  
3927 <  case 199:
3928 < #line 1265 "conf_parser.y" /* yacc.c:1646  */
3927 >  case 205:
3928 > #line 1191 "conf_parser.y" /* yacc.c:1646  */
3929      {
3930    if (conf_parser_ctx.pass == 2)
3931      block_state.port.value |= OPER_FLAG_KILL_REMOTE;
3932   }
3933 < #line 3973 "conf_parser.c" /* yacc.c:1646  */
3933 > #line 3934 "conf_parser.c" /* yacc.c:1646  */
3934      break;
3935  
3936 <  case 200:
3937 < #line 1269 "conf_parser.y" /* yacc.c:1646  */
3936 >  case 206:
3937 > #line 1195 "conf_parser.y" /* yacc.c:1646  */
3938      {
3939    if (conf_parser_ctx.pass == 2)
3940      block_state.port.value |= OPER_FLAG_KILL;
3941   }
3942 < #line 3982 "conf_parser.c" /* yacc.c:1646  */
3942 > #line 3943 "conf_parser.c" /* yacc.c:1646  */
3943      break;
3944  
3945 <  case 201:
3946 < #line 1273 "conf_parser.y" /* yacc.c:1646  */
3945 >  case 207:
3946 > #line 1199 "conf_parser.y" /* yacc.c:1646  */
3947      {
3948    if (conf_parser_ctx.pass == 2)
3949      block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
3950   }
3951 < #line 3991 "conf_parser.c" /* yacc.c:1646  */
3951 > #line 3952 "conf_parser.c" /* yacc.c:1646  */
3952      break;
3953  
3954 <  case 202:
3955 < #line 1277 "conf_parser.y" /* yacc.c:1646  */
3954 >  case 208:
3955 > #line 1203 "conf_parser.y" /* yacc.c:1646  */
3956      {
3957    if (conf_parser_ctx.pass == 2)
3958      block_state.port.value |= OPER_FLAG_CONNECT;
3959   }
3960 < #line 4000 "conf_parser.c" /* yacc.c:1646  */
3960 > #line 3961 "conf_parser.c" /* yacc.c:1646  */
3961      break;
3962  
3963 <  case 203:
3964 < #line 1281 "conf_parser.y" /* yacc.c:1646  */
3963 >  case 209:
3964 > #line 1207 "conf_parser.y" /* yacc.c:1646  */
3965      {
3966    if (conf_parser_ctx.pass == 2)
3967      block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
3968   }
3969 < #line 4009 "conf_parser.c" /* yacc.c:1646  */
3969 > #line 3970 "conf_parser.c" /* yacc.c:1646  */
3970      break;
3971  
3972 <  case 204:
3973 < #line 1285 "conf_parser.y" /* yacc.c:1646  */
3972 >  case 210:
3973 > #line 1211 "conf_parser.y" /* yacc.c:1646  */
3974      {
3975    if (conf_parser_ctx.pass == 2)
3976      block_state.port.value |= OPER_FLAG_SQUIT;
3977   }
3978 < #line 4018 "conf_parser.c" /* yacc.c:1646  */
3978 > #line 3979 "conf_parser.c" /* yacc.c:1646  */
3979      break;
3980  
3981 <  case 205:
3982 < #line 1289 "conf_parser.y" /* yacc.c:1646  */
3981 >  case 211:
3982 > #line 1215 "conf_parser.y" /* yacc.c:1646  */
3983      {
3984    if (conf_parser_ctx.pass == 2)
3985 <    block_state.port.value |= OPER_FLAG_K;
3985 >    block_state.port.value |= OPER_FLAG_KLINE;
3986   }
3987 < #line 4027 "conf_parser.c" /* yacc.c:1646  */
3987 > #line 3988 "conf_parser.c" /* yacc.c:1646  */
3988      break;
3989  
3990 <  case 206:
3991 < #line 1293 "conf_parser.y" /* yacc.c:1646  */
3990 >  case 212:
3991 > #line 1219 "conf_parser.y" /* yacc.c:1646  */
3992      {
3993    if (conf_parser_ctx.pass == 2)
3994      block_state.port.value |= OPER_FLAG_UNKLINE;
3995   }
3996 < #line 4036 "conf_parser.c" /* yacc.c:1646  */
3996 > #line 3997 "conf_parser.c" /* yacc.c:1646  */
3997      break;
3998  
3999 <  case 207:
4000 < #line 1297 "conf_parser.y" /* yacc.c:1646  */
3999 >  case 213:
4000 > #line 1223 "conf_parser.y" /* yacc.c:1646  */
4001      {
4002    if (conf_parser_ctx.pass == 2)
4003      block_state.port.value |= OPER_FLAG_DLINE;
4004   }
4005 < #line 4045 "conf_parser.c" /* yacc.c:1646  */
4005 > #line 4006 "conf_parser.c" /* yacc.c:1646  */
4006      break;
4007  
4008 <  case 208:
4009 < #line 1301 "conf_parser.y" /* yacc.c:1646  */
4008 >  case 214:
4009 > #line 1227 "conf_parser.y" /* yacc.c:1646  */
4010      {
4011    if (conf_parser_ctx.pass == 2)
4012      block_state.port.value |= OPER_FLAG_UNDLINE;
4013   }
4014 < #line 4054 "conf_parser.c" /* yacc.c:1646  */
4014 > #line 4015 "conf_parser.c" /* yacc.c:1646  */
4015      break;
4016  
4017 <  case 209:
4018 < #line 1305 "conf_parser.y" /* yacc.c:1646  */
4017 >  case 215:
4018 > #line 1231 "conf_parser.y" /* yacc.c:1646  */
4019      {
4020    if (conf_parser_ctx.pass == 2)
4021      block_state.port.value |= OPER_FLAG_XLINE;
4022   }
4023 < #line 4063 "conf_parser.c" /* yacc.c:1646  */
4023 > #line 4024 "conf_parser.c" /* yacc.c:1646  */
4024      break;
4025  
4026 <  case 210:
4027 < #line 1309 "conf_parser.y" /* yacc.c:1646  */
4026 >  case 216:
4027 > #line 1235 "conf_parser.y" /* yacc.c:1646  */
4028      {
4029    if (conf_parser_ctx.pass == 2)
4030      block_state.port.value |= OPER_FLAG_UNXLINE;
4031   }
4032 < #line 4072 "conf_parser.c" /* yacc.c:1646  */
4032 > #line 4033 "conf_parser.c" /* yacc.c:1646  */
4033      break;
4034  
4035 <  case 211:
4036 < #line 1313 "conf_parser.y" /* yacc.c:1646  */
4076 <    {
4077 <  if (conf_parser_ctx.pass == 2)
4078 <    block_state.port.value |= OPER_FLAG_GLINE;
4079 < }
4080 < #line 4081 "conf_parser.c" /* yacc.c:1646  */
4081 <    break;
4082 <
4083 <  case 212:
4084 < #line 1317 "conf_parser.y" /* yacc.c:1646  */
4035 >  case 217:
4036 > #line 1239 "conf_parser.y" /* yacc.c:1646  */
4037      {
4038    if (conf_parser_ctx.pass == 2)
4039      block_state.port.value |= OPER_FLAG_DIE;
4040   }
4041 < #line 4090 "conf_parser.c" /* yacc.c:1646  */
4041 > #line 4042 "conf_parser.c" /* yacc.c:1646  */
4042      break;
4043  
4044 <  case 213:
4045 < #line 1321 "conf_parser.y" /* yacc.c:1646  */
4044 >  case 218:
4045 > #line 1243 "conf_parser.y" /* yacc.c:1646  */
4046      {
4047    if (conf_parser_ctx.pass == 2)
4048      block_state.port.value |= OPER_FLAG_RESTART;
4049   }
4050 < #line 4099 "conf_parser.c" /* yacc.c:1646  */
4050 > #line 4051 "conf_parser.c" /* yacc.c:1646  */
4051      break;
4052  
4053 <  case 214:
4054 < #line 1325 "conf_parser.y" /* yacc.c:1646  */
4053 >  case 219:
4054 > #line 1247 "conf_parser.y" /* yacc.c:1646  */
4055      {
4056    if (conf_parser_ctx.pass == 2)
4057 <    block_state.port.value |= OPER_FLAG_REHASH;
4057 >    block_state.port.value |= OPER_FLAG_REHASH_REMOTE;
4058   }
4059 < #line 4108 "conf_parser.c" /* yacc.c:1646  */
4059 > #line 4060 "conf_parser.c" /* yacc.c:1646  */
4060      break;
4061  
4062 <  case 215:
4063 < #line 1329 "conf_parser.y" /* yacc.c:1646  */
4062 >  case 220:
4063 > #line 1251 "conf_parser.y" /* yacc.c:1646  */
4064      {
4065    if (conf_parser_ctx.pass == 2)
4066 <    block_state.port.value |= OPER_FLAG_ADMIN;
4066 >    block_state.port.value |= OPER_FLAG_REHASH;
4067   }
4068 < #line 4117 "conf_parser.c" /* yacc.c:1646  */
4068 > #line 4069 "conf_parser.c" /* yacc.c:1646  */
4069      break;
4070  
4071 <  case 216:
4072 < #line 1333 "conf_parser.y" /* yacc.c:1646  */
4071 >  case 221:
4072 > #line 1255 "conf_parser.y" /* yacc.c:1646  */
4073      {
4074    if (conf_parser_ctx.pass == 2)
4075 <    block_state.port.value |= OPER_FLAG_OPERWALL;
4075 >    block_state.port.value |= OPER_FLAG_ADMIN;
4076   }
4077 < #line 4126 "conf_parser.c" /* yacc.c:1646  */
4077 > #line 4078 "conf_parser.c" /* yacc.c:1646  */
4078      break;
4079  
4080 <  case 217:
4081 < #line 1337 "conf_parser.y" /* yacc.c:1646  */
4080 >  case 222:
4081 > #line 1259 "conf_parser.y" /* yacc.c:1646  */
4082      {
4083    if (conf_parser_ctx.pass == 2)
4084      block_state.port.value |= OPER_FLAG_GLOBOPS;
4085   }
4086 < #line 4135 "conf_parser.c" /* yacc.c:1646  */
4086 > #line 4087 "conf_parser.c" /* yacc.c:1646  */
4087      break;
4088  
4089 <  case 218:
4090 < #line 1341 "conf_parser.y" /* yacc.c:1646  */
4089 >  case 223:
4090 > #line 1263 "conf_parser.y" /* yacc.c:1646  */
4091      {
4092    if (conf_parser_ctx.pass == 2)
4093      block_state.port.value |= OPER_FLAG_WALLOPS;
4094   }
4095 < #line 4144 "conf_parser.c" /* yacc.c:1646  */
4095 > #line 4096 "conf_parser.c" /* yacc.c:1646  */
4096      break;
4097  
4098 <  case 219:
4099 < #line 1345 "conf_parser.y" /* yacc.c:1646  */
4098 >  case 224:
4099 > #line 1267 "conf_parser.y" /* yacc.c:1646  */
4100      {
4101    if (conf_parser_ctx.pass == 2)
4102      block_state.port.value |= OPER_FLAG_LOCOPS;
4103   }
4104 < #line 4153 "conf_parser.c" /* yacc.c:1646  */
4104 > #line 4105 "conf_parser.c" /* yacc.c:1646  */
4105      break;
4106  
4107 <  case 220:
4108 < #line 1349 "conf_parser.y" /* yacc.c:1646  */
4107 >  case 225:
4108 > #line 1271 "conf_parser.y" /* yacc.c:1646  */
4109      {
4110    if (conf_parser_ctx.pass == 2)
4111      block_state.port.value |= OPER_FLAG_REMOTEBAN;
4112   }
4113 < #line 4162 "conf_parser.c" /* yacc.c:1646  */
4113 > #line 4114 "conf_parser.c" /* yacc.c:1646  */
4114      break;
4115  
4116 <  case 221:
4117 < #line 1353 "conf_parser.y" /* yacc.c:1646  */
4116 >  case 226:
4117 > #line 1275 "conf_parser.y" /* yacc.c:1646  */
4118      {
4119    if (conf_parser_ctx.pass == 2)
4120      block_state.port.value |= OPER_FLAG_SET;
4121   }
4122 < #line 4171 "conf_parser.c" /* yacc.c:1646  */
4122 > #line 4123 "conf_parser.c" /* yacc.c:1646  */
4123      break;
4124  
4125 <  case 222:
4126 < #line 1357 "conf_parser.y" /* yacc.c:1646  */
4125 >  case 227:
4126 > #line 1279 "conf_parser.y" /* yacc.c:1646  */
4127      {
4128    if (conf_parser_ctx.pass == 2)
4129      block_state.port.value |= OPER_FLAG_MODULE;
4130   }
4131 < #line 4180 "conf_parser.c" /* yacc.c:1646  */
4131 > #line 4132 "conf_parser.c" /* yacc.c:1646  */
4132      break;
4133  
4134 <  case 223:
4135 < #line 1367 "conf_parser.y" /* yacc.c:1646  */
4134 >  case 228:
4135 > #line 1283 "conf_parser.y" /* yacc.c:1646  */
4136 >    {
4137 >  if (conf_parser_ctx.pass == 2)
4138 >    block_state.port.value |= OPER_FLAG_OPME;
4139 > }
4140 > #line 4141 "conf_parser.c" /* yacc.c:1646  */
4141 >    break;
4142 >
4143 >  case 229:
4144 > #line 1287 "conf_parser.y" /* yacc.c:1646  */
4145 >    {
4146 >  if (conf_parser_ctx.pass == 2)
4147 >    block_state.port.value |= OPER_FLAG_NICK_RESV;
4148 > }
4149 > #line 4150 "conf_parser.c" /* yacc.c:1646  */
4150 >    break;
4151 >
4152 >  case 230:
4153 > #line 1291 "conf_parser.y" /* yacc.c:1646  */
4154 >    {
4155 >  if (conf_parser_ctx.pass == 2)
4156 >    block_state.port.value |= OPER_FLAG_JOIN_RESV;
4157 > }
4158 > #line 4159 "conf_parser.c" /* yacc.c:1646  */
4159 >    break;
4160 >
4161 >  case 231:
4162 > #line 1295 "conf_parser.y" /* yacc.c:1646  */
4163 >    {
4164 >  if (conf_parser_ctx.pass == 2)
4165 >    block_state.port.value |= OPER_FLAG_RESV;
4166 > }
4167 > #line 4168 "conf_parser.c" /* yacc.c:1646  */
4168 >    break;
4169 >
4170 >  case 232:
4171 > #line 1299 "conf_parser.y" /* yacc.c:1646  */
4172 >    {
4173 >  if (conf_parser_ctx.pass == 2)
4174 >    block_state.port.value |= OPER_FLAG_UNRESV;
4175 > }
4176 > #line 4177 "conf_parser.c" /* yacc.c:1646  */
4177 >    break;
4178 >
4179 >  case 233:
4180 > #line 1303 "conf_parser.y" /* yacc.c:1646  */
4181 >    {
4182 >  if (conf_parser_ctx.pass == 2)
4183 >    block_state.port.value |= OPER_FLAG_CLOSE;
4184 > }
4185 > #line 4186 "conf_parser.c" /* yacc.c:1646  */
4186 >    break;
4187 >
4188 >  case 234:
4189 > #line 1313 "conf_parser.y" /* yacc.c:1646  */
4190      {
4191    if (conf_parser_ctx.pass != 1)
4192      break;
# Line 4193 | Line 4199 | yyreduce:
4199    block_state.max_sendq.value = DEFAULT_SENDQ;
4200    block_state.max_recvq.value = DEFAULT_RECVQ;
4201   }
4202 < #line 4197 "conf_parser.c" /* yacc.c:1646  */
4202 > #line 4203 "conf_parser.c" /* yacc.c:1646  */
4203      break;
4204  
4205 <  case 224:
4206 < #line 1379 "conf_parser.y" /* yacc.c:1646  */
4205 >  case 235:
4206 > #line 1325 "conf_parser.y" /* yacc.c:1646  */
4207      {
4208    struct ClassItem *class = NULL;
4209  
# Line 4207 | Line 4213 | yyreduce:
4213    if (!block_state.class.buf[0])
4214      break;
4215  
4216 <  if (!(class = class_find(block_state.class.buf, 0)))
4216 >  if (!(class = class_find(block_state.class.buf, false)))
4217      class = class_make();
4218  
4219    class->active = 1;
4220 <  MyFree(class->name);
4220 >  xfree(class->name);
4221    class->name = xstrdup(block_state.class.buf);
4222    class->ping_freq = block_state.ping_freq.value;
4223 <  class->max_perip = block_state.max_perip.value;
4223 >  class->max_perip_local = block_state.max_perip_local.value;
4224 >  class->max_perip_global = block_state.max_perip_global.value;
4225    class->con_freq = block_state.con_freq.value;
4226    class->max_total = block_state.max_total.value;
4220  class->max_global = block_state.max_global.value;
4221  class->max_local = block_state.max_local.value;
4222  class->max_ident = block_state.max_ident.value;
4227    class->max_sendq = block_state.max_sendq.value;
4228    class->max_recvq = block_state.max_recvq.value;
4229 +  class->max_channels = block_state.max_channels.value;
4230  
4231    if (block_state.min_idle.value > block_state.max_idle.value)
4232    {
# Line 4234 | Line 4239 | yyreduce:
4239    class->min_idle = block_state.min_idle.value;
4240    class->max_idle = block_state.max_idle.value;
4241  
4242 <  if (class->number_per_cidr && block_state.number_per_cidr.value)
4243 <    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4239 <        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4240 <      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4241 <          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4242 <        rebuild_cidr_list(class);
4243 <
4242 >  int diff = (class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value ||
4243 >              class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value);
4244    class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4245    class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4246    class->number_per_cidr = block_state.number_per_cidr.value;
4247 +
4248 +  if (diff)
4249 +    class_ip_limit_rebuild(class);
4250   }
4251 < #line 4249 "conf_parser.c" /* yacc.c:1646  */
4251 > #line 4252 "conf_parser.c" /* yacc.c:1646  */
4252      break;
4253  
4254 <  case 244:
4255 < #line 1445 "conf_parser.y" /* yacc.c:1646  */
4254 >  case 254:
4255 > #line 1389 "conf_parser.y" /* yacc.c:1646  */
4256      {
4257    if (conf_parser_ctx.pass == 1)
4258      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4259   }
4260 < #line 4258 "conf_parser.c" /* yacc.c:1646  */
4260 > #line 4261 "conf_parser.c" /* yacc.c:1646  */
4261      break;
4262  
4263 <  case 245:
4264 < #line 1451 "conf_parser.y" /* yacc.c:1646  */
4263 >  case 255:
4264 > #line 1395 "conf_parser.y" /* yacc.c:1646  */
4265      {
4266    if (conf_parser_ctx.pass == 1)
4267      block_state.ping_freq.value = (yyvsp[-1].number);
4268   }
4269 < #line 4267 "conf_parser.c" /* yacc.c:1646  */
4269 > #line 4270 "conf_parser.c" /* yacc.c:1646  */
4270      break;
4271  
4272 <  case 246:
4273 < #line 1457 "conf_parser.y" /* yacc.c:1646  */
4271 <    {
4272 <  if (conf_parser_ctx.pass == 1)
4273 <    block_state.max_perip.value = (yyvsp[-1].number);
4274 < }
4275 < #line 4276 "conf_parser.c" /* yacc.c:1646  */
4276 <    break;
4277 <
4278 <  case 247:
4279 < #line 1463 "conf_parser.y" /* yacc.c:1646  */
4272 >  case 256:
4273 > #line 1401 "conf_parser.y" /* yacc.c:1646  */
4274      {
4275    if (conf_parser_ctx.pass == 1)
4276 <    block_state.con_freq.value = (yyvsp[-1].number);
4276 >    block_state.max_perip_local.value = (yyvsp[-1].number);
4277   }
4278 < #line 4285 "conf_parser.c" /* yacc.c:1646  */
4278 > #line 4279 "conf_parser.c" /* yacc.c:1646  */
4279      break;
4280  
4281 <  case 248:
4282 < #line 1469 "conf_parser.y" /* yacc.c:1646  */
4281 >  case 257:
4282 > #line 1407 "conf_parser.y" /* yacc.c:1646  */
4283      {
4284    if (conf_parser_ctx.pass == 1)
4285 <    block_state.max_total.value = (yyvsp[-1].number);
4285 >    block_state.max_perip_global.value = (yyvsp[-1].number);
4286   }
4287 < #line 4294 "conf_parser.c" /* yacc.c:1646  */
4287 > #line 4288 "conf_parser.c" /* yacc.c:1646  */
4288      break;
4289  
4290 <  case 249:
4291 < #line 1475 "conf_parser.y" /* yacc.c:1646  */
4290 >  case 258:
4291 > #line 1413 "conf_parser.y" /* yacc.c:1646  */
4292      {
4293    if (conf_parser_ctx.pass == 1)
4294 <    block_state.max_global.value = (yyvsp[-1].number);
4294 >    block_state.con_freq.value = (yyvsp[-1].number);
4295   }
4296 < #line 4303 "conf_parser.c" /* yacc.c:1646  */
4296 > #line 4297 "conf_parser.c" /* yacc.c:1646  */
4297      break;
4298  
4299 <  case 250:
4300 < #line 1481 "conf_parser.y" /* yacc.c:1646  */
4299 >  case 259:
4300 > #line 1419 "conf_parser.y" /* yacc.c:1646  */
4301      {
4302    if (conf_parser_ctx.pass == 1)
4303 <    block_state.max_local.value = (yyvsp[-1].number);
4303 >    block_state.max_channels.value = (yyvsp[-1].number);
4304   }
4305 < #line 4312 "conf_parser.c" /* yacc.c:1646  */
4305 > #line 4306 "conf_parser.c" /* yacc.c:1646  */
4306      break;
4307  
4308 <  case 251:
4309 < #line 1487 "conf_parser.y" /* yacc.c:1646  */
4308 >  case 260:
4309 > #line 1425 "conf_parser.y" /* yacc.c:1646  */
4310      {
4311    if (conf_parser_ctx.pass == 1)
4312 <    block_state.max_ident.value = (yyvsp[-1].number);
4312 >    block_state.max_total.value = (yyvsp[-1].number);
4313   }
4314 < #line 4321 "conf_parser.c" /* yacc.c:1646  */
4314 > #line 4315 "conf_parser.c" /* yacc.c:1646  */
4315      break;
4316  
4317 <  case 252:
4318 < #line 1493 "conf_parser.y" /* yacc.c:1646  */
4317 >  case 261:
4318 > #line 1431 "conf_parser.y" /* yacc.c:1646  */
4319      {
4320    if (conf_parser_ctx.pass == 1)
4321      block_state.max_sendq.value = (yyvsp[-1].number);
4322   }
4323 < #line 4330 "conf_parser.c" /* yacc.c:1646  */
4323 > #line 4324 "conf_parser.c" /* yacc.c:1646  */
4324      break;
4325  
4326 <  case 253:
4327 < #line 1499 "conf_parser.y" /* yacc.c:1646  */
4326 >  case 262:
4327 > #line 1437 "conf_parser.y" /* yacc.c:1646  */
4328      {
4329    if (conf_parser_ctx.pass == 1)
4330      if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX)
4331        block_state.max_recvq.value = (yyvsp[-1].number);
4332   }
4333 < #line 4340 "conf_parser.c" /* yacc.c:1646  */
4333 > #line 4334 "conf_parser.c" /* yacc.c:1646  */
4334      break;
4335  
4336 <  case 254:
4337 < #line 1506 "conf_parser.y" /* yacc.c:1646  */
4336 >  case 263:
4337 > #line 1444 "conf_parser.y" /* yacc.c:1646  */
4338      {
4339    if (conf_parser_ctx.pass == 1)
4340      block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number);
4341   }
4342 < #line 4349 "conf_parser.c" /* yacc.c:1646  */
4342 > #line 4343 "conf_parser.c" /* yacc.c:1646  */
4343      break;
4344  
4345 <  case 255:
4346 < #line 1512 "conf_parser.y" /* yacc.c:1646  */
4345 >  case 264:
4346 > #line 1450 "conf_parser.y" /* yacc.c:1646  */
4347      {
4348    if (conf_parser_ctx.pass == 1)
4349      block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number);
4350   }
4351 < #line 4358 "conf_parser.c" /* yacc.c:1646  */
4351 > #line 4352 "conf_parser.c" /* yacc.c:1646  */
4352      break;
4353  
4354 <  case 256:
4355 < #line 1518 "conf_parser.y" /* yacc.c:1646  */
4354 >  case 265:
4355 > #line 1456 "conf_parser.y" /* yacc.c:1646  */
4356      {
4357    if (conf_parser_ctx.pass == 1)
4358      block_state.number_per_cidr.value = (yyvsp[-1].number);
4359   }
4360 < #line 4367 "conf_parser.c" /* yacc.c:1646  */
4360 > #line 4361 "conf_parser.c" /* yacc.c:1646  */
4361      break;
4362  
4363 <  case 257:
4364 < #line 1524 "conf_parser.y" /* yacc.c:1646  */
4363 >  case 266:
4364 > #line 1462 "conf_parser.y" /* yacc.c:1646  */
4365      {
4366    if (conf_parser_ctx.pass != 1)
4367      break;
# Line 4375 | Line 4369 | yyreduce:
4369    block_state.min_idle.value = (yyvsp[-1].number);
4370    block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4371   }
4372 < #line 4379 "conf_parser.c" /* yacc.c:1646  */
4372 > #line 4373 "conf_parser.c" /* yacc.c:1646  */
4373      break;
4374  
4375 <  case 258:
4376 < #line 1533 "conf_parser.y" /* yacc.c:1646  */
4375 >  case 267:
4376 > #line 1471 "conf_parser.y" /* yacc.c:1646  */
4377      {
4378    if (conf_parser_ctx.pass != 1)
4379      break;
# Line 4387 | Line 4381 | yyreduce:
4381    block_state.max_idle.value = (yyvsp[-1].number);
4382    block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4383   }
4384 < #line 4391 "conf_parser.c" /* yacc.c:1646  */
4384 > #line 4385 "conf_parser.c" /* yacc.c:1646  */
4385      break;
4386  
4387 <  case 259:
4388 < #line 1542 "conf_parser.y" /* yacc.c:1646  */
4387 >  case 268:
4388 > #line 1480 "conf_parser.y" /* yacc.c:1646  */
4389      {
4390    if (conf_parser_ctx.pass == 1)
4391      block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4392   }
4393 < #line 4400 "conf_parser.c" /* yacc.c:1646  */
4393 > #line 4394 "conf_parser.c" /* yacc.c:1646  */
4394      break;
4395  
4396 <  case 263:
4397 < #line 1549 "conf_parser.y" /* yacc.c:1646  */
4396 >  case 272:
4397 > #line 1487 "conf_parser.y" /* yacc.c:1646  */
4398      {
4399    if (conf_parser_ctx.pass == 1)
4400      block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4401   }
4402 < #line 4409 "conf_parser.c" /* yacc.c:1646  */
4402 > #line 4403 "conf_parser.c" /* yacc.c:1646  */
4403      break;
4404  
4405 <  case 264:
4406 < #line 1553 "conf_parser.y" /* yacc.c:1646  */
4405 >  case 273:
4406 > #line 1491 "conf_parser.y" /* yacc.c:1646  */
4407      {
4408    if (conf_parser_ctx.pass == 1)
4409      block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4410   }
4411 < #line 4418 "conf_parser.c" /* yacc.c:1646  */
4411 > #line 4412 "conf_parser.c" /* yacc.c:1646  */
4412      break;
4413  
4414 <  case 265:
4415 < #line 1563 "conf_parser.y" /* yacc.c:1646  */
4414 >  case 274:
4415 > #line 1501 "conf_parser.y" /* yacc.c:1646  */
4416      {
4417    if (conf_parser_ctx.pass == 2)
4418      reset_block_state();
4419   }
4420 < #line 4427 "conf_parser.c" /* yacc.c:1646  */
4420 > #line 4421 "conf_parser.c" /* yacc.c:1646  */
4421      break;
4422  
4423 <  case 267:
4424 < #line 1569 "conf_parser.y" /* yacc.c:1646  */
4423 >  case 276:
4424 > #line 1507 "conf_parser.y" /* yacc.c:1646  */
4425      {
4426    block_state.flags.value = 0;
4427   }
4428 < #line 4435 "conf_parser.c" /* yacc.c:1646  */
4428 > #line 4429 "conf_parser.c" /* yacc.c:1646  */
4429      break;
4430  
4431 <  case 271:
4432 < #line 1575 "conf_parser.y" /* yacc.c:1646  */
4431 >  case 280:
4432 > #line 1513 "conf_parser.y" /* yacc.c:1646  */
4433      {
4434    if (conf_parser_ctx.pass == 2)
4435      block_state.flags.value |= LISTENER_SSL;
4436   }
4437 < #line 4444 "conf_parser.c" /* yacc.c:1646  */
4437 > #line 4438 "conf_parser.c" /* yacc.c:1646  */
4438      break;
4439  
4440 <  case 272:
4441 < #line 1579 "conf_parser.y" /* yacc.c:1646  */
4440 >  case 281:
4441 > #line 1517 "conf_parser.y" /* yacc.c:1646  */
4442      {
4443    if (conf_parser_ctx.pass == 2)
4444      block_state.flags.value |= LISTENER_HIDDEN;
4445   }
4446 < #line 4453 "conf_parser.c" /* yacc.c:1646  */
4446 > #line 4447 "conf_parser.c" /* yacc.c:1646  */
4447      break;
4448  
4449 <  case 273:
4450 < #line 1583 "conf_parser.y" /* yacc.c:1646  */
4449 >  case 282:
4450 > #line 1521 "conf_parser.y" /* yacc.c:1646  */
4451      {
4452    if (conf_parser_ctx.pass == 2)
4453     block_state.flags.value |= LISTENER_SERVER;
4454   }
4455 < #line 4462 "conf_parser.c" /* yacc.c:1646  */
4455 > #line 4456 "conf_parser.c" /* yacc.c:1646  */
4456      break;
4457  
4458 <  case 281:
4459 < #line 1591 "conf_parser.y" /* yacc.c:1646  */
4458 >  case 290:
4459 > #line 1529 "conf_parser.y" /* yacc.c:1646  */
4460      { block_state.flags.value = 0; }
4461 < #line 4468 "conf_parser.c" /* yacc.c:1646  */
4461 > #line 4462 "conf_parser.c" /* yacc.c:1646  */
4462      break;
4463  
4464 <  case 285:
4465 < #line 1596 "conf_parser.y" /* yacc.c:1646  */
4464 >  case 294:
4465 > #line 1534 "conf_parser.y" /* yacc.c:1646  */
4466      {
4467    if (conf_parser_ctx.pass == 2)
4468    {
4469 + #ifndef HAVE_TLS
4470      if (block_state.flags.value & LISTENER_SSL)
4471 < #ifdef HAVE_LIBCRYPTO
4472 <      if (!ServerInfo.server_ctx)
4471 >    {
4472 >      conf_error_report("TLS not available - port closed");
4473 >      break;
4474 >    }
4475   #endif
4476 <      {
4480 <        conf_error_report("SSL not available - port closed");
4481 <        break;
4482 <      }
4483 <    add_listener((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4476 >    listener_add((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4477    }
4478   }
4479 < #line 4487 "conf_parser.c" /* yacc.c:1646  */
4479 > #line 4480 "conf_parser.c" /* yacc.c:1646  */
4480      break;
4481  
4482 <  case 286:
4483 < #line 1610 "conf_parser.y" /* yacc.c:1646  */
4482 >  case 295:
4483 > #line 1547 "conf_parser.y" /* yacc.c:1646  */
4484      {
4485    if (conf_parser_ctx.pass == 2)
4486    {
4487 <    int i;
4495 <
4487 > #ifndef HAVE_TLS
4488      if (block_state.flags.value & LISTENER_SSL)
4489 < #ifdef HAVE_LIBCRYPTO
4490 <      if (!ServerInfo.server_ctx)
4489 >    {
4490 >      conf_error_report("TLS not available - port closed");
4491 >      break;
4492 >    }
4493   #endif
4500      {
4501        conf_error_report("SSL not available - port closed");
4502        break;
4503      }
4494  
4495 <    for (i = (yyvsp[-2].number); i <= (yyvsp[0].number); ++i)
4496 <      add_listener(i, block_state.addr.buf, block_state.flags.value);
4495 >    for (int i = (yyvsp[-2].number); i <= (yyvsp[0].number); ++i)
4496 >      listener_add(i, block_state.addr.buf, block_state.flags.value);
4497    }
4498   }
4499 < #line 4510 "conf_parser.c" /* yacc.c:1646  */
4499 > #line 4500 "conf_parser.c" /* yacc.c:1646  */
4500      break;
4501  
4502 <  case 287:
4503 < #line 1630 "conf_parser.y" /* yacc.c:1646  */
4502 >  case 296:
4503 > #line 1564 "conf_parser.y" /* yacc.c:1646  */
4504      {
4505    if (conf_parser_ctx.pass == 2)
4506      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4507   }
4508 < #line 4519 "conf_parser.c" /* yacc.c:1646  */
4508 > #line 4509 "conf_parser.c" /* yacc.c:1646  */
4509      break;
4510  
4511 <  case 288:
4512 < #line 1636 "conf_parser.y" /* yacc.c:1646  */
4511 >  case 297:
4512 > #line 1570 "conf_parser.y" /* yacc.c:1646  */
4513      {
4514    if (conf_parser_ctx.pass == 2)
4515      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4516   }
4517 < #line 4528 "conf_parser.c" /* yacc.c:1646  */
4517 > #line 4518 "conf_parser.c" /* yacc.c:1646  */
4518      break;
4519  
4520 <  case 289:
4521 < #line 1645 "conf_parser.y" /* yacc.c:1646  */
4520 >  case 298:
4521 > #line 1580 "conf_parser.y" /* yacc.c:1646  */
4522      {
4523    if (conf_parser_ctx.pass == 2)
4524      reset_block_state();
4525   }
4526 < #line 4537 "conf_parser.c" /* yacc.c:1646  */
4526 > #line 4527 "conf_parser.c" /* yacc.c:1646  */
4527      break;
4528  
4529 <  case 290:
4530 < #line 1649 "conf_parser.y" /* yacc.c:1646  */
4529 >  case 299:
4530 > #line 1584 "conf_parser.y" /* yacc.c:1646  */
4531      {
4532 <  dlink_node *ptr = NULL;
4532 >  dlink_node *node = NULL;
4533  
4534    if (conf_parser_ctx.pass != 2)
4535      break;
4536  
4537 <  DLINK_FOREACH(ptr, block_state.mask.list.head)
4537 >  DLINK_FOREACH(node, block_state.mask.list.head)
4538    {
4539      struct MaskItem *conf = NULL;
4540      struct split_nuh_item nuh;
4541 +    char *s = node->data;
4542 +
4543 +    if (EmptyString(s))
4544 +      continue;
4545  
4546 <    nuh.nuhmask  = ptr->data;
4546 >    nuh.nuhmask  = s;
4547      nuh.nickptr  = NULL;
4548      nuh.userptr  = block_state.user.buf;
4549      nuh.hostptr  = block_state.host.buf;
# Line 4574 | Line 4568 | yyreduce:
4568      add_conf_by_address(CONF_CLIENT, conf);
4569    }
4570   }
4571 < #line 4578 "conf_parser.c" /* yacc.c:1646  */
4571 > #line 4572 "conf_parser.c" /* yacc.c:1646  */
4572      break;
4573  
4574 <  case 302:
4575 < #line 1692 "conf_parser.y" /* yacc.c:1646  */
4574 >  case 311:
4575 > #line 1637 "conf_parser.y" /* yacc.c:1646  */
4576      {
4577    if (conf_parser_ctx.pass == 2)
4578      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4579   }
4580 < #line 4587 "conf_parser.c" /* yacc.c:1646  */
4580 > #line 4581 "conf_parser.c" /* yacc.c:1646  */
4581      break;
4582  
4583 <  case 303:
4584 < #line 1698 "conf_parser.y" /* yacc.c:1646  */
4583 >  case 312:
4584 > #line 1643 "conf_parser.y" /* yacc.c:1646  */
4585      {
4586    if (conf_parser_ctx.pass == 2)
4587      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4588   }
4589 < #line 4596 "conf_parser.c" /* yacc.c:1646  */
4589 > #line 4590 "conf_parser.c" /* yacc.c:1646  */
4590      break;
4591  
4592 <  case 304:
4593 < #line 1704 "conf_parser.y" /* yacc.c:1646  */
4592 >  case 313:
4593 > #line 1649 "conf_parser.y" /* yacc.c:1646  */
4594      {
4595    if (conf_parser_ctx.pass == 2)
4596      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4597   }
4598 < #line 4605 "conf_parser.c" /* yacc.c:1646  */
4598 > #line 4599 "conf_parser.c" /* yacc.c:1646  */
4599      break;
4600  
4601 <  case 305:
4602 < #line 1710 "conf_parser.y" /* yacc.c:1646  */
4601 >  case 314:
4602 > #line 1655 "conf_parser.y" /* yacc.c:1646  */
4603      {
4604    if (conf_parser_ctx.pass == 2)
4605    {
# Line 4615 | Line 4609 | yyreduce:
4609        block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4610    }
4611   }
4612 < #line 4619 "conf_parser.c" /* yacc.c:1646  */
4612 > #line 4613 "conf_parser.c" /* yacc.c:1646  */
4613      break;
4614  
4615 <  case 306:
4616 < #line 1721 "conf_parser.y" /* yacc.c:1646  */
4615 >  case 315:
4616 > #line 1666 "conf_parser.y" /* yacc.c:1646  */
4617      {
4618    if (conf_parser_ctx.pass == 2)
4619      block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4620   }
4621 < #line 4628 "conf_parser.c" /* yacc.c:1646  */
4621 > #line 4622 "conf_parser.c" /* yacc.c:1646  */
4622      break;
4623  
4624 <  case 310:
4625 < #line 1728 "conf_parser.y" /* yacc.c:1646  */
4624 >  case 319:
4625 > #line 1673 "conf_parser.y" /* yacc.c:1646  */
4626      {
4627    if (conf_parser_ctx.pass == 2)
4628      block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4629   }
4630 < #line 4637 "conf_parser.c" /* yacc.c:1646  */
4630 > #line 4631 "conf_parser.c" /* yacc.c:1646  */
4631      break;
4632  
4633 <  case 311:
4634 < #line 1732 "conf_parser.y" /* yacc.c:1646  */
4633 >  case 320:
4634 > #line 1677 "conf_parser.y" /* yacc.c:1646  */
4635      {
4636    if (conf_parser_ctx.pass == 2)
4637      block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4638   }
4639 < #line 4646 "conf_parser.c" /* yacc.c:1646  */
4639 > #line 4640 "conf_parser.c" /* yacc.c:1646  */
4640      break;
4641  
4642 <  case 312:
4643 < #line 1736 "conf_parser.y" /* yacc.c:1646  */
4642 >  case 321:
4643 > #line 1681 "conf_parser.y" /* yacc.c:1646  */
4644      {
4645    if (conf_parser_ctx.pass == 2)
4646      block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4647   }
4648 < #line 4655 "conf_parser.c" /* yacc.c:1646  */
4648 > #line 4649 "conf_parser.c" /* yacc.c:1646  */
4649      break;
4650  
4651 <  case 313:
4652 < #line 1740 "conf_parser.y" /* yacc.c:1646  */
4651 >  case 322:
4652 > #line 1685 "conf_parser.y" /* yacc.c:1646  */
4653      {
4654    if (conf_parser_ctx.pass == 2)
4655 <    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4655 >    block_state.flags.value |= CONF_FLAGS_EXEMPTXLINE;
4656   }
4657 < #line 4664 "conf_parser.c" /* yacc.c:1646  */
4657 > #line 4658 "conf_parser.c" /* yacc.c:1646  */
4658      break;
4659  
4660 <  case 314:
4661 < #line 1744 "conf_parser.y" /* yacc.c:1646  */
4660 >  case 323:
4661 > #line 1689 "conf_parser.y" /* yacc.c:1646  */
4662      {
4663    if (conf_parser_ctx.pass == 2)
4664 <    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4664 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4665   }
4666 < #line 4673 "conf_parser.c" /* yacc.c:1646  */
4666 > #line 4667 "conf_parser.c" /* yacc.c:1646  */
4667      break;
4668  
4669 <  case 315:
4670 < #line 1748 "conf_parser.y" /* yacc.c:1646  */
4669 >  case 324:
4670 > #line 1693 "conf_parser.y" /* yacc.c:1646  */
4671      {
4672    if (conf_parser_ctx.pass == 2)
4673 <    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4673 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4674   }
4675 < #line 4682 "conf_parser.c" /* yacc.c:1646  */
4675 > #line 4676 "conf_parser.c" /* yacc.c:1646  */
4676      break;
4677  
4678 <  case 316:
4679 < #line 1752 "conf_parser.y" /* yacc.c:1646  */
4678 >  case 325:
4679 > #line 1697 "conf_parser.y" /* yacc.c:1646  */
4680      {
4681    if (conf_parser_ctx.pass == 2)
4682 <    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4682 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4683   }
4684 < #line 4691 "conf_parser.c" /* yacc.c:1646  */
4684 > #line 4685 "conf_parser.c" /* yacc.c:1646  */
4685      break;
4686  
4687 <  case 317:
4688 < #line 1756 "conf_parser.y" /* yacc.c:1646  */
4687 >  case 326:
4688 > #line 1701 "conf_parser.y" /* yacc.c:1646  */
4689      {
4690    if (conf_parser_ctx.pass == 2)
4691      block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4692   }
4693 < #line 4700 "conf_parser.c" /* yacc.c:1646  */
4693 > #line 4694 "conf_parser.c" /* yacc.c:1646  */
4694      break;
4695  
4696 <  case 318:
4697 < #line 1760 "conf_parser.y" /* yacc.c:1646  */
4696 >  case 327:
4697 > #line 1705 "conf_parser.y" /* yacc.c:1646  */
4698      {
4699    if (conf_parser_ctx.pass == 2)
4700      block_state.flags.value |= CONF_FLAGS_WEBIRC;
4701   }
4702 < #line 4709 "conf_parser.c" /* yacc.c:1646  */
4702 > #line 4703 "conf_parser.c" /* yacc.c:1646  */
4703      break;
4704  
4705 <  case 319:
4706 < #line 1764 "conf_parser.y" /* yacc.c:1646  */
4705 >  case 328:
4706 > #line 1709 "conf_parser.y" /* yacc.c:1646  */
4707      {
4708    if (conf_parser_ctx.pass == 2)
4709      block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4710   }
4711 < #line 4718 "conf_parser.c" /* yacc.c:1646  */
4711 > #line 4712 "conf_parser.c" /* yacc.c:1646  */
4712      break;
4713  
4714 <  case 320:
4715 < #line 1770 "conf_parser.y" /* yacc.c:1646  */
4714 >  case 329:
4715 > #line 1715 "conf_parser.y" /* yacc.c:1646  */
4716      {
4717    if (conf_parser_ctx.pass != 2)
4718      break;
4719  
4720 <  if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4720 >  if (valid_hostname(yylval.string))
4721    {
4722      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4723      block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
# Line 4731 | Line 4725 | yyreduce:
4725    else
4726      ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4727   }
4728 < #line 4735 "conf_parser.c" /* yacc.c:1646  */
4728 > #line 4729 "conf_parser.c" /* yacc.c:1646  */
4729      break;
4730  
4731 <  case 321:
4732 < #line 1784 "conf_parser.y" /* yacc.c:1646  */
4731 >  case 330:
4732 > #line 1729 "conf_parser.y" /* yacc.c:1646  */
4733      {
4734    if (conf_parser_ctx.pass != 2)
4735      break;
# Line 4743 | Line 4737 | yyreduce:
4737    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4738    block_state.flags.value |= CONF_FLAGS_REDIR;
4739   }
4740 < #line 4747 "conf_parser.c" /* yacc.c:1646  */
4740 > #line 4741 "conf_parser.c" /* yacc.c:1646  */
4741      break;
4742  
4743 <  case 322:
4744 < #line 1793 "conf_parser.y" /* yacc.c:1646  */
4743 >  case 331:
4744 > #line 1738 "conf_parser.y" /* yacc.c:1646  */
4745      {
4746    if (conf_parser_ctx.pass != 2)
4747      break;
# Line 4755 | Line 4749 | yyreduce:
4749    block_state.flags.value |= CONF_FLAGS_REDIR;
4750    block_state.port.value = (yyvsp[-1].number);
4751   }
4752 < #line 4759 "conf_parser.c" /* yacc.c:1646  */
4752 > #line 4753 "conf_parser.c" /* yacc.c:1646  */
4753      break;
4754  
4755 <  case 323:
4756 < #line 1806 "conf_parser.y" /* yacc.c:1646  */
4755 >  case 332:
4756 > #line 1751 "conf_parser.y" /* yacc.c:1646  */
4757      {
4758    if (conf_parser_ctx.pass != 2)
4759      break;
# Line 4767 | Line 4761 | yyreduce:
4761    reset_block_state();
4762    strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4763   }
4764 < #line 4771 "conf_parser.c" /* yacc.c:1646  */
4764 > #line 4765 "conf_parser.c" /* yacc.c:1646  */
4765      break;
4766  
4767 <  case 324:
4768 < #line 1813 "conf_parser.y" /* yacc.c:1646  */
4767 >  case 333:
4768 > #line 1758 "conf_parser.y" /* yacc.c:1646  */
4769      {
4770    if (conf_parser_ctx.pass != 2)
4771      break;
4772  
4773 <  create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4773 >  resv_make(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4774   }
4775 < #line 4782 "conf_parser.c" /* yacc.c:1646  */
4775 > #line 4776 "conf_parser.c" /* yacc.c:1646  */
4776      break;
4777  
4778 <  case 331:
4779 < #line 1824 "conf_parser.y" /* yacc.c:1646  */
4778 >  case 340:
4779 > #line 1769 "conf_parser.y" /* yacc.c:1646  */
4780      {
4781    if (conf_parser_ctx.pass == 2)
4782      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4783   }
4784 < #line 4791 "conf_parser.c" /* yacc.c:1646  */
4784 > #line 4785 "conf_parser.c" /* yacc.c:1646  */
4785      break;
4786  
4787 <  case 332:
4788 < #line 1830 "conf_parser.y" /* yacc.c:1646  */
4787 >  case 341:
4788 > #line 1775 "conf_parser.y" /* yacc.c:1646  */
4789      {
4790    if (conf_parser_ctx.pass == 2)
4791      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4792   }
4793 < #line 4800 "conf_parser.c" /* yacc.c:1646  */
4793 > #line 4794 "conf_parser.c" /* yacc.c:1646  */
4794      break;
4795  
4796 <  case 333:
4797 < #line 1836 "conf_parser.y" /* yacc.c:1646  */
4796 >  case 342:
4797 > #line 1781 "conf_parser.y" /* yacc.c:1646  */
4798      {
4799    if (conf_parser_ctx.pass == 2)
4800      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4801   }
4802 < #line 4809 "conf_parser.c" /* yacc.c:1646  */
4802 > #line 4803 "conf_parser.c" /* yacc.c:1646  */
4803      break;
4804  
4805 <  case 339:
4806 < #line 1851 "conf_parser.y" /* yacc.c:1646  */
4805 >  case 348:
4806 > #line 1796 "conf_parser.y" /* yacc.c:1646  */
4807      {
4808    if (conf_parser_ctx.pass != 2)
4809      break;
4810  
4811 <  if (valid_servname(yylval.string))
4811 >  if (server_valid_name(yylval.string) == true)
4812    {
4813 <    struct MaskItem *conf = conf_make(CONF_SERVICE);
4814 <    conf->name = xstrdup(yylval.string);
4813 >    struct ServiceItem *service = service_make();
4814 >    service->name = xstrdup(yylval.string);
4815    }
4816   }
4817 < #line 4824 "conf_parser.c" /* yacc.c:1646  */
4817 > #line 4818 "conf_parser.c" /* yacc.c:1646  */
4818      break;
4819  
4820 <  case 340:
4821 < #line 1866 "conf_parser.y" /* yacc.c:1646  */
4820 >  case 349:
4821 > #line 1812 "conf_parser.y" /* yacc.c:1646  */
4822      {
4823    if (conf_parser_ctx.pass != 2)
4824      break;
# Line 4836 | Line 4830 | yyreduce:
4830    strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4831    block_state.flags.value = SHARED_ALL;
4832   }
4833 < #line 4840 "conf_parser.c" /* yacc.c:1646  */
4833 > #line 4834 "conf_parser.c" /* yacc.c:1646  */
4834      break;
4835  
4836 <  case 341:
4837 < #line 1877 "conf_parser.y" /* yacc.c:1646  */
4836 >  case 350:
4837 > #line 1823 "conf_parser.y" /* yacc.c:1646  */
4838      {
4845  struct MaskItem *conf = NULL;
4846
4839    if (conf_parser_ctx.pass != 2)
4840      break;
4841  
4842 <  conf = conf_make(CONF_ULINE);
4843 <  conf->flags = block_state.flags.value;
4844 <  conf->name = xstrdup(block_state.name.buf);
4845 <  conf->user = xstrdup(block_state.user.buf);
4846 <  conf->host = xstrdup(block_state.host.buf);
4842 >  struct SharedItem *shared = shared_make();
4843 >  shared->type = block_state.flags.value;
4844 >  shared->server = xstrdup(block_state.name.buf);
4845 >  shared->user = xstrdup(block_state.user.buf);
4846 >  shared->host = xstrdup(block_state.host.buf);
4847   }
4848 < #line 4857 "conf_parser.c" /* yacc.c:1646  */
4848 > #line 4849 "conf_parser.c" /* yacc.c:1646  */
4849      break;
4850  
4851 <  case 348:
4852 < #line 1894 "conf_parser.y" /* yacc.c:1646  */
4851 >  case 357:
4852 > #line 1838 "conf_parser.y" /* yacc.c:1646  */
4853      {
4854    if (conf_parser_ctx.pass == 2)
4855      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4856   }
4857 < #line 4866 "conf_parser.c" /* yacc.c:1646  */
4857 > #line 4858 "conf_parser.c" /* yacc.c:1646  */
4858      break;
4859  
4860 <  case 349:
4861 < #line 1900 "conf_parser.y" /* yacc.c:1646  */
4860 >  case 358:
4861 > #line 1844 "conf_parser.y" /* yacc.c:1646  */
4862      {
4863    if (conf_parser_ctx.pass == 2)
4864    {
# Line 4884 | Line 4876 | yyreduce:
4876      split_nuh(&nuh);
4877    }
4878   }
4879 < #line 4888 "conf_parser.c" /* yacc.c:1646  */
4879 > #line 4880 "conf_parser.c" /* yacc.c:1646  */
4880      break;
4881  
4882 <  case 350:
4883 < #line 1919 "conf_parser.y" /* yacc.c:1646  */
4882 >  case 359:
4883 > #line 1863 "conf_parser.y" /* yacc.c:1646  */
4884      {
4885    if (conf_parser_ctx.pass == 2)
4886      block_state.flags.value = 0;
4887   }
4888 < #line 4897 "conf_parser.c" /* yacc.c:1646  */
4888 > #line 4889 "conf_parser.c" /* yacc.c:1646  */
4889      break;
4890  
4891 <  case 354:
4892 < #line 1926 "conf_parser.y" /* yacc.c:1646  */
4891 >  case 363:
4892 > #line 1870 "conf_parser.y" /* yacc.c:1646  */
4893      {
4894    if (conf_parser_ctx.pass == 2)
4895      block_state.flags.value |= SHARED_KLINE;
4896   }
4897 < #line 4906 "conf_parser.c" /* yacc.c:1646  */
4897 > #line 4898 "conf_parser.c" /* yacc.c:1646  */
4898      break;
4899  
4900 <  case 355:
4901 < #line 1930 "conf_parser.y" /* yacc.c:1646  */
4900 >  case 364:
4901 > #line 1874 "conf_parser.y" /* yacc.c:1646  */
4902      {
4903    if (conf_parser_ctx.pass == 2)
4904      block_state.flags.value |= SHARED_UNKLINE;
4905   }
4906 < #line 4915 "conf_parser.c" /* yacc.c:1646  */
4906 > #line 4907 "conf_parser.c" /* yacc.c:1646  */
4907      break;
4908  
4909 <  case 356:
4910 < #line 1934 "conf_parser.y" /* yacc.c:1646  */
4909 >  case 365:
4910 > #line 1878 "conf_parser.y" /* yacc.c:1646  */
4911      {
4912    if (conf_parser_ctx.pass == 2)
4913      block_state.flags.value |= SHARED_DLINE;
4914   }
4915 < #line 4924 "conf_parser.c" /* yacc.c:1646  */
4915 > #line 4916 "conf_parser.c" /* yacc.c:1646  */
4916      break;
4917  
4918 <  case 357:
4919 < #line 1938 "conf_parser.y" /* yacc.c:1646  */
4918 >  case 366:
4919 > #line 1882 "conf_parser.y" /* yacc.c:1646  */
4920      {
4921    if (conf_parser_ctx.pass == 2)
4922      block_state.flags.value |= SHARED_UNDLINE;
4923   }
4924 < #line 4933 "conf_parser.c" /* yacc.c:1646  */
4924 > #line 4925 "conf_parser.c" /* yacc.c:1646  */
4925      break;
4926  
4927 <  case 358:
4928 < #line 1942 "conf_parser.y" /* yacc.c:1646  */
4927 >  case 367:
4928 > #line 1886 "conf_parser.y" /* yacc.c:1646  */
4929      {
4930    if (conf_parser_ctx.pass == 2)
4931      block_state.flags.value |= SHARED_XLINE;
4932   }
4933 < #line 4942 "conf_parser.c" /* yacc.c:1646  */
4933 > #line 4934 "conf_parser.c" /* yacc.c:1646  */
4934      break;
4935  
4936 <  case 359:
4937 < #line 1946 "conf_parser.y" /* yacc.c:1646  */
4936 >  case 368:
4937 > #line 1890 "conf_parser.y" /* yacc.c:1646  */
4938      {
4939    if (conf_parser_ctx.pass == 2)
4940      block_state.flags.value |= SHARED_UNXLINE;
4941   }
4942 < #line 4951 "conf_parser.c" /* yacc.c:1646  */
4942 > #line 4943 "conf_parser.c" /* yacc.c:1646  */
4943      break;
4944  
4945 <  case 360:
4946 < #line 1950 "conf_parser.y" /* yacc.c:1646  */
4945 >  case 369:
4946 > #line 1894 "conf_parser.y" /* yacc.c:1646  */
4947      {
4948    if (conf_parser_ctx.pass == 2)
4949      block_state.flags.value |= SHARED_RESV;
4950   }
4951 < #line 4960 "conf_parser.c" /* yacc.c:1646  */
4951 > #line 4952 "conf_parser.c" /* yacc.c:1646  */
4952      break;
4953  
4954 <  case 361:
4955 < #line 1954 "conf_parser.y" /* yacc.c:1646  */
4954 >  case 370:
4955 > #line 1898 "conf_parser.y" /* yacc.c:1646  */
4956      {
4957    if (conf_parser_ctx.pass == 2)
4958      block_state.flags.value |= SHARED_UNRESV;
4959   }
4960 < #line 4969 "conf_parser.c" /* yacc.c:1646  */
4960 > #line 4961 "conf_parser.c" /* yacc.c:1646  */
4961      break;
4962  
4963 <  case 362:
4964 < #line 1958 "conf_parser.y" /* yacc.c:1646  */
4963 >  case 371:
4964 > #line 1902 "conf_parser.y" /* yacc.c:1646  */
4965      {
4966    if (conf_parser_ctx.pass == 2)
4967      block_state.flags.value |= SHARED_LOCOPS;
4968   }
4969 < #line 4978 "conf_parser.c" /* yacc.c:1646  */
4969 > #line 4970 "conf_parser.c" /* yacc.c:1646  */
4970      break;
4971  
4972 <  case 363:
4973 < #line 1962 "conf_parser.y" /* yacc.c:1646  */
4972 >  case 372:
4973 > #line 1906 "conf_parser.y" /* yacc.c:1646  */
4974      {
4975    if (conf_parser_ctx.pass == 2)
4976      block_state.flags.value = SHARED_ALL;
4977   }
4978 < #line 4987 "conf_parser.c" /* yacc.c:1646  */
4978 > #line 4979 "conf_parser.c" /* yacc.c:1646  */
4979      break;
4980  
4981 <  case 364:
4982 < #line 1971 "conf_parser.y" /* yacc.c:1646  */
4981 >  case 373:
4982 > #line 1916 "conf_parser.y" /* yacc.c:1646  */
4983      {
4984    if (conf_parser_ctx.pass != 2)
4985      break;
# Line 4995 | Line 4987 | yyreduce:
4987    reset_block_state();
4988  
4989    strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4990 <  block_state.flags.value = SHARED_ALL;
4990 >  block_state.flags.value = CLUSTER_ALL;
4991   }
4992 < #line 5001 "conf_parser.c" /* yacc.c:1646  */
4992 > #line 4993 "conf_parser.c" /* yacc.c:1646  */
4993      break;
4994  
4995 <  case 365:
4996 < #line 1980 "conf_parser.y" /* yacc.c:1646  */
4995 >  case 374:
4996 > #line 1925 "conf_parser.y" /* yacc.c:1646  */
4997      {
5006  struct MaskItem *conf = NULL;
5007
4998    if (conf_parser_ctx.pass != 2)
4999      break;
5000  
5001 <  conf = conf_make(CONF_CLUSTER);
5002 <  conf->flags = block_state.flags.value;
5003 <  conf->name = xstrdup(block_state.name.buf);
5001 >  struct ClusterItem *cluster = cluster_make();
5002 >  cluster->type = block_state.flags.value;
5003 >  cluster->server = xstrdup(block_state.name.buf);
5004   }
5005 < #line 5016 "conf_parser.c" /* yacc.c:1646  */
5005 > #line 5006 "conf_parser.c" /* yacc.c:1646  */
5006      break;
5007  
5008 <  case 371:
5009 < #line 1995 "conf_parser.y" /* yacc.c:1646  */
5008 >  case 380:
5009 > #line 1938 "conf_parser.y" /* yacc.c:1646  */
5010      {
5011    if (conf_parser_ctx.pass == 2)
5012      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5013   }
5014 < #line 5025 "conf_parser.c" /* yacc.c:1646  */
5014 > #line 5015 "conf_parser.c" /* yacc.c:1646  */
5015      break;
5016  
5017 <  case 372:
5018 < #line 2001 "conf_parser.y" /* yacc.c:1646  */
5017 >  case 381:
5018 > #line 1944 "conf_parser.y" /* yacc.c:1646  */
5019      {
5020    if (conf_parser_ctx.pass == 2)
5021      block_state.flags.value = 0;
5022   }
5023 < #line 5034 "conf_parser.c" /* yacc.c:1646  */
5023 > #line 5024 "conf_parser.c" /* yacc.c:1646  */
5024      break;
5025  
5026 <  case 376:
5027 < #line 2008 "conf_parser.y" /* yacc.c:1646  */
5026 >  case 385:
5027 > #line 1951 "conf_parser.y" /* yacc.c:1646  */
5028      {
5029    if (conf_parser_ctx.pass == 2)
5030 <    block_state.flags.value |= SHARED_KLINE;
5030 >    block_state.flags.value |= CLUSTER_KLINE;
5031   }
5032 < #line 5043 "conf_parser.c" /* yacc.c:1646  */
5032 > #line 5033 "conf_parser.c" /* yacc.c:1646  */
5033      break;
5034  
5035 <  case 377:
5036 < #line 2012 "conf_parser.y" /* yacc.c:1646  */
5035 >  case 386:
5036 > #line 1955 "conf_parser.y" /* yacc.c:1646  */
5037      {
5038    if (conf_parser_ctx.pass == 2)
5039 <    block_state.flags.value |= SHARED_UNKLINE;
5039 >    block_state.flags.value |= CLUSTER_UNKLINE;
5040   }
5041 < #line 5052 "conf_parser.c" /* yacc.c:1646  */
5041 > #line 5042 "conf_parser.c" /* yacc.c:1646  */
5042      break;
5043  
5044 <  case 378:
5045 < #line 2016 "conf_parser.y" /* yacc.c:1646  */
5044 >  case 387:
5045 > #line 1959 "conf_parser.y" /* yacc.c:1646  */
5046      {
5047    if (conf_parser_ctx.pass == 2)
5048 <    block_state.flags.value |= SHARED_DLINE;
5048 >    block_state.flags.value |= CLUSTER_DLINE;
5049   }
5050 < #line 5061 "conf_parser.c" /* yacc.c:1646  */
5050 > #line 5051 "conf_parser.c" /* yacc.c:1646  */
5051      break;
5052  
5053 <  case 379:
5054 < #line 2020 "conf_parser.y" /* yacc.c:1646  */
5053 >  case 388:
5054 > #line 1963 "conf_parser.y" /* yacc.c:1646  */
5055      {
5056    if (conf_parser_ctx.pass == 2)
5057 <    block_state.flags.value |= SHARED_UNDLINE;
5057 >    block_state.flags.value |= CLUSTER_UNDLINE;
5058   }
5059 < #line 5070 "conf_parser.c" /* yacc.c:1646  */
5059 > #line 5060 "conf_parser.c" /* yacc.c:1646  */
5060      break;
5061  
5062 <  case 380:
5063 < #line 2024 "conf_parser.y" /* yacc.c:1646  */
5062 >  case 389:
5063 > #line 1967 "conf_parser.y" /* yacc.c:1646  */
5064      {
5065    if (conf_parser_ctx.pass == 2)
5066 <    block_state.flags.value |= SHARED_XLINE;
5066 >    block_state.flags.value |= CLUSTER_XLINE;
5067   }
5068 < #line 5079 "conf_parser.c" /* yacc.c:1646  */
5068 > #line 5069 "conf_parser.c" /* yacc.c:1646  */
5069      break;
5070  
5071 <  case 381:
5072 < #line 2028 "conf_parser.y" /* yacc.c:1646  */
5071 >  case 390:
5072 > #line 1971 "conf_parser.y" /* yacc.c:1646  */
5073      {
5074    if (conf_parser_ctx.pass == 2)
5075 <    block_state.flags.value |= SHARED_UNXLINE;
5075 >    block_state.flags.value |= CLUSTER_UNXLINE;
5076   }
5077 < #line 5088 "conf_parser.c" /* yacc.c:1646  */
5077 > #line 5078 "conf_parser.c" /* yacc.c:1646  */
5078      break;
5079  
5080 <  case 382:
5081 < #line 2032 "conf_parser.y" /* yacc.c:1646  */
5080 >  case 391:
5081 > #line 1975 "conf_parser.y" /* yacc.c:1646  */
5082      {
5083    if (conf_parser_ctx.pass == 2)
5084 <    block_state.flags.value |= SHARED_RESV;
5084 >    block_state.flags.value |= CLUSTER_RESV;
5085   }
5086 < #line 5097 "conf_parser.c" /* yacc.c:1646  */
5086 > #line 5087 "conf_parser.c" /* yacc.c:1646  */
5087      break;
5088  
5089 <  case 383:
5090 < #line 2036 "conf_parser.y" /* yacc.c:1646  */
5089 >  case 392:
5090 > #line 1979 "conf_parser.y" /* yacc.c:1646  */
5091      {
5092    if (conf_parser_ctx.pass == 2)
5093 <    block_state.flags.value |= SHARED_UNRESV;
5093 >    block_state.flags.value |= CLUSTER_UNRESV;
5094   }
5095 < #line 5106 "conf_parser.c" /* yacc.c:1646  */
5095 > #line 5096 "conf_parser.c" /* yacc.c:1646  */
5096      break;
5097  
5098 <  case 384:
5099 < #line 2040 "conf_parser.y" /* yacc.c:1646  */
5098 >  case 393:
5099 > #line 1983 "conf_parser.y" /* yacc.c:1646  */
5100      {
5101    if (conf_parser_ctx.pass == 2)
5102 <    block_state.flags.value |= SHARED_LOCOPS;
5102 >    block_state.flags.value |= CLUSTER_LOCOPS;
5103   }
5104 < #line 5115 "conf_parser.c" /* yacc.c:1646  */
5104 > #line 5105 "conf_parser.c" /* yacc.c:1646  */
5105      break;
5106  
5107 <  case 385:
5108 < #line 2044 "conf_parser.y" /* yacc.c:1646  */
5107 >  case 394:
5108 > #line 1987 "conf_parser.y" /* yacc.c:1646  */
5109      {
5110    if (conf_parser_ctx.pass == 2)
5111 <    block_state.flags.value = SHARED_ALL;
5111 >    block_state.flags.value = CLUSTER_ALL;
5112   }
5113 < #line 5124 "conf_parser.c" /* yacc.c:1646  */
5113 > #line 5114 "conf_parser.c" /* yacc.c:1646  */
5114      break;
5115  
5116 <  case 386:
5117 < #line 2053 "conf_parser.y" /* yacc.c:1646  */
5116 >  case 395:
5117 > #line 1997 "conf_parser.y" /* yacc.c:1646  */
5118      {
5119  
5120    if (conf_parser_ctx.pass != 2)
# Line 5134 | Line 5124 | yyreduce:
5124    block_state.aftype.value = AF_INET;
5125    block_state.port.value = PORTNUM;
5126   }
5127 < #line 5138 "conf_parser.c" /* yacc.c:1646  */
5127 > #line 5128 "conf_parser.c" /* yacc.c:1646  */
5128      break;
5129  
5130 <  case 387:
5131 < #line 2062 "conf_parser.y" /* yacc.c:1646  */
5130 >  case 396:
5131 > #line 2006 "conf_parser.y" /* yacc.c:1646  */
5132      {
5133    struct MaskItem *conf = NULL;
5134    struct addrinfo hints, *res;
# Line 5188 | Line 5178 | yyreduce:
5178        ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5179      else
5180      {
5181 <      assert(res != NULL);
5181 >      assert(res);
5182  
5183        memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5184        conf->bind.ss.ss_family = res->ai_family;
# Line 5200 | Line 5190 | yyreduce:
5190    conf_add_class_to_conf(conf, block_state.class.buf);
5191    lookup_confhost(conf);
5192   }
5193 < #line 5204 "conf_parser.c" /* yacc.c:1646  */
5193 > #line 5194 "conf_parser.c" /* yacc.c:1646  */
5194      break;
5195  
5196 <  case 405:
5197 < #line 2134 "conf_parser.y" /* yacc.c:1646  */
5196 >  case 414:
5197 > #line 2086 "conf_parser.y" /* yacc.c:1646  */
5198      {
5199    if (conf_parser_ctx.pass == 2)
5200      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5201   }
5202 < #line 5213 "conf_parser.c" /* yacc.c:1646  */
5202 > #line 5203 "conf_parser.c" /* yacc.c:1646  */
5203      break;
5204  
5205 <  case 406:
5206 < #line 2140 "conf_parser.y" /* yacc.c:1646  */
5205 >  case 415:
5206 > #line 2092 "conf_parser.y" /* yacc.c:1646  */
5207      {
5208    if (conf_parser_ctx.pass == 2)
5209      strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5210   }
5211 < #line 5222 "conf_parser.c" /* yacc.c:1646  */
5211 > #line 5212 "conf_parser.c" /* yacc.c:1646  */
5212      break;
5213  
5214 <  case 407:
5215 < #line 2146 "conf_parser.y" /* yacc.c:1646  */
5214 >  case 416:
5215 > #line 2098 "conf_parser.y" /* yacc.c:1646  */
5216      {
5217    if (conf_parser_ctx.pass == 2)
5218      strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5219   }
5220 < #line 5231 "conf_parser.c" /* yacc.c:1646  */
5220 > #line 5221 "conf_parser.c" /* yacc.c:1646  */
5221      break;
5222  
5223 <  case 408:
5224 < #line 2152 "conf_parser.y" /* yacc.c:1646  */
5223 >  case 417:
5224 > #line 2104 "conf_parser.y" /* yacc.c:1646  */
5225      {
5226    if (conf_parser_ctx.pass != 2)
5227      break;
5228  
5229    if ((yyvsp[-1].string)[0] == ':')
5230      conf_error_report("Server passwords cannot begin with a colon");
5231 <  else if (strchr((yyvsp[-1].string), ' ') != NULL)
5231 >  else if (strchr((yyvsp[-1].string), ' '))
5232      conf_error_report("Server passwords cannot contain spaces");
5233    else
5234      strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5235   }
5236 < #line 5247 "conf_parser.c" /* yacc.c:1646  */
5236 > #line 5237 "conf_parser.c" /* yacc.c:1646  */
5237      break;
5238  
5239 <  case 409:
5240 < #line 2165 "conf_parser.y" /* yacc.c:1646  */
5239 >  case 418:
5240 > #line 2117 "conf_parser.y" /* yacc.c:1646  */
5241      {
5242    if (conf_parser_ctx.pass != 2)
5243      break;
5244  
5245    if ((yyvsp[-1].string)[0] == ':')
5246      conf_error_report("Server passwords cannot begin with a colon");
5247 <  else if (strchr((yyvsp[-1].string), ' ') != NULL)
5247 >  else if (strchr((yyvsp[-1].string), ' '))
5248      conf_error_report("Server passwords cannot contain spaces");
5249    else
5250      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5251   }
5252 < #line 5263 "conf_parser.c" /* yacc.c:1646  */
5252 > #line 5253 "conf_parser.c" /* yacc.c:1646  */
5253      break;
5254  
5255 <  case 410:
5256 < #line 2178 "conf_parser.y" /* yacc.c:1646  */
5255 >  case 419:
5256 > #line 2130 "conf_parser.y" /* yacc.c:1646  */
5257      {
5258    if (conf_parser_ctx.pass == 2)
5259      strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5260   }
5261 < #line 5272 "conf_parser.c" /* yacc.c:1646  */
5261 > #line 5262 "conf_parser.c" /* yacc.c:1646  */
5262      break;
5263  
5264 <  case 411:
5265 < #line 2184 "conf_parser.y" /* yacc.c:1646  */
5264 >  case 420:
5265 > #line 2136 "conf_parser.y" /* yacc.c:1646  */
5266      {
5267    if (conf_parser_ctx.pass == 2)
5268      block_state.port.value = (yyvsp[-1].number);
5269   }
5270 < #line 5281 "conf_parser.c" /* yacc.c:1646  */
5270 > #line 5271 "conf_parser.c" /* yacc.c:1646  */
5271      break;
5272  
5273 <  case 412:
5274 < #line 2190 "conf_parser.y" /* yacc.c:1646  */
5273 >  case 421:
5274 > #line 2142 "conf_parser.y" /* yacc.c:1646  */
5275      {
5276    if (conf_parser_ctx.pass == 2)
5277      block_state.aftype.value = AF_INET;
5278   }
5279 < #line 5290 "conf_parser.c" /* yacc.c:1646  */
5279 > #line 5280 "conf_parser.c" /* yacc.c:1646  */
5280      break;
5281  
5282 <  case 413:
5283 < #line 2194 "conf_parser.y" /* yacc.c:1646  */
5282 >  case 422:
5283 > #line 2146 "conf_parser.y" /* yacc.c:1646  */
5284      {
5295 #ifdef IPV6
5285    if (conf_parser_ctx.pass == 2)
5286      block_state.aftype.value = AF_INET6;
5298 #endif
5287   }
5288 < #line 5301 "conf_parser.c" /* yacc.c:1646  */
5288 > #line 5289 "conf_parser.c" /* yacc.c:1646  */
5289      break;
5290  
5291 <  case 414:
5292 < #line 2202 "conf_parser.y" /* yacc.c:1646  */
5291 >  case 423:
5292 > #line 2152 "conf_parser.y" /* yacc.c:1646  */
5293      {
5294    block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5295   }
5296 < #line 5309 "conf_parser.c" /* yacc.c:1646  */
5296 > #line 5297 "conf_parser.c" /* yacc.c:1646  */
5297      break;
5298  
5299 <  case 418:
5300 < #line 2208 "conf_parser.y" /* yacc.c:1646  */
5299 >  case 427:
5300 > #line 2158 "conf_parser.y" /* yacc.c:1646  */
5301      {
5302    if (conf_parser_ctx.pass == 2)
5303      block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5304   }
5305 < #line 5318 "conf_parser.c" /* yacc.c:1646  */
5305 > #line 5306 "conf_parser.c" /* yacc.c:1646  */
5306      break;
5307  
5308 <  case 419:
5309 < #line 2212 "conf_parser.y" /* yacc.c:1646  */
5308 >  case 428:
5309 > #line 2162 "conf_parser.y" /* yacc.c:1646  */
5310      {
5311    if (conf_parser_ctx.pass == 2)
5312      block_state.flags.value |= CONF_FLAGS_SSL;
5313   }
5314 < #line 5327 "conf_parser.c" /* yacc.c:1646  */
5314 > #line 5315 "conf_parser.c" /* yacc.c:1646  */
5315      break;
5316  
5317 <  case 420:
5318 < #line 2218 "conf_parser.y" /* yacc.c:1646  */
5317 >  case 429:
5318 > #line 2168 "conf_parser.y" /* yacc.c:1646  */
5319      {
5320    if (conf_parser_ctx.pass == 2)
5321    {
# Line 5337 | Line 5325 | yyreduce:
5325        block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5326    }
5327   }
5328 < #line 5341 "conf_parser.c" /* yacc.c:1646  */
5328 > #line 5329 "conf_parser.c" /* yacc.c:1646  */
5329      break;
5330  
5331 <  case 421:
5332 < #line 2229 "conf_parser.y" /* yacc.c:1646  */
5331 >  case 430:
5332 > #line 2179 "conf_parser.y" /* yacc.c:1646  */
5333      {
5334    if (conf_parser_ctx.pass == 2)
5335      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5336   }
5337 < #line 5350 "conf_parser.c" /* yacc.c:1646  */
5337 > #line 5338 "conf_parser.c" /* yacc.c:1646  */
5338      break;
5339  
5340 <  case 422:
5341 < #line 2235 "conf_parser.y" /* yacc.c:1646  */
5340 >  case 431:
5341 > #line 2185 "conf_parser.y" /* yacc.c:1646  */
5342      {
5343    if (conf_parser_ctx.pass == 2)
5344      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5345   }
5346 < #line 5359 "conf_parser.c" /* yacc.c:1646  */
5346 > #line 5347 "conf_parser.c" /* yacc.c:1646  */
5347      break;
5348  
5349 <  case 423:
5350 < #line 2241 "conf_parser.y" /* yacc.c:1646  */
5349 >  case 432:
5350 > #line 2191 "conf_parser.y" /* yacc.c:1646  */
5351      {
5352    if (conf_parser_ctx.pass == 2)
5353      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5354   }
5355 < #line 5368 "conf_parser.c" /* yacc.c:1646  */
5355 > #line 5356 "conf_parser.c" /* yacc.c:1646  */
5356      break;
5357  
5358 <  case 424:
5359 < #line 2247 "conf_parser.y" /* yacc.c:1646  */
5358 >  case 433:
5359 > #line 2197 "conf_parser.y" /* yacc.c:1646  */
5360      {
5361 < #ifdef HAVE_LIBCRYPTO
5361 > #ifdef HAVE_TLS
5362    if (conf_parser_ctx.pass == 2)
5363      strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5364   #else
5365    if (conf_parser_ctx.pass == 2)
5366 <    conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5366 >    conf_error_report("Ignoring connect::ciphers -- no TLS support");
5367   #endif
5368   }
5369 < #line 5382 "conf_parser.c" /* yacc.c:1646  */
5369 > #line 5370 "conf_parser.c" /* yacc.c:1646  */
5370      break;
5371  
5372 <  case 425:
5373 < #line 2262 "conf_parser.y" /* yacc.c:1646  */
5372 >  case 434:
5373 > #line 2212 "conf_parser.y" /* yacc.c:1646  */
5374      {
5375    if (conf_parser_ctx.pass == 2)
5376      reset_block_state();
5377   }
5378 < #line 5391 "conf_parser.c" /* yacc.c:1646  */
5378 > #line 5379 "conf_parser.c" /* yacc.c:1646  */
5379      break;
5380  
5381 <  case 426:
5382 < #line 2266 "conf_parser.y" /* yacc.c:1646  */
5381 >  case 435:
5382 > #line 2216 "conf_parser.y" /* yacc.c:1646  */
5383      {
5384    struct MaskItem *conf = NULL;
5385  
# Line 5412 | Line 5400 | yyreduce:
5400      conf->reason = xstrdup(CONF_NOREASON);
5401    add_conf_by_address(CONF_KLINE, conf);
5402   }
5403 < #line 5416 "conf_parser.c" /* yacc.c:1646  */
5403 > #line 5404 "conf_parser.c" /* yacc.c:1646  */
5404      break;
5405  
5406 <  case 432:
5407 < #line 2291 "conf_parser.y" /* yacc.c:1646  */
5406 >  case 441:
5407 > #line 2241 "conf_parser.y" /* yacc.c:1646  */
5408      {
5409  
5410    if (conf_parser_ctx.pass == 2)
# Line 5435 | Line 5423 | yyreduce:
5423      split_nuh(&nuh);
5424    }
5425   }
5426 < #line 5439 "conf_parser.c" /* yacc.c:1646  */
5426 > #line 5427 "conf_parser.c" /* yacc.c:1646  */
5427      break;
5428  
5429 <  case 433:
5430 < #line 2311 "conf_parser.y" /* yacc.c:1646  */
5429 >  case 442:
5430 > #line 2261 "conf_parser.y" /* yacc.c:1646  */
5431      {
5432    if (conf_parser_ctx.pass == 2)
5433      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5434   }
5435 < #line 5448 "conf_parser.c" /* yacc.c:1646  */
5435 > #line 5436 "conf_parser.c" /* yacc.c:1646  */
5436      break;
5437  
5438 <  case 434:
5439 < #line 2320 "conf_parser.y" /* yacc.c:1646  */
5438 >  case 443:
5439 > #line 2271 "conf_parser.y" /* yacc.c:1646  */
5440      {
5441    if (conf_parser_ctx.pass == 2)
5442      reset_block_state();
5443   }
5444 < #line 5457 "conf_parser.c" /* yacc.c:1646  */
5444 > #line 5445 "conf_parser.c" /* yacc.c:1646  */
5445      break;
5446  
5447 <  case 435:
5448 < #line 2324 "conf_parser.y" /* yacc.c:1646  */
5447 >  case 444:
5448 > #line 2275 "conf_parser.y" /* yacc.c:1646  */
5449      {
5450    struct MaskItem *conf = NULL;
5451  
# Line 5479 | Line 5467 | yyreduce:
5467      add_conf_by_address(CONF_DLINE, conf);
5468    }
5469   }
5470 < #line 5483 "conf_parser.c" /* yacc.c:1646  */
5470 > #line 5471 "conf_parser.c" /* yacc.c:1646  */
5471      break;
5472  
5473 <  case 441:
5474 < #line 2350 "conf_parser.y" /* yacc.c:1646  */
5473 >  case 450:
5474 > #line 2301 "conf_parser.y" /* yacc.c:1646  */
5475      {
5476    if (conf_parser_ctx.pass == 2)
5477      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5478   }
5479 < #line 5492 "conf_parser.c" /* yacc.c:1646  */
5479 > #line 5480 "conf_parser.c" /* yacc.c:1646  */
5480      break;
5481  
5482 <  case 442:
5483 < #line 2356 "conf_parser.y" /* yacc.c:1646  */
5482 >  case 451:
5483 > #line 2307 "conf_parser.y" /* yacc.c:1646  */
5484      {
5485    if (conf_parser_ctx.pass == 2)
5486      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5487   }
5488 < #line 5501 "conf_parser.c" /* yacc.c:1646  */
5488 > #line 5489 "conf_parser.c" /* yacc.c:1646  */
5489      break;
5490  
5491 <  case 448:
5492 < #line 2370 "conf_parser.y" /* yacc.c:1646  */
5491 >  case 457:
5492 > #line 2322 "conf_parser.y" /* yacc.c:1646  */
5493      {
5494    if (conf_parser_ctx.pass == 2)
5495    {
5496 <    if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5496 >    if (*yylval.string && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5497      {
5498        struct MaskItem *conf = conf_make(CONF_EXEMPT);
5499        conf->host = xstrdup(yylval.string);
# Line 5514 | Line 5502 | yyreduce:
5502      }
5503    }
5504   }
5505 < #line 5518 "conf_parser.c" /* yacc.c:1646  */
5505 > #line 5506 "conf_parser.c" /* yacc.c:1646  */
5506      break;
5507  
5508 <  case 449:
5509 < #line 2387 "conf_parser.y" /* yacc.c:1646  */
5508 >  case 458:
5509 > #line 2339 "conf_parser.y" /* yacc.c:1646  */
5510      {
5511    if (conf_parser_ctx.pass == 2)
5512      reset_block_state();
5513   }
5514 < #line 5527 "conf_parser.c" /* yacc.c:1646  */
5514 > #line 5515 "conf_parser.c" /* yacc.c:1646  */
5515      break;
5516  
5517 <  case 450:
5518 < #line 2391 "conf_parser.y" /* yacc.c:1646  */
5517 >  case 459:
5518 > #line 2343 "conf_parser.y" /* yacc.c:1646  */
5519      {
5532  struct MaskItem *conf = NULL;
5533
5520    if (conf_parser_ctx.pass != 2)
5521      break;
5522  
5523    if (!block_state.name.buf[0])
5524      break;
5525  
5526 <  conf = conf_make(CONF_XLINE);
5527 <  conf->name = xstrdup(block_state.name.buf);
5526 >  struct GecosItem *gecos = gecos_make();
5527 >  gecos->mask = xstrdup(block_state.name.buf);
5528  
5529    if (block_state.rpass.buf[0])
5530 <    conf->reason = xstrdup(block_state.rpass.buf);
5530 >    gecos->reason = xstrdup(block_state.rpass.buf);
5531    else
5532 <    conf->reason = xstrdup(CONF_NOREASON);
5532 >    gecos->reason = xstrdup(CONF_NOREASON);
5533   }
5534 < #line 5549 "conf_parser.c" /* yacc.c:1646  */
5534 > #line 5535 "conf_parser.c" /* yacc.c:1646  */
5535      break;
5536  
5537 <  case 456:
5538 < #line 2413 "conf_parser.y" /* yacc.c:1646  */
5537 >  case 465:
5538 > #line 2363 "conf_parser.y" /* yacc.c:1646  */
5539      {
5540    if (conf_parser_ctx.pass == 2)
5541      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5542   }
5543 < #line 5558 "conf_parser.c" /* yacc.c:1646  */
5543 > #line 5544 "conf_parser.c" /* yacc.c:1646  */
5544      break;
5545  
5546 <  case 457:
5547 < #line 2419 "conf_parser.y" /* yacc.c:1646  */
5546 >  case 466:
5547 > #line 2369 "conf_parser.y" /* yacc.c:1646  */
5548      {
5549    if (conf_parser_ctx.pass == 2)
5550      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5551   }
5552 < #line 5567 "conf_parser.c" /* yacc.c:1646  */
5567 <    break;
5568 <
5569 <  case 511:
5570 < #line 2464 "conf_parser.y" /* yacc.c:1646  */
5571 <    {
5572 <  ConfigFileEntry.max_watch = (yyvsp[-1].number);
5573 < }
5574 < #line 5575 "conf_parser.c" /* yacc.c:1646  */
5575 <    break;
5576 <
5577 <  case 512:
5578 < #line 2469 "conf_parser.y" /* yacc.c:1646  */
5579 <    {
5580 <  if (conf_parser_ctx.pass == 2)
5581 <    ConfigFileEntry.cycle_on_host_change = yylval.number;
5582 < }
5583 < #line 5584 "conf_parser.c" /* yacc.c:1646  */
5584 <    break;
5585 <
5586 <  case 513:
5587 < #line 2475 "conf_parser.y" /* yacc.c:1646  */
5588 <    {
5589 <  if (conf_parser_ctx.pass == 2)
5590 <    ConfigFileEntry.glines = yylval.number;
5591 < }
5592 < #line 5593 "conf_parser.c" /* yacc.c:1646  */
5593 <    break;
5594 <
5595 <  case 514:
5596 < #line 2481 "conf_parser.y" /* yacc.c:1646  */
5597 <    {
5598 <  if (conf_parser_ctx.pass == 2)
5599 <    ConfigFileEntry.gline_time = (yyvsp[-1].number);
5600 < }
5601 < #line 5602 "conf_parser.c" /* yacc.c:1646  */
5602 <    break;
5603 <
5604 <  case 515:
5605 < #line 2487 "conf_parser.y" /* yacc.c:1646  */
5606 <    {
5607 <  if (conf_parser_ctx.pass == 2)
5608 <    ConfigFileEntry.gline_request_time = (yyvsp[-1].number);
5609 < }
5610 < #line 5611 "conf_parser.c" /* yacc.c:1646  */
5611 <    break;
5612 <
5613 <  case 516:
5614 < #line 2493 "conf_parser.y" /* yacc.c:1646  */
5615 <    {
5616 <  ConfigFileEntry.gline_min_cidr = (yyvsp[-1].number);
5617 < }
5618 < #line 5619 "conf_parser.c" /* yacc.c:1646  */
5619 <    break;
5620 <
5621 <  case 517:
5622 < #line 2498 "conf_parser.y" /* yacc.c:1646  */
5623 <    {
5624 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[-1].number);
5625 < }
5626 < #line 5627 "conf_parser.c" /* yacc.c:1646  */
5552 > #line 5553 "conf_parser.c" /* yacc.c:1646  */
5553      break;
5554  
5555    case 518:
5556 < #line 2503 "conf_parser.y" /* yacc.c:1646  */
5556 > #line 2432 "conf_parser.y" /* yacc.c:1646  */
5557      {
5558 <  ConfigFileEntry.tkline_expire_notices = yylval.number;
5558 >  ConfigGeneral.away_count = (yyvsp[-1].number);
5559   }
5560 < #line 5635 "conf_parser.c" /* yacc.c:1646  */
5560 > #line 5561 "conf_parser.c" /* yacc.c:1646  */
5561      break;
5562  
5563    case 519:
5564 < #line 2508 "conf_parser.y" /* yacc.c:1646  */
5564 > #line 2437 "conf_parser.y" /* yacc.c:1646  */
5565      {
5566 <  ConfigFileEntry.kill_chase_time_limit = (yyvsp[-1].number);
5566 >  ConfigGeneral.away_time = (yyvsp[-1].number);
5567   }
5568 < #line 5643 "conf_parser.c" /* yacc.c:1646  */
5568 > #line 5569 "conf_parser.c" /* yacc.c:1646  */
5569      break;
5570  
5571    case 520:
5572 < #line 2513 "conf_parser.y" /* yacc.c:1646  */
5572 > #line 2442 "conf_parser.y" /* yacc.c:1646  */
5573      {
5574 <  ConfigFileEntry.hide_spoof_ips = yylval.number;
5574 >  ConfigGeneral.max_watch = (yyvsp[-1].number);
5575   }
5576 < #line 5651 "conf_parser.c" /* yacc.c:1646  */
5576 > #line 5577 "conf_parser.c" /* yacc.c:1646  */
5577      break;
5578  
5579    case 521:
5580 < #line 2518 "conf_parser.y" /* yacc.c:1646  */
5580 > #line 2447 "conf_parser.y" /* yacc.c:1646  */
5581      {
5582 <  ConfigFileEntry.ignore_bogus_ts = yylval.number;
5582 >  ConfigGeneral.whowas_history_length = (yyvsp[-1].number);
5583   }
5584 < #line 5659 "conf_parser.c" /* yacc.c:1646  */
5584 > #line 5585 "conf_parser.c" /* yacc.c:1646  */
5585      break;
5586  
5587    case 522:
5588 < #line 2523 "conf_parser.y" /* yacc.c:1646  */
5588 > #line 2452 "conf_parser.y" /* yacc.c:1646  */
5589      {
5590 <  ConfigFileEntry.failed_oper_notice = yylval.number;
5590 >  if (conf_parser_ctx.pass == 2)
5591 >    ConfigGeneral.cycle_on_host_change = yylval.number;
5592   }
5593 < #line 5667 "conf_parser.c" /* yacc.c:1646  */
5593 > #line 5594 "conf_parser.c" /* yacc.c:1646  */
5594      break;
5595  
5596    case 523:
5597 < #line 2528 "conf_parser.y" /* yacc.c:1646  */
5597 > #line 2458 "conf_parser.y" /* yacc.c:1646  */
5598      {
5599 <  ConfigFileEntry.anti_nick_flood = yylval.number;
5599 >  ConfigGeneral.dline_min_cidr = (yyvsp[-1].number);
5600   }
5601 < #line 5675 "conf_parser.c" /* yacc.c:1646  */
5601 > #line 5602 "conf_parser.c" /* yacc.c:1646  */
5602      break;
5603  
5604    case 524:
5605 < #line 2533 "conf_parser.y" /* yacc.c:1646  */
5605 > #line 2463 "conf_parser.y" /* yacc.c:1646  */
5606      {
5607 <  ConfigFileEntry.max_nick_time = (yyvsp[-1].number);
5607 >  ConfigGeneral.dline_min_cidr6 = (yyvsp[-1].number);
5608   }
5609 < #line 5683 "conf_parser.c" /* yacc.c:1646  */
5609 > #line 5610 "conf_parser.c" /* yacc.c:1646  */
5610      break;
5611  
5612    case 525:
5613 < #line 2538 "conf_parser.y" /* yacc.c:1646  */
5613 > #line 2468 "conf_parser.y" /* yacc.c:1646  */
5614      {
5615 <  ConfigFileEntry.max_nick_changes = (yyvsp[-1].number);
5615 >  ConfigGeneral.kline_min_cidr = (yyvsp[-1].number);
5616   }
5617 < #line 5691 "conf_parser.c" /* yacc.c:1646  */
5617 > #line 5618 "conf_parser.c" /* yacc.c:1646  */
5618      break;
5619  
5620    case 526:
5621 < #line 2543 "conf_parser.y" /* yacc.c:1646  */
5621 > #line 2473 "conf_parser.y" /* yacc.c:1646  */
5622      {
5623 <  ConfigFileEntry.max_accept = (yyvsp[-1].number);
5623 >  ConfigGeneral.kline_min_cidr6 = (yyvsp[-1].number);
5624   }
5625 < #line 5699 "conf_parser.c" /* yacc.c:1646  */
5625 > #line 5626 "conf_parser.c" /* yacc.c:1646  */
5626      break;
5627  
5628    case 527:
5629 < #line 2548 "conf_parser.y" /* yacc.c:1646  */
5629 > #line 2478 "conf_parser.y" /* yacc.c:1646  */
5630      {
5631 <  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[-1].number);
5631 >  ConfigGeneral.tkline_expire_notices = yylval.number;
5632   }
5633 < #line 5707 "conf_parser.c" /* yacc.c:1646  */
5633 > #line 5634 "conf_parser.c" /* yacc.c:1646  */
5634      break;
5635  
5636    case 528:
5637 < #line 2553 "conf_parser.y" /* yacc.c:1646  */
5637 > #line 2483 "conf_parser.y" /* yacc.c:1646  */
5638      {
5639 <  ConfigFileEntry.ts_warn_delta = (yyvsp[-1].number);
5639 >  ConfigGeneral.kill_chase_time_limit = (yyvsp[-1].number);
5640   }
5641 < #line 5715 "conf_parser.c" /* yacc.c:1646  */
5641 > #line 5642 "conf_parser.c" /* yacc.c:1646  */
5642      break;
5643  
5644    case 529:
5645 < #line 2558 "conf_parser.y" /* yacc.c:1646  */
5645 > #line 2488 "conf_parser.y" /* yacc.c:1646  */
5646      {
5647 <  if (conf_parser_ctx.pass == 2)
5721 <    ConfigFileEntry.ts_max_delta = (yyvsp[-1].number);
5647 >  ConfigGeneral.ignore_bogus_ts = yylval.number;
5648   }
5649 < #line 5724 "conf_parser.c" /* yacc.c:1646  */
5649 > #line 5650 "conf_parser.c" /* yacc.c:1646  */
5650      break;
5651  
5652    case 530:
5653 < #line 2564 "conf_parser.y" /* yacc.c:1646  */
5653 > #line 2493 "conf_parser.y" /* yacc.c:1646  */
5654      {
5655 <  if (((yyvsp[-1].number) > 0) && conf_parser_ctx.pass == 1)
5730 <  {
5731 <    ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
5732 <    ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
5733 <    ilog(LOG_TYPE_IRCD, "Consider actually reading/editing the conf file, and removing this line.");
5734 <    exit(0);
5735 <  }
5655 >  ConfigGeneral.failed_oper_notice = yylval.number;
5656   }
5657 < #line 5738 "conf_parser.c" /* yacc.c:1646  */
5657 > #line 5658 "conf_parser.c" /* yacc.c:1646  */
5658      break;
5659  
5660    case 531:
5661 < #line 2575 "conf_parser.y" /* yacc.c:1646  */
5661 > #line 2498 "conf_parser.y" /* yacc.c:1646  */
5662      {
5663 <  ConfigFileEntry.invisible_on_connect = yylval.number;
5663 >  ConfigGeneral.anti_nick_flood = yylval.number;
5664   }
5665 < #line 5746 "conf_parser.c" /* yacc.c:1646  */
5665 > #line 5666 "conf_parser.c" /* yacc.c:1646  */
5666      break;
5667  
5668    case 532:
5669 < #line 2580 "conf_parser.y" /* yacc.c:1646  */
5669 > #line 2503 "conf_parser.y" /* yacc.c:1646  */
5670      {
5671 <  ConfigFileEntry.warn_no_nline = yylval.number;
5671 >  ConfigGeneral.max_nick_time = (yyvsp[-1].number);
5672   }
5673 < #line 5754 "conf_parser.c" /* yacc.c:1646  */
5673 > #line 5674 "conf_parser.c" /* yacc.c:1646  */
5674      break;
5675  
5676    case 533:
5677 < #line 2585 "conf_parser.y" /* yacc.c:1646  */
5677 > #line 2508 "conf_parser.y" /* yacc.c:1646  */
5678      {
5679 <  ConfigFileEntry.stats_e_disabled = yylval.number;
5679 >  ConfigGeneral.max_nick_changes = (yyvsp[-1].number);
5680   }
5681 < #line 5762 "conf_parser.c" /* yacc.c:1646  */
5681 > #line 5682 "conf_parser.c" /* yacc.c:1646  */
5682      break;
5683  
5684    case 534:
5685 < #line 2590 "conf_parser.y" /* yacc.c:1646  */
5685 > #line 2513 "conf_parser.y" /* yacc.c:1646  */
5686      {
5687 <  ConfigFileEntry.stats_o_oper_only = yylval.number;
5687 >  ConfigGeneral.max_accept = (yyvsp[-1].number);
5688   }
5689 < #line 5770 "conf_parser.c" /* yacc.c:1646  */
5689 > #line 5690 "conf_parser.c" /* yacc.c:1646  */
5690      break;
5691  
5692    case 535:
5693 < #line 2595 "conf_parser.y" /* yacc.c:1646  */
5693 > #line 2518 "conf_parser.y" /* yacc.c:1646  */
5694      {
5695 <  ConfigFileEntry.stats_P_oper_only = yylval.number;
5695 >  ConfigGeneral.anti_spam_exit_message_time = (yyvsp[-1].number);
5696   }
5697 < #line 5778 "conf_parser.c" /* yacc.c:1646  */
5697 > #line 5698 "conf_parser.c" /* yacc.c:1646  */
5698      break;
5699  
5700    case 536:
5701 < #line 2600 "conf_parser.y" /* yacc.c:1646  */
5701 > #line 2523 "conf_parser.y" /* yacc.c:1646  */
5702      {
5703 <  ConfigFileEntry.stats_u_oper_only = yylval.number;
5703 >  ConfigGeneral.ts_warn_delta = (yyvsp[-1].number);
5704   }
5705 < #line 5786 "conf_parser.c" /* yacc.c:1646  */
5705 > #line 5706 "conf_parser.c" /* yacc.c:1646  */
5706      break;
5707  
5708    case 537:
5709 < #line 2605 "conf_parser.y" /* yacc.c:1646  */
5709 > #line 2528 "conf_parser.y" /* yacc.c:1646  */
5710      {
5711 <  ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5711 >  if (conf_parser_ctx.pass == 2)
5712 >    ConfigGeneral.ts_max_delta = (yyvsp[-1].number);
5713   }
5714 < #line 5794 "conf_parser.c" /* yacc.c:1646  */
5714 > #line 5715 "conf_parser.c" /* yacc.c:1646  */
5715      break;
5716  
5717    case 538:
5718 < #line 2608 "conf_parser.y" /* yacc.c:1646  */
5718 > #line 2534 "conf_parser.y" /* yacc.c:1646  */
5719      {
5720 <  ConfigFileEntry.stats_k_oper_only = 1;
5720 >  ConfigGeneral.invisible_on_connect = yylval.number;
5721   }
5722 < #line 5802 "conf_parser.c" /* yacc.c:1646  */
5722 > #line 5723 "conf_parser.c" /* yacc.c:1646  */
5723      break;
5724  
5725    case 539:
5726 < #line 2613 "conf_parser.y" /* yacc.c:1646  */
5726 > #line 2539 "conf_parser.y" /* yacc.c:1646  */
5727      {
5728 <  ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5728 >  ConfigGeneral.warn_no_connect_block = yylval.number;
5729   }
5730 < #line 5810 "conf_parser.c" /* yacc.c:1646  */
5730 > #line 5731 "conf_parser.c" /* yacc.c:1646  */
5731      break;
5732  
5733    case 540:
5734 < #line 2616 "conf_parser.y" /* yacc.c:1646  */
5734 > #line 2544 "conf_parser.y" /* yacc.c:1646  */
5735      {
5736 <  ConfigFileEntry.stats_i_oper_only = 1;
5736 >  ConfigGeneral.stats_e_disabled = yylval.number;
5737   }
5738 < #line 5818 "conf_parser.c" /* yacc.c:1646  */
5738 > #line 5739 "conf_parser.c" /* yacc.c:1646  */
5739      break;
5740  
5741    case 541:
5742 < #line 2621 "conf_parser.y" /* yacc.c:1646  */
5742 > #line 2549 "conf_parser.y" /* yacc.c:1646  */
5743      {
5744 <  ConfigFileEntry.pace_wait = (yyvsp[-1].number);
5744 >  ConfigGeneral.stats_m_oper_only = yylval.number;
5745   }
5746 < #line 5826 "conf_parser.c" /* yacc.c:1646  */
5746 > #line 5747 "conf_parser.c" /* yacc.c:1646  */
5747      break;
5748  
5749    case 542:
5750 < #line 2626 "conf_parser.y" /* yacc.c:1646  */
5750 > #line 2554 "conf_parser.y" /* yacc.c:1646  */
5751      {
5752 <  ConfigFileEntry.caller_id_wait = (yyvsp[-1].number);
5752 >  ConfigGeneral.stats_o_oper_only = yylval.number;
5753   }
5754 < #line 5834 "conf_parser.c" /* yacc.c:1646  */
5754 > #line 5755 "conf_parser.c" /* yacc.c:1646  */
5755      break;
5756  
5757    case 543:
5758 < #line 2631 "conf_parser.y" /* yacc.c:1646  */
5758 > #line 2559 "conf_parser.y" /* yacc.c:1646  */
5759      {
5760 <  ConfigFileEntry.opers_bypass_callerid = yylval.number;
5760 >  ConfigGeneral.stats_P_oper_only = yylval.number;
5761   }
5762 < #line 5842 "conf_parser.c" /* yacc.c:1646  */
5762 > #line 5763 "conf_parser.c" /* yacc.c:1646  */
5763      break;
5764  
5765    case 544:
5766 < #line 2636 "conf_parser.y" /* yacc.c:1646  */
5766 > #line 2564 "conf_parser.y" /* yacc.c:1646  */
5767      {
5768 <  ConfigFileEntry.pace_wait_simple = (yyvsp[-1].number);
5768 >  ConfigGeneral.stats_u_oper_only = yylval.number;
5769   }
5770 < #line 5850 "conf_parser.c" /* yacc.c:1646  */
5770 > #line 5771 "conf_parser.c" /* yacc.c:1646  */
5771      break;
5772  
5773    case 545:
5774 < #line 2641 "conf_parser.y" /* yacc.c:1646  */
5774 > #line 2569 "conf_parser.y" /* yacc.c:1646  */
5775      {
5776 <  ConfigFileEntry.short_motd = yylval.number;
5776 >  ConfigGeneral.stats_k_oper_only = 2 * yylval.number;
5777   }
5778 < #line 5858 "conf_parser.c" /* yacc.c:1646  */
5778 > #line 5779 "conf_parser.c" /* yacc.c:1646  */
5779      break;
5780  
5781    case 546:
5782 < #line 2646 "conf_parser.y" /* yacc.c:1646  */
5782 > #line 2572 "conf_parser.y" /* yacc.c:1646  */
5783      {
5784 <  ConfigFileEntry.no_oper_flood = yylval.number;
5784 >  ConfigGeneral.stats_k_oper_only = 1;
5785   }
5786 < #line 5866 "conf_parser.c" /* yacc.c:1646  */
5786 > #line 5787 "conf_parser.c" /* yacc.c:1646  */
5787      break;
5788  
5789    case 547:
5790 < #line 2651 "conf_parser.y" /* yacc.c:1646  */
5790 > #line 2577 "conf_parser.y" /* yacc.c:1646  */
5791      {
5792 <  ConfigFileEntry.true_no_oper_flood = yylval.number;
5792 >  ConfigGeneral.stats_i_oper_only = 2 * yylval.number;
5793   }
5794 < #line 5874 "conf_parser.c" /* yacc.c:1646  */
5794 > #line 5795 "conf_parser.c" /* yacc.c:1646  */
5795      break;
5796  
5797    case 548:
5798 < #line 2656 "conf_parser.y" /* yacc.c:1646  */
5798 > #line 2580 "conf_parser.y" /* yacc.c:1646  */
5799      {
5800 <  ConfigFileEntry.oper_pass_resv = yylval.number;
5800 >  ConfigGeneral.stats_i_oper_only = 1;
5801   }
5802 < #line 5882 "conf_parser.c" /* yacc.c:1646  */
5802 > #line 5803 "conf_parser.c" /* yacc.c:1646  */
5803      break;
5804  
5805    case 549:
5806 < #line 2661 "conf_parser.y" /* yacc.c:1646  */
5806 > #line 2585 "conf_parser.y" /* yacc.c:1646  */
5807      {
5808 <  ConfigFileEntry.dots_in_ident = (yyvsp[-1].number);
5808 >  ConfigGeneral.pace_wait = (yyvsp[-1].number);
5809   }
5810 < #line 5890 "conf_parser.c" /* yacc.c:1646  */
5810 > #line 5811 "conf_parser.c" /* yacc.c:1646  */
5811      break;
5812  
5813    case 550:
5814 < #line 2666 "conf_parser.y" /* yacc.c:1646  */
5814 > #line 2590 "conf_parser.y" /* yacc.c:1646  */
5815      {
5816 <  ConfigFileEntry.max_targets = (yyvsp[-1].number);
5816 >  ConfigGeneral.caller_id_wait = (yyvsp[-1].number);
5817   }
5818 < #line 5898 "conf_parser.c" /* yacc.c:1646  */
5818 > #line 5819 "conf_parser.c" /* yacc.c:1646  */
5819      break;
5820  
5821    case 551:
5822 < #line 2671 "conf_parser.y" /* yacc.c:1646  */
5822 > #line 2595 "conf_parser.y" /* yacc.c:1646  */
5823      {
5824 <  ConfigFileEntry.use_egd = yylval.number;
5824 >  ConfigGeneral.opers_bypass_callerid = yylval.number;
5825   }
5826 < #line 5906 "conf_parser.c" /* yacc.c:1646  */
5826 > #line 5827 "conf_parser.c" /* yacc.c:1646  */
5827      break;
5828  
5829    case 552:
5830 < #line 2676 "conf_parser.y" /* yacc.c:1646  */
5830 > #line 2600 "conf_parser.y" /* yacc.c:1646  */
5831      {
5832 <  if (conf_parser_ctx.pass == 2)
5912 <  {
5913 <    MyFree(ConfigFileEntry.egdpool_path);
5914 <    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
5915 <  }
5832 >  ConfigGeneral.pace_wait_simple = (yyvsp[-1].number);
5833   }
5834 < #line 5918 "conf_parser.c" /* yacc.c:1646  */
5834 > #line 5835 "conf_parser.c" /* yacc.c:1646  */
5835      break;
5836  
5837    case 553:
5838 < #line 2685 "conf_parser.y" /* yacc.c:1646  */
5838 > #line 2605 "conf_parser.y" /* yacc.c:1646  */
5839      {
5840 <  if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
5924 <  {
5925 <    MyFree(ConfigFileEntry.service_name);
5926 <    ConfigFileEntry.service_name = xstrdup(yylval.string);
5927 <  }
5840 >  ConfigGeneral.short_motd = yylval.number;
5841   }
5842 < #line 5930 "conf_parser.c" /* yacc.c:1646  */
5842 > #line 5843 "conf_parser.c" /* yacc.c:1646  */
5843      break;
5844  
5845    case 554:
5846 < #line 2694 "conf_parser.y" /* yacc.c:1646  */
5846 > #line 2610 "conf_parser.y" /* yacc.c:1646  */
5847      {
5848 <  ConfigFileEntry.ping_cookie = yylval.number;
5848 >  ConfigGeneral.no_oper_flood = yylval.number;
5849   }
5850 < #line 5938 "conf_parser.c" /* yacc.c:1646  */
5850 > #line 5851 "conf_parser.c" /* yacc.c:1646  */
5851      break;
5852  
5853    case 555:
5854 < #line 2699 "conf_parser.y" /* yacc.c:1646  */
5854 > #line 2615 "conf_parser.y" /* yacc.c:1646  */
5855      {
5856 <  ConfigFileEntry.disable_auth = yylval.number;
5856 >  ConfigGeneral.dots_in_ident = (yyvsp[-1].number);
5857   }
5858 < #line 5946 "conf_parser.c" /* yacc.c:1646  */
5858 > #line 5859 "conf_parser.c" /* yacc.c:1646  */
5859      break;
5860  
5861    case 556:
5862 < #line 2704 "conf_parser.y" /* yacc.c:1646  */
5862 > #line 2620 "conf_parser.y" /* yacc.c:1646  */
5863      {
5864 <  ConfigFileEntry.throttle_time = yylval.number;
5864 >  ConfigGeneral.max_targets = (yyvsp[-1].number);
5865   }
5866 < #line 5954 "conf_parser.c" /* yacc.c:1646  */
5866 > #line 5867 "conf_parser.c" /* yacc.c:1646  */
5867      break;
5868  
5869    case 557:
5870 < #line 2709 "conf_parser.y" /* yacc.c:1646  */
5870 > #line 2625 "conf_parser.y" /* yacc.c:1646  */
5871      {
5872 <  ConfigFileEntry.oper_umodes = 0;
5872 >  ConfigGeneral.ping_cookie = yylval.number;
5873   }
5874 < #line 5962 "conf_parser.c" /* yacc.c:1646  */
5874 > #line 5875 "conf_parser.c" /* yacc.c:1646  */
5875      break;
5876  
5877 <  case 561:
5878 < #line 2715 "conf_parser.y" /* yacc.c:1646  */
5877 >  case 558:
5878 > #line 2630 "conf_parser.y" /* yacc.c:1646  */
5879      {
5880 <  ConfigFileEntry.oper_umodes |= UMODE_BOTS;
5880 >  ConfigGeneral.disable_auth = yylval.number;
5881   }
5882 < #line 5970 "conf_parser.c" /* yacc.c:1646  */
5882 > #line 5883 "conf_parser.c" /* yacc.c:1646  */
5883      break;
5884  
5885 <  case 562:
5886 < #line 2718 "conf_parser.y" /* yacc.c:1646  */
5885 >  case 559:
5886 > #line 2635 "conf_parser.y" /* yacc.c:1646  */
5887      {
5888 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN;
5888 >  ConfigGeneral.throttle_count = (yyvsp[-1].number);
5889   }
5890 < #line 5978 "conf_parser.c" /* yacc.c:1646  */
5890 > #line 5891 "conf_parser.c" /* yacc.c:1646  */
5891      break;
5892  
5893 <  case 563:
5894 < #line 2721 "conf_parser.y" /* yacc.c:1646  */
5893 >  case 560:
5894 > #line 2640 "conf_parser.y" /* yacc.c:1646  */
5895      {
5896 <  ConfigFileEntry.oper_umodes |= UMODE_DEAF;
5896 >  ConfigGeneral.throttle_time = (yyvsp[-1].number);
5897   }
5898 < #line 5986 "conf_parser.c" /* yacc.c:1646  */
5898 > #line 5899 "conf_parser.c" /* yacc.c:1646  */
5899      break;
5900  
5901 <  case 564:
5902 < #line 2724 "conf_parser.y" /* yacc.c:1646  */
5901 >  case 561:
5902 > #line 2645 "conf_parser.y" /* yacc.c:1646  */
5903      {
5904 <  ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
5904 >  ConfigGeneral.oper_umodes = 0;
5905   }
5906 < #line 5994 "conf_parser.c" /* yacc.c:1646  */
5906 > #line 5907 "conf_parser.c" /* yacc.c:1646  */
5907      break;
5908  
5909    case 565:
5910 < #line 2727 "conf_parser.y" /* yacc.c:1646  */
5910 > #line 2651 "conf_parser.y" /* yacc.c:1646  */
5911      {
5912 <  ConfigFileEntry.oper_umodes |= UMODE_FULL;
5912 >  ConfigGeneral.oper_umodes |= UMODE_BOTS;
5913   }
5914 < #line 6002 "conf_parser.c" /* yacc.c:1646  */
5914 > #line 5915 "conf_parser.c" /* yacc.c:1646  */
5915      break;
5916  
5917    case 566:
5918 < #line 2730 "conf_parser.y" /* yacc.c:1646  */
5918 > #line 2654 "conf_parser.y" /* yacc.c:1646  */
5919      {
5920 <  ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
5920 >  ConfigGeneral.oper_umodes |= UMODE_CCONN;
5921   }
5922 < #line 6010 "conf_parser.c" /* yacc.c:1646  */
5922 > #line 5923 "conf_parser.c" /* yacc.c:1646  */
5923      break;
5924  
5925    case 567:
5926 < #line 2733 "conf_parser.y" /* yacc.c:1646  */
5926 > #line 2657 "conf_parser.y" /* yacc.c:1646  */
5927      {
5928 <  ConfigFileEntry.oper_umodes |= UMODE_SKILL;
5928 >  ConfigGeneral.oper_umodes |= UMODE_DEAF;
5929   }
5930 < #line 6018 "conf_parser.c" /* yacc.c:1646  */
5930 > #line 5931 "conf_parser.c" /* yacc.c:1646  */
5931      break;
5932  
5933    case 568:
5934 < #line 2736 "conf_parser.y" /* yacc.c:1646  */
5934 > #line 2660 "conf_parser.y" /* yacc.c:1646  */
5935      {
5936 <  ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
5936 >  ConfigGeneral.oper_umodes |= UMODE_DEBUG;
5937   }
5938 < #line 6026 "conf_parser.c" /* yacc.c:1646  */
5938 > #line 5939 "conf_parser.c" /* yacc.c:1646  */
5939      break;
5940  
5941    case 569:
5942 < #line 2739 "conf_parser.y" /* yacc.c:1646  */
5942 > #line 2663 "conf_parser.y" /* yacc.c:1646  */
5943      {
5944 <  ConfigFileEntry.oper_umodes |= UMODE_REJ;
5944 >  ConfigGeneral.oper_umodes |= UMODE_FULL;
5945   }
5946 < #line 6034 "conf_parser.c" /* yacc.c:1646  */
5946 > #line 5947 "conf_parser.c" /* yacc.c:1646  */
5947      break;
5948  
5949    case 570:
5950 < #line 2742 "conf_parser.y" /* yacc.c:1646  */
5950 > #line 2666 "conf_parser.y" /* yacc.c:1646  */
5951      {
5952 <  ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
5952 >  ConfigGeneral.oper_umodes |= UMODE_HIDDEN;
5953   }
5954 < #line 6042 "conf_parser.c" /* yacc.c:1646  */
5954 > #line 5955 "conf_parser.c" /* yacc.c:1646  */
5955      break;
5956  
5957    case 571:
5958 < #line 2745 "conf_parser.y" /* yacc.c:1646  */
5958 > #line 2669 "conf_parser.y" /* yacc.c:1646  */
5959      {
5960 <  ConfigFileEntry.oper_umodes |= UMODE_SPY;
5960 >  ConfigGeneral.oper_umodes |= UMODE_HIDECHANS;
5961   }
5962 < #line 6050 "conf_parser.c" /* yacc.c:1646  */
5962 > #line 5963 "conf_parser.c" /* yacc.c:1646  */
5963      break;
5964  
5965    case 572:
5966 < #line 2748 "conf_parser.y" /* yacc.c:1646  */
5966 > #line 2672 "conf_parser.y" /* yacc.c:1646  */
5967      {
5968 <  ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
5968 >  ConfigGeneral.oper_umodes |= UMODE_HIDEIDLE;
5969   }
5970 < #line 6058 "conf_parser.c" /* yacc.c:1646  */
5970 > #line 5971 "conf_parser.c" /* yacc.c:1646  */
5971      break;
5972  
5973    case 573:
5974 < #line 2751 "conf_parser.y" /* yacc.c:1646  */
5974 > #line 2675 "conf_parser.y" /* yacc.c:1646  */
5975      {
5976 <  ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
5976 >  ConfigGeneral.oper_umodes |= UMODE_SKILL;
5977   }
5978 < #line 6066 "conf_parser.c" /* yacc.c:1646  */
5978 > #line 5979 "conf_parser.c" /* yacc.c:1646  */
5979      break;
5980  
5981    case 574:
5982 < #line 2754 "conf_parser.y" /* yacc.c:1646  */
5982 > #line 2678 "conf_parser.y" /* yacc.c:1646  */
5983      {
5984 <  ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
5984 >  ConfigGeneral.oper_umodes |= UMODE_NCHANGE;
5985   }
5986 < #line 6074 "conf_parser.c" /* yacc.c:1646  */
5986 > #line 5987 "conf_parser.c" /* yacc.c:1646  */
5987      break;
5988  
5989    case 575:
5990 < #line 2757 "conf_parser.y" /* yacc.c:1646  */
5990 > #line 2681 "conf_parser.y" /* yacc.c:1646  */
5991      {
5992 <  ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
5992 >  ConfigGeneral.oper_umodes |= UMODE_REJ;
5993   }
5994 < #line 6082 "conf_parser.c" /* yacc.c:1646  */
5994 > #line 5995 "conf_parser.c" /* yacc.c:1646  */
5995      break;
5996  
5997    case 576:
5998 < #line 2760 "conf_parser.y" /* yacc.c:1646  */
5998 > #line 2684 "conf_parser.y" /* yacc.c:1646  */
5999      {
6000 <  ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6000 >  ConfigGeneral.oper_umodes |= UMODE_UNAUTH;
6001   }
6002 < #line 6090 "conf_parser.c" /* yacc.c:1646  */
6002 > #line 6003 "conf_parser.c" /* yacc.c:1646  */
6003      break;
6004  
6005    case 577:
6006 < #line 2763 "conf_parser.y" /* yacc.c:1646  */
6006 > #line 2687 "conf_parser.y" /* yacc.c:1646  */
6007      {
6008 <  ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6008 >  ConfigGeneral.oper_umodes |= UMODE_SPY;
6009   }
6010 < #line 6098 "conf_parser.c" /* yacc.c:1646  */
6010 > #line 6011 "conf_parser.c" /* yacc.c:1646  */
6011      break;
6012  
6013    case 578:
6014 < #line 2766 "conf_parser.y" /* yacc.c:1646  */
6014 > #line 2690 "conf_parser.y" /* yacc.c:1646  */
6015      {
6016 <  ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6016 >  ConfigGeneral.oper_umodes |= UMODE_EXTERNAL;
6017   }
6018 < #line 6106 "conf_parser.c" /* yacc.c:1646  */
6018 > #line 6019 "conf_parser.c" /* yacc.c:1646  */
6019      break;
6020  
6021    case 579:
6022 < #line 2769 "conf_parser.y" /* yacc.c:1646  */
6022 > #line 2693 "conf_parser.y" /* yacc.c:1646  */
6023      {
6024 <  ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6024 >  ConfigGeneral.oper_umodes |= UMODE_SERVNOTICE;
6025   }
6026 < #line 6114 "conf_parser.c" /* yacc.c:1646  */
6026 > #line 6027 "conf_parser.c" /* yacc.c:1646  */
6027      break;
6028  
6029    case 580:
6030 < #line 2772 "conf_parser.y" /* yacc.c:1646  */
6030 > #line 2696 "conf_parser.y" /* yacc.c:1646  */
6031      {
6032 <  ConfigFileEntry.oper_umodes |= UMODE_REGONLY;
6032 >  ConfigGeneral.oper_umodes |= UMODE_INVISIBLE;
6033   }
6034 < #line 6122 "conf_parser.c" /* yacc.c:1646  */
6034 > #line 6035 "conf_parser.c" /* yacc.c:1646  */
6035      break;
6036  
6037    case 581:
6038 < #line 2775 "conf_parser.y" /* yacc.c:1646  */
6038 > #line 2699 "conf_parser.y" /* yacc.c:1646  */
6039      {
6040 <  ConfigFileEntry.oper_umodes |= UMODE_FARCONNECT;
6040 >  ConfigGeneral.oper_umodes |= UMODE_WALLOP;
6041   }
6042 < #line 6130 "conf_parser.c" /* yacc.c:1646  */
6042 > #line 6043 "conf_parser.c" /* yacc.c:1646  */
6043      break;
6044  
6045    case 582:
6046 < #line 2780 "conf_parser.y" /* yacc.c:1646  */
6046 > #line 2702 "conf_parser.y" /* yacc.c:1646  */
6047      {
6048 <  ConfigFileEntry.oper_only_umodes = 0;
6048 >  ConfigGeneral.oper_umodes |= UMODE_SOFTCALLERID;
6049   }
6050 < #line 6138 "conf_parser.c" /* yacc.c:1646  */
6050 > #line 6051 "conf_parser.c" /* yacc.c:1646  */
6051      break;
6052  
6053 <  case 586:
6054 < #line 2786 "conf_parser.y" /* yacc.c:1646  */
6053 >  case 583:
6054 > #line 2705 "conf_parser.y" /* yacc.c:1646  */
6055      {
6056 <  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6056 >  ConfigGeneral.oper_umodes |= UMODE_CALLERID;
6057   }
6058 < #line 6146 "conf_parser.c" /* yacc.c:1646  */
6058 > #line 6059 "conf_parser.c" /* yacc.c:1646  */
6059      break;
6060  
6061 <  case 587:
6062 < #line 2789 "conf_parser.y" /* yacc.c:1646  */
6061 >  case 584:
6062 > #line 2708 "conf_parser.y" /* yacc.c:1646  */
6063      {
6064 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6064 >  ConfigGeneral.oper_umodes |= UMODE_LOCOPS;
6065   }
6066 < #line 6154 "conf_parser.c" /* yacc.c:1646  */
6066 > #line 6067 "conf_parser.c" /* yacc.c:1646  */
6067      break;
6068  
6069 <  case 588:
6070 < #line 2792 "conf_parser.y" /* yacc.c:1646  */
6069 >  case 585:
6070 > #line 2711 "conf_parser.y" /* yacc.c:1646  */
6071      {
6072 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6072 >  ConfigGeneral.oper_umodes |= UMODE_REGONLY;
6073   }
6074 < #line 6162 "conf_parser.c" /* yacc.c:1646  */
6074 > #line 6075 "conf_parser.c" /* yacc.c:1646  */
6075      break;
6076  
6077 <  case 589:
6078 < #line 2795 "conf_parser.y" /* yacc.c:1646  */
6077 >  case 586:
6078 > #line 2714 "conf_parser.y" /* yacc.c:1646  */
6079      {
6080 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6080 >  ConfigGeneral.oper_umodes |= UMODE_FARCONNECT;
6081   }
6082 < #line 6170 "conf_parser.c" /* yacc.c:1646  */
6082 > #line 6083 "conf_parser.c" /* yacc.c:1646  */
6083      break;
6084  
6085 <  case 590:
6086 < #line 2798 "conf_parser.y" /* yacc.c:1646  */
6085 >  case 587:
6086 > #line 2719 "conf_parser.y" /* yacc.c:1646  */
6087      {
6088 <  ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6088 >  ConfigGeneral.oper_only_umodes = 0;
6089   }
6090 < #line 6178 "conf_parser.c" /* yacc.c:1646  */
6090 > #line 6091 "conf_parser.c" /* yacc.c:1646  */
6091      break;
6092  
6093    case 591:
6094 < #line 2801 "conf_parser.y" /* yacc.c:1646  */
6094 > #line 2725 "conf_parser.y" /* yacc.c:1646  */
6095      {
6096 <  ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6096 >  ConfigGeneral.oper_only_umodes |= UMODE_BOTS;
6097   }
6098 < #line 6186 "conf_parser.c" /* yacc.c:1646  */
6098 > #line 6099 "conf_parser.c" /* yacc.c:1646  */
6099      break;
6100  
6101    case 592:
6102 < #line 2804 "conf_parser.y" /* yacc.c:1646  */
6102 > #line 2728 "conf_parser.y" /* yacc.c:1646  */
6103      {
6104 <  ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6104 >  ConfigGeneral.oper_only_umodes |= UMODE_CCONN;
6105   }
6106 < #line 6194 "conf_parser.c" /* yacc.c:1646  */
6106 > #line 6107 "conf_parser.c" /* yacc.c:1646  */
6107      break;
6108  
6109    case 593:
6110 < #line 2807 "conf_parser.y" /* yacc.c:1646  */
6110 > #line 2731 "conf_parser.y" /* yacc.c:1646  */
6111      {
6112 <  ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6112 >  ConfigGeneral.oper_only_umodes |= UMODE_DEAF;
6113   }
6114 < #line 6202 "conf_parser.c" /* yacc.c:1646  */
6114 > #line 6115 "conf_parser.c" /* yacc.c:1646  */
6115      break;
6116  
6117    case 594:
6118 < #line 2810 "conf_parser.y" /* yacc.c:1646  */
6118 > #line 2734 "conf_parser.y" /* yacc.c:1646  */
6119      {
6120 <  ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6120 >  ConfigGeneral.oper_only_umodes |= UMODE_DEBUG;
6121   }
6122 < #line 6210 "conf_parser.c" /* yacc.c:1646  */
6122 > #line 6123 "conf_parser.c" /* yacc.c:1646  */
6123      break;
6124  
6125    case 595:
6126 < #line 2813 "conf_parser.y" /* yacc.c:1646  */
6126 > #line 2737 "conf_parser.y" /* yacc.c:1646  */
6127      {
6128 <  ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6128 >  ConfigGeneral.oper_only_umodes |= UMODE_FULL;
6129   }
6130 < #line 6218 "conf_parser.c" /* yacc.c:1646  */
6130 > #line 6131 "conf_parser.c" /* yacc.c:1646  */
6131      break;
6132  
6133    case 596:
6134 < #line 2816 "conf_parser.y" /* yacc.c:1646  */
6134 > #line 2740 "conf_parser.y" /* yacc.c:1646  */
6135      {
6136 <  ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6136 >  ConfigGeneral.oper_only_umodes |= UMODE_SKILL;
6137   }
6138 < #line 6226 "conf_parser.c" /* yacc.c:1646  */
6138 > #line 6139 "conf_parser.c" /* yacc.c:1646  */
6139      break;
6140  
6141    case 597:
6142 < #line 2819 "conf_parser.y" /* yacc.c:1646  */
6142 > #line 2743 "conf_parser.y" /* yacc.c:1646  */
6143      {
6144 <  ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6144 >  ConfigGeneral.oper_only_umodes |= UMODE_HIDDEN;
6145   }
6146 < #line 6234 "conf_parser.c" /* yacc.c:1646  */
6146 > #line 6147 "conf_parser.c" /* yacc.c:1646  */
6147      break;
6148  
6149    case 598:
6150 < #line 2822 "conf_parser.y" /* yacc.c:1646  */
6150 > #line 2746 "conf_parser.y" /* yacc.c:1646  */
6151      {
6152 <  ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6152 >  ConfigGeneral.oper_only_umodes |= UMODE_NCHANGE;
6153   }
6154 < #line 6242 "conf_parser.c" /* yacc.c:1646  */
6154 > #line 6155 "conf_parser.c" /* yacc.c:1646  */
6155      break;
6156  
6157    case 599:
6158 < #line 2825 "conf_parser.y" /* yacc.c:1646  */
6158 > #line 2749 "conf_parser.y" /* yacc.c:1646  */
6159      {
6160 <  ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6160 >  ConfigGeneral.oper_only_umodes |= UMODE_REJ;
6161   }
6162 < #line 6250 "conf_parser.c" /* yacc.c:1646  */
6162 > #line 6163 "conf_parser.c" /* yacc.c:1646  */
6163      break;
6164  
6165    case 600:
6166 < #line 2828 "conf_parser.y" /* yacc.c:1646  */
6166 > #line 2752 "conf_parser.y" /* yacc.c:1646  */
6167      {
6168 <  ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6168 >  ConfigGeneral.oper_only_umodes |= UMODE_UNAUTH;
6169   }
6170 < #line 6258 "conf_parser.c" /* yacc.c:1646  */
6170 > #line 6171 "conf_parser.c" /* yacc.c:1646  */
6171      break;
6172  
6173    case 601:
6174 < #line 2831 "conf_parser.y" /* yacc.c:1646  */
6174 > #line 2755 "conf_parser.y" /* yacc.c:1646  */
6175      {
6176 <  ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6176 >  ConfigGeneral.oper_only_umodes |= UMODE_SPY;
6177   }
6178 < #line 6266 "conf_parser.c" /* yacc.c:1646  */
6178 > #line 6179 "conf_parser.c" /* yacc.c:1646  */
6179      break;
6180  
6181    case 602:
6182 < #line 2834 "conf_parser.y" /* yacc.c:1646  */
6182 > #line 2758 "conf_parser.y" /* yacc.c:1646  */
6183      {
6184 <  ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6184 >  ConfigGeneral.oper_only_umodes |= UMODE_EXTERNAL;
6185   }
6186 < #line 6274 "conf_parser.c" /* yacc.c:1646  */
6186 > #line 6187 "conf_parser.c" /* yacc.c:1646  */
6187      break;
6188  
6189    case 603:
6190 < #line 2837 "conf_parser.y" /* yacc.c:1646  */
6190 > #line 2761 "conf_parser.y" /* yacc.c:1646  */
6191      {
6192 <  ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6192 >  ConfigGeneral.oper_only_umodes |= UMODE_SERVNOTICE;
6193   }
6194 < #line 6282 "conf_parser.c" /* yacc.c:1646  */
6194 > #line 6195 "conf_parser.c" /* yacc.c:1646  */
6195      break;
6196  
6197    case 604:
6198 < #line 2840 "conf_parser.y" /* yacc.c:1646  */
6198 > #line 2764 "conf_parser.y" /* yacc.c:1646  */
6199      {
6200 <  ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6200 >  ConfigGeneral.oper_only_umodes |= UMODE_INVISIBLE;
6201   }
6202 < #line 6290 "conf_parser.c" /* yacc.c:1646  */
6202 > #line 6203 "conf_parser.c" /* yacc.c:1646  */
6203      break;
6204  
6205    case 605:
6206 < #line 2843 "conf_parser.y" /* yacc.c:1646  */
6206 > #line 2767 "conf_parser.y" /* yacc.c:1646  */
6207      {
6208 <  ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6208 >  ConfigGeneral.oper_only_umodes |= UMODE_WALLOP;
6209   }
6210 < #line 6298 "conf_parser.c" /* yacc.c:1646  */
6210 > #line 6211 "conf_parser.c" /* yacc.c:1646  */
6211      break;
6212  
6213    case 606:
6214 < #line 2846 "conf_parser.y" /* yacc.c:1646  */
6214 > #line 2770 "conf_parser.y" /* yacc.c:1646  */
6215      {
6216 <  ConfigFileEntry.oper_only_umodes |= UMODE_FARCONNECT;
6216 >  ConfigGeneral.oper_only_umodes |= UMODE_SOFTCALLERID;
6217   }
6218 < #line 6306 "conf_parser.c" /* yacc.c:1646  */
6218 > #line 6219 "conf_parser.c" /* yacc.c:1646  */
6219      break;
6220  
6221    case 607:
6222 < #line 2851 "conf_parser.y" /* yacc.c:1646  */
6222 > #line 2773 "conf_parser.y" /* yacc.c:1646  */
6223      {
6224 <  ConfigFileEntry.min_nonwildcard = (yyvsp[-1].number);
6224 >  ConfigGeneral.oper_only_umodes |= UMODE_CALLERID;
6225   }
6226 < #line 6314 "conf_parser.c" /* yacc.c:1646  */
6226 > #line 6227 "conf_parser.c" /* yacc.c:1646  */
6227      break;
6228  
6229    case 608:
6230 < #line 2856 "conf_parser.y" /* yacc.c:1646  */
6230 > #line 2776 "conf_parser.y" /* yacc.c:1646  */
6231      {
6232 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[-1].number);
6232 >  ConfigGeneral.oper_only_umodes |= UMODE_LOCOPS;
6233   }
6234 < #line 6322 "conf_parser.c" /* yacc.c:1646  */
6234 > #line 6235 "conf_parser.c" /* yacc.c:1646  */
6235      break;
6236  
6237    case 609:
6238 < #line 2861 "conf_parser.y" /* yacc.c:1646  */
6238 > #line 2779 "conf_parser.y" /* yacc.c:1646  */
6239      {
6240 <  ConfigFileEntry.default_floodcount = (yyvsp[-1].number);
6240 >  ConfigGeneral.oper_only_umodes |= UMODE_REGONLY;
6241   }
6242 < #line 6330 "conf_parser.c" /* yacc.c:1646  */
6242 > #line 6243 "conf_parser.c" /* yacc.c:1646  */
6243      break;
6244  
6245 <  case 626:
6246 < #line 2884 "conf_parser.y" /* yacc.c:1646  */
6245 >  case 610:
6246 > #line 2782 "conf_parser.y" /* yacc.c:1646  */
6247 >    {
6248 >  ConfigGeneral.oper_only_umodes |= UMODE_FARCONNECT;
6249 > }
6250 > #line 6251 "conf_parser.c" /* yacc.c:1646  */
6251 >    break;
6252 >
6253 >  case 611:
6254 > #line 2787 "conf_parser.y" /* yacc.c:1646  */
6255 >    {
6256 >  ConfigGeneral.min_nonwildcard = (yyvsp[-1].number);
6257 > }
6258 > #line 6259 "conf_parser.c" /* yacc.c:1646  */
6259 >    break;
6260 >
6261 >  case 612:
6262 > #line 2792 "conf_parser.y" /* yacc.c:1646  */
6263 >    {
6264 >  ConfigGeneral.min_nonwildcard_simple = (yyvsp[-1].number);
6265 > }
6266 > #line 6267 "conf_parser.c" /* yacc.c:1646  */
6267 >    break;
6268 >
6269 >  case 613:
6270 > #line 2797 "conf_parser.y" /* yacc.c:1646  */
6271 >    {
6272 >  ConfigGeneral.default_floodcount = (yyvsp[-1].number);
6273 > }
6274 > #line 6275 "conf_parser.c" /* yacc.c:1646  */
6275 >    break;
6276 >
6277 >  case 614:
6278 > #line 2802 "conf_parser.y" /* yacc.c:1646  */
6279 >    {
6280 >  ConfigGeneral.default_floodtime = (yyvsp[-1].number);
6281 > }
6282 > #line 6283 "conf_parser.c" /* yacc.c:1646  */
6283 >    break;
6284 >
6285 >  case 633:
6286 > #line 2830 "conf_parser.y" /* yacc.c:1646  */
6287      {
6288    ConfigChannel.disable_fake_channels = yylval.number;
6289   }
6290 < #line 6338 "conf_parser.c" /* yacc.c:1646  */
6290 > #line 6291 "conf_parser.c" /* yacc.c:1646  */
6291 >    break;
6292 >
6293 >  case 634:
6294 > #line 2835 "conf_parser.y" /* yacc.c:1646  */
6295 >    {
6296 >  ConfigChannel.invite_client_count = (yyvsp[-1].number);
6297 > }
6298 > #line 6299 "conf_parser.c" /* yacc.c:1646  */
6299      break;
6300  
6301 <  case 627:
6302 < #line 2889 "conf_parser.y" /* yacc.c:1646  */
6301 >  case 635:
6302 > #line 2840 "conf_parser.y" /* yacc.c:1646  */
6303      {
6304 <  ConfigChannel.knock_delay = (yyvsp[-1].number);
6304 >  ConfigChannel.invite_client_time = (yyvsp[-1].number);
6305   }
6306 < #line 6346 "conf_parser.c" /* yacc.c:1646  */
6306 > #line 6307 "conf_parser.c" /* yacc.c:1646  */
6307      break;
6308  
6309 <  case 628:
6310 < #line 2894 "conf_parser.y" /* yacc.c:1646  */
6309 >  case 636:
6310 > #line 2845 "conf_parser.y" /* yacc.c:1646  */
6311      {
6312 <  ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6312 >  ConfigChannel.invite_delay_channel = (yyvsp[-1].number);
6313   }
6314 < #line 6354 "conf_parser.c" /* yacc.c:1646  */
6314 > #line 6315 "conf_parser.c" /* yacc.c:1646  */
6315      break;
6316  
6317 <  case 629:
6318 < #line 2899 "conf_parser.y" /* yacc.c:1646  */
6317 >  case 637:
6318 > #line 2850 "conf_parser.y" /* yacc.c:1646  */
6319      {
6320 <  ConfigChannel.max_chans_per_user = (yyvsp[-1].number);
6320 >  ConfigChannel.invite_expire_time = (yyvsp[-1].number);
6321   }
6322 < #line 6362 "conf_parser.c" /* yacc.c:1646  */
6322 > #line 6323 "conf_parser.c" /* yacc.c:1646  */
6323      break;
6324  
6325 <  case 630:
6326 < #line 2904 "conf_parser.y" /* yacc.c:1646  */
6325 >  case 638:
6326 > #line 2855 "conf_parser.y" /* yacc.c:1646  */
6327      {
6328 <  ConfigChannel.max_chans_per_oper = (yyvsp[-1].number);
6328 >  ConfigChannel.knock_client_count = (yyvsp[-1].number);
6329   }
6330 < #line 6370 "conf_parser.c" /* yacc.c:1646  */
6330 > #line 6331 "conf_parser.c" /* yacc.c:1646  */
6331      break;
6332  
6333 <  case 631:
6334 < #line 2909 "conf_parser.y" /* yacc.c:1646  */
6333 >  case 639:
6334 > #line 2860 "conf_parser.y" /* yacc.c:1646  */
6335      {
6336 <  ConfigChannel.max_bans = (yyvsp[-1].number);
6336 >  ConfigChannel.knock_client_time = (yyvsp[-1].number);
6337   }
6338 < #line 6378 "conf_parser.c" /* yacc.c:1646  */
6338 > #line 6339 "conf_parser.c" /* yacc.c:1646  */
6339      break;
6340  
6341 <  case 632:
6342 < #line 2914 "conf_parser.y" /* yacc.c:1646  */
6341 >  case 640:
6342 > #line 2865 "conf_parser.y" /* yacc.c:1646  */
6343      {
6344 <  ConfigChannel.default_split_user_count = (yyvsp[-1].number);
6344 >  ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6345   }
6346 < #line 6386 "conf_parser.c" /* yacc.c:1646  */
6346 > #line 6347 "conf_parser.c" /* yacc.c:1646  */
6347      break;
6348  
6349 <  case 633:
6350 < #line 2919 "conf_parser.y" /* yacc.c:1646  */
6349 >  case 641:
6350 > #line 2870 "conf_parser.y" /* yacc.c:1646  */
6351      {
6352 <  ConfigChannel.default_split_server_count = (yyvsp[-1].number);
6352 >  ConfigChannel.max_channels = (yyvsp[-1].number);
6353   }
6354 < #line 6394 "conf_parser.c" /* yacc.c:1646  */
6354 > #line 6355 "conf_parser.c" /* yacc.c:1646  */
6355      break;
6356  
6357 <  case 634:
6358 < #line 2924 "conf_parser.y" /* yacc.c:1646  */
6357 >  case 642:
6358 > #line 2875 "conf_parser.y" /* yacc.c:1646  */
6359      {
6360 <  ConfigChannel.no_create_on_split = yylval.number;
6360 >  ConfigChannel.max_invites = (yyvsp[-1].number);
6361   }
6362 < #line 6402 "conf_parser.c" /* yacc.c:1646  */
6362 > #line 6363 "conf_parser.c" /* yacc.c:1646  */
6363      break;
6364  
6365 <  case 635:
6366 < #line 2929 "conf_parser.y" /* yacc.c:1646  */
6365 >  case 643:
6366 > #line 2880 "conf_parser.y" /* yacc.c:1646  */
6367      {
6368 <  ConfigChannel.no_join_on_split = yylval.number;
6368 >  ConfigChannel.max_bans = (yyvsp[-1].number);
6369   }
6370 < #line 6410 "conf_parser.c" /* yacc.c:1646  */
6370 > #line 6371 "conf_parser.c" /* yacc.c:1646  */
6371      break;
6372  
6373 <  case 636:
6374 < #line 2934 "conf_parser.y" /* yacc.c:1646  */
6373 >  case 644:
6374 > #line 2885 "conf_parser.y" /* yacc.c:1646  */
6375      {
6376 <  GlobalSetOptions.joinfloodcount = yylval.number;
6376 >  ConfigChannel.max_bans_large = (yyvsp[-1].number);
6377   }
6378 < #line 6418 "conf_parser.c" /* yacc.c:1646  */
6378 > #line 6379 "conf_parser.c" /* yacc.c:1646  */
6379      break;
6380  
6381 <  case 637:
6382 < #line 2939 "conf_parser.y" /* yacc.c:1646  */
6381 >  case 645:
6382 > #line 2890 "conf_parser.y" /* yacc.c:1646  */
6383      {
6384 <  GlobalSetOptions.joinfloodtime = yylval.number;
6384 >  ConfigChannel.default_join_flood_count = yylval.number;
6385   }
6386 < #line 6426 "conf_parser.c" /* yacc.c:1646  */
6386 > #line 6387 "conf_parser.c" /* yacc.c:1646  */
6387      break;
6388  
6389 <  case 650:
6390 < #line 2959 "conf_parser.y" /* yacc.c:1646  */
6389 >  case 646:
6390 > #line 2895 "conf_parser.y" /* yacc.c:1646  */
6391 >    {
6392 >  ConfigChannel.default_join_flood_time = (yyvsp[-1].number);
6393 > }
6394 > #line 6395 "conf_parser.c" /* yacc.c:1646  */
6395 >    break;
6396 >
6397 >  case 660:
6398 > #line 2918 "conf_parser.y" /* yacc.c:1646  */
6399      {
6400    if (conf_parser_ctx.pass == 2)
6401      ConfigServerHide.flatten_links = yylval.number;
6402   }
6403 + #line 6404 "conf_parser.c" /* yacc.c:1646  */
6404 +    break;
6405 +
6406 +  case 661:
6407 + #line 2924 "conf_parser.y" /* yacc.c:1646  */
6408 +    {
6409 +  if (conf_parser_ctx.pass == 2)
6410 +  {
6411 +    if ((yyvsp[-1].number) > 0)
6412 +    {
6413 +      event_write_links_file.when = (yyvsp[-1].number);
6414 +      event_add(&event_write_links_file, NULL);
6415 +    }
6416 +    else
6417 +     event_delete(&event_write_links_file);
6418 +
6419 +    ConfigServerHide.flatten_links_delay = (yyvsp[-1].number);
6420 +  }
6421 + }
6422 + #line 6423 "conf_parser.c" /* yacc.c:1646  */
6423 +    break;
6424 +
6425 +  case 662:
6426 + #line 2940 "conf_parser.y" /* yacc.c:1646  */
6427 +    {
6428 +  if (conf_parser_ctx.pass == 2)
6429 +  {
6430 +    xfree(ConfigServerHide.flatten_links_file);
6431 +    ConfigServerHide.flatten_links_file = xstrdup(yylval.string);
6432 +  }
6433 + }
6434   #line 6435 "conf_parser.c" /* yacc.c:1646  */
6435      break;
6436  
6437 <  case 651:
6438 < #line 2965 "conf_parser.y" /* yacc.c:1646  */
6437 >  case 663:
6438 > #line 2949 "conf_parser.y" /* yacc.c:1646  */
6439      {
6440    if (conf_parser_ctx.pass == 2)
6441      ConfigServerHide.disable_remote_commands = yylval.number;
# Line 6443 | Line 6443 | yyreduce:
6443   #line 6444 "conf_parser.c" /* yacc.c:1646  */
6444      break;
6445  
6446 <  case 652:
6447 < #line 2971 "conf_parser.y" /* yacc.c:1646  */
6446 >  case 664:
6447 > #line 2955 "conf_parser.y" /* yacc.c:1646  */
6448      {
6449    if (conf_parser_ctx.pass == 2)
6450      ConfigServerHide.hide_servers = yylval.number;
# Line 6452 | Line 6452 | yyreduce:
6452   #line 6453 "conf_parser.c" /* yacc.c:1646  */
6453      break;
6454  
6455 <  case 653:
6456 < #line 2977 "conf_parser.y" /* yacc.c:1646  */
6455 >  case 665:
6456 > #line 2961 "conf_parser.y" /* yacc.c:1646  */
6457      {
6458    if (conf_parser_ctx.pass == 2)
6459      ConfigServerHide.hide_services = yylval.number;
# Line 6461 | Line 6461 | yyreduce:
6461   #line 6462 "conf_parser.c" /* yacc.c:1646  */
6462      break;
6463  
6464 <  case 654:
6465 < #line 2983 "conf_parser.y" /* yacc.c:1646  */
6464 >  case 666:
6465 > #line 2967 "conf_parser.y" /* yacc.c:1646  */
6466      {
6467    if (conf_parser_ctx.pass == 2)
6468    {
6469 <    MyFree(ConfigServerHide.hidden_name);
6469 >    xfree(ConfigServerHide.hidden_name);
6470      ConfigServerHide.hidden_name = xstrdup(yylval.string);
6471    }
6472   }
6473   #line 6474 "conf_parser.c" /* yacc.c:1646  */
6474      break;
6475  
6476 <  case 655:
6477 < #line 2992 "conf_parser.y" /* yacc.c:1646  */
6478 <    {
6479 <  if (conf_parser_ctx.pass == 2)
6480 <  {
6481 <    if (((yyvsp[-1].number) > 0) && ConfigServerHide.links_disabled == 1)
6482 <    {
6483 <      eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[-1].number));
6484 <      ConfigServerHide.links_disabled = 0;
6485 <    }
6486 <
6487 <    ConfigServerHide.links_delay = (yyvsp[-1].number);
6488 <  }
6489 < }
6490 < #line 6491 "conf_parser.c" /* yacc.c:1646  */
6491 <    break;
6492 <
6493 <  case 656:
6494 < #line 3006 "conf_parser.y" /* yacc.c:1646  */
6476 >  case 667:
6477 > #line 2976 "conf_parser.y" /* yacc.c:1646  */
6478      {
6479    if (conf_parser_ctx.pass == 2)
6480      ConfigServerHide.hidden = yylval.number;
6481   }
6482 < #line 6500 "conf_parser.c" /* yacc.c:1646  */
6482 > #line 6483 "conf_parser.c" /* yacc.c:1646  */
6483      break;
6484  
6485 <  case 657:
6486 < #line 3012 "conf_parser.y" /* yacc.c:1646  */
6485 >  case 668:
6486 > #line 2982 "conf_parser.y" /* yacc.c:1646  */
6487      {
6488    if (conf_parser_ctx.pass == 2)
6489      ConfigServerHide.hide_server_ips = yylval.number;
6490   }
6491 < #line 6509 "conf_parser.c" /* yacc.c:1646  */
6491 > #line 6492 "conf_parser.c" /* yacc.c:1646  */
6492      break;
6493  
6494  
6495 < #line 6513 "conf_parser.c" /* yacc.c:1646  */
6495 > #line 6496 "conf_parser.c" /* yacc.c:1646  */
6496        default: break;
6497      }
6498    /* User semantic actions sometimes alter yychar, and that requires

Comparing:
ircd-hybrid/trunk/src/conf_parser.c (property svn:keywords), Revision 3347 by michael, Sun Apr 20 14:03:06 2014 UTC vs.
ircd-hybrid/branches/8.2.x/src/conf_parser.c (property svn:keywords), Revision 8659 by michael, Sun Nov 18 12:53:34 2018 UTC

# Line 1 | Line 0
1 Id Revision

Diff Legend

Removed lines
+ Added lines
< Changed lines (old)
> Changed lines (new)