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

Comparing:
ircd-hybrid-8/src/conf_parser.c (file contents), Revision 1425 by michael, Wed Jun 6 08:44:22 2012 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (file contents), Revision 1992 by michael, Fri May 10 18:32:26 2013 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 2.5.1.  */
1 > /* A Bison parser, made by GNU Bison 2.7.12-4996.  */
2  
3   /* Bison implementation for Yacc-like parsers in C
4    
5 <      Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
5 >      Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
6    
7     This program is free software: you can redistribute it and/or modify
8     it under the terms of the GNU General Public License as published by
# Line 44 | Line 44
44   #define YYBISON 1
45  
46   /* Bison version.  */
47 < #define YYBISON_VERSION "2.5.1"
47 > #define YYBISON_VERSION "2.7.12-4996"
48  
49   /* Skeleton name.  */
50   #define YYSKELETON_NAME "yacc.c"
# Line 58 | Line 58
58   /* Pull parsers.  */
59   #define YYPULL 1
60  
61 /* Using locations.  */
62 #define YYLSP_NEEDED 0
61  
62  
63  
64   /* Copy the first part of user declarations.  */
65 <
68 < /* Line 268 of yacc.c  */
65 > /* Line 371 of yacc.c  */
66   #line 25 "conf_parser.y"
67  
68  
# Line 78 | Line 75
75   #include "ircd.h"
76   #include "list.h"
77   #include "conf.h"
78 + #include "conf_class.h"
79   #include "event.h"
80   #include "log.h"
81   #include "client.h"     /* for UMODE_ALL only */
82   #include "irc_string.h"
85 #include "sprintf_irc.h"
83   #include "memory.h"
84   #include "modules.h"
85   #include "s_serv.h"
# Line 100 | Line 97
97   #include <openssl/dh.h>
98   #endif
99  
100 < int yylex(void);
100 > #include "rsa.h"
101  
102 < static char *class_name = NULL;
106 < static struct ConfItem *yy_conf = NULL;
107 < static struct AccessItem *yy_aconf = NULL;
108 < static struct MatchItem *yy_match_item = NULL;
109 < static struct ClassItem *yy_class = NULL;
110 < static char *yy_class_name = NULL;
111 <
112 < static dlink_list col_conf_list  = { NULL, NULL, 0 };
113 < static unsigned int listener_flags = 0;
114 < static unsigned int regex_ban = 0;
115 < static char userbuf[IRCD_BUFSIZE];
116 < static char hostbuf[IRCD_BUFSIZE];
117 < static char reasonbuf[REASONLEN + 1];
118 < static char gecos_name[REALLEN * 4];
119 < static char lfile[IRCD_BUFSIZE];
120 < static unsigned int ltype = 0;
121 < static unsigned int lsize = 0;
122 < static char *resv_reason = NULL;
123 < static char *listener_address = NULL;
102 > int yylex(void);
103  
104 < struct CollectItem
104 > static struct
105   {
106 <  dlink_node node;
107 <  char *name;
108 <  char *user;
109 <  char *host;
110 <  char *passwd;
111 <  int  port;
112 <  int  flags;
113 < #ifdef HAVE_LIBCRYPTO
114 <  char *rsa_public_key_file;
115 <  RSA *rsa_public_key;
116 < #endif
117 < };
106 >  struct {
107 >    dlink_list list;
108 >  } mask,
109 >    leaf,
110 >    hub;
111 >
112 >  struct {
113 >    char buf[IRCD_BUFSIZE];
114 >  } name,
115 >    user,
116 >    host,
117 >    addr,
118 >    bind,
119 >    file,
120 >    ciph,
121 >    rpass,
122 >    spass,
123 >    class;
124 >
125 >  struct {
126 >    unsigned int value;
127 >  } flags,
128 >    modes,
129 >    size,
130 >    type,
131 >    port,
132 >    aftype,
133 >    ping_freq,
134 >    max_perip,
135 >    con_freq,
136 >    min_idle,
137 >    max_idle,
138 >    max_total,
139 >    max_global,
140 >    max_local,
141 >    max_ident,
142 >    max_sendq,
143 >    max_recvq,
144 >    cidr_bitlen_ipv4,
145 >    cidr_bitlen_ipv6,
146 >    number_per_cidr;
147 > } block_state;
148  
149   static void
150 < free_collect_item(struct CollectItem *item)
150 > reset_block_state(void)
151   {
152 <  MyFree(item->name);
153 <  MyFree(item->user);
154 <  MyFree(item->host);
155 <  MyFree(item->passwd);
156 < #ifdef HAVE_LIBCRYPTO
157 <  MyFree(item->rsa_public_key_file);
158 < #endif
159 <  MyFree(item);
151 < }
152 >  dlink_node *ptr = NULL, *ptr_next = NULL;
153 >
154 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
155 >  {
156 >    MyFree(ptr->data);
157 >    dlinkDelete(ptr, &block_state.mask.list);
158 >    free_dlink_node(ptr);
159 >  }
160  
161 +  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
162 +  {
163 +    MyFree(ptr->data);
164 +    dlinkDelete(ptr, &block_state.leaf.list);
165 +    free_dlink_node(ptr);
166 +  }
167 +
168 +  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
169 +  {
170 +    MyFree(ptr->data);
171 +    dlinkDelete(ptr, &block_state.hub.list);
172 +    free_dlink_node(ptr);
173 +  }
174 +
175 +  memset(&block_state, 0, sizeof(block_state));
176 + }
177  
178  
179 < /* Line 268 of yacc.c  */
180 < #line 157 "conf_parser.c"
179 > /* Line 371 of yacc.c  */
180 > #line 181 "conf_parser.c"
181  
182   # ifndef YY_NULL
183   #  if defined __cplusplus && 201103L <= __cplusplus
# Line 163 | Line 187 | free_collect_item(struct CollectItem *it
187   #  endif
188   # endif
189  
166 /* Enabling traces.  */
167 #ifndef YYDEBUG
168 # define YYDEBUG 0
169 #endif
170
190   /* Enabling verbose error messages.  */
191   #ifdef YYERROR_VERBOSE
192   # undef YYERROR_VERBOSE
# Line 176 | Line 195 | free_collect_item(struct CollectItem *it
195   # define YYERROR_VERBOSE 0
196   #endif
197  
198 < /* Enabling the token table.  */
199 < #ifndef YYTOKEN_TABLE
200 < # define YYTOKEN_TABLE 0
198 > /* In a future release of Bison, this section will be replaced
199 >   by #include "y.tab.h".  */
200 > #ifndef YY_YY_CONF_PARSER_H_INCLUDED
201 > # define YY_YY_CONF_PARSER_H_INCLUDED
202 > /* Enabling traces.  */
203 > #ifndef YYDEBUG
204 > # define YYDEBUG 0
205 > #endif
206 > #if YYDEBUG
207 > extern int yydebug;
208   #endif
183
209  
210   /* Tokens.  */
211   #ifndef YYTOKENTYPE
# Line 189 | Line 214 | free_collect_item(struct CollectItem *it
214        know about them.  */
215     enum yytokentype {
216       ACCEPT_PASSWORD = 258,
217 <     ACTION = 259,
218 <     ADMIN = 260,
219 <     AFTYPE = 261,
220 <     T_ALLOW = 262,
221 <     ANTI_NICK_FLOOD = 263,
222 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 264,
223 <     AUTOCONN = 265,
224 <     T_BLOCK = 266,
225 <     BURST_AWAY = 267,
226 <     BYTES = 268,
227 <     KBYTES = 269,
228 <     MBYTES = 270,
229 <     GBYTES = 271,
230 <     TBYTES = 272,
231 <     CALLER_ID_WAIT = 273,
232 <     CAN_FLOOD = 274,
233 <     CHANNEL = 275,
234 <     CIDR_BITLEN_IPV4 = 276,
235 <     CIDR_BITLEN_IPV6 = 277,
236 <     CLASS = 278,
237 <     CONNECT = 279,
238 <     CONNECTFREQ = 280,
239 <     DEFAULT_FLOODCOUNT = 281,
240 <     DEFAULT_SPLIT_SERVER_COUNT = 282,
241 <     DEFAULT_SPLIT_USER_COUNT = 283,
242 <     DENY = 284,
243 <     DESCRIPTION = 285,
244 <     DIE = 286,
245 <     DISABLE_AUTH = 287,
246 <     DISABLE_FAKE_CHANNELS = 288,
247 <     DISABLE_HIDDEN = 289,
248 <     DISABLE_LOCAL_CHANNELS = 290,
249 <     DISABLE_REMOTE_COMMANDS = 291,
250 <     DOTS_IN_IDENT = 292,
251 <     DURATION = 293,
252 <     EGDPOOL_PATH = 294,
253 <     EMAIL = 295,
254 <     ENABLE = 296,
255 <     ENCRYPTED = 297,
256 <     EXCEED_LIMIT = 298,
257 <     EXEMPT = 299,
258 <     FAILED_OPER_NOTICE = 300,
259 <     IRCD_FLAGS = 301,
260 <     FLATTEN_LINKS = 302,
261 <     GECOS = 303,
262 <     GENERAL = 304,
263 <     GLINE = 305,
264 <     GLINES = 306,
265 <     GLINE_EXEMPT = 307,
266 <     GLINE_TIME = 308,
267 <     GLINE_MIN_CIDR = 309,
268 <     GLINE_MIN_CIDR6 = 310,
269 <     GLOBAL_KILL = 311,
270 <     IRCD_AUTH = 312,
271 <     NEED_IDENT = 313,
272 <     HAVENT_READ_CONF = 314,
273 <     HIDDEN = 315,
274 <     HIDDEN_NAME = 316,
275 <     HIDE_SERVER_IPS = 317,
276 <     HIDE_SERVERS = 318,
277 <     HIDE_SPOOF_IPS = 319,
278 <     HOST = 320,
279 <     HUB = 321,
280 <     HUB_MASK = 322,
281 <     IGNORE_BOGUS_TS = 323,
282 <     INVISIBLE_ON_CONNECT = 324,
283 <     IP = 325,
284 <     KILL = 326,
285 <     KILL_CHASE_TIME_LIMIT = 327,
286 <     KLINE = 328,
287 <     KLINE_EXEMPT = 329,
288 <     KLINE_REASON = 330,
289 <     KLINE_WITH_REASON = 331,
290 <     KNOCK_DELAY = 332,
291 <     KNOCK_DELAY_CHANNEL = 333,
292 <     LEAF_MASK = 334,
293 <     LINKS_DELAY = 335,
294 <     LISTEN = 336,
295 <     T_LOG = 337,
296 <     MAX_ACCEPT = 338,
297 <     MAX_BANS = 339,
298 <     MAX_CHANS_PER_USER = 340,
299 <     MAX_GLOBAL = 341,
300 <     MAX_IDENT = 342,
301 <     MAX_LOCAL = 343,
302 <     MAX_NICK_CHANGES = 344,
303 <     MAX_NICK_TIME = 345,
304 <     MAX_NUMBER = 346,
305 <     MAX_TARGETS = 347,
306 <     MAX_WATCH = 348,
307 <     MESSAGE_LOCALE = 349,
308 <     MIN_NONWILDCARD = 350,
309 <     MIN_NONWILDCARD_SIMPLE = 351,
310 <     MODULE = 352,
311 <     MODULES = 353,
312 <     NAME = 354,
313 <     NEED_PASSWORD = 355,
314 <     NETWORK_DESC = 356,
315 <     NETWORK_NAME = 357,
316 <     NICK = 358,
317 <     NICK_CHANGES = 359,
318 <     NO_CREATE_ON_SPLIT = 360,
319 <     NO_JOIN_ON_SPLIT = 361,
320 <     NO_OPER_FLOOD = 362,
321 <     NO_TILDE = 363,
322 <     NUMBER = 364,
323 <     NUMBER_PER_IDENT = 365,
324 <     NUMBER_PER_CIDR = 366,
325 <     NUMBER_PER_IP = 367,
326 <     NUMBER_PER_IP_GLOBAL = 368,
327 <     OPERATOR = 369,
328 <     OPERS_BYPASS_CALLERID = 370,
329 <     OPER_ONLY_UMODES = 371,
330 <     OPER_PASS_RESV = 372,
331 <     OPER_SPY_T = 373,
332 <     OPER_UMODES = 374,
333 <     JOIN_FLOOD_COUNT = 375,
334 <     JOIN_FLOOD_TIME = 376,
335 <     PACE_WAIT = 377,
336 <     PACE_WAIT_SIMPLE = 378,
337 <     PASSWORD = 379,
338 <     PATH = 380,
339 <     PING_COOKIE = 381,
340 <     PING_TIME = 382,
341 <     PING_WARNING = 383,
342 <     PORT = 384,
343 <     QSTRING = 385,
344 <     QUIET_ON_BAN = 386,
345 <     REASON = 387,
346 <     REDIRPORT = 388,
347 <     REDIRSERV = 389,
348 <     REGEX_T = 390,
349 <     REHASH = 391,
350 <     TREJECT_HOLD_TIME = 392,
351 <     REMOTE = 393,
352 <     REMOTEBAN = 394,
353 <     RESTRICT_CHANNELS = 395,
354 <     RESTRICTED = 396,
355 <     RSA_PRIVATE_KEY_FILE = 397,
356 <     RSA_PUBLIC_KEY_FILE = 398,
357 <     SSL_CERTIFICATE_FILE = 399,
358 <     SSL_DH_PARAM_FILE = 400,
359 <     T_SSL_CLIENT_METHOD = 401,
360 <     T_SSL_SERVER_METHOD = 402,
361 <     T_SSLV3 = 403,
362 <     T_TLSV1 = 404,
363 <     RESV = 405,
364 <     RESV_EXEMPT = 406,
365 <     SECONDS = 407,
366 <     MINUTES = 408,
367 <     HOURS = 409,
368 <     DAYS = 410,
369 <     WEEKS = 411,
370 <     SENDQ = 412,
371 <     SEND_PASSWORD = 413,
372 <     SERVERHIDE = 414,
373 <     SERVERINFO = 415,
374 <     IRCD_SID = 416,
375 <     TKLINE_EXPIRE_NOTICES = 417,
376 <     T_SHARED = 418,
377 <     T_CLUSTER = 419,
378 <     TYPE = 420,
379 <     SHORT_MOTD = 421,
380 <     SILENT = 422,
381 <     SPOOF = 423,
382 <     SPOOF_NOTICE = 424,
383 <     STATS_E_DISABLED = 425,
384 <     STATS_I_OPER_ONLY = 426,
385 <     STATS_K_OPER_ONLY = 427,
386 <     STATS_O_OPER_ONLY = 428,
387 <     STATS_P_OPER_ONLY = 429,
388 <     TBOOL = 430,
389 <     TMASKED = 431,
390 <     T_REJECT = 432,
391 <     TS_MAX_DELTA = 433,
392 <     TS_WARN_DELTA = 434,
393 <     TWODOTS = 435,
394 <     T_ALL = 436,
395 <     T_BOTS = 437,
396 <     T_SOFTCALLERID = 438,
397 <     T_CALLERID = 439,
398 <     T_CCONN = 440,
399 <     T_CCONN_FULL = 441,
400 <     T_SSL_CIPHER_LIST = 442,
401 <     T_CLIENT_FLOOD = 443,
402 <     T_DEAF = 444,
403 <     T_DEBUG = 445,
404 <     T_DLINE = 446,
405 <     T_DRONE = 447,
406 <     T_EXTERNAL = 448,
407 <     T_FULL = 449,
408 <     T_INVISIBLE = 450,
409 <     T_IPV4 = 451,
410 <     T_IPV6 = 452,
411 <     T_LOCOPS = 453,
412 <     T_MAX_CLIENTS = 454,
413 <     T_NCHANGE = 455,
414 <     T_OPERWALL = 456,
415 <     T_REJ = 457,
416 <     T_SERVER = 458,
417 <     T_SERVNOTICE = 459,
418 <     T_SKILL = 460,
419 <     T_SPY = 461,
420 <     T_SSL = 462,
421 <     T_UMODES = 463,
422 <     T_UNAUTH = 464,
423 <     T_UNDLINE = 465,
424 <     T_UNLIMITED = 466,
425 <     T_UNRESV = 467,
426 <     T_UNXLINE = 468,
427 <     T_GLOBOPS = 469,
428 <     T_WALLOP = 470,
429 <     T_RESTART = 471,
430 <     T_SERVICE = 472,
431 <     T_SERVICES_NAME = 473,
432 <     THROTTLE_TIME = 474,
433 <     TOPICBURST = 475,
409 <     TRUE_NO_OPER_FLOOD = 476,
410 <     TKLINE = 477,
411 <     TXLINE = 478,
412 <     TRESV = 479,
413 <     UNKLINE = 480,
414 <     USER = 481,
415 <     USE_EGD = 482,
416 <     USE_EXCEPT = 483,
417 <     USE_INVEX = 484,
418 <     USE_KNOCK = 485,
419 <     USE_LOGGING = 486,
420 <     USE_WHOIS_ACTUALLY = 487,
421 <     VHOST = 488,
422 <     VHOST6 = 489,
423 <     XLINE = 490,
424 <     WARN = 491,
425 <     WARN_NO_NLINE = 492,
426 <     T_SIZE = 493,
427 <     T_FILE = 494
217 >     ADMIN = 259,
218 >     AFTYPE = 260,
219 >     ANTI_NICK_FLOOD = 261,
220 >     ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
221 >     AUTOCONN = 263,
222 >     BYTES = 264,
223 >     KBYTES = 265,
224 >     MBYTES = 266,
225 >     CALLER_ID_WAIT = 267,
226 >     CAN_FLOOD = 268,
227 >     CHANNEL = 269,
228 >     CIDR_BITLEN_IPV4 = 270,
229 >     CIDR_BITLEN_IPV6 = 271,
230 >     CLASS = 272,
231 >     CONNECT = 273,
232 >     CONNECTFREQ = 274,
233 >     DEFAULT_FLOODCOUNT = 275,
234 >     DEFAULT_SPLIT_SERVER_COUNT = 276,
235 >     DEFAULT_SPLIT_USER_COUNT = 277,
236 >     DENY = 278,
237 >     DESCRIPTION = 279,
238 >     DIE = 280,
239 >     DISABLE_AUTH = 281,
240 >     DISABLE_FAKE_CHANNELS = 282,
241 >     DISABLE_REMOTE_COMMANDS = 283,
242 >     DOTS_IN_IDENT = 284,
243 >     EGDPOOL_PATH = 285,
244 >     EMAIL = 286,
245 >     ENCRYPTED = 287,
246 >     EXCEED_LIMIT = 288,
247 >     EXEMPT = 289,
248 >     FAILED_OPER_NOTICE = 290,
249 >     IRCD_FLAGS = 291,
250 >     FLATTEN_LINKS = 292,
251 >     GECOS = 293,
252 >     GENERAL = 294,
253 >     GLINE = 295,
254 >     GLINE_DURATION = 296,
255 >     GLINE_ENABLE = 297,
256 >     GLINE_EXEMPT = 298,
257 >     GLINE_REQUEST_DURATION = 299,
258 >     GLINE_MIN_CIDR = 300,
259 >     GLINE_MIN_CIDR6 = 301,
260 >     GLOBAL_KILL = 302,
261 >     IRCD_AUTH = 303,
262 >     NEED_IDENT = 304,
263 >     HAVENT_READ_CONF = 305,
264 >     HIDDEN = 306,
265 >     HIDDEN_NAME = 307,
266 >     HIDE_SERVER_IPS = 308,
267 >     HIDE_SERVERS = 309,
268 >     HIDE_SERVICES = 310,
269 >     HIDE_SPOOF_IPS = 311,
270 >     HOST = 312,
271 >     HUB = 313,
272 >     HUB_MASK = 314,
273 >     IGNORE_BOGUS_TS = 315,
274 >     INVISIBLE_ON_CONNECT = 316,
275 >     IP = 317,
276 >     KILL = 318,
277 >     KILL_CHASE_TIME_LIMIT = 319,
278 >     KLINE = 320,
279 >     KLINE_EXEMPT = 321,
280 >     KNOCK_DELAY = 322,
281 >     KNOCK_DELAY_CHANNEL = 323,
282 >     LEAF_MASK = 324,
283 >     LINKS_DELAY = 325,
284 >     LISTEN = 326,
285 >     T_LOG = 327,
286 >     MASK = 328,
287 >     MAX_ACCEPT = 329,
288 >     MAX_BANS = 330,
289 >     MAX_CHANS_PER_OPER = 331,
290 >     MAX_CHANS_PER_USER = 332,
291 >     MAX_GLOBAL = 333,
292 >     MAX_IDENT = 334,
293 >     MAX_LOCAL = 335,
294 >     MAX_NICK_CHANGES = 336,
295 >     MAX_NICK_LENGTH = 337,
296 >     MAX_NICK_TIME = 338,
297 >     MAX_NUMBER = 339,
298 >     MAX_TARGETS = 340,
299 >     MAX_TOPIC_LENGTH = 341,
300 >     MAX_WATCH = 342,
301 >     MIN_NONWILDCARD = 343,
302 >     MIN_NONWILDCARD_SIMPLE = 344,
303 >     MIN_IDLE = 345,
304 >     MAX_IDLE = 346,
305 >     RANDOM_IDLE = 347,
306 >     HIDE_IDLE_FROM_OPERS = 348,
307 >     MODULE = 349,
308 >     MODULES = 350,
309 >     NAME = 351,
310 >     NEED_PASSWORD = 352,
311 >     NETWORK_DESC = 353,
312 >     NETWORK_NAME = 354,
313 >     NICK = 355,
314 >     NO_CREATE_ON_SPLIT = 356,
315 >     NO_JOIN_ON_SPLIT = 357,
316 >     NO_OPER_FLOOD = 358,
317 >     NO_TILDE = 359,
318 >     NUMBER = 360,
319 >     NUMBER_PER_CIDR = 361,
320 >     NUMBER_PER_IP = 362,
321 >     OPERATOR = 363,
322 >     OPERS_BYPASS_CALLERID = 364,
323 >     OPER_ONLY_UMODES = 365,
324 >     OPER_PASS_RESV = 366,
325 >     OPER_UMODES = 367,
326 >     JOIN_FLOOD_COUNT = 368,
327 >     JOIN_FLOOD_TIME = 369,
328 >     PACE_WAIT = 370,
329 >     PACE_WAIT_SIMPLE = 371,
330 >     PASSWORD = 372,
331 >     PATH = 373,
332 >     PING_COOKIE = 374,
333 >     PING_TIME = 375,
334 >     PORT = 376,
335 >     QSTRING = 377,
336 >     REASON = 378,
337 >     REDIRPORT = 379,
338 >     REDIRSERV = 380,
339 >     REHASH = 381,
340 >     REMOTE = 382,
341 >     REMOTEBAN = 383,
342 >     RSA_PRIVATE_KEY_FILE = 384,
343 >     RSA_PUBLIC_KEY_FILE = 385,
344 >     SSL_CERTIFICATE_FILE = 386,
345 >     SSL_DH_PARAM_FILE = 387,
346 >     T_SSL_CLIENT_METHOD = 388,
347 >     T_SSL_SERVER_METHOD = 389,
348 >     T_SSLV3 = 390,
349 >     T_TLSV1 = 391,
350 >     RESV = 392,
351 >     RESV_EXEMPT = 393,
352 >     SECONDS = 394,
353 >     MINUTES = 395,
354 >     HOURS = 396,
355 >     DAYS = 397,
356 >     WEEKS = 398,
357 >     MONTHS = 399,
358 >     YEARS = 400,
359 >     SENDQ = 401,
360 >     SEND_PASSWORD = 402,
361 >     SERVERHIDE = 403,
362 >     SERVERINFO = 404,
363 >     IRCD_SID = 405,
364 >     TKLINE_EXPIRE_NOTICES = 406,
365 >     T_SHARED = 407,
366 >     T_CLUSTER = 408,
367 >     TYPE = 409,
368 >     SHORT_MOTD = 410,
369 >     SPOOF = 411,
370 >     SPOOF_NOTICE = 412,
371 >     STATS_E_DISABLED = 413,
372 >     STATS_I_OPER_ONLY = 414,
373 >     STATS_K_OPER_ONLY = 415,
374 >     STATS_O_OPER_ONLY = 416,
375 >     STATS_P_OPER_ONLY = 417,
376 >     TBOOL = 418,
377 >     TMASKED = 419,
378 >     TS_MAX_DELTA = 420,
379 >     TS_WARN_DELTA = 421,
380 >     TWODOTS = 422,
381 >     T_ALL = 423,
382 >     T_BOTS = 424,
383 >     T_SOFTCALLERID = 425,
384 >     T_CALLERID = 426,
385 >     T_CCONN = 427,
386 >     T_CCONN_FULL = 428,
387 >     T_SSL_CIPHER_LIST = 429,
388 >     T_DEAF = 430,
389 >     T_DEBUG = 431,
390 >     T_DLINE = 432,
391 >     T_EXTERNAL = 433,
392 >     T_FARCONNECT = 434,
393 >     T_FULL = 435,
394 >     T_INVISIBLE = 436,
395 >     T_IPV4 = 437,
396 >     T_IPV6 = 438,
397 >     T_LOCOPS = 439,
398 >     T_MAX_CLIENTS = 440,
399 >     T_NCHANGE = 441,
400 >     T_NONONREG = 442,
401 >     T_OPERWALL = 443,
402 >     T_RECVQ = 444,
403 >     T_REJ = 445,
404 >     T_SERVER = 446,
405 >     T_SERVNOTICE = 447,
406 >     T_SET = 448,
407 >     T_SKILL = 449,
408 >     T_SPY = 450,
409 >     T_SSL = 451,
410 >     T_UMODES = 452,
411 >     T_UNAUTH = 453,
412 >     T_UNDLINE = 454,
413 >     T_UNLIMITED = 455,
414 >     T_UNRESV = 456,
415 >     T_UNXLINE = 457,
416 >     T_GLOBOPS = 458,
417 >     T_WALLOP = 459,
418 >     T_WEBIRC = 460,
419 >     T_RESTART = 461,
420 >     T_SERVICE = 462,
421 >     T_SERVICES_NAME = 463,
422 >     THROTTLE_TIME = 464,
423 >     TRUE_NO_OPER_FLOOD = 465,
424 >     UNKLINE = 466,
425 >     USER = 467,
426 >     USE_EGD = 468,
427 >     USE_LOGGING = 469,
428 >     VHOST = 470,
429 >     VHOST6 = 471,
430 >     XLINE = 472,
431 >     WARN_NO_NLINE = 473,
432 >     T_SIZE = 474,
433 >     T_FILE = 475
434     };
435   #endif
436   /* Tokens.  */
437   #define ACCEPT_PASSWORD 258
438 < #define ACTION 259
439 < #define ADMIN 260
440 < #define AFTYPE 261
441 < #define T_ALLOW 262
442 < #define ANTI_NICK_FLOOD 263
443 < #define ANTI_SPAM_EXIT_MESSAGE_TIME 264
444 < #define AUTOCONN 265
445 < #define T_BLOCK 266
446 < #define BURST_AWAY 267
447 < #define BYTES 268
448 < #define KBYTES 269
449 < #define MBYTES 270
450 < #define GBYTES 271
451 < #define TBYTES 272
452 < #define CALLER_ID_WAIT 273
453 < #define CAN_FLOOD 274
454 < #define CHANNEL 275
455 < #define CIDR_BITLEN_IPV4 276
456 < #define CIDR_BITLEN_IPV6 277
457 < #define CLASS 278
458 < #define CONNECT 279
459 < #define CONNECTFREQ 280
460 < #define DEFAULT_FLOODCOUNT 281
461 < #define DEFAULT_SPLIT_SERVER_COUNT 282
462 < #define DEFAULT_SPLIT_USER_COUNT 283
463 < #define DENY 284
464 < #define DESCRIPTION 285
465 < #define DIE 286
466 < #define DISABLE_AUTH 287
467 < #define DISABLE_FAKE_CHANNELS 288
468 < #define DISABLE_HIDDEN 289
469 < #define DISABLE_LOCAL_CHANNELS 290
470 < #define DISABLE_REMOTE_COMMANDS 291
471 < #define DOTS_IN_IDENT 292
472 < #define DURATION 293
473 < #define EGDPOOL_PATH 294
474 < #define EMAIL 295
475 < #define ENABLE 296
476 < #define ENCRYPTED 297
477 < #define EXCEED_LIMIT 298
478 < #define EXEMPT 299
479 < #define FAILED_OPER_NOTICE 300
480 < #define IRCD_FLAGS 301
481 < #define FLATTEN_LINKS 302
482 < #define GECOS 303
483 < #define GENERAL 304
484 < #define GLINE 305
485 < #define GLINES 306
486 < #define GLINE_EXEMPT 307
487 < #define GLINE_TIME 308
488 < #define GLINE_MIN_CIDR 309
489 < #define GLINE_MIN_CIDR6 310
490 < #define GLOBAL_KILL 311
491 < #define IRCD_AUTH 312
492 < #define NEED_IDENT 313
493 < #define HAVENT_READ_CONF 314
494 < #define HIDDEN 315
495 < #define HIDDEN_NAME 316
496 < #define HIDE_SERVER_IPS 317
497 < #define HIDE_SERVERS 318
498 < #define HIDE_SPOOF_IPS 319
499 < #define HOST 320
500 < #define HUB 321
501 < #define HUB_MASK 322
502 < #define IGNORE_BOGUS_TS 323
503 < #define INVISIBLE_ON_CONNECT 324
504 < #define IP 325
505 < #define KILL 326
506 < #define KILL_CHASE_TIME_LIMIT 327
507 < #define KLINE 328
508 < #define KLINE_EXEMPT 329
509 < #define KLINE_REASON 330
510 < #define KLINE_WITH_REASON 331
511 < #define KNOCK_DELAY 332
512 < #define KNOCK_DELAY_CHANNEL 333
513 < #define LEAF_MASK 334
514 < #define LINKS_DELAY 335
515 < #define LISTEN 336
516 < #define T_LOG 337
517 < #define MAX_ACCEPT 338
518 < #define MAX_BANS 339
519 < #define MAX_CHANS_PER_USER 340
520 < #define MAX_GLOBAL 341
521 < #define MAX_IDENT 342
522 < #define MAX_LOCAL 343
523 < #define MAX_NICK_CHANGES 344
524 < #define MAX_NICK_TIME 345
525 < #define MAX_NUMBER 346
526 < #define MAX_TARGETS 347
527 < #define MAX_WATCH 348
528 < #define MESSAGE_LOCALE 349
529 < #define MIN_NONWILDCARD 350
530 < #define MIN_NONWILDCARD_SIMPLE 351
531 < #define MODULE 352
532 < #define MODULES 353
533 < #define NAME 354
534 < #define NEED_PASSWORD 355
535 < #define NETWORK_DESC 356
536 < #define NETWORK_NAME 357
537 < #define NICK 358
538 < #define NICK_CHANGES 359
539 < #define NO_CREATE_ON_SPLIT 360
540 < #define NO_JOIN_ON_SPLIT 361
541 < #define NO_OPER_FLOOD 362
542 < #define NO_TILDE 363
543 < #define NUMBER 364
544 < #define NUMBER_PER_IDENT 365
545 < #define NUMBER_PER_CIDR 366
546 < #define NUMBER_PER_IP 367
547 < #define NUMBER_PER_IP_GLOBAL 368
548 < #define OPERATOR 369
549 < #define OPERS_BYPASS_CALLERID 370
550 < #define OPER_ONLY_UMODES 371
551 < #define OPER_PASS_RESV 372
552 < #define OPER_SPY_T 373
553 < #define OPER_UMODES 374
554 < #define JOIN_FLOOD_COUNT 375
555 < #define JOIN_FLOOD_TIME 376
556 < #define PACE_WAIT 377
557 < #define PACE_WAIT_SIMPLE 378
558 < #define PASSWORD 379
559 < #define PATH 380
560 < #define PING_COOKIE 381
561 < #define PING_TIME 382
562 < #define PING_WARNING 383
563 < #define PORT 384
564 < #define QSTRING 385
565 < #define QUIET_ON_BAN 386
566 < #define REASON 387
567 < #define REDIRPORT 388
568 < #define REDIRSERV 389
569 < #define REGEX_T 390
570 < #define REHASH 391
571 < #define TREJECT_HOLD_TIME 392
572 < #define REMOTE 393
573 < #define REMOTEBAN 394
574 < #define RESTRICT_CHANNELS 395
575 < #define RESTRICTED 396
576 < #define RSA_PRIVATE_KEY_FILE 397
577 < #define RSA_PUBLIC_KEY_FILE 398
578 < #define SSL_CERTIFICATE_FILE 399
579 < #define SSL_DH_PARAM_FILE 400
580 < #define T_SSL_CLIENT_METHOD 401
581 < #define T_SSL_SERVER_METHOD 402
582 < #define T_SSLV3 403
583 < #define T_TLSV1 404
584 < #define RESV 405
585 < #define RESV_EXEMPT 406
586 < #define SECONDS 407
587 < #define MINUTES 408
588 < #define HOURS 409
589 < #define DAYS 410
590 < #define WEEKS 411
591 < #define SENDQ 412
592 < #define SEND_PASSWORD 413
593 < #define SERVERHIDE 414
594 < #define SERVERINFO 415
595 < #define IRCD_SID 416
596 < #define TKLINE_EXPIRE_NOTICES 417
597 < #define T_SHARED 418
598 < #define T_CLUSTER 419
599 < #define TYPE 420
600 < #define SHORT_MOTD 421
601 < #define SILENT 422
602 < #define SPOOF 423
603 < #define SPOOF_NOTICE 424
604 < #define STATS_E_DISABLED 425
605 < #define STATS_I_OPER_ONLY 426
606 < #define STATS_K_OPER_ONLY 427
607 < #define STATS_O_OPER_ONLY 428
608 < #define STATS_P_OPER_ONLY 429
609 < #define TBOOL 430
610 < #define TMASKED 431
611 < #define T_REJECT 432
612 < #define TS_MAX_DELTA 433
613 < #define TS_WARN_DELTA 434
614 < #define TWODOTS 435
615 < #define T_ALL 436
616 < #define T_BOTS 437
617 < #define T_SOFTCALLERID 438
618 < #define T_CALLERID 439
619 < #define T_CCONN 440
620 < #define T_CCONN_FULL 441
621 < #define T_SSL_CIPHER_LIST 442
622 < #define T_CLIENT_FLOOD 443
623 < #define T_DEAF 444
624 < #define T_DEBUG 445
625 < #define T_DLINE 446
626 < #define T_DRONE 447
627 < #define T_EXTERNAL 448
628 < #define T_FULL 449
629 < #define T_INVISIBLE 450
630 < #define T_IPV4 451
631 < #define T_IPV6 452
632 < #define T_LOCOPS 453
633 < #define T_MAX_CLIENTS 454
634 < #define T_NCHANGE 455
635 < #define T_OPERWALL 456
636 < #define T_REJ 457
637 < #define T_SERVER 458
638 < #define T_SERVNOTICE 459
639 < #define T_SKILL 460
640 < #define T_SPY 461
641 < #define T_SSL 462
642 < #define T_UMODES 463
643 < #define T_UNAUTH 464
644 < #define T_UNDLINE 465
645 < #define T_UNLIMITED 466
646 < #define T_UNRESV 467
647 < #define T_UNXLINE 468
648 < #define T_GLOBOPS 469
649 < #define T_WALLOP 470
650 < #define T_RESTART 471
651 < #define T_SERVICE 472
652 < #define T_SERVICES_NAME 473
653 < #define THROTTLE_TIME 474
654 < #define TOPICBURST 475
649 < #define TRUE_NO_OPER_FLOOD 476
650 < #define TKLINE 477
651 < #define TXLINE 478
652 < #define TRESV 479
653 < #define UNKLINE 480
654 < #define USER 481
655 < #define USE_EGD 482
656 < #define USE_EXCEPT 483
657 < #define USE_INVEX 484
658 < #define USE_KNOCK 485
659 < #define USE_LOGGING 486
660 < #define USE_WHOIS_ACTUALLY 487
661 < #define VHOST 488
662 < #define VHOST6 489
663 < #define XLINE 490
664 < #define WARN 491
665 < #define WARN_NO_NLINE 492
666 < #define T_SIZE 493
667 < #define T_FILE 494
668 <
438 > #define ADMIN 259
439 > #define AFTYPE 260
440 > #define ANTI_NICK_FLOOD 261
441 > #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
442 > #define AUTOCONN 263
443 > #define BYTES 264
444 > #define KBYTES 265
445 > #define MBYTES 266
446 > #define CALLER_ID_WAIT 267
447 > #define CAN_FLOOD 268
448 > #define CHANNEL 269
449 > #define CIDR_BITLEN_IPV4 270
450 > #define CIDR_BITLEN_IPV6 271
451 > #define CLASS 272
452 > #define CONNECT 273
453 > #define CONNECTFREQ 274
454 > #define DEFAULT_FLOODCOUNT 275
455 > #define DEFAULT_SPLIT_SERVER_COUNT 276
456 > #define DEFAULT_SPLIT_USER_COUNT 277
457 > #define DENY 278
458 > #define DESCRIPTION 279
459 > #define DIE 280
460 > #define DISABLE_AUTH 281
461 > #define DISABLE_FAKE_CHANNELS 282
462 > #define DISABLE_REMOTE_COMMANDS 283
463 > #define DOTS_IN_IDENT 284
464 > #define EGDPOOL_PATH 285
465 > #define EMAIL 286
466 > #define ENCRYPTED 287
467 > #define EXCEED_LIMIT 288
468 > #define EXEMPT 289
469 > #define FAILED_OPER_NOTICE 290
470 > #define IRCD_FLAGS 291
471 > #define FLATTEN_LINKS 292
472 > #define GECOS 293
473 > #define GENERAL 294
474 > #define GLINE 295
475 > #define GLINE_DURATION 296
476 > #define GLINE_ENABLE 297
477 > #define GLINE_EXEMPT 298
478 > #define GLINE_REQUEST_DURATION 299
479 > #define GLINE_MIN_CIDR 300
480 > #define GLINE_MIN_CIDR6 301
481 > #define GLOBAL_KILL 302
482 > #define IRCD_AUTH 303
483 > #define NEED_IDENT 304
484 > #define HAVENT_READ_CONF 305
485 > #define HIDDEN 306
486 > #define HIDDEN_NAME 307
487 > #define HIDE_SERVER_IPS 308
488 > #define HIDE_SERVERS 309
489 > #define HIDE_SERVICES 310
490 > #define HIDE_SPOOF_IPS 311
491 > #define HOST 312
492 > #define HUB 313
493 > #define HUB_MASK 314
494 > #define IGNORE_BOGUS_TS 315
495 > #define INVISIBLE_ON_CONNECT 316
496 > #define IP 317
497 > #define KILL 318
498 > #define KILL_CHASE_TIME_LIMIT 319
499 > #define KLINE 320
500 > #define KLINE_EXEMPT 321
501 > #define KNOCK_DELAY 322
502 > #define KNOCK_DELAY_CHANNEL 323
503 > #define LEAF_MASK 324
504 > #define LINKS_DELAY 325
505 > #define LISTEN 326
506 > #define T_LOG 327
507 > #define MASK 328
508 > #define MAX_ACCEPT 329
509 > #define MAX_BANS 330
510 > #define MAX_CHANS_PER_OPER 331
511 > #define MAX_CHANS_PER_USER 332
512 > #define MAX_GLOBAL 333
513 > #define MAX_IDENT 334
514 > #define MAX_LOCAL 335
515 > #define MAX_NICK_CHANGES 336
516 > #define MAX_NICK_LENGTH 337
517 > #define MAX_NICK_TIME 338
518 > #define MAX_NUMBER 339
519 > #define MAX_TARGETS 340
520 > #define MAX_TOPIC_LENGTH 341
521 > #define MAX_WATCH 342
522 > #define MIN_NONWILDCARD 343
523 > #define MIN_NONWILDCARD_SIMPLE 344
524 > #define MIN_IDLE 345
525 > #define MAX_IDLE 346
526 > #define RANDOM_IDLE 347
527 > #define HIDE_IDLE_FROM_OPERS 348
528 > #define MODULE 349
529 > #define MODULES 350
530 > #define NAME 351
531 > #define NEED_PASSWORD 352
532 > #define NETWORK_DESC 353
533 > #define NETWORK_NAME 354
534 > #define NICK 355
535 > #define NO_CREATE_ON_SPLIT 356
536 > #define NO_JOIN_ON_SPLIT 357
537 > #define NO_OPER_FLOOD 358
538 > #define NO_TILDE 359
539 > #define NUMBER 360
540 > #define NUMBER_PER_CIDR 361
541 > #define NUMBER_PER_IP 362
542 > #define OPERATOR 363
543 > #define OPERS_BYPASS_CALLERID 364
544 > #define OPER_ONLY_UMODES 365
545 > #define OPER_PASS_RESV 366
546 > #define OPER_UMODES 367
547 > #define JOIN_FLOOD_COUNT 368
548 > #define JOIN_FLOOD_TIME 369
549 > #define PACE_WAIT 370
550 > #define PACE_WAIT_SIMPLE 371
551 > #define PASSWORD 372
552 > #define PATH 373
553 > #define PING_COOKIE 374
554 > #define PING_TIME 375
555 > #define PORT 376
556 > #define QSTRING 377
557 > #define REASON 378
558 > #define REDIRPORT 379
559 > #define REDIRSERV 380
560 > #define REHASH 381
561 > #define REMOTE 382
562 > #define REMOTEBAN 383
563 > #define RSA_PRIVATE_KEY_FILE 384
564 > #define RSA_PUBLIC_KEY_FILE 385
565 > #define SSL_CERTIFICATE_FILE 386
566 > #define SSL_DH_PARAM_FILE 387
567 > #define T_SSL_CLIENT_METHOD 388
568 > #define T_SSL_SERVER_METHOD 389
569 > #define T_SSLV3 390
570 > #define T_TLSV1 391
571 > #define RESV 392
572 > #define RESV_EXEMPT 393
573 > #define SECONDS 394
574 > #define MINUTES 395
575 > #define HOURS 396
576 > #define DAYS 397
577 > #define WEEKS 398
578 > #define MONTHS 399
579 > #define YEARS 400
580 > #define SENDQ 401
581 > #define SEND_PASSWORD 402
582 > #define SERVERHIDE 403
583 > #define SERVERINFO 404
584 > #define IRCD_SID 405
585 > #define TKLINE_EXPIRE_NOTICES 406
586 > #define T_SHARED 407
587 > #define T_CLUSTER 408
588 > #define TYPE 409
589 > #define SHORT_MOTD 410
590 > #define SPOOF 411
591 > #define SPOOF_NOTICE 412
592 > #define STATS_E_DISABLED 413
593 > #define STATS_I_OPER_ONLY 414
594 > #define STATS_K_OPER_ONLY 415
595 > #define STATS_O_OPER_ONLY 416
596 > #define STATS_P_OPER_ONLY 417
597 > #define TBOOL 418
598 > #define TMASKED 419
599 > #define TS_MAX_DELTA 420
600 > #define TS_WARN_DELTA 421
601 > #define TWODOTS 422
602 > #define T_ALL 423
603 > #define T_BOTS 424
604 > #define T_SOFTCALLERID 425
605 > #define T_CALLERID 426
606 > #define T_CCONN 427
607 > #define T_CCONN_FULL 428
608 > #define T_SSL_CIPHER_LIST 429
609 > #define T_DEAF 430
610 > #define T_DEBUG 431
611 > #define T_DLINE 432
612 > #define T_EXTERNAL 433
613 > #define T_FARCONNECT 434
614 > #define T_FULL 435
615 > #define T_INVISIBLE 436
616 > #define T_IPV4 437
617 > #define T_IPV6 438
618 > #define T_LOCOPS 439
619 > #define T_MAX_CLIENTS 440
620 > #define T_NCHANGE 441
621 > #define T_NONONREG 442
622 > #define T_OPERWALL 443
623 > #define T_RECVQ 444
624 > #define T_REJ 445
625 > #define T_SERVER 446
626 > #define T_SERVNOTICE 447
627 > #define T_SET 448
628 > #define T_SKILL 449
629 > #define T_SPY 450
630 > #define T_SSL 451
631 > #define T_UMODES 452
632 > #define T_UNAUTH 453
633 > #define T_UNDLINE 454
634 > #define T_UNLIMITED 455
635 > #define T_UNRESV 456
636 > #define T_UNXLINE 457
637 > #define T_GLOBOPS 458
638 > #define T_WALLOP 459
639 > #define T_WEBIRC 460
640 > #define T_RESTART 461
641 > #define T_SERVICE 462
642 > #define T_SERVICES_NAME 463
643 > #define THROTTLE_TIME 464
644 > #define TRUE_NO_OPER_FLOOD 465
645 > #define UNKLINE 466
646 > #define USER 467
647 > #define USE_EGD 468
648 > #define USE_LOGGING 469
649 > #define VHOST 470
650 > #define VHOST6 471
651 > #define XLINE 472
652 > #define WARN_NO_NLINE 473
653 > #define T_SIZE 474
654 > #define T_FILE 475
655  
656  
657  
658   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
659   typedef union YYSTYPE
660   {
661 <
662 < /* Line 295 of yacc.c  */
677 < #line 110 "conf_parser.y"
661 > /* Line 387 of yacc.c  */
662 > #line 138 "conf_parser.y"
663  
664    int number;
665    char *string;
666  
667  
668 <
669 < /* Line 295 of yacc.c  */
685 < #line 686 "conf_parser.c"
668 > /* Line 387 of yacc.c  */
669 > #line 670 "conf_parser.c"
670   } YYSTYPE;
671   # define YYSTYPE_IS_TRIVIAL 1
672   # define yystype YYSTYPE /* obsolescent; will be withdrawn */
673   # define YYSTYPE_IS_DECLARED 1
674   #endif
675  
676 + extern YYSTYPE yylval;
677  
678 < /* Copy the second part of user declarations.  */
678 > #ifdef YYPARSE_PARAM
679 > #if defined __STDC__ || defined __cplusplus
680 > int yyparse (void *YYPARSE_PARAM);
681 > #else
682 > int yyparse ();
683 > #endif
684 > #else /* ! YYPARSE_PARAM */
685 > #if defined __STDC__ || defined __cplusplus
686 > int yyparse (void);
687 > #else
688 > int yyparse ();
689 > #endif
690 > #endif /* ! YYPARSE_PARAM */
691  
692 + #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
693  
694 < /* Line 345 of yacc.c  */
694 > /* Copy the second part of user declarations.  */
695 >
696 > /* Line 390 of yacc.c  */
697   #line 698 "conf_parser.c"
698  
699   #ifdef short
# Line 747 | Line 747 | typedef short int yytype_int16;
747   # if defined YYENABLE_NLS && YYENABLE_NLS
748   #  if ENABLE_NLS
749   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
750 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
750 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
751   #  endif
752   # endif
753   # ifndef YY_
754 < #  define YY_(msgid) msgid
754 > #  define YY_(Msgid) Msgid
755 > # endif
756 > #endif
757 >
758 > #ifndef __attribute__
759 > /* This feature is available in gcc versions 2.5 and later.  */
760 > # if (! defined __GNUC__ || __GNUC__ < 2 \
761 >      || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
762 > #  define __attribute__(Spec) /* empty */
763   # endif
764   #endif
765  
766   /* Suppress unused-variable warnings by "using" E.  */
767   #if ! defined lint || defined __GNUC__
768 < # define YYUSE(e) ((void) (e))
768 > # define YYUSE(E) ((void) (E))
769   #else
770 < # define YYUSE(e) /* empty */
770 > # define YYUSE(E) /* empty */
771   #endif
772  
773 +
774   /* Identity function, used to suppress warnings about constant conditions.  */
775   #ifndef lint
776 < # define YYID(n) (n)
776 > # define YYID(N) (N)
777   #else
778   #if (defined __STDC__ || defined __C99__FUNC__ \
779       || defined __cplusplus || defined _MSC_VER)
# Line 914 | Line 923 | union yyalloc
923   /* YYFINAL -- State number of the termination state.  */
924   #define YYFINAL  2
925   /* YYLAST -- Last index in YYTABLE.  */
926 < #define YYLAST   1256
926 > #define YYLAST   1206
927  
928   /* YYNTOKENS -- Number of terminals.  */
929 < #define YYNTOKENS  245
929 > #define YYNTOKENS  226
930   /* YYNNTS -- Number of nonterminals.  */
931 < #define YYNNTS  304
931 > #define YYNNTS  280
932   /* YYNRULES -- Number of rules.  */
933 < #define YYNRULES  666
933 > #define YYNRULES  631
934   /* YYNRULES -- Number of states.  */
935 < #define YYNSTATES  1306
935 > #define YYNSTATES  1233
936  
937   /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
938   #define YYUNDEFTOK  2
939 < #define YYMAXUTOK   494
939 > #define YYMAXUTOK   475
940  
941   #define YYTRANSLATE(YYX)                                                \
942    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
# Line 939 | Line 948 | static const yytype_uint8 yytranslate[]
948         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
949         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
950         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
951 <       2,     2,     2,     2,   244,     2,     2,     2,     2,     2,
952 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   240,
953 <       2,   243,     2,     2,     2,     2,     2,     2,     2,     2,
951 >       2,     2,     2,     2,   225,     2,     2,     2,     2,     2,
952 >       2,     2,     2,     2,     2,     2,     2,     2,     2,   221,
953 >       2,   224,     2,     2,     2,     2,     2,     2,     2,     2,
954         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
955         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
956         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
957         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
958         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
959 <       2,     2,     2,   242,     2,   241,     2,     2,     2,     2,
959 >       2,     2,     2,   223,     2,   222,     2,     2,     2,     2,
960         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
961         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
962         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 982 | Line 991 | static const yytype_uint8 yytranslate[]
991       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
992       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
993       205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
994 <     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
986 <     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
987 <     235,   236,   237,   238,   239
994 >     215,   216,   217,   218,   219,   220
995   };
996  
997   #if YYDEBUG
# Line 994 | Line 1001 | static const yytype_uint16 yyprhs[] =
1001   {
1002         0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
1003        19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
1004 <      39,    41,    43,    45,    47,    49,    52,    55,    56,    58,
1005 <      61,    65,    69,    73,    77,    81,    82,    84,    87,    91,
1006 <      95,    99,   105,   108,   110,   112,   114,   117,   122,   127,
1007 <     133,   136,   138,   140,   142,   144,   146,   148,   150,   152,
1008 <     154,   156,   158,   160,   162,   164,   166,   168,   171,   176,
1009 <     181,   185,   187,   189,   191,   195,   197,   199,   201,   206,
1010 <     211,   216,   221,   226,   231,   236,   241,   246,   251,   256,
1011 <     261,   266,   272,   275,   277,   279,   281,   283,   286,   291,
1012 <     296,   301,   307,   310,   312,   314,   316,   319,   324,   325,
1013 <     332,   335,   337,   339,   341,   343,   346,   351,   356,   361,
1014 <     362,   368,   372,   374,   376,   378,   380,   382,   384,   386,
1015 <     388,   389,   396,   399,   401,   403,   405,   407,   409,   411,
1016 <     413,   415,   417,   420,   425,   430,   435,   440,   445,   450,
1017 <     451,   457,   461,   463,   465,   467,   469,   471,   473,   475,
1018 <     477,   479,   481,   483,   485,   487,   489,   491,   493,   495,
1019 <     497,   499,   501,   503,   504,   510,   514,   516,   518,   520,
1020 <     522,   524,   526,   528,   530,   532,   534,   536,   538,   540,
1021 <     542,   544,   546,   548,   550,   552,   553,   560,   563,   565,
1022 <     567,   569,   571,   573,   575,   577,   579,   581,   583,   585,
1023 <     587,   589,   591,   594,   599,   604,   609,   614,   619,   624,
1024 <     629,   634,   639,   644,   649,   654,   659,   660,   667,   668,
1025 <     674,   678,   680,   682,   684,   686,   689,   691,   693,   695,
1026 <     697,   699,   702,   703,   709,   713,   715,   717,   721,   726,
1027 <     731,   732,   739,   742,   744,   746,   748,   750,   752,   754,
1028 <     756,   758,   760,   763,   768,   773,   778,   783,   784,   790,
1029 <     794,   796,   798,   800,   802,   804,   806,   808,   810,   812,
1030 <     814,   819,   824,   829,   830,   837,   840,   842,   844,   846,
1031 <     848,   851,   856,   861,   866,   872,   875,   877,   879,   881,
1032 <     886,   887,   894,   897,   899,   901,   903,   905,   908,   913,
1033 <     918,   919,   925,   929,   931,   933,   935,   937,   939,   941,
1034 <     943,   945,   947,   949,   951,   952,   959,   962,   964,   966,
1035 <     968,   971,   976,   977,   983,   987,   989,   991,   993,   995,
1036 <     997,   999,  1001,  1003,  1005,  1007,  1009,  1010,  1017,  1020,
1037 <    1022,  1024,  1026,  1028,  1030,  1032,  1034,  1036,  1038,  1040,
1038 <    1042,  1044,  1046,  1048,  1051,  1056,  1061,  1066,  1071,  1076,
1039 <    1081,  1086,  1091,  1092,  1098,  1102,  1104,  1106,  1108,  1110,
1040 <    1112,  1117,  1122,  1127,  1132,  1137,  1138,  1145,  1146,  1152,
1041 <    1156,  1158,  1160,  1163,  1165,  1167,  1169,  1171,  1173,  1178,
1042 <    1183,  1184,  1191,  1194,  1196,  1198,  1200,  1202,  1207,  1212,
1043 <    1218,  1221,  1223,  1225,  1227,  1232,  1233,  1240,  1241,  1247,
1044 <    1251,  1253,  1255,  1258,  1260,  1262,  1264,  1266,  1268,  1273,
1045 <    1278,  1284,  1287,  1289,  1291,  1293,  1295,  1297,  1299,  1301,
1046 <    1303,  1305,  1307,  1309,  1311,  1313,  1315,  1317,  1319,  1321,
1047 <    1323,  1325,  1327,  1329,  1331,  1333,  1335,  1337,  1339,  1341,
1048 <    1343,  1345,  1347,  1349,  1351,  1353,  1355,  1357,  1359,  1361,
1049 <    1363,  1365,  1367,  1369,  1371,  1373,  1375,  1377,  1379,  1381,
1050 <    1383,  1385,  1387,  1389,  1391,  1393,  1398,  1403,  1408,  1413,
1051 <    1418,  1423,  1428,  1433,  1438,  1443,  1448,  1453,  1458,  1463,
1052 <    1468,  1473,  1478,  1483,  1488,  1493,  1498,  1503,  1508,  1513,
1053 <    1518,  1523,  1528,  1533,  1538,  1543,  1548,  1553,  1558,  1563,
1054 <    1568,  1573,  1578,  1583,  1588,  1593,  1598,  1603,  1608,  1613,
1055 <    1618,  1623,  1628,  1629,  1635,  1639,  1641,  1643,  1645,  1647,
1056 <    1649,  1651,  1653,  1655,  1657,  1659,  1661,  1663,  1665,  1667,
1057 <    1669,  1671,  1673,  1675,  1677,  1679,  1681,  1682,  1688,  1692,
1058 <    1694,  1696,  1698,  1700,  1702,  1704,  1706,  1708,  1710,  1712,
1059 <    1714,  1716,  1718,  1720,  1722,  1724,  1726,  1728,  1730,  1732,
1060 <    1734,  1739,  1744,  1749,  1754,  1755,  1762,  1765,  1767,  1769,
1061 <    1771,  1773,  1775,  1777,  1779,  1781,  1786,  1791,  1792,  1798,
1062 <    1802,  1804,  1806,  1808,  1813,  1818,  1819,  1825,  1829,  1831,
1063 <    1833,  1835,  1841,  1844,  1846,  1848,  1850,  1852,  1854,  1856,
1064 <    1858,  1860,  1862,  1864,  1866,  1868,  1870,  1872,  1874,  1876,
1065 <    1878,  1880,  1882,  1887,  1892,  1897,  1902,  1907,  1912,  1917,
1059 <    1922,  1927,  1932,  1937,  1942,  1947,  1952,  1957,  1962,  1967,
1060 <    1973,  1976,  1978,  1980,  1982,  1984,  1986,  1988,  1990,  1992,
1061 <    1994,  1999,  2004,  2009,  2014,  2019,  2024
1004 >      39,    41,    43,    45,    47,    50,    53,    54,    56,    59,
1005 >      63,    67,    71,    75,    79,    83,    87,    88,    90,    93,
1006 >      97,   101,   105,   111,   114,   116,   118,   120,   123,   128,
1007 >     133,   139,   142,   144,   146,   148,   150,   152,   154,   156,
1008 >     158,   160,   162,   164,   166,   168,   170,   172,   174,   176,
1009 >     178,   181,   186,   191,   195,   197,   199,   201,   205,   207,
1010 >     209,   211,   216,   221,   226,   231,   236,   241,   246,   251,
1011 >     256,   261,   266,   271,   276,   281,   286,   292,   295,   297,
1012 >     299,   301,   303,   306,   311,   316,   321,   327,   330,   332,
1013 >     334,   336,   339,   344,   345,   352,   355,   357,   359,   361,
1014 >     363,   366,   371,   376,   381,   382,   388,   392,   394,   396,
1015 >     398,   400,   402,   404,   406,   408,   409,   416,   419,   421,
1016 >     423,   425,   427,   429,   431,   433,   435,   437,   440,   445,
1017 >     450,   455,   460,   465,   470,   471,   477,   481,   483,   485,
1018 >     487,   489,   491,   493,   495,   497,   499,   501,   503,   505,
1019 >     507,   509,   511,   513,   515,   517,   519,   521,   523,   525,
1020 >     527,   528,   534,   538,   540,   542,   544,   546,   548,   550,
1021 >     552,   554,   556,   558,   560,   562,   564,   566,   568,   570,
1022 >     572,   574,   575,   582,   585,   587,   589,   591,   593,   595,
1023 >     597,   599,   601,   603,   605,   607,   609,   611,   613,   615,
1024 >     617,   619,   622,   627,   632,   637,   642,   647,   652,   657,
1025 >     662,   667,   672,   677,   682,   687,   692,   697,   698,   704,
1026 >     708,   710,   712,   714,   715,   722,   723,   729,   733,   735,
1027 >     737,   739,   741,   744,   746,   748,   750,   752,   754,   757,
1028 >     758,   764,   768,   770,   772,   776,   781,   786,   787,   794,
1029 >     797,   799,   801,   803,   805,   807,   809,   811,   813,   815,
1030 >     818,   823,   828,   833,   838,   839,   845,   849,   851,   853,
1031 >     855,   857,   859,   861,   863,   865,   867,   869,   871,   876,
1032 >     881,   886,   887,   894,   897,   899,   901,   903,   905,   908,
1033 >     913,   918,   923,   929,   932,   934,   936,   938,   943,   944,
1034 >     951,   954,   956,   958,   960,   962,   965,   970,   975,   976,
1035 >     982,   986,   988,   990,   992,   994,   996,   998,  1000,  1002,
1036 >    1004,  1006,  1008,  1009,  1016,  1019,  1021,  1023,  1025,  1028,
1037 >    1033,  1034,  1040,  1044,  1046,  1048,  1050,  1052,  1054,  1056,
1038 >    1058,  1060,  1062,  1064,  1066,  1067,  1074,  1077,  1079,  1081,
1039 >    1083,  1085,  1087,  1089,  1091,  1093,  1095,  1097,  1099,  1101,
1040 >    1103,  1105,  1108,  1113,  1118,  1123,  1128,  1133,  1138,  1143,
1041 >    1148,  1149,  1155,  1159,  1161,  1163,  1165,  1170,  1175,  1180,
1042 >    1185,  1190,  1191,  1198,  1201,  1203,  1205,  1207,  1209,  1214,
1043 >    1219,  1220,  1227,  1230,  1232,  1234,  1236,  1238,  1243,  1248,
1044 >    1254,  1257,  1259,  1261,  1263,  1268,  1269,  1276,  1279,  1281,
1045 >    1283,  1285,  1287,  1292,  1297,  1303,  1306,  1308,  1310,  1312,
1046 >    1314,  1316,  1318,  1320,  1322,  1324,  1326,  1328,  1330,  1332,
1047 >    1334,  1336,  1338,  1340,  1342,  1344,  1346,  1348,  1350,  1352,
1048 >    1354,  1356,  1358,  1360,  1362,  1364,  1366,  1368,  1370,  1372,
1049 >    1374,  1376,  1378,  1380,  1382,  1384,  1386,  1388,  1390,  1392,
1050 >    1394,  1396,  1398,  1400,  1402,  1404,  1406,  1411,  1416,  1421,
1051 >    1426,  1431,  1436,  1441,  1446,  1451,  1456,  1461,  1466,  1471,
1052 >    1476,  1481,  1486,  1491,  1496,  1501,  1506,  1511,  1516,  1521,
1053 >    1526,  1531,  1536,  1541,  1546,  1551,  1556,  1561,  1566,  1571,
1054 >    1576,  1581,  1586,  1591,  1596,  1601,  1606,  1611,  1616,  1621,
1055 >    1626,  1631,  1632,  1638,  1642,  1644,  1646,  1648,  1650,  1652,
1056 >    1654,  1656,  1658,  1660,  1662,  1664,  1666,  1668,  1670,  1672,
1057 >    1674,  1676,  1678,  1680,  1682,  1684,  1686,  1688,  1689,  1695,
1058 >    1699,  1701,  1703,  1705,  1707,  1709,  1711,  1713,  1715,  1717,
1059 >    1719,  1721,  1723,  1725,  1727,  1729,  1731,  1733,  1735,  1737,
1060 >    1739,  1741,  1743,  1745,  1750,  1755,  1760,  1766,  1769,  1771,
1061 >    1773,  1775,  1777,  1779,  1781,  1783,  1785,  1787,  1789,  1791,
1062 >    1793,  1795,  1797,  1802,  1807,  1812,  1817,  1822,  1827,  1832,
1063 >    1837,  1842,  1847,  1852,  1857,  1863,  1866,  1868,  1870,  1872,
1064 >    1874,  1876,  1878,  1880,  1882,  1884,  1889,  1894,  1899,  1904,
1065 >    1909,  1914
1066   };
1067  
1068   /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1069   static const yytype_int16 yyrhs[] =
1070   {
1071 <     246,     0,    -1,    -1,   246,   247,    -1,   279,    -1,   285,
1072 <      -1,   299,    -1,   519,    -1,   317,    -1,   334,    -1,   348,
1073 <      -1,   257,    -1,   539,    -1,   363,    -1,   370,    -1,   374,
1074 <      -1,   384,    -1,   393,    -1,   413,    -1,   423,    -1,   429,
1075 <      -1,   443,    -1,   503,    -1,   433,    -1,   252,    -1,     1,
1076 <     240,    -1,     1,   241,    -1,    -1,   249,    -1,   109,   248,
1077 <      -1,   109,   152,   248,    -1,   109,   153,   248,    -1,   109,
1078 <     154,   248,    -1,   109,   155,   248,    -1,   109,   156,   248,
1079 <      -1,    -1,   251,    -1,   109,   250,    -1,   109,    13,   250,
1080 <      -1,   109,    14,   250,    -1,   109,    15,   250,    -1,    98,
1081 <     242,   253,   241,   240,    -1,   253,   254,    -1,   254,    -1,
1082 <     255,    -1,   256,    -1,     1,   240,    -1,    97,   243,   130,
1083 <     240,    -1,   125,   243,   130,   240,    -1,   160,   242,   258,
1084 <     241,   240,    -1,   258,   259,    -1,   259,    -1,   270,    -1,
1085 <     275,    -1,   278,    -1,   272,    -1,   273,    -1,   274,    -1,
1086 <     277,    -1,   268,    -1,   267,    -1,   276,    -1,   271,    -1,
1087 <     266,    -1,   260,    -1,   261,    -1,   269,    -1,     1,   240,
1088 <      -1,   146,   243,   262,   240,    -1,   147,   243,   264,   240,
1089 <      -1,   262,   244,   263,    -1,   263,    -1,   148,    -1,   149,
1090 <      -1,   264,   244,   265,    -1,   265,    -1,   148,    -1,   149,
1091 <      -1,   144,   243,   130,   240,    -1,   142,   243,   130,   240,
1092 <      -1,   145,   243,   130,   240,    -1,   187,   243,   130,   240,
1093 <      -1,    99,   243,   130,   240,    -1,   161,   243,   130,   240,
1094 <      -1,    30,   243,   130,   240,    -1,   102,   243,   130,   240,
1095 <      -1,   101,   243,   130,   240,    -1,   233,   243,   130,   240,
1096 <      -1,   234,   243,   130,   240,    -1,   199,   243,   109,   240,
1097 <      -1,    66,   243,   175,   240,    -1,     5,   242,   280,   241,
1098 <     240,    -1,   280,   281,    -1,   281,    -1,   282,    -1,   284,
1099 <      -1,   283,    -1,     1,   240,    -1,    99,   243,   130,   240,
1100 <      -1,    40,   243,   130,   240,    -1,    30,   243,   130,   240,
1101 <      -1,    82,   242,   286,   241,   240,    -1,   286,   287,    -1,
1102 <     287,    -1,   288,    -1,   289,    -1,     1,   240,    -1,   231,
1103 <     243,   175,   240,    -1,    -1,   290,   239,   242,   291,   241,
1104 <     240,    -1,   291,   292,    -1,   292,    -1,   293,    -1,   295,
1105 <      -1,   294,    -1,     1,   240,    -1,    99,   243,   130,   240,
1106 <      -1,   238,   243,   251,   240,    -1,   238,   243,   211,   240,
1107 <      -1,    -1,   165,   296,   243,   297,   240,    -1,   297,   244,
1108 <     298,    -1,   298,    -1,   226,    -1,   114,    -1,    50,    -1,
1109 <     191,    -1,    73,    -1,    71,    -1,   190,    -1,    -1,   114,
1110 <     300,   242,   301,   241,   240,    -1,   301,   302,    -1,   302,
1111 <      -1,   303,    -1,   304,    -1,   305,    -1,   309,    -1,   308,
1112 <      -1,   306,    -1,   307,    -1,   313,    -1,     1,   240,    -1,
1113 <      99,   243,   130,   240,    -1,   226,   243,   130,   240,    -1,
1114 <     124,   243,   130,   240,    -1,    42,   243,   175,   240,    -1,
1115 <     143,   243,   130,   240,    -1,    23,   243,   130,   240,    -1,
1116 <      -1,   208,   310,   243,   311,   240,    -1,   311,   244,   312,
1117 <      -1,   312,    -1,   182,    -1,   185,    -1,   186,    -1,   189,
1118 <      -1,   190,    -1,   194,    -1,    60,    -1,   205,    -1,   200,
1119 <      -1,   202,    -1,   209,    -1,   206,    -1,   193,    -1,   201,
1120 <      -1,   204,    -1,   195,    -1,   215,    -1,   183,    -1,   184,
1121 <      -1,   198,    -1,    -1,    46,   314,   243,   315,   240,    -1,
1122 <     315,   244,   316,    -1,   316,    -1,    56,    -1,   138,    -1,
1123 <      73,    -1,   225,    -1,   191,    -1,   210,    -1,   235,    -1,
1124 <      50,    -1,    31,    -1,   216,    -1,   136,    -1,     5,    -1,
1125 <     104,    -1,   201,    -1,   214,    -1,   118,    -1,   139,    -1,
1126 <      97,    -1,    -1,    23,   318,   242,   319,   241,   240,    -1,
1127 <     319,   320,    -1,   320,    -1,   321,    -1,   331,    -1,   332,
1128 <      -1,   322,    -1,   323,    -1,   333,    -1,   324,    -1,   325,
1129 <      -1,   326,    -1,   327,    -1,   328,    -1,   329,    -1,   330,
1130 <      -1,     1,   240,    -1,    99,   243,   130,   240,    -1,   127,
1131 <     243,   249,   240,    -1,   128,   243,   249,   240,    -1,   112,
1132 <     243,   109,   240,    -1,    25,   243,   249,   240,    -1,    91,
1133 <     243,   109,   240,    -1,    86,   243,   109,   240,    -1,    88,
1134 <     243,   109,   240,    -1,    87,   243,   109,   240,    -1,   157,
1135 <     243,   251,   240,    -1,    21,   243,   109,   240,    -1,    22,
1136 <     243,   109,   240,    -1,   111,   243,   109,   240,    -1,    -1,
1137 <      81,   335,   242,   340,   241,   240,    -1,    -1,    46,   337,
1138 <     243,   338,   240,    -1,   338,   244,   339,    -1,   339,    -1,
1139 <     207,    -1,    60,    -1,   203,    -1,   340,   341,    -1,   341,
1140 <      -1,   342,    -1,   336,    -1,   346,    -1,   347,    -1,     1,
1141 <     240,    -1,    -1,   129,   243,   344,   343,   240,    -1,   344,
1142 <     244,   345,    -1,   345,    -1,   109,    -1,   109,   180,   109,
1143 <      -1,    70,   243,   130,   240,    -1,    65,   243,   130,   240,
1144 <      -1,    -1,    57,   349,   242,   350,   241,   240,    -1,   350,
1145 <     351,    -1,   351,    -1,   352,    -1,   353,    -1,   354,    -1,
1146 <     356,    -1,   360,    -1,   361,    -1,   362,    -1,   355,    -1,
1147 <       1,   240,    -1,   226,   243,   130,   240,    -1,   124,   243,
1148 <     130,   240,    -1,    23,   243,   130,   240,    -1,    42,   243,
1149 <     175,   240,    -1,    -1,    46,   357,   243,   358,   240,    -1,
1150 <     358,   244,   359,    -1,   359,    -1,   169,    -1,    43,    -1,
1151 <      74,    -1,    58,    -1,    19,    -1,   108,    -1,    52,    -1,
1152 <     151,    -1,   100,    -1,   168,   243,   130,   240,    -1,   134,
1153 <     243,   130,   240,    -1,   133,   243,   109,   240,    -1,    -1,
1154 <     150,   364,   242,   365,   241,   240,    -1,   365,   366,    -1,
1155 <     366,    -1,   367,    -1,   368,    -1,   369,    -1,     1,   240,
1156 <      -1,   132,   243,   130,   240,    -1,    20,   243,   130,   240,
1157 <      -1,   103,   243,   130,   240,    -1,   217,   242,   371,   241,
1158 <     240,    -1,   371,   372,    -1,   372,    -1,   373,    -1,     1,
1159 <      -1,    99,   243,   130,   240,    -1,    -1,   163,   375,   242,
1160 <     376,   241,   240,    -1,   376,   377,    -1,   377,    -1,   378,
1161 <      -1,   379,    -1,   380,    -1,     1,   240,    -1,    99,   243,
1162 <     130,   240,    -1,   226,   243,   130,   240,    -1,    -1,   165,
1163 <     381,   243,   382,   240,    -1,   382,   244,   383,    -1,   383,
1164 <      -1,    73,    -1,   225,    -1,   191,    -1,   210,    -1,   235,
1165 <      -1,   213,    -1,   150,    -1,   212,    -1,   198,    -1,   181,
1166 <      -1,    -1,   164,   385,   242,   386,   241,   240,    -1,   386,
1167 <     387,    -1,   387,    -1,   388,    -1,   389,    -1,     1,   240,
1168 <      -1,    99,   243,   130,   240,    -1,    -1,   165,   390,   243,
1169 <     391,   240,    -1,   391,   244,   392,    -1,   392,    -1,    73,
1170 <      -1,   225,    -1,   191,    -1,   210,    -1,   235,    -1,   213,
1171 <      -1,   150,    -1,   212,    -1,   198,    -1,   181,    -1,    -1,
1172 <      24,   394,   242,   395,   241,   240,    -1,   395,   396,    -1,
1173 <     396,    -1,   397,    -1,   398,    -1,   399,    -1,   400,    -1,
1174 <     401,    -1,   403,    -1,   402,    -1,   412,    -1,   404,    -1,
1175 <     409,    -1,   410,    -1,   411,    -1,   408,    -1,     1,   240,
1176 <      -1,    99,   243,   130,   240,    -1,    65,   243,   130,   240,
1177 <      -1,   233,   243,   130,   240,    -1,   158,   243,   130,   240,
1178 <      -1,     3,   243,   130,   240,    -1,   129,   243,   109,   240,
1179 <      -1,     6,   243,   196,   240,    -1,     6,   243,   197,   240,
1180 <      -1,    -1,    46,   405,   243,   406,   240,    -1,   406,   244,
1181 <     407,    -1,   407,    -1,    10,    -1,    12,    -1,   220,    -1,
1182 <     207,    -1,    42,   243,   175,   240,    -1,    67,   243,   130,
1183 <     240,    -1,    79,   243,   130,   240,    -1,    23,   243,   130,
1184 <     240,    -1,   187,   243,   130,   240,    -1,    -1,    71,   414,
1185 <     242,   419,   241,   240,    -1,    -1,   165,   416,   243,   417,
1186 <     240,    -1,   417,   244,   418,    -1,   418,    -1,   135,    -1,
1187 <     419,   420,    -1,   420,    -1,   421,    -1,   422,    -1,   415,
1188 <      -1,     1,    -1,   226,   243,   130,   240,    -1,   132,   243,
1189 <     130,   240,    -1,    -1,    29,   424,   242,   425,   241,   240,
1190 <      -1,   425,   426,    -1,   426,    -1,   427,    -1,   428,    -1,
1191 <       1,    -1,    70,   243,   130,   240,    -1,   132,   243,   130,
1192 <     240,    -1,    44,   242,   430,   241,   240,    -1,   430,   431,
1193 <      -1,   431,    -1,   432,    -1,     1,    -1,    70,   243,   130,
1194 <     240,    -1,    -1,    48,   434,   242,   439,   241,   240,    -1,
1195 <      -1,   165,   436,   243,   437,   240,    -1,   437,   244,   438,
1196 <      -1,   438,    -1,   135,    -1,   439,   440,    -1,   440,    -1,
1197 <     441,    -1,   442,    -1,   435,    -1,     1,    -1,    99,   243,
1198 <     130,   240,    -1,   132,   243,   130,   240,    -1,    49,   242,
1199 <     444,   241,   240,    -1,   444,   445,    -1,   445,    -1,   453,
1200 <      -1,   454,    -1,   456,    -1,   457,    -1,   458,    -1,   459,
1201 <      -1,   460,    -1,   461,    -1,   462,    -1,   463,    -1,   452,
1202 <      -1,   465,    -1,   466,    -1,   467,    -1,   468,    -1,   483,
1203 <      -1,   470,    -1,   472,    -1,   474,    -1,   473,    -1,   477,
1204 <      -1,   471,    -1,   478,    -1,   479,    -1,   480,    -1,   481,
1205 <      -1,   482,    -1,   495,    -1,   484,    -1,   485,    -1,   486,
1206 <      -1,   491,    -1,   475,    -1,   476,    -1,   501,    -1,   499,
1207 <      -1,   500,    -1,   455,    -1,   502,    -1,   490,    -1,   464,
1208 <      -1,   488,    -1,   489,    -1,   451,    -1,   447,    -1,   448,
1209 <      -1,   449,    -1,   450,    -1,   469,    -1,   446,    -1,   487,
1210 <      -1,     1,    -1,    93,   243,   109,   240,    -1,    54,   243,
1211 <     109,   240,    -1,    55,   243,   109,   240,    -1,   232,   243,
1212 <     175,   240,    -1,   137,   243,   249,   240,    -1,   162,   243,
1213 <     175,   240,    -1,    72,   243,   249,   240,    -1,    64,   243,
1214 <     175,   240,    -1,    68,   243,   175,   240,    -1,    36,   243,
1215 <     175,   240,    -1,    45,   243,   175,   240,    -1,     8,   243,
1216 <     175,   240,    -1,    90,   243,   249,   240,    -1,    89,   243,
1217 <     109,   240,    -1,    83,   243,   109,   240,    -1,     9,   243,
1218 <     249,   240,    -1,   179,   243,   249,   240,    -1,   178,   243,
1219 <     249,   240,    -1,    59,   243,   109,   240,    -1,    76,   243,
1220 <     175,   240,    -1,    75,   243,   130,   240,    -1,    69,   243,
1221 <     175,   240,    -1,   237,   243,   175,   240,    -1,   170,   243,
1222 <     175,   240,    -1,   173,   243,   175,   240,    -1,   174,   243,
1223 <     175,   240,    -1,   172,   243,   175,   240,    -1,   172,   243,
1224 <     176,   240,    -1,   171,   243,   175,   240,    -1,   171,   243,
1225 <     176,   240,    -1,   122,   243,   249,   240,    -1,    18,   243,
1226 <     249,   240,    -1,   115,   243,   175,   240,    -1,   123,   243,
1227 <     249,   240,    -1,   166,   243,   175,   240,    -1,   107,   243,
1228 <     175,   240,    -1,   221,   243,   175,   240,    -1,   117,   243,
1229 <     175,   240,    -1,    94,   243,   130,   240,    -1,    37,   243,
1230 <     109,   240,    -1,    92,   243,   109,   240,    -1,   227,   243,
1231 <     175,   240,    -1,    39,   243,   130,   240,    -1,   218,   243,
1232 <     130,   240,    -1,   126,   243,   175,   240,    -1,    32,   243,
1233 <     175,   240,    -1,   219,   243,   249,   240,    -1,    -1,   119,
1234 <     492,   243,   493,   240,    -1,   493,   244,   494,    -1,   494,
1235 <      -1,   182,    -1,   185,    -1,   186,    -1,   189,    -1,   190,
1236 <      -1,   194,    -1,    60,    -1,   205,    -1,   200,    -1,   202,
1237 <      -1,   209,    -1,   206,    -1,   193,    -1,   201,    -1,   204,
1238 <      -1,   195,    -1,   215,    -1,   183,    -1,   184,    -1,   198,
1239 <      -1,    -1,   116,   496,   243,   497,   240,    -1,   497,   244,
1240 <     498,    -1,   498,    -1,   182,    -1,   185,    -1,   186,    -1,
1241 <     189,    -1,   190,    -1,   194,    -1,   205,    -1,    60,    -1,
1242 <     200,    -1,   202,    -1,   209,    -1,   206,    -1,   193,    -1,
1243 <     201,    -1,   204,    -1,   195,    -1,   215,    -1,   183,    -1,
1244 <     184,    -1,   198,    -1,    95,   243,   109,   240,    -1,    96,
1245 <     243,   109,   240,    -1,    26,   243,   109,   240,    -1,   188,
1246 <     243,   251,   240,    -1,    -1,    51,   504,   242,   505,   241,
1247 <     240,    -1,   505,   506,    -1,   506,    -1,   507,    -1,   508,
1248 <      -1,   509,    -1,   513,    -1,   514,    -1,   515,    -1,     1,
1249 <      -1,    41,   243,   175,   240,    -1,    38,   243,   249,   240,
1250 <      -1,    -1,    82,   510,   243,   511,   240,    -1,   511,   244,
1251 <     512,    -1,   512,    -1,   177,    -1,    11,    -1,   226,   243,
1252 <     130,   240,    -1,    99,   243,   130,   240,    -1,    -1,     4,
1253 <     516,   243,   517,   240,    -1,   517,   244,   518,    -1,   518,
1254 <      -1,   177,    -1,    11,    -1,    20,   242,   520,   241,   240,
1255 <      -1,   520,   521,    -1,   521,    -1,   524,    -1,   525,    -1,
1256 <     526,    -1,   527,    -1,   532,    -1,   528,    -1,   529,    -1,
1257 <     530,    -1,   531,    -1,   533,    -1,   534,    -1,   535,    -1,
1258 <     523,    -1,   536,    -1,   537,    -1,   538,    -1,   522,    -1,
1259 <       1,    -1,    33,   243,   175,   240,    -1,   140,   243,   175,
1260 <     240,    -1,    35,   243,   175,   240,    -1,   228,   243,   175,
1261 <     240,    -1,   229,   243,   175,   240,    -1,   230,   243,   175,
1262 <     240,    -1,    77,   243,   249,   240,    -1,    78,   243,   249,
1259 <     240,    -1,    85,   243,   109,   240,    -1,   131,   243,   175,
1260 <     240,    -1,    84,   243,   109,   240,    -1,    28,   243,   109,
1261 <     240,    -1,    27,   243,   109,   240,    -1,   105,   243,   175,
1262 <     240,    -1,   106,   243,   175,   240,    -1,   120,   243,   109,
1263 <     240,    -1,   121,   243,   249,   240,    -1,   159,   242,   540,
1264 <     241,   240,    -1,   540,   541,    -1,   541,    -1,   542,    -1,
1265 <     543,    -1,   545,    -1,   547,    -1,   546,    -1,   544,    -1,
1266 <     548,    -1,     1,    -1,    47,   243,   175,   240,    -1,    63,
1267 <     243,   175,   240,    -1,    61,   243,   130,   240,    -1,    80,
1268 <     243,   249,   240,    -1,    60,   243,   175,   240,    -1,    34,
1269 <     243,   175,   240,    -1,    62,   243,   175,   240,    -1
1071 >     227,     0,    -1,    -1,   227,   228,    -1,   262,    -1,   268,
1072 >      -1,   282,    -1,   481,    -1,   300,    -1,   323,    -1,   337,
1073 >      -1,   238,    -1,   496,    -1,   352,    -1,   359,    -1,   363,
1074 >      -1,   373,    -1,   382,    -1,   402,    -1,   408,    -1,   414,
1075 >      -1,   424,    -1,   418,    -1,   233,    -1,     1,   221,    -1,
1076 >       1,   222,    -1,    -1,   230,    -1,   105,   229,    -1,   105,
1077 >     139,   229,    -1,   105,   140,   229,    -1,   105,   141,   229,
1078 >      -1,   105,   142,   229,    -1,   105,   143,   229,    -1,   105,
1079 >     144,   229,    -1,   105,   145,   229,    -1,    -1,   232,    -1,
1080 >     105,   231,    -1,   105,     9,   231,    -1,   105,    10,   231,
1081 >      -1,   105,    11,   231,    -1,    95,   223,   234,   222,   221,
1082 >      -1,   234,   235,    -1,   235,    -1,   236,    -1,   237,    -1,
1083 >       1,   221,    -1,    94,   224,   122,   221,    -1,   118,   224,
1084 >     122,   221,    -1,   149,   223,   239,   222,   221,    -1,   239,
1085 >     240,    -1,   240,    -1,   251,    -1,   256,    -1,   261,    -1,
1086 >     253,    -1,   254,    -1,   255,    -1,   258,    -1,   259,    -1,
1087 >     260,    -1,   249,    -1,   248,    -1,   257,    -1,   252,    -1,
1088 >     247,    -1,   241,    -1,   242,    -1,   250,    -1,     1,   221,
1089 >      -1,   133,   224,   243,   221,    -1,   134,   224,   245,   221,
1090 >      -1,   243,   225,   244,    -1,   244,    -1,   135,    -1,   136,
1091 >      -1,   245,   225,   246,    -1,   246,    -1,   135,    -1,   136,
1092 >      -1,   131,   224,   122,   221,    -1,   129,   224,   122,   221,
1093 >      -1,   132,   224,   122,   221,    -1,   174,   224,   122,   221,
1094 >      -1,    96,   224,   122,   221,    -1,   150,   224,   122,   221,
1095 >      -1,    24,   224,   122,   221,    -1,    99,   224,   122,   221,
1096 >      -1,    98,   224,   122,   221,    -1,   215,   224,   122,   221,
1097 >      -1,   216,   224,   122,   221,    -1,   185,   224,   105,   221,
1098 >      -1,    82,   224,   105,   221,    -1,    86,   224,   105,   221,
1099 >      -1,    58,   224,   163,   221,    -1,     4,   223,   263,   222,
1100 >     221,    -1,   263,   264,    -1,   264,    -1,   265,    -1,   267,
1101 >      -1,   266,    -1,     1,   221,    -1,    96,   224,   122,   221,
1102 >      -1,    31,   224,   122,   221,    -1,    24,   224,   122,   221,
1103 >      -1,    72,   223,   269,   222,   221,    -1,   269,   270,    -1,
1104 >     270,    -1,   271,    -1,   272,    -1,     1,   221,    -1,   214,
1105 >     224,   163,   221,    -1,    -1,   273,   220,   223,   274,   222,
1106 >     221,    -1,   274,   275,    -1,   275,    -1,   276,    -1,   278,
1107 >      -1,   277,    -1,     1,   221,    -1,    96,   224,   122,   221,
1108 >      -1,   219,   224,   232,   221,    -1,   219,   224,   200,   221,
1109 >      -1,    -1,   154,   279,   224,   280,   221,    -1,   280,   225,
1110 >     281,    -1,   281,    -1,   212,    -1,   108,    -1,    40,    -1,
1111 >     177,    -1,    65,    -1,    63,    -1,   176,    -1,    -1,   108,
1112 >     283,   223,   284,   222,   221,    -1,   284,   285,    -1,   285,
1113 >      -1,   286,    -1,   287,    -1,   288,    -1,   292,    -1,   291,
1114 >      -1,   289,    -1,   290,    -1,   296,    -1,     1,   221,    -1,
1115 >      96,   224,   122,   221,    -1,   212,   224,   122,   221,    -1,
1116 >     117,   224,   122,   221,    -1,    32,   224,   163,   221,    -1,
1117 >     130,   224,   122,   221,    -1,    17,   224,   122,   221,    -1,
1118 >      -1,   197,   293,   224,   294,   221,    -1,   294,   225,   295,
1119 >      -1,   295,    -1,   169,    -1,   172,    -1,   173,    -1,   175,
1120 >      -1,   176,    -1,   180,    -1,    51,    -1,   194,    -1,   186,
1121 >      -1,   190,    -1,   198,    -1,   195,    -1,   178,    -1,   188,
1122 >      -1,   192,    -1,   181,    -1,   204,    -1,   170,    -1,   171,
1123 >      -1,   184,    -1,   187,    -1,   179,    -1,    -1,    36,   297,
1124 >     224,   298,   221,    -1,   298,   225,   299,    -1,   299,    -1,
1125 >      47,    -1,   127,    -1,    65,    -1,   211,    -1,   177,    -1,
1126 >     199,    -1,   217,    -1,    40,    -1,    25,    -1,   206,    -1,
1127 >     126,    -1,     4,    -1,   188,    -1,   203,    -1,   128,    -1,
1128 >     193,    -1,    94,    -1,    -1,    17,   301,   223,   302,   222,
1129 >     221,    -1,   302,   303,    -1,   303,    -1,   304,    -1,   314,
1130 >      -1,   315,    -1,   305,    -1,   316,    -1,   306,    -1,   307,
1131 >      -1,   308,    -1,   309,    -1,   310,    -1,   311,    -1,   312,
1132 >      -1,   313,    -1,   317,    -1,   318,    -1,   319,    -1,     1,
1133 >     221,    -1,    96,   224,   122,   221,    -1,   120,   224,   230,
1134 >     221,    -1,   107,   224,   105,   221,    -1,    19,   224,   230,
1135 >     221,    -1,    84,   224,   105,   221,    -1,    78,   224,   105,
1136 >     221,    -1,    80,   224,   105,   221,    -1,    79,   224,   105,
1137 >     221,    -1,   146,   224,   232,   221,    -1,   189,   224,   232,
1138 >     221,    -1,    15,   224,   105,   221,    -1,    16,   224,   105,
1139 >     221,    -1,   106,   224,   105,   221,    -1,    90,   224,   230,
1140 >     221,    -1,    91,   224,   230,   221,    -1,    -1,    36,   320,
1141 >     224,   321,   221,    -1,   321,   225,   322,    -1,   322,    -1,
1142 >      92,    -1,    93,    -1,    -1,    71,   324,   223,   329,   222,
1143 >     221,    -1,    -1,    36,   326,   224,   327,   221,    -1,   327,
1144 >     225,   328,    -1,   328,    -1,   196,    -1,    51,    -1,   191,
1145 >      -1,   329,   330,    -1,   330,    -1,   331,    -1,   325,    -1,
1146 >     335,    -1,   336,    -1,     1,   221,    -1,    -1,   121,   224,
1147 >     333,   332,   221,    -1,   333,   225,   334,    -1,   334,    -1,
1148 >     105,    -1,   105,   167,   105,    -1,    62,   224,   122,   221,
1149 >      -1,    57,   224,   122,   221,    -1,    -1,    48,   338,   223,
1150 >     339,   222,   221,    -1,   339,   340,    -1,   340,    -1,   341,
1151 >      -1,   342,    -1,   343,    -1,   345,    -1,   349,    -1,   350,
1152 >      -1,   351,    -1,   344,    -1,     1,   221,    -1,   212,   224,
1153 >     122,   221,    -1,   117,   224,   122,   221,    -1,    17,   224,
1154 >     122,   221,    -1,    32,   224,   163,   221,    -1,    -1,    36,
1155 >     346,   224,   347,   221,    -1,   347,   225,   348,    -1,   348,
1156 >      -1,   157,    -1,    33,    -1,    66,    -1,    49,    -1,    13,
1157 >      -1,   104,    -1,    43,    -1,   138,    -1,   205,    -1,    97,
1158 >      -1,   156,   224,   122,   221,    -1,   125,   224,   122,   221,
1159 >      -1,   124,   224,   105,   221,    -1,    -1,   137,   353,   223,
1160 >     354,   222,   221,    -1,   354,   355,    -1,   355,    -1,   356,
1161 >      -1,   357,    -1,   358,    -1,     1,   221,    -1,    73,   224,
1162 >     122,   221,    -1,   123,   224,   122,   221,    -1,    34,   224,
1163 >     122,   221,    -1,   207,   223,   360,   222,   221,    -1,   360,
1164 >     361,    -1,   361,    -1,   362,    -1,     1,    -1,    96,   224,
1165 >     122,   221,    -1,    -1,   152,   364,   223,   365,   222,   221,
1166 >      -1,   365,   366,    -1,   366,    -1,   367,    -1,   368,    -1,
1167 >     369,    -1,     1,   221,    -1,    96,   224,   122,   221,    -1,
1168 >     212,   224,   122,   221,    -1,    -1,   154,   370,   224,   371,
1169 >     221,    -1,   371,   225,   372,    -1,   372,    -1,    65,    -1,
1170 >     211,    -1,   177,    -1,   199,    -1,   217,    -1,   202,    -1,
1171 >     137,    -1,   201,    -1,   184,    -1,   168,    -1,    -1,   153,
1172 >     374,   223,   375,   222,   221,    -1,   375,   376,    -1,   376,
1173 >      -1,   377,    -1,   378,    -1,     1,   221,    -1,    96,   224,
1174 >     122,   221,    -1,    -1,   154,   379,   224,   380,   221,    -1,
1175 >     380,   225,   381,    -1,   381,    -1,    65,    -1,   211,    -1,
1176 >     177,    -1,   199,    -1,   217,    -1,   202,    -1,   137,    -1,
1177 >     201,    -1,   184,    -1,   168,    -1,    -1,    18,   383,   223,
1178 >     384,   222,   221,    -1,   384,   385,    -1,   385,    -1,   386,
1179 >      -1,   387,    -1,   388,    -1,   389,    -1,   390,    -1,   392,
1180 >      -1,   391,    -1,   401,    -1,   393,    -1,   398,    -1,   399,
1181 >      -1,   400,    -1,   397,    -1,     1,   221,    -1,    96,   224,
1182 >     122,   221,    -1,    57,   224,   122,   221,    -1,   215,   224,
1183 >     122,   221,    -1,   147,   224,   122,   221,    -1,     3,   224,
1184 >     122,   221,    -1,   121,   224,   105,   221,    -1,     5,   224,
1185 >     182,   221,    -1,     5,   224,   183,   221,    -1,    -1,    36,
1186 >     394,   224,   395,   221,    -1,   395,   225,   396,    -1,   396,
1187 >      -1,     8,    -1,   196,    -1,    32,   224,   163,   221,    -1,
1188 >      59,   224,   122,   221,    -1,    69,   224,   122,   221,    -1,
1189 >      17,   224,   122,   221,    -1,   174,   224,   122,   221,    -1,
1190 >      -1,    63,   403,   223,   404,   222,   221,    -1,   404,   405,
1191 >      -1,   405,    -1,   406,    -1,   407,    -1,     1,    -1,   212,
1192 >     224,   122,   221,    -1,   123,   224,   122,   221,    -1,    -1,
1193 >      23,   409,   223,   410,   222,   221,    -1,   410,   411,    -1,
1194 >     411,    -1,   412,    -1,   413,    -1,     1,    -1,    62,   224,
1195 >     122,   221,    -1,   123,   224,   122,   221,    -1,    34,   223,
1196 >     415,   222,   221,    -1,   415,   416,    -1,   416,    -1,   417,
1197 >      -1,     1,    -1,    62,   224,   122,   221,    -1,    -1,    38,
1198 >     419,   223,   420,   222,   221,    -1,   420,   421,    -1,   421,
1199 >      -1,   422,    -1,   423,    -1,     1,    -1,    96,   224,   122,
1200 >     221,    -1,   123,   224,   122,   221,    -1,    39,   223,   425,
1201 >     222,   221,    -1,   425,   426,    -1,   426,    -1,   435,    -1,
1202 >     436,    -1,   438,    -1,   439,    -1,   440,    -1,   441,    -1,
1203 >     442,    -1,   443,    -1,   444,    -1,   445,    -1,   434,    -1,
1204 >     447,    -1,   448,    -1,   462,    -1,   450,    -1,   452,    -1,
1205 >     454,    -1,   453,    -1,   457,    -1,   451,    -1,   458,    -1,
1206 >     459,    -1,   460,    -1,   461,    -1,   474,    -1,   463,    -1,
1207 >     464,    -1,   465,    -1,   470,    -1,   455,    -1,   456,    -1,
1208 >     480,    -1,   478,    -1,   479,    -1,   437,    -1,   469,    -1,
1209 >     446,    -1,   467,    -1,   468,    -1,   433,    -1,   428,    -1,
1210 >     429,    -1,   430,    -1,   431,    -1,   432,    -1,   449,    -1,
1211 >     427,    -1,   466,    -1,     1,    -1,    87,   224,   105,   221,
1212 >      -1,    42,   224,   163,   221,    -1,    41,   224,   230,   221,
1213 >      -1,    44,   224,   230,   221,    -1,    45,   224,   105,   221,
1214 >      -1,    46,   224,   105,   221,    -1,   151,   224,   163,   221,
1215 >      -1,    64,   224,   230,   221,    -1,    56,   224,   163,   221,
1216 >      -1,    60,   224,   163,   221,    -1,    28,   224,   163,   221,
1217 >      -1,    35,   224,   163,   221,    -1,     6,   224,   163,   221,
1218 >      -1,    83,   224,   230,   221,    -1,    81,   224,   105,   221,
1219 >      -1,    74,   224,   105,   221,    -1,     7,   224,   230,   221,
1220 >      -1,   166,   224,   230,   221,    -1,   165,   224,   230,   221,
1221 >      -1,    50,   224,   105,   221,    -1,    61,   224,   163,   221,
1222 >      -1,   218,   224,   163,   221,    -1,   158,   224,   163,   221,
1223 >      -1,   161,   224,   163,   221,    -1,   162,   224,   163,   221,
1224 >      -1,   160,   224,   163,   221,    -1,   160,   224,   164,   221,
1225 >      -1,   159,   224,   163,   221,    -1,   159,   224,   164,   221,
1226 >      -1,   115,   224,   230,   221,    -1,    12,   224,   230,   221,
1227 >      -1,   109,   224,   163,   221,    -1,   116,   224,   230,   221,
1228 >      -1,   155,   224,   163,   221,    -1,   103,   224,   163,   221,
1229 >      -1,   210,   224,   163,   221,    -1,   111,   224,   163,   221,
1230 >      -1,    29,   224,   105,   221,    -1,    85,   224,   105,   221,
1231 >      -1,   213,   224,   163,   221,    -1,    30,   224,   122,   221,
1232 >      -1,   208,   224,   122,   221,    -1,   119,   224,   163,   221,
1233 >      -1,    26,   224,   163,   221,    -1,   209,   224,   230,   221,
1234 >      -1,    -1,   112,   471,   224,   472,   221,    -1,   472,   225,
1235 >     473,    -1,   473,    -1,   169,    -1,   172,    -1,   173,    -1,
1236 >     175,    -1,   176,    -1,   180,    -1,    51,    -1,   194,    -1,
1237 >     186,    -1,   190,    -1,   198,    -1,   195,    -1,   178,    -1,
1238 >     188,    -1,   192,    -1,   181,    -1,   204,    -1,   170,    -1,
1239 >     171,    -1,   184,    -1,   187,    -1,   179,    -1,    -1,   110,
1240 >     475,   224,   476,   221,    -1,   476,   225,   477,    -1,   477,
1241 >      -1,   169,    -1,   172,    -1,   173,    -1,   175,    -1,   176,
1242 >      -1,   180,    -1,   194,    -1,    51,    -1,   186,    -1,   190,
1243 >      -1,   198,    -1,   195,    -1,   178,    -1,   188,    -1,   192,
1244 >      -1,   181,    -1,   204,    -1,   170,    -1,   171,    -1,   184,
1245 >      -1,   187,    -1,   179,    -1,    88,   224,   105,   221,    -1,
1246 >      89,   224,   105,   221,    -1,    20,   224,   105,   221,    -1,
1247 >      14,   223,   482,   222,   221,    -1,   482,   483,    -1,   483,
1248 >      -1,   489,    -1,   485,    -1,   486,    -1,   487,    -1,   488,
1249 >      -1,   490,    -1,   491,    -1,   492,    -1,   493,    -1,   494,
1250 >      -1,   495,    -1,   484,    -1,     1,    -1,    27,   224,   163,
1251 >     221,    -1,    67,   224,   230,   221,    -1,    68,   224,   230,
1252 >     221,    -1,    77,   224,   105,   221,    -1,    76,   224,   105,
1253 >     221,    -1,    75,   224,   105,   221,    -1,    22,   224,   105,
1254 >     221,    -1,    21,   224,   105,   221,    -1,   101,   224,   163,
1255 >     221,    -1,   102,   224,   163,   221,    -1,   113,   224,   105,
1256 >     221,    -1,   114,   224,   230,   221,    -1,   148,   223,   497,
1257 >     222,   221,    -1,   497,   498,    -1,   498,    -1,   499,    -1,
1258 >     500,    -1,   501,    -1,   503,    -1,   504,    -1,   502,    -1,
1259 >     505,    -1,     1,    -1,    37,   224,   163,   221,    -1,    54,
1260 >     224,   163,   221,    -1,    55,   224,   163,   221,    -1,    52,
1261 >     224,   122,   221,    -1,    70,   224,   230,   221,    -1,    51,
1262 >     224,   163,   221,    -1,    53,   224,   163,   221,    -1
1263   };
1264  
1265   /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1266   static const yytype_uint16 yyrline[] =
1267   {
1268 <       0,   353,   353,   354,   357,   358,   359,   360,   361,   362,
1269 <     363,   364,   365,   366,   367,   368,   369,   370,   371,   372,
1270 <     373,   374,   375,   376,   377,   378,   379,   383,   383,   384,
1271 <     388,   392,   396,   400,   404,   410,   410,   411,   412,   413,
1272 <     414,   421,   424,   424,   425,   425,   425,   427,   433,   440,
1273 <     442,   442,   443,   443,   444,   444,   445,   445,   446,   446,
1274 <     447,   447,   448,   448,   449,   449,   450,   451,   454,   455,
1275 <     457,   457,   458,   464,   472,   472,   473,   479,   487,   526,
1276 <     585,   613,   621,   636,   651,   660,   674,   683,   711,   741,
1277 <     764,   773,   775,   775,   776,   776,   777,   777,   779,   788,
1278 <     797,   809,   810,   810,   812,   812,   813,   815,   822,   822,
1279 <     832,   833,   835,   835,   836,   836,   838,   843,   846,   852,
1280 <     851,   857,   857,   858,   862,   866,   870,   874,   878,   882,
1281 <     893,   892,   990,   990,   991,   991,   991,   992,   992,   992,
1282 <     993,   993,   993,   995,  1004,  1041,  1053,  1064,  1106,  1116,
1283 <    1115,  1121,  1121,  1122,  1126,  1130,  1134,  1138,  1142,  1146,
1284 <    1150,  1154,  1158,  1162,  1166,  1170,  1174,  1178,  1182,  1186,
1285 <    1190,  1194,  1198,  1205,  1204,  1210,  1210,  1211,  1215,  1219,
1286 <    1223,  1227,  1231,  1235,  1239,  1243,  1247,  1251,  1255,  1259,
1287 <    1263,  1267,  1271,  1275,  1279,  1290,  1289,  1339,  1339,  1340,
1288 <    1341,  1341,  1342,  1343,  1344,  1345,  1346,  1347,  1348,  1349,
1289 <    1350,  1351,  1352,  1354,  1363,  1369,  1375,  1381,  1387,  1393,
1290 <    1399,  1405,  1411,  1417,  1423,  1429,  1439,  1438,  1455,  1454,
1291 <    1459,  1459,  1460,  1464,  1468,  1476,  1476,  1477,  1477,  1477,
1292 <    1477,  1477,  1479,  1479,  1481,  1481,  1483,  1497,  1517,  1526,
1293 <    1539,  1538,  1607,  1607,  1608,  1608,  1608,  1608,  1609,  1609,
1294 <    1609,  1610,  1610,  1612,  1647,  1660,  1669,  1681,  1680,  1684,
1295 <    1684,  1685,  1689,  1693,  1697,  1701,  1705,  1709,  1713,  1717,
1296 <    1724,  1743,  1753,  1767,  1766,  1782,  1782,  1783,  1783,  1783,
1297 <    1783,  1785,  1794,  1809,  1822,  1824,  1824,  1825,  1825,  1827,
1298 <    1843,  1842,  1858,  1858,  1859,  1859,  1859,  1859,  1861,  1870,
1299 <    1893,  1892,  1898,  1898,  1899,  1903,  1907,  1911,  1915,  1919,
1300 <    1923,  1927,  1931,  1935,  1945,  1944,  1961,  1961,  1962,  1962,
1301 <    1962,  1964,  1971,  1970,  1976,  1976,  1977,  1981,  1985,  1989,
1302 <    1993,  1997,  2001,  2005,  2009,  2013,  2023,  2022,  2073,  2073,
1303 <    2074,  2074,  2074,  2075,  2075,  2076,  2076,  2076,  2077,  2077,
1304 <    2077,  2078,  2078,  2079,  2081,  2090,  2099,  2125,  2143,  2161,
1305 <    2167,  2171,  2180,  2179,  2183,  2183,  2184,  2188,  2192,  2196,
1306 <    2202,  2213,  2224,  2235,  2244,  2263,  2262,  2328,  2327,  2331,
1307 <    2331,  2332,  2338,  2338,  2339,  2339,  2339,  2339,  2341,  2360,
1308 <    2370,  2369,  2394,  2394,  2395,  2395,  2395,  2397,  2403,  2412,
1309 <    2414,  2414,  2415,  2415,  2417,  2436,  2435,  2483,  2482,  2486,
1310 <    2486,  2487,  2493,  2493,  2494,  2494,  2494,  2494,  2496,  2502,
1311 <    2511,  2514,  2514,  2515,  2515,  2516,  2516,  2517,  2517,  2518,
1312 <    2518,  2519,  2519,  2520,  2520,  2521,  2521,  2522,  2522,  2523,
1313 <    2523,  2524,  2524,  2525,  2525,  2526,  2526,  2527,  2527,  2528,
1314 <    2529,  2529,  2530,  2530,  2531,  2531,  2532,  2532,  2533,  2533,
1315 <    2534,  2535,  2536,  2536,  2537,  2538,  2539,  2539,  2540,  2540,
1316 <    2541,  2541,  2542,  2542,  2543,  2546,  2551,  2556,  2561,  2566,
1317 <    2571,  2576,  2581,  2586,  2591,  2596,  2601,  2606,  2611,  2616,
1318 <    2621,  2626,  2631,  2637,  2648,  2653,  2662,  2667,  2672,  2677,
1319 <    2682,  2687,  2690,  2695,  2698,  2703,  2708,  2713,  2718,  2723,
1320 <    2728,  2733,  2738,  2743,  2754,  2759,  2764,  2769,  2778,  2787,
1321 <    2792,  2797,  2803,  2802,  2807,  2807,  2808,  2811,  2814,  2817,
1322 <    2820,  2823,  2826,  2829,  2832,  2835,  2838,  2841,  2844,  2847,
1323 <    2850,  2853,  2856,  2859,  2862,  2865,  2871,  2870,  2875,  2875,
1324 <    2876,  2879,  2882,  2885,  2888,  2891,  2894,  2897,  2900,  2903,
1325 <    2906,  2909,  2912,  2915,  2918,  2921,  2924,  2927,  2930,  2933,
1326 <    2938,  2943,  2948,  2953,  2963,  2962,  2986,  2986,  2987,  2988,
1327 <    2989,  2990,  2991,  2992,  2993,  2995,  3001,  3008,  3007,  3012,
1328 <    3012,  3013,  3017,  3023,  3057,  3067,  3066,  3116,  3116,  3117,
1329 <    3121,  3130,  3133,  3133,  3134,  3134,  3135,  3135,  3136,  3136,
1330 <    3137,  3137,  3138,  3138,  3139,  3140,  3140,  3141,  3142,  3142,
1331 <    3143,  3143,  3145,  3150,  3155,  3160,  3165,  3170,  3175,  3180,
1339 <    3185,  3190,  3195,  3200,  3205,  3210,  3215,  3220,  3225,  3233,
1340 <    3236,  3236,  3237,  3237,  3238,  3239,  3240,  3240,  3241,  3242,
1341 <    3244,  3250,  3256,  3265,  3279,  3285,  3291
1268 >       0,   362,   362,   363,   366,   367,   368,   369,   370,   371,
1269 >     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
1270 >     382,   383,   384,   385,   386,   387,   391,   391,   392,   396,
1271 >     400,   404,   408,   412,   416,   420,   426,   426,   427,   428,
1272 >     429,   430,   437,   440,   440,   441,   441,   441,   443,   449,
1273 >     456,   458,   458,   459,   459,   460,   460,   461,   461,   462,
1274 >     462,   463,   463,   464,   464,   465,   465,   466,   466,   467,
1275 >     468,   471,   472,   474,   474,   475,   481,   489,   489,   490,
1276 >     496,   504,   546,   605,   633,   641,   656,   671,   680,   694,
1277 >     703,   731,   761,   786,   808,   830,   839,   841,   841,   842,
1278 >     842,   843,   843,   845,   854,   863,   875,   876,   876,   878,
1279 >     878,   879,   881,   888,   888,   901,   902,   904,   904,   905,
1280 >     905,   907,   915,   918,   924,   923,   929,   929,   930,   934,
1281 >     938,   942,   946,   950,   954,   965,   964,  1041,  1041,  1042,
1282 >    1042,  1042,  1043,  1043,  1043,  1044,  1044,  1044,  1046,  1052,
1283 >    1058,  1064,  1075,  1081,  1088,  1087,  1093,  1093,  1094,  1098,
1284 >    1102,  1106,  1110,  1114,  1118,  1122,  1126,  1130,  1134,  1138,
1285 >    1142,  1146,  1150,  1154,  1158,  1162,  1166,  1170,  1174,  1178,
1286 >    1185,  1184,  1190,  1190,  1191,  1195,  1199,  1203,  1207,  1211,
1287 >    1215,  1219,  1223,  1227,  1231,  1235,  1239,  1243,  1247,  1251,
1288 >    1255,  1266,  1265,  1326,  1326,  1327,  1328,  1328,  1329,  1330,
1289 >    1331,  1332,  1333,  1334,  1335,  1336,  1337,  1337,  1338,  1339,
1290 >    1340,  1341,  1343,  1349,  1355,  1361,  1367,  1373,  1379,  1385,
1291 >    1391,  1397,  1404,  1410,  1416,  1422,  1431,  1441,  1440,  1446,
1292 >    1446,  1447,  1451,  1462,  1461,  1468,  1467,  1472,  1472,  1473,
1293 >    1477,  1481,  1487,  1487,  1488,  1488,  1488,  1488,  1488,  1490,
1294 >    1490,  1492,  1492,  1494,  1508,  1528,  1534,  1544,  1543,  1585,
1295 >    1585,  1586,  1586,  1586,  1586,  1587,  1587,  1587,  1588,  1588,
1296 >    1590,  1596,  1602,  1608,  1620,  1619,  1625,  1625,  1626,  1630,
1297 >    1634,  1638,  1642,  1646,  1650,  1654,  1658,  1662,  1668,  1682,
1298 >    1691,  1705,  1704,  1719,  1719,  1720,  1720,  1720,  1720,  1722,
1299 >    1728,  1734,  1744,  1746,  1746,  1747,  1747,  1749,  1765,  1764,
1300 >    1789,  1789,  1790,  1790,  1790,  1790,  1792,  1798,  1818,  1817,
1301 >    1823,  1823,  1824,  1828,  1832,  1836,  1840,  1844,  1848,  1852,
1302 >    1856,  1860,  1870,  1869,  1890,  1890,  1891,  1891,  1891,  1893,
1303 >    1900,  1899,  1905,  1905,  1906,  1910,  1914,  1918,  1922,  1926,
1304 >    1930,  1934,  1938,  1942,  1952,  1951,  2017,  2017,  2018,  2018,
1305 >    2018,  2019,  2019,  2020,  2020,  2020,  2021,  2021,  2021,  2022,
1306 >    2022,  2023,  2025,  2031,  2037,  2043,  2056,  2069,  2075,  2079,
1307 >    2088,  2087,  2092,  2092,  2093,  2097,  2103,  2114,  2120,  2126,
1308 >    2132,  2148,  2147,  2173,  2173,  2174,  2174,  2174,  2176,  2196,
1309 >    2206,  2205,  2232,  2232,  2233,  2233,  2233,  2235,  2241,  2250,
1310 >    2252,  2252,  2253,  2253,  2255,  2273,  2272,  2295,  2295,  2296,
1311 >    2296,  2296,  2298,  2304,  2313,  2316,  2316,  2317,  2317,  2318,
1312 >    2318,  2319,  2319,  2320,  2320,  2321,  2321,  2322,  2323,  2324,
1313 >    2324,  2325,  2325,  2326,  2326,  2327,  2327,  2328,  2328,  2329,
1314 >    2329,  2330,  2330,  2331,  2331,  2332,  2332,  2333,  2333,  2334,
1315 >    2334,  2335,  2336,  2336,  2337,  2338,  2339,  2339,  2340,  2340,
1316 >    2341,  2342,  2343,  2344,  2344,  2345,  2348,  2353,  2359,  2365,
1317 >    2371,  2376,  2381,  2386,  2391,  2396,  2401,  2406,  2411,  2416,
1318 >    2421,  2426,  2431,  2436,  2441,  2447,  2458,  2463,  2468,  2473,
1319 >    2478,  2483,  2486,  2491,  2494,  2499,  2504,  2509,  2514,  2519,
1320 >    2524,  2529,  2534,  2539,  2544,  2549,  2554,  2563,  2572,  2577,
1321 >    2582,  2588,  2587,  2592,  2592,  2593,  2596,  2599,  2602,  2605,
1322 >    2608,  2611,  2614,  2617,  2620,  2623,  2626,  2629,  2632,  2635,
1323 >    2638,  2641,  2644,  2647,  2650,  2653,  2656,  2662,  2661,  2666,
1324 >    2666,  2667,  2670,  2673,  2676,  2679,  2682,  2685,  2688,  2691,
1325 >    2694,  2697,  2700,  2703,  2706,  2709,  2712,  2715,  2718,  2721,
1326 >    2724,  2727,  2730,  2735,  2740,  2745,  2754,  2757,  2757,  2758,
1327 >    2759,  2759,  2760,  2760,  2761,  2762,  2763,  2764,  2765,  2765,
1328 >    2766,  2766,  2768,  2773,  2778,  2783,  2788,  2793,  2798,  2803,
1329 >    2808,  2813,  2818,  2823,  2831,  2834,  2834,  2835,  2835,  2836,
1330 >    2837,  2838,  2838,  2839,  2840,  2842,  2848,  2854,  2860,  2869,
1331 >    2883,  2889
1332   };
1333   #endif
1334  
1335 < #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1335 > #if YYDEBUG || YYERROR_VERBOSE || 0
1336   /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1337     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1338   static const char *const yytname[] =
1339   {
1340 <  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ACTION", "ADMIN",
1341 <  "AFTYPE", "T_ALLOW", "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME",
1342 <  "AUTOCONN", "T_BLOCK", "BURST_AWAY", "BYTES", "KBYTES", "MBYTES",
1353 <  "GBYTES", "TBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1340 >  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1341 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1342 >  "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1343    "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1344    "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1345    "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1346 <  "DISABLE_FAKE_CHANNELS", "DISABLE_HIDDEN", "DISABLE_LOCAL_CHANNELS",
1347 <  "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT", "DURATION", "EGDPOOL_PATH",
1359 <  "EMAIL", "ENABLE", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1346 >  "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1347 >  "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1348    "FAILED_OPER_NOTICE", "IRCD_FLAGS", "FLATTEN_LINKS", "GECOS", "GENERAL",
1349 <  "GLINE", "GLINES", "GLINE_EXEMPT", "GLINE_TIME", "GLINE_MIN_CIDR",
1350 <  "GLINE_MIN_CIDR6", "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT",
1351 <  "HAVENT_READ_CONF", "HIDDEN", "HIDDEN_NAME", "HIDE_SERVER_IPS",
1352 <  "HIDE_SERVERS", "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK",
1353 <  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "IP", "KILL",
1354 <  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KLINE_REASON",
1355 <  "KLINE_WITH_REASON", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1356 <  "LINKS_DELAY", "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS",
1357 <  "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1358 <  "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1359 <  "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1360 <  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1361 <  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1349 >  "GLINE", "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT",
1350 >  "GLINE_REQUEST_DURATION", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1351 >  "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1352 >  "HIDDEN_NAME", "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SERVICES",
1353 >  "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS",
1354 >  "INVISIBLE_ON_CONNECT", "IP", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE",
1355 >  "KLINE_EXEMPT", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1356 >  "LINKS_DELAY", "LISTEN", "T_LOG", "MASK", "MAX_ACCEPT", "MAX_BANS",
1357 >  "MAX_CHANS_PER_OPER", "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT",
1358 >  "MAX_LOCAL", "MAX_NICK_CHANGES", "MAX_NICK_LENGTH", "MAX_NICK_TIME",
1359 >  "MAX_NUMBER", "MAX_TARGETS", "MAX_TOPIC_LENGTH", "MAX_WATCH",
1360 >  "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE", "MIN_IDLE", "MAX_IDLE",
1361 >  "RANDOM_IDLE", "HIDE_IDLE_FROM_OPERS", "MODULE", "MODULES", "NAME",
1362 >  "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME", "NICK",
1363    "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1364 <  "NUMBER", "NUMBER_PER_IDENT", "NUMBER_PER_CIDR", "NUMBER_PER_IP",
1365 <  "NUMBER_PER_IP_GLOBAL", "OPERATOR", "OPERS_BYPASS_CALLERID",
1366 <  "OPER_ONLY_UMODES", "OPER_PASS_RESV", "OPER_SPY_T", "OPER_UMODES",
1367 <  "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "PACE_WAIT", "PACE_WAIT_SIMPLE",
1368 <  "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME", "PING_WARNING", "PORT",
1369 <  "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT", "REDIRSERV", "REGEX_T",
1370 <  "REHASH", "TREJECT_HOLD_TIME", "REMOTE", "REMOTEBAN",
1371 <  "RESTRICT_CHANNELS", "RESTRICTED", "RSA_PRIVATE_KEY_FILE",
1372 <  "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE",
1384 <  "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1",
1385 <  "RESV", "RESV_EXEMPT", "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS",
1364 >  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPERATOR",
1365 >  "OPERS_BYPASS_CALLERID", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1366 >  "OPER_UMODES", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "PACE_WAIT",
1367 >  "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME",
1368 >  "PORT", "QSTRING", "REASON", "REDIRPORT", "REDIRSERV", "REHASH",
1369 >  "REMOTE", "REMOTEBAN", "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE",
1370 >  "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE", "T_SSL_CLIENT_METHOD",
1371 >  "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT",
1372 >  "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS",
1373    "SENDQ", "SEND_PASSWORD", "SERVERHIDE", "SERVERINFO", "IRCD_SID",
1374    "TKLINE_EXPIRE_NOTICES", "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD",
1375 <  "SILENT", "SPOOF", "SPOOF_NOTICE", "STATS_E_DISABLED",
1376 <  "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY",
1377 <  "STATS_P_OPER_ONLY", "TBOOL", "TMASKED", "T_REJECT", "TS_MAX_DELTA",
1378 <  "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS", "T_SOFTCALLERID",
1379 <  "T_CALLERID", "T_CCONN", "T_CCONN_FULL", "T_SSL_CIPHER_LIST",
1380 <  "T_CLIENT_FLOOD", "T_DEAF", "T_DEBUG", "T_DLINE", "T_DRONE",
1381 <  "T_EXTERNAL", "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS",
1382 <  "T_MAX_CLIENTS", "T_NCHANGE", "T_OPERWALL", "T_REJ", "T_SERVER",
1383 <  "T_SERVNOTICE", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES", "T_UNAUTH",
1384 <  "T_UNDLINE", "T_UNLIMITED", "T_UNRESV", "T_UNXLINE", "T_GLOBOPS",
1385 <  "T_WALLOP", "T_RESTART", "T_SERVICE", "T_SERVICES_NAME", "THROTTLE_TIME",
1386 <  "TOPICBURST", "TRUE_NO_OPER_FLOOD", "TKLINE", "TXLINE", "TRESV",
1400 <  "UNKLINE", "USER", "USE_EGD", "USE_EXCEPT", "USE_INVEX", "USE_KNOCK",
1401 <  "USE_LOGGING", "USE_WHOIS_ACTUALLY", "VHOST", "VHOST6", "XLINE", "WARN",
1375 >  "SPOOF", "SPOOF_NOTICE", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1376 >  "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL",
1377 >  "TMASKED", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS",
1378 >  "T_SOFTCALLERID", "T_CALLERID", "T_CCONN", "T_CCONN_FULL",
1379 >  "T_SSL_CIPHER_LIST", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1380 >  "T_FARCONNECT", "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS",
1381 >  "T_MAX_CLIENTS", "T_NCHANGE", "T_NONONREG", "T_OPERWALL", "T_RECVQ",
1382 >  "T_REJ", "T_SERVER", "T_SERVNOTICE", "T_SET", "T_SKILL", "T_SPY",
1383 >  "T_SSL", "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV",
1384 >  "T_UNXLINE", "T_GLOBOPS", "T_WALLOP", "T_WEBIRC", "T_RESTART",
1385 >  "T_SERVICE", "T_SERVICES_NAME", "THROTTLE_TIME", "TRUE_NO_OPER_FLOOD",
1386 >  "UNKLINE", "USER", "USE_EGD", "USE_LOGGING", "VHOST", "VHOST6", "XLINE",
1387    "WARN_NO_NLINE", "T_SIZE", "T_FILE", "';'", "'}'", "'{'", "'='", "','",
1388    "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1389    "sizespec", "modules_entry", "modules_items", "modules_item",
# Line 1411 | Line 1396 | static const char *const yytname[] =
1396    "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1397    "serverinfo_description", "serverinfo_network_name",
1398    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1399 <  "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1400 <  "admin_item", "admin_name", "admin_email", "admin_description",
1401 <  "logging_entry", "logging_items", "logging_item", "logging_use_logging",
1402 <  "logging_file_entry", "$@1", "logging_file_items", "logging_file_item",
1403 <  "logging_file_name", "logging_file_size", "logging_file_type", "$@2",
1404 <  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@3",
1405 <  "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1406 <  "oper_encrypted", "oper_rsa_public_key_file", "oper_class",
1407 <  "oper_umodes", "$@4", "oper_umodes_items", "oper_umodes_item",
1408 <  "oper_flags", "$@5", "oper_flags_items", "oper_flags_item",
1409 <  "class_entry", "$@6", "class_items", "class_item", "class_name",
1410 <  "class_ping_time", "class_ping_warning", "class_number_per_ip",
1411 <  "class_connectfreq", "class_max_number", "class_max_global",
1412 <  "class_max_local", "class_max_ident", "class_sendq",
1413 <  "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1414 <  "class_number_per_cidr", "listen_entry", "$@7", "listen_flags", "$@8",
1415 <  "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1416 <  "listen_port", "$@9", "port_items", "port_item", "listen_address",
1417 <  "listen_host", "auth_entry", "$@10", "auth_items", "auth_item",
1418 <  "auth_user", "auth_passwd", "auth_class", "auth_encrypted", "auth_flags",
1419 <  "$@11", "auth_flags_items", "auth_flags_item", "auth_spoof",
1420 <  "auth_redir_serv", "auth_redir_port", "resv_entry", "$@12", "resv_items",
1421 <  "resv_item", "resv_creason", "resv_channel", "resv_nick",
1422 <  "service_entry", "service_items", "service_item", "service_name",
1423 <  "shared_entry", "$@13", "shared_items", "shared_item", "shared_name",
1424 <  "shared_user", "shared_type", "$@14", "shared_types", "shared_type_item",
1425 <  "cluster_entry", "$@15", "cluster_items", "cluster_item", "cluster_name",
1426 <  "cluster_type", "$@16", "cluster_types", "cluster_type_item",
1427 <  "connect_entry", "$@17", "connect_items", "connect_item", "connect_name",
1399 >  "serverinfo_max_clients", "serverinfo_max_nick_length",
1400 >  "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1401 >  "admin_items", "admin_item", "admin_name", "admin_email",
1402 >  "admin_description", "logging_entry", "logging_items", "logging_item",
1403 >  "logging_use_logging", "logging_file_entry", "$@1", "logging_file_items",
1404 >  "logging_file_item", "logging_file_name", "logging_file_size",
1405 >  "logging_file_type", "$@2", "logging_file_type_items",
1406 >  "logging_file_type_item", "oper_entry", "$@3", "oper_items", "oper_item",
1407 >  "oper_name", "oper_user", "oper_password", "oper_encrypted",
1408 >  "oper_rsa_public_key_file", "oper_class", "oper_umodes", "$@4",
1409 >  "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@5",
1410 >  "oper_flags_items", "oper_flags_item", "class_entry", "$@6",
1411 >  "class_items", "class_item", "class_name", "class_ping_time",
1412 >  "class_number_per_ip", "class_connectfreq", "class_max_number",
1413 >  "class_max_global", "class_max_local", "class_max_ident", "class_sendq",
1414 >  "class_recvq", "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1415 >  "class_number_per_cidr", "class_min_idle", "class_max_idle",
1416 >  "class_flags", "$@7", "class_flags_items", "class_flags_item",
1417 >  "listen_entry", "$@8", "listen_flags", "$@9", "listen_flags_items",
1418 >  "listen_flags_item", "listen_items", "listen_item", "listen_port",
1419 >  "$@10", "port_items", "port_item", "listen_address", "listen_host",
1420 >  "auth_entry", "$@11", "auth_items", "auth_item", "auth_user",
1421 >  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@12",
1422 >  "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1423 >  "auth_redir_port", "resv_entry", "$@13", "resv_items", "resv_item",
1424 >  "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1425 >  "service_items", "service_item", "service_name", "shared_entry", "$@14",
1426 >  "shared_items", "shared_item", "shared_name", "shared_user",
1427 >  "shared_type", "$@15", "shared_types", "shared_type_item",
1428 >  "cluster_entry", "$@16", "cluster_items", "cluster_item", "cluster_name",
1429 >  "cluster_type", "$@17", "cluster_types", "cluster_type_item",
1430 >  "connect_entry", "$@18", "connect_items", "connect_item", "connect_name",
1431    "connect_host", "connect_vhost", "connect_send_password",
1432    "connect_accept_password", "connect_port", "connect_aftype",
1433 <  "connect_flags", "$@18", "connect_flags_items", "connect_flags_item",
1433 >  "connect_flags", "$@19", "connect_flags_items", "connect_flags_item",
1434    "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1435 <  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@19",
1436 <  "kill_type", "$@20", "kill_type_items", "kill_type_item", "kill_items",
1437 <  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@21",
1438 <  "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1439 <  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@22",
1440 <  "gecos_flags", "$@23", "gecos_flags_items", "gecos_flags_item",
1441 <  "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1442 <  "general_entry", "general_items", "general_item", "general_max_watch",
1443 <  "general_gline_min_cidr", "general_gline_min_cidr6",
1444 <  "general_use_whois_actually", "general_reject_hold_time",
1445 <  "general_tkline_expire_notices", "general_kill_chase_time_limit",
1446 <  "general_hide_spoof_ips", "general_ignore_bogus_ts",
1447 <  "general_disable_remote_commands", "general_failed_oper_notice",
1448 <  "general_anti_nick_flood", "general_max_nick_time",
1449 <  "general_max_nick_changes", "general_max_accept",
1450 <  "general_anti_spam_exit_message_time", "general_ts_warn_delta",
1451 <  "general_ts_max_delta", "general_havent_read_conf",
1452 <  "general_kline_with_reason", "general_kline_reason",
1453 <  "general_invisible_on_connect", "general_warn_no_nline",
1454 <  "general_stats_e_disabled", "general_stats_o_oper_only",
1455 <  "general_stats_P_oper_only", "general_stats_k_oper_only",
1456 <  "general_stats_i_oper_only", "general_pace_wait",
1457 <  "general_caller_id_wait", "general_opers_bypass_callerid",
1470 <  "general_pace_wait_simple", "general_short_motd",
1471 <  "general_no_oper_flood", "general_true_no_oper_flood",
1472 <  "general_oper_pass_resv", "general_message_locale",
1435 >  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@20",
1436 >  "kill_items", "kill_item", "kill_user", "kill_reason", "deny_entry",
1437 >  "$@21", "deny_items", "deny_item", "deny_ip", "deny_reason",
1438 >  "exempt_entry", "exempt_items", "exempt_item", "exempt_ip",
1439 >  "gecos_entry", "$@22", "gecos_items", "gecos_item", "gecos_name",
1440 >  "gecos_reason", "general_entry", "general_items", "general_item",
1441 >  "general_max_watch", "general_gline_enable", "general_gline_duration",
1442 >  "general_gline_request_duration", "general_gline_min_cidr",
1443 >  "general_gline_min_cidr6", "general_tkline_expire_notices",
1444 >  "general_kill_chase_time_limit", "general_hide_spoof_ips",
1445 >  "general_ignore_bogus_ts", "general_disable_remote_commands",
1446 >  "general_failed_oper_notice", "general_anti_nick_flood",
1447 >  "general_max_nick_time", "general_max_nick_changes",
1448 >  "general_max_accept", "general_anti_spam_exit_message_time",
1449 >  "general_ts_warn_delta", "general_ts_max_delta",
1450 >  "general_havent_read_conf", "general_invisible_on_connect",
1451 >  "general_warn_no_nline", "general_stats_e_disabled",
1452 >  "general_stats_o_oper_only", "general_stats_P_oper_only",
1453 >  "general_stats_k_oper_only", "general_stats_i_oper_only",
1454 >  "general_pace_wait", "general_caller_id_wait",
1455 >  "general_opers_bypass_callerid", "general_pace_wait_simple",
1456 >  "general_short_motd", "general_no_oper_flood",
1457 >  "general_true_no_oper_flood", "general_oper_pass_resv",
1458    "general_dots_in_ident", "general_max_targets", "general_use_egd",
1459    "general_egdpool_path", "general_services_name", "general_ping_cookie",
1460    "general_disable_auth", "general_throttle_time", "general_oper_umodes",
1461 <  "$@24", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1462 <  "$@25", "umode_items", "umode_item", "general_min_nonwildcard",
1461 >  "$@23", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1462 >  "$@24", "umode_items", "umode_item", "general_min_nonwildcard",
1463    "general_min_nonwildcard_simple", "general_default_floodcount",
1479  "general_client_flood", "gline_entry", "$@26", "gline_items",
1480  "gline_item", "gline_enable", "gline_duration", "gline_logging", "$@27",
1481  "gline_logging_types", "gline_logging_type_item", "gline_user",
1482  "gline_server", "gline_action", "$@28", "gdeny_types", "gdeny_type_item",
1464    "channel_entry", "channel_items", "channel_item",
1465 <  "channel_disable_fake_channels", "channel_restrict_channels",
1485 <  "channel_disable_local_channels", "channel_use_except",
1486 <  "channel_use_invex", "channel_use_knock", "channel_knock_delay",
1465 >  "channel_disable_fake_channels", "channel_knock_delay",
1466    "channel_knock_delay_channel", "channel_max_chans_per_user",
1467 <  "channel_quiet_on_ban", "channel_max_bans",
1467 >  "channel_max_chans_per_oper", "channel_max_bans",
1468    "channel_default_split_user_count", "channel_default_split_server_count",
1469    "channel_no_create_on_split", "channel_no_join_on_split",
1470    "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1471    "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1472 <  "serverhide_hide_servers", "serverhide_hidden_name",
1473 <  "serverhide_links_delay", "serverhide_hidden",
1474 <  "serverhide_disable_hidden", "serverhide_hide_server_ips", YY_NULL
1472 >  "serverhide_hide_servers", "serverhide_hide_services",
1473 >  "serverhide_hidden_name", "serverhide_links_delay", "serverhide_hidden",
1474 >  "serverhide_hide_server_ips", YY_NULL
1475   };
1476   #endif
1477  
# Line 1523 | Line 1502 | static const yytype_uint16 yytoknum[] =
1502       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1503       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1504       465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1505 <     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1527 <     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1528 <      59,   125,   123,    61,    44
1505 >     475,    59,   125,   123,    61,    44
1506   };
1507   # endif
1508  
1509   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1510   static const yytype_uint16 yyr1[] =
1511   {
1512 <       0,   245,   246,   246,   247,   247,   247,   247,   247,   247,
1513 <     247,   247,   247,   247,   247,   247,   247,   247,   247,   247,
1514 <     247,   247,   247,   247,   247,   247,   247,   248,   248,   249,
1515 <     249,   249,   249,   249,   249,   250,   250,   251,   251,   251,
1516 <     251,   252,   253,   253,   254,   254,   254,   255,   256,   257,
1517 <     258,   258,   259,   259,   259,   259,   259,   259,   259,   259,
1518 <     259,   259,   259,   259,   259,   259,   259,   259,   260,   261,
1519 <     262,   262,   263,   263,   264,   264,   265,   265,   266,   267,
1520 <     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
1521 <     278,   279,   280,   280,   281,   281,   281,   281,   282,   283,
1522 <     284,   285,   286,   286,   287,   287,   287,   288,   290,   289,
1523 <     291,   291,   292,   292,   292,   292,   293,   294,   294,   296,
1524 <     295,   297,   297,   298,   298,   298,   298,   298,   298,   298,
1525 <     300,   299,   301,   301,   302,   302,   302,   302,   302,   302,
1526 <     302,   302,   302,   303,   304,   305,   306,   307,   308,   310,
1527 <     309,   311,   311,   312,   312,   312,   312,   312,   312,   312,
1528 <     312,   312,   312,   312,   312,   312,   312,   312,   312,   312,
1529 <     312,   312,   312,   314,   313,   315,   315,   316,   316,   316,
1530 <     316,   316,   316,   316,   316,   316,   316,   316,   316,   316,
1531 <     316,   316,   316,   316,   316,   318,   317,   319,   319,   320,
1532 <     320,   320,   320,   320,   320,   320,   320,   320,   320,   320,
1533 <     320,   320,   320,   321,   322,   323,   324,   325,   326,   327,
1534 <     328,   329,   330,   331,   332,   333,   335,   334,   337,   336,
1535 <     338,   338,   339,   339,   339,   340,   340,   341,   341,   341,
1536 <     341,   341,   343,   342,   344,   344,   345,   345,   346,   347,
1537 <     349,   348,   350,   350,   351,   351,   351,   351,   351,   351,
1538 <     351,   351,   351,   352,   353,   354,   355,   357,   356,   358,
1539 <     358,   359,   359,   359,   359,   359,   359,   359,   359,   359,
1540 <     360,   361,   362,   364,   363,   365,   365,   366,   366,   366,
1541 <     366,   367,   368,   369,   370,   371,   371,   372,   372,   373,
1542 <     375,   374,   376,   376,   377,   377,   377,   377,   378,   379,
1543 <     381,   380,   382,   382,   383,   383,   383,   383,   383,   383,
1544 <     383,   383,   383,   383,   385,   384,   386,   386,   387,   387,
1545 <     387,   388,   390,   389,   391,   391,   392,   392,   392,   392,
1546 <     392,   392,   392,   392,   392,   392,   394,   393,   395,   395,
1547 <     396,   396,   396,   396,   396,   396,   396,   396,   396,   396,
1548 <     396,   396,   396,   396,   397,   398,   399,   400,   401,   402,
1549 <     403,   403,   405,   404,   406,   406,   407,   407,   407,   407,
1550 <     408,   409,   410,   411,   412,   414,   413,   416,   415,   417,
1551 <     417,   418,   419,   419,   420,   420,   420,   420,   421,   422,
1552 <     424,   423,   425,   425,   426,   426,   426,   427,   428,   429,
1553 <     430,   430,   431,   431,   432,   434,   433,   436,   435,   437,
1554 <     437,   438,   439,   439,   440,   440,   440,   440,   441,   442,
1555 <     443,   444,   444,   445,   445,   445,   445,   445,   445,   445,
1556 <     445,   445,   445,   445,   445,   445,   445,   445,   445,   445,
1557 <     445,   445,   445,   445,   445,   445,   445,   445,   445,   445,
1558 <     445,   445,   445,   445,   445,   445,   445,   445,   445,   445,
1559 <     445,   445,   445,   445,   445,   445,   445,   445,   445,   445,
1560 <     445,   445,   445,   445,   445,   446,   447,   448,   449,   450,
1561 <     451,   452,   453,   454,   455,   456,   457,   458,   459,   460,
1562 <     461,   462,   463,   464,   465,   466,   467,   468,   469,   470,
1563 <     471,   472,   472,   473,   473,   474,   475,   476,   477,   478,
1564 <     479,   480,   481,   482,   483,   484,   485,   486,   487,   488,
1565 <     489,   490,   492,   491,   493,   493,   494,   494,   494,   494,
1566 <     494,   494,   494,   494,   494,   494,   494,   494,   494,   494,
1567 <     494,   494,   494,   494,   494,   494,   496,   495,   497,   497,
1568 <     498,   498,   498,   498,   498,   498,   498,   498,   498,   498,
1569 <     498,   498,   498,   498,   498,   498,   498,   498,   498,   498,
1570 <     499,   500,   501,   502,   504,   503,   505,   505,   506,   506,
1571 <     506,   506,   506,   506,   506,   507,   508,   510,   509,   511,
1572 <     511,   512,   512,   513,   514,   516,   515,   517,   517,   518,
1573 <     518,   519,   520,   520,   521,   521,   521,   521,   521,   521,
1574 <     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
1575 <     521,   521,   522,   523,   524,   525,   526,   527,   528,   529,
1599 <     530,   531,   532,   533,   534,   535,   536,   537,   538,   539,
1600 <     540,   540,   541,   541,   541,   541,   541,   541,   541,   541,
1601 <     542,   543,   544,   545,   546,   547,   548
1512 >       0,   226,   227,   227,   228,   228,   228,   228,   228,   228,
1513 >     228,   228,   228,   228,   228,   228,   228,   228,   228,   228,
1514 >     228,   228,   228,   228,   228,   228,   229,   229,   230,   230,
1515 >     230,   230,   230,   230,   230,   230,   231,   231,   232,   232,
1516 >     232,   232,   233,   234,   234,   235,   235,   235,   236,   237,
1517 >     238,   239,   239,   240,   240,   240,   240,   240,   240,   240,
1518 >     240,   240,   240,   240,   240,   240,   240,   240,   240,   240,
1519 >     240,   241,   242,   243,   243,   244,   244,   245,   245,   246,
1520 >     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
1521 >     256,   257,   258,   259,   260,   261,   262,   263,   263,   264,
1522 >     264,   264,   264,   265,   266,   267,   268,   269,   269,   270,
1523 >     270,   270,   271,   273,   272,   274,   274,   275,   275,   275,
1524 >     275,   276,   277,   277,   279,   278,   280,   280,   281,   281,
1525 >     281,   281,   281,   281,   281,   283,   282,   284,   284,   285,
1526 >     285,   285,   285,   285,   285,   285,   285,   285,   286,   287,
1527 >     288,   289,   290,   291,   293,   292,   294,   294,   295,   295,
1528 >     295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
1529 >     295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
1530 >     297,   296,   298,   298,   299,   299,   299,   299,   299,   299,
1531 >     299,   299,   299,   299,   299,   299,   299,   299,   299,   299,
1532 >     299,   301,   300,   302,   302,   303,   303,   303,   303,   303,
1533 >     303,   303,   303,   303,   303,   303,   303,   303,   303,   303,
1534 >     303,   303,   304,   305,   306,   307,   308,   309,   310,   311,
1535 >     312,   313,   314,   315,   316,   317,   318,   320,   319,   321,
1536 >     321,   322,   322,   324,   323,   326,   325,   327,   327,   328,
1537 >     328,   328,   329,   329,   330,   330,   330,   330,   330,   332,
1538 >     331,   333,   333,   334,   334,   335,   336,   338,   337,   339,
1539 >     339,   340,   340,   340,   340,   340,   340,   340,   340,   340,
1540 >     341,   342,   343,   344,   346,   345,   347,   347,   348,   348,
1541 >     348,   348,   348,   348,   348,   348,   348,   348,   349,   350,
1542 >     351,   353,   352,   354,   354,   355,   355,   355,   355,   356,
1543 >     357,   358,   359,   360,   360,   361,   361,   362,   364,   363,
1544 >     365,   365,   366,   366,   366,   366,   367,   368,   370,   369,
1545 >     371,   371,   372,   372,   372,   372,   372,   372,   372,   372,
1546 >     372,   372,   374,   373,   375,   375,   376,   376,   376,   377,
1547 >     379,   378,   380,   380,   381,   381,   381,   381,   381,   381,
1548 >     381,   381,   381,   381,   383,   382,   384,   384,   385,   385,
1549 >     385,   385,   385,   385,   385,   385,   385,   385,   385,   385,
1550 >     385,   385,   386,   387,   388,   389,   390,   391,   392,   392,
1551 >     394,   393,   395,   395,   396,   396,   397,   398,   399,   400,
1552 >     401,   403,   402,   404,   404,   405,   405,   405,   406,   407,
1553 >     409,   408,   410,   410,   411,   411,   411,   412,   413,   414,
1554 >     415,   415,   416,   416,   417,   419,   418,   420,   420,   421,
1555 >     421,   421,   422,   423,   424,   425,   425,   426,   426,   426,
1556 >     426,   426,   426,   426,   426,   426,   426,   426,   426,   426,
1557 >     426,   426,   426,   426,   426,   426,   426,   426,   426,   426,
1558 >     426,   426,   426,   426,   426,   426,   426,   426,   426,   426,
1559 >     426,   426,   426,   426,   426,   426,   426,   426,   426,   426,
1560 >     426,   426,   426,   426,   426,   426,   427,   428,   429,   430,
1561 >     431,   432,   433,   434,   435,   436,   437,   438,   439,   440,
1562 >     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
1563 >     451,   452,   452,   453,   453,   454,   455,   456,   457,   458,
1564 >     459,   460,   461,   462,   463,   464,   465,   466,   467,   468,
1565 >     469,   471,   470,   472,   472,   473,   473,   473,   473,   473,
1566 >     473,   473,   473,   473,   473,   473,   473,   473,   473,   473,
1567 >     473,   473,   473,   473,   473,   473,   473,   475,   474,   476,
1568 >     476,   477,   477,   477,   477,   477,   477,   477,   477,   477,
1569 >     477,   477,   477,   477,   477,   477,   477,   477,   477,   477,
1570 >     477,   477,   477,   478,   479,   480,   481,   482,   482,   483,
1571 >     483,   483,   483,   483,   483,   483,   483,   483,   483,   483,
1572 >     483,   483,   484,   485,   486,   487,   488,   489,   490,   491,
1573 >     492,   493,   494,   495,   496,   497,   497,   498,   498,   498,
1574 >     498,   498,   498,   498,   498,   499,   500,   501,   502,   503,
1575 >     504,   505
1576   };
1577  
1578   /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
# Line 1606 | Line 1580 | static const yytype_uint8 yyr2[] =
1580   {
1581         0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1582         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1583 <       1,     1,     1,     1,     1,     2,     2,     0,     1,     2,
1584 <       3,     3,     3,     3,     3,     0,     1,     2,     3,     3,
1585 <       3,     5,     2,     1,     1,     1,     2,     4,     4,     5,
1586 <       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1583 >       1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1584 >       3,     3,     3,     3,     3,     3,     0,     1,     2,     3,
1585 >       3,     3,     5,     2,     1,     1,     1,     2,     4,     4,
1586 >       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1587 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1588 >       2,     4,     4,     3,     1,     1,     1,     3,     1,     1,
1589 >       1,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1590 >       4,     4,     4,     4,     4,     4,     5,     2,     1,     1,
1591 >       1,     1,     2,     4,     4,     4,     5,     2,     1,     1,
1592 >       1,     2,     4,     0,     6,     2,     1,     1,     1,     1,
1593 >       2,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1594 >       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1595         1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
1596 <       3,     1,     1,     1,     3,     1,     1,     1,     4,     4,
1615 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1616 <       4,     5,     2,     1,     1,     1,     1,     2,     4,     4,
1617 <       4,     5,     2,     1,     1,     1,     2,     4,     0,     6,
1618 <       2,     1,     1,     1,     1,     2,     4,     4,     4,     0,
1619 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1620 <       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
1621 <       1,     1,     2,     4,     4,     4,     4,     4,     4,     0,
1622 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1596 >       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1597         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1624       1,     1,     1,     0,     5,     3,     1,     1,     1,     1,
1598         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1599 <       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1599 >       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
1600         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1601 <       1,     1,     2,     4,     4,     4,     4,     4,     4,     4,
1629 <       4,     4,     4,     4,     4,     4,     0,     6,     0,     5,
1630 <       3,     1,     1,     1,     1,     2,     1,     1,     1,     1,
1631 <       1,     2,     0,     5,     3,     1,     1,     3,     4,     4,
1632 <       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
1633 <       1,     1,     2,     4,     4,     4,     4,     0,     5,     3,
1601 >       1,     0,     6,     2,     1,     1,     1,     1,     1,     1,
1602         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1603 <       4,     4,     4,     0,     6,     2,     1,     1,     1,     1,
1604 <       2,     4,     4,     4,     5,     2,     1,     1,     1,     4,
1605 <       0,     6,     2,     1,     1,     1,     1,     2,     4,     4,
1603 >       1,     2,     4,     4,     4,     4,     4,     4,     4,     4,
1604 >       4,     4,     4,     4,     4,     4,     4,     0,     5,     3,
1605 >       1,     1,     1,     0,     6,     0,     5,     3,     1,     1,
1606 >       1,     1,     2,     1,     1,     1,     1,     1,     2,     0,
1607 >       5,     3,     1,     1,     3,     4,     4,     0,     6,     2,
1608 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
1609 >       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1610 >       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
1611 >       4,     0,     6,     2,     1,     1,     1,     1,     2,     4,
1612 >       4,     4,     5,     2,     1,     1,     1,     4,     0,     6,
1613 >       2,     1,     1,     1,     1,     2,     4,     4,     0,     5,
1614 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1615 >       1,     1,     0,     6,     2,     1,     1,     1,     2,     4,
1616         0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
1617         1,     1,     1,     1,     0,     6,     2,     1,     1,     1,
1640       2,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1641       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
1618         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1619 <       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
1620 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1621 <       4,     4,     4,     4,     4,     0,     6,     0,     5,     3,
1646 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1619 >       1,     2,     4,     4,     4,     4,     4,     4,     4,     4,
1620 >       0,     5,     3,     1,     1,     1,     4,     4,     4,     4,
1621 >       4,     0,     6,     2,     1,     1,     1,     1,     4,     4,
1622         0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
1623 <       2,     1,     1,     1,     4,     0,     6,     0,     5,     3,
1624 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1650 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1623 >       2,     1,     1,     1,     4,     0,     6,     2,     1,     1,
1624 >       1,     1,     4,     4,     5,     2,     1,     1,     1,     1,
1625         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1626         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1627         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1628         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1629 <       1,     1,     1,     1,     1,     4,     4,     4,     4,     4,
1629 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     4,
1630         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1631         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1632         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1633         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1634 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1634 >       4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1635         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1636 <       1,     1,     1,     1,     1,     1,     0,     5,     3,     1,
1636 >       1,     1,     1,     1,     1,     1,     1,     0,     5,     3,
1637         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1638         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1639 <       4,     4,     4,     4,     0,     6,     2,     1,     1,     1,
1666 <       1,     1,     1,     1,     1,     4,     4,     0,     5,     3,
1667 <       1,     1,     1,     4,     4,     0,     5,     3,     1,     1,
1668 <       1,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1639 >       1,     1,     1,     4,     4,     4,     5,     2,     1,     1,
1640         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1641         1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
1642 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     5,
1643 <       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1644 <       4,     4,     4,     4,     4,     4,     4
1642 >       4,     4,     4,     4,     5,     2,     1,     1,     1,     1,
1643 >       1,     1,     1,     1,     1,     4,     4,     4,     4,     4,
1644 >       4,     4
1645   };
1646  
1647   /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
# Line 1678 | Line 1649 | static const yytype_uint8 yyr2[] =
1649     means the default is an error.  */
1650   static const yytype_uint16 yydefact[] =
1651   {
1652 <       2,     0,     1,     0,     0,     0,   195,   346,   400,     0,
1653 <     415,     0,   584,   250,   385,   226,     0,     0,   130,   283,
1654 <       0,     0,   300,   324,     0,     3,    24,    11,     4,     5,
1655 <       6,     8,     9,    10,    13,    14,    15,    16,    17,    18,
1656 <      19,    20,    23,    21,    22,     7,    12,    25,    26,     0,
1686 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1687 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1688 <       0,     0,     0,     0,     0,    93,    94,    96,    95,   631,
1689 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1690 <       0,     0,     0,     0,     0,     0,     0,     0,   613,   630,
1691 <     626,   614,   615,   616,   617,   619,   620,   621,   622,   618,
1692 <     623,   624,   625,   627,   628,   629,     0,     0,     0,   413,
1693 <       0,     0,   411,   412,     0,   484,     0,     0,     0,     0,
1652 >       2,     0,     1,     0,     0,     0,   201,   364,   410,     0,
1653 >     425,     0,   267,   401,   243,     0,     0,   135,   301,     0,
1654 >       0,   318,   342,     0,     3,    23,    11,     4,     5,     6,
1655 >       8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1656 >      20,    22,    21,     7,    12,    24,    25,     0,     0,     0,
1657         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1658         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1659 <       0,     0,     0,     0,   556,     0,   532,     0,     0,     0,
1659 >       0,     0,    98,    99,   101,   100,   601,     0,     0,     0,
1660         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1661 <       0,     0,     0,     0,     0,     0,     0,     0,   432,   482,
1662 <     477,   478,   479,   480,   476,   443,   433,   434,   470,   435,
1663 <     436,   437,   438,   439,   440,   441,   442,   473,   444,   445,
1701 <     446,   447,   481,   449,   454,   450,   452,   451,   465,   466,
1702 <     453,   455,   456,   457,   458,   459,   448,   461,   462,   463,
1703 <     483,   474,   475,   472,   464,   460,   468,   469,   467,   471,
1704 <       0,     0,     0,     0,     0,     0,     0,   103,   104,   105,
1705 <       0,     0,     0,     0,     0,    43,    44,    45,     0,     0,
1706 <     659,     0,     0,     0,     0,     0,     0,     0,     0,   651,
1707 <     652,   653,   657,   654,   656,   655,   658,     0,     0,     0,
1661 >     588,   600,   590,   591,   592,   593,   589,   594,   595,   596,
1662 >     597,   598,   599,     0,     0,     0,   423,     0,     0,   421,
1663 >     422,     0,   485,     0,     0,     0,     0,     0,     0,     0,
1664         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1709       0,     0,     0,     0,    51,    64,    65,    63,    60,    59,
1710      66,    52,    62,    55,    56,    57,    53,    61,    58,    54,
1711       0,     0,   298,     0,     0,   296,   297,    97,     0,     0,
1712       0,     0,    92,     0,     0,     0,     0,     0,     0,     0,
1665         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1666 <       0,   612,     0,     0,     0,     0,     0,     0,     0,     0,
1715 <       0,     0,     0,     0,     0,     0,     0,   198,   199,   202,
1716 <     203,   205,   206,   207,   208,   209,   210,   211,   200,   201,
1717 <     204,     0,     0,     0,     0,     0,   372,     0,     0,     0,
1718 <       0,     0,     0,     0,     0,     0,   349,   350,   351,   352,
1719 <     353,   354,   356,   355,   358,   362,   359,   360,   361,   357,
1720 <     406,     0,     0,     0,   403,   404,   405,     0,     0,   410,
1721 <     427,     0,     0,   417,   426,     0,   423,   424,   425,     0,
1666 >       0,   557,     0,   531,     0,     0,     0,     0,     0,     0,
1667         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1668 +       0,     0,   436,   483,   477,   478,   479,   480,   481,   476,
1669 +     447,   437,   438,   471,   439,   440,   441,   442,   443,   444,
1670 +     445,   446,   473,   448,   449,   482,   451,   456,   452,   454,
1671 +     453,   466,   467,   455,   457,   458,   459,   460,   450,   462,
1672 +     463,   464,   484,   474,   475,   472,   465,   461,   469,   470,
1673 +     468,     0,     0,     0,     0,     0,     0,   108,   109,   110,
1674 +       0,     0,     0,     0,     0,    44,    45,    46,     0,     0,
1675 +     624,     0,     0,     0,     0,     0,     0,     0,     0,   616,
1676 +     617,   618,   619,   622,   620,   621,   623,     0,     0,     0,
1677         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1678 +       0,     0,     0,     0,     0,     0,    52,    67,    68,    66,
1679 +      63,    62,    69,    53,    65,    56,    57,    58,    54,    64,
1680 +      59,    60,    61,    55,     0,     0,   316,     0,     0,   314,
1681 +     315,   102,     0,     0,     0,     0,    97,     0,     0,     0,
1682         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1683 +     587,     0,     0,     0,     0,   237,     0,     0,     0,     0,
1684 +       0,     0,     0,     0,     0,     0,     0,     0,     0,   204,
1685 +     205,   208,   210,   211,   212,   213,   214,   215,   216,   217,
1686 +     206,   207,   209,   218,   219,   220,     0,     0,     0,     0,
1687 +       0,   390,     0,     0,     0,     0,     0,     0,     0,     0,
1688 +       0,   367,   368,   369,   370,   371,   372,   374,   373,   376,
1689 +     380,   377,   378,   379,   375,   416,     0,     0,     0,   413,
1690 +     414,   415,     0,     0,   420,   431,     0,     0,     0,   428,
1691 +     429,   430,     0,     0,     0,     0,     0,     0,     0,     0,
1692         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1693         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1727       0,   431,   594,   605,     0,     0,   597,     0,     0,     0,
1728     587,   588,   589,   590,   591,   592,   593,     0,     0,     0,
1729     267,     0,     0,     0,     0,     0,     0,   253,   254,   255,
1730     256,   261,   257,   258,   259,   260,   397,     0,   387,     0,
1731     396,     0,   393,   394,   395,     0,   228,     0,     0,     0,
1732     238,     0,   236,   237,   239,   240,   106,     0,     0,   102,
1733       0,    46,     0,     0,     0,    42,     0,     0,     0,   173,
1734       0,     0,     0,   149,     0,     0,   133,   134,   135,   136,
1735     139,   140,   138,   137,   141,     0,     0,     0,     0,     0,
1736     286,   287,   288,   289,     0,     0,     0,     0,     0,     0,
1737       0,     0,   650,    67,     0,     0,     0,     0,     0,     0,
1694         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1739      50,     0,     0,   310,     0,     0,   303,   304,   305,   306,
1740       0,     0,   332,     0,   327,   328,   329,     0,     0,   295,
1741       0,     0,     0,    91,     0,     0,     0,     0,    27,     0,
1695         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1696 <       0,     0,   611,   212,     0,     0,     0,     0,     0,     0,
1697 <       0,     0,     0,     0,     0,     0,     0,     0,   197,   363,
1696 >       0,   435,     0,     0,     0,   284,     0,     0,     0,     0,
1697 >       0,     0,   270,   271,   272,   273,   278,   274,   275,   276,
1698 >     277,   407,     0,     0,     0,   404,   405,   406,     0,   245,
1699 >       0,     0,     0,   255,     0,   253,   254,   256,   257,   111,
1700 >       0,     0,   107,     0,    47,     0,     0,     0,    43,     0,
1701 >       0,     0,   180,     0,     0,     0,   154,     0,     0,   138,
1702 >     139,   140,   141,   144,   145,   143,   142,   146,     0,     0,
1703 >       0,     0,     0,   304,   305,   306,   307,     0,     0,     0,
1704 >       0,     0,     0,     0,     0,   615,    70,     0,     0,     0,
1705         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1706 <       0,     0,     0,     0,   348,     0,     0,     0,   402,     0,
1707 <     409,     0,     0,     0,     0,   422,     0,     0,     0,     0,
1706 >       0,     0,     0,     0,     0,    51,     0,     0,   328,     0,
1707 >       0,   321,   322,   323,   324,     0,     0,   350,     0,   345,
1708 >     346,   347,     0,     0,   313,     0,     0,     0,    96,     0,
1709 >       0,     0,    26,     0,     0,     0,     0,     0,     0,     0,
1710 >       0,     0,   586,   221,     0,     0,     0,     0,     0,     0,
1711         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1712 +       0,   203,   381,     0,     0,     0,     0,     0,     0,     0,
1713 +       0,     0,     0,     0,     0,     0,     0,   366,     0,     0,
1714 +       0,   412,     0,   419,     0,     0,     0,   427,     0,     0,
1715         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1716         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1717         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1752       0,     0,    35,     0,     0,     0,     0,     0,     0,     0,
1753     430,     0,     0,     0,     0,     0,     0,     0,   586,   262,
1754       0,     0,     0,     0,     0,     0,     0,     0,     0,   252,
1755       0,     0,     0,     0,   392,   241,     0,     0,     0,     0,
1756       0,   235,     0,   101,     0,     0,     0,    41,   142,     0,
1757       0,     0,     0,     0,     0,     0,     0,     0,   132,   290,
1758       0,     0,     0,     0,   285,     0,     0,     0,     0,     0,
1759       0,     0,   649,     0,     0,     0,     0,     0,     0,     0,
1760       0,    72,    73,     0,    71,    76,    77,     0,    75,     0,
1761       0,     0,     0,     0,    49,   307,     0,     0,     0,     0,
1762     302,   330,     0,     0,     0,   326,     0,   294,   100,    99,
1763      98,   644,   643,   632,   634,    27,    27,    27,    27,    27,
1764      29,    28,   638,   639,   642,   640,   645,   646,   647,   648,
1765     641,   633,   635,   636,   637,     0,     0,     0,     0,     0,
1766       0,     0,     0,     0,     0,     0,     0,     0,   196,     0,
1718         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1719 <       0,     0,     0,   347,     0,     0,   401,   414,     0,     0,
1720 <       0,   416,   496,   500,   516,   582,   530,   494,   524,   527,
1721 <     495,   486,   487,   503,   492,   493,   506,   491,   505,   504,
1722 <     499,   498,   497,   525,   485,   523,   580,   581,   520,   517,
1723 <     567,   560,   577,   578,   561,   562,   563,   564,   572,   565,
1724 <     575,   579,   568,   573,   569,   574,   566,   571,   570,   576,
1725 <       0,   559,   522,   542,   536,   553,   554,   537,   538,   539,
1726 <     540,   548,   541,   551,   555,   544,   549,   545,   550,   543,
1727 <     547,   546,   552,     0,   535,   515,   518,   529,   489,   490,
1728 <     519,   508,   513,   514,   511,   512,   509,   510,   502,   501,
1729 <      35,    35,    35,    37,    36,   583,   528,   531,   521,   526,
1730 <     488,   507,     0,     0,     0,     0,     0,     0,   585,     0,
1731 <       0,     0,     0,     0,     0,     0,     0,   251,     0,     0,
1732 <       0,   386,     0,     0,     0,   246,   242,   245,   227,   107,
1733 <       0,     0,   119,     0,     0,   111,   112,   114,   113,    47,
1734 <      48,     0,     0,     0,     0,     0,     0,     0,     0,   131,
1735 <       0,     0,     0,   284,   665,   660,   664,   662,   666,   661,
1736 <     663,    84,    90,    82,    86,    85,    79,    78,    80,    68,
1737 <       0,    69,     0,    83,    81,    89,    87,    88,     0,     0,
1738 <       0,   301,     0,     0,   325,   299,    30,    31,    32,    33,
1739 <      34,   223,   224,   217,   219,   221,   220,   218,   213,   225,
1740 <     216,   214,   215,   222,   368,   370,   371,   383,   380,   376,
1741 <     377,   379,   378,     0,   375,   365,   381,   382,   364,   369,
1742 <     367,   384,   366,   407,   408,   428,   429,   421,     0,   420,
1743 <     557,     0,   533,     0,    38,    39,    40,   610,   609,     0,
1744 <     608,   596,   595,   602,   601,     0,   600,   604,   603,   265,
1745 <     266,   275,   272,   277,   274,   273,   279,   276,   278,   271,
1746 <       0,   270,   264,   282,   281,   280,   263,   399,   391,     0,
1747 <     390,   398,   233,   234,   232,     0,   231,   249,   248,     0,
1748 <       0,     0,   115,     0,     0,     0,     0,   110,   148,   146,
1749 <     188,   185,   184,   177,   179,   194,   189,   192,   187,   178,
1750 <     193,   181,   190,   182,   191,   186,   180,   183,     0,   176,
1751 <     143,   145,   147,   159,   153,   170,   171,   154,   155,   156,
1752 <     157,   165,   158,   168,   172,   161,   166,   162,   167,   160,
1753 <     164,   163,   169,     0,   152,   144,   292,   293,   291,    70,
1754 <      74,   308,   314,   320,   323,   316,   322,   317,   321,   319,
1755 <     315,   318,     0,   313,   309,   331,   336,   342,   345,   338,
1756 <     344,   339,   343,   341,   337,   340,     0,   335,   373,     0,
1757 <     418,     0,   558,   534,   606,     0,   598,     0,   268,     0,
1758 <     388,     0,   229,     0,   247,   244,   243,     0,     0,     0,
1759 <       0,   109,   174,     0,   150,     0,   311,     0,   333,     0,
1760 <     374,   419,   607,   599,   269,   389,   230,   116,   125,   128,
1761 <     127,   124,   129,   126,   123,     0,   122,   118,   117,   175,
1762 <     151,   312,   334,   120,     0,   121
1719 >       0,     0,     0,     0,     0,     0,     0,     0,   434,   279,
1720 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   269,
1721 >       0,     0,     0,   403,   258,     0,     0,     0,     0,     0,
1722 >     252,     0,   106,     0,     0,     0,    42,   147,     0,     0,
1723 >       0,     0,     0,     0,     0,     0,     0,   137,   308,     0,
1724 >       0,     0,     0,   303,     0,     0,     0,     0,     0,     0,
1725 >       0,   614,     0,     0,     0,     0,     0,     0,     0,     0,
1726 >       0,     0,    75,    76,     0,    74,    79,    80,     0,    78,
1727 >       0,     0,     0,     0,     0,    50,   325,     0,     0,     0,
1728 >       0,   320,   348,     0,     0,     0,   344,     0,   312,   105,
1729 >     104,   103,   609,   608,   602,    26,    26,    26,    26,    26,
1730 >      26,    26,    28,    27,   603,   604,   607,   606,   605,   610,
1731 >     611,   612,   613,     0,     0,     0,     0,     0,     0,     0,
1732 >       0,     0,     0,     0,     0,     0,     0,    36,     0,     0,
1733 >     202,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1734 >       0,     0,     0,     0,     0,   365,     0,     0,   411,   424,
1735 >       0,     0,   426,   498,   502,   516,   585,   529,   496,   523,
1736 >     526,   497,   488,   487,   489,   490,   491,   505,   494,   495,
1737 >     506,   493,   501,   500,   499,   524,   486,   583,   584,   520,
1738 >     517,   568,   561,   578,   579,   562,   563,   564,   565,   573,
1739 >     582,   566,   576,   580,   569,   581,   574,   570,   575,   567,
1740 >     572,   571,   577,     0,   560,   522,   541,   535,   552,   553,
1741 >     536,   537,   538,   539,   547,   556,   540,   550,   554,   543,
1742 >     555,   548,   544,   549,   542,   546,   545,   551,     0,   534,
1743 >     515,   518,   528,   492,   519,   508,   513,   514,   511,   512,
1744 >     509,   510,   504,   503,   527,   530,   521,   525,   507,     0,
1745 >       0,     0,     0,     0,     0,     0,     0,   268,     0,     0,
1746 >     402,     0,     0,     0,   263,   259,   262,   244,   112,     0,
1747 >       0,   124,     0,     0,   116,   117,   119,   118,    48,    49,
1748 >       0,     0,     0,     0,     0,     0,     0,     0,   136,     0,
1749 >       0,     0,   302,   625,   630,   628,   631,   626,   627,   629,
1750 >      87,    95,    93,    94,    85,    89,    88,    82,    81,    83,
1751 >      71,     0,    72,     0,    86,    84,    92,    90,    91,     0,
1752 >       0,     0,   319,     0,     0,   343,   317,    29,    30,    31,
1753 >      32,    33,    34,    35,   232,   233,   225,   241,   242,     0,
1754 >     240,   227,   229,   228,   226,   235,   236,   222,   234,   224,
1755 >     223,    36,    36,    36,    38,    37,   230,   231,   386,   388,
1756 >     389,   399,   396,   394,   395,     0,   393,   383,   397,   398,
1757 >     382,   387,   385,   400,   384,   417,   418,   432,   433,   558,
1758 >       0,   532,     0,   282,   283,   292,   289,   294,   291,   290,
1759 >     297,   293,   295,   288,   296,     0,   287,   281,   300,   299,
1760 >     298,   280,   409,   408,   250,   251,   249,     0,   248,   266,
1761 >     265,     0,     0,     0,   120,     0,     0,     0,     0,   115,
1762 >     153,   151,   195,   192,   191,   184,   186,   200,   194,   185,
1763 >     198,   188,   196,   199,   189,   197,   193,   187,   190,     0,
1764 >     183,   148,   150,   152,   164,   158,   175,   176,   159,   160,
1765 >     161,   162,   170,   179,   163,   173,   177,   166,   178,   171,
1766 >     167,   172,   165,   169,   168,   174,     0,   157,   149,   311,
1767 >     309,   310,    73,    77,   326,   332,   338,   341,   334,   340,
1768 >     335,   339,   337,   333,   336,     0,   331,   327,   349,   354,
1769 >     360,   363,   356,   362,   357,   361,   359,   355,   358,     0,
1770 >     353,   238,     0,    39,    40,    41,   391,     0,   559,   533,
1771 >     285,     0,   246,     0,   264,   261,   260,     0,     0,     0,
1772 >       0,   114,   181,     0,   155,     0,   329,     0,   351,     0,
1773 >     239,   392,   286,   247,   121,   130,   133,   132,   129,   134,
1774 >     131,   128,     0,   127,   123,   122,   182,   156,   330,   352,
1775 >     125,     0,   126
1776   };
1777  
1778   /* YYDEFGOTO[NTERM-NUM].  */
1779   static const yytype_int16 yydefgoto[] =
1780   {
1781 <      -1,     1,    25,   830,   831,   973,   974,    26,   244,   245,
1782 <     246,   247,    27,   283,   284,   285,   286,   793,   794,   797,
1783 <     798,   287,   288,   289,   290,   291,   292,   293,   294,   295,
1784 <     296,   297,   298,   299,    28,    74,    75,    76,    77,    78,
1785 <      29,   236,   237,   238,   239,   240,  1014,  1015,  1016,  1017,
1786 <    1018,  1164,  1295,  1296,    30,    63,   535,   536,   537,   538,
1787 <     539,   540,   541,   542,   543,   765,  1213,  1214,   544,   761,
1788 <    1188,  1189,    31,    51,   346,   347,   348,   349,   350,   351,
1789 <     352,   353,   354,   355,   356,   357,   358,   359,   360,    32,
1790 <      60,   510,   746,  1155,  1156,   511,   512,   513,  1161,  1006,
1791 <    1007,   514,   515,    33,    58,   486,   487,   488,   489,   490,
1792 <     491,   492,   732,  1140,  1141,   493,   494,   495,    34,    64,
1793 <     549,   550,   551,   552,   553,    35,   304,   305,   306,    36,
1794 <      67,   585,   586,   587,   588,   589,   807,  1232,  1233,    37,
1795 <      68,   593,   594,   595,   596,   813,  1246,  1247,    38,    52,
1796 <     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
1797 <     644,  1093,  1094,   385,   386,   387,   388,   389,    39,    59,
1798 <     500,   741,  1149,  1150,   501,   502,   503,   504,    40,    53,
1799 <     393,   394,   395,   396,    41,   121,   122,   123,    42,    55,
1800 <     404,   663,  1108,  1109,   405,   406,   407,   408,    43,   177,
1801 <     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
1802 <     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
1803 <     198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
1804 <     208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
1805 <     218,   219,   220,   221,   222,   223,   224,   439,   953,   954,
1806 <     225,   437,   930,   931,   226,   227,   228,   229,    44,    57,
1807 <     469,   470,   471,   472,   473,   724,  1125,  1126,   474,   475,
1808 <     476,   721,  1119,  1120,    45,    97,    98,    99,   100,   101,
1845 <     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1846 <     112,   113,   114,   115,    46,   258,   259,   260,   261,   262,
1847 <     263,   264,   265,   266
1781 >      -1,     1,    24,   782,   783,  1034,  1035,    25,   224,   225,
1782 >     226,   227,    26,   265,   266,   267,   268,   744,   745,   748,
1783 >     749,   269,   270,   271,   272,   273,   274,   275,   276,   277,
1784 >     278,   279,   280,   281,   282,   283,    27,    71,    72,    73,
1785 >      74,    75,    28,   216,   217,   218,   219,   220,   953,   954,
1786 >     955,   956,   957,  1096,  1222,  1223,    29,    60,   498,   499,
1787 >     500,   501,   502,   503,   504,   505,   506,   714,  1146,  1147,
1788 >     507,   710,  1119,  1120,    30,    49,   328,   329,   330,   331,
1789 >     332,   333,   334,   335,   336,   337,   338,   339,   340,   341,
1790 >     342,   343,   344,   345,   587,  1019,  1020,    31,    57,   473,
1791 >     695,  1087,  1088,   474,   475,   476,  1093,   945,   946,   477,
1792 >     478,    32,    55,   451,   452,   453,   454,   455,   456,   457,
1793 >     682,  1075,  1076,   458,   459,   460,    33,    61,   512,   513,
1794 >     514,   515,   516,    34,   288,   289,   290,    35,    64,   550,
1795 >     551,   552,   553,   554,   758,  1165,  1166,    36,    65,   558,
1796 >     559,   560,   561,   764,  1179,  1180,    37,    50,   360,   361,
1797 >     362,   363,   364,   365,   366,   367,   368,   369,   607,  1045,
1798 >    1046,   370,   371,   372,   373,   374,    38,    56,   464,   465,
1799 >     466,   467,    39,    51,   378,   379,   380,   381,    40,   108,
1800 >     109,   110,    41,    53,   388,   389,   390,   391,    42,   161,
1801 >     162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
1802 >     172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
1803 >     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
1804 >     192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
1805 >     202,   203,   204,   205,   206,   422,   908,   909,   207,   420,
1806 >     883,   884,   208,   209,   210,    43,    89,    90,    91,    92,
1807 >      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1808 >      44,   238,   239,   240,   241,   242,   243,   244,   245,   246
1809   };
1810  
1811   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1812     STATE-NUM.  */
1813 < #define YYPACT_NINF -872
1813 > #define YYPACT_NINF -736
1814   static const yytype_int16 yypact[] =
1815   {
1816 <    -872,   684,  -872,  -194,  -227,  -225,  -872,  -872,  -872,  -207,
1817 <    -872,  -202,  -872,  -872,  -872,  -872,  -190,  -185,  -872,  -872,
1818 <    -182,  -174,  -872,  -872,  -166,  -872,  -872,  -872,  -872,  -872,
1819 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1820 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,    11,
1821 <     596,  -152,  -133,  -131,    10,  -128,   420,  -125,  -122,  -111,
1822 <     -97,     2,    66,   -76,   -61,   339,   379,   -48,   -35,     5,
1823 <    -212,   -25,   -18,    -3,     4,  -872,  -872,  -872,  -872,  -872,
1824 <      29,    40,    57,    63,    72,    82,    90,    92,   108,   113,
1825 <     121,   127,   146,   149,   150,   153,   154,   196,  -872,  -872,
1826 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1827 <    -872,  -872,  -872,  -872,  -872,  -872,   693,   505,    26,  -872,
1828 <     160,    80,  -872,  -872,    54,  -872,   168,   179,   184,   187,
1829 <     190,   192,   193,   197,   200,   201,   205,   206,   207,   208,
1830 <     210,   215,   218,   220,   223,   224,   225,   227,   228,   230,
1831 <     234,   239,   240,   242,  -872,   243,  -872,   247,   254,   255,
1832 <     256,   258,   262,   264,   274,   275,   276,   277,   279,   287,
1833 <     289,   290,   301,   302,   306,   307,   309,   120,  -872,  -872,
1834 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1835 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1836 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1837 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1838 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1839 <     129,   308,    22,    32,   -20,   310,    36,  -872,  -872,  -872,
1840 <      16,   138,   311,   312,    15,  -872,  -872,  -872,   348,   328,
1841 <    -872,   316,   318,   322,   324,   325,   326,   330,     9,  -872,
1842 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,   155,   333,   334,
1843 <     336,   337,   338,   344,   345,   352,   353,   357,   358,   359,
1844 <     360,   362,   364,   221,  -872,  -872,  -872,  -872,  -872,  -872,
1845 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1846 <     172,    35,  -872,   366,    38,  -872,  -872,  -872,   280,   304,
1847 <     374,   199,  -872,   298,   355,   396,   435,   502,   502,   506,
1848 <     507,   439,   442,   509,   502,   444,   445,   446,   450,   451,
1849 <     387,  -872,   388,   389,   390,   393,   397,   399,   400,   401,
1850 <     402,   405,   406,   407,   410,   411,   177,  -872,  -872,  -872,
1851 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1852 <    -872,   416,   415,   417,   419,   421,  -872,   422,   424,   425,
1853 <     427,   432,   436,   443,   447,    19,  -872,  -872,  -872,  -872,
1854 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1855 <    -872,   448,   453,    37,  -872,  -872,  -872,   529,   438,  -872,
1856 <    -872,   456,   457,  -872,  -872,    17,  -872,  -872,  -872,   512,
1857 <     502,   502,   573,   513,   518,   597,   575,   534,   610,   612,
1858 <     613,   548,   550,   551,   502,   600,   556,   628,   630,   502,
1859 <     631,   633,   614,   636,   637,   576,   577,   510,   581,   514,
1860 <     502,   502,   584,   502,   585,   586,   587,   -83,   -53,   588,
1861 <     592,   502,   502,   639,   620,   502,   594,   595,   598,   599,
1862 <     531,  -872,  -872,  -872,   532,   535,  -872,   540,   542,    44,
1863 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,   536,   543,   544,
1864 <    -872,   545,   546,   547,   552,   553,     8,  -872,  -872,  -872,
1865 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,   554,  -872,   557,
1866 <    -872,    28,  -872,  -872,  -872,   537,  -872,   558,   559,   560,
1867 <    -872,    18,  -872,  -872,  -872,  -872,  -872,   616,   566,  -872,
1868 <     565,  -872,   663,   664,   568,  -872,   569,   567,   570,  -872,
1869 <     571,   572,   574,  -872,   579,   261,  -872,  -872,  -872,  -872,
1870 <    -872,  -872,  -872,  -872,  -872,   578,   580,   589,   590,    12,
1871 <    -872,  -872,  -872,  -872,   641,   644,   652,   681,   653,   654,
1872 <     502,   591,  -872,  -872,   682,   655,   705,   706,   707,   708,
1873 <     709,   710,   164,   235,   711,   712,   736,   716,   719,   617,
1874 <    -872,   621,   622,  -872,   623,     6,  -872,  -872,  -872,  -872,
1875 <     632,   625,  -872,    20,  -872,  -872,  -872,   726,   640,  -872,
1876 <     642,   643,   645,  -872,   651,   656,   660,   667,   260,   671,
1877 <     672,   674,   675,   676,   677,   678,   680,   686,   687,   690,
1878 <     691,   695,  -872,  -872,   751,   767,   502,   768,   770,   772,
1879 <     783,   765,   794,   827,   502,   502,   639,   698,  -872,  -872,
1880 <     812,   191,   816,   774,   713,   817,   820,   821,   822,   844,
1881 <     825,   828,   829,   717,  -872,   830,   831,   722,  -872,   723,
1882 <    -872,   834,   835,   724,   728,  -872,   729,   730,   731,   732,
1883 <     733,   734,   735,   737,   738,   740,   741,   742,   743,   744,
1884 <     745,   746,   747,   748,   749,   750,   752,   753,   754,   755,
1885 <     756,   757,   758,   759,   669,   760,   704,   761,   762,   763,
1886 <     764,   766,   769,   771,   773,   775,   776,   777,   778,   779,
1887 <     780,   781,   282,   782,   784,   785,   786,   787,   788,   789,
1888 <    -872,   790,   502,   791,   792,   846,   849,   796,  -872,  -872,
1889 <     861,   832,   795,   875,   899,   880,   882,   884,   797,  -872,
1890 <     893,   798,   900,   799,  -872,  -872,   800,   901,   902,   925,
1891 <     802,  -872,   804,  -872,   167,   805,   806,  -872,  -872,   910,
1892 <     872,   807,   918,   919,   921,   809,   923,   814,  -872,  -872,
1893 <     926,   927,   928,   815,  -872,   819,   823,   824,   826,   833,
1894 <     836,   837,  -872,   838,   839,   840,   841,   842,   843,   845,
1895 <     847,  -872,  -872,  -214,  -872,  -872,  -872,  -191,  -872,   848,
1896 <     850,   851,   852,   853,  -872,  -872,   930,   818,   932,   854,
1897 <    -872,  -872,   935,   855,   856,  -872,   857,  -872,  -872,  -872,
1898 <    -872,  -872,  -872,  -872,  -872,   502,   502,   502,   502,   502,
1899 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1900 <    -872,  -872,  -872,  -872,  -872,   859,   860,   862,   863,   864,
1901 <     865,   866,   867,   868,   869,   870,   871,   873,  -872,   874,
1902 <     876,   877,   878,   879,   152,   881,   883,   885,   886,   887,
1903 <     888,   889,   890,  -872,   891,   892,  -872,  -872,   894,   895,
1904 <     933,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1905 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1906 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1907 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1908 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1909 <    -181,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1910 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1911 <    -872,  -872,  -872,  -178,  -872,  -872,  -872,  -872,  -872,  -872,
1912 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1913 <     639,   639,   639,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1914 <    -872,  -872,     3,   896,   897,    13,   898,   903,  -872,   904,
1915 <     905,   603,   906,   907,   908,   909,   911,  -872,   912,   934,
1916 <     913,  -872,    -2,   914,   915,   940,   916,  -872,  -872,  -872,
1917 <     917,   858,  -872,   920,    73,  -872,  -872,  -872,  -872,  -872,
1918 <    -872,   922,   924,   533,   929,   931,   936,   739,   937,  -872,
1919 <     938,   939,   941,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1920 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1921 <     164,  -872,   235,  -872,  -872,  -872,  -872,  -872,   942,   350,
1922 <     943,  -872,   944,   485,  -872,  -872,  -872,  -872,  -872,  -872,
1923 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1924 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1925 <    -872,  -872,  -872,  -167,  -872,  -872,  -872,  -872,  -872,  -872,
1926 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -165,  -872,
1927 <    -872,   669,  -872,   704,  -872,  -872,  -872,  -872,  -872,  -153,
1928 <    -872,  -872,  -872,  -872,  -872,   -89,  -872,  -872,  -872,  -872,
1929 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1930 <     -36,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,   -23,
1931 <    -872,  -872,  -872,  -872,  -872,   -14,  -872,  -872,  -872,   958,
1932 <     925,   945,  -872,   954,   946,  -105,   947,  -872,  -872,  -872,
1933 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1934 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,    84,  -872,
1935 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1936 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1937 <    -872,  -872,  -872,    86,  -872,  -872,  -872,  -872,  -872,  -872,
1938 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1939 <    -872,  -872,   118,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1979 <    -872,  -872,  -872,  -872,  -872,  -872,   135,  -872,  -872,   152,
1980 <    -872,   933,  -872,  -872,  -872,     3,  -872,    13,  -872,   603,
1981 <    -872,   934,  -872,    -2,  -872,  -872,  -872,   948,   303,   950,
1982 <     951,  -872,  -872,   533,  -872,   739,  -872,   350,  -872,   485,
1983 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1984 <    -872,  -872,  -872,  -872,  -872,   137,  -872,  -872,  -872,  -872,
1985 <    -872,  -872,  -872,  -872,   303,  -872
1816 >    -736,   555,  -736,  -199,  -215,  -209,  -736,  -736,  -736,  -172,
1817 >    -736,  -170,  -736,  -736,  -736,  -157,  -146,  -736,  -736,  -135,
1818 >    -133,  -736,  -736,  -122,  -736,  -736,  -736,  -736,  -736,  -736,
1819 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1820 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,   310,   847,  -104,
1821 >     -93,   -82,    24,   -33,   352,   -30,   -27,   -22,    49,    14,
1822 >     -20,   -16,   825,   390,    -8,    -6,    10,  -158,   -39,    -5,
1823 >      -3,    18,  -736,  -736,  -736,  -736,  -736,     7,    37,    61,
1824 >      68,    83,    84,    86,    90,    91,    92,    99,   109,     8,
1825 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1826 >    -736,  -736,  -736,   651,   433,    11,  -736,   113,    38,  -736,
1827 >    -736,    53,  -736,   126,   127,   130,   131,   132,   133,   145,
1828 >     146,   150,   152,   153,   155,   159,   160,   162,   164,   165,
1829 >     166,   168,   171,   175,   176,   177,   181,   185,   191,   193,
1830 >     194,  -736,   196,  -736,   197,   198,   199,   200,   203,   218,
1831 >     219,   221,   223,   225,   227,   229,   230,   232,   233,   234,
1832 >     242,   117,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1833 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1834 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1835 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1836 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1837 >    -736,   335,     4,   304,    50,   246,    31,  -736,  -736,  -736,
1838 >     208,    52,   250,   253,    26,  -736,  -736,  -736,   503,   141,
1839 >    -736,   261,   263,   269,   271,   272,   273,   274,    27,  -736,
1840 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,   144,   276,   277,
1841 >     281,   282,   284,   291,   301,   302,   303,   306,   307,   308,
1842 >     309,   312,   314,   317,   318,   188,  -736,  -736,  -736,  -736,
1843 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1844 >    -736,  -736,  -736,  -736,     6,    15,  -736,   321,    44,  -736,
1845 >    -736,  -736,   324,   406,   424,   210,  -736,   443,   444,    72,
1846 >     445,   445,   447,   448,   452,   395,   403,   462,   445,   347,
1847 >    -736,   353,   359,   360,   361,  -736,   362,   364,   366,   368,
1848 >     374,   376,   377,   378,   384,   386,   387,   388,   222,  -736,
1849 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1850 >    -736,  -736,  -736,  -736,  -736,  -736,   355,   389,   391,   392,
1851 >     393,  -736,   397,   398,   399,   400,   401,   404,   405,   407,
1852 >      35,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1853 >    -736,  -736,  -736,  -736,  -736,  -736,   408,   410,    45,  -736,
1854 >    -736,  -736,   455,   370,  -736,  -736,   412,   413,    69,  -736,
1855 >    -736,  -736,   451,   445,   445,   514,   467,   475,   534,   519,
1856 >     480,   445,   481,   445,   542,   546,   548,   492,   495,   496,
1857 >     445,   556,   559,   445,   560,   564,   572,   573,   497,   516,
1858 >     458,   521,   464,   445,   445,   527,   528,   530,   533,   -47,
1859 >      47,   535,   536,   445,   445,   575,   445,   539,   543,   547,
1860 >     484,  -736,   488,   487,   489,  -736,   490,   498,   499,   500,
1861 >     501,   207,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1862 >    -736,  -736,   502,   508,    30,  -736,  -736,  -736,   491,  -736,
1863 >     509,   512,   513,  -736,    12,  -736,  -736,  -736,  -736,  -736,
1864 >     557,   506,  -736,   515,  -736,   599,   617,   523,  -736,   524,
1865 >     522,   525,  -736,   526,   529,   531,  -736,   532,   163,  -736,
1866 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,   540,   544,
1867 >     552,   553,    25,  -736,  -736,  -736,  -736,   577,   585,   629,
1868 >     589,   591,   596,   445,   558,  -736,  -736,   638,   620,   680,
1869 >     682,   668,   669,   671,   672,   673,   674,    36,   120,   685,
1870 >     690,   699,   691,   693,   598,  -736,   600,   603,  -736,   605,
1871 >      32,  -736,  -736,  -736,  -736,   602,   606,  -736,    59,  -736,
1872 >    -736,  -736,   709,   611,  -736,   612,   622,   628,  -736,   634,
1873 >     636,   642,   204,   644,   645,   646,   650,   652,   654,   660,
1874 >     661,   662,  -736,  -736,   746,   754,   445,   648,   779,   780,
1875 >     781,   782,   445,   445,   766,   784,   785,   445,   786,   786,
1876 >     675,  -736,  -736,   770,   107,   771,   731,   676,   775,   776,
1877 >     777,   783,   796,   787,   788,   789,   681,  -736,   790,   791,
1878 >     683,  -736,   686,  -736,   794,   795,   687,  -736,   697,   698,
1879 >     700,   704,   705,   706,   707,   708,   710,   711,   712,   713,
1880 >     714,   715,   716,   717,   718,   719,   720,   721,   722,   723,
1881 >     724,   725,   726,   729,   730,   732,   594,   733,   630,   734,
1882 >     735,   736,   737,   738,   741,   742,   743,   744,   745,   747,
1883 >     748,   749,   750,   751,   752,   753,   755,   756,  -736,  -736,
1884 >     798,   740,   728,   808,   801,   845,   853,   856,   758,  -736,
1885 >     858,   859,   761,  -736,  -736,   759,   862,   863,   881,   767,
1886 >    -736,   768,  -736,     3,   769,   772,  -736,  -736,   865,   828,
1887 >     773,   870,   872,   873,   774,   874,   778,  -736,  -736,   878,
1888 >     879,   880,   792,  -736,   793,   797,   799,   800,   802,   803,
1889 >     804,  -736,   805,   806,   807,   809,   810,   811,   812,   813,
1890 >     814,   815,  -736,  -736,  -204,  -736,  -736,  -736,  -201,  -736,
1891 >     816,   817,   818,   819,   820,  -736,  -736,   882,   821,   883,
1892 >     822,  -736,  -736,   884,   823,   827,  -736,   829,  -736,  -736,
1893 >    -736,  -736,  -736,  -736,  -736,   445,   445,   445,   445,   445,
1894 >     445,   445,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1895 >    -736,  -736,  -736,   830,   831,   832,   211,   833,   834,   835,
1896 >     836,   837,   838,   839,   840,   841,   842,    46,   843,   844,
1897 >    -736,   846,   848,   849,   850,   851,    -2,   852,   854,   855,
1898 >     857,   860,   861,   864,   866,  -736,   867,   868,  -736,  -736,
1899 >     869,   871,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1900 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1901 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1902 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1903 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1904 >    -736,  -736,  -736,  -184,  -736,  -736,  -736,  -736,  -736,  -736,
1905 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1906 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -178,  -736,
1907 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1908 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,   875,
1909 >     876,   538,   877,   885,   886,   887,   888,  -736,   889,   890,
1910 >    -736,   -17,   891,   892,   899,   824,  -736,  -736,  -736,   893,
1911 >     894,  -736,   895,    43,  -736,  -736,  -736,  -736,  -736,  -736,
1912 >     896,   900,   469,   901,   902,   903,   666,   904,  -736,   905,
1913 >     906,   907,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1914 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1915 >    -736,    36,  -736,   120,  -736,  -736,  -736,  -736,  -736,   908,
1916 >     472,   909,  -736,   910,   517,  -736,  -736,  -736,  -736,  -736,
1917 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -163,
1918 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1919 >    -736,   786,   786,   786,  -736,  -736,  -736,  -736,  -736,  -736,
1920 >    -736,  -736,  -736,  -736,  -736,  -160,  -736,  -736,  -736,  -736,
1921 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1922 >     594,  -736,   630,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1923 >    -736,  -736,  -736,  -736,  -736,  -153,  -736,  -736,  -736,  -736,
1924 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -134,  -736,  -736,
1925 >    -736,   898,   881,   911,  -736,   897,   912,   -87,   913,  -736,
1926 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1927 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -132,
1928 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1929 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1930 >    -736,  -736,  -736,  -736,  -736,  -736,   -71,  -736,  -736,  -736,
1931 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1932 >    -736,  -736,  -736,  -736,  -736,   -55,  -736,  -736,  -736,  -736,
1933 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,   -38,
1934 >    -736,  -736,   211,  -736,  -736,  -736,  -736,    -2,  -736,  -736,
1935 >    -736,   538,  -736,   -17,  -736,  -736,  -736,   914,   367,   916,
1936 >     917,  -736,  -736,   469,  -736,   666,  -736,   472,  -736,   517,
1937 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1938 >    -736,  -736,   -37,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1939 >    -736,   367,  -736
1940   };
1941  
1942   /* YYPGOTO[NTERM-NUM].  */
1943   static const yytype_int16 yypgoto[] =
1944   {
1945 <    -872,  -872,  -872,  -483,  -316,  -871,  -453,  -872,  -872,   949,
1946 <    -872,  -872,  -872,  -872,   803,  -872,  -872,  -872,    21,  -872,
1947 <      23,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1948 <    -872,  -872,  -872,  -872,  -872,  -872,   996,  -872,  -872,  -872,
1949 <    -872,  -872,   956,  -872,  -872,  -872,  -872,    58,  -872,  -872,
1950 <    -872,  -872,  -872,  -230,  -872,  -872,  -872,   604,  -872,  -872,
1951 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -186,  -872,  -872,
1952 <    -872,  -161,  -872,  -872,  -872,   810,  -872,  -872,  -872,  -872,
1953 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1954 <    -872,  -872,  -872,  -872,  -168,  -872,   611,  -872,  -872,  -872,
1955 <     -45,  -872,  -872,  -872,  -872,  -872,   638,  -872,  -872,  -872,
1956 <    -872,  -872,  -872,  -872,  -126,  -872,  -872,  -872,  -872,  -872,
1957 <    -872,   593,  -872,  -872,  -872,  -872,  -872,   952,  -872,  -872,
1958 <    -872,  -872,   555,  -872,  -872,  -872,  -872,  -872,  -136,  -872,
1959 <    -872,  -872,   582,  -872,  -872,  -872,  -872,  -129,  -872,  -872,
1960 <    -872,   793,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1961 <    -872,  -872,   -91,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1962 <    -872,  -872,  -872,  -102,  -872,   665,  -872,  -872,  -872,  -872,
1963 <    -872,   801,  -872,  -872,  -872,  -872,  1040,  -872,  -872,  -872,
1964 <    -872,  -872,  -872,   -86,  -872,   808,  -872,  -872,  -872,  -872,
1965 <     990,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1966 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1967 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1968 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1969 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,    59,
1970 <    -872,  -872,  -872,    62,  -872,  -872,  -872,  -872,  -872,  -872,
1971 <    -872,   701,  -872,  -872,  -872,  -872,  -872,   -77,  -872,  -872,
1972 <    -872,  -872,  -872,   -81,  -872,  -872,  1089,  -872,  -872,  -872,
2019 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
2020 <    -872,  -872,  -872,  -872,  -872,  -872,   953,  -872,  -872,  -872,
2021 <    -872,  -872,  -872,  -872
1945 >    -736,  -736,  -736,  -297,  -298,  -735,  -598,  -736,  -736,   915,
1946 >    -736,  -736,  -736,  -736,   757,  -736,  -736,  -736,    16,  -736,
1947 >      17,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1948 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,   937,  -736,
1949 >    -736,  -736,  -736,  -736,   826,  -736,  -736,  -736,  -736,    56,
1950 >    -736,  -736,  -736,  -736,  -736,  -220,  -736,  -736,  -736,   518,
1951 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -193,
1952 >    -736,  -736,  -736,  -188,  -736,  -736,  -736,   689,  -736,  -736,
1953 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1954 >    -736,  -736,  -736,  -736,  -736,  -736,  -138,  -736,  -736,  -736,
1955 >    -736,  -736,  -164,  -736,   609,  -736,  -736,  -736,   -46,  -736,
1956 >    -736,  -736,  -736,  -736,   623,  -736,  -736,  -736,  -736,  -736,
1957 >    -736,  -736,  -123,  -736,  -736,  -736,  -736,  -736,  -736,   565,
1958 >    -736,  -736,  -736,  -736,  -736,   918,  -736,  -736,  -736,  -736,
1959 >     541,  -736,  -736,  -736,  -736,  -736,  -128,  -736,  -736,  -736,
1960 >     537,  -736,  -736,  -736,  -736,  -129,  -736,  -736,  -736,   739,
1961 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1962 >    -103,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,   637,
1963 >    -736,  -736,  -736,  -736,  -736,   727,  -736,  -736,  -736,  -736,
1964 >     978,  -736,  -736,  -736,  -736,   760,  -736,  -736,  -736,  -736,
1965 >     932,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1966 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1967 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1968 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1969 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,    40,  -736,  -736,
1970 >    -736,    34,  -736,  -736,  -736,  -736,  -736,  1011,  -736,  -736,
1971 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1972 >    -736,  -736,   919,  -736,  -736,  -736,  -736,  -736,  -736,  -736
1973   };
1974  
1975   /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1976     positive, shift that token.  If negative, reduce the rule which
1977     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1978 < #define YYTABLE_NINF -109
1978 > #define YYTABLE_NINF -114
1979   static const yytype_int16 yytable[] =
1980   {
1981 <     713,   609,   610,   234,   712,    70,   302,   581,   616,   477,
1982 <     250,   119,    70,   545,  1117,    49,   241,    50,   400,   505,
1983 <     361,   590,   362,   496,  1123,   363,  1049,   390,   307,   496,
1984 <    1050,   478,   546,   505,    71,    54,   590,   234,   390,   302,
1985 <      56,    71,   364,   251,    72,   462,    47,    48,   463,  1051,
1986 <     479,    72,    61,  1052,   480,   400,   252,    62,  1152,  1110,
1987 <      65,   365,  1112,  1111,   506,   366,  1113,   241,    66,   253,
1988 <     254,   255,   256,  1248,  1010,  1250,    69,  1249,   506,  1251,
1989 <     120,   119,   464,   507,   367,   465,   368,  1254,   508,   257,
1990 <     116,  1255,   704,   705,   667,   668,   391,   507,   369,  1114,
1991 <    1115,  1116,   508,    73,   303,   582,  1269,   391,   681,   117,
1992 <      73,   118,   242,   686,   124,   547,   401,   230,   370,   591,
1993 <     231,   125,   706,   707,   697,   698,   466,   700,   126,   127,
1994 <     462,   232,   481,   463,   591,   710,   711,   303,   128,   715,
1995 <     243,   482,   483,   467,   548,   233,   129,   509,   371,   402,
1996 <     120,  1256,   130,   401,   497,  1257,   131,   132,   392,   133,
1997 <     497,   509,  1089,   242,  1090,   134,   248,   464,  1010,   392,
1998 <     465,   583,  1011,   581,   135,   136,   484,   372,   332,   137,
1999 <    1118,   249,   403,   857,   138,   592,   402,   498,   139,   140,
2000 <    1124,   243,   141,   498,   300,   142,   143,    79,   333,   334,
2001 <     592,  1153,   335,   144,  1258,  1154,   373,   301,  1259,   145,
2002 <     146,   466,   147,   148,   149,   150,   151,  1260,   308,   403,
2003 <     516,  1261,   267,    80,    81,   309,  1262,   152,   467,    82,
2004 <    1263,    83,   584,   235,   485,   153,   154,   155,  1012,   156,
2005 <     310,  -108,   157,   158,   781,   311,   159,   809,   499,   738,
2006 <     561,   268,   374,   773,   499,   520,   524,   160,   664,   750,
2007 <     653,   814,   526,   336,   337,   338,  1011,   235,   339,   743,
2008 <     468,   582,   313,    84,    85,  -108,   340,   518,   657,   598,
2009 <      86,    87,   161,   314,   527,   727,   162,   269,   341,   342,
2010 <     163,   164,   165,   166,   167,   970,   971,   972,   168,   169,
2011 <     315,    88,    89,   528,   343,   344,   316,   529,   170,   477,
2012 <     847,  1013,   791,   792,  1166,   317,    90,    91,   855,   856,
2013 <     270,   398,   271,   272,  1272,   318,  1274,    92,  1273,   545,
2014 <    1275,   478,  1012,   319,   345,   320,    93,   583,   171,   172,
2015 <     250,   173,  1066,  1067,  1068,  1069,  1070,   174,   546,   526,
2016 <     479,   321,   175,  1288,   480,   468,   322,   176,  1276,  1091,
2017 <     530,   460,  1277,   273,   323,   274,   275,   276,   277,   608,
2018 <     324,   527,  1092,   251,  1289,  1278,  1290,  1303,   521,  1279,
2019 <     267,  1304,   278,   795,   796,   531,   252,   860,   861,   325,
2020 <     528,   712,   326,   327,   529,   563,   328,   329,   584,   253,
2021 <     254,   255,   256,   397,   532,  1013,   983,   604,   279,   268,
2022 <     600,   409,   825,   826,   827,   828,   829,  1291,   637,   257,
2023 <     280,   125,   410,  1222,    94,    95,    96,   411,   126,   127,
2024 <     412,   547,   481,   413,   601,   414,   415,   330,   128,   603,
2025 <     416,   482,   483,   417,   418,   269,   129,   530,   419,   420,
2026 <     421,   422,   130,   423,   281,   282,   131,   132,   424,   133,
2027 <     548,   425,   579,   426,   605,   134,   427,   428,   429,   533,
2028 <     430,   431,   531,   432,   135,   136,   484,   433,   270,   137,
2029 <     271,   272,   434,   435,   138,   436,   438,   534,   139,   140,
2030 <     440,   532,   141,  1292,  1293,   142,   143,   441,   442,   443,
2031 <    1223,   444,   767,   144,   602,   445,   361,   446,   362,   145,
2032 <     146,   363,   147,   148,   149,   150,   151,   447,   448,   449,
2033 <     450,   273,   451,   274,   275,   276,   277,   152,   364,  1294,
2034 <     452,  1224,   453,   454,   485,   153,   154,   155,  1170,   156,
2035 <     278,  1225,   157,   158,   455,   456,   159,   365,  1226,   457,
2036 <     458,   366,   459,   517,   522,   523,   533,   160,  1236,   554,
2037 <    1227,   555,  1228,  1229,  1171,   556,   279,   557,   558,   559,
2038 <     367,   606,   368,   560,   534,  1230,   564,   565,   280,   566,
2039 <     567,   568,   161,  1172,   369,  1231,   162,   569,   570,  1173,
2040 <     163,   164,   165,   166,   167,   571,   572,    79,   168,   169,
2041 <     573,   574,   575,   576,   370,   577,  1174,   578,   170,   597,
2042 <     607,   608,   281,   282,   613,   611,   612,   614,   615,   617,
2043 <     618,   619,  1131,    80,    81,   620,   621,   622,   623,    82,
2044 <    1175,    83,   624,   625,   371,  1237,   626,  1176,   171,   172,
2045 <     627,   173,   628,   629,   630,   631,  1132,   174,   632,   633,
2046 <     634,  1177,   175,   635,   636,  1133,   639,   176,   640,   659,
2047 <     641,  1134,   642,   372,   643,   645,  1238,   646,   647,  1178,
2048 <     648,  1179,  1180,    84,    85,   649,  1239,  1135,   660,   650,
2049 <      86,    87,   669,  1240,     2,     3,   651,   666,   670,     4,
2050 <     652,   655,   373,   671,   332,  1241,   656,  1242,  1243,   661,
2051 <     662,    88,    89,  1136,     5,   673,   672,     6,     7,   674,
2052 <    1244,  1137,  1270,     8,   333,   334,    90,    91,   335,   675,
2053 <    1245,   676,   677,   678,  1181,   679,   680,    92,     9,   910,
2054 <     682,   683,    10,    11,  1182,    12,    93,   684,   374,   685,
2055 <     687,    13,   688,  1183,   689,   690,   691,  1184,   712,  1185,
2056 <     714,   692,   693,   694,  1138,    14,   695,   696,  1186,   699,
2057 <     701,   702,   703,   708,   933,    15,    16,   709,  1187,   716,
2058 <     717,   720,  1139,   718,   719,   722,   729,   745,   723,   336,
2059 <     337,   338,    17,   725,   339,   726,   730,   731,   733,   734,
2060 <     735,   752,   340,   755,   756,   736,   737,   740,    18,  1193,
2061 <     742,   747,   748,   749,   341,   342,   753,   754,   757,   758,
2062 <     759,   778,   783,   760,   762,   763,   775,   764,   769,   776,
2063 <     343,   344,   766,   770,    94,    95,    96,   777,   779,   780,
2064 <     784,   782,   771,   772,    19,   785,   786,   787,   788,   789,
2065 <     790,   799,   800,    20,    21,   801,   802,    22,    23,   803,
2066 <     345,   911,   912,   913,   914,   915,   816,   804,   916,   917,
2067 <     845,   805,   918,   919,   920,   806,   808,   921,   812,   922,
2068 <     923,   924,   811,   925,   926,   927,   846,   848,   928,   849,
2069 <     817,   850,   818,   819,   929,   820,   934,   935,   936,   937,
2070 <     938,   821,   851,   939,   940,   852,   822,   941,   942,   943,
2071 <     823,    24,   944,   853,   945,   946,   947,   824,   948,   949,
2072 <     950,   832,   833,   951,   834,   835,   836,   837,   838,   952,
2073 <     839,  1194,  1195,  1196,  1197,  1198,   840,   841,  1199,  1200,
2074 <     842,   843,  1201,  1202,  1203,   844,   854,  1204,   858,  1205,
2075 <    1206,  1207,   859,  1208,  1209,  1210,   862,   865,  1211,   863,
2076 <     866,   867,   868,   869,  1212,   870,   864,   873,   871,   872,
2077 <     874,   875,   876,   877,   878,   879,   984,   880,   881,   882,
2078 <     883,   884,   885,   886,   887,   888,   986,   889,   890,   987,
2079 <     891,   892,   893,   894,   895,   896,   897,   898,   899,   900,
2080 <     901,   989,   902,   903,   904,   905,   906,   907,   908,   909,
2081 <     932,   955,   956,   957,   958,   992,   959,   990,   993,   960,
2082 <     994,   961,   995,   962,   996,   963,   964,   965,   966,   967,
2083 <     968,   969,   975,   998,   976,   977,   978,   979,   980,   981,
2084 <    1000,  1003,  1004,   982,  1005,   985,   988,   997,   991,  1001,
2085 <    1021,   999,  1008,  1002,  1009,  1019,  1020,  1022,  1024,  1025,
2086 <    1023,  1026,  1027,  1028,  1029,  1033,  1030,  1031,  1032,  1034,
2087 <    1058,  1059,  1060,  1035,  1036,  1062,  1037,  1264,  1107,  1148,
2088 <     312,  1219,  1167,  1038,  1305,  1220,  1039,  1040,  1041,  1042,
2089 <    1043,  1044,  1045,  1046,  1267,  1047,   580,  1048,  1053,  1300,
2090 <    1054,  1055,  1056,  1057,  1061,  1286,  1064,  1065,  1063,  1071,
2091 <    1072,  1163,  1073,  1074,  1075,  1076,  1077,  1078,  1079,  1080,
2092 <    1081,  1082,  1299,  1083,  1084,  1265,  1085,  1086,  1087,  1088,
2093 <    1159,  1095,   751,  1096,   739,  1097,  1098,  1099,  1100,  1101,
2094 <    1102,  1103,  1104,  1284,  1105,  1106,  1121,  1122,  1127,   768,
2095 <     810,  1301,   774,  1128,  1129,  1130,  1142,  1143,  1144,  1145,
2096 <    1302,  1146,  1147,  1151,  1157,  1158,   638,  1162,  1280,  1285,
2146 <    1160,   399,  1168,  1165,  1169,  1281,   744,   461,   654,  1190,
2147 <     728,  1191,  1253,  1252,  1282,   815,  1192,  1215,  1216,  1217,
2148 <    1283,  1218,  1221,  1234,  1235,  1266,   331,  1271,  1287,  1268,
2149 <    1297,  1298,   519,   525,   658,     0,     0,     0,     0,     0,
1981 >     808,   809,   573,   574,   949,   461,  1043,   546,    47,    76,
1982 >     581,   286,   375,   468,    48,   221,   555,   990,   807,    67,
1983 >     992,   991,    45,    46,   993,   106,   508,   221,   230,    77,
1984 >      78,   461,   214,   546,  1084,    79,   346,  1059,   347,   106,
1985 >     348,  1060,    68,  1061,   949,   286,   375,  1062,   469,    69,
1986 >     214,    52,   349,    54,   385,  1031,  1032,  1033,  1181,   509,
1987 >     555,  1186,  1182,   291,   231,  1187,    58,   350,  1190,   470,
1988 >     385,   351,  1191,   376,   471,    80,    81,    59,   232,   233,
1989 >     234,   235,   236,    82,    83,    84,   107,  1192,    62,  1202,
1990 >      63,  1193,   352,  1203,   353,   629,   630,   237,   510,   950,
1991 >     107,    66,   547,   637,   354,   639,   287,   376,   222,    85,
1992 >      86,   556,   646,  1199,    70,   649,   665,   666,   112,   103,
1993 >     222,    87,    88,   113,   114,   659,   660,   462,   547,   115,
1994 >     104,   355,   223,   472,   377,   671,   672,   116,   674,   950,
1995 >     287,   105,   508,   117,   223,   118,   119,   120,   511,   386,
1996 >    1204,   807,   121,   462,  1205,   556,   356,   951,   122,   123,
1997 >     548,   124,   125,   126,   489,   386,  1206,   127,   377,   557,
1998 >    1207,   742,   743,   128,  1085,   509,   387,   129,   130,  1086,
1999 >     490,   131,   357,  1208,  1230,   292,   548,  1209,  1231,   247,
2000 >     111,   132,   387,   211,  1044,   491,   212,   951,   133,   492,
2001 >     134,   213,   135,   228,   136,   137,   138,   229,   442,   358,
2002 >     667,   668,   248,   557,   510,   284,   463,   285,   549,   293,
2003 >     139,   294,   952,   311,   443,   730,   140,   141,   142,   143,
2004 >     309,   297,   144,   145,   699,   571,   146,   312,   313,   444,
2005 >     295,   314,   463,   445,   549,   215,   249,   722,   487,   524,
2006 >     359,  -113,   692,   481,   760,   746,   747,   616,   315,   493,
2007 >     383,   298,   952,   215,   511,  1098,   563,   620,   147,  -113,
2008 >     250,   479,   148,   484,   251,   149,   150,   151,   152,   153,
2009 >     494,   765,   154,   155,   252,   299,   253,   254,   795,   812,
2010 >     813,   626,   300,   495,   801,   802,  1183,  1184,  1185,   806,
2011 >     316,   317,   318,  1017,  1018,   468,   319,   301,   302,   572,
2012 >     303,    67,   320,   321,   304,   305,   306,   255,   322,   256,
2013 >     257,   258,   259,   307,   446,   156,   157,   158,   323,   324,
2014 >     159,   447,   448,   308,    68,   160,   442,   382,   260,   440,
2015 >     469,    69,   325,   775,   776,   777,   778,   779,   780,   781,
2016 >     392,   393,   443,   112,   394,   395,   396,   397,   113,   114,
2017 >     496,   470,   261,   449,   115,   526,   471,   444,   326,   398,
2018 >     399,   445,   116,   262,   400,   497,   401,   402,   117,   403,
2019 >     118,   119,   120,   404,   405,   716,   406,   121,   407,   408,
2020 >     409,   247,   410,   122,   123,   411,   124,   125,   126,   412,
2021 >     413,   414,   127,   263,   264,   415,    70,  1215,   128,   416,
2022 >     544,   327,   129,   130,   248,   417,   131,   418,   419,   450,
2023 >     421,   423,   424,   425,   426,   472,   132,   427,   483,   688,
2024 >    1216,   568,  1217,   133,   346,   134,   347,   135,   348,   136,
2025 >     137,   138,   428,   429,   600,   430,   565,   431,   249,   432,
2026 >     349,   433,   446,   434,   435,   139,   436,   437,   438,   447,
2027 >     448,   140,   141,   142,   143,   350,   439,   144,   145,   351,
2028 >     480,   146,   250,  1102,   485,  1218,   251,   486,  1007,  1008,
2029 >    1009,  1010,  1011,  1012,  1013,   517,   252,   518,   253,   254,
2030 >     352,   449,   353,   519,  1103,   520,   521,   522,   523,  1200,
2031 >     527,   528,   354,   147,   489,   529,   530,   148,   531,  1104,
2032 >     149,   150,   151,   152,   153,   532,  1105,   154,   155,   255,
2033 >     490,   256,   257,   258,   259,   533,   534,   535,   566,   355,
2034 >     536,   537,   538,   539,  1106,   491,   540,  1155,   541,   492,
2035 >     260,   542,   543,  1219,  1220,   562,   567,   450,   569,   570,
2036 >     572,  1065,   575,   576,   356,     2,     3,   577,   578,     4,
2037 >     156,   157,   158,  1107,   261,   159,   579,   580,   582,     5,
2038 >     160,  1066,     6,     7,   583,   262,   602,   622,     8,  1221,
2039 >     357,  1067,  1169,   584,   585,   586,   588,  1068,   589,     9,
2040 >     590,   623,   591,    10,    11,  1108,  1109,  1110,   592,   493,
2041 >     593,   594,   595,    12,  1069,   263,   264,   358,   596,  1156,
2042 >     597,   598,   599,   603,   628,   604,   605,   606,    13,   631,
2043 >     494,   608,   609,   610,   611,   612,    14,    15,   613,   614,
2044 >     632,   615,   618,   495,   619,  1070,   624,   625,   633,   634,
2045 >    1157,   635,  1071,   636,   638,   861,  1111,   640,   359,  1158,
2046 >      16,   641,   311,   642,  1170,   643,  1159,  1112,   644,   645,
2047 >     654,   647,  1113,    17,   648,   650,   312,   313,  1114,   651,
2048 >     314,  1160,  1115,  1161,  1162,  1116,  1072,   652,   653,   655,
2049 >    1117,   886,   656,  1163,   657,  1171,  1118,   315,   658,  1164,
2050 >     661,   662,    18,   663,  1172,  1073,   664,   673,   669,   670,
2051 >     496,  1173,   675,    19,    20,   678,   676,    21,    22,   679,
2052 >     677,   680,   694,   681,   683,   497,  1174,  1124,  1175,  1176,
2053 >     701,   704,   684,   685,   686,   687,   690,   702,  1177,   316,
2054 >     317,   318,   691,   696,  1178,   319,   697,   698,   703,   705,
2055 >     724,   320,   321,  1074,   706,   707,   708,   322,   725,   709,
2056 >     711,   726,   727,   712,   728,   713,   715,   323,   324,   729,
2057 >     732,   718,    23,   862,   863,   864,   865,   866,   719,   867,
2058 >     868,   325,   869,   870,   871,   872,   720,   721,   873,   731,
2059 >     874,   875,   876,   733,   877,   734,   878,   735,   879,   880,
2060 >     736,   737,   881,   738,   739,   740,   741,   326,   882,   887,
2061 >     888,   889,   890,   891,   752,   892,   893,   750,   894,   895,
2062 >     896,   897,   751,   753,   898,   754,   899,   900,   901,   755,
2063 >     902,   756,   903,   762,   904,   905,   230,   757,   906,   759,
2064 >     763,   767,   768,   769,   907,  1125,  1126,  1127,  1128,  1129,
2065 >     327,  1130,  1131,   770,  1132,  1133,  1134,  1135,    76,   771,
2066 >    1136,   793,  1137,  1138,  1139,   772,  1140,   773,  1141,   794,
2067 >    1142,  1143,   231,   774,  1144,   784,   785,   786,    77,    78,
2068 >    1145,   787,   796,   788,    79,   789,   232,   233,   234,   235,
2069 >     236,   790,   791,   792,   797,   798,   799,   800,   803,   804,
2070 >     805,   807,   811,   814,   815,   237,   810,   817,   818,   819,
2071 >     816,   821,   825,   930,   828,   820,   933,   829,   832,   822,
2072 >     823,   824,   826,   827,    80,    81,   830,   831,   833,   834,
2073 >     929,   835,    82,    83,    84,   836,   837,   838,   839,   840,
2074 >     932,   841,   842,   843,   844,   845,   846,   847,   848,   849,
2075 >     850,   851,   852,   853,   854,   855,   856,   857,    85,    86,
2076 >     858,   859,   931,   860,   885,   910,   911,   912,   913,   914,
2077 >      87,    88,   915,   916,   917,   918,   919,   934,   920,   921,
2078 >     922,   923,   924,   925,   926,   935,   927,   928,   936,   937,
2079 >     938,   939,   940,   941,   942,   943,   944,   960,   947,   948,
2080 >     958,   961,   963,   959,   964,   965,   967,   962,   966,   968,
2081 >     969,   970,   971,  1194,   999,  1001,  1003,  1152,   296,  1099,
2082 >    1153,  1232,  1227,   972,   973,  1226,   717,   601,   974,  1197,
2083 >     975,   976,   545,   977,   978,   979,   980,   981,   982,  1213,
2084 >     983,   984,   985,   986,   987,   988,   989,   994,   995,   996,
2085 >     997,   998,   482,  1002,  1210,  1000,  1195,  1004,  1005,  1092,
2086 >    1006,  1014,  1015,  1016,  1021,  1022,  1023,  1024,  1025,  1026,
2087 >    1027,  1028,  1029,  1030,  1036,  1037,  1091,  1038,  1212,  1039,
2088 >    1040,  1041,  1042,  1047,   689,  1048,  1049,   723,  1050,  1228,
2089 >    1229,  1051,  1052,   700,  1211,  1053,   384,  1054,  1055,  1056,
2090 >    1057,   761,  1058,   441,  1188,   766,  1063,  1064,  1077,   617,
2091 >     310,   693,  1189,     0,     0,   621,  1078,  1079,  1080,  1081,
2092 >    1082,  1083,  1089,  1090,  1094,     0,     0,  1100,  1095,  1097,
2093 >       0,  1101,  1121,  1122,  1123,  1148,  1149,  1150,  1151,  1154,
2094 >    1167,  1168,  1196,     0,  1201,  1214,  1198,  1224,  1225,   488,
2095 >       0,     0,     0,     0,     0,     0,     0,     0,   627,     0,
2096 >       0,     0,     0,     0,     0,     0,     0,   525,     0,     0,
2097         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2151       0,   562,     0,   665,     0,     0,     0,     0,     0,     0,
2098         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2099         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2100         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2101 <       0,     0,     0,     0,     0,     0,   599
2101 >       0,     0,     0,     0,     0,     0,   564
2102   };
2103  
2104 < #define yypact_value_is_default(yystate) \
2105 <  ((yystate) == (-872))
2104 > #define yypact_value_is_default(Yystate) \
2105 >  (!!((Yystate) == (-736)))
2106  
2107 < #define yytable_value_is_error(yytable_value) \
2107 > #define yytable_value_is_error(Yytable_value) \
2108    YYID (0)
2109  
2110   static const yytype_int16 yycheck[] =
2111   {
2112 <     453,   317,   318,     1,   109,     1,     1,     1,   324,     1,
2113 <       1,     1,     1,     1,    11,   242,     1,   242,     1,     1,
2114 <       1,     1,     3,     1,    11,     6,   240,     1,   240,     1,
2115 <     244,    23,    20,     1,    30,   242,     1,     1,     1,     1,
2116 <     242,    30,    23,    34,    40,     1,   240,   241,     4,   240,
2117 <      42,    40,   242,   244,    46,     1,    47,   242,    60,   240,
2118 <     242,    42,   240,   244,    46,    46,   244,     1,   242,    60,
2119 <      61,    62,    63,   240,     1,   240,   242,   244,    46,   244,
2120 <      70,     1,    38,    65,    65,    41,    67,   240,    70,    80,
2121 <     242,   244,   175,   176,   410,   411,    70,    65,    79,   970,
2122 <     971,   972,    70,    99,    99,    99,   211,    70,   424,   242,
2123 <      99,   242,    97,   429,   242,   103,    99,   242,    99,    99,
2124 <     242,     1,   175,   176,   440,   441,    82,   443,     8,     9,
2125 <       1,   242,   124,     4,    99,   451,   452,    99,    18,   455,
2126 <     125,   133,   134,    99,   132,   242,    26,   129,   129,   132,
2127 <      70,   240,    32,    99,   132,   244,    36,    37,   132,    39,
2128 <     132,   129,    10,    97,    12,    45,   242,    38,     1,   132,
2129 <      41,   165,    99,     1,    54,    55,   168,   158,     1,    59,
2130 <     177,   242,   165,   636,    64,   165,   132,   165,    68,    69,
2131 <     177,   125,    72,   165,   242,    75,    76,     1,    21,    22,
2132 <     165,   203,    25,    83,   240,   207,   187,   242,   244,    89,
2133 <      90,    82,    92,    93,    94,    95,    96,   240,   243,   165,
2134 <     240,   244,     1,    27,    28,   243,   240,   107,    99,    33,
2135 <     244,    35,   226,   231,   226,   115,   116,   117,   165,   119,
2136 <     243,   239,   122,   123,   560,   241,   126,   241,   226,   241,
2137 <     241,    30,   233,   241,   226,   239,   241,   137,   241,   241,
2138 <     241,   241,     1,    86,    87,    88,    99,   231,    91,   241,
2139 <     226,    99,   243,    77,    78,   239,    99,   241,   241,   241,
2140 <      84,    85,   162,   243,    23,   241,   166,    66,   111,   112,
2141 <     170,   171,   172,   173,   174,    13,    14,    15,   178,   179,
2142 <     243,   105,   106,    42,   127,   128,   243,    46,   188,     1,
2143 <     626,   238,   148,   149,   241,   243,   120,   121,   634,   635,
2144 <      99,   241,   101,   102,   240,   243,   240,   131,   244,     1,
2145 <     244,    23,   165,   243,   157,   243,   140,   165,   218,   219,
2146 <       1,   221,   825,   826,   827,   828,   829,   227,    20,     1,
2147 <      42,   243,   232,    50,    46,   226,   243,   237,   240,   207,
2148 <      99,   241,   244,   142,   243,   144,   145,   146,   147,   109,
2149 <     243,    23,   220,    34,    71,   240,    73,   240,   240,   244,
2150 <       1,   244,   161,   148,   149,   124,    47,   196,   197,   243,
2151 <      42,   109,   243,   243,    46,   240,   243,   243,   226,    60,
2152 <      61,    62,    63,   243,   143,   238,   722,   109,   187,    30,
2153 <     130,   243,   152,   153,   154,   155,   156,   114,   241,    80,
2154 <     199,     1,   243,    73,   228,   229,   230,   243,     8,     9,
2155 <     243,   103,   124,   243,   130,   243,   243,   241,    18,   240,
2156 <     243,   133,   134,   243,   243,    66,    26,    99,   243,   243,
2157 <     243,   243,    32,   243,   233,   234,    36,    37,   243,    39,
2158 <     132,   243,   241,   243,   109,    45,   243,   243,   243,   208,
2159 <     243,   243,   124,   243,    54,    55,   168,   243,    99,    59,
2160 <     101,   102,   243,   243,    64,   243,   243,   226,    68,    69,
2161 <     243,   143,    72,   190,   191,    75,    76,   243,   243,   243,
2162 <     150,   243,   241,    83,   130,   243,     1,   243,     3,    89,
2163 <      90,     6,    92,    93,    94,    95,    96,   243,   243,   243,
2164 <     243,   142,   243,   144,   145,   146,   147,   107,    23,   226,
2165 <     243,   181,   243,   243,   226,   115,   116,   117,     5,   119,
2166 <     161,   191,   122,   123,   243,   243,   126,    42,   198,   243,
2167 <     243,    46,   243,   243,   243,   243,   208,   137,    73,   243,
2168 <     210,   243,   212,   213,    31,   243,   187,   243,   243,   243,
2169 <      65,   175,    67,   243,   226,   225,   243,   243,   199,   243,
2170 <     243,   243,   162,    50,    79,   235,   166,   243,   243,    56,
2171 <     170,   171,   172,   173,   174,   243,   243,     1,   178,   179,
2172 <     243,   243,   243,   243,    99,   243,    73,   243,   188,   243,
2173 <     175,   109,   233,   234,   175,   109,   109,   175,   109,   175,
2174 <     175,   175,    19,    27,    28,   175,   175,   240,   240,    33,
2175 <      97,    35,   243,   243,   129,   150,   243,   104,   218,   219,
2176 <     243,   221,   243,   243,   243,   243,    43,   227,   243,   243,
2177 <     243,   118,   232,   243,   243,    52,   240,   237,   243,   130,
2178 <     243,    58,   243,   158,   243,   243,   181,   243,   243,   136,
2179 <     243,   138,   139,    77,    78,   243,   191,    74,   240,   243,
2180 <      84,    85,   109,   198,     0,     1,   243,   175,   175,     5,
2181 <     243,   243,   187,   175,     1,   210,   243,   212,   213,   243,
2182 <     243,   105,   106,   100,    20,   130,   109,    23,    24,   175,
2183 <     225,   108,  1165,    29,    21,    22,   120,   121,    25,   109,
2184 <     235,   109,   109,   175,   191,   175,   175,   131,    44,    60,
2185 <     130,   175,    48,    49,   201,    51,   140,   109,   233,   109,
2186 <     109,    57,   109,   210,   130,   109,   109,   214,   109,   216,
2187 <     130,   175,   175,   243,   151,    71,   175,   243,   225,   175,
2188 <     175,   175,   175,   175,    60,    81,    82,   175,   235,   175,
2189 <     175,   240,   169,   175,   175,   243,   240,   240,   243,    86,
2190 <      87,    88,    98,   243,    91,   243,   243,   243,   243,   243,
2191 <     243,   175,    99,   130,   130,   243,   243,   243,   114,    60,
2192 <     243,   243,   243,   243,   111,   112,   240,   242,   240,   240,
2193 <     243,   130,   130,   243,   243,   243,   175,   243,   240,   175,
2194 <     127,   128,   243,   243,   228,   229,   230,   175,   175,   175,
2195 <     175,   240,   243,   243,   150,   130,   130,   130,   130,   130,
2196 <     130,   130,   130,   159,   160,   109,   130,   163,   164,   130,
2197 <     157,   182,   183,   184,   185,   186,   130,   240,   189,   190,
2198 <     109,   240,   193,   194,   195,   243,   243,   198,   243,   200,
2199 <     201,   202,   240,   204,   205,   206,   109,   109,   209,   109,
2200 <     240,   109,   240,   240,   215,   240,   182,   183,   184,   185,
2201 <     186,   240,   109,   189,   190,   130,   240,   193,   194,   195,
2202 <     240,   217,   198,   109,   200,   201,   202,   240,   204,   205,
2203 <     206,   240,   240,   209,   240,   240,   240,   240,   240,   215,
2204 <     240,   182,   183,   184,   185,   186,   240,   240,   189,   190,
2205 <     240,   240,   193,   194,   195,   240,   109,   198,   240,   200,
2206 <     201,   202,   130,   204,   205,   206,   130,   130,   209,   175,
2207 <     130,   130,   130,   109,   215,   130,   243,   240,   130,   130,
2208 <     130,   130,   240,   240,   130,   130,   175,   243,   240,   240,
2209 <     240,   240,   240,   240,   240,   240,   130,   240,   240,   130,
2210 <     240,   240,   240,   240,   240,   240,   240,   240,   240,   240,
2211 <     240,   130,   240,   240,   240,   240,   240,   240,   240,   240,
2212 <     240,   240,   240,   240,   240,   130,   240,   175,   109,   240,
2213 <     130,   240,   130,   240,   130,   240,   240,   240,   240,   240,
2214 <     240,   240,   240,   130,   240,   240,   240,   240,   240,   240,
2215 <     130,   130,   130,   243,   109,   243,   240,   240,   243,   240,
2216 <     130,   243,   240,   243,   240,   240,   240,   175,   130,   130,
2217 <     243,   130,   243,   130,   240,   240,   130,   130,   130,   240,
2218 <     130,   243,   130,   240,   240,   130,   240,   109,   135,   135,
2219 <      74,  1050,  1014,   240,  1304,  1052,   240,   240,   240,   240,
2220 <     240,   240,   240,   240,   130,   240,   283,   240,   240,  1275,
2221 <     240,   240,   240,   240,   240,  1263,   240,   240,   243,   240,
2222 <     240,   243,   240,   240,   240,   240,   240,   240,   240,   240,
2223 <     240,   240,  1273,   240,   240,  1160,   240,   240,   240,   240,
2224 <     180,   240,   511,   240,   486,   240,   240,   240,   240,   240,
2225 <     240,   240,   240,  1259,   240,   240,   240,   240,   240,   535,
2226 <     585,  1277,   549,   240,   240,   240,   240,   240,   240,   240,
2227 <    1279,   240,   240,   240,   240,   240,   346,   240,  1249,  1261,
2282 <     244,   121,   240,   243,   240,  1251,   501,   177,   375,   240,
2283 <     469,   240,  1113,  1111,  1255,   593,   240,   240,   240,   240,
2284 <    1257,   240,   240,   240,   240,   240,    97,   240,   240,   243,
2285 <     240,   240,   236,   244,   393,    -1,    -1,    -1,    -1,    -1,
2112 >     598,   599,   300,   301,     1,     1,     8,     1,   223,     1,
2113 >     308,     1,     1,     1,   223,     1,     1,   221,   105,     1,
2114 >     221,   225,   221,   222,   225,     1,     1,     1,     1,    21,
2115 >      22,     1,     1,     1,    51,    27,     1,   221,     3,     1,
2116 >       5,   225,    24,   221,     1,     1,     1,   225,    36,    31,
2117 >       1,   223,    17,   223,     1,     9,    10,    11,   221,    34,
2118 >       1,   221,   225,   221,    37,   225,   223,    32,   221,    57,
2119 >       1,    36,   225,    62,    62,    67,    68,   223,    51,    52,
2120 >      53,    54,    55,    75,    76,    77,    62,   221,   223,   221,
2121 >     223,   225,    57,   225,    59,   393,   394,    70,    73,    96,
2122 >      62,   223,    96,   401,    69,   403,    96,    62,    94,   101,
2123 >     102,    96,   410,   200,    96,   413,   163,   164,     1,   223,
2124 >      94,   113,   114,     6,     7,   423,   424,   123,    96,    12,
2125 >     223,    96,   118,   121,   123,   433,   434,    20,   436,    96,
2126 >      96,   223,     1,    26,   118,    28,    29,    30,   123,    96,
2127 >     221,   105,    35,   123,   225,    96,   121,   154,    41,    42,
2128 >     154,    44,    45,    46,     1,    96,   221,    50,   123,   154,
2129 >     225,   135,   136,    56,   191,    34,   123,    60,    61,   196,
2130 >      17,    64,   147,   221,   221,   224,   154,   225,   225,     1,
2131 >     223,    74,   123,   223,   196,    32,   223,   154,    81,    36,
2132 >      83,   223,    85,   223,    87,    88,    89,   223,     1,   174,
2133 >     163,   164,    24,   154,    73,   223,   212,   223,   212,   224,
2134 >     103,   224,   219,     1,    17,   523,   109,   110,   111,   112,
2135 >     222,   224,   115,   116,   222,   163,   119,    15,    16,    32,
2136 >     222,    19,   212,    36,   212,   214,    58,   222,   222,   222,
2137 >     215,   220,   222,   222,   222,   135,   136,   222,    36,    96,
2138 >     222,   224,   219,   214,   123,   222,   222,   222,   151,   220,
2139 >      82,   221,   155,   221,    86,   158,   159,   160,   161,   162,
2140 >     117,   222,   165,   166,    96,   224,    98,    99,   586,   182,
2141 >     183,   222,   224,   130,   592,   593,  1031,  1032,  1033,   597,
2142 >      78,    79,    80,    92,    93,     1,    84,   224,   224,   105,
2143 >     224,     1,    90,    91,   224,   224,   224,   129,    96,   131,
2144 >     132,   133,   134,   224,   117,   208,   209,   210,   106,   107,
2145 >     213,   124,   125,   224,    24,   218,     1,   224,   150,   222,
2146 >      36,    31,   120,   139,   140,   141,   142,   143,   144,   145,
2147 >     224,   224,    17,     1,   224,   224,   224,   224,     6,     7,
2148 >     197,    57,   174,   156,    12,   221,    62,    32,   146,   224,
2149 >     224,    36,    20,   185,   224,   212,   224,   224,    26,   224,
2150 >      28,    29,    30,   224,   224,   222,   224,    35,   224,   224,
2151 >     224,     1,   224,    41,    42,   224,    44,    45,    46,   224,
2152 >     224,   224,    50,   215,   216,   224,    96,    40,    56,   224,
2153 >     222,   189,    60,    61,    24,   224,    64,   224,   224,   212,
2154 >     224,   224,   224,   224,   224,   121,    74,   224,   220,   222,
2155 >      63,   221,    65,    81,     1,    83,     3,    85,     5,    87,
2156 >      88,    89,   224,   224,   222,   224,   122,   224,    58,   224,
2157 >      17,   224,   117,   224,   224,   103,   224,   224,   224,   124,
2158 >     125,   109,   110,   111,   112,    32,   224,   115,   116,    36,
2159 >     224,   119,    82,     4,   224,   108,    86,   224,   775,   776,
2160 >     777,   778,   779,   780,   781,   224,    96,   224,    98,    99,
2161 >      57,   156,    59,   224,    25,   224,   224,   224,   224,  1097,
2162 >     224,   224,    69,   151,     1,   224,   224,   155,   224,    40,
2163 >     158,   159,   160,   161,   162,   224,    47,   165,   166,   129,
2164 >      17,   131,   132,   133,   134,   224,   224,   224,   122,    96,
2165 >     224,   224,   224,   224,    65,    32,   224,    65,   224,    36,
2166 >     150,   224,   224,   176,   177,   224,   122,   212,   105,   105,
2167 >     105,    13,   105,   105,   121,     0,     1,   105,   163,     4,
2168 >     208,   209,   210,    94,   174,   213,   163,   105,   221,    14,
2169 >     218,    33,    17,    18,   221,   185,   221,   122,    23,   212,
2170 >     147,    43,    65,   224,   224,   224,   224,    49,   224,    34,
2171 >     224,   221,   224,    38,    39,   126,   127,   128,   224,    96,
2172 >     224,   224,   224,    48,    66,   215,   216,   174,   224,   137,
2173 >     224,   224,   224,   224,   163,   224,   224,   224,    63,   105,
2174 >     117,   224,   224,   224,   224,   224,    71,    72,   224,   224,
2175 >     163,   224,   224,   130,   224,    97,   224,   224,   163,   105,
2176 >     168,   122,   104,   163,   163,    51,   177,   105,   215,   177,
2177 >      95,   105,     1,   105,   137,   163,   184,   188,   163,   163,
2178 >     163,   105,   193,   108,   105,   105,    15,    16,   199,   105,
2179 >      19,   199,   203,   201,   202,   206,   138,   105,   105,   163,
2180 >     211,    51,   224,   211,   163,   168,   217,    36,   224,   217,
2181 >     163,   163,   137,   163,   177,   157,   163,   122,   163,   163,
2182 >     197,   184,   163,   148,   149,   221,   163,   152,   153,   221,
2183 >     163,   224,   221,   224,   224,   212,   199,    51,   201,   202,
2184 >     163,   122,   224,   224,   224,   224,   224,   221,   211,    78,
2185 >      79,    80,   224,   224,   217,    84,   224,   224,   223,   122,
2186 >     163,    90,    91,   205,   221,   221,   224,    96,   163,   224,
2187 >     224,   122,   163,   224,   163,   224,   224,   106,   107,   163,
2188 >     122,   221,   207,   169,   170,   171,   172,   173,   224,   175,
2189 >     176,   120,   178,   179,   180,   181,   224,   224,   184,   221,
2190 >     186,   187,   188,   163,   190,   105,   192,   105,   194,   195,
2191 >     122,   122,   198,   122,   122,   122,   122,   146,   204,   169,
2192 >     170,   171,   172,   173,   105,   175,   176,   122,   178,   179,
2193 >     180,   181,   122,   122,   184,   122,   186,   187,   188,   221,
2194 >     190,   221,   192,   221,   194,   195,     1,   224,   198,   224,
2195 >     224,   122,   221,   221,   204,   169,   170,   171,   172,   173,
2196 >     189,   175,   176,   221,   178,   179,   180,   181,     1,   221,
2197 >     184,   105,   186,   187,   188,   221,   190,   221,   192,   105,
2198 >     194,   195,    37,   221,   198,   221,   221,   221,    21,    22,
2199 >     204,   221,   224,   221,    27,   221,    51,    52,    53,    54,
2200 >      55,   221,   221,   221,   105,   105,   105,   105,   122,   105,
2201 >     105,   105,   122,   122,   163,    70,   221,   122,   122,   122,
2202 >     224,   105,   221,   163,   221,   122,   105,   221,   221,   122,
2203 >     122,   122,   122,   122,    67,    68,   122,   122,   221,   221,
2204 >     122,   221,    75,    76,    77,   221,   221,   221,   221,   221,
2205 >     122,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2206 >     221,   221,   221,   221,   221,   221,   221,   221,   101,   102,
2207 >     221,   221,   224,   221,   221,   221,   221,   221,   221,   221,
2208 >     113,   114,   221,   221,   221,   221,   221,   122,   221,   221,
2209 >     221,   221,   221,   221,   221,   122,   221,   221,   122,   221,
2210 >     122,   122,   221,   224,   122,   122,   105,   122,   221,   221,
2211 >     221,   163,   122,   221,   122,   122,   122,   224,   224,   221,
2212 >     122,   122,   122,   105,   122,   122,   122,   991,    71,   953,
2213 >     993,  1231,  1205,   221,   221,  1203,   498,   328,   221,   122,
2214 >     221,   221,   265,   221,   221,   221,   221,   221,   221,  1193,
2215 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2216 >     221,   221,   216,   221,  1182,   224,  1092,   224,   221,   225,
2217 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2218 >     221,   221,   221,   221,   221,   221,   167,   221,  1191,   221,
2219 >     221,   221,   221,   221,   451,   221,   221,   512,   221,  1207,
2220 >    1209,   221,   221,   474,  1187,   221,   108,   221,   221,   221,
2221 >     221,   550,   221,   161,  1060,   558,   221,   221,   221,   360,
2222 >      89,   464,  1062,    -1,    -1,   378,   221,   221,   221,   221,
2223 >     221,   221,   221,   221,   221,    -1,    -1,   221,   224,   224,
2224 >      -1,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2225 >     221,   221,   221,    -1,   221,   221,   224,   221,   221,   224,
2226 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   388,    -1,
2227 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,   238,    -1,    -1,
2228        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2287      -1,   258,    -1,   405,    -1,    -1,    -1,    -1,    -1,    -1,
2229        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2230        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2231        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2232 <      -1,    -1,    -1,    -1,    -1,    -1,   304
2232 >      -1,    -1,    -1,    -1,    -1,    -1,   288
2233   };
2234  
2235   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2236     symbol of state STATE-NUM.  */
2237   static const yytype_uint16 yystos[] =
2238   {
2239 <       0,   246,     0,     1,     5,    20,    23,    24,    29,    44,
2240 <      48,    49,    51,    57,    71,    81,    82,    98,   114,   150,
2241 <     159,   160,   163,   164,   217,   247,   252,   257,   279,   285,
2242 <     299,   317,   334,   348,   363,   370,   374,   384,   393,   413,
2243 <     423,   429,   433,   443,   503,   519,   539,   240,   241,   242,
2244 <     242,   318,   394,   424,   242,   434,   242,   504,   349,   414,
2245 <     335,   242,   242,   300,   364,   242,   242,   375,   385,   242,
2246 <       1,    30,    40,    99,   280,   281,   282,   283,   284,     1,
2247 <      27,    28,    33,    35,    77,    78,    84,    85,   105,   106,
2248 <     120,   121,   131,   140,   228,   229,   230,   520,   521,   522,
2249 <     523,   524,   525,   526,   527,   528,   529,   530,   531,   532,
2250 <     533,   534,   535,   536,   537,   538,   242,   242,   242,     1,
2251 <      70,   430,   431,   432,   242,     1,     8,     9,    18,    26,
2252 <      32,    36,    37,    39,    45,    54,    55,    59,    64,    68,
2253 <      69,    72,    75,    76,    83,    89,    90,    92,    93,    94,
2254 <      95,    96,   107,   115,   116,   117,   119,   122,   123,   126,
2255 <     137,   162,   166,   170,   171,   172,   173,   174,   178,   179,
2256 <     188,   218,   219,   221,   227,   232,   237,   444,   445,   446,
2257 <     447,   448,   449,   450,   451,   452,   453,   454,   455,   456,
2258 <     457,   458,   459,   460,   461,   462,   463,   464,   465,   466,
2259 <     467,   468,   469,   470,   471,   472,   473,   474,   475,   476,
2260 <     477,   478,   479,   480,   481,   482,   483,   484,   485,   486,
2261 <     487,   488,   489,   490,   491,   495,   499,   500,   501,   502,
2262 <     242,   242,   242,   242,     1,   231,   286,   287,   288,   289,
2263 <     290,     1,    97,   125,   253,   254,   255,   256,   242,   242,
2264 <       1,    34,    47,    60,    61,    62,    63,    80,   540,   541,
2265 <     542,   543,   544,   545,   546,   547,   548,     1,    30,    66,
2266 <      99,   101,   102,   142,   144,   145,   146,   147,   161,   187,
2267 <     199,   233,   234,   258,   259,   260,   261,   266,   267,   268,
2268 <     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
2269 <     242,   242,     1,    99,   371,   372,   373,   240,   243,   243,
2270 <     243,   241,   281,   243,   243,   243,   243,   243,   243,   243,
2271 <     243,   243,   243,   243,   243,   243,   243,   243,   243,   243,
2272 <     241,   521,     1,    21,    22,    25,    86,    87,    88,    91,
2273 <      99,   111,   112,   127,   128,   157,   319,   320,   321,   322,
2274 <     323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
2275 <     333,     1,     3,     6,    23,    42,    46,    65,    67,    79,
2276 <      99,   129,   158,   187,   233,   395,   396,   397,   398,   399,
2277 <     400,   401,   402,   403,   404,   408,   409,   410,   411,   412,
2278 <       1,    70,   132,   425,   426,   427,   428,   243,   241,   431,
2279 <       1,    99,   132,   165,   435,   439,   440,   441,   442,   243,
2280 <     243,   243,   243,   243,   243,   243,   243,   243,   243,   243,
2281 <     243,   243,   243,   243,   243,   243,   243,   243,   243,   243,
2282 <     243,   243,   243,   243,   243,   243,   243,   496,   243,   492,
2283 <     243,   243,   243,   243,   243,   243,   243,   243,   243,   243,
2284 <     243,   243,   243,   243,   243,   243,   243,   243,   243,   243,
2285 <     241,   445,     1,     4,    38,    41,    82,    99,   226,   505,
2286 <     506,   507,   508,   509,   513,   514,   515,     1,    23,    42,
2287 <      46,   124,   133,   134,   168,   226,   350,   351,   352,   353,
2288 <     354,   355,   356,   360,   361,   362,     1,   132,   165,   226,
2289 <     415,   419,   420,   421,   422,     1,    46,    65,    70,   129,
2290 <     336,   340,   341,   342,   346,   347,   240,   243,   241,   287,
2291 <     239,   240,   243,   243,   241,   254,     1,    23,    42,    46,
2292 <      99,   124,   143,   208,   226,   301,   302,   303,   304,   305,
2293 <     306,   307,   308,   309,   313,     1,    20,   103,   132,   365,
2294 <     366,   367,   368,   369,   243,   243,   243,   243,   243,   243,
2295 <     243,   241,   541,   240,   243,   243,   243,   243,   243,   243,
2296 <     243,   243,   243,   243,   243,   243,   243,   243,   243,   241,
2297 <     259,     1,    99,   165,   226,   376,   377,   378,   379,   380,
2298 <       1,    99,   165,   386,   387,   388,   389,   243,   241,   372,
2299 <     130,   130,   130,   240,   109,   109,   175,   175,   109,   249,
2300 <     249,   109,   109,   175,   175,   109,   249,   175,   175,   175,
2301 <     175,   175,   240,   240,   243,   243,   243,   243,   243,   243,
2302 <     243,   243,   243,   243,   243,   243,   243,   241,   320,   240,
2303 <     243,   243,   243,   243,   405,   243,   243,   243,   243,   243,
2304 <     243,   243,   243,   241,   396,   243,   243,   241,   426,   130,
2305 <     240,   243,   243,   436,   241,   440,   175,   249,   249,   109,
2306 <     175,   175,   109,   130,   175,   109,   109,   109,   175,   175,
2307 <     175,   249,   130,   175,   109,   109,   249,   109,   109,   130,
2308 <     109,   109,   175,   175,   243,   175,   243,   249,   249,   175,
2309 <     249,   175,   175,   175,   175,   176,   175,   176,   175,   175,
2310 <     249,   249,   109,   251,   130,   249,   175,   175,   175,   175,
2311 <     240,   516,   243,   243,   510,   243,   243,   241,   506,   240,
2312 <     243,   243,   357,   243,   243,   243,   243,   243,   241,   351,
2313 <     243,   416,   243,   241,   420,   240,   337,   243,   243,   243,
2314 <     241,   341,   175,   240,   242,   130,   130,   240,   240,   243,
2315 <     243,   314,   243,   243,   243,   310,   243,   241,   302,   240,
2316 <     243,   243,   243,   241,   366,   175,   175,   175,   130,   175,
2317 <     175,   249,   240,   130,   175,   130,   130,   130,   130,   130,
2318 <     130,   148,   149,   262,   263,   148,   149,   264,   265,   130,
2319 <     130,   109,   130,   130,   240,   240,   243,   381,   243,   241,
2320 <     377,   240,   243,   390,   241,   387,   130,   240,   240,   240,
2321 <     240,   240,   240,   240,   240,   152,   153,   154,   155,   156,
2322 <     248,   249,   240,   240,   240,   240,   240,   240,   240,   240,
2323 <     240,   240,   240,   240,   240,   109,   109,   249,   109,   109,
2324 <     109,   109,   130,   109,   109,   249,   249,   251,   240,   130,
2325 <     196,   197,   130,   175,   243,   130,   130,   130,   130,   109,
2326 <     130,   130,   130,   240,   130,   130,   240,   240,   130,   130,
2327 <     243,   240,   240,   240,   240,   240,   240,   240,   240,   240,
2328 <     240,   240,   240,   240,   240,   240,   240,   240,   240,   240,
2329 <     240,   240,   240,   240,   240,   240,   240,   240,   240,   240,
2330 <      60,   182,   183,   184,   185,   186,   189,   190,   193,   194,
2331 <     195,   198,   200,   201,   202,   204,   205,   206,   209,   215,
2332 <     497,   498,   240,    60,   182,   183,   184,   185,   186,   189,
2333 <     190,   193,   194,   195,   198,   200,   201,   202,   204,   205,
2334 <     206,   209,   215,   493,   494,   240,   240,   240,   240,   240,
2335 <     240,   240,   240,   240,   240,   240,   240,   240,   240,   240,
2336 <      13,    14,    15,   250,   251,   240,   240,   240,   240,   240,
2337 <     240,   240,   243,   249,   175,   243,   130,   130,   240,   130,
2338 <     175,   243,   130,   109,   130,   130,   130,   240,   130,   243,
2339 <     130,   240,   243,   130,   130,   109,   344,   345,   240,   240,
2340 <       1,    99,   165,   238,   291,   292,   293,   294,   295,   240,
2341 <     240,   130,   175,   243,   130,   130,   130,   243,   130,   240,
2342 <     130,   130,   130,   240,   240,   240,   240,   240,   240,   240,
2343 <     240,   240,   240,   240,   240,   240,   240,   240,   240,   240,
2344 <     244,   240,   244,   240,   240,   240,   240,   240,   130,   243,
2345 <     130,   240,   130,   243,   240,   240,   248,   248,   248,   248,
2346 <     248,   240,   240,   240,   240,   240,   240,   240,   240,   240,
2347 <     240,   240,   240,   240,   240,   240,   240,   240,   240,    10,
2348 <      12,   207,   220,   406,   407,   240,   240,   240,   240,   240,
2349 <     240,   240,   240,   240,   240,   240,   240,   135,   437,   438,
2350 <     240,   244,   240,   244,   250,   250,   250,    11,   177,   517,
2351 <     518,   240,   240,    11,   177,   511,   512,   240,   240,   240,
2352 <     240,    19,    43,    52,    58,    74,   100,   108,   151,   169,
2353 <     358,   359,   240,   240,   240,   240,   240,   240,   135,   417,
2354 <     418,   240,    60,   203,   207,   338,   339,   240,   240,   180,
2355 <     244,   343,   240,   243,   296,   243,   241,   292,   240,   240,
2356 <       5,    31,    50,    56,    73,    97,   104,   118,   136,   138,
2357 <     139,   191,   201,   210,   214,   216,   225,   235,   315,   316,
2358 <     240,   240,   240,    60,   182,   183,   184,   185,   186,   189,
2359 <     190,   193,   194,   195,   198,   200,   201,   202,   204,   205,
2360 <     206,   209,   215,   311,   312,   240,   240,   240,   240,   263,
2361 <     265,   240,    73,   150,   181,   191,   198,   210,   212,   213,
2362 <     225,   235,   382,   383,   240,   240,    73,   150,   181,   191,
2422 <     198,   210,   212,   213,   225,   235,   391,   392,   240,   244,
2423 <     240,   244,   498,   494,   240,   244,   240,   244,   240,   244,
2424 <     240,   244,   240,   244,   109,   345,   240,   130,   243,   211,
2425 <     251,   240,   240,   244,   240,   244,   240,   244,   240,   244,
2426 <     407,   438,   518,   512,   359,   418,   339,   240,    50,    71,
2427 <      73,   114,   190,   191,   226,   297,   298,   240,   240,   316,
2428 <     312,   383,   392,   240,   244,   298
2239 >       0,   227,     0,     1,     4,    14,    17,    18,    23,    34,
2240 >      38,    39,    48,    63,    71,    72,    95,   108,   137,   148,
2241 >     149,   152,   153,   207,   228,   233,   238,   262,   268,   282,
2242 >     300,   323,   337,   352,   359,   363,   373,   382,   402,   408,
2243 >     414,   418,   424,   481,   496,   221,   222,   223,   223,   301,
2244 >     383,   409,   223,   419,   223,   338,   403,   324,   223,   223,
2245 >     283,   353,   223,   223,   364,   374,   223,     1,    24,    31,
2246 >      96,   263,   264,   265,   266,   267,     1,    21,    22,    27,
2247 >      67,    68,    75,    76,    77,   101,   102,   113,   114,   482,
2248 >     483,   484,   485,   486,   487,   488,   489,   490,   491,   492,
2249 >     493,   494,   495,   223,   223,   223,     1,    62,   415,   416,
2250 >     417,   223,     1,     6,     7,    12,    20,    26,    28,    29,
2251 >      30,    35,    41,    42,    44,    45,    46,    50,    56,    60,
2252 >      61,    64,    74,    81,    83,    85,    87,    88,    89,   103,
2253 >     109,   110,   111,   112,   115,   116,   119,   151,   155,   158,
2254 >     159,   160,   161,   162,   165,   166,   208,   209,   210,   213,
2255 >     218,   425,   426,   427,   428,   429,   430,   431,   432,   433,
2256 >     434,   435,   436,   437,   438,   439,   440,   441,   442,   443,
2257 >     444,   445,   446,   447,   448,   449,   450,   451,   452,   453,
2258 >     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
2259 >     464,   465,   466,   467,   468,   469,   470,   474,   478,   479,
2260 >     480,   223,   223,   223,     1,   214,   269,   270,   271,   272,
2261 >     273,     1,    94,   118,   234,   235,   236,   237,   223,   223,
2262 >       1,    37,    51,    52,    53,    54,    55,    70,   497,   498,
2263 >     499,   500,   501,   502,   503,   504,   505,     1,    24,    58,
2264 >      82,    86,    96,    98,    99,   129,   131,   132,   133,   134,
2265 >     150,   174,   185,   215,   216,   239,   240,   241,   242,   247,
2266 >     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2267 >     258,   259,   260,   261,   223,   223,     1,    96,   360,   361,
2268 >     362,   221,   224,   224,   224,   222,   264,   224,   224,   224,
2269 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   222,
2270 >     483,     1,    15,    16,    19,    36,    78,    79,    80,    84,
2271 >      90,    91,    96,   106,   107,   120,   146,   189,   302,   303,
2272 >     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
2273 >     314,   315,   316,   317,   318,   319,     1,     3,     5,    17,
2274 >      32,    36,    57,    59,    69,    96,   121,   147,   174,   215,
2275 >     384,   385,   386,   387,   388,   389,   390,   391,   392,   393,
2276 >     397,   398,   399,   400,   401,     1,    62,   123,   410,   411,
2277 >     412,   413,   224,   222,   416,     1,    96,   123,   420,   421,
2278 >     422,   423,   224,   224,   224,   224,   224,   224,   224,   224,
2279 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2280 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2281 >     475,   224,   471,   224,   224,   224,   224,   224,   224,   224,
2282 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2283 >     222,   426,     1,    17,    32,    36,   117,   124,   125,   156,
2284 >     212,   339,   340,   341,   342,   343,   344,   345,   349,   350,
2285 >     351,     1,   123,   212,   404,   405,   406,   407,     1,    36,
2286 >      57,    62,   121,   325,   329,   330,   331,   335,   336,   221,
2287 >     224,   222,   270,   220,   221,   224,   224,   222,   235,     1,
2288 >      17,    32,    36,    96,   117,   130,   197,   212,   284,   285,
2289 >     286,   287,   288,   289,   290,   291,   292,   296,     1,    34,
2290 >      73,   123,   354,   355,   356,   357,   358,   224,   224,   224,
2291 >     224,   224,   224,   224,   222,   498,   221,   224,   224,   224,
2292 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2293 >     224,   224,   224,   224,   222,   240,     1,    96,   154,   212,
2294 >     365,   366,   367,   368,   369,     1,    96,   154,   375,   376,
2295 >     377,   378,   224,   222,   361,   122,   122,   122,   221,   105,
2296 >     105,   163,   105,   230,   230,   105,   105,   105,   163,   163,
2297 >     105,   230,   221,   221,   224,   224,   224,   320,   224,   224,
2298 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2299 >     222,   303,   221,   224,   224,   224,   224,   394,   224,   224,
2300 >     224,   224,   224,   224,   224,   224,   222,   385,   224,   224,
2301 >     222,   411,   122,   221,   224,   224,   222,   421,   163,   230,
2302 >     230,   105,   163,   163,   105,   122,   163,   230,   163,   230,
2303 >     105,   105,   105,   163,   163,   163,   230,   105,   105,   230,
2304 >     105,   105,   105,   105,   163,   163,   224,   163,   224,   230,
2305 >     230,   163,   163,   163,   163,   163,   164,   163,   164,   163,
2306 >     163,   230,   230,   122,   230,   163,   163,   163,   221,   221,
2307 >     224,   224,   346,   224,   224,   224,   224,   224,   222,   340,
2308 >     224,   224,   222,   405,   221,   326,   224,   224,   224,   222,
2309 >     330,   163,   221,   223,   122,   122,   221,   221,   224,   224,
2310 >     297,   224,   224,   224,   293,   224,   222,   285,   221,   224,
2311 >     224,   224,   222,   355,   163,   163,   122,   163,   163,   163,
2312 >     230,   221,   122,   163,   105,   105,   122,   122,   122,   122,
2313 >     122,   122,   135,   136,   243,   244,   135,   136,   245,   246,
2314 >     122,   122,   105,   122,   122,   221,   221,   224,   370,   224,
2315 >     222,   366,   221,   224,   379,   222,   376,   122,   221,   221,
2316 >     221,   221,   221,   221,   221,   139,   140,   141,   142,   143,
2317 >     144,   145,   229,   230,   221,   221,   221,   221,   221,   221,
2318 >     221,   221,   221,   105,   105,   230,   224,   105,   105,   105,
2319 >     105,   230,   230,   122,   105,   105,   230,   105,   232,   232,
2320 >     221,   122,   182,   183,   122,   163,   224,   122,   122,   122,
2321 >     122,   105,   122,   122,   122,   221,   122,   122,   221,   221,
2322 >     122,   122,   221,   221,   221,   221,   221,   221,   221,   221,
2323 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2324 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2325 >     221,    51,   169,   170,   171,   172,   173,   175,   176,   178,
2326 >     179,   180,   181,   184,   186,   187,   188,   190,   192,   194,
2327 >     195,   198,   204,   476,   477,   221,    51,   169,   170,   171,
2328 >     172,   173,   175,   176,   178,   179,   180,   181,   184,   186,
2329 >     187,   188,   190,   192,   194,   195,   198,   204,   472,   473,
2330 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2331 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   122,
2332 >     163,   224,   122,   105,   122,   122,   122,   221,   122,   122,
2333 >     221,   224,   122,   122,   105,   333,   334,   221,   221,     1,
2334 >      96,   154,   219,   274,   275,   276,   277,   278,   221,   221,
2335 >     122,   163,   224,   122,   122,   122,   224,   122,   221,   122,
2336 >     122,   122,   221,   221,   221,   221,   221,   221,   221,   221,
2337 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2338 >     221,   225,   221,   225,   221,   221,   221,   221,   221,   122,
2339 >     224,   122,   221,   122,   224,   221,   221,   229,   229,   229,
2340 >     229,   229,   229,   229,   221,   221,   221,    92,    93,   321,
2341 >     322,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2342 >     221,     9,    10,    11,   231,   232,   221,   221,   221,   221,
2343 >     221,   221,   221,     8,   196,   395,   396,   221,   221,   221,
2344 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2345 >     225,   221,   225,   221,   221,    13,    33,    43,    49,    66,
2346 >      97,   104,   138,   157,   205,   347,   348,   221,   221,   221,
2347 >     221,   221,   221,   221,    51,   191,   196,   327,   328,   221,
2348 >     221,   167,   225,   332,   221,   224,   279,   224,   222,   275,
2349 >     221,   221,     4,    25,    40,    47,    65,    94,   126,   127,
2350 >     128,   177,   188,   193,   199,   203,   206,   211,   217,   298,
2351 >     299,   221,   221,   221,    51,   169,   170,   171,   172,   173,
2352 >     175,   176,   178,   179,   180,   181,   184,   186,   187,   188,
2353 >     190,   192,   194,   195,   198,   204,   294,   295,   221,   221,
2354 >     221,   221,   244,   246,   221,    65,   137,   168,   177,   184,
2355 >     199,   201,   202,   211,   217,   371,   372,   221,   221,    65,
2356 >     137,   168,   177,   184,   199,   201,   202,   211,   217,   380,
2357 >     381,   221,   225,   231,   231,   231,   221,   225,   477,   473,
2358 >     221,   225,   221,   225,   105,   334,   221,   122,   224,   200,
2359 >     232,   221,   221,   225,   221,   225,   221,   225,   221,   225,
2360 >     322,   396,   348,   328,   221,    40,    63,    65,   108,   176,
2361 >     177,   212,   280,   281,   221,   221,   299,   295,   372,   381,
2362 >     221,   225,   281
2363   };
2364  
2365   #define yyerrok         (yyerrstatus = 0)
# Line 2472 | Line 2406 | do
2406      }                                                           \
2407   while (YYID (0))
2408  
2409 <
2409 > /* Error token number */
2410   #define YYTERROR        1
2411   #define YYERRCODE       256
2412  
2413  
2480 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2481   If N is 0, then set CURRENT to the empty location which ends
2482   the previous symbol: RHS[0] (always defined).  */
2483
2484 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2485 #ifndef YYLLOC_DEFAULT
2486 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2487    do                                                                  \
2488      if (YYID (N))                                                    \
2489        {                                                               \
2490          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2491          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2492          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2493          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2494        }                                                               \
2495      else                                                              \
2496        {                                                               \
2497          (Current).first_line   = (Current).last_line   =              \
2498            YYRHSLOC (Rhs, 0).last_line;                                \
2499          (Current).first_column = (Current).last_column =              \
2500            YYRHSLOC (Rhs, 0).last_column;                              \
2501        }                                                               \
2502    while (YYID (0))
2503 #endif
2504
2505
2414   /* This macro is provided for backward compatibility. */
2507
2415   #ifndef YY_LOCATION_PRINT
2416   # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2417   #endif
2418  
2419  
2420   /* YYLEX -- calling `yylex' with the right arguments.  */
2514
2421   #ifdef YYLEX_PARAM
2422   # define YYLEX yylex (YYLEX_PARAM)
2423   #else
# Line 2571 | Line 2477 | yy_symbol_value_print (yyoutput, yytype,
2477   # else
2478    YYUSE (yyoutput);
2479   # endif
2480 <  switch (yytype)
2575 <    {
2576 <      default:
2577 <        break;
2578 <    }
2480 >  YYUSE (yytype);
2481   }
2482  
2483  
# Line 2816 | Line 2718 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2718   {
2719    YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
2720    YYSIZE_T yysize = yysize0;
2819  YYSIZE_T yysize1;
2721    enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2722    /* Internationalized format string. */
2723    const char *yyformat = YY_NULL;
# Line 2879 | Line 2780 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2780                      break;
2781                    }
2782                  yyarg[yycount++] = yytname[yyx];
2783 <                yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2784 <                if (! (yysize <= yysize1
2785 <                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2786 <                  return 2;
2787 <                yysize = yysize1;
2783 >                {
2784 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2785 >                  if (! (yysize <= yysize1
2786 >                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2787 >                    return 2;
2788 >                  yysize = yysize1;
2789 >                }
2790                }
2791          }
2792      }
# Line 2903 | Line 2806 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2806   # undef YYCASE_
2807      }
2808  
2809 <  yysize1 = yysize + yystrlen (yyformat);
2810 <  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2811 <    return 2;
2812 <  yysize = yysize1;
2809 >  {
2810 >    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2811 >    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2812 >      return 2;
2813 >    yysize = yysize1;
2814 >  }
2815  
2816    if (*yymsg_alloc < yysize)
2817      {
# Line 2962 | Line 2867 | yydestruct (yymsg, yytype, yyvaluep)
2867      yymsg = "Deleting";
2868    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2869  
2870 <  switch (yytype)
2966 <    {
2967 <
2968 <      default:
2969 <        break;
2970 <    }
2870 >  YYUSE (yytype);
2871   }
2872  
2873  
2974 /* Prevent warnings from -Wmissing-prototypes.  */
2975 #ifdef YYPARSE_PARAM
2976 #if defined __STDC__ || defined __cplusplus
2977 int yyparse (void *YYPARSE_PARAM);
2978 #else
2979 int yyparse ();
2980 #endif
2981 #else /* ! YYPARSE_PARAM */
2982 #if defined __STDC__ || defined __cplusplus
2983 int yyparse (void);
2984 #else
2985 int yyparse ();
2986 #endif
2987 #endif /* ! YYPARSE_PARAM */
2874  
2875  
2876   /* The lookahead symbol.  */
2877   int yychar;
2878  
2879 +
2880 + #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2881 + # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2882 + # define YY_IGNORE_MAYBE_UNINITIALIZED_END
2883 + #endif
2884 + #ifndef YY_INITIAL_VALUE
2885 + # define YY_INITIAL_VALUE(Value) /* Nothing. */
2886 + #endif
2887 +
2888   /* The semantic value of the lookahead symbol.  */
2889 < YYSTYPE yylval;
2889 > YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
2890  
2891   /* Number of syntax errors so far.  */
2892   int yynerrs;
# Line 3049 | Line 2944 | yyparse ()
2944    int yyn;
2945    int yyresult;
2946    /* Lookahead token as an internal (translated) token number.  */
2947 <  int yytoken;
2947 >  int yytoken = 0;
2948    /* The variables used to return semantic value and location from the
2949       action routines.  */
2950    YYSTYPE yyval;
# Line 3067 | Line 2962 | yyparse ()
2962       Keep to zero when no symbol should be popped.  */
2963    int yylen = 0;
2964  
2965 <  yytoken = 0;
2966 <  yyss = yyssa;
3072 <  yyvs = yyvsa;
2965 >  yyssp = yyss = yyssa;
2966 >  yyvsp = yyvs = yyvsa;
2967    yystacksize = YYINITDEPTH;
2968  
2969    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 3078 | Line 2972 | yyparse ()
2972    yyerrstatus = 0;
2973    yynerrs = 0;
2974    yychar = YYEMPTY; /* Cause a token to be read.  */
3081
3082  /* Initialize stack pointers.
3083     Waste one element of value and location stack
3084     so that they stay on the same level as the state stack.
3085     The wasted elements are never initialized.  */
3086  yyssp = yyss;
3087  yyvsp = yyvs;
3088
2975    goto yysetstate;
2976  
2977   /*------------------------------------------------------------.
# Line 3226 | Line 3112 | yybackup:
3112    yychar = YYEMPTY;
3113  
3114    yystate = yyn;
3115 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3116    *++yyvsp = yylval;
3117 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
3118  
3119    goto yynewstate;
3120  
# Line 3262 | Line 3150 | yyreduce:
3150    YY_REDUCE_PRINT (yyn);
3151    switch (yyn)
3152      {
3153 <        case 27:
3154 <
3155 < /* Line 1810 of yacc.c  */
3268 < #line 383 "conf_parser.y"
3153 >        case 26:
3154 > /* Line 1787 of yacc.c  */
3155 > #line 391 "conf_parser.y"
3156      { (yyval.number) = 0; }
3157      break;
3158  
3159 <  case 29:
3160 <
3161 < /* Line 1810 of yacc.c  */
3275 < #line 385 "conf_parser.y"
3159 >  case 28:
3160 > /* Line 1787 of yacc.c  */
3161 > #line 393 "conf_parser.y"
3162      {
3163                          (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3164                  }
3165      break;
3166  
3167 <  case 30:
3168 <
3169 < /* Line 1810 of yacc.c  */
3284 < #line 389 "conf_parser.y"
3167 >  case 29:
3168 > /* Line 1787 of yacc.c  */
3169 > #line 397 "conf_parser.y"
3170      {
3171                          (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3172                  }
3173      break;
3174  
3175 <  case 31:
3176 <
3177 < /* Line 1810 of yacc.c  */
3293 < #line 393 "conf_parser.y"
3175 >  case 30:
3176 > /* Line 1787 of yacc.c  */
3177 > #line 401 "conf_parser.y"
3178      {
3179                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3180                  }
3181      break;
3182  
3183 <  case 32:
3184 <
3185 < /* Line 1810 of yacc.c  */
3302 < #line 397 "conf_parser.y"
3183 >  case 31:
3184 > /* Line 1787 of yacc.c  */
3185 > #line 405 "conf_parser.y"
3186      {
3187                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3188                  }
3189      break;
3190  
3191 <  case 33:
3192 <
3193 < /* Line 1810 of yacc.c  */
3311 < #line 401 "conf_parser.y"
3191 >  case 32:
3192 > /* Line 1787 of yacc.c  */
3193 > #line 409 "conf_parser.y"
3194      {
3195                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3196                  }
3197      break;
3198  
3199 <  case 34:
3200 <
3201 < /* Line 1810 of yacc.c  */
3320 < #line 405 "conf_parser.y"
3199 >  case 33:
3200 > /* Line 1787 of yacc.c  */
3201 > #line 413 "conf_parser.y"
3202      {
3203                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3204                  }
3205      break;
3206  
3207 +  case 34:
3208 + /* Line 1787 of yacc.c  */
3209 + #line 417 "conf_parser.y"
3210 +    {
3211 +                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[(3) - (3)].number);
3212 +                }
3213 +    break;
3214 +
3215    case 35:
3216 + /* Line 1787 of yacc.c  */
3217 + #line 421 "conf_parser.y"
3218 +    {
3219 +                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 365 + (yyvsp[(3) - (3)].number);
3220 +                }
3221 +    break;
3222  
3223 < /* Line 1810 of yacc.c  */
3224 < #line 410 "conf_parser.y"
3223 >  case 36:
3224 > /* Line 1787 of yacc.c  */
3225 > #line 426 "conf_parser.y"
3226      { (yyval.number) = 0; }
3227      break;
3228  
3229 <  case 37:
3230 <
3231 < /* Line 1810 of yacc.c  */
3336 < #line 411 "conf_parser.y"
3229 >  case 38:
3230 > /* Line 1787 of yacc.c  */
3231 > #line 427 "conf_parser.y"
3232      { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
3233      break;
3234  
3235 <  case 38:
3236 <
3237 < /* Line 1810 of yacc.c  */
3343 < #line 412 "conf_parser.y"
3235 >  case 39:
3236 > /* Line 1787 of yacc.c  */
3237 > #line 428 "conf_parser.y"
3238      { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
3239      break;
3240  
3241 <  case 39:
3242 <
3243 < /* Line 1810 of yacc.c  */
3350 < #line 413 "conf_parser.y"
3241 >  case 40:
3242 > /* Line 1787 of yacc.c  */
3243 > #line 429 "conf_parser.y"
3244      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
3245      break;
3246  
3247 <  case 40:
3248 <
3249 < /* Line 1810 of yacc.c  */
3357 < #line 414 "conf_parser.y"
3247 >  case 41:
3248 > /* Line 1787 of yacc.c  */
3249 > #line 430 "conf_parser.y"
3250      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
3251      break;
3252  
3253 <  case 47:
3254 <
3255 < /* Line 1810 of yacc.c  */
3364 < #line 428 "conf_parser.y"
3253 >  case 48:
3254 > /* Line 1787 of yacc.c  */
3255 > #line 444 "conf_parser.y"
3256      {
3257    if (conf_parser_ctx.pass == 2)
3258      add_conf_module(libio_basename(yylval.string));
3259   }
3260      break;
3261  
3262 <  case 48:
3263 <
3264 < /* Line 1810 of yacc.c  */
3374 < #line 434 "conf_parser.y"
3262 >  case 49:
3263 > /* Line 1787 of yacc.c  */
3264 > #line 450 "conf_parser.y"
3265      {
3266    if (conf_parser_ctx.pass == 2)
3267      mod_add_path(yylval.string);
3268   }
3269      break;
3270  
3271 <  case 72:
3272 <
3273 < /* Line 1810 of yacc.c  */
3384 < #line 459 "conf_parser.y"
3271 >  case 75:
3272 > /* Line 1787 of yacc.c  */
3273 > #line 476 "conf_parser.y"
3274      {
3275   #ifdef HAVE_LIBCRYPTO
3276    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
# Line 3390 | Line 3279 | yyreduce:
3279   }
3280      break;
3281  
3282 <  case 73:
3283 <
3284 < /* Line 1810 of yacc.c  */
3396 < #line 465 "conf_parser.y"
3282 >  case 76:
3283 > /* Line 1787 of yacc.c  */
3284 > #line 482 "conf_parser.y"
3285      {
3286   #ifdef HAVE_LIBCRYPTO
3287    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
# Line 3402 | Line 3290 | yyreduce:
3290   }
3291      break;
3292  
3293 <  case 76:
3294 <
3295 < /* Line 1810 of yacc.c  */
3408 < #line 474 "conf_parser.y"
3293 >  case 79:
3294 > /* Line 1787 of yacc.c  */
3295 > #line 491 "conf_parser.y"
3296      {
3297   #ifdef HAVE_LIBCRYPTO
3298    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3414 | Line 3301 | yyreduce:
3301   }
3302      break;
3303  
3304 <  case 77:
3305 <
3306 < /* Line 1810 of yacc.c  */
3420 < #line 480 "conf_parser.y"
3304 >  case 80:
3305 > /* Line 1787 of yacc.c  */
3306 > #line 497 "conf_parser.y"
3307      {
3308   #ifdef HAVE_LIBCRYPTO
3309    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3426 | Line 3312 | yyreduce:
3312   }
3313      break;
3314  
3315 <  case 78:
3316 <
3317 < /* Line 1810 of yacc.c  */
3432 < #line 488 "conf_parser.y"
3315 >  case 81:
3316 > /* Line 1787 of yacc.c  */
3317 > #line 505 "conf_parser.y"
3318      {
3319   #ifdef HAVE_LIBCRYPTO
3320    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3321    {
3322      if (!ServerInfo.rsa_private_key_file)
3323      {
3324 <      yyerror("No rsa_private_key_file specified, SSL disabled");
3324 >      conf_error_report("No rsa_private_key_file specified, SSL disabled");
3325        break;
3326      }
3327  
# Line 3445 | Line 3330 | yyreduce:
3330          SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3331                                       SSL_FILETYPE_PEM) <= 0)
3332      {
3333 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3333 >      report_crypto_errors();
3334 >      conf_error_report("Could not open/read certificate file");
3335        break;
3336      }
3337  
# Line 3454 | Line 3340 | yyreduce:
3340          SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3341                                      SSL_FILETYPE_PEM) <= 0)
3342      {
3343 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3343 >      report_crypto_errors();
3344 >      conf_error_report("Could not read RSA private key");
3345        break;
3346      }
3347  
3348      if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3349          !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3350      {
3351 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3351 >      report_crypto_errors();
3352 >      conf_error_report("Could not read RSA private key");
3353        break;
3354      }
3355    }
# Line 3469 | Line 3357 | yyreduce:
3357   }
3358      break;
3359  
3360 <  case 79:
3361 <
3362 < /* Line 1810 of yacc.c  */
3475 < #line 527 "conf_parser.y"
3360 >  case 82:
3361 > /* Line 1787 of yacc.c  */
3362 > #line 547 "conf_parser.y"
3363      {
3364   #ifdef HAVE_LIBCRYPTO
3365    if (conf_parser_ctx.pass == 1)
# Line 3491 | Line 3378 | yyreduce:
3378        ServerInfo.rsa_private_key_file = NULL;
3379      }
3380  
3381 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3381 >    ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3382  
3383      if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3384      {
3385 <      yyerror("File open failed, ignoring");
3385 >      conf_error_report("File open failed, ignoring");
3386        break;
3387      }
3388  
# Line 3506 | Line 3393 | yyreduce:
3393  
3394      if (ServerInfo.rsa_private_key == NULL)
3395      {
3396 <      yyerror("Couldn't extract key, ignoring");
3396 >      conf_error_report("Couldn't extract key, ignoring");
3397        break;
3398      }
3399  
# Line 3515 | Line 3402 | yyreduce:
3402        RSA_free(ServerInfo.rsa_private_key);
3403        ServerInfo.rsa_private_key = NULL;
3404  
3405 <      yyerror("Invalid key, ignoring");
3405 >      conf_error_report("Invalid key, ignoring");
3406        break;
3407      }
3408  
# Line 3525 | Line 3412 | yyreduce:
3412        RSA_free(ServerInfo.rsa_private_key);
3413        ServerInfo.rsa_private_key = NULL;
3414  
3415 <      yyerror("Not a 2048 bit key, ignoring");
3415 >      conf_error_report("Not a 2048 bit key, ignoring");
3416      }
3417    }
3418   #endif
3419   }
3420      break;
3421  
3422 <  case 80:
3423 <
3424 < /* Line 1810 of yacc.c  */
3538 < #line 586 "conf_parser.y"
3422 >  case 83:
3423 > /* Line 1787 of yacc.c  */
3424 > #line 606 "conf_parser.y"
3425      {
3426   /* TBD - XXX: error reporting */
3427   #ifdef HAVE_LIBCRYPTO
# Line 3552 | Line 3438 | yyreduce:
3438        if (dh)
3439        {
3440          if (DH_size(dh) < 128)
3441 <          ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3441 >          conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3442          else
3443            SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3444  
# Line 3564 | Line 3450 | yyreduce:
3450   }
3451      break;
3452  
3453 <  case 81:
3454 <
3455 < /* Line 1810 of yacc.c  */
3570 < #line 614 "conf_parser.y"
3453 >  case 84:
3454 > /* Line 1787 of yacc.c  */
3455 > #line 634 "conf_parser.y"
3456      {
3457   #ifdef HAVE_LIBCRYPTO
3458    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3576 | Line 3461 | yyreduce:
3461   }
3462      break;
3463  
3464 <  case 82:
3465 <
3466 < /* Line 1810 of yacc.c  */
3582 < #line 622 "conf_parser.y"
3464 >  case 85:
3465 > /* Line 1787 of yacc.c  */
3466 > #line 642 "conf_parser.y"
3467      {
3468    /* this isn't rehashable */
3469    if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3470    {
3471      if (valid_servname(yylval.string))
3472 <      DupString(ServerInfo.name, yylval.string);
3472 >      ServerInfo.name = xstrdup(yylval.string);
3473      else
3474      {
3475 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::name -- invalid name. Aborting.");
3475 >      conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3476        exit(0);
3477      }
3478    }
3479   }
3480      break;
3481  
3482 <  case 83:
3483 <
3484 < /* Line 1810 of yacc.c  */
3601 < #line 637 "conf_parser.y"
3482 >  case 86:
3483 > /* Line 1787 of yacc.c  */
3484 > #line 657 "conf_parser.y"
3485      {
3486    /* this isn't rehashable */
3487    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3488    {
3489      if (valid_sid(yylval.string))
3490 <      DupString(ServerInfo.sid, yylval.string);
3490 >      ServerInfo.sid = xstrdup(yylval.string);
3491      else
3492      {
3493 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
3493 >      conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3494        exit(0);
3495      }
3496    }
3497   }
3498      break;
3499  
3500 <  case 84:
3501 <
3502 < /* Line 1810 of yacc.c  */
3620 < #line 652 "conf_parser.y"
3500 >  case 87:
3501 > /* Line 1787 of yacc.c  */
3502 > #line 672 "conf_parser.y"
3503      {
3504    if (conf_parser_ctx.pass == 2)
3505    {
3506      MyFree(ServerInfo.description);
3507 <    DupString(ServerInfo.description,yylval.string);
3507 >    ServerInfo.description = xstrdup(yylval.string);
3508    }
3509   }
3510      break;
3511  
3512 <  case 85:
3513 <
3514 < /* Line 1810 of yacc.c  */
3633 < #line 661 "conf_parser.y"
3512 >  case 88:
3513 > /* Line 1787 of yacc.c  */
3514 > #line 681 "conf_parser.y"
3515      {
3516    if (conf_parser_ctx.pass == 2)
3517    {
# Line 3640 | Line 3521 | yyreduce:
3521        p = '\0';
3522  
3523      MyFree(ServerInfo.network_name);
3524 <    DupString(ServerInfo.network_name, yylval.string);
3524 >    ServerInfo.network_name = xstrdup(yylval.string);
3525    }
3526   }
3527      break;
3528  
3529 <  case 86:
3530 <
3531 < /* Line 1810 of yacc.c  */
3651 < #line 675 "conf_parser.y"
3529 >  case 89:
3530 > /* Line 1787 of yacc.c  */
3531 > #line 695 "conf_parser.y"
3532      {
3533    if (conf_parser_ctx.pass == 2)
3534    {
3535      MyFree(ServerInfo.network_desc);
3536 <    DupString(ServerInfo.network_desc, yylval.string);
3536 >    ServerInfo.network_desc = xstrdup(yylval.string);
3537    }
3538   }
3539      break;
3540  
3541 <  case 87:
3542 <
3543 < /* Line 1810 of yacc.c  */
3664 < #line 684 "conf_parser.y"
3541 >  case 90:
3542 > /* Line 1787 of yacc.c  */
3543 > #line 704 "conf_parser.y"
3544      {
3545    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3546    {
# Line 3690 | Line 3569 | yyreduce:
3569   }
3570      break;
3571  
3572 <  case 88:
3573 <
3574 < /* Line 1810 of yacc.c  */
3696 < #line 712 "conf_parser.y"
3572 >  case 91:
3573 > /* Line 1787 of yacc.c  */
3574 > #line 732 "conf_parser.y"
3575      {
3576   #ifdef IPV6
3577    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3724 | Line 3602 | yyreduce:
3602   }
3603      break;
3604  
3605 <  case 89:
3606 <
3607 < /* Line 1810 of yacc.c  */
3730 < #line 742 "conf_parser.y"
3605 >  case 92:
3606 > /* Line 1787 of yacc.c  */
3607 > #line 762 "conf_parser.y"
3608      {
3609 <  if (conf_parser_ctx.pass == 2)
3609 >  if (conf_parser_ctx.pass != 2)
3610 >    break;
3611 >
3612 >  if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3613    {
3614 <    recalc_fdlimit(NULL);
3614 >    char buf[IRCD_BUFSIZE];
3615  
3616 <    if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3617 <    {
3618 <      char buf[IRCD_BUFSIZE];
3619 <      ircsprintf(buf, "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3620 <      yyerror(buf);
3621 <    }
3622 <    else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3616 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3617 >    conf_error_report(buf);
3618 >    ServerInfo.max_clients = MAXCLIENTS_MIN;
3619 >  }
3620 >  else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3621 >  {
3622 >    char buf[IRCD_BUFSIZE];
3623 >
3624 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3625 >    conf_error_report(buf);
3626 >    ServerInfo.max_clients = MAXCLIENTS_MAX;
3627 >  }
3628 >  else
3629 >    ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3630 > }
3631 >    break;
3632 >
3633 >  case 93:
3634 > /* Line 1787 of yacc.c  */
3635 > #line 787 "conf_parser.y"
3636      {
3637 <      char buf[IRCD_BUFSIZE];
3638 <      ircsprintf(buf, "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3639 <      yyerror(buf);
3640 <    }
3641 <    else
3642 <      ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3637 >  if (conf_parser_ctx.pass != 2)
3638 >    break;
3639 >
3640 >  if ((yyvsp[(3) - (4)].number) < 9)
3641 >  {
3642 >    conf_error_report("max_nick_length too low, setting to 9");
3643 >    ServerInfo.max_nick_length = 9;
3644 >  }
3645 >  else if ((yyvsp[(3) - (4)].number) > NICKLEN)
3646 >  {
3647 >    char buf[IRCD_BUFSIZE];
3648 >
3649 >    snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3650 >    conf_error_report(buf);
3651 >    ServerInfo.max_nick_length = NICKLEN;
3652    }
3653 +  else
3654 +    ServerInfo.max_nick_length = (yyvsp[(3) - (4)].number);
3655   }
3656      break;
3657  
3658 <  case 90:
3658 >  case 94:
3659 > /* Line 1787 of yacc.c  */
3660 > #line 809 "conf_parser.y"
3661 >    {
3662 >  if (conf_parser_ctx.pass != 2)
3663 >    break;
3664  
3665 < /* Line 1810 of yacc.c  */
3666 < #line 765 "conf_parser.y"
3665 >  if ((yyvsp[(3) - (4)].number) < 80)
3666 >  {
3667 >    conf_error_report("max_topic_length too low, setting to 80");
3668 >    ServerInfo.max_topic_length = 80;
3669 >  }
3670 >  else if ((yyvsp[(3) - (4)].number) > TOPICLEN)
3671 >  {
3672 >    char buf[IRCD_BUFSIZE];
3673 >
3674 >    snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3675 >    conf_error_report(buf);
3676 >    ServerInfo.max_topic_length = TOPICLEN;
3677 >  }
3678 >  else
3679 >    ServerInfo.max_topic_length = (yyvsp[(3) - (4)].number);
3680 > }
3681 >    break;
3682 >
3683 >  case 95:
3684 > /* Line 1787 of yacc.c  */
3685 > #line 831 "conf_parser.y"
3686      {
3687    if (conf_parser_ctx.pass == 2)
3688      ServerInfo.hub = yylval.number;
3689   }
3690      break;
3691  
3692 <  case 98:
3693 <
3694 < /* Line 1810 of yacc.c  */
3767 < #line 780 "conf_parser.y"
3692 >  case 103:
3693 > /* Line 1787 of yacc.c  */
3694 > #line 846 "conf_parser.y"
3695      {
3696    if (conf_parser_ctx.pass == 2)
3697    {
3698      MyFree(AdminInfo.name);
3699 <    DupString(AdminInfo.name, yylval.string);
3699 >    AdminInfo.name = xstrdup(yylval.string);
3700    }
3701   }
3702      break;
3703  
3704 <  case 99:
3705 <
3706 < /* Line 1810 of yacc.c  */
3780 < #line 789 "conf_parser.y"
3704 >  case 104:
3705 > /* Line 1787 of yacc.c  */
3706 > #line 855 "conf_parser.y"
3707      {
3708    if (conf_parser_ctx.pass == 2)
3709    {
3710      MyFree(AdminInfo.email);
3711 <    DupString(AdminInfo.email, yylval.string);
3711 >    AdminInfo.email = xstrdup(yylval.string);
3712    }
3713   }
3714      break;
3715  
3716 <  case 100:
3717 <
3718 < /* Line 1810 of yacc.c  */
3793 < #line 798 "conf_parser.y"
3716 >  case 105:
3717 > /* Line 1787 of yacc.c  */
3718 > #line 864 "conf_parser.y"
3719      {
3720    if (conf_parser_ctx.pass == 2)
3721    {
3722      MyFree(AdminInfo.description);
3723 <    DupString(AdminInfo.description, yylval.string);
3723 >    AdminInfo.description = xstrdup(yylval.string);
3724    }
3725   }
3726      break;
3727  
3728 <  case 107:
3729 <
3730 < /* Line 1810 of yacc.c  */
3806 < #line 816 "conf_parser.y"
3728 >  case 112:
3729 > /* Line 1787 of yacc.c  */
3730 > #line 882 "conf_parser.y"
3731      {
3732    if (conf_parser_ctx.pass == 2)
3733      ConfigLoggingEntry.use_logging = yylval.number;
3734   }
3735      break;
3736  
3737 <  case 108:
3738 <
3739 < /* Line 1810 of yacc.c  */
3816 < #line 822 "conf_parser.y"
3737 >  case 113:
3738 > /* Line 1787 of yacc.c  */
3739 > #line 888 "conf_parser.y"
3740      {
3741 <  lfile[0] = '\0';
3742 <  ltype = 0;
3820 <  lsize = 0;
3741 >  if (conf_parser_ctx.pass == 2)
3742 >    reset_block_state();
3743   }
3744      break;
3745  
3746 <  case 109:
3747 <
3748 < /* Line 1810 of yacc.c  */
3827 < #line 827 "conf_parser.y"
3746 >  case 114:
3747 > /* Line 1787 of yacc.c  */
3748 > #line 892 "conf_parser.y"
3749      {
3750 <  if (conf_parser_ctx.pass == 2 && ltype > 0)
3830 <    log_add_file(ltype, lsize, lfile);
3831 < }
3750 >  if (conf_parser_ctx.pass != 2)
3751      break;
3752  
3753 <  case 116:
3754 <
3755 < /* Line 1810 of yacc.c  */
3837 < #line 839 "conf_parser.y"
3838 <    {
3839 <  strlcpy(lfile, yylval.string, sizeof(lfile));
3753 >  if (block_state.type.value && block_state.file.buf[0])
3754 >    log_set_file(block_state.type.value, block_state.size.value,
3755 >                 block_state.file.buf);
3756   }
3757      break;
3758  
3759 <  case 117:
3760 <
3761 < /* Line 1810 of yacc.c  */
3846 < #line 844 "conf_parser.y"
3759 >  case 121:
3760 > /* Line 1787 of yacc.c  */
3761 > #line 908 "conf_parser.y"
3762      {
3763 <  lsize = (yyvsp[(3) - (4)].number);
3849 < }
3763 >  if (conf_parser_ctx.pass != 2)
3764      break;
3765  
3766 <  case 118:
3853 <
3854 < /* Line 1810 of yacc.c  */
3855 < #line 847 "conf_parser.y"
3856 <    {
3857 <  lsize = 0;
3766 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3767   }
3768      break;
3769  
3770 <  case 119:
3771 <
3772 < /* Line 1810 of yacc.c  */
3864 < #line 852 "conf_parser.y"
3770 >  case 122:
3771 > /* Line 1787 of yacc.c  */
3772 > #line 916 "conf_parser.y"
3773      {
3774 <  if (conf_parser_ctx.pass == 2)
3867 <    ltype = 0;
3774 >  block_state.size.value = (yyvsp[(3) - (4)].number);
3775   }
3776      break;
3777  
3778    case 123:
3779 <
3780 < /* Line 1810 of yacc.c  */
3874 < #line 859 "conf_parser.y"
3779 > /* Line 1787 of yacc.c  */
3780 > #line 919 "conf_parser.y"
3781      {
3782 <  if (conf_parser_ctx.pass == 2)
3877 <    ltype = LOG_TYPE_USER;
3782 >  block_state.size.value = 0;
3783   }
3784      break;
3785  
3786    case 124:
3787 <
3788 < /* Line 1810 of yacc.c  */
3884 < #line 863 "conf_parser.y"
3787 > /* Line 1787 of yacc.c  */
3788 > #line 924 "conf_parser.y"
3789      {
3790    if (conf_parser_ctx.pass == 2)
3791 <    ltype = LOG_TYPE_OPER;
3791 >    block_state.type.value = 0;
3792   }
3793      break;
3794  
3795 <  case 125:
3796 <
3797 < /* Line 1810 of yacc.c  */
3894 < #line 867 "conf_parser.y"
3795 >  case 128:
3796 > /* Line 1787 of yacc.c  */
3797 > #line 931 "conf_parser.y"
3798      {
3799    if (conf_parser_ctx.pass == 2)
3800 <    ltype = LOG_TYPE_GLINE;
3800 >    block_state.type.value = LOG_TYPE_USER;
3801   }
3802      break;
3803  
3804 <  case 126:
3805 <
3806 < /* Line 1810 of yacc.c  */
3904 < #line 871 "conf_parser.y"
3804 >  case 129:
3805 > /* Line 1787 of yacc.c  */
3806 > #line 935 "conf_parser.y"
3807      {
3808    if (conf_parser_ctx.pass == 2)
3809 <    ltype = LOG_TYPE_DLINE;
3809 >    block_state.type.value = LOG_TYPE_OPER;
3810   }
3811      break;
3812  
3813 <  case 127:
3814 <
3815 < /* Line 1810 of yacc.c  */
3914 < #line 875 "conf_parser.y"
3813 >  case 130:
3814 > /* Line 1787 of yacc.c  */
3815 > #line 939 "conf_parser.y"
3816      {
3817    if (conf_parser_ctx.pass == 2)
3818 <    ltype = LOG_TYPE_KLINE;
3818 >    block_state.type.value = LOG_TYPE_GLINE;
3819   }
3820      break;
3821  
3822 <  case 128:
3823 <
3824 < /* Line 1810 of yacc.c  */
3924 < #line 879 "conf_parser.y"
3822 >  case 131:
3823 > /* Line 1787 of yacc.c  */
3824 > #line 943 "conf_parser.y"
3825      {
3826    if (conf_parser_ctx.pass == 2)
3827 <    ltype = LOG_TYPE_KILL;
3827 >    block_state.type.value = LOG_TYPE_DLINE;
3828   }
3829      break;
3830  
3831 <  case 129:
3832 <
3833 < /* Line 1810 of yacc.c  */
3934 < #line 883 "conf_parser.y"
3831 >  case 132:
3832 > /* Line 1787 of yacc.c  */
3833 > #line 947 "conf_parser.y"
3834      {
3835    if (conf_parser_ctx.pass == 2)
3836 <    ltype = LOG_TYPE_DEBUG;
3836 >    block_state.type.value = LOG_TYPE_KLINE;
3837   }
3838      break;
3839  
3840 <  case 130:
3841 <
3842 < /* Line 1810 of yacc.c  */
3944 < #line 893 "conf_parser.y"
3840 >  case 133:
3841 > /* Line 1787 of yacc.c  */
3842 > #line 951 "conf_parser.y"
3843      {
3844    if (conf_parser_ctx.pass == 2)
3845 <  {
3948 <    yy_conf = make_conf_item(OPER_TYPE);
3949 <    yy_aconf = map_to_conf(yy_conf);
3950 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
3951 <  }
3952 <  else
3953 <  {
3954 <    MyFree(class_name);
3955 <    class_name = NULL;
3956 <  }
3845 >    block_state.type.value = LOG_TYPE_KILL;
3846   }
3847      break;
3848  
3849 <  case 131:
3850 <
3851 < /* Line 1810 of yacc.c  */
3963 < #line 906 "conf_parser.y"
3849 >  case 134:
3850 > /* Line 1787 of yacc.c  */
3851 > #line 955 "conf_parser.y"
3852      {
3853    if (conf_parser_ctx.pass == 2)
3854 <  {
3855 <    struct CollectItem *yy_tmp;
3856 <    dlink_node *ptr;
3969 <    dlink_node *next_ptr;
3970 <
3971 <    conf_add_class_to_conf(yy_conf, class_name);
3972 <
3973 <    /* Now, make sure there is a copy of the "base" given oper
3974 <     * block in each of the collected copies
3975 <     */
3854 >    block_state.type.value = LOG_TYPE_DEBUG;
3855 > }
3856 >    break;
3857  
3858 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3858 >  case 135:
3859 > /* Line 1787 of yacc.c  */
3860 > #line 965 "conf_parser.y"
3861      {
3862 <      struct AccessItem *new_aconf;
3863 <      struct ConfItem *new_conf;
3981 <      yy_tmp = ptr->data;
3862 >  if (conf_parser_ctx.pass != 2)
3863 >    break;
3864  
3865 <      new_conf = make_conf_item(OPER_TYPE);
3866 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
3865 >  reset_block_state();
3866 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3867 > }
3868 >    break;
3869  
3870 <      new_aconf->flags = yy_aconf->flags;
3870 >  case 136:
3871 > /* Line 1787 of yacc.c  */
3872 > #line 972 "conf_parser.y"
3873 >    {
3874 >  dlink_node *ptr = NULL;
3875  
3876 <      if (yy_conf->name != NULL)
3877 <        DupString(new_conf->name, yy_conf->name);
3990 <      if (yy_tmp->user != NULL)
3991 <        DupString(new_aconf->user, yy_tmp->user);
3992 <      else
3993 <        DupString(new_aconf->user, "*");
3994 <      if (yy_tmp->host != NULL)
3995 <        DupString(new_aconf->host, yy_tmp->host);
3996 <      else
3997 <        DupString(new_aconf->host, "*");
3876 >  if (conf_parser_ctx.pass != 2)
3877 >    break;
3878  
3879 <      new_aconf->type = parse_netmask(new_aconf->host, &new_aconf->addr,
3880 <                                     &new_aconf->bits);
3879 >  if (!block_state.name.buf[0])
3880 >    break;
3881 > #ifdef HAVE_LIBCRYPTO
3882 >  if (!(block_state.file.buf[0] ||
3883 >        block_state.rpass.buf[0]))
3884 >    break;
3885 > #else
3886 >  if (!block_state.rpass.buf[0])
3887 >    break;
3888 > #endif
3889  
3890 <      conf_add_class_to_conf(new_conf, class_name);
3891 <      if (yy_aconf->passwd != NULL)
3892 <        DupString(new_aconf->passwd, yy_aconf->passwd);
3890 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3891 >  {
3892 >    struct MaskItem *conf = NULL;
3893 >    struct split_nuh_item nuh;
3894  
3895 <      new_aconf->port = yy_aconf->port;
3896 < #ifdef HAVE_LIBCRYPTO
3897 <      if (yy_aconf->rsa_public_key_file != NULL)
3898 <      {
3899 <        BIO *file;
3895 >    nuh.nuhmask  = ptr->data;
3896 >    nuh.nickptr  = NULL;
3897 >    nuh.userptr  = block_state.user.buf;
3898 >    nuh.hostptr  = block_state.host.buf;
3899 >    nuh.nicksize = 0;
3900 >    nuh.usersize = sizeof(block_state.user.buf);
3901 >    nuh.hostsize = sizeof(block_state.host.buf);
3902 >    split_nuh(&nuh);
3903  
3904 <        DupString(new_aconf->rsa_public_key_file,
3905 <                  yy_aconf->rsa_public_key_file);
3904 >    conf        = conf_make(CONF_OPER);
3905 >    conf->name  = xstrdup(block_state.name.buf);
3906 >    conf->user  = xstrdup(block_state.user.buf);
3907 >    conf->host  = xstrdup(block_state.host.buf);
3908 >
3909 >    if (block_state.rpass.buf[0])
3910 >      conf->passwd = xstrdup(block_state.rpass.buf);
3911 >
3912 >    conf->flags = block_state.flags.value;
3913 >    conf->modes = block_state.modes.value;
3914 >    conf->port  = block_state.port.value;
3915 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3916  
3917 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
4016 <        new_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file,
4017 <                                                           NULL, 0, NULL);
4018 <        BIO_set_close(file, BIO_CLOSE);
4019 <        BIO_free(file);
4020 <      }
4021 < #endif
3917 >    conf_add_class_to_conf(conf, block_state.class.buf);
3918  
3919   #ifdef HAVE_LIBCRYPTO
3920 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
3921 <          && yy_tmp->host)
3922 < #else
3923 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
3924 < #endif
3920 >    if (block_state.file.buf[0])
3921 >    {
3922 >      BIO *file = NULL;
3923 >      RSA *pkey = NULL;
3924 >
3925 >      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3926        {
3927 <        conf_add_class_to_conf(new_conf, class_name);
3928 <        if (yy_tmp->name != NULL)
4032 <          DupString(new_conf->name, yy_tmp->name);
3927 >        conf_error_report("Ignoring rsa_public_key_file -- file doesn't exist");
3928 >        break;
3929        }
3930  
3931 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
3932 <      free_collect_item(yy_tmp);
4037 <    }
4038 <
4039 <    yy_conf = NULL;
4040 <    yy_aconf = NULL;
4041 <
3931 >      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3932 >        conf_error_report("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3933  
3934 <    MyFree(class_name);
3935 <    class_name = NULL;
3934 >      conf->rsa_public_key = pkey;
3935 >      BIO_set_close(file, BIO_CLOSE);
3936 >      BIO_free(file);
3937 >    }
3938 > #endif /* HAVE_LIBCRYPTO */
3939    }
3940   }
3941      break;
3942  
3943 <  case 143:
3944 <
3945 < /* Line 1810 of yacc.c  */
4052 < #line 996 "conf_parser.y"
3943 >  case 148:
3944 > /* Line 1787 of yacc.c  */
3945 > #line 1047 "conf_parser.y"
3946      {
3947    if (conf_parser_ctx.pass == 2)
3948 <  {
4056 <    MyFree(yy_conf->name);
4057 <    DupString(yy_conf->name, yylval.string);
4058 <  }
3948 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3949   }
3950      break;
3951  
3952 <  case 144:
3953 <
3954 < /* Line 1810 of yacc.c  */
4065 < #line 1005 "conf_parser.y"
3952 >  case 149:
3953 > /* Line 1787 of yacc.c  */
3954 > #line 1053 "conf_parser.y"
3955      {
3956    if (conf_parser_ctx.pass == 2)
3957 <  {
4069 <    struct split_nuh_item nuh;
4070 <
4071 <    nuh.nuhmask  = yylval.string;
4072 <    nuh.nickptr  = NULL;
4073 <    nuh.userptr  = userbuf;
4074 <    nuh.hostptr  = hostbuf;
4075 <
4076 <    nuh.nicksize = 0;
4077 <    nuh.usersize = sizeof(userbuf);
4078 <    nuh.hostsize = sizeof(hostbuf);
4079 <
4080 <    split_nuh(&nuh);
4081 <
4082 <    if (yy_aconf->user == NULL)
4083 <    {
4084 <      DupString(yy_aconf->user, userbuf);
4085 <      DupString(yy_aconf->host, hostbuf);
4086 <
4087 <      yy_aconf->type = parse_netmask(yy_aconf->host, &yy_aconf->addr,
4088 <                                    &yy_aconf->bits);
4089 <    }
4090 <    else
4091 <    {
4092 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
4093 <
4094 <      DupString(yy_tmp->user, userbuf);
4095 <      DupString(yy_tmp->host, hostbuf);
4096 <
4097 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4098 <    }
4099 <  }
3957 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3958   }
3959      break;
3960  
3961 <  case 145:
3962 <
3963 < /* Line 1810 of yacc.c  */
4106 < #line 1042 "conf_parser.y"
3961 >  case 150:
3962 > /* Line 1787 of yacc.c  */
3963 > #line 1059 "conf_parser.y"
3964      {
3965    if (conf_parser_ctx.pass == 2)
3966 <  {
4110 <    if (yy_aconf->passwd != NULL)
4111 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4112 <
4113 <    MyFree(yy_aconf->passwd);
4114 <    DupString(yy_aconf->passwd, yylval.string);
4115 <  }
3966 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3967   }
3968      break;
3969  
3970 <  case 146:
3971 <
3972 < /* Line 1810 of yacc.c  */
4122 < #line 1054 "conf_parser.y"
3970 >  case 151:
3971 > /* Line 1787 of yacc.c  */
3972 > #line 1065 "conf_parser.y"
3973      {
3974    if (conf_parser_ctx.pass == 2)
3975    {
3976      if (yylval.number)
3977 <      SetConfEncrypted(yy_aconf);
3977 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3978      else
3979 <      ClearConfEncrypted(yy_aconf);
3979 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3980    }
3981   }
3982      break;
3983  
3984 <  case 147:
3985 <
3986 < /* Line 1810 of yacc.c  */
4137 < #line 1065 "conf_parser.y"
3984 >  case 152:
3985 > /* Line 1787 of yacc.c  */
3986 > #line 1076 "conf_parser.y"
3987      {
4139 #ifdef HAVE_LIBCRYPTO
3988    if (conf_parser_ctx.pass == 2)
3989 <  {
3990 <    BIO *file;
3989 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3990 > }
3991 >    break;
3992  
3993 <    if (yy_aconf->rsa_public_key != NULL)
3993 >  case 153:
3994 > /* Line 1787 of yacc.c  */
3995 > #line 1082 "conf_parser.y"
3996      {
3997 <      RSA_free(yy_aconf->rsa_public_key);
3998 <      yy_aconf->rsa_public_key = NULL;
3999 <    }
3997 >  if (conf_parser_ctx.pass == 2)
3998 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3999 > }
4000 >    break;
4001  
4002 <    if (yy_aconf->rsa_public_key_file != NULL)
4002 >  case 154:
4003 > /* Line 1787 of yacc.c  */
4004 > #line 1088 "conf_parser.y"
4005      {
4006 <      MyFree(yy_aconf->rsa_public_key_file);
4007 <      yy_aconf->rsa_public_key_file = NULL;
4008 <    }
4009 <
4156 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
4157 <    file = BIO_new_file(yylval.string, "r");
4006 >  if (conf_parser_ctx.pass == 2)
4007 >    block_state.modes.value = 0;
4008 > }
4009 >    break;
4010  
4011 <    if (file == NULL)
4011 >  case 158:
4012 > /* Line 1787 of yacc.c  */
4013 > #line 1095 "conf_parser.y"
4014      {
4015 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
4016 <      break;
4017 <    }
4018 <
4165 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
4015 >  if (conf_parser_ctx.pass == 2)
4016 >    block_state.modes.value |= UMODE_BOTS;
4017 > }
4018 >    break;
4019  
4020 <    if (yy_aconf->rsa_public_key == NULL)
4020 >  case 159:
4021 > /* Line 1787 of yacc.c  */
4022 > #line 1099 "conf_parser.y"
4023      {
4024 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
4025 <      break;
4171 <    }
4172 <
4173 <    BIO_set_close(file, BIO_CLOSE);
4174 <    BIO_free(file);
4175 <  }
4176 < #endif /* HAVE_LIBCRYPTO */
4024 >  if (conf_parser_ctx.pass == 2)
4025 >    block_state.modes.value |= UMODE_CCONN;
4026   }
4027      break;
4028  
4029 <  case 148:
4029 >  case 160:
4030 > /* Line 1787 of yacc.c  */
4031 > #line 1103 "conf_parser.y"
4032 >    {
4033 >  if (conf_parser_ctx.pass == 2)
4034 >    block_state.modes.value |= UMODE_CCONN_FULL;
4035 > }
4036 >    break;
4037  
4038 < /* Line 1810 of yacc.c  */
4038 >  case 161:
4039 > /* Line 1787 of yacc.c  */
4040   #line 1107 "conf_parser.y"
4041      {
4042    if (conf_parser_ctx.pass == 2)
4043 <  {
4187 <    MyFree(class_name);
4188 <    DupString(class_name, yylval.string);
4189 <  }
4043 >    block_state.modes.value |= UMODE_DEAF;
4044   }
4045      break;
4046  
4047 <  case 149:
4047 >  case 162:
4048 > /* Line 1787 of yacc.c  */
4049 > #line 1111 "conf_parser.y"
4050 >    {
4051 >  if (conf_parser_ctx.pass == 2)
4052 >    block_state.modes.value |= UMODE_DEBUG;
4053 > }
4054 >    break;
4055  
4056 < /* Line 1810 of yacc.c  */
4057 < #line 1116 "conf_parser.y"
4056 >  case 163:
4057 > /* Line 1787 of yacc.c  */
4058 > #line 1115 "conf_parser.y"
4059      {
4060    if (conf_parser_ctx.pass == 2)
4061 <    yy_aconf->modes = 0;
4061 >    block_state.modes.value |= UMODE_FULL;
4062   }
4063      break;
4064  
4065 <  case 153:
4065 >  case 164:
4066 > /* Line 1787 of yacc.c  */
4067 > #line 1119 "conf_parser.y"
4068 >    {
4069 >  if (conf_parser_ctx.pass == 2)
4070 >    block_state.modes.value |= UMODE_HIDDEN;
4071 > }
4072 >    break;
4073  
4074 < /* Line 1810 of yacc.c  */
4074 >  case 165:
4075 > /* Line 1787 of yacc.c  */
4076   #line 1123 "conf_parser.y"
4077      {
4078    if (conf_parser_ctx.pass == 2)
4079 <    yy_aconf->modes |= UMODE_BOTS;
4079 >    block_state.modes.value |= UMODE_SKILL;
4080   }
4081      break;
4082  
4083 <  case 154:
4084 <
4215 < /* Line 1810 of yacc.c  */
4083 >  case 166:
4084 > /* Line 1787 of yacc.c  */
4085   #line 1127 "conf_parser.y"
4086      {
4087    if (conf_parser_ctx.pass == 2)
4088 <    yy_aconf->modes |= UMODE_CCONN;
4088 >    block_state.modes.value |= UMODE_NCHANGE;
4089   }
4090      break;
4091  
4092 <  case 155:
4093 <
4225 < /* Line 1810 of yacc.c  */
4092 >  case 167:
4093 > /* Line 1787 of yacc.c  */
4094   #line 1131 "conf_parser.y"
4095      {
4096    if (conf_parser_ctx.pass == 2)
4097 <    yy_aconf->modes |= UMODE_CCONN_FULL;
4097 >    block_state.modes.value |= UMODE_REJ;
4098   }
4099      break;
4100  
4101 <  case 156:
4102 <
4235 < /* Line 1810 of yacc.c  */
4101 >  case 168:
4102 > /* Line 1787 of yacc.c  */
4103   #line 1135 "conf_parser.y"
4104      {
4105    if (conf_parser_ctx.pass == 2)
4106 <    yy_aconf->modes |= UMODE_DEAF;
4106 >    block_state.modes.value |= UMODE_UNAUTH;
4107   }
4108      break;
4109  
4110 <  case 157:
4111 <
4245 < /* Line 1810 of yacc.c  */
4110 >  case 169:
4111 > /* Line 1787 of yacc.c  */
4112   #line 1139 "conf_parser.y"
4113      {
4114    if (conf_parser_ctx.pass == 2)
4115 <    yy_aconf->modes |= UMODE_DEBUG;
4115 >    block_state.modes.value |= UMODE_SPY;
4116   }
4117      break;
4118  
4119 <  case 158:
4120 <
4255 < /* Line 1810 of yacc.c  */
4119 >  case 170:
4120 > /* Line 1787 of yacc.c  */
4121   #line 1143 "conf_parser.y"
4122      {
4123    if (conf_parser_ctx.pass == 2)
4124 <    yy_aconf->modes |= UMODE_FULL;
4124 >    block_state.modes.value |= UMODE_EXTERNAL;
4125   }
4126      break;
4127  
4128 <  case 159:
4129 <
4265 < /* Line 1810 of yacc.c  */
4128 >  case 171:
4129 > /* Line 1787 of yacc.c  */
4130   #line 1147 "conf_parser.y"
4131      {
4132    if (conf_parser_ctx.pass == 2)
4133 <    yy_aconf->modes |= UMODE_HIDDEN;
4133 >    block_state.modes.value |= UMODE_OPERWALL;
4134   }
4135      break;
4136  
4137 <  case 160:
4138 <
4275 < /* Line 1810 of yacc.c  */
4137 >  case 172:
4138 > /* Line 1787 of yacc.c  */
4139   #line 1151 "conf_parser.y"
4140      {
4141    if (conf_parser_ctx.pass == 2)
4142 <    yy_aconf->modes |= UMODE_SKILL;
4142 >    block_state.modes.value |= UMODE_SERVNOTICE;
4143   }
4144      break;
4145  
4146 <  case 161:
4147 <
4285 < /* Line 1810 of yacc.c  */
4146 >  case 173:
4147 > /* Line 1787 of yacc.c  */
4148   #line 1155 "conf_parser.y"
4149      {
4150    if (conf_parser_ctx.pass == 2)
4151 <    yy_aconf->modes |= UMODE_NCHANGE;
4151 >    block_state.modes.value |= UMODE_INVISIBLE;
4152   }
4153      break;
4154  
4155 <  case 162:
4156 <
4295 < /* Line 1810 of yacc.c  */
4155 >  case 174:
4156 > /* Line 1787 of yacc.c  */
4157   #line 1159 "conf_parser.y"
4158      {
4159    if (conf_parser_ctx.pass == 2)
4160 <    yy_aconf->modes |= UMODE_REJ;
4160 >    block_state.modes.value |= UMODE_WALLOP;
4161   }
4162      break;
4163  
4164 <  case 163:
4165 <
4305 < /* Line 1810 of yacc.c  */
4164 >  case 175:
4165 > /* Line 1787 of yacc.c  */
4166   #line 1163 "conf_parser.y"
4167      {
4168    if (conf_parser_ctx.pass == 2)
4169 <    yy_aconf->modes |= UMODE_UNAUTH;
4169 >    block_state.modes.value |= UMODE_SOFTCALLERID;
4170   }
4171      break;
4172  
4173 <  case 164:
4174 <
4315 < /* Line 1810 of yacc.c  */
4173 >  case 176:
4174 > /* Line 1787 of yacc.c  */
4175   #line 1167 "conf_parser.y"
4176      {
4177    if (conf_parser_ctx.pass == 2)
4178 <    yy_aconf->modes |= UMODE_SPY;
4178 >    block_state.modes.value |= UMODE_CALLERID;
4179   }
4180      break;
4181  
4182 <  case 165:
4183 <
4325 < /* Line 1810 of yacc.c  */
4182 >  case 177:
4183 > /* Line 1787 of yacc.c  */
4184   #line 1171 "conf_parser.y"
4185      {
4186    if (conf_parser_ctx.pass == 2)
4187 <    yy_aconf->modes |= UMODE_EXTERNAL;
4187 >    block_state.modes.value |= UMODE_LOCOPS;
4188   }
4189      break;
4190  
4191 <  case 166:
4192 <
4335 < /* Line 1810 of yacc.c  */
4191 >  case 178:
4192 > /* Line 1787 of yacc.c  */
4193   #line 1175 "conf_parser.y"
4194      {
4195    if (conf_parser_ctx.pass == 2)
4196 <    yy_aconf->modes |= UMODE_OPERWALL;
4196 >    block_state.modes.value |= UMODE_REGONLY;
4197   }
4198      break;
4199  
4200 <  case 167:
4201 <
4345 < /* Line 1810 of yacc.c  */
4200 >  case 179:
4201 > /* Line 1787 of yacc.c  */
4202   #line 1179 "conf_parser.y"
4203      {
4204    if (conf_parser_ctx.pass == 2)
4205 <    yy_aconf->modes |= UMODE_SERVNOTICE;
4205 >    block_state.modes.value |= UMODE_FARCONNECT;
4206   }
4207      break;
4208  
4209 <  case 168:
4210 <
4211 < /* Line 1810 of yacc.c  */
4356 < #line 1183 "conf_parser.y"
4209 >  case 180:
4210 > /* Line 1787 of yacc.c  */
4211 > #line 1185 "conf_parser.y"
4212      {
4213    if (conf_parser_ctx.pass == 2)
4214 <    yy_aconf->modes |= UMODE_INVISIBLE;
4214 >    block_state.port.value = 0;
4215   }
4216      break;
4217  
4218 <  case 169:
4219 <
4220 < /* Line 1810 of yacc.c  */
4366 < #line 1187 "conf_parser.y"
4218 >  case 184:
4219 > /* Line 1787 of yacc.c  */
4220 > #line 1192 "conf_parser.y"
4221      {
4222    if (conf_parser_ctx.pass == 2)
4223 <    yy_aconf->modes |= UMODE_WALLOP;
4223 >    block_state.port.value |= OPER_FLAG_GLOBAL_KILL;
4224   }
4225      break;
4226  
4227 <  case 170:
4228 <
4229 < /* Line 1810 of yacc.c  */
4376 < #line 1191 "conf_parser.y"
4227 >  case 185:
4228 > /* Line 1787 of yacc.c  */
4229 > #line 1196 "conf_parser.y"
4230      {
4231    if (conf_parser_ctx.pass == 2)
4232 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
4232 >    block_state.port.value |= OPER_FLAG_REMOTE;
4233   }
4234      break;
4235  
4236 <  case 171:
4237 <
4238 < /* Line 1810 of yacc.c  */
4386 < #line 1195 "conf_parser.y"
4236 >  case 186:
4237 > /* Line 1787 of yacc.c  */
4238 > #line 1200 "conf_parser.y"
4239      {
4240    if (conf_parser_ctx.pass == 2)
4241 <    yy_aconf->modes |= UMODE_CALLERID;
4241 >    block_state.port.value |= OPER_FLAG_K;
4242   }
4243      break;
4244  
4245 <  case 172:
4246 <
4247 < /* Line 1810 of yacc.c  */
4396 < #line 1199 "conf_parser.y"
4245 >  case 187:
4246 > /* Line 1787 of yacc.c  */
4247 > #line 1204 "conf_parser.y"
4248      {
4249    if (conf_parser_ctx.pass == 2)
4250 <    yy_aconf->modes |= UMODE_LOCOPS;
4250 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4251   }
4252      break;
4253  
4254 <  case 173:
4255 <
4256 < /* Line 1810 of yacc.c  */
4406 < #line 1205 "conf_parser.y"
4254 >  case 188:
4255 > /* Line 1787 of yacc.c  */
4256 > #line 1208 "conf_parser.y"
4257      {
4258    if (conf_parser_ctx.pass == 2)
4259 <    yy_aconf->port = 0;
4259 >    block_state.port.value |= OPER_FLAG_DLINE;
4260   }
4261      break;
4262  
4263 <  case 177:
4264 <
4415 < /* Line 1810 of yacc.c  */
4263 >  case 189:
4264 > /* Line 1787 of yacc.c  */
4265   #line 1212 "conf_parser.y"
4266      {
4267    if (conf_parser_ctx.pass == 2)
4268 <    yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4268 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4269   }
4270      break;
4271  
4272 <  case 178:
4273 <
4425 < /* Line 1810 of yacc.c  */
4272 >  case 190:
4273 > /* Line 1787 of yacc.c  */
4274   #line 1216 "conf_parser.y"
4275      {
4276    if (conf_parser_ctx.pass == 2)
4277 <    yy_aconf->port |= OPER_FLAG_REMOTE;
4277 >    block_state.port.value |= OPER_FLAG_X;
4278   }
4279      break;
4280  
4281 <  case 179:
4282 <
4435 < /* Line 1810 of yacc.c  */
4281 >  case 191:
4282 > /* Line 1787 of yacc.c  */
4283   #line 1220 "conf_parser.y"
4284      {
4285    if (conf_parser_ctx.pass == 2)
4286 <    yy_aconf->port |= OPER_FLAG_K;
4286 >    block_state.port.value |= OPER_FLAG_GLINE;
4287   }
4288      break;
4289  
4290 <  case 180:
4291 <
4445 < /* Line 1810 of yacc.c  */
4290 >  case 192:
4291 > /* Line 1787 of yacc.c  */
4292   #line 1224 "conf_parser.y"
4293      {
4294    if (conf_parser_ctx.pass == 2)
4295 <    yy_aconf->port |= OPER_FLAG_UNKLINE;
4295 >    block_state.port.value |= OPER_FLAG_DIE;
4296   }
4297      break;
4298  
4299 <  case 181:
4300 <
4455 < /* Line 1810 of yacc.c  */
4299 >  case 193:
4300 > /* Line 1787 of yacc.c  */
4301   #line 1228 "conf_parser.y"
4302      {
4303    if (conf_parser_ctx.pass == 2)
4304 <    yy_aconf->port |= OPER_FLAG_DLINE;
4304 >    block_state.port.value |= OPER_FLAG_RESTART;
4305   }
4306      break;
4307  
4308 <  case 182:
4309 <
4465 < /* Line 1810 of yacc.c  */
4308 >  case 194:
4309 > /* Line 1787 of yacc.c  */
4310   #line 1232 "conf_parser.y"
4311      {
4312    if (conf_parser_ctx.pass == 2)
4313 <    yy_aconf->port |= OPER_FLAG_UNDLINE;
4313 >    block_state.port.value |= OPER_FLAG_REHASH;
4314   }
4315      break;
4316  
4317 <  case 183:
4318 <
4475 < /* Line 1810 of yacc.c  */
4317 >  case 195:
4318 > /* Line 1787 of yacc.c  */
4319   #line 1236 "conf_parser.y"
4320      {
4321    if (conf_parser_ctx.pass == 2)
4322 <    yy_aconf->port |= OPER_FLAG_X;
4322 >    block_state.port.value |= OPER_FLAG_ADMIN;
4323   }
4324      break;
4325  
4326 <  case 184:
4327 <
4485 < /* Line 1810 of yacc.c  */
4326 >  case 196:
4327 > /* Line 1787 of yacc.c  */
4328   #line 1240 "conf_parser.y"
4329      {
4330    if (conf_parser_ctx.pass == 2)
4331 <    yy_aconf->port |= OPER_FLAG_GLINE;
4331 >    block_state.port.value |= OPER_FLAG_OPERWALL;
4332   }
4333      break;
4334  
4335 <  case 185:
4336 <
4495 < /* Line 1810 of yacc.c  */
4335 >  case 197:
4336 > /* Line 1787 of yacc.c  */
4337   #line 1244 "conf_parser.y"
4338      {
4339    if (conf_parser_ctx.pass == 2)
4340 <    yy_aconf->port |= OPER_FLAG_DIE;
4340 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4341   }
4342      break;
4343  
4344 <  case 186:
4345 <
4505 < /* Line 1810 of yacc.c  */
4344 >  case 198:
4345 > /* Line 1787 of yacc.c  */
4346   #line 1248 "conf_parser.y"
4347      {
4348    if (conf_parser_ctx.pass == 2)
4349 <    yy_aconf->port |= OPER_FLAG_RESTART;
4349 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4350   }
4351      break;
4352  
4353 <  case 187:
4354 <
4515 < /* Line 1810 of yacc.c  */
4353 >  case 199:
4354 > /* Line 1787 of yacc.c  */
4355   #line 1252 "conf_parser.y"
4356      {
4357    if (conf_parser_ctx.pass == 2)
4358 <    yy_aconf->port |= OPER_FLAG_REHASH;
4358 >    block_state.port.value |= OPER_FLAG_SET;
4359   }
4360      break;
4361  
4362 <  case 188:
4363 <
4525 < /* Line 1810 of yacc.c  */
4362 >  case 200:
4363 > /* Line 1787 of yacc.c  */
4364   #line 1256 "conf_parser.y"
4365      {
4366    if (conf_parser_ctx.pass == 2)
4367 <    yy_aconf->port |= OPER_FLAG_ADMIN;
4367 >    block_state.port.value |= OPER_FLAG_MODULE;
4368   }
4369      break;
4370  
4371 <  case 189:
4372 <
4373 < /* Line 1810 of yacc.c  */
4536 < #line 1260 "conf_parser.y"
4371 >  case 201:
4372 > /* Line 1787 of yacc.c  */
4373 > #line 1266 "conf_parser.y"
4374      {
4375 <  if (conf_parser_ctx.pass == 2)
4539 <    yy_aconf->port |= OPER_FLAG_N;
4540 < }
4375 >  if (conf_parser_ctx.pass != 1)
4376      break;
4377  
4378 <  case 190:
4378 >  reset_block_state();
4379  
4380 < /* Line 1810 of yacc.c  */
4381 < #line 1264 "conf_parser.y"
4382 <    {
4383 <  if (conf_parser_ctx.pass == 2)
4384 <    yy_aconf->port |= OPER_FLAG_OPERWALL;
4380 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4381 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4382 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4383 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4384 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4385   }
4386      break;
4387  
4388 <  case 191:
4389 <
4390 < /* Line 1810 of yacc.c  */
4556 < #line 1268 "conf_parser.y"
4388 >  case 202:
4389 > /* Line 1787 of yacc.c  */
4390 > #line 1278 "conf_parser.y"
4391      {
4392 <  if (conf_parser_ctx.pass == 2)
4559 <    yy_aconf->port |= OPER_FLAG_GLOBOPS;
4560 < }
4561 <    break;
4392 >  struct ClassItem *class = NULL;
4393  
4394 <  case 192:
4394 >  if (conf_parser_ctx.pass != 1)
4395 >    break;
4396  
4397 < /* Line 1810 of yacc.c  */
4566 < #line 1272 "conf_parser.y"
4567 <    {
4568 <  if (conf_parser_ctx.pass == 2)
4569 <    yy_aconf->port |= OPER_FLAG_OPER_SPY;
4570 < }
4397 >  if (!block_state.class.buf[0])
4398      break;
4399  
4400 <  case 193:
4400 >  if (!(class = class_find(block_state.class.buf, 0)))
4401 >    class = class_make();
4402  
4403 < /* Line 1810 of yacc.c  */
4404 < #line 1276 "conf_parser.y"
4405 <    {
4406 <  if (conf_parser_ctx.pass == 2)
4407 <    yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4408 < }
4409 <    break;
4403 >  class->active = 1;
4404 >  MyFree(class->name);
4405 >  class->name = xstrdup(block_state.class.buf);
4406 >  class->ping_freq = block_state.ping_freq.value;
4407 >  class->max_perip = block_state.max_perip.value;
4408 >  class->con_freq = block_state.con_freq.value;
4409 >  class->max_total = block_state.max_total.value;
4410 >  class->max_global = block_state.max_global.value;
4411 >  class->max_local = block_state.max_local.value;
4412 >  class->max_ident = block_state.max_ident.value;
4413 >  class->max_sendq = block_state.max_sendq.value;
4414 >  class->max_recvq = block_state.max_recvq.value;
4415  
4416 <  case 194:
4416 >  if (block_state.min_idle.value > block_state.max_idle.value)
4417 >  {
4418 >    block_state.min_idle.value = 0;
4419 >    block_state.max_idle.value = 0;
4420 >    block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4421 >  }
4422  
4423 < /* Line 1810 of yacc.c  */
4424 < #line 1280 "conf_parser.y"
4425 <    {
4426 <  if (conf_parser_ctx.pass == 2)
4427 <    yy_aconf->port |= OPER_FLAG_MODULE;
4423 >  class->flags = block_state.flags.value;
4424 >  class->min_idle = block_state.min_idle.value;
4425 >  class->max_idle = block_state.max_idle.value;
4426 >
4427 >  if (class->number_per_cidr && block_state.number_per_cidr.value)
4428 >    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4429 >        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4430 >      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4431 >          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4432 >        rebuild_cidr_list(class);
4433 >
4434 >  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4435 >  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4436 >  class->number_per_cidr = block_state.number_per_cidr.value;
4437   }
4438      break;
4439  
4440 <  case 195:
4441 <
4442 < /* Line 1810 of yacc.c  */
4596 < #line 1290 "conf_parser.y"
4440 >  case 222:
4441 > /* Line 1787 of yacc.c  */
4442 > #line 1344 "conf_parser.y"
4443      {
4444    if (conf_parser_ctx.pass == 1)
4445 <  {
4600 <    yy_conf = make_conf_item(CLASS_TYPE);
4601 <    yy_class = map_to_conf(yy_conf);
4602 <  }
4445 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4446   }
4447      break;
4448  
4449 <  case 196:
4450 <
4451 < /* Line 1810 of yacc.c  */
4609 < #line 1297 "conf_parser.y"
4449 >  case 223:
4450 > /* Line 1787 of yacc.c  */
4451 > #line 1350 "conf_parser.y"
4452      {
4453    if (conf_parser_ctx.pass == 1)
4454 <  {
4455 <    struct ConfItem *cconf = NULL;
4456 <    struct ClassItem *class = NULL;
4454 >    block_state.ping_freq.value = (yyvsp[(3) - (4)].number);
4455 > }
4456 >    break;
4457  
4458 <    if (yy_class_name == NULL)
4459 <      delete_conf_item(yy_conf);
4460 <    else
4458 >  case 224:
4459 > /* Line 1787 of yacc.c  */
4460 > #line 1356 "conf_parser.y"
4461      {
4462 <      cconf = find_exact_name_conf(CLASS_TYPE, NULL, yy_class_name, NULL, NULL);
4463 <
4622 <      if (cconf != NULL)                /* The class existed already */
4623 <      {
4624 <        int user_count = 0;
4625 <
4626 <        rebuild_cidr_class(cconf, yy_class);
4627 <
4628 <        class = map_to_conf(cconf);
4629 <
4630 <        user_count = class->curr_user_count;
4631 <        memcpy(class, yy_class, sizeof(*class));
4632 <        class->curr_user_count = user_count;
4633 <        class->active = 1;
4634 <
4635 <        delete_conf_item(yy_conf);
4636 <
4637 <        MyFree(cconf->name);            /* Allows case change of class name */
4638 <        cconf->name = yy_class_name;
4639 <      }
4640 <      else      /* Brand new class */
4641 <      {
4642 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4643 <        yy_conf->name = yy_class_name;
4644 <        yy_class->active = 1;
4645 <      }
4646 <    }
4647 <
4648 <    yy_class_name = NULL;
4649 <  }
4462 >  if (conf_parser_ctx.pass == 1)
4463 >    block_state.max_perip.value = (yyvsp[(3) - (4)].number);
4464   }
4465      break;
4466  
4467 <  case 213:
4468 <
4469 < /* Line 1810 of yacc.c  */
4656 < #line 1355 "conf_parser.y"
4467 >  case 225:
4468 > /* Line 1787 of yacc.c  */
4469 > #line 1362 "conf_parser.y"
4470      {
4471    if (conf_parser_ctx.pass == 1)
4472 <  {
4660 <    MyFree(yy_class_name);
4661 <    DupString(yy_class_name, yylval.string);
4662 <  }
4472 >    block_state.con_freq.value = (yyvsp[(3) - (4)].number);
4473   }
4474      break;
4475  
4476 <  case 214:
4477 <
4478 < /* Line 1810 of yacc.c  */
4669 < #line 1364 "conf_parser.y"
4476 >  case 226:
4477 > /* Line 1787 of yacc.c  */
4478 > #line 1368 "conf_parser.y"
4479      {
4480    if (conf_parser_ctx.pass == 1)
4481 <    yy_class->ping_freq = (yyvsp[(3) - (4)].number);
4481 >    block_state.max_total.value = (yyvsp[(3) - (4)].number);
4482   }
4483      break;
4484  
4485 <  case 215:
4486 <
4487 < /* Line 1810 of yacc.c  */
4679 < #line 1370 "conf_parser.y"
4485 >  case 227:
4486 > /* Line 1787 of yacc.c  */
4487 > #line 1374 "conf_parser.y"
4488      {
4489    if (conf_parser_ctx.pass == 1)
4490 <    yy_class->ping_warning = (yyvsp[(3) - (4)].number);
4490 >    block_state.max_global.value = (yyvsp[(3) - (4)].number);
4491   }
4492      break;
4493  
4494 <  case 216:
4495 <
4496 < /* Line 1810 of yacc.c  */
4689 < #line 1376 "conf_parser.y"
4494 >  case 228:
4495 > /* Line 1787 of yacc.c  */
4496 > #line 1380 "conf_parser.y"
4497      {
4498    if (conf_parser_ctx.pass == 1)
4499 <    yy_class->max_perip = (yyvsp[(3) - (4)].number);
4499 >    block_state.max_local.value = (yyvsp[(3) - (4)].number);
4500   }
4501      break;
4502  
4503 <  case 217:
4504 <
4505 < /* Line 1810 of yacc.c  */
4699 < #line 1382 "conf_parser.y"
4503 >  case 229:
4504 > /* Line 1787 of yacc.c  */
4505 > #line 1386 "conf_parser.y"
4506      {
4507    if (conf_parser_ctx.pass == 1)
4508 <    yy_class->con_freq = (yyvsp[(3) - (4)].number);
4508 >    block_state.max_ident.value = (yyvsp[(3) - (4)].number);
4509   }
4510      break;
4511  
4512 <  case 218:
4513 <
4514 < /* Line 1810 of yacc.c  */
4709 < #line 1388 "conf_parser.y"
4512 >  case 230:
4513 > /* Line 1787 of yacc.c  */
4514 > #line 1392 "conf_parser.y"
4515      {
4516    if (conf_parser_ctx.pass == 1)
4517 <    yy_class->max_total = (yyvsp[(3) - (4)].number);
4517 >    block_state.max_sendq.value = (yyvsp[(3) - (4)].number);
4518   }
4519      break;
4520  
4521 <  case 219:
4522 <
4523 < /* Line 1810 of yacc.c  */
4719 < #line 1394 "conf_parser.y"
4521 >  case 231:
4522 > /* Line 1787 of yacc.c  */
4523 > #line 1398 "conf_parser.y"
4524      {
4525    if (conf_parser_ctx.pass == 1)
4526 <    yy_class->max_global = (yyvsp[(3) - (4)].number);
4526 >    if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4527 >      block_state.max_recvq.value = (yyvsp[(3) - (4)].number);
4528   }
4529      break;
4530  
4531 <  case 220:
4532 <
4533 < /* Line 1810 of yacc.c  */
4729 < #line 1400 "conf_parser.y"
4531 >  case 232:
4532 > /* Line 1787 of yacc.c  */
4533 > #line 1405 "conf_parser.y"
4534      {
4535    if (conf_parser_ctx.pass == 1)
4536 <    yy_class->max_local = (yyvsp[(3) - (4)].number);
4536 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4537   }
4538      break;
4539  
4540 <  case 221:
4541 <
4542 < /* Line 1810 of yacc.c  */
4739 < #line 1406 "conf_parser.y"
4540 >  case 233:
4541 > /* Line 1787 of yacc.c  */
4542 > #line 1411 "conf_parser.y"
4543      {
4544    if (conf_parser_ctx.pass == 1)
4545 <    yy_class->max_ident = (yyvsp[(3) - (4)].number);
4545 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4546   }
4547      break;
4548  
4549 <  case 222:
4550 <
4551 < /* Line 1810 of yacc.c  */
4749 < #line 1412 "conf_parser.y"
4549 >  case 234:
4550 > /* Line 1787 of yacc.c  */
4551 > #line 1417 "conf_parser.y"
4552      {
4553    if (conf_parser_ctx.pass == 1)
4554 <    yy_class->max_sendq = (yyvsp[(3) - (4)].number);
4554 >    block_state.number_per_cidr.value = (yyvsp[(3) - (4)].number);
4555   }
4556      break;
4557  
4558 <  case 223:
4559 <
4560 < /* Line 1810 of yacc.c  */
4759 < #line 1418 "conf_parser.y"
4558 >  case 235:
4559 > /* Line 1787 of yacc.c  */
4560 > #line 1423 "conf_parser.y"
4561      {
4562 <  if (conf_parser_ctx.pass == 1)
4563 <    yy_class->cidr_bitlen_ipv4 = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4562 >  if (conf_parser_ctx.pass != 1)
4563 >    break;
4564 >
4565 >  block_state.min_idle.value = (yyvsp[(3) - (4)].number);
4566 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4567   }
4568      break;
4569  
4570 <  case 224:
4570 >  case 236:
4571 > /* Line 1787 of yacc.c  */
4572 > #line 1432 "conf_parser.y"
4573 >    {
4574 >  if (conf_parser_ctx.pass != 1)
4575 >    break;
4576  
4577 < /* Line 1810 of yacc.c  */
4578 < #line 1424 "conf_parser.y"
4577 >  block_state.max_idle.value = (yyvsp[(3) - (4)].number);
4578 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4579 > }
4580 >    break;
4581 >
4582 >  case 237:
4583 > /* Line 1787 of yacc.c  */
4584 > #line 1441 "conf_parser.y"
4585      {
4586    if (conf_parser_ctx.pass == 1)
4587 <    yy_class->cidr_bitlen_ipv6 = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4587 >    block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4588   }
4589      break;
4590  
4591 <  case 225:
4592 <
4593 < /* Line 1810 of yacc.c  */
4779 < #line 1430 "conf_parser.y"
4591 >  case 241:
4592 > /* Line 1787 of yacc.c  */
4593 > #line 1448 "conf_parser.y"
4594      {
4595    if (conf_parser_ctx.pass == 1)
4596 <    yy_class->number_per_cidr = (yyvsp[(3) - (4)].number);
4596 >    block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4597   }
4598      break;
4599  
4600 <  case 226:
4601 <
4602 < /* Line 1810 of yacc.c  */
4789 < #line 1439 "conf_parser.y"
4600 >  case 242:
4601 > /* Line 1787 of yacc.c  */
4602 > #line 1452 "conf_parser.y"
4603      {
4604 <  if (conf_parser_ctx.pass == 2)
4605 <  {
4793 <    listener_address = NULL;
4794 <    listener_flags = 0;
4795 <  }
4604 >  if (conf_parser_ctx.pass == 1)
4605 >    block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4606   }
4607      break;
4608  
4609 <  case 227:
4610 <
4611 < /* Line 1810 of yacc.c  */
4802 < #line 1446 "conf_parser.y"
4609 >  case 243:
4610 > /* Line 1787 of yacc.c  */
4611 > #line 1462 "conf_parser.y"
4612      {
4613    if (conf_parser_ctx.pass == 2)
4614 <  {
4806 <    MyFree(listener_address);
4807 <    listener_address = NULL;
4808 <  }
4614 >    reset_block_state();
4615   }
4616      break;
4617  
4618 <  case 228:
4619 <
4620 < /* Line 1810 of yacc.c  */
4815 < #line 1455 "conf_parser.y"
4618 >  case 245:
4619 > /* Line 1787 of yacc.c  */
4620 > #line 1468 "conf_parser.y"
4621      {
4622 <  listener_flags = 0;
4622 >  block_state.flags.value = 0;
4623   }
4624      break;
4625  
4626 <  case 232:
4627 <
4628 < /* Line 1810 of yacc.c  */
4824 < #line 1461 "conf_parser.y"
4626 >  case 249:
4627 > /* Line 1787 of yacc.c  */
4628 > #line 1474 "conf_parser.y"
4629      {
4630    if (conf_parser_ctx.pass == 2)
4631 <    listener_flags |= LISTENER_SSL;
4631 >    block_state.flags.value |= LISTENER_SSL;
4632   }
4633      break;
4634  
4635 <  case 233:
4636 <
4637 < /* Line 1810 of yacc.c  */
4834 < #line 1465 "conf_parser.y"
4635 >  case 250:
4636 > /* Line 1787 of yacc.c  */
4637 > #line 1478 "conf_parser.y"
4638      {
4639    if (conf_parser_ctx.pass == 2)
4640 <    listener_flags |= LISTENER_HIDDEN;
4640 >    block_state.flags.value |= LISTENER_HIDDEN;
4641   }
4642      break;
4643  
4644 <  case 234:
4645 <
4646 < /* Line 1810 of yacc.c  */
4844 < #line 1469 "conf_parser.y"
4644 >  case 251:
4645 > /* Line 1787 of yacc.c  */
4646 > #line 1482 "conf_parser.y"
4647      {
4648    if (conf_parser_ctx.pass == 2)
4649 <    listener_flags |= LISTENER_SERVER;
4649 >   block_state.flags.value |= LISTENER_SERVER;
4650   }
4651      break;
4652  
4653 <  case 242:
4654 <
4655 < /* Line 1810 of yacc.c  */
4656 < #line 1479 "conf_parser.y"
4855 <    { listener_flags = 0; }
4653 >  case 259:
4654 > /* Line 1787 of yacc.c  */
4655 > #line 1490 "conf_parser.y"
4656 >    { block_state.flags.value = 0; }
4657      break;
4658  
4659 <  case 246:
4660 <
4661 < /* Line 1810 of yacc.c  */
4861 < #line 1484 "conf_parser.y"
4659 >  case 263:
4660 > /* Line 1787 of yacc.c  */
4661 > #line 1495 "conf_parser.y"
4662      {
4663    if (conf_parser_ctx.pass == 2)
4664    {
4665 <    if ((listener_flags & LISTENER_SSL))
4665 >    if (block_state.flags.value & LISTENER_SSL)
4666   #ifdef HAVE_LIBCRYPTO
4667        if (!ServerInfo.server_ctx)
4668   #endif
4669        {
4670 <        yyerror("SSL not available - port closed");
4670 >        conf_error_report("SSL not available - port closed");
4671          break;
4672        }
4673 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4673 >    add_listener((yyvsp[(1) - (1)].number), block_state.addr.buf, block_state.flags.value);
4674    }
4675   }
4676      break;
4677  
4678 <  case 247:
4679 <
4680 < /* Line 1810 of yacc.c  */
4881 < #line 1498 "conf_parser.y"
4678 >  case 264:
4679 > /* Line 1787 of yacc.c  */
4680 > #line 1509 "conf_parser.y"
4681      {
4682    if (conf_parser_ctx.pass == 2)
4683    {
4684      int i;
4685  
4686 <    if ((listener_flags & LISTENER_SSL))
4686 >    if (block_state.flags.value & LISTENER_SSL)
4687   #ifdef HAVE_LIBCRYPTO
4688        if (!ServerInfo.server_ctx)
4689   #endif
4690        {
4691 <        yyerror("SSL not available - port closed");
4691 >        conf_error_report("SSL not available - port closed");
4692          break;
4693        }
4694  
4695      for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4696 <      add_listener(i, listener_address, listener_flags);
4696 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4697    }
4698   }
4699      break;
4700  
4701 <  case 248:
4702 <
4703 < /* Line 1810 of yacc.c  */
4905 < #line 1518 "conf_parser.y"
4701 >  case 265:
4702 > /* Line 1787 of yacc.c  */
4703 > #line 1529 "conf_parser.y"
4704      {
4705    if (conf_parser_ctx.pass == 2)
4706 <  {
4909 <    MyFree(listener_address);
4910 <    DupString(listener_address, yylval.string);
4911 <  }
4706 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4707   }
4708      break;
4709  
4710 <  case 249:
4711 <
4712 < /* Line 1810 of yacc.c  */
4918 < #line 1527 "conf_parser.y"
4710 >  case 266:
4711 > /* Line 1787 of yacc.c  */
4712 > #line 1535 "conf_parser.y"
4713      {
4714    if (conf_parser_ctx.pass == 2)
4715 <  {
4922 <    MyFree(listener_address);
4923 <    DupString(listener_address, yylval.string);
4924 <  }
4715 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4716   }
4717      break;
4718  
4719 <  case 250:
4720 <
4721 < /* Line 1810 of yacc.c  */
4931 < #line 1539 "conf_parser.y"
4719 >  case 267:
4720 > /* Line 1787 of yacc.c  */
4721 > #line 1544 "conf_parser.y"
4722      {
4723    if (conf_parser_ctx.pass == 2)
4724 <  {
4935 <    yy_conf = make_conf_item(CLIENT_TYPE);
4936 <    yy_aconf = map_to_conf(yy_conf);
4937 <  }
4938 <  else
4939 <  {
4940 <    MyFree(class_name);
4941 <    class_name = NULL;
4942 <  }
4724 >    reset_block_state();
4725   }
4726      break;
4727  
4728 <  case 251:
4729 <
4730 < /* Line 1810 of yacc.c  */
4949 < #line 1551 "conf_parser.y"
4950 <    {
4951 <  if (conf_parser_ctx.pass == 2)
4952 <  {
4953 <    struct CollectItem *yy_tmp = NULL;
4954 <    dlink_node *ptr = NULL, *next_ptr = NULL;
4955 <
4956 <    if (yy_aconf->user && yy_aconf->host)
4957 <    {
4958 <      conf_add_class_to_conf(yy_conf, class_name);
4959 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
4960 <    }
4961 <    else
4962 <      delete_conf_item(yy_conf);
4963 <
4964 <    /* copy over settings from first struct */
4965 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4728 >  case 268:
4729 > /* Line 1787 of yacc.c  */
4730 > #line 1548 "conf_parser.y"
4731      {
4732 <      struct AccessItem *new_aconf;
4968 <      struct ConfItem *new_conf;
4969 <
4970 <      new_conf = make_conf_item(CLIENT_TYPE);
4971 <      new_aconf = map_to_conf(new_conf);
4972 <
4973 <      yy_tmp = ptr->data;
4974 <
4975 <      assert(yy_tmp->user && yy_tmp->host);
4976 <
4977 <      if (yy_aconf->passwd != NULL)
4978 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4979 <      if (yy_conf->name != NULL)
4980 <        DupString(new_conf->name, yy_conf->name);
4981 <      if (yy_aconf->passwd != NULL)
4982 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4983 <
4984 <      new_aconf->flags = yy_aconf->flags;
4985 <      new_aconf->port  = yy_aconf->port;
4732 >  dlink_node *ptr = NULL;
4733  
4734 <      DupString(new_aconf->user, yy_tmp->user);
4988 <      collapse(new_aconf->user);
4989 <
4990 <      DupString(new_aconf->host, yy_tmp->host);
4991 <      collapse(new_aconf->host);
4992 <
4993 <      conf_add_class_to_conf(new_conf, class_name);
4994 <      add_conf_by_address(CONF_CLIENT, new_aconf);
4995 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4996 <      free_collect_item(yy_tmp);
4997 <    }
4998 <
4999 <    MyFree(class_name);
5000 <    class_name = NULL;
5001 <    yy_conf = NULL;
5002 <    yy_aconf = NULL;
5003 <  }
5004 < }
4734 >  if (conf_parser_ctx.pass != 2)
4735      break;
4736  
4737 <  case 263:
5008 <
5009 < /* Line 1810 of yacc.c  */
5010 < #line 1613 "conf_parser.y"
5011 <    {
5012 <  if (conf_parser_ctx.pass == 2)
4737 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4738    {
4739 <    struct CollectItem *yy_tmp = NULL;
4739 >    struct MaskItem *conf = NULL;
4740      struct split_nuh_item nuh;
4741  
4742 <    nuh.nuhmask  = yylval.string;
4742 >    nuh.nuhmask  = ptr->data;
4743      nuh.nickptr  = NULL;
4744 <    nuh.userptr  = userbuf;
4745 <    nuh.hostptr  = hostbuf;
5021 <
4744 >    nuh.userptr  = block_state.user.buf;
4745 >    nuh.hostptr  = block_state.host.buf;
4746      nuh.nicksize = 0;
4747 <    nuh.usersize = sizeof(userbuf);
4748 <    nuh.hostsize = sizeof(hostbuf);
5025 <
4747 >    nuh.usersize = sizeof(block_state.user.buf);
4748 >    nuh.hostsize = sizeof(block_state.host.buf);
4749      split_nuh(&nuh);
4750  
4751 <    if (yy_aconf->user == NULL)
4752 <    {
4753 <      DupString(yy_aconf->user, userbuf);
4754 <      DupString(yy_aconf->host, hostbuf);
4755 <    }
4756 <    else
4757 <    {
4758 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4751 >    conf        = conf_make(CONF_CLIENT);
4752 >    conf->user  = xstrdup(collapse(block_state.user.buf));
4753 >    conf->host  = xstrdup(collapse(block_state.host.buf));
4754 >
4755 >    if (block_state.rpass.buf[0])
4756 >      conf->passwd = xstrdup(block_state.rpass.buf);
4757 >    if (block_state.name.buf[0])
4758 >      conf->name = xstrdup(block_state.name.buf);
4759  
4760 <      DupString(yy_tmp->user, userbuf);
4761 <      DupString(yy_tmp->host, hostbuf);
4760 >    conf->flags = block_state.flags.value;
4761 >    conf->port  = block_state.port.value;
4762  
4763 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4764 <    }
4763 >    conf_add_class_to_conf(conf, block_state.class.buf);
4764 >    add_conf_by_address(CONF_CLIENT, conf);
4765    }
4766   }
4767      break;
4768  
4769 <  case 264:
4770 <
4771 < /* Line 1810 of yacc.c  */
5049 < #line 1648 "conf_parser.y"
4769 >  case 280:
4770 > /* Line 1787 of yacc.c  */
4771 > #line 1591 "conf_parser.y"
4772      {
4773    if (conf_parser_ctx.pass == 2)
4774 <  {
5053 <    /* be paranoid */
5054 <    if (yy_aconf->passwd != NULL)
5055 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5056 <
5057 <    MyFree(yy_aconf->passwd);
5058 <    DupString(yy_aconf->passwd, yylval.string);
5059 <  }
4774 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4775   }
4776      break;
4777  
4778 <  case 265:
4779 <
4780 < /* Line 1810 of yacc.c  */
5066 < #line 1661 "conf_parser.y"
4778 >  case 281:
4779 > /* Line 1787 of yacc.c  */
4780 > #line 1597 "conf_parser.y"
4781      {
4782    if (conf_parser_ctx.pass == 2)
4783 <  {
5070 <    MyFree(class_name);
5071 <    DupString(class_name, yylval.string);
5072 <  }
4783 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4784   }
4785      break;
4786  
4787 <  case 266:
4787 >  case 282:
4788 > /* Line 1787 of yacc.c  */
4789 > #line 1603 "conf_parser.y"
4790 >    {
4791 >  if (conf_parser_ctx.pass == 2)
4792 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4793 > }
4794 >    break;
4795  
4796 < /* Line 1810 of yacc.c  */
4797 < #line 1670 "conf_parser.y"
4796 >  case 283:
4797 > /* Line 1787 of yacc.c  */
4798 > #line 1609 "conf_parser.y"
4799      {
4800    if (conf_parser_ctx.pass == 2)
4801    {
4802      if (yylval.number)
4803 <      SetConfEncrypted(yy_aconf);
4803 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4804      else
4805 <      ClearConfEncrypted(yy_aconf);
4805 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4806    }
4807   }
4808      break;
4809  
4810 <  case 267:
4811 <
4812 < /* Line 1810 of yacc.c  */
5094 < #line 1681 "conf_parser.y"
4810 >  case 284:
4811 > /* Line 1787 of yacc.c  */
4812 > #line 1620 "conf_parser.y"
4813      {
4814 +  if (conf_parser_ctx.pass == 2)
4815 +    block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
4816   }
4817      break;
4818  
4819 <  case 271:
4820 <
4821 < /* Line 1810 of yacc.c  */
5102 < #line 1686 "conf_parser.y"
4819 >  case 288:
4820 > /* Line 1787 of yacc.c  */
4821 > #line 1627 "conf_parser.y"
4822      {
4823    if (conf_parser_ctx.pass == 2)
4824 <    yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
4824 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4825   }
4826      break;
4827  
4828 <  case 272:
4829 <
4830 < /* Line 1810 of yacc.c  */
5112 < #line 1690 "conf_parser.y"
4828 >  case 289:
4829 > /* Line 1787 of yacc.c  */
4830 > #line 1631 "conf_parser.y"
4831      {
4832    if (conf_parser_ctx.pass == 2)
4833 <    yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
4833 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4834   }
4835      break;
4836  
4837 <  case 273:
4838 <
4839 < /* Line 1810 of yacc.c  */
5122 < #line 1694 "conf_parser.y"
4837 >  case 290:
4838 > /* Line 1787 of yacc.c  */
4839 > #line 1635 "conf_parser.y"
4840      {
4841    if (conf_parser_ctx.pass == 2)
4842 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
4842 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4843   }
4844      break;
4845  
4846 <  case 274:
4847 <
4848 < /* Line 1810 of yacc.c  */
5132 < #line 1698 "conf_parser.y"
4846 >  case 291:
4847 > /* Line 1787 of yacc.c  */
4848 > #line 1639 "conf_parser.y"
4849      {
4850    if (conf_parser_ctx.pass == 2)
4851 <    yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
4851 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4852   }
4853      break;
4854  
4855 <  case 275:
4856 <
4857 < /* Line 1810 of yacc.c  */
5142 < #line 1702 "conf_parser.y"
4855 >  case 292:
4856 > /* Line 1787 of yacc.c  */
4857 > #line 1643 "conf_parser.y"
4858      {
4859    if (conf_parser_ctx.pass == 2)
4860 <    yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
4860 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4861   }
4862      break;
4863  
4864 <  case 276:
4865 <
4866 < /* Line 1810 of yacc.c  */
5152 < #line 1706 "conf_parser.y"
4864 >  case 293:
4865 > /* Line 1787 of yacc.c  */
4866 > #line 1647 "conf_parser.y"
4867      {
4868    if (conf_parser_ctx.pass == 2)
4869 <    yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
4869 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4870   }
4871      break;
4872  
4873 <  case 277:
4874 <
4875 < /* Line 1810 of yacc.c  */
5162 < #line 1710 "conf_parser.y"
4873 >  case 294:
4874 > /* Line 1787 of yacc.c  */
4875 > #line 1651 "conf_parser.y"
4876      {
4877    if (conf_parser_ctx.pass == 2)
4878 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
4878 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4879   }
4880      break;
4881  
4882 <  case 278:
4883 <
4884 < /* Line 1810 of yacc.c  */
5172 < #line 1714 "conf_parser.y"
4882 >  case 295:
4883 > /* Line 1787 of yacc.c  */
4884 > #line 1655 "conf_parser.y"
4885      {
4886    if (conf_parser_ctx.pass == 2)
4887 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
4887 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4888   }
4889      break;
4890  
4891 <  case 279:
4892 <
4893 < /* Line 1810 of yacc.c  */
5182 < #line 1718 "conf_parser.y"
4891 >  case 296:
4892 > /* Line 1787 of yacc.c  */
4893 > #line 1659 "conf_parser.y"
4894      {
4895    if (conf_parser_ctx.pass == 2)
4896 <    yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
4896 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
4897   }
4898      break;
4899  
4900 <  case 280:
4901 <
4902 < /* Line 1810 of yacc.c  */
5192 < #line 1725 "conf_parser.y"
4900 >  case 297:
4901 > /* Line 1787 of yacc.c  */
4902 > #line 1663 "conf_parser.y"
4903      {
4904    if (conf_parser_ctx.pass == 2)
4905 <  {
5196 <    MyFree(yy_conf->name);
5197 <
5198 <    if (strlen(yylval.string) < HOSTLEN)
5199 <    {    
5200 <      DupString(yy_conf->name, yylval.string);
5201 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
5202 <    }
5203 <    else
5204 <    {
5205 <      ilog(LOG_TYPE_IRCD, "Spoofs must be less than %d..ignoring it", HOSTLEN);
5206 <      yy_conf->name = NULL;
5207 <    }
5208 <  }
4905 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4906   }
4907      break;
4908  
4909 <  case 281:
4910 <
4911 < /* Line 1810 of yacc.c  */
5215 < #line 1744 "conf_parser.y"
4909 >  case 298:
4910 > /* Line 1787 of yacc.c  */
4911 > #line 1669 "conf_parser.y"
4912      {
4913 <  if (conf_parser_ctx.pass == 2)
4913 >  if (conf_parser_ctx.pass != 2)
4914 >    break;
4915 >
4916 >  if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4917    {
4918 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4919 <    MyFree(yy_conf->name);
5221 <    DupString(yy_conf->name, yylval.string);
4918 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4919 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4920    }
4921 +  else
4922 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4923   }
4924      break;
4925  
4926 <  case 282:
4927 <
4928 < /* Line 1810 of yacc.c  */
5229 < #line 1754 "conf_parser.y"
4926 >  case 299:
4927 > /* Line 1787 of yacc.c  */
4928 > #line 1683 "conf_parser.y"
4929      {
4930 <  if (conf_parser_ctx.pass == 2)
5232 <  {
5233 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5234 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5235 <  }
5236 < }
4930 >  if (conf_parser_ctx.pass != 2)
4931      break;
4932  
4933 <  case 283:
4933 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4934 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4935 > }
4936 >    break;
4937  
4938 < /* Line 1810 of yacc.c  */
4939 < #line 1767 "conf_parser.y"
4938 >  case 300:
4939 > /* Line 1787 of yacc.c  */
4940 > #line 1692 "conf_parser.y"
4941      {
4942 <  if (conf_parser_ctx.pass == 2)
5245 <  {
5246 <    MyFree(resv_reason);
5247 <    resv_reason = NULL;
5248 <  }
5249 < }
4942 >  if (conf_parser_ctx.pass != 2)
4943      break;
4944  
4945 <  case 284:
4945 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4946 >  block_state.port.value = (yyvsp[(3) - (4)].number);
4947 > }
4948 >    break;
4949  
4950 < /* Line 1810 of yacc.c  */
4951 < #line 1774 "conf_parser.y"
4950 >  case 301:
4951 > /* Line 1787 of yacc.c  */
4952 > #line 1705 "conf_parser.y"
4953      {
4954 <  if (conf_parser_ctx.pass == 2)
4955 <  {
4956 <    MyFree(resv_reason);
4957 <    resv_reason = NULL;
4958 <  }
4954 >  if (conf_parser_ctx.pass != 2)
4955 >    break;
4956 >
4957 >  reset_block_state();
4958 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4959   }
4960      break;
4961  
4962 <  case 291:
4962 >  case 302:
4963 > /* Line 1787 of yacc.c  */
4964 > #line 1712 "conf_parser.y"
4965 >    {
4966 >  if (conf_parser_ctx.pass != 2)
4967 >    break;
4968  
4969 < /* Line 1810 of yacc.c  */
4970 < #line 1786 "conf_parser.y"
4969 >  create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4970 > }
4971 >    break;
4972 >
4973 >  case 309:
4974 > /* Line 1787 of yacc.c  */
4975 > #line 1723 "conf_parser.y"
4976      {
4977    if (conf_parser_ctx.pass == 2)
4978 <  {
5272 <    MyFree(resv_reason);
5273 <    DupString(resv_reason, yylval.string);
5274 <  }
4978 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4979   }
4980      break;
4981  
4982 <  case 292:
4983 <
4984 < /* Line 1810 of yacc.c  */
5281 < #line 1795 "conf_parser.y"
4982 >  case 310:
4983 > /* Line 1787 of yacc.c  */
4984 > #line 1729 "conf_parser.y"
4985      {
4986    if (conf_parser_ctx.pass == 2)
4987 <  {
5285 <    if (IsChanPrefix(*yylval.string))
5286 <    {
5287 <      char def_reason[] = "No reason";
5288 <
5289 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5290 <    }
5291 <  }
5292 <  /* ignore it for now.. but we really should make a warning if
5293 <   * its an erroneous name --fl_ */
4987 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4988   }
4989      break;
4990  
4991 <  case 293:
4992 <
4993 < /* Line 1810 of yacc.c  */
5300 < #line 1810 "conf_parser.y"
4991 >  case 311:
4992 > /* Line 1787 of yacc.c  */
4993 > #line 1735 "conf_parser.y"
4994      {
4995    if (conf_parser_ctx.pass == 2)
4996 <  {
5304 <    char def_reason[] = "No reason";
5305 <
5306 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5307 <  }
4996 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4997   }
4998      break;
4999  
5000 <  case 299:
5001 <
5002 < /* Line 1810 of yacc.c  */
5314 < #line 1828 "conf_parser.y"
5000 >  case 317:
5001 > /* Line 1787 of yacc.c  */
5002 > #line 1750 "conf_parser.y"
5003      {
5004    if (conf_parser_ctx.pass == 2)
5005    {
5006      if (valid_servname(yylval.string))
5007      {
5008 <      yy_conf = make_conf_item(SERVICE_TYPE);
5009 <      DupString(yy_conf->name, yylval.string);
5008 >      struct MaskItem *conf = conf_make(CONF_SERVICE);
5009 >      conf->name = xstrdup(yylval.string);
5010      }
5011    }
5012   }
5013      break;
5014  
5015 <  case 300:
5016 <
5017 < /* Line 1810 of yacc.c  */
5330 < #line 1843 "conf_parser.y"
5015 >  case 318:
5016 > /* Line 1787 of yacc.c  */
5017 > #line 1765 "conf_parser.y"
5018      {
5019 <  if (conf_parser_ctx.pass == 2)
5333 <  {
5334 <    yy_conf = make_conf_item(ULINE_TYPE);
5335 <    yy_match_item = map_to_conf(yy_conf);
5336 <    yy_match_item->action = SHARED_ALL;
5337 <  }
5338 < }
5019 >  if (conf_parser_ctx.pass != 2)
5020      break;
5021  
5022 <  case 301:
5022 >  reset_block_state();
5023  
5024 < /* Line 1810 of yacc.c  */
5025 < #line 1851 "conf_parser.y"
5026 <    {
5027 <  if (conf_parser_ctx.pass == 2)
5347 <  {
5348 <    yy_conf = NULL;
5349 <  }
5024 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5025 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
5026 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
5027 >  block_state.flags.value = SHARED_ALL;
5028   }
5029      break;
5030  
5031 <  case 308:
5031 >  case 319:
5032 > /* Line 1787 of yacc.c  */
5033 > #line 1776 "conf_parser.y"
5034 >    {
5035 >  struct MaskItem *conf = NULL;
5036 >
5037 >  if (conf_parser_ctx.pass != 2)
5038 >    break;
5039 >
5040 >  conf = conf_make(CONF_ULINE);
5041 >  conf->flags = block_state.flags.value;
5042 >  conf->name = xstrdup(block_state.name.buf);
5043 >  conf->user = xstrdup(block_state.user.buf);
5044 >  conf->host = xstrdup(block_state.host.buf);
5045 > }
5046 >    break;
5047  
5048 < /* Line 1810 of yacc.c  */
5049 < #line 1862 "conf_parser.y"
5048 >  case 326:
5049 > /* Line 1787 of yacc.c  */
5050 > #line 1793 "conf_parser.y"
5051      {
5052    if (conf_parser_ctx.pass == 2)
5053 <  {
5360 <    MyFree(yy_conf->name);
5361 <    DupString(yy_conf->name, yylval.string);
5362 <  }
5053 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5054   }
5055      break;
5056  
5057 <  case 309:
5058 <
5059 < /* Line 1810 of yacc.c  */
5369 < #line 1871 "conf_parser.y"
5057 >  case 327:
5058 > /* Line 1787 of yacc.c  */
5059 > #line 1799 "conf_parser.y"
5060      {
5061    if (conf_parser_ctx.pass == 2)
5062    {
# Line 5374 | Line 5064 | yyreduce:
5064  
5065      nuh.nuhmask  = yylval.string;
5066      nuh.nickptr  = NULL;
5067 <    nuh.userptr  = userbuf;
5068 <    nuh.hostptr  = hostbuf;
5067 >    nuh.userptr  = block_state.user.buf;
5068 >    nuh.hostptr  = block_state.host.buf;
5069  
5070      nuh.nicksize = 0;
5071 <    nuh.usersize = sizeof(userbuf);
5072 <    nuh.hostsize = sizeof(hostbuf);
5071 >    nuh.usersize = sizeof(block_state.user.buf);
5072 >    nuh.hostsize = sizeof(block_state.host.buf);
5073  
5074      split_nuh(&nuh);
5385
5386    DupString(yy_match_item->user, userbuf);
5387    DupString(yy_match_item->host, hostbuf);
5075    }
5076   }
5077      break;
5078  
5079 <  case 310:
5080 <
5081 < /* Line 1810 of yacc.c  */
5395 < #line 1893 "conf_parser.y"
5079 >  case 328:
5080 > /* Line 1787 of yacc.c  */
5081 > #line 1818 "conf_parser.y"
5082      {
5083    if (conf_parser_ctx.pass == 2)
5084 <    yy_match_item->action = 0;
5084 >    block_state.flags.value = 0;
5085   }
5086      break;
5087  
5088 <  case 314:
5089 <
5090 < /* Line 1810 of yacc.c  */
5405 < #line 1900 "conf_parser.y"
5088 >  case 332:
5089 > /* Line 1787 of yacc.c  */
5090 > #line 1825 "conf_parser.y"
5091      {
5092    if (conf_parser_ctx.pass == 2)
5093 <    yy_match_item->action |= SHARED_KLINE;
5093 >    block_state.flags.value |= SHARED_KLINE;
5094   }
5095      break;
5096  
5097 <  case 315:
5098 <
5099 < /* Line 1810 of yacc.c  */
5415 < #line 1904 "conf_parser.y"
5097 >  case 333:
5098 > /* Line 1787 of yacc.c  */
5099 > #line 1829 "conf_parser.y"
5100      {
5101    if (conf_parser_ctx.pass == 2)
5102 <    yy_match_item->action |= SHARED_UNKLINE;
5102 >    block_state.flags.value |= SHARED_UNKLINE;
5103   }
5104      break;
5105  
5106 <  case 316:
5107 <
5108 < /* Line 1810 of yacc.c  */
5425 < #line 1908 "conf_parser.y"
5106 >  case 334:
5107 > /* Line 1787 of yacc.c  */
5108 > #line 1833 "conf_parser.y"
5109      {
5110    if (conf_parser_ctx.pass == 2)
5111 <    yy_match_item->action |= SHARED_DLINE;
5111 >    block_state.flags.value |= SHARED_DLINE;
5112   }
5113      break;
5114  
5115 <  case 317:
5116 <
5117 < /* Line 1810 of yacc.c  */
5435 < #line 1912 "conf_parser.y"
5115 >  case 335:
5116 > /* Line 1787 of yacc.c  */
5117 > #line 1837 "conf_parser.y"
5118      {
5119    if (conf_parser_ctx.pass == 2)
5120 <    yy_match_item->action |= SHARED_UNDLINE;
5120 >    block_state.flags.value |= SHARED_UNDLINE;
5121   }
5122      break;
5123  
5124 <  case 318:
5125 <
5126 < /* Line 1810 of yacc.c  */
5445 < #line 1916 "conf_parser.y"
5124 >  case 336:
5125 > /* Line 1787 of yacc.c  */
5126 > #line 1841 "conf_parser.y"
5127      {
5128    if (conf_parser_ctx.pass == 2)
5129 <    yy_match_item->action |= SHARED_XLINE;
5129 >    block_state.flags.value |= SHARED_XLINE;
5130   }
5131      break;
5132  
5133 <  case 319:
5134 <
5135 < /* Line 1810 of yacc.c  */
5455 < #line 1920 "conf_parser.y"
5133 >  case 337:
5134 > /* Line 1787 of yacc.c  */
5135 > #line 1845 "conf_parser.y"
5136      {
5137    if (conf_parser_ctx.pass == 2)
5138 <    yy_match_item->action |= SHARED_UNXLINE;
5138 >    block_state.flags.value |= SHARED_UNXLINE;
5139   }
5140      break;
5141  
5142 <  case 320:
5143 <
5144 < /* Line 1810 of yacc.c  */
5465 < #line 1924 "conf_parser.y"
5142 >  case 338:
5143 > /* Line 1787 of yacc.c  */
5144 > #line 1849 "conf_parser.y"
5145      {
5146    if (conf_parser_ctx.pass == 2)
5147 <    yy_match_item->action |= SHARED_RESV;
5147 >    block_state.flags.value |= SHARED_RESV;
5148   }
5149      break;
5150  
5151 <  case 321:
5152 <
5153 < /* Line 1810 of yacc.c  */
5475 < #line 1928 "conf_parser.y"
5151 >  case 339:
5152 > /* Line 1787 of yacc.c  */
5153 > #line 1853 "conf_parser.y"
5154      {
5155    if (conf_parser_ctx.pass == 2)
5156 <    yy_match_item->action |= SHARED_UNRESV;
5156 >    block_state.flags.value |= SHARED_UNRESV;
5157   }
5158      break;
5159  
5160 <  case 322:
5161 <
5162 < /* Line 1810 of yacc.c  */
5485 < #line 1932 "conf_parser.y"
5160 >  case 340:
5161 > /* Line 1787 of yacc.c  */
5162 > #line 1857 "conf_parser.y"
5163      {
5164    if (conf_parser_ctx.pass == 2)
5165 <    yy_match_item->action |= SHARED_LOCOPS;
5165 >    block_state.flags.value |= SHARED_LOCOPS;
5166   }
5167      break;
5168  
5169 <  case 323:
5170 <
5171 < /* Line 1810 of yacc.c  */
5495 < #line 1936 "conf_parser.y"
5169 >  case 341:
5170 > /* Line 1787 of yacc.c  */
5171 > #line 1861 "conf_parser.y"
5172      {
5173    if (conf_parser_ctx.pass == 2)
5174 <    yy_match_item->action = SHARED_ALL;
5174 >    block_state.flags.value = SHARED_ALL;
5175   }
5176      break;
5177  
5178 <  case 324:
5179 <
5180 < /* Line 1810 of yacc.c  */
5505 < #line 1945 "conf_parser.y"
5178 >  case 342:
5179 > /* Line 1787 of yacc.c  */
5180 > #line 1870 "conf_parser.y"
5181      {
5182 <  if (conf_parser_ctx.pass == 2)
5508 <  {
5509 <    yy_conf = make_conf_item(CLUSTER_TYPE);
5510 <    yy_conf->flags = SHARED_ALL;
5511 <  }
5512 < }
5182 >  if (conf_parser_ctx.pass != 2)
5183      break;
5184  
5185 <  case 325:
5185 >  reset_block_state();
5186  
5187 < /* Line 1810 of yacc.c  */
5188 < #line 1952 "conf_parser.y"
5519 <    {
5520 <  if (conf_parser_ctx.pass == 2)
5521 <  {
5522 <    if (yy_conf->name == NULL)
5523 <      DupString(yy_conf->name, "*");
5524 <    yy_conf = NULL;
5525 <  }
5187 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5188 >  block_state.flags.value = SHARED_ALL;
5189   }
5190      break;
5191  
5192 <  case 331:
5193 <
5194 < /* Line 1810 of yacc.c  */
5532 < #line 1965 "conf_parser.y"
5192 >  case 343:
5193 > /* Line 1787 of yacc.c  */
5194 > #line 1879 "conf_parser.y"
5195      {
5196 <  if (conf_parser_ctx.pass == 2)
5197 <    DupString(yy_conf->name, yylval.string);
5198 < }
5196 >  struct MaskItem *conf = NULL;
5197 >
5198 >  if (conf_parser_ctx.pass != 2)
5199      break;
5200  
5201 <  case 332:
5201 >  conf = conf_make(CONF_CLUSTER);
5202 >  conf->flags = block_state.flags.value;
5203 >  conf->name = xstrdup(block_state.name.buf);
5204 > }
5205 >    break;
5206  
5207 < /* Line 1810 of yacc.c  */
5208 < #line 1971 "conf_parser.y"
5207 >  case 349:
5208 > /* Line 1787 of yacc.c  */
5209 > #line 1894 "conf_parser.y"
5210      {
5211    if (conf_parser_ctx.pass == 2)
5212 <    yy_conf->flags = 0;
5212 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5213   }
5214      break;
5215  
5216 <  case 336:
5217 <
5218 < /* Line 1810 of yacc.c  */
5552 < #line 1978 "conf_parser.y"
5216 >  case 350:
5217 > /* Line 1787 of yacc.c  */
5218 > #line 1900 "conf_parser.y"
5219      {
5220    if (conf_parser_ctx.pass == 2)
5221 <    yy_conf->flags |= SHARED_KLINE;
5221 >    block_state.flags.value = 0;
5222   }
5223      break;
5224  
5225 <  case 337:
5226 <
5227 < /* Line 1810 of yacc.c  */
5562 < #line 1982 "conf_parser.y"
5225 >  case 354:
5226 > /* Line 1787 of yacc.c  */
5227 > #line 1907 "conf_parser.y"
5228      {
5229    if (conf_parser_ctx.pass == 2)
5230 <    yy_conf->flags |= SHARED_UNKLINE;
5230 >    block_state.flags.value |= SHARED_KLINE;
5231   }
5232      break;
5233  
5234 <  case 338:
5235 <
5236 < /* Line 1810 of yacc.c  */
5572 < #line 1986 "conf_parser.y"
5234 >  case 355:
5235 > /* Line 1787 of yacc.c  */
5236 > #line 1911 "conf_parser.y"
5237      {
5238    if (conf_parser_ctx.pass == 2)
5239 <    yy_conf->flags |= SHARED_DLINE;
5239 >    block_state.flags.value |= SHARED_UNKLINE;
5240   }
5241      break;
5242  
5243 <  case 339:
5244 <
5245 < /* Line 1810 of yacc.c  */
5582 < #line 1990 "conf_parser.y"
5243 >  case 356:
5244 > /* Line 1787 of yacc.c  */
5245 > #line 1915 "conf_parser.y"
5246      {
5247    if (conf_parser_ctx.pass == 2)
5248 <    yy_conf->flags |= SHARED_UNDLINE;
5248 >    block_state.flags.value |= SHARED_DLINE;
5249   }
5250      break;
5251  
5252 <  case 340:
5253 <
5254 < /* Line 1810 of yacc.c  */
5592 < #line 1994 "conf_parser.y"
5252 >  case 357:
5253 > /* Line 1787 of yacc.c  */
5254 > #line 1919 "conf_parser.y"
5255      {
5256    if (conf_parser_ctx.pass == 2)
5257 <    yy_conf->flags |= SHARED_XLINE;
5257 >    block_state.flags.value |= SHARED_UNDLINE;
5258   }
5259      break;
5260  
5261 <  case 341:
5262 <
5263 < /* Line 1810 of yacc.c  */
5602 < #line 1998 "conf_parser.y"
5261 >  case 358:
5262 > /* Line 1787 of yacc.c  */
5263 > #line 1923 "conf_parser.y"
5264      {
5265    if (conf_parser_ctx.pass == 2)
5266 <    yy_conf->flags |= SHARED_UNXLINE;
5266 >    block_state.flags.value |= SHARED_XLINE;
5267   }
5268      break;
5269  
5270 <  case 342:
5271 <
5272 < /* Line 1810 of yacc.c  */
5612 < #line 2002 "conf_parser.y"
5270 >  case 359:
5271 > /* Line 1787 of yacc.c  */
5272 > #line 1927 "conf_parser.y"
5273      {
5274    if (conf_parser_ctx.pass == 2)
5275 <    yy_conf->flags |= SHARED_RESV;
5275 >    block_state.flags.value |= SHARED_UNXLINE;
5276   }
5277      break;
5278  
5279 <  case 343:
5280 <
5281 < /* Line 1810 of yacc.c  */
5622 < #line 2006 "conf_parser.y"
5279 >  case 360:
5280 > /* Line 1787 of yacc.c  */
5281 > #line 1931 "conf_parser.y"
5282      {
5283    if (conf_parser_ctx.pass == 2)
5284 <    yy_conf->flags |= SHARED_UNRESV;
5284 >    block_state.flags.value |= SHARED_RESV;
5285   }
5286      break;
5287  
5288 <  case 344:
5289 <
5290 < /* Line 1810 of yacc.c  */
5632 < #line 2010 "conf_parser.y"
5288 >  case 361:
5289 > /* Line 1787 of yacc.c  */
5290 > #line 1935 "conf_parser.y"
5291      {
5292    if (conf_parser_ctx.pass == 2)
5293 <    yy_conf->flags |= SHARED_LOCOPS;
5293 >    block_state.flags.value |= SHARED_UNRESV;
5294   }
5295      break;
5296  
5297 <  case 345:
5298 <
5299 < /* Line 1810 of yacc.c  */
5642 < #line 2014 "conf_parser.y"
5297 >  case 362:
5298 > /* Line 1787 of yacc.c  */
5299 > #line 1939 "conf_parser.y"
5300      {
5301    if (conf_parser_ctx.pass == 2)
5302 <    yy_conf->flags = SHARED_ALL;
5302 >    block_state.flags.value |= SHARED_LOCOPS;
5303   }
5304      break;
5305  
5306 <  case 346:
5307 <
5308 < /* Line 1810 of yacc.c  */
5652 < #line 2023 "conf_parser.y"
5306 >  case 363:
5307 > /* Line 1787 of yacc.c  */
5308 > #line 1943 "conf_parser.y"
5309      {
5310    if (conf_parser_ctx.pass == 2)
5311 <  {
5656 <    yy_conf = make_conf_item(SERVER_TYPE);
5657 <    yy_aconf = map_to_conf(yy_conf);
5658 <
5659 <    /* defaults */
5660 <    yy_aconf->port = PORTNUM;
5661 <  }
5662 <  else
5663 <  {
5664 <    MyFree(class_name);
5665 <    class_name = NULL;
5666 <  }
5311 >    block_state.flags.value = SHARED_ALL;
5312   }
5313      break;
5314  
5315 <  case 347:
5316 <
5317 < /* Line 1810 of yacc.c  */
5673 < #line 2038 "conf_parser.y"
5674 <    {
5675 <  if (conf_parser_ctx.pass == 2)
5676 <  {
5677 <    if (yy_aconf->host && yy_aconf->passwd && yy_aconf->spasswd)
5678 <    {
5679 <      if (conf_add_server(yy_conf, class_name) == -1)
5680 <        delete_conf_item(yy_conf);
5681 <    }
5682 <    else
5315 >  case 364:
5316 > /* Line 1787 of yacc.c  */
5317 > #line 1952 "conf_parser.y"
5318      {
5684      if (yy_conf->name != NULL)
5685      {
5686        if (yy_aconf->host == NULL)
5687          yyerror("Ignoring connect block -- missing host");
5688        else if (!yy_aconf->passwd || !yy_aconf->spasswd)
5689          yyerror("Ignoring connect block -- missing password");
5690      }
5319  
5320 <      /* XXX
5321 <       * This fixes a try_connections() core (caused by invalid class_ptr
5694 <       * pointers) reported by metalrock. That's an ugly fix, but there
5695 <       * is currently no better way. The entire config subsystem needs an
5696 <       * rewrite ASAP. make_conf_item() shouldn't really add things onto
5697 <       * a doubly linked list immediately without any sanity checks!  -Michael
5698 <       */
5699 <      delete_conf_item(yy_conf);
5700 <    }
5320 >  if (conf_parser_ctx.pass != 2)
5321 >    break;
5322  
5323 <    MyFree(class_name);
5324 <    class_name = NULL;
5704 <    yy_conf = NULL;
5705 <    yy_aconf = NULL;
5706 <  }
5323 >  reset_block_state();
5324 >  block_state.port.value = PORTNUM;
5325   }
5326      break;
5327  
5328 <  case 364:
5329 <
5330 < /* Line 1810 of yacc.c  */
5713 < #line 2082 "conf_parser.y"
5328 >  case 365:
5329 > /* Line 1787 of yacc.c  */
5330 > #line 1960 "conf_parser.y"
5331      {
5332 <  if (conf_parser_ctx.pass == 2)
5333 <  {
5334 <    MyFree(yy_conf->name);
5335 <    DupString(yy_conf->name, yylval.string);
5719 <  }
5720 < }
5332 >  struct MaskItem *conf = NULL;
5333 >  struct addrinfo hints, *res;
5334 >
5335 >  if (conf_parser_ctx.pass != 2)
5336      break;
5337  
5338 <  case 365:
5338 >  if (!block_state.name.buf[0] ||
5339 >      !block_state.host.buf[0])
5340 >    break;
5341  
5342 < /* Line 1810 of yacc.c  */
5343 < #line 2091 "conf_parser.y"
5727 <    {
5728 <  if (conf_parser_ctx.pass == 2)
5729 <  {
5730 <    MyFree(yy_aconf->host);
5731 <    DupString(yy_aconf->host, yylval.string);
5732 <  }
5733 < }
5342 >  if (!(block_state.rpass.buf[0] ||
5343 >        block_state.spass.buf[0]))
5344      break;
5345  
5346 <  case 366:
5346 >  if (has_wildcards(block_state.name.buf) ||
5347 >      has_wildcards(block_state.host.buf))
5348 >    break;
5349  
5350 < /* Line 1810 of yacc.c  */
5351 < #line 2100 "conf_parser.y"
5352 <    {
5353 <  if (conf_parser_ctx.pass == 2)
5354 <  {
5355 <    struct addrinfo hints, *res;
5350 >  conf = conf_make(CONF_SERVER);
5351 >  conf->port = block_state.port.value;
5352 >  conf->flags = block_state.flags.value;
5353 >  conf->aftype = block_state.aftype.value;
5354 >  conf->host = xstrdup(block_state.host.buf);
5355 >  conf->name = xstrdup(block_state.name.buf);
5356 >  conf->passwd = xstrdup(block_state.rpass.buf);
5357 >  conf->spasswd = xstrdup(block_state.spass.buf);
5358 >  conf->cipher_list = xstrdup(block_state.ciph.buf);
5359 >
5360 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5361 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5362  
5363 +  if (block_state.bind.buf[0])
5364 +  {
5365      memset(&hints, 0, sizeof(hints));
5366  
5367      hints.ai_family   = AF_UNSPEC;
5368      hints.ai_socktype = SOCK_STREAM;
5369      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5370  
5371 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
5372 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
5371 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5372 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5373      else
5374      {
5375        assert(res != NULL);
5376  
5377 <      memcpy(&yy_aconf->bind, res->ai_addr, res->ai_addrlen);
5378 <      yy_aconf->bind.ss.ss_family = res->ai_family;
5379 <      yy_aconf->bind.ss_len = res->ai_addrlen;
5377 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5378 >      conf->bind.ss.ss_family = res->ai_family;
5379 >      conf->bind.ss_len = res->ai_addrlen;
5380        freeaddrinfo(res);
5381      }
5382    }
5383 +
5384 +  conf_add_class_to_conf(conf, block_state.class.buf);
5385 +  lookup_confhost(conf);
5386   }
5387      break;
5388  
5389 <  case 367:
5390 <
5391 < /* Line 1810 of yacc.c  */
5769 < #line 2126 "conf_parser.y"
5389 >  case 382:
5390 > /* Line 1787 of yacc.c  */
5391 > #line 2026 "conf_parser.y"
5392      {
5393    if (conf_parser_ctx.pass == 2)
5394 <  {
5773 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5774 <      yyerror("Server passwords cannot begin with a colon");
5775 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5776 <      yyerror("Server passwords cannot contain spaces");
5777 <    else {
5778 <      if (yy_aconf->spasswd != NULL)
5779 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
5780 <
5781 <      MyFree(yy_aconf->spasswd);
5782 <      DupString(yy_aconf->spasswd, yylval.string);
5783 <    }
5784 <  }
5394 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5395   }
5396      break;
5397  
5398 <  case 368:
5399 <
5400 < /* Line 1810 of yacc.c  */
5791 < #line 2144 "conf_parser.y"
5398 >  case 383:
5399 > /* Line 1787 of yacc.c  */
5400 > #line 2032 "conf_parser.y"
5401      {
5402    if (conf_parser_ctx.pass == 2)
5403 <  {
5795 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5796 <      yyerror("Server passwords cannot begin with a colon");
5797 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5798 <      yyerror("Server passwords cannot contain spaces");
5799 <    else {
5800 <      if (yy_aconf->passwd != NULL)
5801 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5802 <
5803 <      MyFree(yy_aconf->passwd);
5804 <      DupString(yy_aconf->passwd, yylval.string);
5805 <    }
5806 <  }
5403 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5404   }
5405      break;
5406  
5407 <  case 369:
5408 <
5409 < /* Line 1810 of yacc.c  */
5813 < #line 2162 "conf_parser.y"
5407 >  case 384:
5408 > /* Line 1787 of yacc.c  */
5409 > #line 2038 "conf_parser.y"
5410      {
5411    if (conf_parser_ctx.pass == 2)
5412 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5412 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5413   }
5414      break;
5415  
5416 <  case 370:
5417 <
5418 < /* Line 1810 of yacc.c  */
5823 < #line 2168 "conf_parser.y"
5416 >  case 385:
5417 > /* Line 1787 of yacc.c  */
5418 > #line 2044 "conf_parser.y"
5419      {
5420 <  if (conf_parser_ctx.pass == 2)
5826 <    yy_aconf->aftype = AF_INET;
5827 < }
5420 >  if (conf_parser_ctx.pass != 2)
5421      break;
5422  
5423 <  case 371:
5423 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5424 >    conf_error_report("Server passwords cannot begin with a colon");
5425 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5426 >    conf_error_report("Server passwords cannot contain spaces");
5427 >  else
5428 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5429 > }
5430 >    break;
5431  
5432 < /* Line 1810 of yacc.c  */
5433 < #line 2172 "conf_parser.y"
5432 >  case 386:
5433 > /* Line 1787 of yacc.c  */
5434 > #line 2057 "conf_parser.y"
5435      {
5436 < #ifdef IPV6
5836 <  if (conf_parser_ctx.pass == 2)
5837 <    yy_aconf->aftype = AF_INET6;
5838 < #endif
5839 < }
5436 >  if (conf_parser_ctx.pass != 2)
5437      break;
5438  
5439 <  case 372:
5439 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5440 >    conf_error_report("Server passwords cannot begin with a colon");
5441 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5442 >    conf_error_report("Server passwords cannot contain spaces");
5443 >  else
5444 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5445 > }
5446 >    break;
5447  
5448 < /* Line 1810 of yacc.c  */
5449 < #line 2180 "conf_parser.y"
5448 >  case 387:
5449 > /* Line 1787 of yacc.c  */
5450 > #line 2070 "conf_parser.y"
5451      {
5452 +  if (conf_parser_ctx.pass == 2)
5453 +    block_state.port.value = (yyvsp[(3) - (4)].number);
5454   }
5455      break;
5456  
5457 <  case 376:
5458 <
5459 < /* Line 1810 of yacc.c  */
5853 < #line 2185 "conf_parser.y"
5457 >  case 388:
5458 > /* Line 1787 of yacc.c  */
5459 > #line 2076 "conf_parser.y"
5460      {
5461    if (conf_parser_ctx.pass == 2)
5462 <    SetConfAllowAutoConn(yy_aconf);
5462 >    block_state.aftype.value = AF_INET;
5463   }
5464      break;
5465  
5466 <  case 377:
5467 <
5468 < /* Line 1810 of yacc.c  */
5863 < #line 2189 "conf_parser.y"
5466 >  case 389:
5467 > /* Line 1787 of yacc.c  */
5468 > #line 2080 "conf_parser.y"
5469      {
5470 + #ifdef IPV6
5471    if (conf_parser_ctx.pass == 2)
5472 <    SetConfAwayBurst(yy_aconf);
5472 >    block_state.aftype.value = AF_INET6;
5473 > #endif
5474   }
5475      break;
5476  
5477 <  case 378:
5477 >  case 390:
5478 > /* Line 1787 of yacc.c  */
5479 > #line 2088 "conf_parser.y"
5480 >    {
5481 >  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5482 > }
5483 >    break;
5484  
5485 < /* Line 1810 of yacc.c  */
5486 < #line 2193 "conf_parser.y"
5485 >  case 394:
5486 > /* Line 1787 of yacc.c  */
5487 > #line 2094 "conf_parser.y"
5488      {
5489    if (conf_parser_ctx.pass == 2)
5490 <    SetConfTopicBurst(yy_aconf);
5490 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5491   }
5492      break;
5493  
5494 <  case 379:
5495 <
5496 < /* Line 1810 of yacc.c  */
5883 < #line 2197 "conf_parser.y"
5494 >  case 395:
5495 > /* Line 1787 of yacc.c  */
5496 > #line 2098 "conf_parser.y"
5497      {
5498    if (conf_parser_ctx.pass == 2)
5499 <    SetConfSSL(yy_aconf);
5499 >    block_state.flags.value |= CONF_FLAGS_SSL;
5500   }
5501      break;
5502  
5503 <  case 380:
5504 <
5505 < /* Line 1810 of yacc.c  */
5893 < #line 2203 "conf_parser.y"
5503 >  case 396:
5504 > /* Line 1787 of yacc.c  */
5505 > #line 2104 "conf_parser.y"
5506      {
5507    if (conf_parser_ctx.pass == 2)
5508    {
5509      if (yylval.number)
5510 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
5510 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5511      else
5512 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
5512 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5513    }
5514   }
5515      break;
5516  
5517 <  case 381:
5518 <
5519 < /* Line 1810 of yacc.c  */
5908 < #line 2214 "conf_parser.y"
5517 >  case 397:
5518 > /* Line 1787 of yacc.c  */
5519 > #line 2115 "conf_parser.y"
5520      {
5521    if (conf_parser_ctx.pass == 2)
5522 <  {
5912 <    char *mask;
5913 <
5914 <    DupString(mask, yylval.string);
5915 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->hub_list);
5916 <  }
5522 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5523   }
5524      break;
5525  
5526 <  case 382:
5527 <
5528 < /* Line 1810 of yacc.c  */
5923 < #line 2225 "conf_parser.y"
5526 >  case 398:
5527 > /* Line 1787 of yacc.c  */
5528 > #line 2121 "conf_parser.y"
5529      {
5530    if (conf_parser_ctx.pass == 2)
5531 <  {
5927 <    char *mask;
5928 <
5929 <    DupString(mask, yylval.string);
5930 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->leaf_list);
5931 <  }
5531 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5532   }
5533      break;
5534  
5535 <  case 383:
5536 <
5537 < /* Line 1810 of yacc.c  */
5938 < #line 2236 "conf_parser.y"
5535 >  case 399:
5536 > /* Line 1787 of yacc.c  */
5537 > #line 2127 "conf_parser.y"
5538      {
5539    if (conf_parser_ctx.pass == 2)
5540 <  {
5942 <    MyFree(class_name);
5943 <    DupString(class_name, yylval.string);
5944 <  }
5540 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5541   }
5542      break;
5543  
5544 <  case 384:
5545 <
5546 < /* Line 1810 of yacc.c  */
5951 < #line 2245 "conf_parser.y"
5544 >  case 400:
5545 > /* Line 1787 of yacc.c  */
5546 > #line 2133 "conf_parser.y"
5547      {
5548   #ifdef HAVE_LIBCRYPTO
5549    if (conf_parser_ctx.pass == 2)
5550 <  {
5956 <    MyFree(yy_aconf->cipher_list);
5957 <    DupString(yy_aconf->cipher_list, yylval.string);
5958 <  }
5550 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5551   #else
5552    if (conf_parser_ctx.pass == 2)
5553 <    yyerror("Ignoring connect::ciphers -- no OpenSSL support");
5553 >    conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5554   #endif
5555   }
5556      break;
5557  
5558 <  case 385:
5559 <
5560 < /* Line 1810 of yacc.c  */
5969 < #line 2263 "conf_parser.y"
5558 >  case 401:
5559 > /* Line 1787 of yacc.c  */
5560 > #line 2148 "conf_parser.y"
5561      {
5562    if (conf_parser_ctx.pass == 2)
5563 <  {
5973 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
5974 <    regex_ban = 0;
5975 <  }
5563 >    reset_block_state();
5564   }
5565      break;
5566  
5567 <  case 386:
5568 <
5569 < /* Line 1810 of yacc.c  */
5982 < #line 2270 "conf_parser.y"
5567 >  case 402:
5568 > /* Line 1787 of yacc.c  */
5569 > #line 2152 "conf_parser.y"
5570      {
5571 <  if (conf_parser_ctx.pass == 2)
5985 <  {
5986 <    if (userbuf[0] && hostbuf[0])
5987 <    {
5988 <      if (regex_ban)
5989 <      {
5990 < #ifdef HAVE_LIBPCRE
5991 <        void *exp_user = NULL;
5992 <        void *exp_host = NULL;
5993 <        const char *errptr = NULL;
5994 <
5995 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
5996 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
5997 <        {
5998 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
5999 <               errptr);
6000 <          break;
6001 <        }
6002 <
6003 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
6004 <        yy_aconf->regexuser = exp_user;
6005 <        yy_aconf->regexhost = exp_host;
6006 <
6007 <        DupString(yy_aconf->user, userbuf);
6008 <        DupString(yy_aconf->host, hostbuf);
6009 <
6010 <        if (reasonbuf[0])
6011 <          DupString(yy_aconf->reason, reasonbuf);
6012 <        else
6013 <          DupString(yy_aconf->reason, "No reason");
6014 < #else
6015 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
6016 <        break;
6017 < #endif
6018 <      }
6019 <      else
6020 <      {
6021 <        find_and_delete_temporary(userbuf, hostbuf, CONF_KLINE);
6022 <
6023 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
5571 >  struct MaskItem *conf = NULL;
5572  
5573 <        DupString(yy_aconf->user, userbuf);
6026 <        DupString(yy_aconf->host, hostbuf);
6027 <
6028 <        if (reasonbuf[0])
6029 <          DupString(yy_aconf->reason, reasonbuf);
6030 <        else
6031 <          DupString(yy_aconf->reason, "No reason");
6032 <        add_conf_by_address(CONF_KLINE, yy_aconf);
6033 <      }
6034 <    }
6035 <
6036 <    yy_aconf = NULL;
6037 <  }
6038 < }
5573 >  if (conf_parser_ctx.pass != 2)
5574      break;
5575  
5576 <  case 387:
5577 <
6043 < /* Line 1810 of yacc.c  */
6044 < #line 2328 "conf_parser.y"
6045 <    {
6046 < }
5576 >  if (!block_state.user.buf[0] ||
5577 >      !block_state.host.buf[0])
5578      break;
5579  
5580 <  case 391:
5580 >  conf = conf_make(CONF_KLINE);
5581 >  conf->user = xstrdup(block_state.user.buf);
5582 >  conf->host = xstrdup(block_state.host.buf);
5583  
5584 < /* Line 1810 of yacc.c  */
5585 < #line 2333 "conf_parser.y"
5586 <    {
5587 <  if (conf_parser_ctx.pass == 2)
5588 <    regex_ban = 1;
5584 >  if (block_state.rpass.buf[0])
5585 >    conf->reason = xstrdup(block_state.rpass.buf);
5586 >  else
5587 >    conf->reason = xstrdup(CONF_NOREASON);
5588 >  add_conf_by_address(CONF_KLINE, conf);
5589   }
5590      break;
5591  
5592 <  case 398:
5593 <
5594 < /* Line 1810 of yacc.c  */
6062 < #line 2342 "conf_parser.y"
5592 >  case 408:
5593 > /* Line 1787 of yacc.c  */
5594 > #line 2177 "conf_parser.y"
5595      {
5596 +
5597    if (conf_parser_ctx.pass == 2)
5598    {
5599      struct split_nuh_item nuh;
5600  
5601      nuh.nuhmask  = yylval.string;
5602      nuh.nickptr  = NULL;
5603 <    nuh.userptr  = userbuf;
5604 <    nuh.hostptr  = hostbuf;
5603 >    nuh.userptr  = block_state.user.buf;
5604 >    nuh.hostptr  = block_state.host.buf;
5605  
5606      nuh.nicksize = 0;
5607 <    nuh.usersize = sizeof(userbuf);
5608 <    nuh.hostsize = sizeof(hostbuf);
5607 >    nuh.usersize = sizeof(block_state.user.buf);
5608 >    nuh.hostsize = sizeof(block_state.host.buf);
5609  
5610      split_nuh(&nuh);
5611    }
5612   }
5613      break;
5614  
5615 <  case 399:
5616 <
5617 < /* Line 1810 of yacc.c  */
6085 < #line 2361 "conf_parser.y"
5615 >  case 409:
5616 > /* Line 1787 of yacc.c  */
5617 > #line 2197 "conf_parser.y"
5618      {
5619    if (conf_parser_ctx.pass == 2)
5620 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5620 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5621   }
5622      break;
5623  
5624 <  case 400:
5625 <
5626 < /* Line 1810 of yacc.c  */
6095 < #line 2370 "conf_parser.y"
5624 >  case 410:
5625 > /* Line 1787 of yacc.c  */
5626 > #line 2206 "conf_parser.y"
5627      {
5628    if (conf_parser_ctx.pass == 2)
5629 <    hostbuf[0] = reasonbuf[0] = '\0';
5629 >    reset_block_state();
5630   }
5631      break;
5632  
5633 <  case 401:
5634 <
5635 < /* Line 1810 of yacc.c  */
6105 < #line 2374 "conf_parser.y"
6106 <    {
6107 <  if (conf_parser_ctx.pass == 2)
6108 <  {
6109 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
5633 >  case 411:
5634 > /* Line 1787 of yacc.c  */
5635 > #line 2210 "conf_parser.y"
5636      {
5637 <      find_and_delete_temporary(NULL, hostbuf, CONF_DLINE);
5637 >  struct MaskItem *conf = NULL;
5638 >
5639 >  if (conf_parser_ctx.pass != 2)
5640 >    break;
5641  
5642 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
5643 <      DupString(yy_aconf->host, hostbuf);
5642 >  if (!block_state.addr.buf[0])
5643 >    break;
5644  
5645 <      if (reasonbuf[0])
5646 <        DupString(yy_aconf->reason, reasonbuf);
5647 <      else
5648 <        DupString(yy_aconf->reason, "No reason");
5649 <      add_conf_by_address(CONF_DLINE, yy_aconf);
5650 <      yy_aconf = NULL;
5651 <    }
5645 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5646 >  {
5647 >    conf = conf_make(CONF_DLINE);
5648 >    conf->host = xstrdup(block_state.addr.buf);
5649 >
5650 >    if (block_state.rpass.buf[0])
5651 >      conf->reason = xstrdup(block_state.rpass.buf);
5652 >    else
5653 >      conf->reason = xstrdup(CONF_NOREASON);
5654 >    add_conf_by_address(CONF_DLINE, conf);
5655    }
5656   }
5657      break;
5658  
5659 <  case 407:
5660 <
5661 < /* Line 1810 of yacc.c  */
6130 < #line 2398 "conf_parser.y"
5659 >  case 417:
5660 > /* Line 1787 of yacc.c  */
5661 > #line 2236 "conf_parser.y"
5662      {
5663    if (conf_parser_ctx.pass == 2)
5664 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5664 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5665   }
5666      break;
5667  
5668 <  case 408:
5669 <
5670 < /* Line 1810 of yacc.c  */
6140 < #line 2404 "conf_parser.y"
5668 >  case 418:
5669 > /* Line 1787 of yacc.c  */
5670 > #line 2242 "conf_parser.y"
5671      {
5672    if (conf_parser_ctx.pass == 2)
5673 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5673 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5674   }
5675      break;
5676  
5677 <  case 414:
5678 <
5679 < /* Line 1810 of yacc.c  */
6150 < #line 2418 "conf_parser.y"
5677 >  case 424:
5678 > /* Line 1787 of yacc.c  */
5679 > #line 2256 "conf_parser.y"
5680      {
5681    if (conf_parser_ctx.pass == 2)
5682    {
5683      if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5684      {
5685 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5686 <      DupString(yy_aconf->host, yylval.string);
5685 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5686 >      conf->host = xstrdup(yylval.string);
5687  
5688 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
6160 <      yy_aconf = NULL;
5688 >      add_conf_by_address(CONF_EXEMPT, conf);
5689      }
5690    }
5691   }
5692      break;
5693  
5694 <  case 415:
5695 <
5696 < /* Line 1810 of yacc.c  */
6169 < #line 2436 "conf_parser.y"
5694 >  case 425:
5695 > /* Line 1787 of yacc.c  */
5696 > #line 2273 "conf_parser.y"
5697      {
5698    if (conf_parser_ctx.pass == 2)
5699 <  {
6173 <    regex_ban = 0;
6174 <    reasonbuf[0] = gecos_name[0] = '\0';
6175 <  }
5699 >    reset_block_state();
5700   }
5701      break;
5702  
5703 <  case 416:
5704 <
5705 < /* Line 1810 of yacc.c  */
6182 < #line 2443 "conf_parser.y"
5703 >  case 426:
5704 > /* Line 1787 of yacc.c  */
5705 > #line 2277 "conf_parser.y"
5706      {
5707 <  if (conf_parser_ctx.pass == 2)
6185 <  {
6186 <    if (gecos_name[0])
6187 <    {
6188 <      if (regex_ban)
6189 <      {
6190 < #ifdef HAVE_LIBPCRE
6191 <        void *exp_p = NULL;
6192 <        const char *errptr = NULL;
6193 <
6194 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
6195 <        {
6196 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
6197 <               errptr);
6198 <          break;
6199 <        }
6200 <
6201 <        yy_conf = make_conf_item(RXLINE_TYPE);
6202 <        yy_conf->regexpname = exp_p;
6203 < #else
6204 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
6205 <        break;
6206 < #endif
6207 <      }
6208 <      else
6209 <        yy_conf = make_conf_item(XLINE_TYPE);
5707 >  struct MaskItem *conf = NULL;
5708  
5709 <      yy_match_item = map_to_conf(yy_conf);
6212 <      DupString(yy_conf->name, gecos_name);
6213 <
6214 <      if (reasonbuf[0])
6215 <        DupString(yy_match_item->reason, reasonbuf);
6216 <      else
6217 <        DupString(yy_match_item->reason, "No reason");
6218 <    }
6219 <  }
6220 < }
5709 >  if (conf_parser_ctx.pass != 2)
5710      break;
5711  
5712 <  case 417:
6224 <
6225 < /* Line 1810 of yacc.c  */
6226 < #line 2483 "conf_parser.y"
6227 <    {
6228 < }
5712 >  if (!block_state.name.buf[0])
5713      break;
5714  
5715 <  case 421:
5715 >  conf = conf_make(CONF_XLINE);
5716 >  conf->name = xstrdup(block_state.name.buf);
5717  
5718 < /* Line 1810 of yacc.c  */
5719 < #line 2488 "conf_parser.y"
5720 <    {
5721 <  if (conf_parser_ctx.pass == 2)
6237 <    regex_ban = 1;
5718 >  if (block_state.rpass.buf[0])
5719 >    conf->reason = xstrdup(block_state.rpass.buf);
5720 >  else
5721 >    conf->reason = xstrdup(CONF_NOREASON);
5722   }
5723      break;
5724  
5725 <  case 428:
5726 <
5727 < /* Line 1810 of yacc.c  */
6244 < #line 2497 "conf_parser.y"
5725 >  case 432:
5726 > /* Line 1787 of yacc.c  */
5727 > #line 2299 "conf_parser.y"
5728      {
5729    if (conf_parser_ctx.pass == 2)
5730 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5730 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5731   }
5732      break;
5733  
5734 <  case 429:
5735 <
5736 < /* Line 1810 of yacc.c  */
6254 < #line 2503 "conf_parser.y"
5734 >  case 433:
5735 > /* Line 1787 of yacc.c  */
5736 > #line 2305 "conf_parser.y"
5737      {
5738    if (conf_parser_ctx.pass == 2)
5739 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
6258 < }
6259 <    break;
6260 <
6261 <  case 485:
6262 <
6263 < /* Line 1810 of yacc.c  */
6264 < #line 2547 "conf_parser.y"
6265 <    {
6266 <  ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5739 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5740   }
5741      break;
5742  
5743    case 486:
5744 <
5745 < /* Line 1810 of yacc.c  */
6273 < #line 2552 "conf_parser.y"
5744 > /* Line 1787 of yacc.c  */
5745 > #line 2349 "conf_parser.y"
5746      {
5747 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5747 >  ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5748   }
5749      break;
5750  
5751    case 487:
5752 <
5753 < /* Line 1810 of yacc.c  */
6282 < #line 2557 "conf_parser.y"
5752 > /* Line 1787 of yacc.c  */
5753 > #line 2354 "conf_parser.y"
5754      {
5755 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5755 >  if (conf_parser_ctx.pass == 2)
5756 >    ConfigFileEntry.glines = yylval.number;
5757   }
5758      break;
5759  
5760    case 488:
5761 <
5762 < /* Line 1810 of yacc.c  */
6291 < #line 2562 "conf_parser.y"
5761 > /* Line 1787 of yacc.c  */
5762 > #line 2360 "conf_parser.y"
5763      {
5764 <  ConfigFileEntry.use_whois_actually = yylval.number;
5764 >  if (conf_parser_ctx.pass == 2)
5765 >    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5766   }
5767      break;
5768  
5769    case 489:
5770 <
5771 < /* Line 1810 of yacc.c  */
6300 < #line 2567 "conf_parser.y"
5770 > /* Line 1787 of yacc.c  */
5771 > #line 2366 "conf_parser.y"
5772      {
5773 <  GlobalSetOptions.rejecttime = yylval.number;
5773 >  if (conf_parser_ctx.pass == 2)
5774 >    ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5775   }
5776      break;
5777  
5778    case 490:
5779 <
5780 < /* Line 1810 of yacc.c  */
6309 < #line 2572 "conf_parser.y"
5779 > /* Line 1787 of yacc.c  */
5780 > #line 2372 "conf_parser.y"
5781      {
5782 <  ConfigFileEntry.tkline_expire_notices = yylval.number;
5782 >  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5783   }
5784      break;
5785  
5786    case 491:
5787 <
5788 < /* Line 1810 of yacc.c  */
6318 < #line 2577 "conf_parser.y"
5787 > /* Line 1787 of yacc.c  */
5788 > #line 2377 "conf_parser.y"
5789      {
5790 <  ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5790 >  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5791   }
5792      break;
5793  
5794    case 492:
5795 <
5796 < /* Line 1810 of yacc.c  */
6327 < #line 2582 "conf_parser.y"
5795 > /* Line 1787 of yacc.c  */
5796 > #line 2382 "conf_parser.y"
5797      {
5798 <  ConfigFileEntry.hide_spoof_ips = yylval.number;
5798 >  ConfigFileEntry.tkline_expire_notices = yylval.number;
5799   }
5800      break;
5801  
5802    case 493:
5803 <
5804 < /* Line 1810 of yacc.c  */
6336 < #line 2587 "conf_parser.y"
5803 > /* Line 1787 of yacc.c  */
5804 > #line 2387 "conf_parser.y"
5805      {
5806 <  ConfigFileEntry.ignore_bogus_ts = yylval.number;
5806 >  ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5807   }
5808      break;
5809  
5810    case 494:
5811 <
5812 < /* Line 1810 of yacc.c  */
6345 < #line 2592 "conf_parser.y"
5811 > /* Line 1787 of yacc.c  */
5812 > #line 2392 "conf_parser.y"
5813      {
5814 <  ConfigFileEntry.disable_remote = yylval.number;
5814 >  ConfigFileEntry.hide_spoof_ips = yylval.number;
5815   }
5816      break;
5817  
5818    case 495:
5819 <
5820 < /* Line 1810 of yacc.c  */
6354 < #line 2597 "conf_parser.y"
5819 > /* Line 1787 of yacc.c  */
5820 > #line 2397 "conf_parser.y"
5821      {
5822 <  ConfigFileEntry.failed_oper_notice = yylval.number;
5822 >  ConfigFileEntry.ignore_bogus_ts = yylval.number;
5823   }
5824      break;
5825  
5826    case 496:
5827 <
5828 < /* Line 1810 of yacc.c  */
6363 < #line 2602 "conf_parser.y"
5827 > /* Line 1787 of yacc.c  */
5828 > #line 2402 "conf_parser.y"
5829      {
5830 <  ConfigFileEntry.anti_nick_flood = yylval.number;
5830 >  ConfigFileEntry.disable_remote = yylval.number;
5831   }
5832      break;
5833  
5834    case 497:
5835 <
5836 < /* Line 1810 of yacc.c  */
6372 < #line 2607 "conf_parser.y"
5835 > /* Line 1787 of yacc.c  */
5836 > #line 2407 "conf_parser.y"
5837      {
5838 <  ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5838 >  ConfigFileEntry.failed_oper_notice = yylval.number;
5839   }
5840      break;
5841  
5842    case 498:
5843 <
5844 < /* Line 1810 of yacc.c  */
6381 < #line 2612 "conf_parser.y"
5843 > /* Line 1787 of yacc.c  */
5844 > #line 2412 "conf_parser.y"
5845      {
5846 <  ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5846 >  ConfigFileEntry.anti_nick_flood = yylval.number;
5847   }
5848      break;
5849  
5850    case 499:
5851 <
5852 < /* Line 1810 of yacc.c  */
6390 < #line 2617 "conf_parser.y"
5851 > /* Line 1787 of yacc.c  */
5852 > #line 2417 "conf_parser.y"
5853      {
5854 <  ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5854 >  ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5855   }
5856      break;
5857  
5858    case 500:
5859 <
5860 < /* Line 1810 of yacc.c  */
6399 < #line 2622 "conf_parser.y"
5859 > /* Line 1787 of yacc.c  */
5860 > #line 2422 "conf_parser.y"
5861      {
5862 <  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5862 >  ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5863   }
5864      break;
5865  
5866    case 501:
5867 <
5868 < /* Line 1810 of yacc.c  */
6408 < #line 2627 "conf_parser.y"
5867 > /* Line 1787 of yacc.c  */
5868 > #line 2427 "conf_parser.y"
5869      {
5870 <  ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5870 >  ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5871   }
5872      break;
5873  
5874    case 502:
5875 <
5876 < /* Line 1810 of yacc.c  */
6417 < #line 2632 "conf_parser.y"
5875 > /* Line 1787 of yacc.c  */
5876 > #line 2432 "conf_parser.y"
5877      {
5878 <  if (conf_parser_ctx.pass == 2)
6420 <    ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5878 >  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5879   }
5880      break;
5881  
5882    case 503:
5883 <
5884 < /* Line 1810 of yacc.c  */
6427 < #line 2638 "conf_parser.y"
5883 > /* Line 1787 of yacc.c  */
5884 > #line 2437 "conf_parser.y"
5885      {
5886 <  if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
6430 <  {
6431 <    ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
6432 <    ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
6433 <    ilog(LOG_TYPE_IRCD, "Consider actually reading/editing the conf file, and removing this line.");
6434 <    exit(0);
6435 <  }
5886 >  ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5887   }
5888      break;
5889  
5890    case 504:
5891 <
5892 < /* Line 1810 of yacc.c  */
6442 < #line 2649 "conf_parser.y"
5891 > /* Line 1787 of yacc.c  */
5892 > #line 2442 "conf_parser.y"
5893      {
5894 <  ConfigFileEntry.kline_with_reason = yylval.number;
5894 >  if (conf_parser_ctx.pass == 2)
5895 >    ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5896   }
5897      break;
5898  
5899    case 505:
5900 <
5901 < /* Line 1810 of yacc.c  */
6451 < #line 2654 "conf_parser.y"
5900 > /* Line 1787 of yacc.c  */
5901 > #line 2448 "conf_parser.y"
5902      {
5903 <  if (conf_parser_ctx.pass == 2)
5903 >  if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
5904    {
5905 <    MyFree(ConfigFileEntry.kline_reason);
5906 <    DupString(ConfigFileEntry.kline_reason, yylval.string);
5905 >    ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
5906 >    ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
5907 >    ilog(LOG_TYPE_IRCD, "Consider actually reading/editing the conf file, and removing this line.");
5908 >    exit(0);
5909    }
5910   }
5911      break;
5912  
5913    case 506:
5914 <
5915 < /* Line 1810 of yacc.c  */
6464 < #line 2663 "conf_parser.y"
5914 > /* Line 1787 of yacc.c  */
5915 > #line 2459 "conf_parser.y"
5916      {
5917    ConfigFileEntry.invisible_on_connect = yylval.number;
5918   }
5919      break;
5920  
5921    case 507:
5922 <
5923 < /* Line 1810 of yacc.c  */
6473 < #line 2668 "conf_parser.y"
5922 > /* Line 1787 of yacc.c  */
5923 > #line 2464 "conf_parser.y"
5924      {
5925    ConfigFileEntry.warn_no_nline = yylval.number;
5926   }
5927      break;
5928  
5929    case 508:
5930 <
5931 < /* Line 1810 of yacc.c  */
6482 < #line 2673 "conf_parser.y"
5930 > /* Line 1787 of yacc.c  */
5931 > #line 2469 "conf_parser.y"
5932      {
5933    ConfigFileEntry.stats_e_disabled = yylval.number;
5934   }
5935      break;
5936  
5937    case 509:
5938 <
5939 < /* Line 1810 of yacc.c  */
6491 < #line 2678 "conf_parser.y"
5938 > /* Line 1787 of yacc.c  */
5939 > #line 2474 "conf_parser.y"
5940      {
5941    ConfigFileEntry.stats_o_oper_only = yylval.number;
5942   }
5943      break;
5944  
5945    case 510:
5946 <
5947 < /* Line 1810 of yacc.c  */
6500 < #line 2683 "conf_parser.y"
5946 > /* Line 1787 of yacc.c  */
5947 > #line 2479 "conf_parser.y"
5948      {
5949    ConfigFileEntry.stats_P_oper_only = yylval.number;
5950   }
5951      break;
5952  
5953    case 511:
5954 <
5955 < /* Line 1810 of yacc.c  */
6509 < #line 2688 "conf_parser.y"
5954 > /* Line 1787 of yacc.c  */
5955 > #line 2484 "conf_parser.y"
5956      {
5957    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5958   }
5959      break;
5960  
5961    case 512:
5962 <
5963 < /* Line 1810 of yacc.c  */
6518 < #line 2691 "conf_parser.y"
5962 > /* Line 1787 of yacc.c  */
5963 > #line 2487 "conf_parser.y"
5964      {
5965    ConfigFileEntry.stats_k_oper_only = 1;
5966   }
5967      break;
5968  
5969    case 513:
5970 <
5971 < /* Line 1810 of yacc.c  */
6527 < #line 2696 "conf_parser.y"
5970 > /* Line 1787 of yacc.c  */
5971 > #line 2492 "conf_parser.y"
5972      {
5973    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5974   }
5975      break;
5976  
5977    case 514:
5978 <
5979 < /* Line 1810 of yacc.c  */
6536 < #line 2699 "conf_parser.y"
5978 > /* Line 1787 of yacc.c  */
5979 > #line 2495 "conf_parser.y"
5980      {
5981    ConfigFileEntry.stats_i_oper_only = 1;
5982   }
5983      break;
5984  
5985    case 515:
5986 <
5987 < /* Line 1810 of yacc.c  */
6545 < #line 2704 "conf_parser.y"
5986 > /* Line 1787 of yacc.c  */
5987 > #line 2500 "conf_parser.y"
5988      {
5989    ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5990   }
5991      break;
5992  
5993    case 516:
5994 <
5995 < /* Line 1810 of yacc.c  */
6554 < #line 2709 "conf_parser.y"
5994 > /* Line 1787 of yacc.c  */
5995 > #line 2505 "conf_parser.y"
5996      {
5997    ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5998   }
5999      break;
6000  
6001    case 517:
6002 <
6003 < /* Line 1810 of yacc.c  */
6563 < #line 2714 "conf_parser.y"
6002 > /* Line 1787 of yacc.c  */
6003 > #line 2510 "conf_parser.y"
6004      {
6005    ConfigFileEntry.opers_bypass_callerid = yylval.number;
6006   }
6007      break;
6008  
6009    case 518:
6010 <
6011 < /* Line 1810 of yacc.c  */
6572 < #line 2719 "conf_parser.y"
6010 > /* Line 1787 of yacc.c  */
6011 > #line 2515 "conf_parser.y"
6012      {
6013    ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
6014   }
6015      break;
6016  
6017    case 519:
6018 <
6019 < /* Line 1810 of yacc.c  */
6581 < #line 2724 "conf_parser.y"
6018 > /* Line 1787 of yacc.c  */
6019 > #line 2520 "conf_parser.y"
6020      {
6021    ConfigFileEntry.short_motd = yylval.number;
6022   }
6023      break;
6024  
6025    case 520:
6026 <
6027 < /* Line 1810 of yacc.c  */
6590 < #line 2729 "conf_parser.y"
6026 > /* Line 1787 of yacc.c  */
6027 > #line 2525 "conf_parser.y"
6028      {
6029    ConfigFileEntry.no_oper_flood = yylval.number;
6030   }
6031      break;
6032  
6033    case 521:
6034 <
6035 < /* Line 1810 of yacc.c  */
6599 < #line 2734 "conf_parser.y"
6034 > /* Line 1787 of yacc.c  */
6035 > #line 2530 "conf_parser.y"
6036      {
6037    ConfigFileEntry.true_no_oper_flood = yylval.number;
6038   }
6039      break;
6040  
6041    case 522:
6042 <
6043 < /* Line 1810 of yacc.c  */
6608 < #line 2739 "conf_parser.y"
6042 > /* Line 1787 of yacc.c  */
6043 > #line 2535 "conf_parser.y"
6044      {
6045    ConfigFileEntry.oper_pass_resv = yylval.number;
6046   }
6047      break;
6048  
6049    case 523:
6050 <
6051 < /* Line 1810 of yacc.c  */
6617 < #line 2744 "conf_parser.y"
6618 <    {
6619 <  if (conf_parser_ctx.pass == 2)
6620 <  {
6621 <    if (strlen(yylval.string) > LOCALE_LENGTH-2)
6622 <      yylval.string[LOCALE_LENGTH-1] = '\0';
6623 <
6624 <    set_locale(yylval.string);
6625 <  }
6626 < }
6627 <    break;
6628 <
6629 <  case 524:
6630 <
6631 < /* Line 1810 of yacc.c  */
6632 < #line 2755 "conf_parser.y"
6050 > /* Line 1787 of yacc.c  */
6051 > #line 2540 "conf_parser.y"
6052      {
6053    ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
6054   }
6055      break;
6056  
6057 <  case 525:
6058 <
6059 < /* Line 1810 of yacc.c  */
6641 < #line 2760 "conf_parser.y"
6057 >  case 524:
6058 > /* Line 1787 of yacc.c  */
6059 > #line 2545 "conf_parser.y"
6060      {
6061    ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
6062   }
6063      break;
6064  
6065 <  case 526:
6066 <
6067 < /* Line 1810 of yacc.c  */
6650 < #line 2765 "conf_parser.y"
6065 >  case 525:
6066 > /* Line 1787 of yacc.c  */
6067 > #line 2550 "conf_parser.y"
6068      {
6069    ConfigFileEntry.use_egd = yylval.number;
6070   }
6071      break;
6072  
6073 <  case 527:
6074 <
6075 < /* Line 1810 of yacc.c  */
6659 < #line 2770 "conf_parser.y"
6073 >  case 526:
6074 > /* Line 1787 of yacc.c  */
6075 > #line 2555 "conf_parser.y"
6076      {
6077    if (conf_parser_ctx.pass == 2)
6078    {
6079      MyFree(ConfigFileEntry.egdpool_path);
6080 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
6080 >    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6081    }
6082   }
6083      break;
6084  
6085 <  case 528:
6086 <
6087 < /* Line 1810 of yacc.c  */
6672 < #line 2779 "conf_parser.y"
6085 >  case 527:
6086 > /* Line 1787 of yacc.c  */
6087 > #line 2564 "conf_parser.y"
6088      {
6089    if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6090    {
6091      MyFree(ConfigFileEntry.service_name);
6092 <    DupString(ConfigFileEntry.service_name, yylval.string);
6092 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
6093    }
6094   }
6095      break;
6096  
6097 <  case 529:
6098 <
6099 < /* Line 1810 of yacc.c  */
6685 < #line 2788 "conf_parser.y"
6097 >  case 528:
6098 > /* Line 1787 of yacc.c  */
6099 > #line 2573 "conf_parser.y"
6100      {
6101    ConfigFileEntry.ping_cookie = yylval.number;
6102   }
6103      break;
6104  
6105 <  case 530:
6106 <
6107 < /* Line 1810 of yacc.c  */
6694 < #line 2793 "conf_parser.y"
6105 >  case 529:
6106 > /* Line 1787 of yacc.c  */
6107 > #line 2578 "conf_parser.y"
6108      {
6109    ConfigFileEntry.disable_auth = yylval.number;
6110   }
6111      break;
6112  
6113 <  case 531:
6114 <
6115 < /* Line 1810 of yacc.c  */
6703 < #line 2798 "conf_parser.y"
6113 >  case 530:
6114 > /* Line 1787 of yacc.c  */
6115 > #line 2583 "conf_parser.y"
6116      {
6117    ConfigFileEntry.throttle_time = yylval.number;
6118   }
6119      break;
6120  
6121 <  case 532:
6122 <
6123 < /* Line 1810 of yacc.c  */
6712 < #line 2803 "conf_parser.y"
6121 >  case 531:
6122 > /* Line 1787 of yacc.c  */
6123 > #line 2588 "conf_parser.y"
6124      {
6125    ConfigFileEntry.oper_umodes = 0;
6126   }
6127      break;
6128  
6129 <  case 536:
6130 <
6131 < /* Line 1810 of yacc.c  */
6721 < #line 2809 "conf_parser.y"
6129 >  case 535:
6130 > /* Line 1787 of yacc.c  */
6131 > #line 2594 "conf_parser.y"
6132      {
6133    ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6134   }
6135      break;
6136  
6137 <  case 537:
6138 <
6139 < /* Line 1810 of yacc.c  */
6730 < #line 2812 "conf_parser.y"
6137 >  case 536:
6138 > /* Line 1787 of yacc.c  */
6139 > #line 2597 "conf_parser.y"
6140      {
6141    ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6142   }
6143      break;
6144  
6145 <  case 538:
6146 <
6147 < /* Line 1810 of yacc.c  */
6739 < #line 2815 "conf_parser.y"
6145 >  case 537:
6146 > /* Line 1787 of yacc.c  */
6147 > #line 2600 "conf_parser.y"
6148      {
6149    ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6150   }
6151      break;
6152  
6153 <  case 539:
6154 <
6155 < /* Line 1810 of yacc.c  */
6748 < #line 2818 "conf_parser.y"
6153 >  case 538:
6154 > /* Line 1787 of yacc.c  */
6155 > #line 2603 "conf_parser.y"
6156      {
6157    ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6158   }
6159      break;
6160  
6161 <  case 540:
6162 <
6163 < /* Line 1810 of yacc.c  */
6757 < #line 2821 "conf_parser.y"
6161 >  case 539:
6162 > /* Line 1787 of yacc.c  */
6163 > #line 2606 "conf_parser.y"
6164      {
6165    ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6166   }
6167      break;
6168  
6169 <  case 541:
6170 <
6171 < /* Line 1810 of yacc.c  */
6766 < #line 2824 "conf_parser.y"
6169 >  case 540:
6170 > /* Line 1787 of yacc.c  */
6171 > #line 2609 "conf_parser.y"
6172      {
6173    ConfigFileEntry.oper_umodes |= UMODE_FULL;
6174   }
6175      break;
6176  
6177 <  case 542:
6178 <
6179 < /* Line 1810 of yacc.c  */
6775 < #line 2827 "conf_parser.y"
6177 >  case 541:
6178 > /* Line 1787 of yacc.c  */
6179 > #line 2612 "conf_parser.y"
6180      {
6181    ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6182   }
6183      break;
6184  
6185 <  case 543:
6186 <
6187 < /* Line 1810 of yacc.c  */
6784 < #line 2830 "conf_parser.y"
6185 >  case 542:
6186 > /* Line 1787 of yacc.c  */
6187 > #line 2615 "conf_parser.y"
6188      {
6189    ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6190   }
6191      break;
6192  
6193 <  case 544:
6194 <
6195 < /* Line 1810 of yacc.c  */
6793 < #line 2833 "conf_parser.y"
6193 >  case 543:
6194 > /* Line 1787 of yacc.c  */
6195 > #line 2618 "conf_parser.y"
6196      {
6197    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6198   }
6199      break;
6200  
6201 <  case 545:
6202 <
6203 < /* Line 1810 of yacc.c  */
6802 < #line 2836 "conf_parser.y"
6201 >  case 544:
6202 > /* Line 1787 of yacc.c  */
6203 > #line 2621 "conf_parser.y"
6204      {
6205    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6206   }
6207      break;
6208  
6209 <  case 546:
6210 <
6211 < /* Line 1810 of yacc.c  */
6811 < #line 2839 "conf_parser.y"
6209 >  case 545:
6210 > /* Line 1787 of yacc.c  */
6211 > #line 2624 "conf_parser.y"
6212      {
6213    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6214   }
6215      break;
6216  
6217 <  case 547:
6218 <
6219 < /* Line 1810 of yacc.c  */
6820 < #line 2842 "conf_parser.y"
6217 >  case 546:
6218 > /* Line 1787 of yacc.c  */
6219 > #line 2627 "conf_parser.y"
6220      {
6221    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6222   }
6223      break;
6224  
6225 <  case 548:
6226 <
6227 < /* Line 1810 of yacc.c  */
6829 < #line 2845 "conf_parser.y"
6225 >  case 547:
6226 > /* Line 1787 of yacc.c  */
6227 > #line 2630 "conf_parser.y"
6228      {
6229    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6230   }
6231      break;
6232  
6233 <  case 549:
6234 <
6235 < /* Line 1810 of yacc.c  */
6838 < #line 2848 "conf_parser.y"
6233 >  case 548:
6234 > /* Line 1787 of yacc.c  */
6235 > #line 2633 "conf_parser.y"
6236      {
6237    ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6238   }
6239      break;
6240  
6241 <  case 550:
6242 <
6243 < /* Line 1810 of yacc.c  */
6847 < #line 2851 "conf_parser.y"
6241 >  case 549:
6242 > /* Line 1787 of yacc.c  */
6243 > #line 2636 "conf_parser.y"
6244      {
6245    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6246   }
6247      break;
6248  
6249 <  case 551:
6250 <
6251 < /* Line 1810 of yacc.c  */
6856 < #line 2854 "conf_parser.y"
6249 >  case 550:
6250 > /* Line 1787 of yacc.c  */
6251 > #line 2639 "conf_parser.y"
6252      {
6253    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6254   }
6255      break;
6256  
6257 <  case 552:
6258 <
6259 < /* Line 1810 of yacc.c  */
6865 < #line 2857 "conf_parser.y"
6257 >  case 551:
6258 > /* Line 1787 of yacc.c  */
6259 > #line 2642 "conf_parser.y"
6260      {
6261    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6262   }
6263      break;
6264  
6265 <  case 553:
6266 <
6267 < /* Line 1810 of yacc.c  */
6874 < #line 2860 "conf_parser.y"
6265 >  case 552:
6266 > /* Line 1787 of yacc.c  */
6267 > #line 2645 "conf_parser.y"
6268      {
6269    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6270   }
6271      break;
6272  
6273 <  case 554:
6274 <
6275 < /* Line 1810 of yacc.c  */
6883 < #line 2863 "conf_parser.y"
6273 >  case 553:
6274 > /* Line 1787 of yacc.c  */
6275 > #line 2648 "conf_parser.y"
6276      {
6277    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6278   }
6279      break;
6280  
6281 <  case 555:
6282 <
6283 < /* Line 1810 of yacc.c  */
6892 < #line 2866 "conf_parser.y"
6281 >  case 554:
6282 > /* Line 1787 of yacc.c  */
6283 > #line 2651 "conf_parser.y"
6284      {
6285    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6286   }
6287      break;
6288  
6289 <  case 556:
6290 <
6291 < /* Line 1810 of yacc.c  */
6901 < #line 2871 "conf_parser.y"
6289 >  case 555:
6290 > /* Line 1787 of yacc.c  */
6291 > #line 2654 "conf_parser.y"
6292      {
6293 <  ConfigFileEntry.oper_only_umodes = 0;
6293 >  ConfigFileEntry.oper_umodes |= UMODE_REGONLY;
6294   }
6295      break;
6296  
6297 <  case 560:
6297 >  case 556:
6298 > /* Line 1787 of yacc.c  */
6299 > #line 2657 "conf_parser.y"
6300 >    {
6301 >  ConfigFileEntry.oper_umodes |= UMODE_FARCONNECT;
6302 > }
6303 >    break;
6304  
6305 < /* Line 1810 of yacc.c  */
6306 < #line 2877 "conf_parser.y"
6305 >  case 557:
6306 > /* Line 1787 of yacc.c  */
6307 > #line 2662 "conf_parser.y"
6308      {
6309 <  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6309 >  ConfigFileEntry.oper_only_umodes = 0;
6310   }
6311      break;
6312  
6313    case 561:
6314 <
6315 < /* Line 1810 of yacc.c  */
6919 < #line 2880 "conf_parser.y"
6314 > /* Line 1787 of yacc.c  */
6315 > #line 2668 "conf_parser.y"
6316      {
6317 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6317 >  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6318   }
6319      break;
6320  
6321    case 562:
6322 <
6323 < /* Line 1810 of yacc.c  */
6928 < #line 2883 "conf_parser.y"
6322 > /* Line 1787 of yacc.c  */
6323 > #line 2671 "conf_parser.y"
6324      {
6325 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6325 >  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6326   }
6327      break;
6328  
6329    case 563:
6330 <
6331 < /* Line 1810 of yacc.c  */
6937 < #line 2886 "conf_parser.y"
6330 > /* Line 1787 of yacc.c  */
6331 > #line 2674 "conf_parser.y"
6332      {
6333 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6333 >  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6334   }
6335      break;
6336  
6337    case 564:
6338 <
6339 < /* Line 1810 of yacc.c  */
6946 < #line 2889 "conf_parser.y"
6338 > /* Line 1787 of yacc.c  */
6339 > #line 2677 "conf_parser.y"
6340      {
6341 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6341 >  ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6342   }
6343      break;
6344  
6345    case 565:
6346 <
6347 < /* Line 1810 of yacc.c  */
6348 < #line 2892 "conf_parser.y"
6349 <    {
6957 <  ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6346 > /* Line 1787 of yacc.c  */
6347 > #line 2680 "conf_parser.y"
6348 >    {
6349 >  ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6350   }
6351      break;
6352  
6353    case 566:
6354 <
6355 < /* Line 1810 of yacc.c  */
6356 < #line 2895 "conf_parser.y"
6357 <    {
6966 <  ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6354 > /* Line 1787 of yacc.c  */
6355 > #line 2683 "conf_parser.y"
6356 >    {
6357 >  ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6358   }
6359      break;
6360  
6361    case 567:
6362 <
6363 < /* Line 1810 of yacc.c  */
6973 < #line 2898 "conf_parser.y"
6362 > /* Line 1787 of yacc.c  */
6363 > #line 2686 "conf_parser.y"
6364      {
6365 <  ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6365 >  ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6366   }
6367      break;
6368  
6369    case 568:
6370 <
6371 < /* Line 1810 of yacc.c  */
6982 < #line 2901 "conf_parser.y"
6370 > /* Line 1787 of yacc.c  */
6371 > #line 2689 "conf_parser.y"
6372      {
6373 <  ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6373 >  ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6374   }
6375      break;
6376  
6377    case 569:
6378 <
6379 < /* Line 1810 of yacc.c  */
6991 < #line 2904 "conf_parser.y"
6378 > /* Line 1787 of yacc.c  */
6379 > #line 2692 "conf_parser.y"
6380      {
6381 <  ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6381 >  ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6382   }
6383      break;
6384  
6385    case 570:
6386 <
6387 < /* Line 1810 of yacc.c  */
7000 < #line 2907 "conf_parser.y"
6386 > /* Line 1787 of yacc.c  */
6387 > #line 2695 "conf_parser.y"
6388      {
6389 <  ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6389 >  ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6390   }
6391      break;
6392  
6393    case 571:
6394 <
6395 < /* Line 1810 of yacc.c  */
7009 < #line 2910 "conf_parser.y"
6394 > /* Line 1787 of yacc.c  */
6395 > #line 2698 "conf_parser.y"
6396      {
6397 <  ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6397 >  ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6398   }
6399      break;
6400  
6401    case 572:
6402 <
6403 < /* Line 1810 of yacc.c  */
7018 < #line 2913 "conf_parser.y"
6402 > /* Line 1787 of yacc.c  */
6403 > #line 2701 "conf_parser.y"
6404      {
6405 <  ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6405 >  ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6406   }
6407      break;
6408  
6409    case 573:
6410 <
6411 < /* Line 1810 of yacc.c  */
7027 < #line 2916 "conf_parser.y"
6410 > /* Line 1787 of yacc.c  */
6411 > #line 2704 "conf_parser.y"
6412      {
6413 <  ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6413 >  ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6414   }
6415      break;
6416  
6417    case 574:
6418 <
6419 < /* Line 1810 of yacc.c  */
7036 < #line 2919 "conf_parser.y"
6418 > /* Line 1787 of yacc.c  */
6419 > #line 2707 "conf_parser.y"
6420      {
6421 <  ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6421 >  ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6422   }
6423      break;
6424  
6425    case 575:
6426 <
6427 < /* Line 1810 of yacc.c  */
7045 < #line 2922 "conf_parser.y"
6426 > /* Line 1787 of yacc.c  */
6427 > #line 2710 "conf_parser.y"
6428      {
6429 <  ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6429 >  ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6430   }
6431      break;
6432  
6433    case 576:
6434 <
6435 < /* Line 1810 of yacc.c  */
7054 < #line 2925 "conf_parser.y"
6434 > /* Line 1787 of yacc.c  */
6435 > #line 2713 "conf_parser.y"
6436      {
6437 <  ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6437 >  ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6438   }
6439      break;
6440  
6441    case 577:
6442 <
6443 < /* Line 1810 of yacc.c  */
7063 < #line 2928 "conf_parser.y"
6442 > /* Line 1787 of yacc.c  */
6443 > #line 2716 "conf_parser.y"
6444      {
6445 <  ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6445 >  ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6446   }
6447      break;
6448  
6449    case 578:
6450 <
6451 < /* Line 1810 of yacc.c  */
7072 < #line 2931 "conf_parser.y"
6450 > /* Line 1787 of yacc.c  */
6451 > #line 2719 "conf_parser.y"
6452      {
6453 <  ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6453 >  ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6454   }
6455      break;
6456  
6457    case 579:
6458 <
6459 < /* Line 1810 of yacc.c  */
7081 < #line 2934 "conf_parser.y"
6458 > /* Line 1787 of yacc.c  */
6459 > #line 2722 "conf_parser.y"
6460      {
6461 <  ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6461 >  ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6462   }
6463      break;
6464  
6465    case 580:
6466 <
6467 < /* Line 1810 of yacc.c  */
7090 < #line 2939 "conf_parser.y"
6466 > /* Line 1787 of yacc.c  */
6467 > #line 2725 "conf_parser.y"
6468      {
6469 <  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6469 >  ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6470   }
6471      break;
6472  
6473    case 581:
6474 <
6475 < /* Line 1810 of yacc.c  */
7099 < #line 2944 "conf_parser.y"
6474 > /* Line 1787 of yacc.c  */
6475 > #line 2728 "conf_parser.y"
6476      {
6477 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6477 >  ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6478   }
6479      break;
6480  
6481    case 582:
6482 <
6483 < /* Line 1810 of yacc.c  */
7108 < #line 2949 "conf_parser.y"
6482 > /* Line 1787 of yacc.c  */
6483 > #line 2731 "conf_parser.y"
6484      {
6485 <  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6485 >  ConfigFileEntry.oper_only_umodes |= UMODE_FARCONNECT;
6486   }
6487      break;
6488  
6489    case 583:
6490 <
6491 < /* Line 1810 of yacc.c  */
7117 < #line 2954 "conf_parser.y"
6490 > /* Line 1787 of yacc.c  */
6491 > #line 2736 "conf_parser.y"
6492      {
6493 <  ConfigFileEntry.client_flood = (yyvsp[(3) - (4)].number);
6493 >  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6494   }
6495      break;
6496  
6497    case 584:
6498 <
6499 < /* Line 1810 of yacc.c  */
7126 < #line 2963 "conf_parser.y"
6498 > /* Line 1787 of yacc.c  */
6499 > #line 2741 "conf_parser.y"
6500      {
6501 <  if (conf_parser_ctx.pass == 2)
7129 <  {
7130 <    yy_conf = make_conf_item(GDENY_TYPE);
7131 <    yy_aconf = map_to_conf(yy_conf);
7132 <  }
6501 >  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6502   }
6503      break;
6504  
6505    case 585:
6506 <
6507 < /* Line 1810 of yacc.c  */
7139 < #line 2970 "conf_parser.y"
7140 <    {
7141 <  if (conf_parser_ctx.pass == 2)
7142 <  {
7143 <    /*
7144 <     * since we re-allocate yy_conf/yy_aconf after the end of action=, at the
7145 <     * end we will have one extra, so we should free it.
7146 <     */
7147 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
7148 <    {
7149 <      delete_conf_item(yy_conf);
7150 <      yy_conf = NULL;
7151 <      yy_aconf = NULL;
7152 <    }
7153 <  }
7154 < }
7155 <    break;
7156 <
7157 <  case 595:
7158 <
7159 < /* Line 1810 of yacc.c  */
7160 < #line 2996 "conf_parser.y"
6506 > /* Line 1787 of yacc.c  */
6507 > #line 2746 "conf_parser.y"
6508      {
6509 <  if (conf_parser_ctx.pass == 2)
7163 <    ConfigFileEntry.glines = yylval.number;
7164 < }
7165 <    break;
7166 <
7167 <  case 596:
7168 <
7169 < /* Line 1810 of yacc.c  */
7170 < #line 3002 "conf_parser.y"
7171 <    {
7172 <  if (conf_parser_ctx.pass == 2)
7173 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
7174 < }
7175 <    break;
7176 <
7177 <  case 597:
7178 <
7179 < /* Line 1810 of yacc.c  */
7180 < #line 3008 "conf_parser.y"
7181 <    {
7182 <  if (conf_parser_ctx.pass == 2)
7183 <    ConfigFileEntry.gline_logging = 0;
7184 < }
7185 <    break;
7186 <
7187 <  case 601:
7188 <
7189 < /* Line 1810 of yacc.c  */
7190 < #line 3014 "conf_parser.y"
7191 <    {
7192 <  if (conf_parser_ctx.pass == 2)
7193 <    ConfigFileEntry.gline_logging |= GDENY_REJECT;
6509 >  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6510   }
6511      break;
6512  
6513    case 602:
6514 <
6515 < /* Line 1810 of yacc.c  */
7200 < #line 3018 "conf_parser.y"
7201 <    {
7202 <  if (conf_parser_ctx.pass == 2)
7203 <    ConfigFileEntry.gline_logging |= GDENY_BLOCK;
7204 < }
7205 <    break;
7206 <
7207 <  case 603:
7208 <
7209 < /* Line 1810 of yacc.c  */
7210 < #line 3024 "conf_parser.y"
7211 <    {
7212 <  if (conf_parser_ctx.pass == 2)
7213 <  {
7214 <    struct split_nuh_item nuh;
7215 <
7216 <    nuh.nuhmask  = yylval.string;
7217 <    nuh.nickptr  = NULL;
7218 <    nuh.userptr  = userbuf;
7219 <    nuh.hostptr  = hostbuf;
7220 <
7221 <    nuh.nicksize = 0;
7222 <    nuh.usersize = sizeof(userbuf);
7223 <    nuh.hostsize = sizeof(hostbuf);
7224 <
7225 <    split_nuh(&nuh);
7226 <
7227 <    if (yy_aconf->user == NULL)
7228 <    {
7229 <      DupString(yy_aconf->user, userbuf);
7230 <      DupString(yy_aconf->host, hostbuf);
7231 <    }
7232 <    else
7233 <    {
7234 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
7235 <
7236 <      DupString(yy_tmp->user, userbuf);
7237 <      DupString(yy_tmp->host, hostbuf);
7238 <
7239 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
7240 <    }
7241 <  }
7242 < }
7243 <    break;
7244 <
7245 <  case 604:
7246 <
7247 < /* Line 1810 of yacc.c  */
7248 < #line 3058 "conf_parser.y"
7249 <    {
7250 <  if (conf_parser_ctx.pass == 2)  
7251 <  {
7252 <    MyFree(yy_conf->name);
7253 <    DupString(yy_conf->name, yylval.string);
7254 <  }
7255 < }
7256 <    break;
7257 <
7258 <  case 605:
7259 <
7260 < /* Line 1810 of yacc.c  */
7261 < #line 3067 "conf_parser.y"
7262 <    {
7263 <  if (conf_parser_ctx.pass == 2)
7264 <    yy_aconf->flags = 0;
7265 < }
7266 <    break;
7267 <
7268 <  case 606:
7269 <
7270 < /* Line 1810 of yacc.c  */
7271 < #line 3071 "conf_parser.y"
7272 <    {
7273 <  if (conf_parser_ctx.pass == 2)
7274 <  {
7275 <    struct CollectItem *yy_tmp = NULL;
7276 <    dlink_node *ptr, *next_ptr;
7277 <
7278 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
7279 <    {
7280 <      struct AccessItem *new_aconf;
7281 <      struct ConfItem *new_conf;
7282 <
7283 <      yy_tmp = ptr->data;
7284 <      new_conf = make_conf_item(GDENY_TYPE);
7285 <      new_aconf = map_to_conf(new_conf);
7286 <
7287 <      new_aconf->flags = yy_aconf->flags;
7288 <
7289 <      if (yy_conf->name != NULL)
7290 <        DupString(new_conf->name, yy_conf->name);
7291 <      else
7292 <        DupString(new_conf->name, "*");
7293 <      if (yy_aconf->user != NULL)
7294 <         DupString(new_aconf->user, yy_tmp->user);
7295 <      else  
7296 <        DupString(new_aconf->user, "*");
7297 <      if (yy_aconf->host != NULL)
7298 <        DupString(new_aconf->host, yy_tmp->host);
7299 <      else
7300 <        DupString(new_aconf->host, "*");
7301 <
7302 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
7303 <    }
7304 <
7305 <    /*
7306 <     * In case someone has fed us with more than one action= after user/name
7307 <     * which would leak memory  -Michael
7308 <     */
7309 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
7310 <      delete_conf_item(yy_conf);
7311 <
7312 <    yy_conf = make_conf_item(GDENY_TYPE);
7313 <    yy_aconf = map_to_conf(yy_conf);
7314 <  }
7315 < }
7316 <    break;
7317 <
7318 <  case 609:
7319 <
7320 < /* Line 1810 of yacc.c  */
7321 < #line 3118 "conf_parser.y"
7322 <    {
7323 <  if (conf_parser_ctx.pass == 2)
7324 <    yy_aconf->flags |= GDENY_REJECT;
7325 < }
7326 <    break;
7327 <
7328 <  case 610:
7329 <
7330 < /* Line 1810 of yacc.c  */
7331 < #line 3122 "conf_parser.y"
7332 <    {
7333 <  if (conf_parser_ctx.pass == 2)
7334 <    yy_aconf->flags |= GDENY_BLOCK;
7335 < }
7336 <    break;
7337 <
7338 <  case 632:
7339 <
7340 < /* Line 1810 of yacc.c  */
7341 < #line 3146 "conf_parser.y"
6514 > /* Line 1787 of yacc.c  */
6515 > #line 2769 "conf_parser.y"
6516      {
6517    ConfigChannel.disable_fake_channels = yylval.number;
6518   }
6519      break;
6520  
6521 <  case 633:
6522 <
6523 < /* Line 1810 of yacc.c  */
7350 < #line 3151 "conf_parser.y"
7351 <    {
7352 <  ConfigChannel.restrict_channels = yylval.number;
7353 < }
7354 <    break;
7355 <
7356 <  case 634:
7357 <
7358 < /* Line 1810 of yacc.c  */
7359 < #line 3156 "conf_parser.y"
7360 <    {
7361 <  ConfigChannel.disable_local_channels = yylval.number;
7362 < }
7363 <    break;
7364 <
7365 <  case 635:
7366 <
7367 < /* Line 1810 of yacc.c  */
7368 < #line 3161 "conf_parser.y"
7369 <    {
7370 <  ConfigChannel.use_except = yylval.number;
7371 < }
7372 <    break;
7373 <
7374 <  case 636:
7375 <
7376 < /* Line 1810 of yacc.c  */
7377 < #line 3166 "conf_parser.y"
7378 <    {
7379 <  ConfigChannel.use_invex = yylval.number;
7380 < }
7381 <    break;
7382 <
7383 <  case 637:
7384 <
7385 < /* Line 1810 of yacc.c  */
7386 < #line 3171 "conf_parser.y"
7387 <    {
7388 <  ConfigChannel.use_knock = yylval.number;
7389 < }
7390 <    break;
7391 <
7392 <  case 638:
7393 <
7394 < /* Line 1810 of yacc.c  */
7395 < #line 3176 "conf_parser.y"
6521 >  case 603:
6522 > /* Line 1787 of yacc.c  */
6523 > #line 2774 "conf_parser.y"
6524      {
6525    ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6526   }
6527      break;
6528  
6529 <  case 639:
6530 <
6531 < /* Line 1810 of yacc.c  */
7404 < #line 3181 "conf_parser.y"
6529 >  case 604:
6530 > /* Line 1787 of yacc.c  */
6531 > #line 2779 "conf_parser.y"
6532      {
6533    ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6534   }
6535      break;
6536  
6537 <  case 640:
6538 <
6539 < /* Line 1810 of yacc.c  */
7413 < #line 3186 "conf_parser.y"
6537 >  case 605:
6538 > /* Line 1787 of yacc.c  */
6539 > #line 2784 "conf_parser.y"
6540      {
6541    ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6542   }
6543      break;
6544  
6545 <  case 641:
6546 <
6547 < /* Line 1810 of yacc.c  */
7422 < #line 3191 "conf_parser.y"
6545 >  case 606:
6546 > /* Line 1787 of yacc.c  */
6547 > #line 2789 "conf_parser.y"
6548      {
6549 <  ConfigChannel.quiet_on_ban = yylval.number;
6549 >  ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6550   }
6551      break;
6552  
6553 <  case 642:
6554 <
6555 < /* Line 1810 of yacc.c  */
7431 < #line 3196 "conf_parser.y"
6553 >  case 607:
6554 > /* Line 1787 of yacc.c  */
6555 > #line 2794 "conf_parser.y"
6556      {
6557    ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6558   }
6559      break;
6560  
6561 <  case 643:
6562 <
6563 < /* Line 1810 of yacc.c  */
7440 < #line 3201 "conf_parser.y"
6561 >  case 608:
6562 > /* Line 1787 of yacc.c  */
6563 > #line 2799 "conf_parser.y"
6564      {
6565    ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6566   }
6567      break;
6568  
6569 <  case 644:
6570 <
6571 < /* Line 1810 of yacc.c  */
7449 < #line 3206 "conf_parser.y"
6569 >  case 609:
6570 > /* Line 1787 of yacc.c  */
6571 > #line 2804 "conf_parser.y"
6572      {
6573    ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6574   }
6575      break;
6576  
6577 <  case 645:
6578 <
6579 < /* Line 1810 of yacc.c  */
7458 < #line 3211 "conf_parser.y"
6577 >  case 610:
6578 > /* Line 1787 of yacc.c  */
6579 > #line 2809 "conf_parser.y"
6580      {
6581    ConfigChannel.no_create_on_split = yylval.number;
6582   }
6583      break;
6584  
6585 <  case 646:
6586 <
6587 < /* Line 1810 of yacc.c  */
7467 < #line 3216 "conf_parser.y"
6585 >  case 611:
6586 > /* Line 1787 of yacc.c  */
6587 > #line 2814 "conf_parser.y"
6588      {
6589    ConfigChannel.no_join_on_split = yylval.number;
6590   }
6591      break;
6592  
6593 <  case 647:
6594 <
6595 < /* Line 1810 of yacc.c  */
7476 < #line 3221 "conf_parser.y"
6593 >  case 612:
6594 > /* Line 1787 of yacc.c  */
6595 > #line 2819 "conf_parser.y"
6596      {
6597    GlobalSetOptions.joinfloodcount = yylval.number;
6598   }
6599      break;
6600  
6601 <  case 648:
6602 <
6603 < /* Line 1810 of yacc.c  */
7485 < #line 3226 "conf_parser.y"
6601 >  case 613:
6602 > /* Line 1787 of yacc.c  */
6603 > #line 2824 "conf_parser.y"
6604      {
6605    GlobalSetOptions.joinfloodtime = yylval.number;
6606   }
6607      break;
6608  
6609 <  case 660:
6610 <
6611 < /* Line 1810 of yacc.c  */
7494 < #line 3245 "conf_parser.y"
6609 >  case 625:
6610 > /* Line 1787 of yacc.c  */
6611 > #line 2843 "conf_parser.y"
6612      {
6613    if (conf_parser_ctx.pass == 2)
6614      ConfigServerHide.flatten_links = yylval.number;
6615   }
6616      break;
6617  
6618 <  case 661:
6619 <
6620 < /* Line 1810 of yacc.c  */
7504 < #line 3251 "conf_parser.y"
6618 >  case 626:
6619 > /* Line 1787 of yacc.c  */
6620 > #line 2849 "conf_parser.y"
6621      {
6622    if (conf_parser_ctx.pass == 2)
6623      ConfigServerHide.hide_servers = yylval.number;
6624   }
6625      break;
6626  
6627 <  case 662:
6627 >  case 627:
6628 > /* Line 1787 of yacc.c  */
6629 > #line 2855 "conf_parser.y"
6630 >    {
6631 >  if (conf_parser_ctx.pass == 2)
6632 >    ConfigServerHide.hide_services = yylval.number;
6633 > }
6634 >    break;
6635  
6636 < /* Line 1810 of yacc.c  */
6637 < #line 3257 "conf_parser.y"
6636 >  case 628:
6637 > /* Line 1787 of yacc.c  */
6638 > #line 2861 "conf_parser.y"
6639      {
6640    if (conf_parser_ctx.pass == 2)
6641    {
6642      MyFree(ConfigServerHide.hidden_name);
6643 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6643 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6644    }
6645   }
6646      break;
6647  
6648 <  case 663:
6649 <
6650 < /* Line 1810 of yacc.c  */
7527 < #line 3266 "conf_parser.y"
6648 >  case 629:
6649 > /* Line 1787 of yacc.c  */
6650 > #line 2870 "conf_parser.y"
6651      {
6652    if (conf_parser_ctx.pass == 2)
6653    {
# Line 7539 | Line 6662 | yyreduce:
6662   }
6663      break;
6664  
6665 <  case 664:
6666 <
6667 < /* Line 1810 of yacc.c  */
7545 < #line 3280 "conf_parser.y"
6665 >  case 630:
6666 > /* Line 1787 of yacc.c  */
6667 > #line 2884 "conf_parser.y"
6668      {
6669    if (conf_parser_ctx.pass == 2)
6670      ConfigServerHide.hidden = yylval.number;
6671   }
6672      break;
6673  
6674 <  case 665:
6675 <
6676 < /* Line 1810 of yacc.c  */
7555 < #line 3286 "conf_parser.y"
7556 <    {
7557 <  if (conf_parser_ctx.pass == 2)
7558 <    ConfigServerHide.disable_hidden = yylval.number;
7559 < }
7560 <    break;
7561 <
7562 <  case 666:
7563 <
7564 < /* Line 1810 of yacc.c  */
7565 < #line 3292 "conf_parser.y"
6674 >  case 631:
6675 > /* Line 1787 of yacc.c  */
6676 > #line 2890 "conf_parser.y"
6677      {
6678    if (conf_parser_ctx.pass == 2)
6679      ConfigServerHide.hide_server_ips = yylval.number;
# Line 7570 | Line 6681 | yyreduce:
6681      break;
6682  
6683  
6684 <
6685 < /* Line 1810 of yacc.c  */
7575 < #line 7576 "conf_parser.c"
6684 > /* Line 1787 of yacc.c  */
6685 > #line 6686 "conf_parser.c"
6686        default: break;
6687      }
6688    /* User semantic actions sometimes alter yychar, and that requires
# Line 7735 | Line 6845 | yyerrlab1:
6845        YY_STACK_PRINT (yyss, yyssp);
6846      }
6847  
6848 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6849    *++yyvsp = yylval;
6850 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6851  
6852  
6853    /* Shift the error token.  */
# Line 7801 | Line 6913 | yyreturn:
6913   }
6914  
6915  
7804

Comparing:
ircd-hybrid-8/src/conf_parser.c (property svn:keywords), Revision 1425 by michael, Wed Jun 6 08:44:22 2012 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (property svn:keywords), Revision 1992 by michael, Fri May 10 18:32:26 2013 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

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