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 1377 by michael, Mon Apr 30 19:35:16 2012 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (file contents), Revision 2185 by michael, Tue Jun 4 12:29:18 2013 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 2.5.  */
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-2011 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"
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 92 | Line 89
89   #include "resv.h"
90   #include "numeric.h"
91   #include "s_user.h"
92 + #include "motd.h"
93  
94   #ifdef HAVE_LIBCRYPTO
95   #include <openssl/rsa.h>
# Line 100 | Line 98
98   #include <openssl/dh.h>
99   #endif
100  
101 < int yylex(void);
101 > #include "rsa.h"
102  
103 < 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 dlink_list hub_conf_list  = { NULL, NULL, 0 };
114 < static dlink_list leaf_conf_list = { NULL, NULL, 0 };
115 < static unsigned int listener_flags = 0;
116 < static unsigned int regex_ban = 0;
117 < static char userbuf[IRCD_BUFSIZE];
118 < static char hostbuf[IRCD_BUFSIZE];
119 < static char reasonbuf[REASONLEN + 1];
120 < static char gecos_name[REALLEN * 4];
121 < static char lfile[IRCD_BUFSIZE];
122 < static unsigned int ltype = 0;
123 < static unsigned int lsize = 0;
124 < static char *resv_reason = NULL;
125 < static char *listener_address = NULL;
103 > int yylex(void);
104  
105 < struct CollectItem
105 > static struct
106   {
107 <  dlink_node node;
108 <  char *name;
109 <  char *user;
110 <  char *host;
111 <  char *passwd;
112 <  int  port;
113 <  int  flags;
114 < #ifdef HAVE_LIBCRYPTO
115 <  char *rsa_public_key_file;
116 <  RSA *rsa_public_key;
117 < #endif
118 < };
107 >  struct {
108 >    dlink_list list;
109 >  } mask,
110 >    leaf,
111 >    hub;
112 >
113 >  struct {
114 >    char buf[IRCD_BUFSIZE];
115 >  } name,
116 >    user,
117 >    host,
118 >    addr,
119 >    bind,
120 >    file,
121 >    ciph,
122 >    rpass,
123 >    spass,
124 >    class;
125 >
126 >  struct {
127 >    unsigned int value;
128 >  } flags,
129 >    modes,
130 >    size,
131 >    type,
132 >    port,
133 >    aftype,
134 >    ping_freq,
135 >    max_perip,
136 >    con_freq,
137 >    min_idle,
138 >    max_idle,
139 >    max_total,
140 >    max_global,
141 >    max_local,
142 >    max_ident,
143 >    max_sendq,
144 >    max_recvq,
145 >    cidr_bitlen_ipv4,
146 >    cidr_bitlen_ipv6,
147 >    number_per_cidr;
148 > } block_state;
149  
150   static void
151 < free_collect_item(struct CollectItem *item)
151 > reset_block_state(void)
152   {
153 <  MyFree(item->name);
146 <  MyFree(item->user);
147 <  MyFree(item->host);
148 <  MyFree(item->passwd);
149 < #ifdef HAVE_LIBCRYPTO
150 <  MyFree(item->rsa_public_key_file);
151 < #endif
152 <  MyFree(item);
153 < }
153 >  dlink_node *ptr = NULL, *ptr_next = NULL;
154  
155 < static void
156 < unhook_hub_leaf_confs(void)
157 < {
158 <  dlink_node *ptr;
159 <  dlink_node *next_ptr;
160 <  struct CollectItem *yy_hconf;
161 <  struct CollectItem *yy_lconf;
155 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
156 >  {
157 >    MyFree(ptr->data);
158 >    dlinkDelete(ptr, &block_state.mask.list);
159 >    free_dlink_node(ptr);
160 >  }
161  
162 <  DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
162 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
163    {
164 <    yy_hconf = ptr->data;
165 <    dlinkDelete(&yy_hconf->node, &hub_conf_list);
166 <    free_collect_item(yy_hconf);
164 >    MyFree(ptr->data);
165 >    dlinkDelete(ptr, &block_state.leaf.list);
166 >    free_dlink_node(ptr);
167    }
168  
169 <  DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
169 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
170    {
171 <    yy_lconf = ptr->data;
172 <    dlinkDelete(&yy_lconf->node, &leaf_conf_list);
173 <    free_collect_item(yy_lconf);
171 >    MyFree(ptr->data);
172 >    dlinkDelete(ptr, &block_state.hub.list);
173 >    free_dlink_node(ptr);
174    }
176 }
175  
176 +  memset(&block_state, 0, sizeof(block_state));
177 + }
178  
179  
180 < /* Line 268 of yacc.c  */
180 > /* Line 371 of yacc.c  */
181   #line 182 "conf_parser.c"
182  
183 < /* Enabling traces.  */
184 < #ifndef YYDEBUG
185 < # define YYDEBUG 0
186 < #endif
183 > # ifndef YY_NULL
184 > #  if defined __cplusplus && 201103L <= __cplusplus
185 > #   define YY_NULL nullptr
186 > #  else
187 > #   define YY_NULL 0
188 > #  endif
189 > # endif
190  
191   /* Enabling verbose error messages.  */
192   #ifdef YYERROR_VERBOSE
# Line 193 | Line 196 | unhook_hub_leaf_confs(void)
196   # define YYERROR_VERBOSE 0
197   #endif
198  
199 < /* Enabling the token table.  */
200 < #ifndef YYTOKEN_TABLE
201 < # define YYTOKEN_TABLE 0
199 > /* In a future release of Bison, this section will be replaced
200 >   by #include "y.tab.h".  */
201 > #ifndef YY_YY_CONF_PARSER_H_INCLUDED
202 > # define YY_YY_CONF_PARSER_H_INCLUDED
203 > /* Enabling traces.  */
204 > #ifndef YYDEBUG
205 > # define YYDEBUG 0
206 > #endif
207 > #if YYDEBUG
208 > extern int yydebug;
209   #endif
200
210  
211   /* Tokens.  */
212   #ifndef YYTOKENTYPE
# Line 206 | Line 215 | unhook_hub_leaf_confs(void)
215        know about them.  */
216     enum yytokentype {
217       ACCEPT_PASSWORD = 258,
218 <     ACTION = 259,
219 <     ADMIN = 260,
220 <     AFTYPE = 261,
221 <     T_ALLOW = 262,
222 <     ANTI_NICK_FLOOD = 263,
223 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 264,
224 <     AUTOCONN = 265,
225 <     T_BLOCK = 266,
226 <     BURST_AWAY = 267,
227 <     BURST_TOPICWHO = 268,
228 <     BYTES = 269,
229 <     KBYTES = 270,
230 <     MBYTES = 271,
231 <     GBYTES = 272,
232 <     TBYTES = 273,
233 <     CALLER_ID_WAIT = 274,
234 <     CAN_FLOOD = 275,
235 <     CHANNEL = 276,
236 <     CIDR_BITLEN_IPV4 = 277,
237 <     CIDR_BITLEN_IPV6 = 278,
238 <     CLASS = 279,
239 <     CONNECT = 280,
240 <     CONNECTFREQ = 281,
241 <     DEFAULT_FLOODCOUNT = 282,
242 <     DEFAULT_SPLIT_SERVER_COUNT = 283,
243 <     DEFAULT_SPLIT_USER_COUNT = 284,
244 <     DENY = 285,
245 <     DESCRIPTION = 286,
246 <     DIE = 287,
247 <     DISABLE_AUTH = 288,
248 <     DISABLE_FAKE_CHANNELS = 289,
249 <     DISABLE_HIDDEN = 290,
250 <     DISABLE_LOCAL_CHANNELS = 291,
251 <     DISABLE_REMOTE_COMMANDS = 292,
252 <     DOTS_IN_IDENT = 293,
253 <     DURATION = 294,
254 <     EGDPOOL_PATH = 295,
255 <     EMAIL = 296,
256 <     ENABLE = 297,
257 <     ENCRYPTED = 298,
258 <     EXCEED_LIMIT = 299,
259 <     EXEMPT = 300,
260 <     FAILED_OPER_NOTICE = 301,
261 <     IRCD_FLAGS = 302,
262 <     FLATTEN_LINKS = 303,
263 <     GECOS = 304,
264 <     GENERAL = 305,
265 <     GLINE = 306,
266 <     GLINES = 307,
267 <     GLINE_EXEMPT = 308,
268 <     GLINE_TIME = 309,
269 <     GLINE_MIN_CIDR = 310,
270 <     GLINE_MIN_CIDR6 = 311,
271 <     GLOBAL_KILL = 312,
272 <     IRCD_AUTH = 313,
273 <     NEED_IDENT = 314,
274 <     HAVENT_READ_CONF = 315,
275 <     HIDDEN = 316,
276 <     HIDDEN_NAME = 317,
277 <     HIDE_SERVER_IPS = 318,
278 <     HIDE_SERVERS = 319,
279 <     HIDE_SPOOF_IPS = 320,
280 <     HOST = 321,
281 <     HUB = 322,
282 <     HUB_MASK = 323,
283 <     IGNORE_BOGUS_TS = 324,
284 <     INVISIBLE_ON_CONNECT = 325,
285 <     IP = 326,
286 <     KILL = 327,
287 <     KILL_CHASE_TIME_LIMIT = 328,
288 <     KLINE = 329,
289 <     KLINE_EXEMPT = 330,
290 <     KLINE_REASON = 331,
291 <     KLINE_WITH_REASON = 332,
292 <     KNOCK_DELAY = 333,
293 <     KNOCK_DELAY_CHANNEL = 334,
294 <     LEAF_MASK = 335,
295 <     LINKS_DELAY = 336,
296 <     LISTEN = 337,
297 <     T_LOG = 338,
298 <     MAX_ACCEPT = 339,
299 <     MAX_BANS = 340,
300 <     MAX_CHANS_PER_USER = 341,
301 <     MAX_GLOBAL = 342,
302 <     MAX_IDENT = 343,
303 <     MAX_LOCAL = 344,
304 <     MAX_NICK_CHANGES = 345,
305 <     MAX_NICK_TIME = 346,
306 <     MAX_NUMBER = 347,
307 <     MAX_TARGETS = 348,
308 <     MAX_WATCH = 349,
309 <     MESSAGE_LOCALE = 350,
310 <     MIN_NONWILDCARD = 351,
311 <     MIN_NONWILDCARD_SIMPLE = 352,
312 <     MODULE = 353,
313 <     MODULES = 354,
314 <     NAME = 355,
315 <     NEED_PASSWORD = 356,
316 <     NETWORK_DESC = 357,
317 <     NETWORK_NAME = 358,
318 <     NICK = 359,
319 <     NICK_CHANGES = 360,
320 <     NO_CREATE_ON_SPLIT = 361,
321 <     NO_JOIN_ON_SPLIT = 362,
322 <     NO_OPER_FLOOD = 363,
323 <     NO_TILDE = 364,
324 <     NUMBER = 365,
325 <     NUMBER_PER_IDENT = 366,
326 <     NUMBER_PER_CIDR = 367,
327 <     NUMBER_PER_IP = 368,
328 <     NUMBER_PER_IP_GLOBAL = 369,
329 <     OPERATOR = 370,
330 <     OPERS_BYPASS_CALLERID = 371,
331 <     OPER_ONLY_UMODES = 372,
332 <     OPER_PASS_RESV = 373,
333 <     OPER_SPY_T = 374,
334 <     OPER_UMODES = 375,
335 <     JOIN_FLOOD_COUNT = 376,
336 <     JOIN_FLOOD_TIME = 377,
337 <     PACE_WAIT = 378,
338 <     PACE_WAIT_SIMPLE = 379,
339 <     PASSWORD = 380,
340 <     PATH = 381,
341 <     PING_COOKIE = 382,
342 <     PING_TIME = 383,
343 <     PING_WARNING = 384,
344 <     PORT = 385,
345 <     QSTRING = 386,
346 <     QUIET_ON_BAN = 387,
347 <     REASON = 388,
348 <     REDIRPORT = 389,
349 <     REDIRSERV = 390,
350 <     REGEX_T = 391,
351 <     REHASH = 392,
352 <     TREJECT_HOLD_TIME = 393,
353 <     REMOTE = 394,
354 <     REMOTEBAN = 395,
355 <     RESTRICT_CHANNELS = 396,
356 <     RESTRICTED = 397,
357 <     RSA_PRIVATE_KEY_FILE = 398,
358 <     RSA_PUBLIC_KEY_FILE = 399,
359 <     SSL_CERTIFICATE_FILE = 400,
360 <     SSL_DH_PARAM_FILE = 401,
361 <     T_SSL_CLIENT_METHOD = 402,
362 <     T_SSL_SERVER_METHOD = 403,
363 <     T_SSLV3 = 404,
364 <     T_TLSV1 = 405,
365 <     RESV = 406,
366 <     RESV_EXEMPT = 407,
367 <     SECONDS = 408,
368 <     MINUTES = 409,
369 <     HOURS = 410,
370 <     DAYS = 411,
371 <     WEEKS = 412,
372 <     SENDQ = 413,
373 <     SEND_PASSWORD = 414,
374 <     SERVERHIDE = 415,
375 <     SERVERINFO = 416,
376 <     IRCD_SID = 417,
377 <     TKLINE_EXPIRE_NOTICES = 418,
378 <     T_SHARED = 419,
379 <     T_CLUSTER = 420,
380 <     TYPE = 421,
381 <     SHORT_MOTD = 422,
382 <     SILENT = 423,
383 <     SPOOF = 424,
384 <     SPOOF_NOTICE = 425,
385 <     STATS_E_DISABLED = 426,
386 <     STATS_I_OPER_ONLY = 427,
387 <     STATS_K_OPER_ONLY = 428,
388 <     STATS_O_OPER_ONLY = 429,
389 <     STATS_P_OPER_ONLY = 430,
390 <     TBOOL = 431,
391 <     TMASKED = 432,
392 <     T_REJECT = 433,
393 <     TS_MAX_DELTA = 434,
394 <     TS_WARN_DELTA = 435,
395 <     TWODOTS = 436,
396 <     T_ALL = 437,
397 <     T_BOTS = 438,
398 <     T_SOFTCALLERID = 439,
399 <     T_CALLERID = 440,
400 <     T_CCONN = 441,
401 <     T_CCONN_FULL = 442,
402 <     T_SSL_CIPHER_LIST = 443,
403 <     T_CLIENT_FLOOD = 444,
404 <     T_DEAF = 445,
405 <     T_DEBUG = 446,
406 <     T_DLINE = 447,
407 <     T_DRONE = 448,
408 <     T_EXTERNAL = 449,
409 <     T_FULL = 450,
410 <     T_INVISIBLE = 451,
411 <     T_IPV4 = 452,
412 <     T_IPV6 = 453,
413 <     T_LOCOPS = 454,
414 <     T_MAX_CLIENTS = 455,
415 <     T_NCHANGE = 456,
416 <     T_OPERWALL = 457,
417 <     T_REJ = 458,
418 <     T_SERVER = 459,
419 <     T_SERVNOTICE = 460,
420 <     T_SKILL = 461,
421 <     T_SPY = 462,
422 <     T_SSL = 463,
423 <     T_UMODES = 464,
424 <     T_UNAUTH = 465,
425 <     T_UNDLINE = 466,
426 <     T_UNLIMITED = 467,
427 <     T_UNRESV = 468,
428 <     T_UNXLINE = 469,
429 <     T_GLOBOPS = 470,
430 <     T_WALLOP = 471,
431 <     T_RESTART = 472,
432 <     T_SERVICE = 473,
433 <     T_SERVICES_NAME = 474,
434 <     THROTTLE_TIME = 475,
435 <     TOPICBURST = 476,
436 <     TRUE_NO_OPER_FLOOD = 477,
428 <     TKLINE = 478,
429 <     TXLINE = 479,
430 <     TRESV = 480,
431 <     UNKLINE = 481,
432 <     USER = 482,
433 <     USE_EGD = 483,
434 <     USE_EXCEPT = 484,
435 <     USE_INVEX = 485,
436 <     USE_KNOCK = 486,
437 <     USE_LOGGING = 487,
438 <     USE_WHOIS_ACTUALLY = 488,
439 <     VHOST = 489,
440 <     VHOST6 = 490,
441 <     XLINE = 491,
442 <     WARN = 492,
443 <     WARN_NO_NLINE = 493,
444 <     T_SIZE = 494,
445 <     T_FILE = 495
218 >     ADMIN = 259,
219 >     AFTYPE = 260,
220 >     ANTI_NICK_FLOOD = 261,
221 >     ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
222 >     AUTOCONN = 263,
223 >     BYTES = 264,
224 >     KBYTES = 265,
225 >     MBYTES = 266,
226 >     CALLER_ID_WAIT = 267,
227 >     CAN_FLOOD = 268,
228 >     CHANNEL = 269,
229 >     CIDR_BITLEN_IPV4 = 270,
230 >     CIDR_BITLEN_IPV6 = 271,
231 >     CLASS = 272,
232 >     CONNECT = 273,
233 >     CONNECTFREQ = 274,
234 >     DEFAULT_FLOODCOUNT = 275,
235 >     DEFAULT_SPLIT_SERVER_COUNT = 276,
236 >     DEFAULT_SPLIT_USER_COUNT = 277,
237 >     DENY = 278,
238 >     DESCRIPTION = 279,
239 >     DIE = 280,
240 >     DISABLE_AUTH = 281,
241 >     DISABLE_FAKE_CHANNELS = 282,
242 >     DISABLE_REMOTE_COMMANDS = 283,
243 >     DOTS_IN_IDENT = 284,
244 >     EGDPOOL_PATH = 285,
245 >     EMAIL = 286,
246 >     ENCRYPTED = 287,
247 >     EXCEED_LIMIT = 288,
248 >     EXEMPT = 289,
249 >     FAILED_OPER_NOTICE = 290,
250 >     FLATTEN_LINKS = 291,
251 >     GECOS = 292,
252 >     GENERAL = 293,
253 >     GLINE = 294,
254 >     GLINE_DURATION = 295,
255 >     GLINE_ENABLE = 296,
256 >     GLINE_EXEMPT = 297,
257 >     GLINE_MIN_CIDR = 298,
258 >     GLINE_MIN_CIDR6 = 299,
259 >     GLINE_REQUEST_DURATION = 300,
260 >     GLOBAL_KILL = 301,
261 >     HAVENT_READ_CONF = 302,
262 >     HIDDEN = 303,
263 >     HIDDEN_NAME = 304,
264 >     HIDE_IDLE_FROM_OPERS = 305,
265 >     HIDE_SERVER_IPS = 306,
266 >     HIDE_SERVERS = 307,
267 >     HIDE_SERVICES = 308,
268 >     HIDE_SPOOF_IPS = 309,
269 >     HOST = 310,
270 >     HUB = 311,
271 >     HUB_MASK = 312,
272 >     IGNORE_BOGUS_TS = 313,
273 >     INVISIBLE_ON_CONNECT = 314,
274 >     IP = 315,
275 >     IRCD_AUTH = 316,
276 >     IRCD_FLAGS = 317,
277 >     IRCD_SID = 318,
278 >     JOIN_FLOOD_COUNT = 319,
279 >     JOIN_FLOOD_TIME = 320,
280 >     KILL = 321,
281 >     KILL_CHASE_TIME_LIMIT = 322,
282 >     KLINE = 323,
283 >     KLINE_EXEMPT = 324,
284 >     KNOCK_DELAY = 325,
285 >     KNOCK_DELAY_CHANNEL = 326,
286 >     LEAF_MASK = 327,
287 >     LINKS_DELAY = 328,
288 >     LISTEN = 329,
289 >     MASK = 330,
290 >     MAX_ACCEPT = 331,
291 >     MAX_BANS = 332,
292 >     MAX_CHANS_PER_OPER = 333,
293 >     MAX_CHANS_PER_USER = 334,
294 >     MAX_GLOBAL = 335,
295 >     MAX_IDENT = 336,
296 >     MAX_IDLE = 337,
297 >     MAX_LOCAL = 338,
298 >     MAX_NICK_CHANGES = 339,
299 >     MAX_NICK_LENGTH = 340,
300 >     MAX_NICK_TIME = 341,
301 >     MAX_NUMBER = 342,
302 >     MAX_TARGETS = 343,
303 >     MAX_TOPIC_LENGTH = 344,
304 >     MAX_WATCH = 345,
305 >     MIN_IDLE = 346,
306 >     MIN_NONWILDCARD = 347,
307 >     MIN_NONWILDCARD_SIMPLE = 348,
308 >     MODULE = 349,
309 >     MODULES = 350,
310 >     MOTD = 351,
311 >     NAME = 352,
312 >     NEED_IDENT = 353,
313 >     NEED_PASSWORD = 354,
314 >     NETWORK_DESC = 355,
315 >     NETWORK_NAME = 356,
316 >     NICK = 357,
317 >     NO_CREATE_ON_SPLIT = 358,
318 >     NO_JOIN_ON_SPLIT = 359,
319 >     NO_OPER_FLOOD = 360,
320 >     NO_TILDE = 361,
321 >     NUMBER = 362,
322 >     NUMBER_PER_CIDR = 363,
323 >     NUMBER_PER_IP = 364,
324 >     OPER_ONLY_UMODES = 365,
325 >     OPER_PASS_RESV = 366,
326 >     OPER_UMODES = 367,
327 >     OPERATOR = 368,
328 >     OPERS_BYPASS_CALLERID = 369,
329 >     PACE_WAIT = 370,
330 >     PACE_WAIT_SIMPLE = 371,
331 >     PASSWORD = 372,
332 >     PATH = 373,
333 >     PING_COOKIE = 374,
334 >     PING_TIME = 375,
335 >     PORT = 376,
336 >     QSTRING = 377,
337 >     RANDOM_IDLE = 378,
338 >     REASON = 379,
339 >     REDIRPORT = 380,
340 >     REDIRSERV = 381,
341 >     REHASH = 382,
342 >     REMOTE = 383,
343 >     REMOTEBAN = 384,
344 >     RESV = 385,
345 >     RESV_EXEMPT = 386,
346 >     RSA_PRIVATE_KEY_FILE = 387,
347 >     RSA_PUBLIC_KEY_FILE = 388,
348 >     SECONDS = 389,
349 >     MINUTES = 390,
350 >     HOURS = 391,
351 >     DAYS = 392,
352 >     WEEKS = 393,
353 >     MONTHS = 394,
354 >     YEARS = 395,
355 >     SEND_PASSWORD = 396,
356 >     SENDQ = 397,
357 >     SERVERHIDE = 398,
358 >     SERVERINFO = 399,
359 >     SHORT_MOTD = 400,
360 >     SPOOF = 401,
361 >     SPOOF_NOTICE = 402,
362 >     SQUIT = 403,
363 >     SSL_CERTIFICATE_FILE = 404,
364 >     SSL_DH_PARAM_FILE = 405,
365 >     STATS_E_DISABLED = 406,
366 >     STATS_I_OPER_ONLY = 407,
367 >     STATS_K_OPER_ONLY = 408,
368 >     STATS_O_OPER_ONLY = 409,
369 >     STATS_P_OPER_ONLY = 410,
370 >     T_ALL = 411,
371 >     T_BOTS = 412,
372 >     T_CALLERID = 413,
373 >     T_CCONN = 414,
374 >     T_CLUSTER = 415,
375 >     T_DEAF = 416,
376 >     T_DEBUG = 417,
377 >     T_DLINE = 418,
378 >     T_EXTERNAL = 419,
379 >     T_FARCONNECT = 420,
380 >     T_FILE = 421,
381 >     T_FULL = 422,
382 >     T_GLOBOPS = 423,
383 >     T_INVISIBLE = 424,
384 >     T_IPV4 = 425,
385 >     T_IPV6 = 426,
386 >     T_LOCOPS = 427,
387 >     T_LOG = 428,
388 >     T_MAX_CLIENTS = 429,
389 >     T_NCHANGE = 430,
390 >     T_NONONREG = 431,
391 >     T_OPERWALL = 432,
392 >     T_RECVQ = 433,
393 >     T_REJ = 434,
394 >     T_RESTART = 435,
395 >     T_SERVER = 436,
396 >     T_SERVICE = 437,
397 >     T_SERVICES_NAME = 438,
398 >     T_SERVNOTICE = 439,
399 >     T_SET = 440,
400 >     T_SHARED = 441,
401 >     T_SIZE = 442,
402 >     T_SKILL = 443,
403 >     T_SOFTCALLERID = 444,
404 >     T_SPY = 445,
405 >     T_SSL = 446,
406 >     T_SSL_CIPHER_LIST = 447,
407 >     T_SSL_CLIENT_METHOD = 448,
408 >     T_SSL_SERVER_METHOD = 449,
409 >     T_SSLV3 = 450,
410 >     T_TLSV1 = 451,
411 >     T_UMODES = 452,
412 >     T_UNAUTH = 453,
413 >     T_UNDLINE = 454,
414 >     T_UNLIMITED = 455,
415 >     T_UNRESV = 456,
416 >     T_UNXLINE = 457,
417 >     T_WALLOP = 458,
418 >     T_WALLOPS = 459,
419 >     T_WEBIRC = 460,
420 >     TBOOL = 461,
421 >     THROTTLE_TIME = 462,
422 >     TKLINE_EXPIRE_NOTICES = 463,
423 >     TMASKED = 464,
424 >     TRUE_NO_OPER_FLOOD = 465,
425 >     TS_MAX_DELTA = 466,
426 >     TS_WARN_DELTA = 467,
427 >     TWODOTS = 468,
428 >     TYPE = 469,
429 >     UNKLINE = 470,
430 >     USE_EGD = 471,
431 >     USE_LOGGING = 472,
432 >     USER = 473,
433 >     VHOST = 474,
434 >     VHOST6 = 475,
435 >     WARN_NO_NLINE = 476,
436 >     XLINE = 477
437     };
438   #endif
439   /* Tokens.  */
440   #define ACCEPT_PASSWORD 258
441 < #define ACTION 259
442 < #define ADMIN 260
443 < #define AFTYPE 261
444 < #define T_ALLOW 262
445 < #define ANTI_NICK_FLOOD 263
446 < #define ANTI_SPAM_EXIT_MESSAGE_TIME 264
447 < #define AUTOCONN 265
448 < #define T_BLOCK 266
449 < #define BURST_AWAY 267
450 < #define BURST_TOPICWHO 268
451 < #define BYTES 269
452 < #define KBYTES 270
453 < #define MBYTES 271
454 < #define GBYTES 272
455 < #define TBYTES 273
456 < #define CALLER_ID_WAIT 274
457 < #define CAN_FLOOD 275
458 < #define CHANNEL 276
459 < #define CIDR_BITLEN_IPV4 277
460 < #define CIDR_BITLEN_IPV6 278
461 < #define CLASS 279
462 < #define CONNECT 280
463 < #define CONNECTFREQ 281
464 < #define DEFAULT_FLOODCOUNT 282
465 < #define DEFAULT_SPLIT_SERVER_COUNT 283
466 < #define DEFAULT_SPLIT_USER_COUNT 284
467 < #define DENY 285
468 < #define DESCRIPTION 286
469 < #define DIE 287
470 < #define DISABLE_AUTH 288
471 < #define DISABLE_FAKE_CHANNELS 289
472 < #define DISABLE_HIDDEN 290
473 < #define DISABLE_LOCAL_CHANNELS 291
474 < #define DISABLE_REMOTE_COMMANDS 292
475 < #define DOTS_IN_IDENT 293
476 < #define DURATION 294
477 < #define EGDPOOL_PATH 295
478 < #define EMAIL 296
479 < #define ENABLE 297
480 < #define ENCRYPTED 298
481 < #define EXCEED_LIMIT 299
482 < #define EXEMPT 300
483 < #define FAILED_OPER_NOTICE 301
484 < #define IRCD_FLAGS 302
485 < #define FLATTEN_LINKS 303
486 < #define GECOS 304
487 < #define GENERAL 305
488 < #define GLINE 306
489 < #define GLINES 307
490 < #define GLINE_EXEMPT 308
491 < #define GLINE_TIME 309
492 < #define GLINE_MIN_CIDR 310
493 < #define GLINE_MIN_CIDR6 311
494 < #define GLOBAL_KILL 312
495 < #define IRCD_AUTH 313
496 < #define NEED_IDENT 314
497 < #define HAVENT_READ_CONF 315
498 < #define HIDDEN 316
499 < #define HIDDEN_NAME 317
500 < #define HIDE_SERVER_IPS 318
501 < #define HIDE_SERVERS 319
502 < #define HIDE_SPOOF_IPS 320
503 < #define HOST 321
504 < #define HUB 322
505 < #define HUB_MASK 323
506 < #define IGNORE_BOGUS_TS 324
507 < #define INVISIBLE_ON_CONNECT 325
508 < #define IP 326
509 < #define KILL 327
510 < #define KILL_CHASE_TIME_LIMIT 328
511 < #define KLINE 329
512 < #define KLINE_EXEMPT 330
513 < #define KLINE_REASON 331
514 < #define KLINE_WITH_REASON 332
515 < #define KNOCK_DELAY 333
516 < #define KNOCK_DELAY_CHANNEL 334
517 < #define LEAF_MASK 335
518 < #define LINKS_DELAY 336
519 < #define LISTEN 337
520 < #define T_LOG 338
521 < #define MAX_ACCEPT 339
522 < #define MAX_BANS 340
523 < #define MAX_CHANS_PER_USER 341
524 < #define MAX_GLOBAL 342
525 < #define MAX_IDENT 343
526 < #define MAX_LOCAL 344
527 < #define MAX_NICK_CHANGES 345
528 < #define MAX_NICK_TIME 346
529 < #define MAX_NUMBER 347
530 < #define MAX_TARGETS 348
531 < #define MAX_WATCH 349
532 < #define MESSAGE_LOCALE 350
533 < #define MIN_NONWILDCARD 351
534 < #define MIN_NONWILDCARD_SIMPLE 352
535 < #define MODULE 353
536 < #define MODULES 354
537 < #define NAME 355
538 < #define NEED_PASSWORD 356
539 < #define NETWORK_DESC 357
540 < #define NETWORK_NAME 358
541 < #define NICK 359
542 < #define NICK_CHANGES 360
543 < #define NO_CREATE_ON_SPLIT 361
544 < #define NO_JOIN_ON_SPLIT 362
545 < #define NO_OPER_FLOOD 363
546 < #define NO_TILDE 364
547 < #define NUMBER 365
548 < #define NUMBER_PER_IDENT 366
549 < #define NUMBER_PER_CIDR 367
550 < #define NUMBER_PER_IP 368
551 < #define NUMBER_PER_IP_GLOBAL 369
552 < #define OPERATOR 370
553 < #define OPERS_BYPASS_CALLERID 371
554 < #define OPER_ONLY_UMODES 372
555 < #define OPER_PASS_RESV 373
556 < #define OPER_SPY_T 374
557 < #define OPER_UMODES 375
558 < #define JOIN_FLOOD_COUNT 376
559 < #define JOIN_FLOOD_TIME 377
560 < #define PACE_WAIT 378
561 < #define PACE_WAIT_SIMPLE 379
562 < #define PASSWORD 380
563 < #define PATH 381
564 < #define PING_COOKIE 382
565 < #define PING_TIME 383
566 < #define PING_WARNING 384
567 < #define PORT 385
568 < #define QSTRING 386
569 < #define QUIET_ON_BAN 387
570 < #define REASON 388
571 < #define REDIRPORT 389
572 < #define REDIRSERV 390
573 < #define REGEX_T 391
574 < #define REHASH 392
575 < #define TREJECT_HOLD_TIME 393
576 < #define REMOTE 394
577 < #define REMOTEBAN 395
578 < #define RESTRICT_CHANNELS 396
579 < #define RESTRICTED 397
580 < #define RSA_PRIVATE_KEY_FILE 398
581 < #define RSA_PUBLIC_KEY_FILE 399
582 < #define SSL_CERTIFICATE_FILE 400
583 < #define SSL_DH_PARAM_FILE 401
584 < #define T_SSL_CLIENT_METHOD 402
585 < #define T_SSL_SERVER_METHOD 403
586 < #define T_SSLV3 404
587 < #define T_TLSV1 405
588 < #define RESV 406
589 < #define RESV_EXEMPT 407
590 < #define SECONDS 408
591 < #define MINUTES 409
592 < #define HOURS 410
593 < #define DAYS 411
594 < #define WEEKS 412
595 < #define SENDQ 413
596 < #define SEND_PASSWORD 414
597 < #define SERVERHIDE 415
598 < #define SERVERINFO 416
599 < #define IRCD_SID 417
600 < #define TKLINE_EXPIRE_NOTICES 418
601 < #define T_SHARED 419
602 < #define T_CLUSTER 420
603 < #define TYPE 421
604 < #define SHORT_MOTD 422
605 < #define SILENT 423
606 < #define SPOOF 424
607 < #define SPOOF_NOTICE 425
608 < #define STATS_E_DISABLED 426
609 < #define STATS_I_OPER_ONLY 427
610 < #define STATS_K_OPER_ONLY 428
611 < #define STATS_O_OPER_ONLY 429
612 < #define STATS_P_OPER_ONLY 430
613 < #define TBOOL 431
614 < #define TMASKED 432
615 < #define T_REJECT 433
616 < #define TS_MAX_DELTA 434
617 < #define TS_WARN_DELTA 435
618 < #define TWODOTS 436
619 < #define T_ALL 437
620 < #define T_BOTS 438
621 < #define T_SOFTCALLERID 439
622 < #define T_CALLERID 440
623 < #define T_CCONN 441
624 < #define T_CCONN_FULL 442
625 < #define T_SSL_CIPHER_LIST 443
626 < #define T_CLIENT_FLOOD 444
627 < #define T_DEAF 445
628 < #define T_DEBUG 446
629 < #define T_DLINE 447
630 < #define T_DRONE 448
631 < #define T_EXTERNAL 449
632 < #define T_FULL 450
633 < #define T_INVISIBLE 451
634 < #define T_IPV4 452
635 < #define T_IPV6 453
636 < #define T_LOCOPS 454
637 < #define T_MAX_CLIENTS 455
638 < #define T_NCHANGE 456
639 < #define T_OPERWALL 457
640 < #define T_REJ 458
641 < #define T_SERVER 459
642 < #define T_SERVNOTICE 460
643 < #define T_SKILL 461
644 < #define T_SPY 462
645 < #define T_SSL 463
646 < #define T_UMODES 464
647 < #define T_UNAUTH 465
648 < #define T_UNDLINE 466
649 < #define T_UNLIMITED 467
650 < #define T_UNRESV 468
651 < #define T_UNXLINE 469
652 < #define T_GLOBOPS 470
653 < #define T_WALLOP 471
654 < #define T_RESTART 472
655 < #define T_SERVICE 473
656 < #define T_SERVICES_NAME 474
657 < #define THROTTLE_TIME 475
658 < #define TOPICBURST 476
659 < #define TRUE_NO_OPER_FLOOD 477
669 < #define TKLINE 478
670 < #define TXLINE 479
671 < #define TRESV 480
672 < #define UNKLINE 481
673 < #define USER 482
674 < #define USE_EGD 483
675 < #define USE_EXCEPT 484
676 < #define USE_INVEX 485
677 < #define USE_KNOCK 486
678 < #define USE_LOGGING 487
679 < #define USE_WHOIS_ACTUALLY 488
680 < #define VHOST 489
681 < #define VHOST6 490
682 < #define XLINE 491
683 < #define WARN 492
684 < #define WARN_NO_NLINE 493
685 < #define T_SIZE 494
686 < #define T_FILE 495
687 <
441 > #define ADMIN 259
442 > #define AFTYPE 260
443 > #define ANTI_NICK_FLOOD 261
444 > #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
445 > #define AUTOCONN 263
446 > #define BYTES 264
447 > #define KBYTES 265
448 > #define MBYTES 266
449 > #define CALLER_ID_WAIT 267
450 > #define CAN_FLOOD 268
451 > #define CHANNEL 269
452 > #define CIDR_BITLEN_IPV4 270
453 > #define CIDR_BITLEN_IPV6 271
454 > #define CLASS 272
455 > #define CONNECT 273
456 > #define CONNECTFREQ 274
457 > #define DEFAULT_FLOODCOUNT 275
458 > #define DEFAULT_SPLIT_SERVER_COUNT 276
459 > #define DEFAULT_SPLIT_USER_COUNT 277
460 > #define DENY 278
461 > #define DESCRIPTION 279
462 > #define DIE 280
463 > #define DISABLE_AUTH 281
464 > #define DISABLE_FAKE_CHANNELS 282
465 > #define DISABLE_REMOTE_COMMANDS 283
466 > #define DOTS_IN_IDENT 284
467 > #define EGDPOOL_PATH 285
468 > #define EMAIL 286
469 > #define ENCRYPTED 287
470 > #define EXCEED_LIMIT 288
471 > #define EXEMPT 289
472 > #define FAILED_OPER_NOTICE 290
473 > #define FLATTEN_LINKS 291
474 > #define GECOS 292
475 > #define GENERAL 293
476 > #define GLINE 294
477 > #define GLINE_DURATION 295
478 > #define GLINE_ENABLE 296
479 > #define GLINE_EXEMPT 297
480 > #define GLINE_MIN_CIDR 298
481 > #define GLINE_MIN_CIDR6 299
482 > #define GLINE_REQUEST_DURATION 300
483 > #define GLOBAL_KILL 301
484 > #define HAVENT_READ_CONF 302
485 > #define HIDDEN 303
486 > #define HIDDEN_NAME 304
487 > #define HIDE_IDLE_FROM_OPERS 305
488 > #define HIDE_SERVER_IPS 306
489 > #define HIDE_SERVERS 307
490 > #define HIDE_SERVICES 308
491 > #define HIDE_SPOOF_IPS 309
492 > #define HOST 310
493 > #define HUB 311
494 > #define HUB_MASK 312
495 > #define IGNORE_BOGUS_TS 313
496 > #define INVISIBLE_ON_CONNECT 314
497 > #define IP 315
498 > #define IRCD_AUTH 316
499 > #define IRCD_FLAGS 317
500 > #define IRCD_SID 318
501 > #define JOIN_FLOOD_COUNT 319
502 > #define JOIN_FLOOD_TIME 320
503 > #define KILL 321
504 > #define KILL_CHASE_TIME_LIMIT 322
505 > #define KLINE 323
506 > #define KLINE_EXEMPT 324
507 > #define KNOCK_DELAY 325
508 > #define KNOCK_DELAY_CHANNEL 326
509 > #define LEAF_MASK 327
510 > #define LINKS_DELAY 328
511 > #define LISTEN 329
512 > #define MASK 330
513 > #define MAX_ACCEPT 331
514 > #define MAX_BANS 332
515 > #define MAX_CHANS_PER_OPER 333
516 > #define MAX_CHANS_PER_USER 334
517 > #define MAX_GLOBAL 335
518 > #define MAX_IDENT 336
519 > #define MAX_IDLE 337
520 > #define MAX_LOCAL 338
521 > #define MAX_NICK_CHANGES 339
522 > #define MAX_NICK_LENGTH 340
523 > #define MAX_NICK_TIME 341
524 > #define MAX_NUMBER 342
525 > #define MAX_TARGETS 343
526 > #define MAX_TOPIC_LENGTH 344
527 > #define MAX_WATCH 345
528 > #define MIN_IDLE 346
529 > #define MIN_NONWILDCARD 347
530 > #define MIN_NONWILDCARD_SIMPLE 348
531 > #define MODULE 349
532 > #define MODULES 350
533 > #define MOTD 351
534 > #define NAME 352
535 > #define NEED_IDENT 353
536 > #define NEED_PASSWORD 354
537 > #define NETWORK_DESC 355
538 > #define NETWORK_NAME 356
539 > #define NICK 357
540 > #define NO_CREATE_ON_SPLIT 358
541 > #define NO_JOIN_ON_SPLIT 359
542 > #define NO_OPER_FLOOD 360
543 > #define NO_TILDE 361
544 > #define NUMBER 362
545 > #define NUMBER_PER_CIDR 363
546 > #define NUMBER_PER_IP 364
547 > #define OPER_ONLY_UMODES 365
548 > #define OPER_PASS_RESV 366
549 > #define OPER_UMODES 367
550 > #define OPERATOR 368
551 > #define OPERS_BYPASS_CALLERID 369
552 > #define PACE_WAIT 370
553 > #define PACE_WAIT_SIMPLE 371
554 > #define PASSWORD 372
555 > #define PATH 373
556 > #define PING_COOKIE 374
557 > #define PING_TIME 375
558 > #define PORT 376
559 > #define QSTRING 377
560 > #define RANDOM_IDLE 378
561 > #define REASON 379
562 > #define REDIRPORT 380
563 > #define REDIRSERV 381
564 > #define REHASH 382
565 > #define REMOTE 383
566 > #define REMOTEBAN 384
567 > #define RESV 385
568 > #define RESV_EXEMPT 386
569 > #define RSA_PRIVATE_KEY_FILE 387
570 > #define RSA_PUBLIC_KEY_FILE 388
571 > #define SECONDS 389
572 > #define MINUTES 390
573 > #define HOURS 391
574 > #define DAYS 392
575 > #define WEEKS 393
576 > #define MONTHS 394
577 > #define YEARS 395
578 > #define SEND_PASSWORD 396
579 > #define SENDQ 397
580 > #define SERVERHIDE 398
581 > #define SERVERINFO 399
582 > #define SHORT_MOTD 400
583 > #define SPOOF 401
584 > #define SPOOF_NOTICE 402
585 > #define SQUIT 403
586 > #define SSL_CERTIFICATE_FILE 404
587 > #define SSL_DH_PARAM_FILE 405
588 > #define STATS_E_DISABLED 406
589 > #define STATS_I_OPER_ONLY 407
590 > #define STATS_K_OPER_ONLY 408
591 > #define STATS_O_OPER_ONLY 409
592 > #define STATS_P_OPER_ONLY 410
593 > #define T_ALL 411
594 > #define T_BOTS 412
595 > #define T_CALLERID 413
596 > #define T_CCONN 414
597 > #define T_CLUSTER 415
598 > #define T_DEAF 416
599 > #define T_DEBUG 417
600 > #define T_DLINE 418
601 > #define T_EXTERNAL 419
602 > #define T_FARCONNECT 420
603 > #define T_FILE 421
604 > #define T_FULL 422
605 > #define T_GLOBOPS 423
606 > #define T_INVISIBLE 424
607 > #define T_IPV4 425
608 > #define T_IPV6 426
609 > #define T_LOCOPS 427
610 > #define T_LOG 428
611 > #define T_MAX_CLIENTS 429
612 > #define T_NCHANGE 430
613 > #define T_NONONREG 431
614 > #define T_OPERWALL 432
615 > #define T_RECVQ 433
616 > #define T_REJ 434
617 > #define T_RESTART 435
618 > #define T_SERVER 436
619 > #define T_SERVICE 437
620 > #define T_SERVICES_NAME 438
621 > #define T_SERVNOTICE 439
622 > #define T_SET 440
623 > #define T_SHARED 441
624 > #define T_SIZE 442
625 > #define T_SKILL 443
626 > #define T_SOFTCALLERID 444
627 > #define T_SPY 445
628 > #define T_SSL 446
629 > #define T_SSL_CIPHER_LIST 447
630 > #define T_SSL_CLIENT_METHOD 448
631 > #define T_SSL_SERVER_METHOD 449
632 > #define T_SSLV3 450
633 > #define T_TLSV1 451
634 > #define T_UMODES 452
635 > #define T_UNAUTH 453
636 > #define T_UNDLINE 454
637 > #define T_UNLIMITED 455
638 > #define T_UNRESV 456
639 > #define T_UNXLINE 457
640 > #define T_WALLOP 458
641 > #define T_WALLOPS 459
642 > #define T_WEBIRC 460
643 > #define TBOOL 461
644 > #define THROTTLE_TIME 462
645 > #define TKLINE_EXPIRE_NOTICES 463
646 > #define TMASKED 464
647 > #define TRUE_NO_OPER_FLOOD 465
648 > #define TS_MAX_DELTA 466
649 > #define TS_WARN_DELTA 467
650 > #define TWODOTS 468
651 > #define TYPE 469
652 > #define UNKLINE 470
653 > #define USE_EGD 471
654 > #define USE_LOGGING 472
655 > #define USER 473
656 > #define VHOST 474
657 > #define VHOST6 475
658 > #define WARN_NO_NLINE 476
659 > #define XLINE 477
660  
661  
662  
663   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
664   typedef union YYSTYPE
665   {
666 <
667 < /* Line 293 of yacc.c  */
696 < #line 135 "conf_parser.y"
666 > /* Line 387 of yacc.c  */
667 > #line 139 "conf_parser.y"
668  
669    int number;
670    char *string;
671  
672  
673 <
674 < /* Line 293 of yacc.c  */
704 < #line 705 "conf_parser.c"
673 > /* Line 387 of yacc.c  */
674 > #line 675 "conf_parser.c"
675   } YYSTYPE;
676   # define YYSTYPE_IS_TRIVIAL 1
677   # define yystype YYSTYPE /* obsolescent; will be withdrawn */
678   # define YYSTYPE_IS_DECLARED 1
679   #endif
680  
681 + extern YYSTYPE yylval;
682  
683 < /* Copy the second part of user declarations.  */
683 > #ifdef YYPARSE_PARAM
684 > #if defined __STDC__ || defined __cplusplus
685 > int yyparse (void *YYPARSE_PARAM);
686 > #else
687 > int yyparse ();
688 > #endif
689 > #else /* ! YYPARSE_PARAM */
690 > #if defined __STDC__ || defined __cplusplus
691 > int yyparse (void);
692 > #else
693 > int yyparse ();
694 > #endif
695 > #endif /* ! YYPARSE_PARAM */
696 >
697 > #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
698  
699 + /* Copy the second part of user declarations.  */
700  
701 < /* Line 343 of yacc.c  */
702 < #line 717 "conf_parser.c"
701 > /* Line 390 of yacc.c  */
702 > #line 703 "conf_parser.c"
703  
704   #ifdef short
705   # undef short
# Line 766 | Line 752 | typedef short int yytype_int16;
752   # if defined YYENABLE_NLS && YYENABLE_NLS
753   #  if ENABLE_NLS
754   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
755 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
755 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
756   #  endif
757   # endif
758   # ifndef YY_
759 < #  define YY_(msgid) msgid
759 > #  define YY_(Msgid) Msgid
760 > # endif
761 > #endif
762 >
763 > #ifndef __attribute__
764 > /* This feature is available in gcc versions 2.5 and later.  */
765 > # if (! defined __GNUC__ || __GNUC__ < 2 \
766 >      || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
767 > #  define __attribute__(Spec) /* empty */
768   # endif
769   #endif
770  
771   /* Suppress unused-variable warnings by "using" E.  */
772   #if ! defined lint || defined __GNUC__
773 < # define YYUSE(e) ((void) (e))
773 > # define YYUSE(E) ((void) (E))
774   #else
775 < # define YYUSE(e) /* empty */
775 > # define YYUSE(E) /* empty */
776   #endif
777  
778 +
779   /* Identity function, used to suppress warnings about constant conditions.  */
780   #ifndef lint
781 < # define YYID(n) (n)
781 > # define YYID(N) (N)
782   #else
783   #if (defined __STDC__ || defined __C99__FUNC__ \
784       || defined __cplusplus || defined _MSC_VER)
# Line 819 | Line 814 | YYID (yyi)
814   #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
815       || defined __cplusplus || defined _MSC_VER)
816   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
817 +      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
818   #     ifndef EXIT_SUCCESS
819   #      define EXIT_SUCCESS 0
820   #     endif
# Line 910 | Line 906 | union yyalloc
906   #endif
907  
908   #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
909 < /* Copy COUNT objects from FROM to TO.  The source and destination do
909 > /* Copy COUNT objects from SRC to DST.  The source and destination do
910     not overlap.  */
911   # ifndef YYCOPY
912   #  if defined __GNUC__ && 1 < __GNUC__
913 < #   define YYCOPY(To, From, Count) \
914 <      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
913 > #   define YYCOPY(Dst, Src, Count) \
914 >      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
915   #  else
916 < #   define YYCOPY(To, From, Count)              \
917 <      do                                        \
918 <        {                                       \
919 <          YYSIZE_T yyi;                         \
920 <          for (yyi = 0; yyi < (Count); yyi++)   \
921 <            (To)[yyi] = (From)[yyi];            \
922 <        }                                       \
916 > #   define YYCOPY(Dst, Src, Count)              \
917 >      do                                        \
918 >        {                                       \
919 >          YYSIZE_T yyi;                         \
920 >          for (yyi = 0; yyi < (Count); yyi++)   \
921 >            (Dst)[yyi] = (Src)[yyi];            \
922 >        }                                       \
923        while (YYID (0))
924   #  endif
925   # endif
# Line 932 | Line 928 | union yyalloc
928   /* YYFINAL -- State number of the termination state.  */
929   #define YYFINAL  2
930   /* YYLAST -- Last index in YYTABLE.  */
931 < #define YYLAST   1267
931 > #define YYLAST   1228
932  
933   /* YYNTOKENS -- Number of terminals.  */
934 < #define YYNTOKENS  246
934 > #define YYNTOKENS  229
935   /* YYNNTS -- Number of nonterminals.  */
936 < #define YYNNTS  305
936 > #define YYNNTS  286
937   /* YYNRULES -- Number of rules.  */
938 < #define YYNRULES  668
938 > #define YYNRULES  644
939   /* YYNRULES -- Number of states.  */
940 < #define YYNSTATES  1311
940 > #define YYNSTATES  1260
941  
942   /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
943   #define YYUNDEFTOK  2
944 < #define YYMAXUTOK   495
944 > #define YYMAXUTOK   477
945  
946   #define YYTRANSLATE(YYX)                                                \
947    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
# Line 957 | Line 953 | static const yytype_uint8 yytranslate[]
953         2,     2,     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,   245,     2,     2,     2,     2,     2,
957 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   241,
958 <       2,   244,     2,     2,     2,     2,     2,     2,     2,     2,
956 >       2,     2,     2,     2,   227,     2,     2,     2,     2,     2,
957 >       2,     2,     2,     2,     2,     2,     2,     2,   228,   223,
958 >       2,   226,     2,     2,     2,     2,     2,     2,     2,     2,
959         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
960         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
961         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
962         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
963         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
964 <       2,     2,     2,   243,     2,   242,     2,     2,     2,     2,
964 >       2,     2,     2,   225,     2,   224,     2,     2,     2,     2,
965         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
966         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
967         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 1000 | Line 996 | static const yytype_uint8 yytranslate[]
996       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
997       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
998       205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
999 <     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1004 <     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1005 <     235,   236,   237,   238,   239,   240
999 >     215,   216,   217,   218,   219,   220,   221,   222
1000   };
1001  
1002   #if YYDEBUG
# Line 1013 | Line 1007 | static const yytype_uint16 yyprhs[] =
1007         0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
1008        19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
1009        39,    41,    43,    45,    47,    49,    52,    55,    56,    58,
1010 <      61,    65,    69,    73,    77,    81,    82,    84,    87,    91,
1011 <      95,    99,   105,   108,   110,   112,   114,   117,   122,   127,
1012 <     133,   136,   138,   140,   142,   144,   146,   148,   150,   152,
1013 <     154,   156,   158,   160,   162,   164,   166,   168,   171,   176,
1014 <     181,   185,   187,   189,   191,   195,   197,   199,   201,   206,
1015 <     211,   216,   221,   226,   231,   236,   241,   246,   251,   256,
1016 <     261,   266,   272,   275,   277,   279,   281,   283,   286,   291,
1017 <     296,   301,   307,   310,   312,   314,   316,   319,   324,   325,
1018 <     332,   335,   337,   339,   341,   343,   346,   351,   356,   361,
1019 <     362,   368,   372,   374,   376,   378,   380,   382,   384,   386,
1020 <     388,   389,   396,   399,   401,   403,   405,   407,   409,   411,
1021 <     413,   415,   417,   420,   425,   430,   435,   440,   445,   450,
1022 <     451,   457,   461,   463,   465,   467,   469,   471,   473,   475,
1023 <     477,   479,   481,   483,   485,   487,   489,   491,   493,   495,
1024 <     497,   499,   501,   503,   504,   510,   514,   516,   518,   520,
1025 <     522,   524,   526,   528,   530,   532,   534,   536,   538,   540,
1026 <     542,   544,   546,   548,   550,   552,   553,   560,   563,   565,
1027 <     567,   569,   571,   573,   575,   577,   579,   581,   583,   585,
1028 <     587,   589,   591,   594,   599,   604,   609,   614,   619,   624,
1029 <     629,   634,   639,   644,   649,   654,   659,   660,   667,   668,
1030 <     674,   678,   680,   682,   684,   686,   689,   691,   693,   695,
1031 <     697,   699,   702,   703,   709,   713,   715,   717,   721,   726,
1032 <     731,   732,   739,   742,   744,   746,   748,   750,   752,   754,
1033 <     756,   758,   760,   763,   768,   773,   778,   783,   784,   790,
1034 <     794,   796,   798,   800,   802,   804,   806,   808,   810,   812,
1035 <     814,   819,   824,   829,   830,   837,   840,   842,   844,   846,
1036 <     848,   851,   856,   861,   866,   872,   875,   877,   879,   881,
1037 <     886,   887,   894,   897,   899,   901,   903,   905,   908,   913,
1038 <     918,   919,   925,   929,   931,   933,   935,   937,   939,   941,
1039 <     943,   945,   947,   949,   951,   952,   959,   962,   964,   966,
1040 <     968,   971,   976,   977,   983,   987,   989,   991,   993,   995,
1041 <     997,   999,  1001,  1003,  1005,  1007,  1009,  1010,  1017,  1020,
1042 <    1022,  1024,  1026,  1028,  1030,  1032,  1034,  1036,  1038,  1040,
1043 <    1042,  1044,  1046,  1048,  1051,  1056,  1061,  1066,  1071,  1076,
1044 <    1081,  1086,  1091,  1092,  1098,  1102,  1104,  1106,  1108,  1110,
1045 <    1112,  1117,  1122,  1127,  1132,  1137,  1138,  1145,  1146,  1152,
1046 <    1156,  1158,  1160,  1163,  1165,  1167,  1169,  1171,  1173,  1178,
1047 <    1183,  1184,  1191,  1194,  1196,  1198,  1200,  1202,  1207,  1212,
1048 <    1218,  1221,  1223,  1225,  1227,  1232,  1233,  1240,  1241,  1247,
1049 <    1251,  1253,  1255,  1258,  1260,  1262,  1264,  1266,  1268,  1273,
1050 <    1278,  1284,  1287,  1289,  1291,  1293,  1295,  1297,  1299,  1301,
1051 <    1303,  1305,  1307,  1309,  1311,  1313,  1315,  1317,  1319,  1321,
1052 <    1323,  1325,  1327,  1329,  1331,  1333,  1335,  1337,  1339,  1341,
1053 <    1343,  1345,  1347,  1349,  1351,  1353,  1355,  1357,  1359,  1361,
1054 <    1363,  1365,  1367,  1369,  1371,  1373,  1375,  1377,  1379,  1381,
1055 <    1383,  1385,  1387,  1389,  1391,  1393,  1398,  1403,  1408,  1413,
1056 <    1418,  1423,  1428,  1433,  1438,  1443,  1448,  1453,  1458,  1463,
1057 <    1468,  1473,  1478,  1483,  1488,  1493,  1498,  1503,  1508,  1513,
1058 <    1518,  1523,  1528,  1533,  1538,  1543,  1548,  1553,  1558,  1563,
1059 <    1568,  1573,  1578,  1583,  1588,  1593,  1598,  1603,  1608,  1613,
1060 <    1618,  1623,  1628,  1629,  1635,  1639,  1641,  1643,  1645,  1647,
1061 <    1649,  1651,  1653,  1655,  1657,  1659,  1661,  1663,  1665,  1667,
1062 <    1669,  1671,  1673,  1675,  1677,  1679,  1681,  1682,  1688,  1692,
1063 <    1694,  1696,  1698,  1700,  1702,  1704,  1706,  1708,  1710,  1712,
1064 <    1714,  1716,  1718,  1720,  1722,  1724,  1726,  1728,  1730,  1732,
1065 <    1734,  1739,  1744,  1749,  1754,  1755,  1762,  1765,  1767,  1769,
1066 <    1771,  1773,  1775,  1777,  1779,  1781,  1786,  1791,  1792,  1798,
1067 <    1802,  1804,  1806,  1808,  1813,  1818,  1819,  1825,  1829,  1831,
1068 <    1833,  1835,  1841,  1844,  1846,  1848,  1850,  1852,  1854,  1856,
1069 <    1858,  1860,  1862,  1864,  1866,  1868,  1870,  1872,  1874,  1876,
1070 <    1878,  1880,  1882,  1884,  1889,  1894,  1899,  1904,  1909,  1914,
1071 <    1919,  1924,  1929,  1934,  1939,  1944,  1949,  1954,  1959,  1964,
1078 <    1969,  1974,  1980,  1983,  1985,  1987,  1989,  1991,  1993,  1995,
1079 <    1997,  1999,  2001,  2006,  2011,  2016,  2021,  2026,  2031
1010 >      61,    65,    69,    73,    77,    81,    85,    89,    90,    92,
1011 >      95,    99,   103,   107,   113,   116,   118,   120,   122,   125,
1012 >     130,   135,   141,   144,   146,   148,   150,   152,   154,   156,
1013 >     158,   160,   162,   164,   166,   168,   170,   172,   174,   176,
1014 >     178,   180,   183,   188,   193,   197,   199,   201,   203,   207,
1015 >     209,   211,   213,   218,   223,   228,   233,   238,   243,   248,
1016 >     253,   258,   263,   268,   273,   278,   283,   288,   294,   297,
1017 >     299,   301,   303,   305,   308,   313,   318,   323,   324,   331,
1018 >     334,   336,   338,   340,   343,   348,   353,   359,   362,   364,
1019 >     366,   368,   371,   376,   377,   384,   387,   389,   391,   393,
1020 >     395,   398,   403,   408,   413,   414,   420,   424,   426,   428,
1021 >     430,   432,   434,   436,   438,   440,   441,   448,   451,   453,
1022 >     455,   457,   459,   461,   463,   465,   467,   469,   472,   477,
1023 >     482,   487,   492,   497,   502,   503,   509,   513,   515,   517,
1024 >     519,   521,   523,   525,   527,   529,   531,   533,   535,   537,
1025 >     539,   541,   543,   545,   547,   549,   551,   553,   555,   557,
1026 >     558,   564,   568,   570,   574,   576,   580,   582,   586,   588,
1027 >     590,   592,   594,   596,   598,   600,   602,   604,   606,   608,
1028 >     610,   612,   614,   616,   618,   620,   622,   623,   630,   633,
1029 >     635,   637,   639,   641,   643,   645,   647,   649,   651,   653,
1030 >     655,   657,   659,   661,   663,   665,   667,   670,   675,   680,
1031 >     685,   690,   695,   700,   705,   710,   715,   720,   725,   730,
1032 >     735,   740,   745,   746,   752,   756,   758,   760,   762,   763,
1033 >     770,   771,   777,   781,   783,   785,   787,   789,   792,   794,
1034 >     796,   798,   800,   802,   805,   806,   812,   816,   818,   820,
1035 >     824,   829,   834,   835,   842,   845,   847,   849,   851,   853,
1036 >     855,   857,   859,   861,   863,   866,   871,   876,   881,   886,
1037 >     887,   893,   897,   899,   901,   903,   905,   907,   909,   911,
1038 >     913,   915,   917,   919,   924,   929,   934,   935,   942,   945,
1039 >     947,   949,   951,   953,   956,   961,   966,   971,   977,   980,
1040 >     982,   984,   986,   991,   992,   999,  1002,  1004,  1006,  1008,
1041 >    1010,  1013,  1018,  1023,  1024,  1030,  1034,  1036,  1038,  1040,
1042 >    1042,  1044,  1046,  1048,  1050,  1052,  1054,  1056,  1057,  1064,
1043 >    1067,  1069,  1071,  1073,  1076,  1081,  1082,  1088,  1092,  1094,
1044 >    1096,  1098,  1100,  1102,  1104,  1106,  1108,  1110,  1112,  1114,
1045 >    1115,  1122,  1125,  1127,  1129,  1131,  1133,  1135,  1137,  1139,
1046 >    1141,  1143,  1145,  1147,  1149,  1151,  1153,  1156,  1161,  1166,
1047 >    1171,  1176,  1181,  1186,  1191,  1196,  1197,  1203,  1207,  1209,
1048 >    1211,  1213,  1218,  1223,  1228,  1233,  1238,  1239,  1246,  1249,
1049 >    1251,  1253,  1255,  1257,  1262,  1267,  1268,  1275,  1278,  1280,
1050 >    1282,  1284,  1286,  1291,  1296,  1302,  1305,  1307,  1309,  1311,
1051 >    1316,  1317,  1324,  1327,  1329,  1331,  1333,  1335,  1340,  1345,
1052 >    1351,  1354,  1356,  1358,  1360,  1362,  1364,  1366,  1368,  1370,
1053 >    1372,  1374,  1376,  1378,  1380,  1382,  1384,  1386,  1388,  1390,
1054 >    1392,  1394,  1396,  1398,  1400,  1402,  1404,  1406,  1408,  1410,
1055 >    1412,  1414,  1416,  1418,  1420,  1422,  1424,  1426,  1428,  1430,
1056 >    1432,  1434,  1436,  1438,  1440,  1442,  1444,  1446,  1448,  1450,
1057 >    1452,  1454,  1459,  1464,  1469,  1474,  1479,  1484,  1489,  1494,
1058 >    1499,  1504,  1509,  1514,  1519,  1524,  1529,  1534,  1539,  1544,
1059 >    1549,  1554,  1559,  1564,  1569,  1574,  1579,  1584,  1589,  1594,
1060 >    1599,  1604,  1609,  1614,  1619,  1624,  1629,  1634,  1639,  1644,
1061 >    1649,  1654,  1659,  1664,  1669,  1674,  1679,  1680,  1686,  1690,
1062 >    1692,  1694,  1696,  1698,  1700,  1702,  1704,  1706,  1708,  1710,
1063 >    1712,  1714,  1716,  1718,  1720,  1722,  1724,  1726,  1728,  1730,
1064 >    1732,  1734,  1735,  1741,  1745,  1747,  1749,  1751,  1753,  1755,
1065 >    1757,  1759,  1761,  1763,  1765,  1767,  1769,  1771,  1773,  1775,
1066 >    1777,  1779,  1781,  1783,  1785,  1787,  1789,  1794,  1799,  1804,
1067 >    1810,  1813,  1815,  1817,  1819,  1821,  1823,  1825,  1827,  1829,
1068 >    1831,  1833,  1835,  1837,  1839,  1841,  1846,  1851,  1856,  1861,
1069 >    1866,  1871,  1876,  1881,  1886,  1891,  1896,  1901,  1907,  1910,
1070 >    1912,  1914,  1916,  1918,  1920,  1922,  1924,  1926,  1928,  1933,
1071 >    1938,  1943,  1948,  1953,  1958
1072   };
1073  
1074   /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1075   static const yytype_int16 yyrhs[] =
1076   {
1077 <     247,     0,    -1,    -1,   247,   248,    -1,   280,    -1,   286,
1078 <      -1,   300,    -1,   520,    -1,   318,    -1,   335,    -1,   349,
1079 <      -1,   258,    -1,   541,    -1,   364,    -1,   371,    -1,   375,
1080 <      -1,   385,    -1,   394,    -1,   414,    -1,   424,    -1,   430,
1081 <      -1,   444,    -1,   504,    -1,   434,    -1,   253,    -1,     1,
1082 <     241,    -1,     1,   242,    -1,    -1,   250,    -1,   110,   249,
1083 <      -1,   110,   153,   249,    -1,   110,   154,   249,    -1,   110,
1084 <     155,   249,    -1,   110,   156,   249,    -1,   110,   157,   249,
1085 <      -1,    -1,   252,    -1,   110,   251,    -1,   110,    14,   251,
1086 <      -1,   110,    15,   251,    -1,   110,    16,   251,    -1,    99,
1087 <     243,   254,   242,   241,    -1,   254,   255,    -1,   255,    -1,
1088 <     256,    -1,   257,    -1,     1,   241,    -1,    98,   244,   131,
1089 <     241,    -1,   126,   244,   131,   241,    -1,   161,   243,   259,
1090 <     242,   241,    -1,   259,   260,    -1,   260,    -1,   271,    -1,
1091 <     276,    -1,   279,    -1,   273,    -1,   274,    -1,   275,    -1,
1092 <     278,    -1,   269,    -1,   268,    -1,   277,    -1,   272,    -1,
1093 <     267,    -1,   261,    -1,   262,    -1,   270,    -1,     1,   241,
1094 <      -1,   147,   244,   263,   241,    -1,   148,   244,   265,   241,
1095 <      -1,   263,   245,   264,    -1,   264,    -1,   149,    -1,   150,
1096 <      -1,   265,   245,   266,    -1,   266,    -1,   149,    -1,   150,
1097 <      -1,   145,   244,   131,   241,    -1,   143,   244,   131,   241,
1098 <      -1,   146,   244,   131,   241,    -1,   188,   244,   131,   241,
1099 <      -1,   100,   244,   131,   241,    -1,   162,   244,   131,   241,
1100 <      -1,    31,   244,   131,   241,    -1,   103,   244,   131,   241,
1101 <      -1,   102,   244,   131,   241,    -1,   234,   244,   131,   241,
1102 <      -1,   235,   244,   131,   241,    -1,   200,   244,   110,   241,
1103 <      -1,    67,   244,   176,   241,    -1,     5,   243,   281,   242,
1104 <     241,    -1,   281,   282,    -1,   282,    -1,   283,    -1,   285,
1105 <      -1,   284,    -1,     1,   241,    -1,   100,   244,   131,   241,
1106 <      -1,    41,   244,   131,   241,    -1,    31,   244,   131,   241,
1107 <      -1,    83,   243,   287,   242,   241,    -1,   287,   288,    -1,
1108 <     288,    -1,   289,    -1,   290,    -1,     1,   241,    -1,   232,
1109 <     244,   176,   241,    -1,    -1,   291,   240,   243,   292,   242,
1110 <     241,    -1,   292,   293,    -1,   293,    -1,   294,    -1,   296,
1111 <      -1,   295,    -1,     1,   241,    -1,   100,   244,   131,   241,
1112 <      -1,   239,   244,   252,   241,    -1,   239,   244,   212,   241,
1113 <      -1,    -1,   166,   297,   244,   298,   241,    -1,   298,   245,
1114 <     299,    -1,   299,    -1,   227,    -1,   115,    -1,    51,    -1,
1115 <     192,    -1,    74,    -1,    72,    -1,   191,    -1,    -1,   115,
1116 <     301,   243,   302,   242,   241,    -1,   302,   303,    -1,   303,
1117 <      -1,   304,    -1,   305,    -1,   306,    -1,   310,    -1,   309,
1118 <      -1,   307,    -1,   308,    -1,   314,    -1,     1,   241,    -1,
1119 <     100,   244,   131,   241,    -1,   227,   244,   131,   241,    -1,
1120 <     125,   244,   131,   241,    -1,    43,   244,   176,   241,    -1,
1121 <     144,   244,   131,   241,    -1,    24,   244,   131,   241,    -1,
1122 <      -1,   209,   311,   244,   312,   241,    -1,   312,   245,   313,
1123 <      -1,   313,    -1,   183,    -1,   186,    -1,   187,    -1,   190,
1124 <      -1,   191,    -1,   195,    -1,    61,    -1,   206,    -1,   201,
1125 <      -1,   203,    -1,   210,    -1,   207,    -1,   194,    -1,   202,
1126 <      -1,   205,    -1,   196,    -1,   216,    -1,   184,    -1,   185,
1127 <      -1,   199,    -1,    -1,    47,   315,   244,   316,   241,    -1,
1128 <     316,   245,   317,    -1,   317,    -1,    57,    -1,   139,    -1,
1129 <      74,    -1,   226,    -1,   192,    -1,   211,    -1,   236,    -1,
1130 <      51,    -1,    32,    -1,   217,    -1,   137,    -1,     5,    -1,
1131 <     105,    -1,   202,    -1,   215,    -1,   119,    -1,   140,    -1,
1132 <      98,    -1,    -1,    24,   319,   243,   320,   242,   241,    -1,
1133 <     320,   321,    -1,   321,    -1,   322,    -1,   332,    -1,   333,
1134 <      -1,   323,    -1,   324,    -1,   334,    -1,   325,    -1,   326,
1135 <      -1,   327,    -1,   328,    -1,   329,    -1,   330,    -1,   331,
1136 <      -1,     1,   241,    -1,   100,   244,   131,   241,    -1,   128,
1137 <     244,   250,   241,    -1,   129,   244,   250,   241,    -1,   113,
1138 <     244,   110,   241,    -1,    26,   244,   250,   241,    -1,    92,
1139 <     244,   110,   241,    -1,    87,   244,   110,   241,    -1,    89,
1140 <     244,   110,   241,    -1,    88,   244,   110,   241,    -1,   158,
1141 <     244,   252,   241,    -1,    22,   244,   110,   241,    -1,    23,
1142 <     244,   110,   241,    -1,   112,   244,   110,   241,    -1,    -1,
1143 <      82,   336,   243,   341,   242,   241,    -1,    -1,    47,   338,
1144 <     244,   339,   241,    -1,   339,   245,   340,    -1,   340,    -1,
1145 <     208,    -1,    61,    -1,   204,    -1,   341,   342,    -1,   342,
1146 <      -1,   343,    -1,   337,    -1,   347,    -1,   348,    -1,     1,
1147 <     241,    -1,    -1,   130,   244,   345,   344,   241,    -1,   345,
1148 <     245,   346,    -1,   346,    -1,   110,    -1,   110,   181,   110,
1149 <      -1,    71,   244,   131,   241,    -1,    66,   244,   131,   241,
1150 <      -1,    -1,    58,   350,   243,   351,   242,   241,    -1,   351,
1151 <     352,    -1,   352,    -1,   353,    -1,   354,    -1,   355,    -1,
1152 <     357,    -1,   361,    -1,   362,    -1,   363,    -1,   356,    -1,
1153 <       1,   241,    -1,   227,   244,   131,   241,    -1,   125,   244,
1154 <     131,   241,    -1,    24,   244,   131,   241,    -1,    43,   244,
1155 <     176,   241,    -1,    -1,    47,   358,   244,   359,   241,    -1,
1156 <     359,   245,   360,    -1,   360,    -1,   170,    -1,    44,    -1,
1157 <      75,    -1,    59,    -1,    20,    -1,   109,    -1,    53,    -1,
1158 <     152,    -1,   101,    -1,   169,   244,   131,   241,    -1,   135,
1159 <     244,   131,   241,    -1,   134,   244,   110,   241,    -1,    -1,
1160 <     151,   365,   243,   366,   242,   241,    -1,   366,   367,    -1,
1161 <     367,    -1,   368,    -1,   369,    -1,   370,    -1,     1,   241,
1162 <      -1,   133,   244,   131,   241,    -1,    21,   244,   131,   241,
1163 <      -1,   104,   244,   131,   241,    -1,   218,   243,   372,   242,
1164 <     241,    -1,   372,   373,    -1,   373,    -1,   374,    -1,     1,
1165 <      -1,   100,   244,   131,   241,    -1,    -1,   164,   376,   243,
1166 <     377,   242,   241,    -1,   377,   378,    -1,   378,    -1,   379,
1167 <      -1,   380,    -1,   381,    -1,     1,   241,    -1,   100,   244,
1168 <     131,   241,    -1,   227,   244,   131,   241,    -1,    -1,   166,
1169 <     382,   244,   383,   241,    -1,   383,   245,   384,    -1,   384,
1170 <      -1,    74,    -1,   226,    -1,   192,    -1,   211,    -1,   236,
1171 <      -1,   214,    -1,   151,    -1,   213,    -1,   199,    -1,   182,
1172 <      -1,    -1,   165,   386,   243,   387,   242,   241,    -1,   387,
1173 <     388,    -1,   388,    -1,   389,    -1,   390,    -1,     1,   241,
1174 <      -1,   100,   244,   131,   241,    -1,    -1,   166,   391,   244,
1175 <     392,   241,    -1,   392,   245,   393,    -1,   393,    -1,    74,
1176 <      -1,   226,    -1,   192,    -1,   211,    -1,   236,    -1,   214,
1177 <      -1,   151,    -1,   213,    -1,   199,    -1,   182,    -1,    -1,
1178 <      25,   395,   243,   396,   242,   241,    -1,   396,   397,    -1,
1179 <     397,    -1,   398,    -1,   399,    -1,   400,    -1,   401,    -1,
1180 <     402,    -1,   404,    -1,   403,    -1,   413,    -1,   405,    -1,
1181 <     410,    -1,   411,    -1,   412,    -1,   409,    -1,     1,   241,
1182 <      -1,   100,   244,   131,   241,    -1,    66,   244,   131,   241,
1183 <      -1,   234,   244,   131,   241,    -1,   159,   244,   131,   241,
1184 <      -1,     3,   244,   131,   241,    -1,   130,   244,   110,   241,
1185 <      -1,     6,   244,   197,   241,    -1,     6,   244,   198,   241,
1186 <      -1,    -1,    47,   406,   244,   407,   241,    -1,   407,   245,
1187 <     408,    -1,   408,    -1,    10,    -1,    12,    -1,   221,    -1,
1188 <     208,    -1,    43,   244,   176,   241,    -1,    68,   244,   131,
1189 <     241,    -1,    80,   244,   131,   241,    -1,    24,   244,   131,
1190 <     241,    -1,   188,   244,   131,   241,    -1,    -1,    72,   415,
1191 <     243,   420,   242,   241,    -1,    -1,   166,   417,   244,   418,
1192 <     241,    -1,   418,   245,   419,    -1,   419,    -1,   136,    -1,
1193 <     420,   421,    -1,   421,    -1,   422,    -1,   423,    -1,   416,
1194 <      -1,     1,    -1,   227,   244,   131,   241,    -1,   133,   244,
1195 <     131,   241,    -1,    -1,    30,   425,   243,   426,   242,   241,
1196 <      -1,   426,   427,    -1,   427,    -1,   428,    -1,   429,    -1,
1197 <       1,    -1,    71,   244,   131,   241,    -1,   133,   244,   131,
1198 <     241,    -1,    45,   243,   431,   242,   241,    -1,   431,   432,
1199 <      -1,   432,    -1,   433,    -1,     1,    -1,    71,   244,   131,
1200 <     241,    -1,    -1,    49,   435,   243,   440,   242,   241,    -1,
1201 <      -1,   166,   437,   244,   438,   241,    -1,   438,   245,   439,
1202 <      -1,   439,    -1,   136,    -1,   440,   441,    -1,   441,    -1,
1203 <     442,    -1,   443,    -1,   436,    -1,     1,    -1,   100,   244,
1204 <     131,   241,    -1,   133,   244,   131,   241,    -1,    50,   243,
1205 <     445,   242,   241,    -1,   445,   446,    -1,   446,    -1,   454,
1206 <      -1,   455,    -1,   457,    -1,   458,    -1,   459,    -1,   460,
1207 <      -1,   461,    -1,   462,    -1,   463,    -1,   464,    -1,   453,
1208 <      -1,   466,    -1,   467,    -1,   468,    -1,   469,    -1,   484,
1209 <      -1,   471,    -1,   473,    -1,   475,    -1,   474,    -1,   478,
1210 <      -1,   472,    -1,   479,    -1,   480,    -1,   481,    -1,   482,
1211 <      -1,   483,    -1,   496,    -1,   485,    -1,   486,    -1,   487,
1212 <      -1,   492,    -1,   476,    -1,   477,    -1,   502,    -1,   500,
1213 <      -1,   501,    -1,   456,    -1,   503,    -1,   491,    -1,   465,
1214 <      -1,   489,    -1,   490,    -1,   452,    -1,   448,    -1,   449,
1215 <      -1,   450,    -1,   451,    -1,   470,    -1,   447,    -1,   488,
1216 <      -1,     1,    -1,    94,   244,   110,   241,    -1,    55,   244,
1217 <     110,   241,    -1,    56,   244,   110,   241,    -1,   233,   244,
1218 <     176,   241,    -1,   138,   244,   250,   241,    -1,   163,   244,
1219 <     176,   241,    -1,    73,   244,   250,   241,    -1,    65,   244,
1220 <     176,   241,    -1,    69,   244,   176,   241,    -1,    37,   244,
1221 <     176,   241,    -1,    46,   244,   176,   241,    -1,     8,   244,
1222 <     176,   241,    -1,    91,   244,   250,   241,    -1,    90,   244,
1223 <     110,   241,    -1,    84,   244,   110,   241,    -1,     9,   244,
1224 <     250,   241,    -1,   180,   244,   250,   241,    -1,   179,   244,
1225 <     250,   241,    -1,    60,   244,   110,   241,    -1,    77,   244,
1226 <     176,   241,    -1,    76,   244,   131,   241,    -1,    70,   244,
1227 <     176,   241,    -1,   238,   244,   176,   241,    -1,   171,   244,
1228 <     176,   241,    -1,   174,   244,   176,   241,    -1,   175,   244,
1229 <     176,   241,    -1,   173,   244,   176,   241,    -1,   173,   244,
1230 <     177,   241,    -1,   172,   244,   176,   241,    -1,   172,   244,
1231 <     177,   241,    -1,   123,   244,   250,   241,    -1,    19,   244,
1232 <     250,   241,    -1,   116,   244,   176,   241,    -1,   124,   244,
1233 <     250,   241,    -1,   167,   244,   176,   241,    -1,   108,   244,
1234 <     176,   241,    -1,   222,   244,   176,   241,    -1,   118,   244,
1235 <     176,   241,    -1,    95,   244,   131,   241,    -1,    38,   244,
1236 <     110,   241,    -1,    93,   244,   110,   241,    -1,   228,   244,
1237 <     176,   241,    -1,    40,   244,   131,   241,    -1,   219,   244,
1238 <     131,   241,    -1,   127,   244,   176,   241,    -1,    33,   244,
1239 <     176,   241,    -1,   220,   244,   250,   241,    -1,    -1,   120,
1240 <     493,   244,   494,   241,    -1,   494,   245,   495,    -1,   495,
1241 <      -1,   183,    -1,   186,    -1,   187,    -1,   190,    -1,   191,
1242 <      -1,   195,    -1,    61,    -1,   206,    -1,   201,    -1,   203,
1243 <      -1,   210,    -1,   207,    -1,   194,    -1,   202,    -1,   205,
1244 <      -1,   196,    -1,   216,    -1,   184,    -1,   185,    -1,   199,
1245 <      -1,    -1,   117,   497,   244,   498,   241,    -1,   498,   245,
1246 <     499,    -1,   499,    -1,   183,    -1,   186,    -1,   187,    -1,
1247 <     190,    -1,   191,    -1,   195,    -1,   206,    -1,    61,    -1,
1248 <     201,    -1,   203,    -1,   210,    -1,   207,    -1,   194,    -1,
1249 <     202,    -1,   205,    -1,   196,    -1,   216,    -1,   184,    -1,
1250 <     185,    -1,   199,    -1,    96,   244,   110,   241,    -1,    97,
1251 <     244,   110,   241,    -1,    27,   244,   110,   241,    -1,   189,
1252 <     244,   252,   241,    -1,    -1,    52,   505,   243,   506,   242,
1253 <     241,    -1,   506,   507,    -1,   507,    -1,   508,    -1,   509,
1254 <      -1,   510,    -1,   514,    -1,   515,    -1,   516,    -1,     1,
1255 <      -1,    42,   244,   176,   241,    -1,    39,   244,   250,   241,
1256 <      -1,    -1,    83,   511,   244,   512,   241,    -1,   512,   245,
1257 <     513,    -1,   513,    -1,   178,    -1,    11,    -1,   227,   244,
1258 <     131,   241,    -1,   100,   244,   131,   241,    -1,    -1,     4,
1259 <     517,   244,   518,   241,    -1,   518,   245,   519,    -1,   519,
1260 <      -1,   178,    -1,    11,    -1,    21,   243,   521,   242,   241,
1261 <      -1,   521,   522,    -1,   522,    -1,   525,    -1,   526,    -1,
1262 <     527,    -1,   528,    -1,   533,    -1,   529,    -1,   530,    -1,
1263 <     531,    -1,   532,    -1,   534,    -1,   535,    -1,   536,    -1,
1264 <     524,    -1,   537,    -1,   538,    -1,   539,    -1,   540,    -1,
1265 <     523,    -1,     1,    -1,    34,   244,   176,   241,    -1,   141,
1266 <     244,   176,   241,    -1,    36,   244,   176,   241,    -1,   229,
1267 <     244,   176,   241,    -1,   230,   244,   176,   241,    -1,   231,
1268 <     244,   176,   241,    -1,    78,   244,   250,   241,    -1,    79,
1269 <     244,   250,   241,    -1,    86,   244,   110,   241,    -1,   132,
1270 <     244,   176,   241,    -1,    85,   244,   110,   241,    -1,    29,
1271 <     244,   110,   241,    -1,    28,   244,   110,   241,    -1,   106,
1272 <     244,   176,   241,    -1,   107,   244,   176,   241,    -1,    13,
1273 <     244,   176,   241,    -1,   121,   244,   110,   241,    -1,   122,
1282 <     244,   250,   241,    -1,   160,   243,   542,   242,   241,    -1,
1283 <     542,   543,    -1,   543,    -1,   544,    -1,   545,    -1,   547,
1284 <      -1,   549,    -1,   548,    -1,   546,    -1,   550,    -1,     1,
1285 <      -1,    48,   244,   176,   241,    -1,    64,   244,   176,   241,
1286 <      -1,    62,   244,   131,   241,    -1,    81,   244,   250,   241,
1287 <      -1,    61,   244,   176,   241,    -1,    35,   244,   176,   241,
1288 <      -1,    63,   244,   176,   241,    -1
1077 >     230,     0,    -1,    -1,   230,   231,    -1,   265,    -1,   277,
1078 >      -1,   291,    -1,   490,    -1,   309,    -1,   332,    -1,   346,
1079 >      -1,   241,    -1,   505,    -1,   361,    -1,   368,    -1,   372,
1080 >      -1,   382,    -1,   391,    -1,   411,    -1,   417,    -1,   423,
1081 >      -1,   433,    -1,   427,    -1,   236,    -1,   271,    -1,     1,
1082 >     223,    -1,     1,   224,    -1,    -1,   233,    -1,   107,   232,
1083 >      -1,   107,   134,   232,    -1,   107,   135,   232,    -1,   107,
1084 >     136,   232,    -1,   107,   137,   232,    -1,   107,   138,   232,
1085 >      -1,   107,   139,   232,    -1,   107,   140,   232,    -1,    -1,
1086 >     235,    -1,   107,   234,    -1,   107,     9,   234,    -1,   107,
1087 >      10,   234,    -1,   107,    11,   234,    -1,    95,   225,   237,
1088 >     224,   223,    -1,   237,   238,    -1,   238,    -1,   239,    -1,
1089 >     240,    -1,     1,   223,    -1,    94,   226,   122,   223,    -1,
1090 >     118,   226,   122,   223,    -1,   144,   225,   242,   224,   223,
1091 >      -1,   242,   243,    -1,   243,    -1,   254,    -1,   259,    -1,
1092 >     264,    -1,   256,    -1,   257,    -1,   258,    -1,   261,    -1,
1093 >     262,    -1,   263,    -1,   252,    -1,   251,    -1,   260,    -1,
1094 >     255,    -1,   250,    -1,   244,    -1,   245,    -1,   253,    -1,
1095 >       1,   223,    -1,   193,   226,   246,   223,    -1,   194,   226,
1096 >     248,   223,    -1,   246,   227,   247,    -1,   247,    -1,   195,
1097 >      -1,   196,    -1,   248,   227,   249,    -1,   249,    -1,   195,
1098 >      -1,   196,    -1,   149,   226,   122,   223,    -1,   132,   226,
1099 >     122,   223,    -1,   150,   226,   122,   223,    -1,   192,   226,
1100 >     122,   223,    -1,    97,   226,   122,   223,    -1,    63,   226,
1101 >     122,   223,    -1,    24,   226,   122,   223,    -1,   101,   226,
1102 >     122,   223,    -1,   100,   226,   122,   223,    -1,   219,   226,
1103 >     122,   223,    -1,   220,   226,   122,   223,    -1,   174,   226,
1104 >     107,   223,    -1,    85,   226,   107,   223,    -1,    89,   226,
1105 >     107,   223,    -1,    56,   226,   206,   223,    -1,     4,   225,
1106 >     266,   224,   223,    -1,   266,   267,    -1,   267,    -1,   268,
1107 >      -1,   270,    -1,   269,    -1,     1,   223,    -1,    97,   226,
1108 >     122,   223,    -1,    31,   226,   122,   223,    -1,    24,   226,
1109 >     122,   223,    -1,    -1,    96,   272,   225,   273,   224,   223,
1110 >      -1,   273,   274,    -1,   274,    -1,   275,    -1,   276,    -1,
1111 >       1,   223,    -1,    75,   226,   122,   223,    -1,   166,   226,
1112 >     122,   223,    -1,   173,   225,   278,   224,   223,    -1,   278,
1113 >     279,    -1,   279,    -1,   280,    -1,   281,    -1,     1,   223,
1114 >      -1,   217,   226,   206,   223,    -1,    -1,   282,   166,   225,
1115 >     283,   224,   223,    -1,   283,   284,    -1,   284,    -1,   285,
1116 >      -1,   287,    -1,   286,    -1,     1,   223,    -1,    97,   226,
1117 >     122,   223,    -1,   187,   226,   235,   223,    -1,   187,   226,
1118 >     200,   223,    -1,    -1,   214,   288,   226,   289,   223,    -1,
1119 >     289,   227,   290,    -1,   290,    -1,   218,    -1,   113,    -1,
1120 >      39,    -1,   163,    -1,    68,    -1,    66,    -1,   162,    -1,
1121 >      -1,   113,   292,   225,   293,   224,   223,    -1,   293,   294,
1122 >      -1,   294,    -1,   295,    -1,   296,    -1,   297,    -1,   301,
1123 >      -1,   300,    -1,   298,    -1,   299,    -1,   305,    -1,     1,
1124 >     223,    -1,    97,   226,   122,   223,    -1,   218,   226,   122,
1125 >     223,    -1,   117,   226,   122,   223,    -1,    32,   226,   206,
1126 >     223,    -1,   133,   226,   122,   223,    -1,    17,   226,   122,
1127 >     223,    -1,    -1,   197,   302,   226,   303,   223,    -1,   303,
1128 >     227,   304,    -1,   304,    -1,   157,    -1,   159,    -1,   161,
1129 >      -1,   162,    -1,   167,    -1,    48,    -1,   188,    -1,   175,
1130 >      -1,   179,    -1,   198,    -1,   190,    -1,   164,    -1,   177,
1131 >      -1,   184,    -1,   169,    -1,   203,    -1,   189,    -1,   158,
1132 >      -1,   172,    -1,   176,    -1,   165,    -1,    -1,    62,   306,
1133 >     226,   307,   223,    -1,   307,   227,   308,    -1,   308,    -1,
1134 >      66,   228,   128,    -1,    66,    -1,    18,   228,   128,    -1,
1135 >      18,    -1,   148,   228,   128,    -1,   148,    -1,    68,    -1,
1136 >     215,    -1,   163,    -1,   199,    -1,   222,    -1,    39,    -1,
1137 >      25,    -1,   180,    -1,   127,    -1,     4,    -1,   177,    -1,
1138 >     168,    -1,   204,    -1,   172,    -1,   129,    -1,   185,    -1,
1139 >      94,    -1,    -1,    17,   310,   225,   311,   224,   223,    -1,
1140 >     311,   312,    -1,   312,    -1,   313,    -1,   323,    -1,   324,
1141 >      -1,   314,    -1,   325,    -1,   315,    -1,   316,    -1,   317,
1142 >      -1,   318,    -1,   319,    -1,   320,    -1,   321,    -1,   322,
1143 >      -1,   326,    -1,   327,    -1,   328,    -1,     1,   223,    -1,
1144 >      97,   226,   122,   223,    -1,   120,   226,   233,   223,    -1,
1145 >     109,   226,   107,   223,    -1,    19,   226,   233,   223,    -1,
1146 >      87,   226,   107,   223,    -1,    80,   226,   107,   223,    -1,
1147 >      83,   226,   107,   223,    -1,    81,   226,   107,   223,    -1,
1148 >     142,   226,   235,   223,    -1,   178,   226,   235,   223,    -1,
1149 >      15,   226,   107,   223,    -1,    16,   226,   107,   223,    -1,
1150 >     108,   226,   107,   223,    -1,    91,   226,   233,   223,    -1,
1151 >      82,   226,   233,   223,    -1,    -1,    62,   329,   226,   330,
1152 >     223,    -1,   330,   227,   331,    -1,   331,    -1,   123,    -1,
1153 >      50,    -1,    -1,    74,   333,   225,   338,   224,   223,    -1,
1154 >      -1,    62,   335,   226,   336,   223,    -1,   336,   227,   337,
1155 >      -1,   337,    -1,   191,    -1,    48,    -1,   181,    -1,   338,
1156 >     339,    -1,   339,    -1,   340,    -1,   334,    -1,   344,    -1,
1157 >     345,    -1,     1,   223,    -1,    -1,   121,   226,   342,   341,
1158 >     223,    -1,   342,   227,   343,    -1,   343,    -1,   107,    -1,
1159 >     107,   213,   107,    -1,    60,   226,   122,   223,    -1,    55,
1160 >     226,   122,   223,    -1,    -1,    61,   347,   225,   348,   224,
1161 >     223,    -1,   348,   349,    -1,   349,    -1,   350,    -1,   351,
1162 >      -1,   352,    -1,   354,    -1,   358,    -1,   359,    -1,   360,
1163 >      -1,   353,    -1,     1,   223,    -1,   218,   226,   122,   223,
1164 >      -1,   117,   226,   122,   223,    -1,    17,   226,   122,   223,
1165 >      -1,    32,   226,   206,   223,    -1,    -1,    62,   355,   226,
1166 >     356,   223,    -1,   356,   227,   357,    -1,   357,    -1,   147,
1167 >      -1,    33,    -1,    69,    -1,    98,    -1,    13,    -1,   106,
1168 >      -1,    42,    -1,   131,    -1,   205,    -1,    99,    -1,   146,
1169 >     226,   122,   223,    -1,   126,   226,   122,   223,    -1,   125,
1170 >     226,   107,   223,    -1,    -1,   130,   362,   225,   363,   224,
1171 >     223,    -1,   363,   364,    -1,   364,    -1,   365,    -1,   366,
1172 >      -1,   367,    -1,     1,   223,    -1,    75,   226,   122,   223,
1173 >      -1,   124,   226,   122,   223,    -1,    34,   226,   122,   223,
1174 >      -1,   182,   225,   369,   224,   223,    -1,   369,   370,    -1,
1175 >     370,    -1,   371,    -1,     1,    -1,    97,   226,   122,   223,
1176 >      -1,    -1,   186,   373,   225,   374,   224,   223,    -1,   374,
1177 >     375,    -1,   375,    -1,   376,    -1,   377,    -1,   378,    -1,
1178 >       1,   223,    -1,    97,   226,   122,   223,    -1,   218,   226,
1179 >     122,   223,    -1,    -1,   214,   379,   226,   380,   223,    -1,
1180 >     380,   227,   381,    -1,   381,    -1,    68,    -1,   215,    -1,
1181 >     163,    -1,   199,    -1,   222,    -1,   202,    -1,   130,    -1,
1182 >     201,    -1,   172,    -1,   156,    -1,    -1,   160,   383,   225,
1183 >     384,   224,   223,    -1,   384,   385,    -1,   385,    -1,   386,
1184 >      -1,   387,    -1,     1,   223,    -1,    97,   226,   122,   223,
1185 >      -1,    -1,   214,   388,   226,   389,   223,    -1,   389,   227,
1186 >     390,    -1,   390,    -1,    68,    -1,   215,    -1,   163,    -1,
1187 >     199,    -1,   222,    -1,   202,    -1,   130,    -1,   201,    -1,
1188 >     172,    -1,   156,    -1,    -1,    18,   392,   225,   393,   224,
1189 >     223,    -1,   393,   394,    -1,   394,    -1,   395,    -1,   396,
1190 >      -1,   397,    -1,   398,    -1,   399,    -1,   401,    -1,   400,
1191 >      -1,   410,    -1,   402,    -1,   407,    -1,   408,    -1,   409,
1192 >      -1,   406,    -1,     1,   223,    -1,    97,   226,   122,   223,
1193 >      -1,    55,   226,   122,   223,    -1,   219,   226,   122,   223,
1194 >      -1,   141,   226,   122,   223,    -1,     3,   226,   122,   223,
1195 >      -1,   121,   226,   107,   223,    -1,     5,   226,   170,   223,
1196 >      -1,     5,   226,   171,   223,    -1,    -1,    62,   403,   226,
1197 >     404,   223,    -1,   404,   227,   405,    -1,   405,    -1,     8,
1198 >      -1,   191,    -1,    32,   226,   206,   223,    -1,    57,   226,
1199 >     122,   223,    -1,    72,   226,   122,   223,    -1,    17,   226,
1200 >     122,   223,    -1,   192,   226,   122,   223,    -1,    -1,    66,
1201 >     412,   225,   413,   224,   223,    -1,   413,   414,    -1,   414,
1202 >      -1,   415,    -1,   416,    -1,     1,    -1,   218,   226,   122,
1203 >     223,    -1,   124,   226,   122,   223,    -1,    -1,    23,   418,
1204 >     225,   419,   224,   223,    -1,   419,   420,    -1,   420,    -1,
1205 >     421,    -1,   422,    -1,     1,    -1,    60,   226,   122,   223,
1206 >      -1,   124,   226,   122,   223,    -1,    34,   225,   424,   224,
1207 >     223,    -1,   424,   425,    -1,   425,    -1,   426,    -1,     1,
1208 >      -1,    60,   226,   122,   223,    -1,    -1,    37,   428,   225,
1209 >     429,   224,   223,    -1,   429,   430,    -1,   430,    -1,   431,
1210 >      -1,   432,    -1,     1,    -1,    97,   226,   122,   223,    -1,
1211 >     124,   226,   122,   223,    -1,    38,   225,   434,   224,   223,
1212 >      -1,   434,   435,    -1,   435,    -1,   444,    -1,   445,    -1,
1213 >     447,    -1,   448,    -1,   449,    -1,   450,    -1,   451,    -1,
1214 >     452,    -1,   453,    -1,   454,    -1,   443,    -1,   456,    -1,
1215 >     457,    -1,   471,    -1,   459,    -1,   461,    -1,   463,    -1,
1216 >     462,    -1,   466,    -1,   460,    -1,   467,    -1,   468,    -1,
1217 >     469,    -1,   470,    -1,   483,    -1,   472,    -1,   473,    -1,
1218 >     474,    -1,   479,    -1,   464,    -1,   465,    -1,   489,    -1,
1219 >     487,    -1,   488,    -1,   446,    -1,   478,    -1,   455,    -1,
1220 >     476,    -1,   477,    -1,   442,    -1,   437,    -1,   438,    -1,
1221 >     439,    -1,   440,    -1,   441,    -1,   458,    -1,   436,    -1,
1222 >     475,    -1,     1,    -1,    90,   226,   107,   223,    -1,    41,
1223 >     226,   206,   223,    -1,    40,   226,   233,   223,    -1,    45,
1224 >     226,   233,   223,    -1,    43,   226,   107,   223,    -1,    44,
1225 >     226,   107,   223,    -1,   208,   226,   206,   223,    -1,    67,
1226 >     226,   233,   223,    -1,    54,   226,   206,   223,    -1,    58,
1227 >     226,   206,   223,    -1,    28,   226,   206,   223,    -1,    35,
1228 >     226,   206,   223,    -1,     6,   226,   206,   223,    -1,    86,
1229 >     226,   233,   223,    -1,    84,   226,   107,   223,    -1,    76,
1230 >     226,   107,   223,    -1,     7,   226,   233,   223,    -1,   212,
1231 >     226,   233,   223,    -1,   211,   226,   233,   223,    -1,    47,
1232 >     226,   107,   223,    -1,    59,   226,   206,   223,    -1,   221,
1233 >     226,   206,   223,    -1,   151,   226,   206,   223,    -1,   154,
1234 >     226,   206,   223,    -1,   155,   226,   206,   223,    -1,   153,
1235 >     226,   206,   223,    -1,   153,   226,   209,   223,    -1,   152,
1236 >     226,   206,   223,    -1,   152,   226,   209,   223,    -1,   115,
1237 >     226,   233,   223,    -1,    12,   226,   233,   223,    -1,   114,
1238 >     226,   206,   223,    -1,   116,   226,   233,   223,    -1,   145,
1239 >     226,   206,   223,    -1,   105,   226,   206,   223,    -1,   210,
1240 >     226,   206,   223,    -1,   111,   226,   206,   223,    -1,    29,
1241 >     226,   107,   223,    -1,    88,   226,   107,   223,    -1,   216,
1242 >     226,   206,   223,    -1,    30,   226,   122,   223,    -1,   183,
1243 >     226,   122,   223,    -1,   119,   226,   206,   223,    -1,    26,
1244 >     226,   206,   223,    -1,   207,   226,   233,   223,    -1,    -1,
1245 >     112,   480,   226,   481,   223,    -1,   481,   227,   482,    -1,
1246 >     482,    -1,   157,    -1,   159,    -1,   161,    -1,   162,    -1,
1247 >     167,    -1,    48,    -1,   188,    -1,   175,    -1,   179,    -1,
1248 >     198,    -1,   190,    -1,   164,    -1,   177,    -1,   184,    -1,
1249 >     169,    -1,   203,    -1,   189,    -1,   158,    -1,   172,    -1,
1250 >     176,    -1,   165,    -1,    -1,   110,   484,   226,   485,   223,
1251 >      -1,   485,   227,   486,    -1,   486,    -1,   157,    -1,   159,
1252 >      -1,   161,    -1,   162,    -1,   167,    -1,   188,    -1,    48,
1253 >      -1,   175,    -1,   179,    -1,   198,    -1,   190,    -1,   164,
1254 >      -1,   177,    -1,   184,    -1,   169,    -1,   203,    -1,   189,
1255 >      -1,   158,    -1,   172,    -1,   176,    -1,   165,    -1,    92,
1256 >     226,   107,   223,    -1,    93,   226,   107,   223,    -1,    20,
1257 >     226,   107,   223,    -1,    14,   225,   491,   224,   223,    -1,
1258 >     491,   492,    -1,   492,    -1,   498,    -1,   494,    -1,   495,
1259 >      -1,   496,    -1,   497,    -1,   499,    -1,   500,    -1,   501,
1260 >      -1,   502,    -1,   503,    -1,   504,    -1,   493,    -1,     1,
1261 >      -1,    27,   226,   206,   223,    -1,    70,   226,   233,   223,
1262 >      -1,    71,   226,   233,   223,    -1,    79,   226,   107,   223,
1263 >      -1,    78,   226,   107,   223,    -1,    77,   226,   107,   223,
1264 >      -1,    22,   226,   107,   223,    -1,    21,   226,   107,   223,
1265 >      -1,   103,   226,   206,   223,    -1,   104,   226,   206,   223,
1266 >      -1,    64,   226,   107,   223,    -1,    65,   226,   233,   223,
1267 >      -1,   143,   225,   506,   224,   223,    -1,   506,   507,    -1,
1268 >     507,    -1,   508,    -1,   509,    -1,   510,    -1,   512,    -1,
1269 >     513,    -1,   511,    -1,   514,    -1,     1,    -1,    36,   226,
1270 >     206,   223,    -1,    52,   226,   206,   223,    -1,    53,   226,
1271 >     206,   223,    -1,    49,   226,   122,   223,    -1,    73,   226,
1272 >     233,   223,    -1,    48,   226,   206,   223,    -1,    51,   226,
1273 >     206,   223,    -1
1274   };
1275  
1276   /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1277   static const yytype_uint16 yyrline[] =
1278   {
1279 <       0,   379,   379,   380,   383,   384,   385,   386,   387,   388,
1280 <     389,   390,   391,   392,   393,   394,   395,   396,   397,   398,
1281 <     399,   400,   401,   402,   403,   404,   405,   409,   409,   410,
1282 <     414,   418,   422,   426,   430,   436,   436,   437,   438,   439,
1283 <     440,   447,   450,   450,   451,   451,   451,   453,   459,   466,
1284 <     468,   468,   469,   469,   470,   470,   471,   471,   472,   472,
1285 <     473,   473,   474,   474,   475,   475,   476,   477,   480,   481,
1286 <     483,   483,   484,   490,   498,   498,   499,   505,   513,   552,
1287 <     611,   639,   647,   662,   677,   686,   700,   709,   737,   767,
1288 <     790,   799,   801,   801,   802,   802,   803,   803,   805,   814,
1289 <     823,   835,   836,   836,   838,   838,   839,   841,   848,   848,
1290 <     858,   859,   861,   861,   862,   862,   864,   869,   872,   878,
1291 <     877,   883,   883,   884,   888,   892,   896,   900,   904,   908,
1292 <     919,   918,  1016,  1016,  1017,  1017,  1017,  1018,  1018,  1018,
1293 <    1019,  1019,  1019,  1021,  1033,  1070,  1082,  1093,  1135,  1145,
1294 <    1144,  1150,  1150,  1151,  1155,  1159,  1163,  1167,  1171,  1175,
1295 <    1179,  1183,  1187,  1191,  1195,  1199,  1203,  1207,  1211,  1215,
1296 <    1219,  1223,  1227,  1234,  1233,  1239,  1239,  1240,  1244,  1248,
1297 <    1252,  1256,  1260,  1264,  1268,  1272,  1276,  1280,  1284,  1288,
1298 <    1292,  1296,  1300,  1304,  1308,  1319,  1318,  1368,  1368,  1369,
1299 <    1370,  1370,  1371,  1372,  1373,  1374,  1375,  1376,  1377,  1378,
1300 <    1379,  1380,  1381,  1383,  1392,  1398,  1404,  1410,  1416,  1422,
1301 <    1428,  1434,  1440,  1446,  1452,  1458,  1468,  1467,  1484,  1483,
1302 <    1488,  1488,  1489,  1493,  1497,  1505,  1505,  1506,  1506,  1506,
1303 <    1506,  1506,  1508,  1508,  1510,  1510,  1512,  1526,  1546,  1555,
1304 <    1568,  1567,  1636,  1636,  1637,  1637,  1637,  1637,  1638,  1638,
1305 <    1638,  1639,  1639,  1641,  1678,  1691,  1700,  1712,  1711,  1715,
1306 <    1715,  1716,  1720,  1724,  1728,  1732,  1736,  1740,  1744,  1748,
1307 <    1755,  1774,  1784,  1798,  1797,  1813,  1813,  1814,  1814,  1814,
1308 <    1814,  1816,  1825,  1840,  1853,  1855,  1855,  1856,  1856,  1858,
1309 <    1874,  1873,  1889,  1889,  1890,  1890,  1890,  1890,  1892,  1901,
1310 <    1924,  1923,  1929,  1929,  1930,  1934,  1938,  1942,  1946,  1950,
1311 <    1954,  1958,  1962,  1966,  1976,  1975,  1992,  1992,  1993,  1993,
1312 <    1993,  1995,  2002,  2001,  2007,  2007,  2008,  2012,  2016,  2020,
1313 <    2024,  2028,  2032,  2036,  2040,  2044,  2054,  2053,  2182,  2182,
1314 <    2183,  2183,  2183,  2184,  2184,  2185,  2185,  2185,  2186,  2186,
1315 <    2186,  2187,  2187,  2188,  2190,  2199,  2208,  2234,  2252,  2270,
1316 <    2276,  2280,  2289,  2288,  2292,  2292,  2293,  2297,  2301,  2305,
1317 <    2311,  2322,  2335,  2348,  2357,  2376,  2375,  2441,  2440,  2444,
1318 <    2444,  2445,  2451,  2451,  2452,  2452,  2452,  2452,  2454,  2473,
1319 <    2483,  2482,  2507,  2507,  2508,  2508,  2508,  2510,  2516,  2525,
1320 <    2527,  2527,  2528,  2528,  2530,  2549,  2548,  2596,  2595,  2599,
1321 <    2599,  2600,  2606,  2606,  2607,  2607,  2607,  2607,  2609,  2615,
1322 <    2624,  2627,  2627,  2628,  2628,  2629,  2629,  2630,  2630,  2631,
1323 <    2631,  2632,  2632,  2633,  2633,  2634,  2634,  2635,  2635,  2636,
1324 <    2636,  2637,  2637,  2638,  2638,  2639,  2639,  2640,  2640,  2641,
1325 <    2642,  2642,  2643,  2643,  2644,  2644,  2645,  2645,  2646,  2646,
1326 <    2647,  2648,  2649,  2649,  2650,  2651,  2652,  2652,  2653,  2653,
1327 <    2654,  2654,  2655,  2655,  2656,  2659,  2664,  2669,  2674,  2679,
1328 <    2684,  2689,  2694,  2699,  2704,  2709,  2714,  2719,  2724,  2729,
1329 <    2734,  2739,  2744,  2750,  2761,  2766,  2775,  2780,  2785,  2790,
1330 <    2795,  2800,  2803,  2808,  2811,  2816,  2821,  2826,  2831,  2836,
1331 <    2841,  2846,  2851,  2856,  2867,  2872,  2877,  2882,  2891,  2900,
1332 <    2905,  2910,  2916,  2915,  2920,  2920,  2921,  2924,  2927,  2930,
1333 <    2933,  2936,  2939,  2942,  2945,  2948,  2951,  2954,  2957,  2960,
1334 <    2963,  2966,  2969,  2972,  2975,  2978,  2984,  2983,  2988,  2988,
1335 <    2989,  2992,  2995,  2998,  3001,  3004,  3007,  3010,  3013,  3016,
1336 <    3019,  3022,  3025,  3028,  3031,  3034,  3037,  3040,  3043,  3046,
1337 <    3051,  3056,  3061,  3066,  3076,  3075,  3099,  3099,  3100,  3101,
1338 <    3102,  3103,  3104,  3105,  3106,  3108,  3114,  3121,  3120,  3125,
1339 <    3125,  3126,  3130,  3136,  3170,  3180,  3179,  3229,  3229,  3230,
1340 <    3234,  3243,  3246,  3246,  3247,  3247,  3248,  3248,  3249,  3249,
1341 <    3250,  3250,  3251,  3251,  3252,  3253,  3253,  3254,  3254,  3255,
1342 <    3255,  3256,  3256,  3258,  3263,  3268,  3273,  3278,  3283,  3288,
1343 <    3293,  3298,  3303,  3308,  3313,  3318,  3323,  3328,  3333,  3338,
1359 <    3343,  3351,  3354,  3354,  3355,  3355,  3356,  3357,  3358,  3358,
1360 <    3359,  3360,  3362,  3368,  3374,  3383,  3397,  3403,  3409
1279 >       0,   365,   365,   366,   369,   370,   371,   372,   373,   374,
1280 >     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
1281 >     385,   386,   387,   388,   389,   390,   391,   395,   395,   396,
1282 >     400,   404,   408,   412,   416,   420,   424,   430,   430,   431,
1283 >     432,   433,   434,   441,   444,   444,   445,   445,   445,   447,
1284 >     453,   460,   462,   462,   463,   463,   464,   464,   465,   465,
1285 >     466,   466,   467,   467,   468,   468,   469,   469,   470,   470,
1286 >     471,   472,   475,   476,   478,   478,   479,   485,   493,   493,
1287 >     494,   500,   508,   550,   609,   637,   645,   660,   675,   684,
1288 >     698,   707,   735,   765,   790,   812,   834,   843,   845,   845,
1289 >     846,   846,   847,   847,   849,   858,   867,   880,   879,   897,
1290 >     897,   898,   898,   898,   900,   906,   915,   916,   916,   918,
1291 >     918,   919,   921,   928,   928,   941,   942,   944,   944,   945,
1292 >     945,   947,   955,   958,   964,   963,   969,   969,   970,   974,
1293 >     978,   982,   986,   990,   994,  1005,  1004,  1081,  1081,  1082,
1294 >    1082,  1082,  1083,  1083,  1083,  1084,  1084,  1084,  1086,  1092,
1295 >    1098,  1104,  1115,  1121,  1128,  1127,  1133,  1133,  1134,  1138,
1296 >    1142,  1146,  1150,  1154,  1158,  1162,  1166,  1170,  1174,  1178,
1297 >    1182,  1186,  1190,  1194,  1198,  1202,  1206,  1210,  1214,  1221,
1298 >    1220,  1226,  1226,  1227,  1231,  1235,  1239,  1243,  1247,  1251,
1299 >    1255,  1259,  1263,  1267,  1271,  1275,  1279,  1283,  1287,  1291,
1300 >    1295,  1299,  1303,  1307,  1311,  1315,  1326,  1325,  1386,  1386,
1301 >    1387,  1388,  1388,  1389,  1390,  1391,  1392,  1393,  1394,  1395,
1302 >    1396,  1397,  1397,  1398,  1399,  1400,  1401,  1403,  1409,  1415,
1303 >    1421,  1427,  1433,  1439,  1445,  1451,  1457,  1464,  1470,  1476,
1304 >    1482,  1491,  1501,  1500,  1506,  1506,  1507,  1511,  1522,  1521,
1305 >    1528,  1527,  1532,  1532,  1533,  1537,  1541,  1547,  1547,  1548,
1306 >    1548,  1548,  1548,  1548,  1550,  1550,  1552,  1552,  1554,  1568,
1307 >    1588,  1594,  1604,  1603,  1645,  1645,  1646,  1646,  1646,  1646,
1308 >    1647,  1647,  1647,  1648,  1648,  1650,  1656,  1662,  1668,  1680,
1309 >    1679,  1685,  1685,  1686,  1690,  1694,  1698,  1702,  1706,  1710,
1310 >    1714,  1718,  1722,  1728,  1742,  1751,  1765,  1764,  1779,  1779,
1311 >    1780,  1780,  1780,  1780,  1782,  1788,  1794,  1804,  1806,  1806,
1312 >    1807,  1807,  1809,  1825,  1824,  1849,  1849,  1850,  1850,  1850,
1313 >    1850,  1852,  1858,  1878,  1877,  1883,  1883,  1884,  1888,  1892,
1314 >    1896,  1900,  1904,  1908,  1912,  1916,  1920,  1930,  1929,  1950,
1315 >    1950,  1951,  1951,  1951,  1953,  1960,  1959,  1965,  1965,  1966,
1316 >    1970,  1974,  1978,  1982,  1986,  1990,  1994,  1998,  2002,  2012,
1317 >    2011,  2077,  2077,  2078,  2078,  2078,  2079,  2079,  2080,  2080,
1318 >    2080,  2081,  2081,  2081,  2082,  2082,  2083,  2085,  2091,  2097,
1319 >    2103,  2116,  2129,  2135,  2139,  2148,  2147,  2152,  2152,  2153,
1320 >    2157,  2163,  2174,  2180,  2186,  2192,  2208,  2207,  2233,  2233,
1321 >    2234,  2234,  2234,  2236,  2256,  2266,  2265,  2292,  2292,  2293,
1322 >    2293,  2293,  2295,  2301,  2310,  2312,  2312,  2313,  2313,  2315,
1323 >    2333,  2332,  2355,  2355,  2356,  2356,  2356,  2358,  2364,  2373,
1324 >    2376,  2376,  2377,  2377,  2378,  2378,  2379,  2379,  2380,  2380,
1325 >    2381,  2381,  2382,  2383,  2384,  2384,  2385,  2385,  2386,  2386,
1326 >    2387,  2387,  2388,  2388,  2389,  2389,  2390,  2390,  2391,  2391,
1327 >    2392,  2392,  2393,  2393,  2394,  2394,  2395,  2396,  2396,  2397,
1328 >    2398,  2399,  2399,  2400,  2400,  2401,  2402,  2403,  2404,  2404,
1329 >    2405,  2408,  2413,  2419,  2425,  2431,  2436,  2441,  2446,  2451,
1330 >    2456,  2461,  2466,  2471,  2476,  2481,  2486,  2491,  2496,  2501,
1331 >    2507,  2518,  2523,  2528,  2533,  2538,  2543,  2546,  2551,  2554,
1332 >    2559,  2564,  2569,  2574,  2579,  2584,  2589,  2594,  2599,  2604,
1333 >    2609,  2614,  2623,  2632,  2637,  2642,  2648,  2647,  2652,  2652,
1334 >    2653,  2656,  2659,  2662,  2665,  2668,  2671,  2674,  2677,  2680,
1335 >    2683,  2686,  2689,  2692,  2695,  2698,  2701,  2704,  2707,  2710,
1336 >    2713,  2719,  2718,  2723,  2723,  2724,  2727,  2730,  2733,  2736,
1337 >    2739,  2742,  2745,  2748,  2751,  2754,  2757,  2760,  2763,  2766,
1338 >    2769,  2772,  2775,  2778,  2781,  2784,  2789,  2794,  2799,  2808,
1339 >    2811,  2811,  2812,  2813,  2813,  2814,  2814,  2815,  2816,  2817,
1340 >    2818,  2819,  2819,  2820,  2820,  2822,  2827,  2832,  2837,  2842,
1341 >    2847,  2852,  2857,  2862,  2867,  2872,  2877,  2885,  2888,  2888,
1342 >    2889,  2889,  2890,  2891,  2892,  2892,  2893,  2894,  2896,  2902,
1343 >    2908,  2914,  2923,  2937,  2943
1344   };
1345   #endif
1346  
1347 < #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1347 > #if YYDEBUG || YYERROR_VERBOSE || 0
1348   /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1349     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1350   static const char *const yytname[] =
1351   {
1352 <  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ACTION", "ADMIN",
1353 <  "AFTYPE", "T_ALLOW", "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME",
1354 <  "AUTOCONN", "T_BLOCK", "BURST_AWAY", "BURST_TOPICWHO", "BYTES", "KBYTES",
1372 <  "MBYTES", "GBYTES", "TBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1352 >  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1353 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1354 >  "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1355    "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1356    "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1357    "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1358 <  "DISABLE_FAKE_CHANNELS", "DISABLE_HIDDEN", "DISABLE_LOCAL_CHANNELS",
1359 <  "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT", "DURATION", "EGDPOOL_PATH",
1360 <  "EMAIL", "ENABLE", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1361 <  "FAILED_OPER_NOTICE", "IRCD_FLAGS", "FLATTEN_LINKS", "GECOS", "GENERAL",
1362 <  "GLINE", "GLINES", "GLINE_EXEMPT", "GLINE_TIME", "GLINE_MIN_CIDR",
1363 <  "GLINE_MIN_CIDR6", "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT",
1364 <  "HAVENT_READ_CONF", "HIDDEN", "HIDDEN_NAME", "HIDE_SERVER_IPS",
1365 <  "HIDE_SERVERS", "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK",
1366 <  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "IP", "KILL",
1367 <  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KLINE_REASON",
1368 <  "KLINE_WITH_REASON", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1369 <  "LINKS_DELAY", "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS",
1370 <  "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1371 <  "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1372 <  "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1373 <  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1374 <  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1375 <  "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1376 <  "NUMBER", "NUMBER_PER_IDENT", "NUMBER_PER_CIDR", "NUMBER_PER_IP",
1377 <  "NUMBER_PER_IP_GLOBAL", "OPERATOR", "OPERS_BYPASS_CALLERID",
1378 <  "OPER_ONLY_UMODES", "OPER_PASS_RESV", "OPER_SPY_T", "OPER_UMODES",
1379 <  "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "PACE_WAIT", "PACE_WAIT_SIMPLE",
1380 <  "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME", "PING_WARNING", "PORT",
1381 <  "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT", "REDIRSERV", "REGEX_T",
1382 <  "REHASH", "TREJECT_HOLD_TIME", "REMOTE", "REMOTEBAN",
1383 <  "RESTRICT_CHANNELS", "RESTRICTED", "RSA_PRIVATE_KEY_FILE",
1384 <  "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE",
1385 <  "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1",
1404 <  "RESV", "RESV_EXEMPT", "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS",
1405 <  "SENDQ", "SEND_PASSWORD", "SERVERHIDE", "SERVERINFO", "IRCD_SID",
1406 <  "TKLINE_EXPIRE_NOTICES", "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD",
1407 <  "SILENT", "SPOOF", "SPOOF_NOTICE", "STATS_E_DISABLED",
1358 >  "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1359 >  "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1360 >  "FAILED_OPER_NOTICE", "FLATTEN_LINKS", "GECOS", "GENERAL", "GLINE",
1361 >  "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT", "GLINE_MIN_CIDR",
1362 >  "GLINE_MIN_CIDR6", "GLINE_REQUEST_DURATION", "GLOBAL_KILL",
1363 >  "HAVENT_READ_CONF", "HIDDEN", "HIDDEN_NAME", "HIDE_IDLE_FROM_OPERS",
1364 >  "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SERVICES", "HIDE_SPOOF_IPS",
1365 >  "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1366 >  "IP", "IRCD_AUTH", "IRCD_FLAGS", "IRCD_SID", "JOIN_FLOOD_COUNT",
1367 >  "JOIN_FLOOD_TIME", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE",
1368 >  "KLINE_EXEMPT", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1369 >  "LINKS_DELAY", "LISTEN", "MASK", "MAX_ACCEPT", "MAX_BANS",
1370 >  "MAX_CHANS_PER_OPER", "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT",
1371 >  "MAX_IDLE", "MAX_LOCAL", "MAX_NICK_CHANGES", "MAX_NICK_LENGTH",
1372 >  "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS", "MAX_TOPIC_LENGTH",
1373 >  "MAX_WATCH", "MIN_IDLE", "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE",
1374 >  "MODULE", "MODULES", "MOTD", "NAME", "NEED_IDENT", "NEED_PASSWORD",
1375 >  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NO_CREATE_ON_SPLIT",
1376 >  "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE", "NUMBER",
1377 >  "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1378 >  "OPER_UMODES", "OPERATOR", "OPERS_BYPASS_CALLERID", "PACE_WAIT",
1379 >  "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME",
1380 >  "PORT", "QSTRING", "RANDOM_IDLE", "REASON", "REDIRPORT", "REDIRSERV",
1381 >  "REHASH", "REMOTE", "REMOTEBAN", "RESV", "RESV_EXEMPT",
1382 >  "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE", "SECONDS", "MINUTES",
1383 >  "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ",
1384 >  "SERVERHIDE", "SERVERINFO", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1385 >  "SQUIT", "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE", "STATS_E_DISABLED",
1386    "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY",
1387 <  "STATS_P_OPER_ONLY", "TBOOL", "TMASKED", "T_REJECT", "TS_MAX_DELTA",
1388 <  "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS", "T_SOFTCALLERID",
1389 <  "T_CALLERID", "T_CCONN", "T_CCONN_FULL", "T_SSL_CIPHER_LIST",
1390 <  "T_CLIENT_FLOOD", "T_DEAF", "T_DEBUG", "T_DLINE", "T_DRONE",
1391 <  "T_EXTERNAL", "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS",
1392 <  "T_MAX_CLIENTS", "T_NCHANGE", "T_OPERWALL", "T_REJ", "T_SERVER",
1393 <  "T_SERVNOTICE", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES", "T_UNAUTH",
1394 <  "T_UNDLINE", "T_UNLIMITED", "T_UNRESV", "T_UNXLINE", "T_GLOBOPS",
1395 <  "T_WALLOP", "T_RESTART", "T_SERVICE", "T_SERVICES_NAME", "THROTTLE_TIME",
1396 <  "TOPICBURST", "TRUE_NO_OPER_FLOOD", "TKLINE", "TXLINE", "TRESV",
1397 <  "UNKLINE", "USER", "USE_EGD", "USE_EXCEPT", "USE_INVEX", "USE_KNOCK",
1398 <  "USE_LOGGING", "USE_WHOIS_ACTUALLY", "VHOST", "VHOST6", "XLINE", "WARN",
1399 <  "WARN_NO_NLINE", "T_SIZE", "T_FILE", "';'", "'}'", "'{'", "'='", "','",
1387 >  "STATS_P_OPER_ONLY", "T_ALL", "T_BOTS", "T_CALLERID", "T_CCONN",
1388 >  "T_CLUSTER", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1389 >  "T_FARCONNECT", "T_FILE", "T_FULL", "T_GLOBOPS", "T_INVISIBLE", "T_IPV4",
1390 >  "T_IPV6", "T_LOCOPS", "T_LOG", "T_MAX_CLIENTS", "T_NCHANGE",
1391 >  "T_NONONREG", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_RESTART", "T_SERVER",
1392 >  "T_SERVICE", "T_SERVICES_NAME", "T_SERVNOTICE", "T_SET", "T_SHARED",
1393 >  "T_SIZE", "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL",
1394 >  "T_SSL_CIPHER_LIST", "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD",
1395 >  "T_SSLV3", "T_TLSV1", "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED",
1396 >  "T_UNRESV", "T_UNXLINE", "T_WALLOP", "T_WALLOPS", "T_WEBIRC", "TBOOL",
1397 >  "THROTTLE_TIME", "TKLINE_EXPIRE_NOTICES", "TMASKED",
1398 >  "TRUE_NO_OPER_FLOOD", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "TYPE",
1399 >  "UNKLINE", "USE_EGD", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1400 >  "WARN_NO_NLINE", "XLINE", "';'", "'}'", "'{'", "'='", "','", "':'",
1401    "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1402    "sizespec", "modules_entry", "modules_items", "modules_item",
1403    "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
# Line 1430 | Line 1409 | static const char *const yytname[] =
1409    "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1410    "serverinfo_description", "serverinfo_network_name",
1411    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1412 <  "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1413 <  "admin_item", "admin_name", "admin_email", "admin_description",
1414 <  "logging_entry", "logging_items", "logging_item", "logging_use_logging",
1415 <  "logging_file_entry", "$@1", "logging_file_items", "logging_file_item",
1416 <  "logging_file_name", "logging_file_size", "logging_file_type", "$@2",
1417 <  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@3",
1412 >  "serverinfo_max_clients", "serverinfo_max_nick_length",
1413 >  "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1414 >  "admin_items", "admin_item", "admin_name", "admin_email",
1415 >  "admin_description", "motd_entry", "$@1", "motd_items", "motd_item",
1416 >  "motd_mask", "motd_file", "logging_entry", "logging_items",
1417 >  "logging_item", "logging_use_logging", "logging_file_entry", "$@2",
1418 >  "logging_file_items", "logging_file_item", "logging_file_name",
1419 >  "logging_file_size", "logging_file_type", "$@3",
1420 >  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@4",
1421    "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1422    "oper_encrypted", "oper_rsa_public_key_file", "oper_class",
1423 <  "oper_umodes", "$@4", "oper_umodes_items", "oper_umodes_item",
1424 <  "oper_flags", "$@5", "oper_flags_items", "oper_flags_item",
1425 <  "class_entry", "$@6", "class_items", "class_item", "class_name",
1426 <  "class_ping_time", "class_ping_warning", "class_number_per_ip",
1427 <  "class_connectfreq", "class_max_number", "class_max_global",
1428 <  "class_max_local", "class_max_ident", "class_sendq",
1423 >  "oper_umodes", "$@5", "oper_umodes_items", "oper_umodes_item",
1424 >  "oper_flags", "$@6", "oper_flags_items", "oper_flags_item",
1425 >  "class_entry", "$@7", "class_items", "class_item", "class_name",
1426 >  "class_ping_time", "class_number_per_ip", "class_connectfreq",
1427 >  "class_max_number", "class_max_global", "class_max_local",
1428 >  "class_max_ident", "class_sendq", "class_recvq",
1429    "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1430 <  "class_number_per_cidr", "listen_entry", "$@7", "listen_flags", "$@8",
1431 <  "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1432 <  "listen_port", "$@9", "port_items", "port_item", "listen_address",
1433 <  "listen_host", "auth_entry", "$@10", "auth_items", "auth_item",
1434 <  "auth_user", "auth_passwd", "auth_class", "auth_encrypted", "auth_flags",
1435 <  "$@11", "auth_flags_items", "auth_flags_item", "auth_spoof",
1436 <  "auth_redir_serv", "auth_redir_port", "resv_entry", "$@12", "resv_items",
1437 <  "resv_item", "resv_creason", "resv_channel", "resv_nick",
1438 <  "service_entry", "service_items", "service_item", "service_name",
1439 <  "shared_entry", "$@13", "shared_items", "shared_item", "shared_name",
1440 <  "shared_user", "shared_type", "$@14", "shared_types", "shared_type_item",
1441 <  "cluster_entry", "$@15", "cluster_items", "cluster_item", "cluster_name",
1442 <  "cluster_type", "$@16", "cluster_types", "cluster_type_item",
1443 <  "connect_entry", "$@17", "connect_items", "connect_item", "connect_name",
1430 >  "class_number_per_cidr", "class_min_idle", "class_max_idle",
1431 >  "class_flags", "$@8", "class_flags_items", "class_flags_item",
1432 >  "listen_entry", "$@9", "listen_flags", "$@10", "listen_flags_items",
1433 >  "listen_flags_item", "listen_items", "listen_item", "listen_port",
1434 >  "$@11", "port_items", "port_item", "listen_address", "listen_host",
1435 >  "auth_entry", "$@12", "auth_items", "auth_item", "auth_user",
1436 >  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@13",
1437 >  "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1438 >  "auth_redir_port", "resv_entry", "$@14", "resv_items", "resv_item",
1439 >  "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1440 >  "service_items", "service_item", "service_name", "shared_entry", "$@15",
1441 >  "shared_items", "shared_item", "shared_name", "shared_user",
1442 >  "shared_type", "$@16", "shared_types", "shared_type_item",
1443 >  "cluster_entry", "$@17", "cluster_items", "cluster_item", "cluster_name",
1444 >  "cluster_type", "$@18", "cluster_types", "cluster_type_item",
1445 >  "connect_entry", "$@19", "connect_items", "connect_item", "connect_name",
1446    "connect_host", "connect_vhost", "connect_send_password",
1447    "connect_accept_password", "connect_port", "connect_aftype",
1448 <  "connect_flags", "$@18", "connect_flags_items", "connect_flags_item",
1448 >  "connect_flags", "$@20", "connect_flags_items", "connect_flags_item",
1449    "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1450 <  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@19",
1451 <  "kill_type", "$@20", "kill_type_items", "kill_type_item", "kill_items",
1452 <  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@21",
1453 <  "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1454 <  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@22",
1455 <  "gecos_flags", "$@23", "gecos_flags_items", "gecos_flags_item",
1456 <  "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1457 <  "general_entry", "general_items", "general_item", "general_max_watch",
1458 <  "general_gline_min_cidr", "general_gline_min_cidr6",
1459 <  "general_use_whois_actually", "general_reject_hold_time",
1460 <  "general_tkline_expire_notices", "general_kill_chase_time_limit",
1461 <  "general_hide_spoof_ips", "general_ignore_bogus_ts",
1462 <  "general_disable_remote_commands", "general_failed_oper_notice",
1463 <  "general_anti_nick_flood", "general_max_nick_time",
1464 <  "general_max_nick_changes", "general_max_accept",
1465 <  "general_anti_spam_exit_message_time", "general_ts_warn_delta",
1466 <  "general_ts_max_delta", "general_havent_read_conf",
1467 <  "general_kline_with_reason", "general_kline_reason",
1468 <  "general_invisible_on_connect", "general_warn_no_nline",
1469 <  "general_stats_e_disabled", "general_stats_o_oper_only",
1470 <  "general_stats_P_oper_only", "general_stats_k_oper_only",
1471 <  "general_stats_i_oper_only", "general_pace_wait",
1472 <  "general_caller_id_wait", "general_opers_bypass_callerid",
1489 <  "general_pace_wait_simple", "general_short_motd",
1490 <  "general_no_oper_flood", "general_true_no_oper_flood",
1491 <  "general_oper_pass_resv", "general_message_locale",
1450 >  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@21",
1451 >  "kill_items", "kill_item", "kill_user", "kill_reason", "deny_entry",
1452 >  "$@22", "deny_items", "deny_item", "deny_ip", "deny_reason",
1453 >  "exempt_entry", "exempt_items", "exempt_item", "exempt_ip",
1454 >  "gecos_entry", "$@23", "gecos_items", "gecos_item", "gecos_name",
1455 >  "gecos_reason", "general_entry", "general_items", "general_item",
1456 >  "general_max_watch", "general_gline_enable", "general_gline_duration",
1457 >  "general_gline_request_duration", "general_gline_min_cidr",
1458 >  "general_gline_min_cidr6", "general_tkline_expire_notices",
1459 >  "general_kill_chase_time_limit", "general_hide_spoof_ips",
1460 >  "general_ignore_bogus_ts", "general_disable_remote_commands",
1461 >  "general_failed_oper_notice", "general_anti_nick_flood",
1462 >  "general_max_nick_time", "general_max_nick_changes",
1463 >  "general_max_accept", "general_anti_spam_exit_message_time",
1464 >  "general_ts_warn_delta", "general_ts_max_delta",
1465 >  "general_havent_read_conf", "general_invisible_on_connect",
1466 >  "general_warn_no_nline", "general_stats_e_disabled",
1467 >  "general_stats_o_oper_only", "general_stats_P_oper_only",
1468 >  "general_stats_k_oper_only", "general_stats_i_oper_only",
1469 >  "general_pace_wait", "general_caller_id_wait",
1470 >  "general_opers_bypass_callerid", "general_pace_wait_simple",
1471 >  "general_short_motd", "general_no_oper_flood",
1472 >  "general_true_no_oper_flood", "general_oper_pass_resv",
1473    "general_dots_in_ident", "general_max_targets", "general_use_egd",
1474    "general_egdpool_path", "general_services_name", "general_ping_cookie",
1475    "general_disable_auth", "general_throttle_time", "general_oper_umodes",
1476    "$@24", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1477    "$@25", "umode_items", "umode_item", "general_min_nonwildcard",
1478    "general_min_nonwildcard_simple", "general_default_floodcount",
1498  "general_client_flood", "gline_entry", "$@26", "gline_items",
1499  "gline_item", "gline_enable", "gline_duration", "gline_logging", "$@27",
1500  "gline_logging_types", "gline_logging_type_item", "gline_user",
1501  "gline_server", "gline_action", "$@28", "gdeny_types", "gdeny_type_item",
1479    "channel_entry", "channel_items", "channel_item",
1480 <  "channel_disable_fake_channels", "channel_restrict_channels",
1504 <  "channel_disable_local_channels", "channel_use_except",
1505 <  "channel_use_invex", "channel_use_knock", "channel_knock_delay",
1480 >  "channel_disable_fake_channels", "channel_knock_delay",
1481    "channel_knock_delay_channel", "channel_max_chans_per_user",
1482 <  "channel_quiet_on_ban", "channel_max_bans",
1482 >  "channel_max_chans_per_oper", "channel_max_bans",
1483    "channel_default_split_user_count", "channel_default_split_server_count",
1484    "channel_no_create_on_split", "channel_no_join_on_split",
1485 <  "channel_burst_topicwho", "channel_jflood_count", "channel_jflood_time",
1486 <  "serverhide_entry", "serverhide_items", "serverhide_item",
1487 <  "serverhide_flatten_links", "serverhide_hide_servers",
1485 >  "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1486 >  "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1487 >  "serverhide_hide_servers", "serverhide_hide_services",
1488    "serverhide_hidden_name", "serverhide_links_delay", "serverhide_hidden",
1489 <  "serverhide_disable_hidden", "serverhide_hide_server_ips", 0
1489 >  "serverhide_hide_server_ips", YY_NULL
1490   };
1491   #endif
1492  
# Line 1542 | Line 1517 | static const yytype_uint16 yytoknum[] =
1517       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1518       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1519       465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1520 <     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1546 <     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1547 <     495,    59,   125,   123,    61,    44
1520 >     475,   476,   477,    59,   125,   123,    61,    44,    58
1521   };
1522   # endif
1523  
1524   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1525   static const yytype_uint16 yyr1[] =
1526   {
1527 <       0,   246,   247,   247,   248,   248,   248,   248,   248,   248,
1528 <     248,   248,   248,   248,   248,   248,   248,   248,   248,   248,
1529 <     248,   248,   248,   248,   248,   248,   248,   249,   249,   250,
1530 <     250,   250,   250,   250,   250,   251,   251,   252,   252,   252,
1531 <     252,   253,   254,   254,   255,   255,   255,   256,   257,   258,
1532 <     259,   259,   260,   260,   260,   260,   260,   260,   260,   260,
1533 <     260,   260,   260,   260,   260,   260,   260,   260,   261,   262,
1534 <     263,   263,   264,   264,   265,   265,   266,   266,   267,   268,
1535 <     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
1536 <     279,   280,   281,   281,   282,   282,   282,   282,   283,   284,
1537 <     285,   286,   287,   287,   288,   288,   288,   289,   291,   290,
1538 <     292,   292,   293,   293,   293,   293,   294,   295,   295,   297,
1539 <     296,   298,   298,   299,   299,   299,   299,   299,   299,   299,
1540 <     301,   300,   302,   302,   303,   303,   303,   303,   303,   303,
1541 <     303,   303,   303,   304,   305,   306,   307,   308,   309,   311,
1542 <     310,   312,   312,   313,   313,   313,   313,   313,   313,   313,
1543 <     313,   313,   313,   313,   313,   313,   313,   313,   313,   313,
1544 <     313,   313,   313,   315,   314,   316,   316,   317,   317,   317,
1545 <     317,   317,   317,   317,   317,   317,   317,   317,   317,   317,
1546 <     317,   317,   317,   317,   317,   319,   318,   320,   320,   321,
1547 <     321,   321,   321,   321,   321,   321,   321,   321,   321,   321,
1548 <     321,   321,   321,   322,   323,   324,   325,   326,   327,   328,
1549 <     329,   330,   331,   332,   333,   334,   336,   335,   338,   337,
1550 <     339,   339,   340,   340,   340,   341,   341,   342,   342,   342,
1551 <     342,   342,   344,   343,   345,   345,   346,   346,   347,   348,
1552 <     350,   349,   351,   351,   352,   352,   352,   352,   352,   352,
1553 <     352,   352,   352,   353,   354,   355,   356,   358,   357,   359,
1554 <     359,   360,   360,   360,   360,   360,   360,   360,   360,   360,
1555 <     361,   362,   363,   365,   364,   366,   366,   367,   367,   367,
1556 <     367,   368,   369,   370,   371,   372,   372,   373,   373,   374,
1557 <     376,   375,   377,   377,   378,   378,   378,   378,   379,   380,
1558 <     382,   381,   383,   383,   384,   384,   384,   384,   384,   384,
1559 <     384,   384,   384,   384,   386,   385,   387,   387,   388,   388,
1560 <     388,   389,   391,   390,   392,   392,   393,   393,   393,   393,
1561 <     393,   393,   393,   393,   393,   393,   395,   394,   396,   396,
1562 <     397,   397,   397,   397,   397,   397,   397,   397,   397,   397,
1563 <     397,   397,   397,   397,   398,   399,   400,   401,   402,   403,
1564 <     404,   404,   406,   405,   407,   407,   408,   408,   408,   408,
1565 <     409,   410,   411,   412,   413,   415,   414,   417,   416,   418,
1566 <     418,   419,   420,   420,   421,   421,   421,   421,   422,   423,
1567 <     425,   424,   426,   426,   427,   427,   427,   428,   429,   430,
1568 <     431,   431,   432,   432,   433,   435,   434,   437,   436,   438,
1569 <     438,   439,   440,   440,   441,   441,   441,   441,   442,   443,
1570 <     444,   445,   445,   446,   446,   446,   446,   446,   446,   446,
1571 <     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
1572 <     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
1573 <     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
1574 <     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
1575 <     446,   446,   446,   446,   446,   447,   448,   449,   450,   451,
1576 <     452,   453,   454,   455,   456,   457,   458,   459,   460,   461,
1577 <     462,   463,   464,   465,   466,   467,   468,   469,   470,   471,
1578 <     472,   473,   473,   474,   474,   475,   476,   477,   478,   479,
1579 <     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
1580 <     490,   491,   493,   492,   494,   494,   495,   495,   495,   495,
1581 <     495,   495,   495,   495,   495,   495,   495,   495,   495,   495,
1582 <     495,   495,   495,   495,   495,   495,   497,   496,   498,   498,
1583 <     499,   499,   499,   499,   499,   499,   499,   499,   499,   499,
1584 <     499,   499,   499,   499,   499,   499,   499,   499,   499,   499,
1585 <     500,   501,   502,   503,   505,   504,   506,   506,   507,   507,
1586 <     507,   507,   507,   507,   507,   508,   509,   511,   510,   512,
1587 <     512,   513,   513,   514,   515,   517,   516,   518,   518,   519,
1588 <     519,   520,   521,   521,   522,   522,   522,   522,   522,   522,
1589 <     522,   522,   522,   522,   522,   522,   522,   522,   522,   522,
1590 <     522,   522,   522,   523,   524,   525,   526,   527,   528,   529,
1591 <     530,   531,   532,   533,   534,   535,   536,   537,   538,   539,
1619 <     540,   541,   542,   542,   543,   543,   543,   543,   543,   543,
1620 <     543,   543,   544,   545,   546,   547,   548,   549,   550
1527 >       0,   229,   230,   230,   231,   231,   231,   231,   231,   231,
1528 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1529 >     231,   231,   231,   231,   231,   231,   231,   232,   232,   233,
1530 >     233,   233,   233,   233,   233,   233,   233,   234,   234,   235,
1531 >     235,   235,   235,   236,   237,   237,   238,   238,   238,   239,
1532 >     240,   241,   242,   242,   243,   243,   243,   243,   243,   243,
1533 >     243,   243,   243,   243,   243,   243,   243,   243,   243,   243,
1534 >     243,   243,   244,   245,   246,   246,   247,   247,   248,   248,
1535 >     249,   249,   250,   251,   252,   253,   254,   255,   256,   257,
1536 >     258,   259,   260,   261,   262,   263,   264,   265,   266,   266,
1537 >     267,   267,   267,   267,   268,   269,   270,   272,   271,   273,
1538 >     273,   274,   274,   274,   275,   276,   277,   278,   278,   279,
1539 >     279,   279,   280,   282,   281,   283,   283,   284,   284,   284,
1540 >     284,   285,   286,   286,   288,   287,   289,   289,   290,   290,
1541 >     290,   290,   290,   290,   290,   292,   291,   293,   293,   294,
1542 >     294,   294,   294,   294,   294,   294,   294,   294,   295,   296,
1543 >     297,   298,   299,   300,   302,   301,   303,   303,   304,   304,
1544 >     304,   304,   304,   304,   304,   304,   304,   304,   304,   304,
1545 >     304,   304,   304,   304,   304,   304,   304,   304,   304,   306,
1546 >     305,   307,   307,   308,   308,   308,   308,   308,   308,   308,
1547 >     308,   308,   308,   308,   308,   308,   308,   308,   308,   308,
1548 >     308,   308,   308,   308,   308,   308,   310,   309,   311,   311,
1549 >     312,   312,   312,   312,   312,   312,   312,   312,   312,   312,
1550 >     312,   312,   312,   312,   312,   312,   312,   313,   314,   315,
1551 >     316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
1552 >     326,   327,   329,   328,   330,   330,   331,   331,   333,   332,
1553 >     335,   334,   336,   336,   337,   337,   337,   338,   338,   339,
1554 >     339,   339,   339,   339,   341,   340,   342,   342,   343,   343,
1555 >     344,   345,   347,   346,   348,   348,   349,   349,   349,   349,
1556 >     349,   349,   349,   349,   349,   350,   351,   352,   353,   355,
1557 >     354,   356,   356,   357,   357,   357,   357,   357,   357,   357,
1558 >     357,   357,   357,   358,   359,   360,   362,   361,   363,   363,
1559 >     364,   364,   364,   364,   365,   366,   367,   368,   369,   369,
1560 >     370,   370,   371,   373,   372,   374,   374,   375,   375,   375,
1561 >     375,   376,   377,   379,   378,   380,   380,   381,   381,   381,
1562 >     381,   381,   381,   381,   381,   381,   381,   383,   382,   384,
1563 >     384,   385,   385,   385,   386,   388,   387,   389,   389,   390,
1564 >     390,   390,   390,   390,   390,   390,   390,   390,   390,   392,
1565 >     391,   393,   393,   394,   394,   394,   394,   394,   394,   394,
1566 >     394,   394,   394,   394,   394,   394,   394,   395,   396,   397,
1567 >     398,   399,   400,   401,   401,   403,   402,   404,   404,   405,
1568 >     405,   406,   407,   408,   409,   410,   412,   411,   413,   413,
1569 >     414,   414,   414,   415,   416,   418,   417,   419,   419,   420,
1570 >     420,   420,   421,   422,   423,   424,   424,   425,   425,   426,
1571 >     428,   427,   429,   429,   430,   430,   430,   431,   432,   433,
1572 >     434,   434,   435,   435,   435,   435,   435,   435,   435,   435,
1573 >     435,   435,   435,   435,   435,   435,   435,   435,   435,   435,
1574 >     435,   435,   435,   435,   435,   435,   435,   435,   435,   435,
1575 >     435,   435,   435,   435,   435,   435,   435,   435,   435,   435,
1576 >     435,   435,   435,   435,   435,   435,   435,   435,   435,   435,
1577 >     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1578 >     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1579 >     455,   456,   457,   458,   459,   460,   461,   461,   462,   462,
1580 >     463,   464,   465,   466,   467,   468,   469,   470,   471,   472,
1581 >     473,   474,   475,   476,   477,   478,   480,   479,   481,   481,
1582 >     482,   482,   482,   482,   482,   482,   482,   482,   482,   482,
1583 >     482,   482,   482,   482,   482,   482,   482,   482,   482,   482,
1584 >     482,   484,   483,   485,   485,   486,   486,   486,   486,   486,
1585 >     486,   486,   486,   486,   486,   486,   486,   486,   486,   486,
1586 >     486,   486,   486,   486,   486,   486,   487,   488,   489,   490,
1587 >     491,   491,   492,   492,   492,   492,   492,   492,   492,   492,
1588 >     492,   492,   492,   492,   492,   493,   494,   495,   496,   497,
1589 >     498,   499,   500,   501,   502,   503,   504,   505,   506,   506,
1590 >     507,   507,   507,   507,   507,   507,   507,   507,   508,   509,
1591 >     510,   511,   512,   513,   514
1592   };
1593  
1594   /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
# Line 1626 | Line 1597 | static const yytype_uint8 yyr2[] =
1597         0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1598         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1599         1,     1,     1,     1,     1,     2,     2,     0,     1,     2,
1600 <       3,     3,     3,     3,     3,     0,     1,     2,     3,     3,
1601 <       3,     5,     2,     1,     1,     1,     2,     4,     4,     5,
1602 <       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1632 <       1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
1633 <       3,     1,     1,     1,     3,     1,     1,     1,     4,     4,
1634 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1635 <       4,     5,     2,     1,     1,     1,     1,     2,     4,     4,
1636 <       4,     5,     2,     1,     1,     1,     2,     4,     0,     6,
1637 <       2,     1,     1,     1,     1,     2,     4,     4,     4,     0,
1638 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1639 <       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
1640 <       1,     1,     2,     4,     4,     4,     4,     4,     4,     0,
1641 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1642 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1643 <       1,     1,     1,     0,     5,     3,     1,     1,     1,     1,
1600 >       3,     3,     3,     3,     3,     3,     3,     0,     1,     2,
1601 >       3,     3,     3,     5,     2,     1,     1,     1,     2,     4,
1602 >       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1603         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1604 +       1,     2,     4,     4,     3,     1,     1,     1,     3,     1,
1605 +       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
1606 +       4,     4,     4,     4,     4,     4,     4,     5,     2,     1,
1607 +       1,     1,     1,     2,     4,     4,     4,     0,     6,     2,
1608 +       1,     1,     1,     2,     4,     4,     5,     2,     1,     1,
1609 +       1,     2,     4,     0,     6,     2,     1,     1,     1,     1,
1610 +       2,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1611         1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1612 +       1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
1613 +       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1614         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1615 <       1,     1,     2,     4,     4,     4,     4,     4,     4,     4,
1616 <       4,     4,     4,     4,     4,     4,     0,     6,     0,     5,
1649 <       3,     1,     1,     1,     1,     2,     1,     1,     1,     1,
1650 <       1,     2,     0,     5,     3,     1,     1,     3,     4,     4,
1651 <       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
1652 <       1,     1,     2,     4,     4,     4,     4,     0,     5,     3,
1615 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1616 >       5,     3,     1,     3,     1,     3,     1,     3,     1,     1,
1617         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1654       4,     4,     4,     0,     6,     2,     1,     1,     1,     1,
1655       2,     4,     4,     4,     5,     2,     1,     1,     1,     4,
1656       0,     6,     2,     1,     1,     1,     1,     2,     4,     4,
1657       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
1658       1,     1,     1,     1,     0,     6,     2,     1,     1,     1,
1659       2,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1618         1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
1619         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1620 <       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
1621 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1622 <       4,     4,     4,     4,     4,     0,     6,     0,     5,     3,
1623 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1620 >       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
1621 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1622 >       4,     4,     0,     5,     3,     1,     1,     1,     0,     6,
1623 >       0,     5,     3,     1,     1,     1,     1,     2,     1,     1,
1624 >       1,     1,     1,     2,     0,     5,     3,     1,     1,     3,
1625 >       4,     4,     0,     6,     2,     1,     1,     1,     1,     1,
1626 >       1,     1,     1,     1,     2,     4,     4,     4,     4,     0,
1627 >       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1628 >       1,     1,     1,     4,     4,     4,     0,     6,     2,     1,
1629 >       1,     1,     1,     2,     4,     4,     4,     5,     2,     1,
1630 >       1,     1,     4,     0,     6,     2,     1,     1,     1,     1,
1631 >       2,     4,     4,     0,     5,     3,     1,     1,     1,     1,
1632 >       1,     1,     1,     1,     1,     1,     1,     0,     6,     2,
1633 >       1,     1,     1,     2,     4,     0,     5,     3,     1,     1,
1634 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1635 >       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1636 >       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
1637 >       4,     4,     4,     4,     4,     0,     5,     3,     1,     1,
1638 >       1,     4,     4,     4,     4,     4,     0,     6,     2,     1,
1639 >       1,     1,     1,     4,     4,     0,     6,     2,     1,     1,
1640 >       1,     1,     4,     4,     5,     2,     1,     1,     1,     4,
1641         0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
1642 <       2,     1,     1,     1,     4,     0,     6,     0,     5,     3,
1668 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1669 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1642 >       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1643         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1644         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1645         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1646         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1647 <       1,     1,     1,     1,     1,     4,     4,     4,     4,     4,
1647 >       1,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1648         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1649         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1650         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1651 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1679 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1680 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1681 <       1,     1,     1,     1,     1,     1,     0,     5,     3,     1,
1651 >       4,     4,     4,     4,     4,     4,     0,     5,     3,     1,
1652         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1653         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1654 <       4,     4,     4,     4,     0,     6,     2,     1,     1,     1,
1685 <       1,     1,     1,     1,     1,     4,     4,     0,     5,     3,
1686 <       1,     1,     1,     4,     4,     0,     5,     3,     1,     1,
1687 <       1,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1654 >       1,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1655         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1656 <       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
1657 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1658 <       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1659 <       1,     1,     4,     4,     4,     4,     4,     4,     4
1656 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     5,
1657 >       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1658 >       1,     1,     1,     1,     1,     4,     4,     4,     4,     4,
1659 >       4,     4,     4,     4,     4,     4,     4,     5,     2,     1,
1660 >       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
1661 >       4,     4,     4,     4,     4
1662   };
1663  
1664   /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
# Line 1697 | Line 1666 | static const yytype_uint8 yyr2[] =
1666     means the default is an error.  */
1667   static const yytype_uint16 yydefact[] =
1668   {
1669 <       2,     0,     1,     0,     0,     0,   195,   346,   400,     0,
1670 <     415,     0,   584,   250,   385,   226,     0,     0,   130,   283,
1671 <       0,     0,   300,   324,     0,     3,    24,    11,     4,     5,
1672 <       6,     8,     9,    10,    13,    14,    15,    16,    17,    18,
1673 <      19,    20,    23,    21,    22,     7,    12,    25,    26,     0,
1669 >       2,     0,     1,     0,     0,     0,   216,   379,   425,     0,
1670 >     440,     0,   282,   416,   258,     0,   107,   145,   316,     0,
1671 >       0,   357,     0,     0,   333,     3,    23,    11,     4,    24,
1672 >       5,     6,     8,     9,    10,    13,    14,    15,    16,    17,
1673 >      18,    19,    20,    22,    21,     7,    12,    25,    26,     0,
1674         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1675         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1676 <       0,     0,     0,     0,     0,    93,    94,    96,    95,   632,
1676 >       0,     0,     0,     0,     0,    99,   100,   102,   101,   614,
1677         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1678 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   613,
1679 <     631,   626,   614,   615,   616,   617,   619,   620,   621,   622,
1680 <     618,   623,   624,   625,   627,   628,   629,   630,     0,     0,
1712 <       0,   413,     0,     0,   411,   412,     0,   484,     0,     0,
1678 >       0,     0,     0,   601,   613,   603,   604,   605,   606,   602,
1679 >     607,   608,   609,   610,   611,   612,     0,     0,     0,   438,
1680 >       0,     0,   436,   437,     0,   500,     0,     0,     0,     0,
1681         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1682         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1683 <       0,     0,     0,     0,     0,     0,   556,     0,   532,     0,
1683 >       0,     0,     0,   571,     0,   546,     0,     0,     0,     0,
1684         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1685 +       0,     0,     0,     0,     0,   451,   498,   492,   493,   494,
1686 +     495,   496,   491,   462,   452,   453,   486,   454,   455,   456,
1687 +     457,   458,   459,   460,   461,   488,   463,   464,   497,   466,
1688 +     471,   467,   469,   468,   481,   482,   470,   472,   473,   474,
1689 +     475,   465,   477,   478,   479,   499,   489,   490,   487,   480,
1690 +     476,   484,   485,   483,     0,     0,     0,     0,     0,     0,
1691 +       0,    45,    46,    47,     0,     0,     0,   637,     0,     0,
1692 +       0,     0,     0,     0,     0,     0,   629,   630,   631,   632,
1693 +     635,   633,   634,   636,     0,     0,     0,     0,     0,     0,
1694         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1695 <     432,   482,   477,   478,   479,   480,   476,   443,   433,   434,
1696 <     470,   435,   436,   437,   438,   439,   440,   441,   442,   473,
1697 <     444,   445,   446,   447,   481,   449,   454,   450,   452,   451,
1698 <     465,   466,   453,   455,   456,   457,   458,   459,   448,   461,
1699 <     462,   463,   483,   474,   475,   472,   464,   460,   468,   469,
1700 <     467,   471,     0,     0,     0,     0,     0,     0,     0,   103,
1724 <     104,   105,     0,     0,     0,     0,     0,    43,    44,    45,
1725 <       0,     0,   661,     0,     0,     0,     0,     0,     0,     0,
1726 <       0,   653,   654,   655,   659,   656,   658,   657,   660,     0,
1695 >       0,     0,     0,    53,    68,    69,    67,    64,    63,    70,
1696 >      54,    66,    57,    58,    59,    55,    65,    60,    61,    62,
1697 >      56,     0,     0,     0,     0,   118,   119,   120,     0,   331,
1698 >       0,     0,   329,   330,     0,   103,     0,     0,     0,     0,
1699 >      98,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1700 >       0,     0,     0,     0,   600,     0,     0,     0,     0,   252,
1701         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1702 <       0,     0,     0,     0,     0,     0,    51,    64,    65,    63,
1703 <      60,    59,    66,    52,    62,    55,    56,    57,    53,    61,
1704 <      58,    54,     0,     0,   298,     0,     0,   296,   297,    97,
1705 <       0,     0,     0,     0,    92,     0,     0,     0,     0,     0,
1702 >       0,     0,     0,   219,   220,   223,   225,   226,   227,   228,
1703 >     229,   230,   231,   232,   221,   222,   224,   233,   234,   235,
1704 >       0,     0,     0,     0,     0,     0,     0,   405,     0,     0,
1705 >       0,     0,     0,     0,     0,   382,   383,   384,   385,   386,
1706 >     387,   389,   388,   391,   395,   392,   393,   394,   390,   431,
1707 >       0,     0,     0,   428,   429,   430,     0,     0,   435,   446,
1708 >       0,     0,     0,   443,   444,   445,     0,     0,     0,     0,
1709         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1733       0,     0,     0,     0,   612,     0,     0,     0,     0,     0,
1710         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1735     198,   199,   202,   203,   205,   206,   207,   208,   209,   210,
1736     211,   200,   201,   204,     0,     0,     0,     0,     0,   372,
1737       0,     0,     0,     0,     0,     0,     0,     0,     0,   349,
1738     350,   351,   352,   353,   354,   356,   355,   358,   362,   359,
1739     360,   361,   357,   406,     0,     0,     0,   403,   404,   405,
1740       0,     0,   410,   427,     0,     0,   417,   426,     0,   423,
1741     424,   425,     0,     0,     0,     0,     0,     0,     0,     0,
1711         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1712         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1713 +       0,     0,     0,     0,     0,   450,     0,     0,     0,   299,
1714 +       0,     0,     0,     0,     0,     0,   285,   286,   287,   288,
1715 +     293,   289,   290,   291,   292,   422,     0,     0,     0,   419,
1716 +     420,   421,     0,     0,     0,   260,     0,   270,     0,   268,
1717 +     269,   271,   272,    48,     0,     0,     0,    44,     0,     0,
1718 +       0,     0,   110,   111,   112,     0,     0,     0,   189,     0,
1719 +       0,     0,   164,     0,     0,   148,   149,   150,   151,   154,
1720 +     155,   153,   152,   156,     0,     0,     0,     0,     0,   319,
1721 +     320,   321,   322,     0,     0,     0,     0,     0,     0,     0,
1722 +       0,   628,    71,     0,     0,     0,     0,     0,     0,     0,
1723         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1724 +       0,    52,     0,     0,   365,     0,   360,   361,   362,   121,
1725 +       0,     0,   117,     0,     0,     0,   328,     0,     0,   343,
1726 +       0,     0,   336,   337,   338,   339,     0,     0,     0,    97,
1727 +       0,     0,     0,     0,    27,     0,     0,     0,     0,     0,
1728 +       0,     0,     0,   599,   236,     0,     0,     0,     0,     0,
1729         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1730 <       0,     0,     0,     0,   431,   594,   605,     0,     0,   597,
1731 <       0,     0,     0,   587,   588,   589,   590,   591,   592,   593,
1732 <       0,     0,     0,   267,     0,     0,     0,     0,     0,     0,
1749 <     253,   254,   255,   256,   261,   257,   258,   259,   260,   397,
1750 <       0,   387,     0,   396,     0,   393,   394,   395,     0,   228,
1751 <       0,     0,     0,   238,     0,   236,   237,   239,   240,   106,
1752 <       0,     0,   102,     0,    46,     0,     0,     0,    42,     0,
1753 <       0,     0,   173,     0,     0,     0,   149,     0,     0,   133,
1754 <     134,   135,   136,   139,   140,   138,   137,   141,     0,     0,
1755 <       0,     0,     0,   286,   287,   288,   289,     0,     0,     0,
1756 <       0,     0,     0,     0,     0,   652,    67,     0,     0,     0,
1730 >       0,     0,   218,   396,     0,     0,     0,     0,     0,     0,
1731 >       0,     0,     0,     0,     0,     0,     0,     0,   381,     0,
1732 >       0,     0,   427,     0,   434,     0,     0,     0,   442,     0,
1733         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1758       0,     0,     0,    50,     0,     0,   310,     0,     0,   303,
1759     304,   305,   306,     0,     0,   332,     0,   327,   328,   329,
1760       0,     0,   295,     0,     0,     0,    91,     0,     0,     0,
1761       0,     0,    27,     0,     0,     0,     0,     0,     0,     0,
1762       0,     0,     0,     0,     0,     0,   611,   212,     0,     0,
1734         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1764       0,     0,   197,   363,     0,     0,     0,     0,     0,     0,
1765       0,     0,     0,     0,     0,     0,     0,     0,   348,     0,
1766       0,     0,   402,     0,   409,     0,     0,     0,     0,   422,
1735         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1736         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1737 +       0,     0,     0,     0,     0,     0,     0,     0,     0,   449,
1738 +     294,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1739 +     284,     0,     0,     0,   418,   273,     0,     0,     0,     0,
1740 +       0,   267,     0,     0,    43,   113,     0,     0,     0,   109,
1741 +     157,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1742 +     147,   323,     0,     0,     0,     0,   318,     0,     0,     0,
1743 +       0,     0,     0,     0,   627,     0,     0,     0,     0,     0,
1744 +       0,     0,     0,     0,     0,     0,     0,     0,    76,    77,
1745 +       0,    75,    80,    81,     0,    79,     0,     0,    51,   363,
1746 +       0,     0,     0,   359,     0,   116,     0,     0,   327,   340,
1747 +       0,     0,     0,     0,   335,   106,   105,   104,   622,   621,
1748 +     615,   625,    27,    27,    27,    27,    27,    27,    27,    29,
1749 +      28,   626,   616,   617,   620,   619,   618,   623,   624,     0,
1750         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1751 +       0,     0,     0,    37,     0,     0,   217,     0,     0,     0,
1752         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1753 <       0,     0,     0,     0,     0,     0,    35,     0,     0,     0,
1754 <       0,     0,     0,     0,   430,     0,     0,     0,     0,     0,
1755 <       0,     0,   586,   262,     0,     0,     0,     0,     0,     0,
1756 <       0,     0,     0,   252,     0,     0,     0,     0,   392,   241,
1757 <       0,     0,     0,     0,     0,   235,     0,   101,     0,     0,
1758 <       0,    41,   142,     0,     0,     0,     0,     0,     0,     0,
1759 <       0,     0,   132,   290,     0,     0,     0,     0,   285,     0,
1760 <       0,     0,     0,     0,     0,     0,   651,     0,     0,     0,
1761 <       0,     0,     0,     0,     0,    72,    73,     0,    71,    76,
1762 <      77,     0,    75,     0,     0,     0,     0,     0,    49,   307,
1763 <       0,     0,     0,     0,   302,   330,     0,     0,     0,   326,
1764 <       0,   294,   100,    99,    98,   648,   645,   644,   633,   635,
1765 <      27,    27,    27,    27,    27,    29,    28,   639,   640,   643,
1766 <     641,   646,   647,   649,   650,   642,   634,   636,   637,   638,
1767 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1768 <       0,     0,     0,   196,     0,     0,     0,     0,     0,     0,
1769 <       0,     0,     0,     0,     0,     0,     0,     0,   347,     0,
1770 <       0,   401,   414,     0,     0,     0,   416,   496,   500,   516,
1771 <     582,   530,   494,   524,   527,   495,   486,   487,   503,   492,
1772 <     493,   506,   491,   505,   504,   499,   498,   497,   525,   485,
1773 <     523,   580,   581,   520,   517,   567,   560,   577,   578,   561,
1774 <     562,   563,   564,   572,   565,   575,   579,   568,   573,   569,
1775 <     574,   566,   571,   570,   576,     0,   559,   522,   542,   536,
1776 <     553,   554,   537,   538,   539,   540,   548,   541,   551,   555,
1777 <     544,   549,   545,   550,   543,   547,   546,   552,     0,   535,
1778 <     515,   518,   529,   489,   490,   519,   508,   513,   514,   511,
1779 <     512,   509,   510,   502,   501,    35,    35,    35,    37,    36,
1780 <     583,   528,   531,   521,   526,   488,   507,     0,     0,     0,
1781 <       0,     0,     0,   585,     0,     0,     0,     0,     0,     0,
1782 <       0,     0,   251,     0,     0,     0,   386,     0,     0,     0,
1783 <     246,   242,   245,   227,   107,     0,     0,   119,     0,     0,
1784 <     111,   112,   114,   113,    47,    48,     0,     0,     0,     0,
1785 <       0,     0,     0,     0,   131,     0,     0,     0,   284,   667,
1786 <     662,   666,   664,   668,   663,   665,    84,    90,    82,    86,
1787 <      85,    79,    78,    80,    68,     0,    69,     0,    83,    81,
1788 <      89,    87,    88,     0,     0,     0,   301,     0,     0,   325,
1789 <     299,    30,    31,    32,    33,    34,   223,   224,   217,   219,
1790 <     221,   220,   218,   213,   225,   216,   214,   215,   222,   368,
1791 <     370,   371,   383,   380,   376,   377,   379,   378,     0,   375,
1792 <     365,   381,   382,   364,   369,   367,   384,   366,   407,   408,
1793 <     428,   429,   421,     0,   420,   557,     0,   533,     0,    38,
1794 <      39,    40,   610,   609,     0,   608,   596,   595,   602,   601,
1813 <       0,   600,   604,   603,   265,   266,   275,   272,   277,   274,
1814 <     273,   279,   276,   278,   271,     0,   270,   264,   282,   281,
1815 <     280,   263,   399,   391,     0,   390,   398,   233,   234,   232,
1816 <       0,   231,   249,   248,     0,     0,     0,   115,     0,     0,
1817 <       0,     0,   110,   148,   146,   188,   185,   184,   177,   179,
1818 <     194,   189,   192,   187,   178,   193,   181,   190,   182,   191,
1819 <     186,   180,   183,     0,   176,   143,   145,   147,   159,   153,
1820 <     170,   171,   154,   155,   156,   157,   165,   158,   168,   172,
1821 <     161,   166,   162,   167,   160,   164,   163,   169,     0,   152,
1822 <     144,   292,   293,   291,    70,    74,   308,   314,   320,   323,
1823 <     316,   322,   317,   321,   319,   315,   318,     0,   313,   309,
1824 <     331,   336,   342,   345,   338,   344,   339,   343,   341,   337,
1825 <     340,     0,   335,   373,     0,   418,     0,   558,   534,   606,
1826 <       0,   598,     0,   268,     0,   388,     0,   229,     0,   247,
1827 <     244,   243,     0,     0,     0,     0,   109,   174,     0,   150,
1828 <       0,   311,     0,   333,     0,   374,   419,   607,   599,   269,
1829 <     389,   230,   116,   125,   128,   127,   124,   129,   126,   123,
1830 <       0,   122,   118,   117,   175,   151,   312,   334,   120,     0,
1831 <     121
1753 >       0,   380,     0,     0,   426,   439,     0,     0,   441,   513,
1754 >     517,   531,   598,   544,   511,   538,   541,   512,   503,   502,
1755 >     505,   506,   504,   520,   509,   510,   521,   508,   516,   515,
1756 >     514,   539,   501,   596,   597,   535,   581,   575,   592,   576,
1757 >     577,   578,   586,   595,   579,   589,   593,   582,   594,   587,
1758 >     583,   588,   580,   591,   585,   584,   590,     0,   574,   537,
1759 >     555,   550,   567,   551,   552,   553,   561,   570,   554,   564,
1760 >     568,   557,   569,   562,   558,   563,   556,   566,   560,   559,
1761 >     565,     0,   549,   532,   530,   533,   543,   534,   523,   528,
1762 >     529,   526,   527,   524,   525,   542,   545,   507,   536,   519,
1763 >     518,   540,   522,     0,     0,     0,     0,     0,     0,     0,
1764 >       0,   283,     0,     0,   417,     0,     0,     0,   278,   274,
1765 >     277,   259,    49,    50,     0,     0,   108,     0,     0,     0,
1766 >       0,     0,     0,     0,     0,   146,     0,     0,     0,   317,
1767 >     638,   643,   641,   644,   639,   640,   642,    88,    96,    87,
1768 >      94,    95,    86,    90,    89,    83,    82,    84,    93,    85,
1769 >      72,     0,    73,     0,    91,    92,     0,     0,   358,   122,
1770 >       0,     0,     0,   134,     0,   126,   127,   129,   128,   332,
1771 >       0,     0,     0,   334,    30,    31,    32,    33,    34,    35,
1772 >      36,   247,   248,   240,   257,   256,     0,   255,   242,   244,
1773 >     251,   243,   241,   250,   237,   249,   239,   238,    37,    37,
1774 >      37,    39,    38,   245,   246,   401,   403,   404,   414,   411,
1775 >     398,   412,   409,   410,     0,   408,   413,   397,   402,   400,
1776 >     415,   399,   432,   433,   447,   448,   572,     0,   547,     0,
1777 >     297,   298,   307,   304,   309,   305,   306,   312,   308,   310,
1778 >     303,   311,     0,   302,   296,   315,   314,   313,   295,   424,
1779 >     423,   281,   280,   265,   266,   264,     0,   263,     0,     0,
1780 >       0,   114,   115,   163,   161,   208,   196,   205,   204,   194,
1781 >     199,   215,   207,   213,   198,   201,   210,   212,   209,   206,
1782 >     214,   202,   211,   200,   203,     0,   192,   158,   160,   162,
1783 >     173,   168,   185,   169,   170,   171,   179,   188,   172,   182,
1784 >     186,   175,   187,   180,   176,   181,   174,   184,   178,   177,
1785 >     183,     0,   167,   159,   326,   324,   325,    74,    78,   364,
1786 >     369,   375,   378,   371,   377,   372,   376,   374,   370,   373,
1787 >       0,   368,   130,     0,     0,     0,     0,   125,   341,   347,
1788 >     353,   356,   349,   355,   350,   354,   352,   348,   351,     0,
1789 >     346,   342,   253,     0,    40,    41,    42,   406,     0,   573,
1790 >     548,   300,     0,   261,     0,   279,   276,   275,     0,     0,
1791 >       0,   190,     0,   165,     0,   366,     0,     0,     0,     0,
1792 >       0,   124,   344,     0,   254,   407,   301,   262,   195,   193,
1793 >     197,   191,   166,   367,   131,   133,   132,   140,   143,   142,
1794 >     139,   144,   141,   138,     0,   137,   345,   135,     0,   136
1795   };
1796  
1797   /* YYDEFGOTO[NTERM-NUM].  */
1798   static const yytype_int16 yydefgoto[] =
1799   {
1800 <      -1,     1,    25,   835,   836,   978,   979,    26,   246,   247,
1801 <     248,   249,    27,   285,   286,   287,   288,   797,   798,   801,
1802 <     802,   289,   290,   291,   292,   293,   294,   295,   296,   297,
1803 <     298,   299,   300,   301,    28,    74,    75,    76,    77,    78,
1804 <      29,   238,   239,   240,   241,   242,  1019,  1020,  1021,  1022,
1805 <    1023,  1169,  1300,  1301,    30,    63,   538,   539,   540,   541,
1806 <     542,   543,   544,   545,   546,   769,  1218,  1219,   547,   765,
1807 <    1193,  1194,    31,    51,   349,   350,   351,   352,   353,   354,
1808 <     355,   356,   357,   358,   359,   360,   361,   362,   363,    32,
1809 <      60,   513,   750,  1160,  1161,   514,   515,   516,  1166,  1011,
1810 <    1012,   517,   518,    33,    58,   489,   490,   491,   492,   493,
1811 <     494,   495,   736,  1145,  1146,   496,   497,   498,    34,    64,
1812 <     552,   553,   554,   555,   556,    35,   306,   307,   308,    36,
1813 <      67,   588,   589,   590,   591,   592,   811,  1237,  1238,    37,
1814 <      68,   596,   597,   598,   599,   817,  1251,  1252,    38,    52,
1815 <     378,   379,   380,   381,   382,   383,   384,   385,   386,   387,
1816 <     648,  1098,  1099,   388,   389,   390,   391,   392,    39,    59,
1817 <     503,   745,  1154,  1155,   504,   505,   506,   507,    40,    53,
1818 <     396,   397,   398,   399,    41,   123,   124,   125,    42,    55,
1819 <     407,   667,  1113,  1114,   408,   409,   410,   411,    43,   179,
1820 <     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1821 <     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1822 <     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1823 <     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1824 <     220,   221,   222,   223,   224,   225,   226,   442,   958,   959,
1825 <     227,   440,   935,   936,   228,   229,   230,   231,    44,    57,
1826 <     472,   473,   474,   475,   476,   728,  1130,  1131,   477,   478,
1827 <     479,   725,  1124,  1125,    45,    98,    99,   100,   101,   102,
1828 <     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1866 <     113,   114,   115,   116,   117,    46,   260,   261,   262,   263,
1867 <     264,   265,   266,   267,   268
1800 >      -1,     1,    25,   799,   800,  1051,  1052,    26,   220,   221,
1801 >     222,   223,    27,   262,   263,   264,   265,   760,   761,   764,
1802 >     765,   266,   267,   268,   269,   270,   271,   272,   273,   274,
1803 >     275,   276,   277,   278,   279,   280,    28,    74,    75,    76,
1804 >      77,    78,    29,    61,   491,   492,   493,   494,    30,   284,
1805 >     285,   286,   287,   288,  1014,  1015,  1016,  1017,  1018,  1185,
1806 >    1254,  1255,    31,    62,   504,   505,   506,   507,   508,   509,
1807 >     510,   511,   512,   727,  1161,  1162,   513,   723,  1135,  1136,
1808 >      32,    51,   332,   333,   334,   335,   336,   337,   338,   339,
1809 >     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
1810 >     598,  1036,  1037,    33,    59,   477,   708,  1106,  1107,   478,
1811 >     479,   480,  1110,   959,   960,   481,   482,    34,    57,   455,
1812 >     456,   457,   458,   459,   460,   461,   693,  1092,  1093,   462,
1813 >     463,   464,    35,    63,   518,   519,   520,   521,   522,    36,
1814 >     291,   292,   293,    37,    69,   571,   572,   573,   574,   575,
1815 >     781,  1199,  1200,    38,    66,   555,   556,   557,   558,   771,
1816 >    1180,  1181,    39,    52,   364,   365,   366,   367,   368,   369,
1817 >     370,   371,   372,   373,   620,  1064,  1065,   374,   375,   376,
1818 >     377,   378,    40,    58,   468,   469,   470,   471,    41,    53,
1819 >     382,   383,   384,   385,    42,   111,   112,   113,    43,    55,
1820 >     392,   393,   394,   395,    44,   164,   165,   166,   167,   168,
1821 >     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1822 >     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1823 >     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1824 >     199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1825 >     209,   425,   921,   922,   210,   423,   897,   898,   211,   212,
1826 >     213,    45,    92,    93,    94,    95,    96,    97,    98,    99,
1827 >     100,   101,   102,   103,   104,   105,    46,   235,   236,   237,
1828 >     238,   239,   240,   241,   242,   243
1829   };
1830  
1831   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1832     STATE-NUM.  */
1833 < #define YYPACT_NINF -560
1833 > #define YYPACT_NINF -1010
1834   static const yytype_int16 yypact[] =
1835   {
1836 <    -560,   667,  -560,  -206,  -223,  -221,  -560,  -560,  -560,  -218,
1837 <    -560,  -191,  -560,  -560,  -560,  -560,  -189,  -183,  -560,  -560,
1838 <    -154,  -136,  -560,  -560,  -133,  -560,  -560,  -560,  -560,  -560,
1839 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1840 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,    42,
1841 <     544,  -115,  -109,   -80,    32,   -72,   375,   -70,   -53,   -51,
1842 <     -33,    60,    87,   -20,   -18,   324,   334,    -5,    -3,    20,
1843 <     -89,    17,    35,    51,     9,  -560,  -560,  -560,  -560,  -560,
1844 <      61,    63,    73,    79,    96,   111,   117,   125,   131,   136,
1845 <     137,   152,   154,   156,   159,   162,   170,   175,   180,  -560,
1846 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1847 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,   709,   461,
1848 <      98,  -560,   195,    10,  -560,  -560,   266,  -560,   198,   199,
1849 <     202,   203,   206,   213,   214,   216,   217,   219,   229,   230,
1850 <     231,   232,   242,   243,   246,   250,   253,   256,   257,   259,
1851 <     261,   263,   265,   268,   275,   276,  -560,   277,  -560,   281,
1852 <     282,   284,   287,   291,   293,   295,   296,   299,   300,   307,
1853 <     314,   315,   316,   318,   319,   321,   322,   323,   327,   110,
1854 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1855 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1856 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1857 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1858 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1859 <    -560,  -560,     2,   509,    16,   326,    57,   330,    36,  -560,
1860 <    -560,  -560,     7,    77,   331,   332,    28,  -560,  -560,  -560,
1861 <     279,   211,  -560,   335,   338,   339,   341,   342,   343,   344,
1862 <       3,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,   200,
1863 <     345,   346,   348,   349,   352,   355,   356,   357,   358,   360,
1864 <     362,   363,   365,   366,   367,    74,  -560,  -560,  -560,  -560,
1865 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1866 <    -560,  -560,   197,     6,  -560,   368,    46,  -560,  -560,  -560,
1867 <     140,   173,   392,   329,  -560,   438,   328,   505,   441,   445,
1868 <     514,   514,   515,   516,   451,   452,   521,   514,   456,   457,
1869 <     459,   460,   462,   396,  -560,   398,   397,   401,   402,   403,
1870 <     404,   408,   409,   410,   411,   412,   413,   415,   416,     4,
1871 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1872 <    -560,  -560,  -560,  -560,   399,   417,   418,   419,   420,  -560,
1873 <     425,   426,   429,   430,   431,   433,   435,   436,   290,  -560,
1874 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1875 <    -560,  -560,  -560,  -560,   439,   440,    11,  -560,  -560,  -560,
1876 <     511,   446,  -560,  -560,   442,   449,  -560,  -560,    12,  -560,
1877 <    -560,  -560,   522,   514,   514,   590,   525,   526,   593,   573,
1878 <     532,   597,   599,   601,   546,   550,   551,   514,   598,   552,
1879 <     624,   627,   514,   628,   630,   610,   636,   637,   572,   575,
1880 <     508,   577,   510,   514,   514,   579,   514,   580,   583,   584,
1881 <    -105,   -99,   585,   586,   514,   514,   653,   633,   514,   589,
1882 <     592,   594,   595,   528,  -560,  -560,  -560,   533,   534,  -560,
1883 <     535,   536,    14,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1884 <     540,   539,   541,  -560,   543,   545,   547,   548,   549,    33,
1885 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1886 <     555,  -560,   556,  -560,    22,  -560,  -560,  -560,   553,  -560,
1887 <     558,   559,   560,  -560,     8,  -560,  -560,  -560,  -560,  -560,
1888 <     596,   554,  -560,   212,  -560,   645,   657,   564,  -560,   565,
1889 <     563,   566,  -560,   567,   568,   569,  -560,   570,    15,  -560,
1890 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,   574,   576,
1891 <     581,   582,    27,  -560,  -560,  -560,  -560,   608,   614,   632,
1892 <     685,   641,   643,   514,   588,  -560,  -560,   692,   648,   699,
1893 <     702,   703,   704,   705,   708,   -63,   -49,   710,   711,   730,
1894 <     712,   713,   604,  -560,   611,   607,  -560,   612,    97,  -560,
1895 <    -560,  -560,  -560,   619,   617,  -560,    30,  -560,  -560,  -560,
1896 <     724,   622,  -560,   631,   634,   635,  -560,   654,   656,   660,
1897 <     664,   665,   272,   676,   677,   681,   684,   693,   695,   696,
1898 <     698,   701,   706,   707,   714,   715,  -560,  -560,   761,   764,
1899 <     514,   767,   768,   776,   779,   763,   823,   828,   514,   514,
1900 <     653,   716,  -560,  -560,   809,   -75,   812,   770,   700,   818,
1901 <     819,   820,   821,   843,   827,   829,   830,   718,  -560,   831,
1902 <     832,   723,  -560,   726,  -560,   834,   835,   728,   727,  -560,
1903 <     729,   732,   733,   734,   735,   736,   737,   739,   740,   741,
1904 <     742,   743,   744,   745,   746,   747,   748,   749,   750,   751,
1905 <     752,   753,   754,   755,   756,   757,   758,   759,   663,   760,
1906 <     697,   762,   765,   766,   769,   771,   772,   773,   774,   775,
1907 <     777,   778,   780,   782,   783,   784,    54,   785,   786,   787,
1908 <     788,   789,   790,   791,  -560,   792,   514,   793,   794,   871,
1909 <     873,   796,  -560,  -560,   874,   833,   795,   877,   844,   880,
1910 <     886,   889,   800,  -560,   902,   798,   903,   802,  -560,  -560,
1911 <     801,   904,   913,   936,   806,  -560,   807,  -560,   194,   808,
1912 <     810,  -560,  -560,   919,   876,   811,   922,   923,   925,   813,
1913 <     927,   822,  -560,  -560,   928,   929,   930,   824,  -560,   825,
1914 <     826,   836,   837,   838,   839,   840,  -560,   841,   842,   845,
1915 <     846,   847,   848,   849,   850,  -560,  -560,  -199,  -560,  -560,
1916 <    -560,  -196,  -560,   851,   852,   853,   854,   855,  -560,  -560,
1917 <     931,   856,   933,   857,  -560,  -560,   937,   858,   860,  -560,
1918 <     862,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1919 <     514,   514,   514,   514,   514,  -560,  -560,  -560,  -560,  -560,
1920 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1921 <     863,   864,   865,   866,   867,   868,   869,   872,   875,   878,
1922 <     879,   881,   882,  -560,   883,   884,   885,   887,   888,   141,
1923 <     890,   891,   892,   893,   894,   895,   896,   897,  -560,   898,
1924 <     899,  -560,  -560,   900,   901,   934,  -560,  -560,  -560,  -560,
1925 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1926 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1927 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1928 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1929 <    -560,  -560,  -560,  -560,  -560,  -182,  -560,  -560,  -560,  -560,
1930 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1931 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,   -30,  -560,
1932 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1933 <    -560,  -560,  -560,  -560,  -560,   653,   653,   653,  -560,  -560,
1934 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,    13,   905,   906,
1935 <      21,   907,   908,  -560,   909,   910,   870,   911,   912,   914,
1936 <     915,   916,  -560,   917,   935,   918,  -560,   -47,   920,   921,
1937 <     940,   924,  -560,  -560,  -560,   926,   932,  -560,   938,    89,
1938 <    -560,  -560,  -560,  -560,  -560,  -560,   939,   942,   479,   943,
1939 <     944,   945,   725,   946,  -560,   947,   948,   949,  -560,  -560,
1940 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1941 <    -560,  -560,  -560,  -560,  -560,   -63,  -560,   -49,  -560,  -560,
1942 <    -560,  -560,  -560,   950,   507,   951,  -560,   952,   531,  -560,
1943 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1944 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1945 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,    -6,  -560,
1946 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1947 <    -560,  -560,  -560,    65,  -560,  -560,   663,  -560,   697,  -560,
1948 <    -560,  -560,  -560,  -560,   100,  -560,  -560,  -560,  -560,  -560,
1949 <     101,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1950 <    -560,  -560,  -560,  -560,  -560,   106,  -560,  -560,  -560,  -560,
1951 <    -560,  -560,  -560,  -560,   109,  -560,  -560,  -560,  -560,  -560,
1952 <     112,  -560,  -560,  -560,   959,   936,   953,  -560,   941,   954,
1953 <     -91,   955,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1954 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1955 <    -560,  -560,  -560,   123,  -560,  -560,  -560,  -560,  -560,  -560,
1956 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1957 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,   126,  -560,
1958 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1959 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,   133,  -560,  -560,
1960 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1961 <    -560,   148,  -560,  -560,   141,  -560,   934,  -560,  -560,  -560,
2001 <      13,  -560,    21,  -560,   870,  -560,   935,  -560,   -47,  -560,
2002 <    -560,  -560,   956,   262,   958,   960,  -560,  -560,   479,  -560,
2003 <     725,  -560,   507,  -560,   531,  -560,  -560,  -560,  -560,  -560,
2004 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
2005 <     150,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,   262,
2006 <    -560
1836 >   -1010,   612, -1010,  -210,  -218,  -199, -1010, -1010, -1010,  -171,
1837 >   -1010,  -160, -1010, -1010, -1010,  -153, -1010, -1010, -1010,  -147,
1838 >    -134, -1010,  -128,  -117, -1010, -1010, -1010, -1010, -1010, -1010,
1839 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1840 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,   344,
1841 >     674,  -106,   -79,   -65,    10,   -50,   360,   -47,   -41,   -34,
1842 >       5,   -29,   -15,   -13,   631,   328,   -10,    41,    55,    -2,
1843 >    -189,    45,    47,    59,     7, -1010, -1010, -1010, -1010, -1010,
1844 >      61,    62,    69,    74,    76,    98,   105,   106,   118,   122,
1845 >     124,   127,   256, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1846 >   -1010, -1010, -1010, -1010, -1010, -1010,   640,   527,    32, -1010,
1847 >     129,     8, -1010, -1010,    29, -1010,   130,   131,   136,   138,
1848 >     143,   145,   147,   148,   150,   152,   153,   155,   156,   166,
1849 >     168,   170,   176,   183,   184,   185,   186,   189,   194,   195,
1850 >     196,   197,   198, -1010,   204, -1010,   205,   213,   214,   217,
1851 >     219,   225,   229,   230,   233,   237,   238,   241,   243,   257,
1852 >     258,   260,   263,   264,    17, -1010, -1010, -1010, -1010, -1010,
1853 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1854 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1855 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1856 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1857 >   -1010, -1010, -1010, -1010,   493,    43,    19,    23,   270,   272,
1858 >      65, -1010, -1010, -1010,    21,   376,   274, -1010,   277,   278,
1859 >     280,   281,   290,   291,   292,   146, -1010, -1010, -1010, -1010,
1860 >   -1010, -1010, -1010, -1010,    99,   300,   301,   303,   305,   307,
1861 >     308,   309,   310,   312,   313,   315,   316,   320,   323,   324,
1862 >     325,   327,   117, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1863 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1864 >   -1010,   111,   331,   334,    20, -1010, -1010, -1010,    86, -1010,
1865 >     336,    24, -1010, -1010,    54, -1010,   218,   378,   435,   340,
1866 >   -1010,   330,   457,   193,   458,   459,   459,   459,   462,   467,
1867 >     471,   373,   374,   362, -1010,   363,   357,   361,   367, -1010,
1868 >     369,   370,   377,   379,   381,   382,   391,   394,   395,   396,
1869 >     397,   399,   173, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1870 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1871 >     392,   401,   405,   408,   410,   411,   412, -1010,   414,   416,
1872 >     417,   419,   421,   426,   242, -1010, -1010, -1010, -1010, -1010,
1873 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1874 >     427,   428,    26, -1010, -1010, -1010,   478,   434, -1010, -1010,
1875 >     432,   443,    52, -1010, -1010, -1010,   464,   459,   459,   495,
1876 >     465,   466,   567,   554,   475,   459,   481,   570,   581,   459,
1877 >     582,   484,   485,   487,   459,   587,   590,   459,   591,   592,
1878 >     593,   596,   499,   480,   503,   498,   504,   459,   459,   520,
1879 >     522,   523,  -158,   -43,   524,   526,   611,   459,   528,   530,
1880 >     459,   459,   534,   535,   531, -1010,   536,   517,   521, -1010,
1881 >     532,   537,   538,   539,   540,    18, -1010, -1010, -1010, -1010,
1882 >   -1010, -1010, -1010, -1010, -1010, -1010,   541,   542,    66, -1010,
1883 >   -1010, -1010,   546,   545,   547, -1010,   548, -1010,    27, -1010,
1884 >   -1010, -1010, -1010, -1010,   628,   635,   552, -1010,   553,   555,
1885 >     557,   141, -1010, -1010, -1010,   556,   558,   560, -1010,   561,
1886 >     562,   563, -1010,   564,    68, -1010, -1010, -1010, -1010, -1010,
1887 >   -1010, -1010, -1010, -1010,   568,   566,   569,   571,    15, -1010,
1888 >   -1010, -1010, -1010,   574,   594,   639,   598,   601,   604,   459,
1889 >     573, -1010, -1010,   671,   606,   677,   655,   707,   693,   695,
1890 >     700,   702,   703,   704,   720,   708,    67,    84,   709,   713,
1891 >     613, -1010,   614,   603, -1010,   114, -1010, -1010, -1010, -1010,
1892 >     632,   616, -1010,   615,   719,   620, -1010,   627,   629, -1010,
1893 >     634,    16, -1010, -1010, -1010, -1010,   630,   638,   642, -1010,
1894 >     645,   646,   647,   649,   578,   650,   651,   659,   665,   669,
1895 >     670,   672,   673, -1010, -1010,   750,   751,   459,   641,   771,
1896 >     793,   459,   795,   796,   459,   782,   798,   800,   459,   801,
1897 >     801,   686, -1010, -1010,   791,    33,   792,   710,   797,   799,
1898 >     689,   802,   804,   810,   805,   806,   807,   699, -1010,   808,
1899 >     809,   711, -1010,   712, -1010,   811,   814,   714, -1010,   715,
1900 >     716,   717,   718,   721,   723,   724,   725,   726,   727,   728,
1901 >     729,   730,   731,   732,   733,   734,   735,   736,   737,   738,
1902 >     739,   740,   741,   742,   743,   744,   644,   745,   687,   746,
1903 >     747,   748,   749,   752,   753,   754,   755,   756,   757,   758,
1904 >     759,   760,   761,   762,   763,   764,   765,   766,   767, -1010,
1905 >   -1010,   820,   768,   692,   821,   816,   823,   851,   869,   769,
1906 >   -1010,   871,   872,   772, -1010, -1010,   874,   875,   706,   891,
1907 >     776, -1010,   777,   778, -1010, -1010,   880,   881,   781, -1010,
1908 >   -1010,   883,   803,   780,   885,   886,   888,   785,   890,   790,
1909 >   -1010, -1010,   892,   893,   894,   794, -1010,   812,   813,   815,
1910 >     817,   818,   819,   822, -1010,   824,   825,   826,   827,   828,
1911 >     829,   830,   831,   832,   833,   834,   835,   836, -1010, -1010,
1912 >    -191, -1010, -1010, -1010,  -164, -1010,   837,   838, -1010, -1010,
1913 >     896,   839,   840, -1010,   841, -1010,   116,   843, -1010, -1010,
1914 >     897,   842,   898,   844, -1010, -1010, -1010, -1010, -1010, -1010,
1915 >   -1010, -1010,   459,   459,   459,   459,   459,   459,   459, -1010,
1916 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,   846,
1917 >     847,   848,   -35,   849,   850,   852,   853,   854,   855,   856,
1918 >     857,   858,   859,   211,   860,   861, -1010,   862,   863,   864,
1919 >     865,   866,   867,   868,     2,   870,   873,   876,   877,   878,
1920 >     879, -1010,   882,   884, -1010, -1010,   887,   889, -1010, -1010,
1921 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1922 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1923 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1924 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1925 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010,  -150, -1010, -1010,
1926 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1927 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1928 >   -1010,  -107, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1929 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1930 >   -1010, -1010, -1010,   895,   899,   393,   900,   901,   902,   903,
1931 >     904, -1010,   905,   906, -1010,   907,   908,   -36,   919,   909,
1932 >   -1010, -1010, -1010, -1010,   910,   911, -1010,   912,   914,   429,
1933 >     915,   916,   917,   722,   918, -1010,   920,   921,   922, -1010,
1934 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1935 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1936 >   -1010,    67, -1010,    84, -1010, -1010,   923,   286, -1010, -1010,
1937 >     924,   925,   926, -1010,    82, -1010, -1010, -1010, -1010, -1010,
1938 >     927,   389,   930, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1939 >   -1010, -1010, -1010, -1010, -1010, -1010,   -69, -1010, -1010, -1010,
1940 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,   801,   801,
1941 >     801, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1942 >   -1010, -1010, -1010, -1010,   -66, -1010, -1010, -1010, -1010, -1010,
1943 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010,   644, -1010,   687,
1944 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1945 >   -1010, -1010,   -46, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1946 >   -1010, -1010, -1010, -1010, -1010, -1010,   -18, -1010,   932,   891,
1947 >     931, -1010, -1010, -1010, -1010, -1010,   928, -1010, -1010,   929,
1948 >   -1010, -1010, -1010, -1010,   933, -1010, -1010, -1010, -1010, -1010,
1949 >   -1010, -1010, -1010, -1010, -1010,    89, -1010, -1010, -1010, -1010,
1950 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1951 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1952 >   -1010,    90, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1953 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1954 >      96, -1010, -1010,   940,  -102,   934,   935, -1010, -1010, -1010,
1955 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,   119,
1956 >   -1010, -1010, -1010,   -35, -1010, -1010, -1010, -1010,     2, -1010,
1957 >   -1010, -1010,   393, -1010,   -36, -1010, -1010, -1010,   946,   964,
1958 >     966, -1010,   429, -1010,   722, -1010,   286,   936,   939,   941,
1959 >     319, -1010, -1010,   389, -1010, -1010, -1010, -1010, -1010, -1010,
1960 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1961 >   -1010, -1010, -1010, -1010,   120, -1010, -1010, -1010,   319, -1010
1962   };
1963  
1964   /* YYPGOTO[NTERM-NUM].  */
1965   static const yytype_int16 yypgoto[] =
1966   {
1967 <    -560,  -560,  -560,  -316,  -319,  -559,  -456,  -560,  -560,   957,
1968 <    -560,  -560,  -560,  -560,   799,  -560,  -560,  -560,    18,  -560,
1969 <      19,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1970 <    -560,  -560,  -560,  -560,  -560,  -560,  1000,  -560,  -560,  -560,
1971 <    -560,  -560,   859,  -560,  -560,  -560,  -560,    56,  -560,  -560,
1972 <    -560,  -560,  -560,  -224,  -560,  -560,  -560,   561,  -560,  -560,
1973 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -169,  -560,  -560,
1974 <    -560,  -166,  -560,  -560,  -560,   781,  -560,  -560,  -560,  -560,
1975 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1976 <    -560,  -560,  -560,  -560,  -153,  -560,   600,  -560,  -560,  -560,
1977 <     -48,  -560,  -560,  -560,  -560,  -560,   629,  -560,  -560,  -560,
1978 <    -560,  -560,  -560,  -560,  -137,  -560,  -560,  -560,  -560,  -560,
1979 <    -560,   591,  -560,  -560,  -560,  -560,  -560,   961,  -560,  -560,
1980 <    -560,  -560,   557,  -560,  -560,  -560,  -560,  -560,  -138,  -560,
1981 <    -560,  -560,   578,  -560,  -560,  -560,  -560,  -130,  -560,  -560,
1982 <    -560,   797,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1983 <    -560,  -560,   -94,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1984 <    -560,  -560,  -560,  -103,  -560,   661,  -560,  -560,  -560,  -560,
1985 <    -560,   804,  -560,  -560,  -560,  -560,  1041,  -560,  -560,  -560,
1986 <    -560,  -560,  -560,   -90,  -560,   803,  -560,  -560,  -560,  -560,
1987 <     989,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1988 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1989 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1990 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1991 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,    52,
1992 <    -560,  -560,  -560,    55,  -560,  -560,  -560,  -560,  -560,  -560,
1993 <    -560,   738,  -560,  -560,  -560,  -560,  -560,   -85,  -560,  -560,
1994 <    -560,  -560,  -560,   -88,  -560,  -560,  1075,  -560,  -560,  -560,
1995 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
2041 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,   962,  -560,  -560,
2042 <    -560,  -560,  -560,  -560,  -560
1967 >   -1010, -1010, -1010,  -132,  -303, -1009,  -609, -1010, -1010,   943,
1968 >   -1010, -1010, -1010, -1010,   770, -1010, -1010, -1010,    22, -1010,
1969 >      25, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1970 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,   947, -1010,
1971 >   -1010, -1010, -1010, -1010, -1010,   533, -1010, -1010, -1010, -1010,
1972 >     913, -1010, -1010, -1010, -1010,    11, -1010, -1010, -1010, -1010,
1973 >   -1010,  -236, -1010, -1010, -1010,   525, -1010, -1010, -1010, -1010,
1974 >   -1010, -1010, -1010, -1010, -1010,  -198, -1010, -1010, -1010,  -195,
1975 >   -1010, -1010, -1010,   698, -1010, -1010, -1010, -1010, -1010, -1010,
1976 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1977 >   -1010, -1010,  -172, -1010, -1010, -1010, -1010, -1010,  -181, -1010,
1978 >     559, -1010, -1010, -1010,   -75, -1010, -1010, -1010, -1010, -1010,
1979 >     588, -1010, -1010, -1010, -1010, -1010, -1010, -1010,  -168, -1010,
1980 >   -1010, -1010, -1010, -1010, -1010,   577, -1010, -1010, -1010, -1010,
1981 >   -1010,   937, -1010, -1010, -1010, -1010,   543, -1010, -1010, -1010,
1982 >   -1010, -1010,  -187, -1010, -1010, -1010,   549, -1010, -1010, -1010,
1983 >   -1010,  -129, -1010, -1010, -1010,   784, -1010, -1010, -1010, -1010,
1984 >   -1010, -1010, -1010, -1010, -1010, -1010,  -110, -1010, -1010, -1010,
1985 >   -1010, -1010, -1010, -1010, -1010,   643, -1010, -1010, -1010, -1010,
1986 >   -1010,   773, -1010, -1010, -1010, -1010,   992, -1010, -1010, -1010,
1987 >   -1010,   774, -1010, -1010, -1010, -1010,   942, -1010, -1010, -1010,
1988 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1989 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1990 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1991 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1992 >   -1010, -1010, -1010,    30, -1010, -1010, -1010,    31, -1010, -1010,
1993 >   -1010, -1010, -1010,  1021, -1010, -1010, -1010, -1010, -1010, -1010,
1994 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,   938, -1010,
1995 >   -1010, -1010, -1010, -1010, -1010, -1010
1996   };
1997  
1998   /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1999     positive, shift that token.  If negative, reduce the rule which
2000     number is the opposite.  If YYTABLE_NINF, syntax error.  */
2001 < #define YYTABLE_NINF -109
2001 > #define YYTABLE_NINF -124
2002   static const yytype_int16 yytable[] =
2003   {
2004 <     717,   613,   614,   465,   252,   335,   466,   593,   620,   508,
2005 <      70,   121,   393,   403,  1157,   465,   529,   499,   466,   716,
2006 <      49,   304,    50,   499,  1122,    54,   336,   337,   548,   243,
2007 <     338,   593,  1128,   121,   480,    47,    48,   236,   253,   530,
2008 <      71,   467,  1054,    70,   468,  1056,  1055,   304,   549,  1057,
2009 <      72,   254,    56,   467,    61,   509,   468,   481,   531,  1115,
2010 <      62,   236,   532,  1116,   255,   256,   257,   258,   975,   976,
2011 <     977,   708,   709,    71,   510,   269,   482,   710,   711,   511,
2012 <     483,   122,   394,    72,   259,   469,   795,   796,   243,    65,
2013 <    1015,   339,   340,   341,   671,   672,   342,   469,   584,   393,
2014 <     799,   800,   470,   122,   343,   270,   594,    66,   685,    73,
2015 <      69,   127,   404,   690,   470,   533,   344,   345,   128,   129,
2016 <     305,  1274,   865,   866,   701,   702,   244,   704,   118,   130,
2017 <     594,   550,   346,   347,   119,   714,   715,   131,   512,   719,
2018 <     534,   271,    73,   132,   395,   405,   305,   133,   134,   500,
2019 <     135,  1094,   309,  1095,   245,   500,   136,  1158,   484,   535,
2020 <     551,  1159,   348,   120,   716,   137,   138,   485,   486,   394,
2021 <     139,   126,   595,   232,   272,   140,   273,   274,   406,   141,
2022 <     142,    79,   501,   143,   862,   244,   144,   145,   501,  1016,
2023 <     233,  1123,   234,    80,   146,  1015,   595,   585,   584,  1129,
2024 <     147,   148,   487,   149,   150,   151,   152,   153,    81,    82,
2025 <     235,  1117,   548,   245,    83,  1118,    84,   275,   154,   276,
2026 <     277,   278,   279,   250,   536,   251,   155,   156,   157,   471,
2027 <     158,   395,   549,   159,   160,  1253,   280,   161,   302,  1254,
2028 <     303,   471,   537,   502,   785,   564,   641,   523,   162,   502,
2029 <     754,   313,   401,   661,   668,  1017,   731,   771,    85,    86,
2030 <     488,   310,   281,   586,   747,    87,    88,   403,   237,   777,
2031 <     527,   603,   818,   163,   282,   742,  -108,   164,   521,   311,
2032 <     529,   165,   166,   167,   168,   169,    89,    90,   601,   170,
2033 <     171,   364,   237,   365,  1016,   312,   366,   585,   519,   172,
2034 <    -108,    91,    92,   530,   604,   315,  1255,   316,   283,   284,
2035 <    1256,   852,    93,  1293,   367,   550,   582,   317,   524,   860,
2036 <     861,    94,   531,   318,   587,   252,   532,   508,  1018,   173,
2037 <     174,  1171,   175,   368,  1294,   269,  1295,   369,   176,   813,
2038 <     319,  1259,  1261,   177,   551,  1260,  1262,  1263,   178,  1096,
2039 <    1265,  1264,   463,  1267,  1266,   320,   370,  1268,   371,   253,
2040 <    1017,   321,  1097,   586,  1277,   270,   404,  1279,  1278,   322,
2041 <     372,  1280,   254,   509,  1281,   323,   127,  1296,  1282,   533,
2042 <     324,   325,   612,   128,   129,   255,   256,   257,   258,  1283,
2043 <     373,  1308,   510,  1284,   130,  1309,   326,   511,   327,   405,
2044 <     328,   271,   131,   329,   534,   259,   330,   988,   132,    95,
2045 <      96,    97,   133,   134,   331,   135,  1119,  1120,  1121,   332,
2046 <     374,   136,   333,   535,   587,   830,   831,   832,   833,   834,
2047 <     137,   138,   406,  1018,   272,   139,   273,   274,   608,   400,
2048 <     140,   566,   412,   413,   141,   142,   414,   415,   143,   375,
2049 <     416,   144,   145,  1297,  1298,   758,   512,   417,   418,   146,
2050 <     419,   420,   364,   421,   365,   147,   148,   366,   149,   150,
2051 <     151,   152,   153,   422,   423,   424,   425,   275,   376,   276,
2052 <     277,   278,   279,   154,  1175,   367,   426,   427,   536,  1299,
2053 <     428,   155,   156,   157,   429,   158,   280,   430,   159,   160,
2054 <     431,   432,   161,   433,   368,   434,   537,   435,   369,   436,
2055 <     480,  1176,   437,   162,  1071,  1072,  1073,  1074,  1075,   438,
2056 <     439,   441,   281,   605,   377,   443,   444,   370,   445,   371,
2057 <    1177,   446,   657,   481,   282,   447,  1178,   448,   163,   449,
2058 <     450,   372,   164,   451,   452,    79,   165,   166,   167,   168,
2059 <     169,   453,   482,  1179,   170,   171,   483,    80,   454,   455,
2060 <     456,   373,   457,   458,   172,   459,   460,   461,   283,   284,
2061 <     606,   462,    81,    82,   520,   525,   526,  1180,    83,   557,
2062 <      84,  1227,   558,   559,  1181,   560,   561,   562,   563,   567,
2063 <     568,   374,   569,   570,   173,   174,   571,   175,  1182,   572,
2064 <     573,   574,   575,   176,   576,  1241,   577,   578,   177,   579,
2065 <     580,   581,   600,   178,   607,   609,  1183,   610,  1184,  1185,
2066 <     375,   611,    85,    86,   612,   615,   616,   617,   618,    87,
2067 <      88,   619,   621,   622,   484,   623,   624,   626,   625,   627,
2068 <     643,   628,   663,   485,   486,   629,   630,   631,   632,   376,
2069 <      89,    90,   633,   634,   635,   636,   637,   638,  1228,   639,
2070 <     640,   644,   645,   646,   647,    91,    92,     2,     3,   649,
2071 <     650,  1186,     4,   651,   652,   653,    93,   654,   487,   655,
2072 <     656,  1187,  1242,   659,   660,    94,   665,   664,     5,  1229,
2073 <    1188,     6,     7,   666,  1189,   377,  1190,     8,   670,  1230,
2074 <     673,   674,   675,   676,   677,  1191,  1231,   679,   678,   680,
2075 <     335,   681,     9,  1243,  1275,  1192,    10,    11,  1232,    12,
2076 <    1233,  1234,   682,  1244,   915,    13,   683,   684,   687,   686,
2077 <    1245,   336,   337,  1235,   688,   338,   488,   689,   691,    14,
2078 <     692,   693,  1246,  1236,  1247,  1248,   694,   695,   696,    15,
2079 <      16,   697,   698,   699,   700,   703,   705,  1249,   938,   706,
2080 <     707,   712,   713,   716,   718,   720,    17,  1250,   721,   724,
2081 <     722,   723,   756,    95,    96,    97,   759,   726,   727,   729,
2082 <     730,   733,    18,   734,   779,   735,  1198,   737,   760,   738,
2083 <     780,   739,   740,   741,   749,   757,   339,   340,   341,   744,
2084 <     746,   342,   751,   752,   753,   761,   762,   763,   781,   343,
2085 <     764,   766,   767,   768,   770,   773,   782,   783,    19,   784,
2086 <     774,   344,   345,   787,   788,   775,   776,    20,    21,   786,
2087 <     789,    22,    23,   790,   791,   792,   793,   346,   347,   794,
2088 <     805,   803,   804,   806,   807,   808,   916,   917,   918,   919,
2089 <     920,   810,   809,   921,   922,   820,   812,   923,   924,   925,
2090 <     815,   816,   926,   821,   927,   928,   929,   348,   930,   931,
2091 <     932,   850,   822,   933,   851,   823,   824,   853,   854,   934,
2092 <     939,   940,   941,   942,   943,    24,   855,   944,   945,   856,
2093 <    1136,   946,   947,   948,   857,   825,   949,   826,   950,   951,
2094 <     952,   827,   953,   954,   955,   828,   829,   956,  1199,  1200,
2095 <    1201,  1202,  1203,   957,  1137,  1204,  1205,   837,   838,  1206,
2096 <    1207,  1208,   839,  1138,  1209,   840,  1210,  1211,  1212,  1139,
2097 <    1213,  1214,  1215,   858,   841,  1216,   842,   843,   859,   844,
2098 <     864,  1217,   845,   867,   869,  1140,   868,   846,   847,   870,
2099 <     871,   872,   873,   874,   998,   848,   849,   863,   875,   878,
2100 <     876,   877,   879,   880,   881,   883,   884,   882,   886,   989,
2101 <     887,  1141,   885,   888,   889,   890,   891,   892,   893,  1142,
2102 <     894,   895,   896,   897,   898,   899,   900,   901,   902,   903,
2103 <     904,   905,   906,   907,   908,   909,   910,   911,   912,   913,
2104 <     914,   937,   991,   960,   992,   994,   961,   962,   997,   995,
2105 <     963,   999,   964,   965,   966,   967,   968,  1000,   969,   970,
2106 <    1001,   971,  1143,   972,   973,   974,   980,   981,   982,   983,
2107 <     984,   985,   986,  1003,  1005,  1008,   987,   993,   990,   996,
2108 <    1144,  1002,  1004,  1006,  1009,  1007,  1010,  1013,  1014,  1024,
2109 <    1026,  1025,  1027,  1029,  1030,  1028,  1031,  1032,  1033,  1035,
2110 <    1036,  1037,  1063,  1034,  1065,  1038,  1039,  1040,  1067,  1269,
2111 <    1112,  1153,  1272,  1224,   314,  1172,  1225,  1041,  1042,  1043,
2112 <    1044,  1045,  1046,  1047,   583,  1310,  1048,  1049,  1050,  1051,
2113 <    1052,  1053,  1058,  1059,  1060,  1061,  1062,   522,  1066,   772,
2114 <    1064,  1069,  1068,  1070,  1076,  1077,  1078,  1079,  1080,  1081,
2115 <    1082,  1305,  1304,  1083,   755,  1291,  1084,  1270,   743,  1085,
2116 <    1086,  1164,  1087,  1088,  1089,  1090,  1091,  1289,  1092,  1093,
2117 <     642,  1100,  1101,  1102,  1103,  1104,  1105,  1106,  1107,  1108,
2118 <    1109,  1110,  1111,   778,  1306,   814,  1126,  1127,  1132,  1133,
2119 <    1134,  1135,  1147,  1148,  1307,  1149,  1150,  1151,  1152,  1156,
2120 <    1285,  1162,  1163,  1290,   402,   748,  1286,  1167,   464,  1165,
2121 <    1258,  1257,  1287,   334,   819,   658,  1168,  1288,     0,     0,
2169 <    1173,     0,  1170,  1174,  1195,  1196,  1197,  1220,  1221,  1222,
2170 <    1223,  1226,  1239,  1240,  1271,     0,  1276,  1292,  1273,  1302,
2171 <     662,  1303,     0,   528,     0,     0,     0,     0,     0,     0,
2172 <     732,   669,     0,     0,     0,     0,     0,     0,     0,     0,
2173 <       0,     0,   565,     0,     0,     0,     0,     0,     0,     0,
2004 >     824,   825,   585,   586,   587,   823,   217,    49,    70,   109,
2005 >    1062,   109,  1103,    47,    48,  1034,   514,   567,   115,   446,
2006 >     472,   282,   488,   116,   117,   289,    50,   379,   472,   118,
2007 >     389,    71,  1000,   379,   295,   447,  1001,   119,    72,  1204,
2008 >    1205,  1206,   282,   120,   465,   121,   122,   123,   675,   515,
2009 >     448,   676,   124,   389,    54,   567,   289,   125,   126,  1002,
2010 >     127,   128,   129,  1003,   130,    56,   217,   465,   110,   495,
2011 >     110,   131,    60,  1076,   473,   132,   133,  1077,    64,   474,
2012 >     449,   475,   473,  1010,   134,   496,   380,   474,  1035,   475,
2013 >     516,    65,   380,   135,   640,   641,   489,    67,  1228,   218,
2014 >     497,   136,   648,   137,    73,   138,   652,   139,    68,   140,
2015 >     141,   657,   552,   568,   660,   552,  1078,  1010,   244,   106,
2016 >    1079,   290,   142,   219,   670,   671,   390,   143,   144,   145,
2017 >     498,   146,   147,   148,   682,   450,   149,   685,   686,   517,
2018 >     476,   245,   488,   451,   452,  1104,   107,   227,   476,   390,
2019 >     381,   568,   290,   391,  1202,  1105,   381,  1207,  1203,   218,
2020 >     108,  1208,   150,   677,   453,   499,   678,   466,   151,   152,
2021 >     153,   154,   155,   246,   315,   114,   391,  1211,   214,  1011,
2022 >     247,  1212,   228,   219,   215,   500,  -123,   490,   316,   317,
2023 >     466,   216,   318,  1063,   229,   230,   224,   231,   232,   233,
2024 >     156,   501,   248,   828,   829,  1213,   249,  -123,   553,  1214,
2025 >     225,   553,   226,  1011,   250,   281,   489,   251,   252,   234,
2026 >    1048,  1049,  1050,   294,   157,   158,   743,   159,   160,   161,
2027 >     569,   299,   387,   162,   570,   319,   454,   283,   163,   735,
2028 >     783,   444,   699,   350,   561,   351,   483,   352,   565,   253,
2029 >     631,   710,   563,   320,   321,   322,   323,    79,   283,   353,
2030 >     324,   467,   758,   759,   325,   502,   254,   255,   569,  1012,
2031 >     326,   296,   570,   297,   354,   514,   637,    80,    81,   762,
2032 >     763,   327,   328,    82,   467,   298,   503,   301,   302,   486,
2033 >     703,   256,   729,   329,   811,   303,  1013,   355,   815,   356,
2034 >     304,   818,   305,  1012,   357,   822,  1186,   490,   515,   257,
2035 >     258,   259,  1221,  1223,   358,   330,  1222,  1224,   823,  1225,
2036 >      83,    84,   532,  1226,   306,   554,    85,    86,   554,   244,
2037 >    1013,   307,   308,    87,    88,    89,   260,   261,   772,   359,
2038 >     576,   550,  1232,  1257,   309,    70,  1233,  1258,   310,   516,
2039 >     311,   331,   245,   312,  1170,   386,   396,   397,  1247,    90,
2040 >      91,   115,   398,   360,   399,   718,   116,   117,    71,   400,
2041 >     530,   401,   118,   402,   403,    72,   404,   495,   405,   406,
2042 >     119,   407,   408,   361,   246,  1248,   120,  1249,   121,   122,
2043 >     123,   247,   409,   496,   410,   124,   411,   611,   517,   582,
2044 >     125,   126,   412,   127,   128,   129,  1082,   130,   497,   413,
2045 >     414,   415,   416,   248,   131,   417,  1171,   249,   132,   133,
2046 >     418,   419,   420,   421,   422,   250,  1083,   134,   251,   252,
2047 >     424,   426,  1250,  1115,   362,  1084,   135,   580,   498,   427,
2048 >     428,    73,  1172,   429,   136,   430,   137,  1116,   138,  1173,
2049 >     139,   431,   140,   141,  1117,   432,   433,  1189,  1174,   434,
2050 >     253,   363,  1085,   435,   436,   142,   627,   437,  1118,   438,
2051 >     143,   144,   145,   499,   146,   147,   148,   254,   255,   149,
2052 >     313,  1251,  1252,   439,   440,  1175,   441,  1176,  1177,   442,
2053 >     443,  1086,  1087,   500,   446,  1119,   484,  1120,   485,  1088,
2054 >     577,  1178,   256,   523,   524,   150,   525,   526,  1179,   501,
2055 >     447,   151,   152,   153,   154,   155,   527,   528,   529,  1190,
2056 >     257,   258,   259,  1121,  1089,   448,   533,   534,   350,   535,
2057 >     351,   536,   352,   537,   538,   539,   540,  1253,   541,   542,
2058 >    1090,   543,   544,   156,   353,  1191,   545,   260,   261,   546,
2059 >     547,   548,  1192,   549,   559,   449,  1122,   578,  1123,   354,
2060 >     560,  1193,   564,   579,   581,   583,   584,   157,   158,   588,
2061 >     159,   160,   161,   502,   589,  1229,   162,  1124,   590,   591,
2062 >     592,   163,   355,   595,   356,   593,   594,   596,  1194,   357,
2063 >    1195,  1196,  1125,   597,   503,   599,   600,  1126,  1091,   358,
2064 >     633,  1127,   642,   601,  1197,   602,  1128,   603,   604,  1129,
2065 >     450,  1198,     2,     3,  1130,   613,     4,   605,   451,   452,
2066 >     606,   607,   608,   609,   359,   610,     5,   614,  1131,     6,
2067 >       7,   615,   227,  1132,   616,     8,   617,   618,   619,   453,
2068 >     621,   315,   622,   623,  1133,   624,     9,   625,   360,    10,
2069 >      11,  1134,   626,   629,   630,   316,   317,   634,   635,   318,
2070 >    1024,  1025,  1026,  1027,  1028,  1029,  1030,   228,   361,   636,
2071 >     639,   643,   644,    12,   645,    79,   646,   650,    13,   229,
2072 >     230,   647,   231,   232,   233,   584,    14,   649,   651,   653,
2073 >     654,   655,   876,   656,   658,    80,    81,   659,   661,   662,
2074 >     663,    82,   319,   664,   234,   665,   666,    15,    16,   667,
2075 >     669,   454,   792,   793,   794,   795,   796,   797,   798,   362,
2076 >     320,   321,   322,   323,   668,    17,   672,   324,   673,   674,
2077 >     679,   325,   680,   681,   683,   900,   684,   326,    83,    84,
2078 >     687,   688,    18,   691,    85,    86,   363,   692,   327,   328,
2079 >     712,    87,    88,    89,   689,    19,    20,   713,   694,   690,
2080 >     329,   739,   748,   695,   696,   697,   698,   701,   702,   705,
2081 >    1140,   706,    21,   707,   709,   714,   715,    90,    91,   720,
2082 >     737,   716,   330,   717,   721,    22,   722,   724,   725,   726,
2083 >     728,   731,   732,   745,    23,   733,   744,   734,    24,   747,
2084 >     738,   877,   878,   879,   740,   880,   881,   741,   882,   883,
2085 >     742,   884,   746,   885,   749,   750,   886,   751,   331,   887,
2086 >     888,   889,   752,   890,   753,   754,   755,   756,   891,   770,
2087 >     757,   766,   892,   893,   894,   767,   768,   769,   774,   775,
2088 >     776,   777,   895,   778,   901,   902,   903,   896,   904,   905,
2089 >     779,   906,   907,   785,   908,   780,   909,   809,   810,   910,
2090 >     782,   786,   911,   912,   913,   787,   914,   812,   788,   789,
2091 >     790,   915,   791,   801,   802,   916,   917,   918,   813,  1141,
2092 >    1142,  1143,   803,  1144,  1145,   919,  1146,  1147,   804,  1148,
2093 >     920,  1149,   805,   806,  1150,   807,   808,  1151,  1152,  1153,
2094 >     814,  1154,   816,   817,   819,   820,  1155,   821,   823,   826,
2095 >    1156,  1157,  1158,   827,   830,   834,   831,   837,   945,   832,
2096 >    1159,   833,   841,   947,   835,  1160,   836,   838,   839,   840,
2097 >     842,   843,   957,   846,   844,   845,   847,   848,   849,   850,
2098 >     851,   852,   943,   946,   853,   948,   854,   855,   856,   857,
2099 >     858,   859,   860,   861,   862,   863,   864,   865,   866,   867,
2100 >     868,   869,   870,   871,   872,   873,   874,   875,   899,   923,
2101 >     924,   925,   926,   949,   944,   927,   928,   929,   930,   931,
2102 >     932,   933,   934,   935,   936,   937,   938,   939,   940,   941,
2103 >     942,   950,   951,   952,   953,   954,   955,   956,   958,   961,
2104 >     962,   963,   964,   965,   966,   967,   969,   970,   971,   968,
2105 >     972,   973,   974,   975,   976,   977,   978,   979,  1006,  1020,
2106 >    1022,   300,  1259,  1167,   719,  1187,  1242,  1241,  1168,   730,
2107 >     612,  1234,   551,  1237,  1216,   980,   981,   711,   982,  1215,
2108 >     983,   984,   985,   700,  1236,   986,  1256,   987,   988,   989,
2109 >     990,   991,   992,   993,   994,   995,   996,   997,   998,   999,
2110 >    1004,  1005,  1227,  1008,  1009,  1007,  1019,  1023,  1021,  1031,
2111 >    1032,  1033,  1038,  1039,  1238,  1040,  1041,  1042,  1043,  1044,
2112 >    1045,  1046,  1047,  1053,  1054,  1055,  1056,  1057,  1058,  1059,
2113 >    1060,  1061,  1239,  1066,  1240,   736,  1067,  1243,  1235,  1068,
2114 >    1069,  1070,  1071,   388,   773,  1072,   445,  1073,  1209,  1210,
2115 >    1074,   704,  1075,   314,   784,     0,     0,     0,  1080,     0,
2116 >       0,     0,  1081,  1094,  1095,  1096,  1097,  1098,  1099,  1100,
2117 >    1101,  1102,  1108,  1111,  1112,  1113,  1109,  1114,  1137,  1138,
2118 >    1139,  1163,     0,  1164,  1165,  1166,  1169,  1182,   628,     0,
2119 >    1188,  1183,  1184,  1201,  1217,   632,  1218,  1219,  1231,  1244,
2120 >    1230,  1220,  1245,   487,  1246,     0,   638,     0,     0,     0,
2121 >       0,     0,     0,   531,     0,     0,     0,     0,     0,     0,
2122         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2123 +       0,     0,     0,     0,     0,     0,     0,   562,     0,     0,
2124         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2125         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2126 <       0,     0,     0,     0,     0,     0,     0,   602
2126 >       0,     0,     0,     0,     0,     0,     0,     0,   566
2127   };
2128  
2129 < #define yypact_value_is_default(yystate) \
2130 <  ((yystate) == (-560))
2129 > #define yypact_value_is_default(Yystate) \
2130 >  (!!((Yystate) == (-1010)))
2131  
2132 < #define yytable_value_is_error(yytable_value) \
2132 > #define yytable_value_is_error(Yytable_value) \
2133    YYID (0)
2134  
2135   static const yytype_int16 yycheck[] =
2136   {
2137 <     456,   320,   321,     1,     1,     1,     4,     1,   327,     1,
2138 <       1,     1,     1,     1,    61,     1,     1,     1,     4,   110,
2139 <     243,     1,   243,     1,    11,   243,    22,    23,     1,     1,
2140 <      26,     1,    11,     1,     1,   241,   242,     1,    35,    24,
2141 <      31,    39,   241,     1,    42,   241,   245,     1,    21,   245,
2142 <      41,    48,   243,    39,   243,    47,    42,    24,    43,   241,
2143 <     243,     1,    47,   245,    61,    62,    63,    64,    14,    15,
2144 <      16,   176,   177,    31,    66,     1,    43,   176,   177,    71,
2145 <      47,    71,    71,    41,    81,    83,   149,   150,     1,   243,
2146 <       1,    87,    88,    89,   413,   414,    92,    83,     1,     1,
2147 <     149,   150,   100,    71,   100,    31,   100,   243,   427,   100,
2148 <     243,     1,   100,   432,   100,   100,   112,   113,     8,     9,
2149 <     100,   212,   197,   198,   443,   444,    98,   446,   243,    19,
2150 <     100,   104,   128,   129,   243,   454,   455,    27,   130,   458,
2151 <     125,    67,   100,    33,   133,   133,   100,    37,    38,   133,
2152 <      40,    10,   241,    12,   126,   133,    46,   204,   125,   144,
2153 <     133,   208,   158,   243,   110,    55,    56,   134,   135,    71,
2154 <      60,   243,   166,   243,   100,    65,   102,   103,   166,    69,
2155 <      70,     1,   166,    73,   640,    98,    76,    77,   166,   100,
2156 <     243,   178,   243,    13,    84,     1,   166,   100,     1,   178,
2157 <      90,    91,   169,    93,    94,    95,    96,    97,    28,    29,
2158 <     243,   241,     1,   126,    34,   245,    36,   143,   108,   145,
2159 <     146,   147,   148,   243,   209,   243,   116,   117,   118,   227,
2160 <     120,   133,    21,   123,   124,   241,   162,   127,   243,   245,
2161 <     243,   227,   227,   227,   563,   242,   242,   240,   138,   227,
2162 <     242,   242,   242,   242,   242,   166,   242,   242,    78,    79,
2163 <     227,   244,   188,   166,   242,    85,    86,     1,   232,   242,
2164 <     242,   131,   242,   163,   200,   242,   240,   167,   242,   244,
2165 <       1,   171,   172,   173,   174,   175,   106,   107,   242,   179,
2166 <     180,     1,   232,     3,   100,   244,     6,   100,   241,   189,
2167 <     240,   121,   122,    24,   131,   244,   241,   244,   234,   235,
2168 <     245,   630,   132,    51,    24,   104,   242,   244,   241,   638,
2169 <     639,   141,    43,   244,   227,     1,    47,     1,   239,   219,
2170 <     220,   242,   222,    43,    72,     1,    74,    47,   228,   242,
2171 <     244,   241,   241,   233,   133,   245,   245,   241,   238,   208,
2172 <     241,   245,   242,   241,   245,   244,    66,   245,    68,    35,
2173 <     166,   244,   221,   166,   241,    31,   100,   241,   245,   244,
2174 <      80,   245,    48,    47,   241,   244,     1,   115,   245,   100,
2175 <     244,   244,   110,     8,     9,    61,    62,    63,    64,   241,
2176 <     100,   241,    66,   245,    19,   245,   244,    71,   244,   133,
2177 <     244,    67,    27,   244,   125,    81,   244,   726,    33,   229,
2178 <     230,   231,    37,    38,   244,    40,   975,   976,   977,   244,
2179 <     130,    46,   242,   144,   227,   153,   154,   155,   156,   157,
2180 <      55,    56,   166,   239,   100,    60,   102,   103,   110,   244,
2181 <      65,   241,   244,   244,    69,    70,   244,   244,    73,   159,
2182 <     244,    76,    77,   191,   192,   243,   130,   244,   244,    84,
2183 <     244,   244,     1,   244,     3,    90,    91,     6,    93,    94,
2184 <      95,    96,    97,   244,   244,   244,   244,   143,   188,   145,
2185 <     146,   147,   148,   108,     5,    24,   244,   244,   209,   227,
2186 <     244,   116,   117,   118,   244,   120,   162,   244,   123,   124,
2187 <     244,   244,   127,   244,    43,   244,   227,   244,    47,   244,
2188 <       1,    32,   244,   138,   830,   831,   832,   833,   834,   244,
2189 <     244,   244,   188,   131,   234,   244,   244,    66,   244,    68,
2190 <      51,   244,   242,    24,   200,   244,    57,   244,   163,   244,
2191 <     244,    80,   167,   244,   244,     1,   171,   172,   173,   174,
2192 <     175,   244,    43,    74,   179,   180,    47,    13,   244,   244,
2193 <     244,   100,   244,   244,   189,   244,   244,   244,   234,   235,
2194 <     241,   244,    28,    29,   244,   244,   244,    98,    34,   244,
2195 <      36,    74,   244,   244,   105,   244,   244,   244,   244,   244,
2196 <     244,   130,   244,   244,   219,   220,   244,   222,   119,   244,
2197 <     244,   244,   244,   228,   244,    74,   244,   244,   233,   244,
2198 <     244,   244,   244,   238,   176,   110,   137,   176,   139,   140,
2199 <     159,   176,    78,    79,   110,   110,   110,   176,   176,    85,
2200 <      86,   110,   176,   176,   125,   176,   176,   241,   176,   241,
2201 <     241,   244,   131,   134,   135,   244,   244,   244,   244,   188,
2202 <     106,   107,   244,   244,   244,   244,   244,   244,   151,   244,
2203 <     244,   244,   244,   244,   244,   121,   122,     0,     1,   244,
2204 <     244,   192,     5,   244,   244,   244,   132,   244,   169,   244,
2205 <     244,   202,   151,   244,   244,   141,   244,   241,    21,   182,
2206 <     211,    24,    25,   244,   215,   234,   217,    30,   176,   192,
2207 <     110,   176,   176,   110,   131,   226,   199,   110,   176,   110,
2208 <       1,   110,    45,   182,  1170,   236,    49,    50,   211,    52,
2209 <     213,   214,   176,   192,    61,    58,   176,   176,   176,   131,
2210 <     199,    22,    23,   226,   110,    26,   227,   110,   110,    72,
2211 <     110,   131,   211,   236,   213,   214,   110,   110,   176,    82,
2212 <      83,   176,   244,   176,   244,   176,   176,   226,    61,   176,
2213 <     176,   176,   176,   110,   131,   176,    99,   236,   176,   241,
2214 <     176,   176,   176,   229,   230,   231,   131,   244,   244,   244,
2215 <     244,   241,   115,   244,   176,   244,    61,   244,   131,   244,
2216 <     176,   244,   244,   244,   241,   241,    87,    88,    89,   244,
2217 <     244,    92,   244,   244,   244,   241,   241,   244,   176,   100,
2218 <     244,   244,   244,   244,   244,   241,   131,   176,   151,   176,
2219 <     244,   112,   113,   131,   176,   244,   244,   160,   161,   241,
2220 <     131,   164,   165,   131,   131,   131,   131,   128,   129,   131,
2221 <     110,   131,   131,   131,   131,   241,   183,   184,   185,   186,
2222 <     187,   244,   241,   190,   191,   131,   244,   194,   195,   196,
2223 <     241,   244,   199,   241,   201,   202,   203,   158,   205,   206,
2224 <     207,   110,   241,   210,   110,   241,   241,   110,   110,   216,
2225 <     183,   184,   185,   186,   187,   218,   110,   190,   191,   110,
2226 <      20,   194,   195,   196,   131,   241,   199,   241,   201,   202,
2227 <     203,   241,   205,   206,   207,   241,   241,   210,   183,   184,
2228 <     185,   186,   187,   216,    44,   190,   191,   241,   241,   194,
2229 <     195,   196,   241,    53,   199,   241,   201,   202,   203,    59,
2230 <     205,   206,   207,   110,   241,   210,   241,   241,   110,   241,
2231 <     131,   216,   241,   131,   244,    75,   176,   241,   241,   131,
2232 <     131,   131,   131,   110,   110,   241,   241,   241,   131,   241,
2233 <     131,   131,   131,   131,   241,   131,   131,   241,   241,   176,
2234 <     241,   101,   244,   241,   241,   241,   241,   241,   241,   109,
2235 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2236 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2237 <     241,   241,   131,   241,   131,   131,   241,   241,   131,   176,
2238 <     241,   131,   241,   241,   241,   241,   241,   131,   241,   241,
2239 <     131,   241,   152,   241,   241,   241,   241,   241,   241,   241,
2240 <     241,   241,   241,   131,   131,   131,   244,   241,   244,   244,
2241 <     170,   241,   244,   241,   131,   244,   110,   241,   241,   241,
2242 <     131,   241,   176,   131,   131,   244,   131,   244,   131,   131,
2243 <     131,   131,   131,   241,   131,   241,   241,   241,   131,   110,
2244 <     136,   136,   131,  1055,    74,  1019,  1057,   241,   241,   241,
2245 <     241,   241,   241,   241,   285,  1309,   241,   241,   241,   241,
2246 <     241,   241,   241,   241,   241,   241,   241,   238,   241,   538,
2247 <     244,   241,   244,   241,   241,   241,   241,   241,   241,   241,
2248 <     241,  1280,  1278,   241,   514,  1268,   241,  1165,   489,   241,
2249 <     241,   181,   241,   241,   241,   241,   241,  1264,   241,   241,
2250 <     349,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2251 <     241,   241,   241,   552,  1282,   588,   241,   241,   241,   241,
2252 <     241,   241,   241,   241,  1284,   241,   241,   241,   241,   241,
2253 <    1254,   241,   241,  1266,   123,   504,  1256,   241,   179,   245,
2254 <    1118,  1116,  1260,    98,   596,   378,   244,  1262,    -1,    -1,
2306 <     241,    -1,   244,   241,   241,   241,   241,   241,   241,   241,
2307 <     241,   241,   241,   241,   241,    -1,   241,   241,   244,   241,
2308 <     396,   241,    -1,   246,    -1,    -1,    -1,    -1,    -1,    -1,
2309 <     472,   408,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2310 <      -1,    -1,   260,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2137 >     609,   610,   305,   306,   307,   107,     1,   225,     1,     1,
2138 >       8,     1,    48,   223,   224,    50,     1,     1,     1,     1,
2139 >       1,     1,     1,     6,     7,     1,   225,     1,     1,    12,
2140 >       1,    24,   223,     1,   223,    17,   227,    20,    31,  1048,
2141 >    1049,  1050,     1,    26,     1,    28,    29,    30,   206,    34,
2142 >      32,   209,    35,     1,   225,     1,     1,    40,    41,   223,
2143 >      43,    44,    45,   227,    47,   225,     1,     1,    60,     1,
2144 >      60,    54,   225,   223,    55,    58,    59,   227,   225,    60,
2145 >      62,    62,    55,     1,    67,    17,    60,    60,   123,    62,
2146 >      75,   225,    60,    76,   397,   398,    75,   225,   200,    94,
2147 >      32,    84,   405,    86,    97,    88,   409,    90,   225,    92,
2148 >      93,   414,     1,    97,   417,     1,   223,     1,     1,   225,
2149 >     227,    97,   105,   118,   427,   428,    97,   110,   111,   112,
2150 >      62,   114,   115,   116,   437,   117,   119,   440,   441,   124,
2151 >     121,    24,     1,   125,   126,   181,   225,     1,   121,    97,
2152 >     124,    97,    97,   124,   223,   191,   124,   223,   227,    94,
2153 >     225,   227,   145,   206,   146,    97,   209,   124,   151,   152,
2154 >     153,   154,   155,    56,     1,   225,   124,   223,   225,    97,
2155 >      63,   227,    36,   118,   225,   117,   166,   166,    15,    16,
2156 >     124,   225,    19,   191,    48,    49,   225,    51,    52,    53,
2157 >     183,   133,    85,   170,   171,   223,    89,   166,    97,   227,
2158 >     225,    97,   225,    97,    97,   225,    75,   100,   101,    73,
2159 >       9,    10,    11,   225,   207,   208,   529,   210,   211,   212,
2160 >     214,   224,   224,   216,   218,    62,   218,   217,   221,   224,
2161 >     224,   224,   224,     1,   224,     3,   223,     5,   224,   132,
2162 >     224,   224,   166,    80,    81,    82,    83,     1,   217,    17,
2163 >      87,   218,   195,   196,    91,   197,   149,   150,   214,   187,
2164 >      97,   226,   218,   226,    32,     1,   224,    21,    22,   195,
2165 >     196,   108,   109,    27,   218,   226,   218,   226,   226,   224,
2166 >     224,   174,   224,   120,   597,   226,   214,    55,   601,    57,
2167 >     226,   604,   226,   187,    62,   608,   224,   166,    34,   192,
2168 >     193,   194,   223,   223,    72,   142,   227,   227,   107,   223,
2169 >      64,    65,   223,   227,   226,   214,    70,    71,   214,     1,
2170 >     214,   226,   226,    77,    78,    79,   219,   220,   224,    97,
2171 >     122,   224,   223,   223,   226,     1,   227,   227,   226,    75,
2172 >     226,   178,    24,   226,    68,   226,   226,   226,    39,   103,
2173 >     104,     1,   226,   121,   226,   224,     6,     7,    24,   226,
2174 >     224,   226,    12,   226,   226,    31,   226,     1,   226,   226,
2175 >      20,   226,   226,   141,    56,    66,    26,    68,    28,    29,
2176 >      30,    63,   226,    17,   226,    35,   226,   224,   124,   206,
2177 >      40,    41,   226,    43,    44,    45,    13,    47,    32,   226,
2178 >     226,   226,   226,    85,    54,   226,   130,    89,    58,    59,
2179 >     226,   226,   226,   226,   226,    97,    33,    67,   100,   101,
2180 >     226,   226,   113,     4,   192,    42,    76,   107,    62,   226,
2181 >     226,    97,   156,   226,    84,   226,    86,    18,    88,   163,
2182 >      90,   226,    92,    93,    25,   226,   226,    68,   172,   226,
2183 >     132,   219,    69,   226,   226,   105,   224,   226,    39,   226,
2184 >     110,   111,   112,    97,   114,   115,   116,   149,   150,   119,
2185 >     224,   162,   163,   226,   226,   199,   226,   201,   202,   226,
2186 >     226,    98,    99,   117,     1,    66,   226,    68,   226,   106,
2187 >     122,   215,   174,   226,   226,   145,   226,   226,   222,   133,
2188 >      17,   151,   152,   153,   154,   155,   226,   226,   226,   130,
2189 >     192,   193,   194,    94,   131,    32,   226,   226,     1,   226,
2190 >       3,   226,     5,   226,   226,   226,   226,   218,   226,   226,
2191 >     147,   226,   226,   183,    17,   156,   226,   219,   220,   226,
2192 >     226,   226,   163,   226,   223,    62,   127,   122,   129,    32,
2193 >     226,   172,   226,   223,   107,   107,   107,   207,   208,   107,
2194 >     210,   211,   212,   197,   107,  1184,   216,   148,   107,   206,
2195 >     206,   221,    55,   226,    57,   223,   223,   226,   199,    62,
2196 >     201,   202,   163,   226,   218,   226,   226,   168,   205,    72,
2197 >     122,   172,   107,   226,   215,   226,   177,   226,   226,   180,
2198 >     117,   222,     0,     1,   185,   223,     4,   226,   125,   126,
2199 >     226,   226,   226,   226,    97,   226,    14,   226,   199,    17,
2200 >      18,   226,     1,   204,   226,    23,   226,   226,   226,   146,
2201 >     226,     1,   226,   226,   215,   226,    34,   226,   121,    37,
2202 >      38,   222,   226,   226,   226,    15,    16,   223,   226,    19,
2203 >     792,   793,   794,   795,   796,   797,   798,    36,   141,   226,
2204 >     206,   206,   206,    61,   107,     1,   122,   107,    66,    48,
2205 >      49,   206,    51,    52,    53,   107,    74,   206,   107,   107,
2206 >     206,   206,    48,   206,   107,    21,    22,   107,   107,   107,
2207 >     107,    27,    62,   107,    73,   206,   226,    95,    96,   206,
2208 >     206,   218,   134,   135,   136,   137,   138,   139,   140,   192,
2209 >      80,    81,    82,    83,   226,   113,   206,    87,   206,   206,
2210 >     206,    91,   206,   122,   206,    48,   206,    97,    64,    65,
2211 >     206,   206,   130,   226,    70,    71,   219,   226,   108,   109,
2212 >     122,    77,    78,    79,   223,   143,   144,   122,   226,   223,
2213 >     120,   122,   107,   226,   226,   226,   226,   226,   226,   223,
2214 >      48,   226,   160,   226,   226,   223,   223,   103,   104,   223,
2215 >     206,   226,   142,   226,   226,   173,   226,   226,   226,   226,
2216 >     226,   223,   226,   122,   182,   226,   223,   226,   186,   122,
2217 >     206,   157,   158,   159,   206,   161,   162,   206,   164,   165,
2218 >     206,   167,   206,   169,   107,   122,   172,   122,   178,   175,
2219 >     176,   177,   122,   179,   122,   122,   122,   107,   184,   226,
2220 >     122,   122,   188,   189,   190,   122,   223,   223,   206,   223,
2221 >     225,   122,   198,   223,   157,   158,   159,   203,   161,   162,
2222 >     223,   164,   165,   223,   167,   226,   169,   107,   107,   172,
2223 >     226,   223,   175,   176,   177,   223,   179,   226,   223,   223,
2224 >     223,   184,   223,   223,   223,   188,   189,   190,   107,   157,
2225 >     158,   159,   223,   161,   162,   198,   164,   165,   223,   167,
2226 >     203,   169,   223,   223,   172,   223,   223,   175,   176,   177,
2227 >     107,   179,   107,   107,   122,   107,   184,   107,   107,   223,
2228 >     188,   189,   190,   122,   122,   226,   206,   107,   226,   122,
2229 >     198,   122,   223,   107,   122,   203,   122,   122,   122,   122,
2230 >     122,   122,   226,   122,   223,   223,   122,   223,   223,   223,
2231 >     223,   223,   122,   122,   223,   122,   223,   223,   223,   223,
2232 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2233 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2234 >     223,   223,   223,   122,   206,   223,   223,   223,   223,   223,
2235 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2236 >     223,   122,   223,   122,   122,   223,   122,   122,   107,   223,
2237 >     223,   223,   122,   122,   223,   122,   226,   122,   122,   206,
2238 >     122,   226,   122,   223,   122,   122,   122,   223,   122,   122,
2239 >     122,    74,  1258,  1001,   491,  1014,  1224,  1222,  1003,   504,
2240 >     332,  1203,   262,  1214,  1109,   223,   223,   478,   223,   107,
2241 >     223,   223,   223,   455,  1212,   223,  1233,   223,   223,   223,
2242 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2243 >     223,   223,   122,   223,   223,   226,   223,   223,   226,   223,
2244 >     223,   223,   223,   223,   128,   223,   223,   223,   223,   223,
2245 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2246 >     223,   223,   128,   223,   128,   518,   223,  1226,  1208,   223,
2247 >     223,   223,   223,   111,   555,   223,   164,   223,  1077,  1079,
2248 >     223,   468,   223,    92,   571,    -1,    -1,    -1,   223,    -1,
2249 >      -1,    -1,   223,   223,   223,   223,   223,   223,   223,   223,
2250 >     223,   223,   213,   223,   223,   223,   227,   223,   223,   223,
2251 >     223,   223,    -1,   223,   223,   223,   223,   223,   364,    -1,
2252 >     223,   226,   226,   223,   223,   382,   228,   228,   223,   223,
2253 >     226,   228,   223,   220,   223,    -1,   392,    -1,    -1,    -1,
2254 >      -1,    -1,    -1,   235,    -1,    -1,    -1,    -1,    -1,    -1,
2255        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2256 +      -1,    -1,    -1,    -1,    -1,    -1,    -1,   284,    -1,    -1,
2257        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2258        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2259 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,   306
2259 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   291
2260   };
2261  
2262   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2263     symbol of state STATE-NUM.  */
2264   static const yytype_uint16 yystos[] =
2265   {
2266 <       0,   247,     0,     1,     5,    21,    24,    25,    30,    45,
2267 <      49,    50,    52,    58,    72,    82,    83,    99,   115,   151,
2268 <     160,   161,   164,   165,   218,   248,   253,   258,   280,   286,
2269 <     300,   318,   335,   349,   364,   371,   375,   385,   394,   414,
2270 <     424,   430,   434,   444,   504,   520,   541,   241,   242,   243,
2271 <     243,   319,   395,   425,   243,   435,   243,   505,   350,   415,
2272 <     336,   243,   243,   301,   365,   243,   243,   376,   386,   243,
2273 <       1,    31,    41,   100,   281,   282,   283,   284,   285,     1,
2274 <      13,    28,    29,    34,    36,    78,    79,    85,    86,   106,
2275 <     107,   121,   122,   132,   141,   229,   230,   231,   521,   522,
2276 <     523,   524,   525,   526,   527,   528,   529,   530,   531,   532,
2277 <     533,   534,   535,   536,   537,   538,   539,   540,   243,   243,
2278 <     243,     1,    71,   431,   432,   433,   243,     1,     8,     9,
2279 <      19,    27,    33,    37,    38,    40,    46,    55,    56,    60,
2280 <      65,    69,    70,    73,    76,    77,    84,    90,    91,    93,
2281 <      94,    95,    96,    97,   108,   116,   117,   118,   120,   123,
2282 <     124,   127,   138,   163,   167,   171,   172,   173,   174,   175,
2283 <     179,   180,   189,   219,   220,   222,   228,   233,   238,   445,
2284 <     446,   447,   448,   449,   450,   451,   452,   453,   454,   455,
2285 <     456,   457,   458,   459,   460,   461,   462,   463,   464,   465,
2286 <     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
2287 <     476,   477,   478,   479,   480,   481,   482,   483,   484,   485,
2288 <     486,   487,   488,   489,   490,   491,   492,   496,   500,   501,
2289 <     502,   503,   243,   243,   243,   243,     1,   232,   287,   288,
2290 <     289,   290,   291,     1,    98,   126,   254,   255,   256,   257,
2291 <     243,   243,     1,    35,    48,    61,    62,    63,    64,    81,
2292 <     542,   543,   544,   545,   546,   547,   548,   549,   550,     1,
2293 <      31,    67,   100,   102,   103,   143,   145,   146,   147,   148,
2294 <     162,   188,   200,   234,   235,   259,   260,   261,   262,   267,
2295 <     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
2296 <     278,   279,   243,   243,     1,   100,   372,   373,   374,   241,
2297 <     244,   244,   244,   242,   282,   244,   244,   244,   244,   244,
2298 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2299 <     244,   244,   244,   242,   522,     1,    22,    23,    26,    87,
2300 <      88,    89,    92,   100,   112,   113,   128,   129,   158,   320,
2301 <     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
2302 <     331,   332,   333,   334,     1,     3,     6,    24,    43,    47,
2303 <      66,    68,    80,   100,   130,   159,   188,   234,   396,   397,
2304 <     398,   399,   400,   401,   402,   403,   404,   405,   409,   410,
2305 <     411,   412,   413,     1,    71,   133,   426,   427,   428,   429,
2306 <     244,   242,   432,     1,   100,   133,   166,   436,   440,   441,
2307 <     442,   443,   244,   244,   244,   244,   244,   244,   244,   244,
2308 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2309 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2310 <     497,   244,   493,   244,   244,   244,   244,   244,   244,   244,
2311 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2312 <     244,   244,   244,   242,   446,     1,     4,    39,    42,    83,
2313 <     100,   227,   506,   507,   508,   509,   510,   514,   515,   516,
2314 <       1,    24,    43,    47,   125,   134,   135,   169,   227,   351,
2315 <     352,   353,   354,   355,   356,   357,   361,   362,   363,     1,
2316 <     133,   166,   227,   416,   420,   421,   422,   423,     1,    47,
2317 <      66,    71,   130,   337,   341,   342,   343,   347,   348,   241,
2318 <     244,   242,   288,   240,   241,   244,   244,   242,   255,     1,
2319 <      24,    43,    47,   100,   125,   144,   209,   227,   302,   303,
2320 <     304,   305,   306,   307,   308,   309,   310,   314,     1,    21,
2321 <     104,   133,   366,   367,   368,   369,   370,   244,   244,   244,
2322 <     244,   244,   244,   244,   242,   543,   241,   244,   244,   244,
2323 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2324 <     244,   244,   242,   260,     1,   100,   166,   227,   377,   378,
2325 <     379,   380,   381,     1,   100,   166,   387,   388,   389,   390,
2326 <     244,   242,   373,   131,   131,   131,   241,   176,   110,   110,
2327 <     176,   176,   110,   250,   250,   110,   110,   176,   176,   110,
2328 <     250,   176,   176,   176,   176,   176,   241,   241,   244,   244,
2329 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2330 <     244,   242,   321,   241,   244,   244,   244,   244,   406,   244,
2331 <     244,   244,   244,   244,   244,   244,   244,   242,   397,   244,
2332 <     244,   242,   427,   131,   241,   244,   244,   437,   242,   441,
2333 <     176,   250,   250,   110,   176,   176,   110,   131,   176,   110,
2334 <     110,   110,   176,   176,   176,   250,   131,   176,   110,   110,
2335 <     250,   110,   110,   131,   110,   110,   176,   176,   244,   176,
2336 <     244,   250,   250,   176,   250,   176,   176,   176,   176,   177,
2337 <     176,   177,   176,   176,   250,   250,   110,   252,   131,   250,
2338 <     176,   176,   176,   176,   241,   517,   244,   244,   511,   244,
2339 <     244,   242,   507,   241,   244,   244,   358,   244,   244,   244,
2340 <     244,   244,   242,   352,   244,   417,   244,   242,   421,   241,
2341 <     338,   244,   244,   244,   242,   342,   176,   241,   243,   131,
2342 <     131,   241,   241,   244,   244,   315,   244,   244,   244,   311,
2343 <     244,   242,   303,   241,   244,   244,   244,   242,   367,   176,
2344 <     176,   176,   131,   176,   176,   250,   241,   131,   176,   131,
2345 <     131,   131,   131,   131,   131,   149,   150,   263,   264,   149,
2346 <     150,   265,   266,   131,   131,   110,   131,   131,   241,   241,
2347 <     244,   382,   244,   242,   378,   241,   244,   391,   242,   388,
2348 <     131,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2349 <     153,   154,   155,   156,   157,   249,   250,   241,   241,   241,
2350 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2351 <     110,   110,   250,   110,   110,   110,   110,   131,   110,   110,
2352 <     250,   250,   252,   241,   131,   197,   198,   131,   176,   244,
2353 <     131,   131,   131,   131,   110,   131,   131,   131,   241,   131,
2354 <     131,   241,   241,   131,   131,   244,   241,   241,   241,   241,
2355 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2356 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2357 <     241,   241,   241,   241,   241,    61,   183,   184,   185,   186,
2358 <     187,   190,   191,   194,   195,   196,   199,   201,   202,   203,
2359 <     205,   206,   207,   210,   216,   498,   499,   241,    61,   183,
2360 <     184,   185,   186,   187,   190,   191,   194,   195,   196,   199,
2361 <     201,   202,   203,   205,   206,   207,   210,   216,   494,   495,
2362 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2363 <     241,   241,   241,   241,   241,    14,    15,    16,   251,   252,
2364 <     241,   241,   241,   241,   241,   241,   241,   244,   250,   176,
2365 <     244,   131,   131,   241,   131,   176,   244,   131,   110,   131,
2366 <     131,   131,   241,   131,   244,   131,   241,   244,   131,   131,
2367 <     110,   345,   346,   241,   241,     1,   100,   166,   239,   292,
2368 <     293,   294,   295,   296,   241,   241,   131,   176,   244,   131,
2369 <     131,   131,   244,   131,   241,   131,   131,   131,   241,   241,
2370 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2371 <     241,   241,   241,   241,   241,   245,   241,   245,   241,   241,
2372 <     241,   241,   241,   131,   244,   131,   241,   131,   244,   241,
2373 <     241,   249,   249,   249,   249,   249,   241,   241,   241,   241,
2374 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2375 <     241,   241,   241,   241,    10,    12,   208,   221,   407,   408,
2376 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2377 <     241,   241,   136,   438,   439,   241,   245,   241,   245,   251,
2378 <     251,   251,    11,   178,   518,   519,   241,   241,    11,   178,
2379 <     512,   513,   241,   241,   241,   241,    20,    44,    53,    59,
2380 <      75,   101,   109,   152,   170,   359,   360,   241,   241,   241,
2381 <     241,   241,   241,   136,   418,   419,   241,    61,   204,   208,
2382 <     339,   340,   241,   241,   181,   245,   344,   241,   244,   297,
2383 <     244,   242,   293,   241,   241,     5,    32,    51,    57,    74,
2384 <      98,   105,   119,   137,   139,   140,   192,   202,   211,   215,
2385 <     217,   226,   236,   316,   317,   241,   241,   241,    61,   183,
2386 <     184,   185,   186,   187,   190,   191,   194,   195,   196,   199,
2387 <     201,   202,   203,   205,   206,   207,   210,   216,   312,   313,
2388 <     241,   241,   241,   241,   264,   266,   241,    74,   151,   182,
2389 <     192,   199,   211,   213,   214,   226,   236,   383,   384,   241,
2390 <     241,    74,   151,   182,   192,   199,   211,   213,   214,   226,
2391 <     236,   392,   393,   241,   245,   241,   245,   499,   495,   241,
2447 <     245,   241,   245,   241,   245,   241,   245,   241,   245,   110,
2448 <     346,   241,   131,   244,   212,   252,   241,   241,   245,   241,
2449 <     245,   241,   245,   241,   245,   408,   439,   519,   513,   360,
2450 <     419,   340,   241,    51,    72,    74,   115,   191,   192,   227,
2451 <     298,   299,   241,   241,   317,   313,   384,   393,   241,   245,
2452 <     299
2266 >       0,   230,     0,     1,     4,    14,    17,    18,    23,    34,
2267 >      37,    38,    61,    66,    74,    95,    96,   113,   130,   143,
2268 >     144,   160,   173,   182,   186,   231,   236,   241,   265,   271,
2269 >     277,   291,   309,   332,   346,   361,   368,   372,   382,   391,
2270 >     411,   417,   423,   427,   433,   490,   505,   223,   224,   225,
2271 >     225,   310,   392,   418,   225,   428,   225,   347,   412,   333,
2272 >     225,   272,   292,   362,   225,   225,   383,   225,   225,   373,
2273 >       1,    24,    31,    97,   266,   267,   268,   269,   270,     1,
2274 >      21,    22,    27,    64,    65,    70,    71,    77,    78,    79,
2275 >     103,   104,   491,   492,   493,   494,   495,   496,   497,   498,
2276 >     499,   500,   501,   502,   503,   504,   225,   225,   225,     1,
2277 >      60,   424,   425,   426,   225,     1,     6,     7,    12,    20,
2278 >      26,    28,    29,    30,    35,    40,    41,    43,    44,    45,
2279 >      47,    54,    58,    59,    67,    76,    84,    86,    88,    90,
2280 >      92,    93,   105,   110,   111,   112,   114,   115,   116,   119,
2281 >     145,   151,   152,   153,   154,   155,   183,   207,   208,   210,
2282 >     211,   212,   216,   221,   434,   435,   436,   437,   438,   439,
2283 >     440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
2284 >     450,   451,   452,   453,   454,   455,   456,   457,   458,   459,
2285 >     460,   461,   462,   463,   464,   465,   466,   467,   468,   469,
2286 >     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
2287 >     483,   487,   488,   489,   225,   225,   225,     1,    94,   118,
2288 >     237,   238,   239,   240,   225,   225,   225,     1,    36,    48,
2289 >      49,    51,    52,    53,    73,   506,   507,   508,   509,   510,
2290 >     511,   512,   513,   514,     1,    24,    56,    63,    85,    89,
2291 >      97,   100,   101,   132,   149,   150,   174,   192,   193,   194,
2292 >     219,   220,   242,   243,   244,   245,   250,   251,   252,   253,
2293 >     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
2294 >     264,   225,     1,   217,   278,   279,   280,   281,   282,     1,
2295 >      97,   369,   370,   371,   225,   223,   226,   226,   226,   224,
2296 >     267,   226,   226,   226,   226,   226,   226,   226,   226,   226,
2297 >     226,   226,   226,   224,   492,     1,    15,    16,    19,    62,
2298 >      80,    81,    82,    83,    87,    91,    97,   108,   109,   120,
2299 >     142,   178,   311,   312,   313,   314,   315,   316,   317,   318,
2300 >     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
2301 >       1,     3,     5,    17,    32,    55,    57,    62,    72,    97,
2302 >     121,   141,   192,   219,   393,   394,   395,   396,   397,   398,
2303 >     399,   400,   401,   402,   406,   407,   408,   409,   410,     1,
2304 >      60,   124,   419,   420,   421,   422,   226,   224,   425,     1,
2305 >      97,   124,   429,   430,   431,   432,   226,   226,   226,   226,
2306 >     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
2307 >     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
2308 >     226,   226,   226,   484,   226,   480,   226,   226,   226,   226,
2309 >     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
2310 >     226,   226,   226,   226,   224,   435,     1,    17,    32,    62,
2311 >     117,   125,   126,   146,   218,   348,   349,   350,   351,   352,
2312 >     353,   354,   358,   359,   360,     1,   124,   218,   413,   414,
2313 >     415,   416,     1,    55,    60,    62,   121,   334,   338,   339,
2314 >     340,   344,   345,   223,   226,   226,   224,   238,     1,    75,
2315 >     166,   273,   274,   275,   276,     1,    17,    32,    62,    97,
2316 >     117,   133,   197,   218,   293,   294,   295,   296,   297,   298,
2317 >     299,   300,   301,   305,     1,    34,    75,   124,   363,   364,
2318 >     365,   366,   367,   226,   226,   226,   226,   226,   226,   226,
2319 >     224,   507,   223,   226,   226,   226,   226,   226,   226,   226,
2320 >     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
2321 >     224,   243,     1,    97,   214,   384,   385,   386,   387,   223,
2322 >     226,   224,   279,   166,   226,   224,   370,     1,    97,   214,
2323 >     218,   374,   375,   376,   377,   378,   122,   122,   122,   223,
2324 >     107,   107,   206,   107,   107,   233,   233,   233,   107,   107,
2325 >     107,   206,   206,   223,   223,   226,   226,   226,   329,   226,
2326 >     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
2327 >     226,   224,   312,   223,   226,   226,   226,   226,   226,   226,
2328 >     403,   226,   226,   226,   226,   226,   226,   224,   394,   226,
2329 >     226,   224,   420,   122,   223,   226,   226,   224,   430,   206,
2330 >     233,   233,   107,   206,   206,   107,   122,   206,   233,   206,
2331 >     107,   107,   233,   107,   206,   206,   206,   233,   107,   107,
2332 >     233,   107,   107,   107,   107,   206,   226,   206,   226,   206,
2333 >     233,   233,   206,   206,   206,   206,   209,   206,   209,   206,
2334 >     206,   122,   233,   206,   206,   233,   233,   206,   206,   223,
2335 >     223,   226,   226,   355,   226,   226,   226,   226,   226,   224,
2336 >     349,   226,   226,   224,   414,   223,   226,   226,   335,   226,
2337 >     224,   339,   122,   122,   223,   223,   226,   226,   224,   274,
2338 >     223,   226,   226,   306,   226,   226,   226,   302,   226,   224,
2339 >     294,   223,   226,   226,   226,   224,   364,   206,   206,   122,
2340 >     206,   206,   206,   233,   223,   122,   206,   122,   107,   107,
2341 >     122,   122,   122,   122,   122,   122,   107,   122,   195,   196,
2342 >     246,   247,   195,   196,   248,   249,   122,   122,   223,   223,
2343 >     226,   388,   224,   385,   206,   223,   225,   122,   223,   223,
2344 >     226,   379,   226,   224,   375,   223,   223,   223,   223,   223,
2345 >     223,   223,   134,   135,   136,   137,   138,   139,   140,   232,
2346 >     233,   223,   223,   223,   223,   223,   223,   223,   223,   107,
2347 >     107,   233,   226,   107,   107,   233,   107,   107,   233,   122,
2348 >     107,   107,   233,   107,   235,   235,   223,   122,   170,   171,
2349 >     122,   206,   122,   122,   226,   122,   122,   107,   122,   122,
2350 >     122,   223,   122,   122,   223,   223,   122,   122,   223,   223,
2351 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2352 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2353 >     223,   223,   223,   223,   223,   223,    48,   157,   158,   159,
2354 >     161,   162,   164,   165,   167,   169,   172,   175,   176,   177,
2355 >     179,   184,   188,   189,   190,   198,   203,   485,   486,   223,
2356 >      48,   157,   158,   159,   161,   162,   164,   165,   167,   169,
2357 >     172,   175,   176,   177,   179,   184,   188,   189,   190,   198,
2358 >     203,   481,   482,   223,   223,   223,   223,   223,   223,   223,
2359 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2360 >     223,   223,   223,   122,   206,   226,   122,   107,   122,   122,
2361 >     122,   223,   122,   122,   223,   122,   122,   226,   107,   342,
2362 >     343,   223,   223,   223,   122,   122,   223,   122,   206,   226,
2363 >     122,   122,   122,   226,   122,   223,   122,   122,   122,   223,
2364 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2365 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2366 >     223,   227,   223,   227,   223,   223,   122,   226,   223,   223,
2367 >       1,    97,   187,   214,   283,   284,   285,   286,   287,   223,
2368 >     122,   226,   122,   223,   232,   232,   232,   232,   232,   232,
2369 >     232,   223,   223,   223,    50,   123,   330,   331,   223,   223,
2370 >     223,   223,   223,   223,   223,   223,   223,   223,     9,    10,
2371 >      11,   234,   235,   223,   223,   223,   223,   223,   223,   223,
2372 >     223,   223,     8,   191,   404,   405,   223,   223,   223,   223,
2373 >     223,   223,   223,   223,   223,   223,   223,   227,   223,   227,
2374 >     223,   223,    13,    33,    42,    69,    98,    99,   106,   131,
2375 >     147,   205,   356,   357,   223,   223,   223,   223,   223,   223,
2376 >     223,   223,   223,    48,   181,   191,   336,   337,   213,   227,
2377 >     341,   223,   223,   223,   223,     4,    18,    25,    39,    66,
2378 >      68,    94,   127,   129,   148,   163,   168,   172,   177,   180,
2379 >     185,   199,   204,   215,   222,   307,   308,   223,   223,   223,
2380 >      48,   157,   158,   159,   161,   162,   164,   165,   167,   169,
2381 >     172,   175,   176,   177,   179,   184,   188,   189,   190,   198,
2382 >     203,   303,   304,   223,   223,   223,   223,   247,   249,   223,
2383 >      68,   130,   156,   163,   172,   199,   201,   202,   215,   222,
2384 >     389,   390,   223,   226,   226,   288,   224,   284,   223,    68,
2385 >     130,   156,   163,   172,   199,   201,   202,   215,   222,   380,
2386 >     381,   223,   223,   227,   234,   234,   234,   223,   227,   486,
2387 >     482,   223,   227,   223,   227,   107,   343,   223,   228,   228,
2388 >     228,   223,   227,   223,   227,   223,   227,   122,   200,   235,
2389 >     226,   223,   223,   227,   331,   405,   357,   337,   128,   128,
2390 >     128,   308,   304,   390,   223,   223,   223,    39,    66,    68,
2391 >     113,   162,   163,   218,   289,   290,   381,   223,   227,   290
2392   };
2393  
2394   #define yyerrok         (yyerrstatus = 0)
# Line 2479 | Line 2418 | static const yytype_uint16 yystos[] =
2418  
2419   #define YYRECOVERING()  (!!yyerrstatus)
2420  
2421 < #define YYBACKUP(Token, Value)                                  \
2422 < do                                                              \
2423 <  if (yychar == YYEMPTY && yylen == 1)                          \
2424 <    {                                                           \
2425 <      yychar = (Token);                                         \
2426 <      yylval = (Value);                                         \
2427 <      YYPOPSTACK (1);                                           \
2428 <      goto yybackup;                                            \
2429 <    }                                                           \
2430 <  else                                                          \
2431 <    {                                                           \
2421 > #define YYBACKUP(Token, Value)                                  \
2422 > do                                                              \
2423 >  if (yychar == YYEMPTY)                                        \
2424 >    {                                                           \
2425 >      yychar = (Token);                                         \
2426 >      yylval = (Value);                                         \
2427 >      YYPOPSTACK (yylen);                                       \
2428 >      yystate = *yyssp;                                         \
2429 >      goto yybackup;                                            \
2430 >    }                                                           \
2431 >  else                                                          \
2432 >    {                                                           \
2433        yyerror (YY_("syntax error: cannot back up")); \
2434        YYERROR;                                                  \
2435      }                                                           \
2436   while (YYID (0))
2437  
2438 <
2438 > /* Error token number */
2439   #define YYTERROR        1
2440   #define YYERRCODE       256
2441  
2442  
2503 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2504   If N is 0, then set CURRENT to the empty location which ends
2505   the previous symbol: RHS[0] (always defined).  */
2506
2507 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2508 #ifndef YYLLOC_DEFAULT
2509 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2510    do                                                                  \
2511      if (YYID (N))                                                    \
2512        {                                                               \
2513          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2514          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2515          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2516          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2517        }                                                               \
2518      else                                                              \
2519        {                                                               \
2520          (Current).first_line   = (Current).last_line   =              \
2521            YYRHSLOC (Rhs, 0).last_line;                                \
2522          (Current).first_column = (Current).last_column =              \
2523            YYRHSLOC (Rhs, 0).last_column;                              \
2524        }                                                               \
2525    while (YYID (0))
2526 #endif
2527
2528
2443   /* This macro is provided for backward compatibility. */
2530
2444   #ifndef YY_LOCATION_PRINT
2445   # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2446   #endif
2447  
2448  
2449   /* YYLEX -- calling `yylex' with the right arguments.  */
2537
2450   #ifdef YYLEX_PARAM
2451   # define YYLEX yylex (YYLEX_PARAM)
2452   #else
# Line 2584 | Line 2496 | yy_symbol_value_print (yyoutput, yytype,
2496      YYSTYPE const * const yyvaluep;
2497   #endif
2498   {
2499 +  FILE *yyo = yyoutput;
2500 +  YYUSE (yyo);
2501    if (!yyvaluep)
2502      return;
2503   # ifdef YYPRINT
# Line 2592 | Line 2506 | yy_symbol_value_print (yyoutput, yytype,
2506   # else
2507    YYUSE (yyoutput);
2508   # endif
2509 <  switch (yytype)
2596 <    {
2597 <      default:
2598 <        break;
2599 <    }
2509 >  YYUSE (yytype);
2510   }
2511  
2512  
# Line 2835 | Line 2745 | static int
2745   yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2746                  yytype_int16 *yyssp, int yytoken)
2747   {
2748 <  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
2748 >  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
2749    YYSIZE_T yysize = yysize0;
2840  YYSIZE_T yysize1;
2750    enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2751    /* Internationalized format string. */
2752 <  const char *yyformat = 0;
2752 >  const char *yyformat = YY_NULL;
2753    /* Arguments of yyformat. */
2754    char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2755    /* Number of reported tokens (one for the "unexpected", one per
# Line 2900 | Line 2809 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2809                      break;
2810                    }
2811                  yyarg[yycount++] = yytname[yyx];
2812 <                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
2813 <                if (! (yysize <= yysize1
2814 <                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2815 <                  return 2;
2816 <                yysize = yysize1;
2812 >                {
2813 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2814 >                  if (! (yysize <= yysize1
2815 >                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2816 >                    return 2;
2817 >                  yysize = yysize1;
2818 >                }
2819                }
2820          }
2821      }
# Line 2924 | Line 2835 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2835   # undef YYCASE_
2836      }
2837  
2838 <  yysize1 = yysize + yystrlen (yyformat);
2839 <  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2840 <    return 2;
2841 <  yysize = yysize1;
2838 >  {
2839 >    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2840 >    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2841 >      return 2;
2842 >    yysize = yysize1;
2843 >  }
2844  
2845    if (*yymsg_alloc < yysize)
2846      {
# Line 2983 | Line 2896 | yydestruct (yymsg, yytype, yyvaluep)
2896      yymsg = "Deleting";
2897    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2898  
2899 <  switch (yytype)
2987 <    {
2988 <
2989 <      default:
2990 <        break;
2991 <    }
2899 >  YYUSE (yytype);
2900   }
2901  
2902  
2995 /* Prevent warnings from -Wmissing-prototypes.  */
2996 #ifdef YYPARSE_PARAM
2997 #if defined __STDC__ || defined __cplusplus
2998 int yyparse (void *YYPARSE_PARAM);
2999 #else
3000 int yyparse ();
3001 #endif
3002 #else /* ! YYPARSE_PARAM */
3003 #if defined __STDC__ || defined __cplusplus
3004 int yyparse (void);
3005 #else
3006 int yyparse ();
3007 #endif
3008 #endif /* ! YYPARSE_PARAM */
2903  
2904  
2905   /* The lookahead symbol.  */
2906   int yychar;
2907  
2908 +
2909 + #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2910 + # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2911 + # define YY_IGNORE_MAYBE_UNINITIALIZED_END
2912 + #endif
2913 + #ifndef YY_INITIAL_VALUE
2914 + # define YY_INITIAL_VALUE(Value) /* Nothing. */
2915 + #endif
2916 +
2917   /* The semantic value of the lookahead symbol.  */
2918 < YYSTYPE yylval;
2918 > YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
2919  
2920   /* Number of syntax errors so far.  */
2921   int yynerrs;
# Line 3052 | Line 2955 | yyparse ()
2955         `yyss': related to states.
2956         `yyvs': related to semantic values.
2957  
2958 <       Refer to the stacks thru separate pointers, to allow yyoverflow
2958 >       Refer to the stacks through separate pointers, to allow yyoverflow
2959         to reallocate them elsewhere.  */
2960  
2961      /* The state stack.  */
# Line 3070 | Line 2973 | yyparse ()
2973    int yyn;
2974    int yyresult;
2975    /* Lookahead token as an internal (translated) token number.  */
2976 <  int yytoken;
2976 >  int yytoken = 0;
2977    /* The variables used to return semantic value and location from the
2978       action routines.  */
2979    YYSTYPE yyval;
# Line 3088 | Line 2991 | yyparse ()
2991       Keep to zero when no symbol should be popped.  */
2992    int yylen = 0;
2993  
2994 <  yytoken = 0;
2995 <  yyss = yyssa;
3093 <  yyvs = yyvsa;
2994 >  yyssp = yyss = yyssa;
2995 >  yyvsp = yyvs = yyvsa;
2996    yystacksize = YYINITDEPTH;
2997  
2998    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 3099 | Line 3001 | yyparse ()
3001    yyerrstatus = 0;
3002    yynerrs = 0;
3003    yychar = YYEMPTY; /* Cause a token to be read.  */
3102
3103  /* Initialize stack pointers.
3104     Waste one element of value and location stack
3105     so that they stay on the same level as the state stack.
3106     The wasted elements are never initialized.  */
3107  yyssp = yyss;
3108  yyvsp = yyvs;
3109
3004    goto yysetstate;
3005  
3006   /*------------------------------------------------------------.
# Line 3247 | Line 3141 | yybackup:
3141    yychar = YYEMPTY;
3142  
3143    yystate = yyn;
3144 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3145    *++yyvsp = yylval;
3146 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
3147  
3148    goto yynewstate;
3149  
# Line 3284 | Line 3180 | yyreduce:
3180    switch (yyn)
3181      {
3182          case 27:
3183 <
3184 < /* Line 1806 of yacc.c  */
3289 < #line 409 "conf_parser.y"
3183 > /* Line 1787 of yacc.c  */
3184 > #line 395 "conf_parser.y"
3185      { (yyval.number) = 0; }
3186      break;
3187  
3188    case 29:
3189 <
3190 < /* Line 1806 of yacc.c  */
3296 < #line 411 "conf_parser.y"
3189 > /* Line 1787 of yacc.c  */
3190 > #line 397 "conf_parser.y"
3191      {
3192                          (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3193                  }
3194      break;
3195  
3196    case 30:
3197 <
3198 < /* Line 1806 of yacc.c  */
3305 < #line 415 "conf_parser.y"
3197 > /* Line 1787 of yacc.c  */
3198 > #line 401 "conf_parser.y"
3199      {
3200                          (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3201                  }
3202      break;
3203  
3204    case 31:
3205 <
3206 < /* Line 1806 of yacc.c  */
3314 < #line 419 "conf_parser.y"
3205 > /* Line 1787 of yacc.c  */
3206 > #line 405 "conf_parser.y"
3207      {
3208                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3209                  }
3210      break;
3211  
3212    case 32:
3213 <
3214 < /* Line 1806 of yacc.c  */
3323 < #line 423 "conf_parser.y"
3213 > /* Line 1787 of yacc.c  */
3214 > #line 409 "conf_parser.y"
3215      {
3216                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3217                  }
3218      break;
3219  
3220    case 33:
3221 <
3222 < /* Line 1806 of yacc.c  */
3332 < #line 427 "conf_parser.y"
3221 > /* Line 1787 of yacc.c  */
3222 > #line 413 "conf_parser.y"
3223      {
3224                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3225                  }
3226      break;
3227  
3228    case 34:
3229 <
3230 < /* Line 1806 of yacc.c  */
3341 < #line 431 "conf_parser.y"
3229 > /* Line 1787 of yacc.c  */
3230 > #line 417 "conf_parser.y"
3231      {
3232                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3233                  }
3234      break;
3235  
3236    case 35:
3237 + /* Line 1787 of yacc.c  */
3238 + #line 421 "conf_parser.y"
3239 +    {
3240 +                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[(3) - (3)].number);
3241 +                }
3242 +    break;
3243  
3244 < /* Line 1806 of yacc.c  */
3245 < #line 436 "conf_parser.y"
3246 <    { (yyval.number) = 0; }
3244 >  case 36:
3245 > /* Line 1787 of yacc.c  */
3246 > #line 425 "conf_parser.y"
3247 >    {
3248 >                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 365 + (yyvsp[(3) - (3)].number);
3249 >                }
3250      break;
3251  
3252    case 37:
3253 + /* Line 1787 of yacc.c  */
3254 + #line 430 "conf_parser.y"
3255 +    { (yyval.number) = 0; }
3256 +    break;
3257  
3258 < /* Line 1806 of yacc.c  */
3259 < #line 437 "conf_parser.y"
3258 >  case 39:
3259 > /* Line 1787 of yacc.c  */
3260 > #line 431 "conf_parser.y"
3261      { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
3262      break;
3263  
3264 <  case 38:
3265 <
3266 < /* Line 1806 of yacc.c  */
3364 < #line 438 "conf_parser.y"
3264 >  case 40:
3265 > /* Line 1787 of yacc.c  */
3266 > #line 432 "conf_parser.y"
3267      { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
3268      break;
3269  
3270 <  case 39:
3271 <
3272 < /* Line 1806 of yacc.c  */
3371 < #line 439 "conf_parser.y"
3270 >  case 41:
3271 > /* Line 1787 of yacc.c  */
3272 > #line 433 "conf_parser.y"
3273      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
3274      break;
3275  
3276 <  case 40:
3277 <
3278 < /* Line 1806 of yacc.c  */
3378 < #line 440 "conf_parser.y"
3276 >  case 42:
3277 > /* Line 1787 of yacc.c  */
3278 > #line 434 "conf_parser.y"
3279      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
3280      break;
3281  
3282 <  case 47:
3283 <
3284 < /* Line 1806 of yacc.c  */
3385 < #line 454 "conf_parser.y"
3282 >  case 49:
3283 > /* Line 1787 of yacc.c  */
3284 > #line 448 "conf_parser.y"
3285      {
3286    if (conf_parser_ctx.pass == 2)
3287      add_conf_module(libio_basename(yylval.string));
3288   }
3289      break;
3290  
3291 <  case 48:
3292 <
3293 < /* Line 1806 of yacc.c  */
3395 < #line 460 "conf_parser.y"
3291 >  case 50:
3292 > /* Line 1787 of yacc.c  */
3293 > #line 454 "conf_parser.y"
3294      {
3295    if (conf_parser_ctx.pass == 2)
3296      mod_add_path(yylval.string);
3297   }
3298      break;
3299  
3300 <  case 72:
3301 <
3302 < /* Line 1806 of yacc.c  */
3405 < #line 485 "conf_parser.y"
3300 >  case 76:
3301 > /* Line 1787 of yacc.c  */
3302 > #line 480 "conf_parser.y"
3303      {
3304   #ifdef HAVE_LIBCRYPTO
3305    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
# Line 3411 | Line 3308 | yyreduce:
3308   }
3309      break;
3310  
3311 <  case 73:
3312 <
3313 < /* Line 1806 of yacc.c  */
3417 < #line 491 "conf_parser.y"
3311 >  case 77:
3312 > /* Line 1787 of yacc.c  */
3313 > #line 486 "conf_parser.y"
3314      {
3315   #ifdef HAVE_LIBCRYPTO
3316    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
# Line 3423 | Line 3319 | yyreduce:
3319   }
3320      break;
3321  
3322 <  case 76:
3323 <
3324 < /* Line 1806 of yacc.c  */
3429 < #line 500 "conf_parser.y"
3322 >  case 80:
3323 > /* Line 1787 of yacc.c  */
3324 > #line 495 "conf_parser.y"
3325      {
3326   #ifdef HAVE_LIBCRYPTO
3327    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3435 | Line 3330 | yyreduce:
3330   }
3331      break;
3332  
3333 <  case 77:
3334 <
3335 < /* Line 1806 of yacc.c  */
3441 < #line 506 "conf_parser.y"
3333 >  case 81:
3334 > /* Line 1787 of yacc.c  */
3335 > #line 501 "conf_parser.y"
3336      {
3337   #ifdef HAVE_LIBCRYPTO
3338    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3447 | Line 3341 | yyreduce:
3341   }
3342      break;
3343  
3344 <  case 78:
3345 <
3346 < /* Line 1806 of yacc.c  */
3453 < #line 514 "conf_parser.y"
3344 >  case 82:
3345 > /* Line 1787 of yacc.c  */
3346 > #line 509 "conf_parser.y"
3347      {
3348   #ifdef HAVE_LIBCRYPTO
3349    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3350    {
3351      if (!ServerInfo.rsa_private_key_file)
3352      {
3353 <      yyerror("No rsa_private_key_file specified, SSL disabled");
3353 >      conf_error_report("No rsa_private_key_file specified, SSL disabled");
3354        break;
3355      }
3356  
# Line 3466 | Line 3359 | yyreduce:
3359          SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3360                                       SSL_FILETYPE_PEM) <= 0)
3361      {
3362 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3362 >      report_crypto_errors();
3363 >      conf_error_report("Could not open/read certificate file");
3364        break;
3365      }
3366  
# Line 3475 | Line 3369 | yyreduce:
3369          SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3370                                      SSL_FILETYPE_PEM) <= 0)
3371      {
3372 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3372 >      report_crypto_errors();
3373 >      conf_error_report("Could not read RSA private key");
3374        break;
3375      }
3376  
3377      if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3378          !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3379      {
3380 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3380 >      report_crypto_errors();
3381 >      conf_error_report("Could not read RSA private key");
3382        break;
3383      }
3384    }
# Line 3490 | Line 3386 | yyreduce:
3386   }
3387      break;
3388  
3389 <  case 79:
3390 <
3391 < /* Line 1806 of yacc.c  */
3496 < #line 553 "conf_parser.y"
3389 >  case 83:
3390 > /* Line 1787 of yacc.c  */
3391 > #line 551 "conf_parser.y"
3392      {
3393   #ifdef HAVE_LIBCRYPTO
3394 <  if (conf_parser_ctx.pass == 1)
3500 <  {
3501 <    BIO *file;
3394 >  BIO *file = NULL;
3395  
3396 <    if (ServerInfo.rsa_private_key)
3397 <    {
3505 <      RSA_free(ServerInfo.rsa_private_key);
3506 <      ServerInfo.rsa_private_key = NULL;
3507 <    }
3396 >  if (conf_parser_ctx.pass != 1)
3397 >    break;
3398  
3399 <    if (ServerInfo.rsa_private_key_file)
3400 <    {
3401 <      MyFree(ServerInfo.rsa_private_key_file);
3402 <      ServerInfo.rsa_private_key_file = NULL;
3403 <    }
3399 >  if (ServerInfo.rsa_private_key)
3400 >  {
3401 >    RSA_free(ServerInfo.rsa_private_key);
3402 >    ServerInfo.rsa_private_key = NULL;
3403 >  }
3404  
3405 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3405 >  if (ServerInfo.rsa_private_key_file)
3406 >  {
3407 >    MyFree(ServerInfo.rsa_private_key_file);
3408 >    ServerInfo.rsa_private_key_file = NULL;
3409 >  }
3410  
3411 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3518 <    {
3519 <      yyerror("File open failed, ignoring");
3520 <      break;
3521 <    }
3411 >  ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3412  
3413 <    ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3413 >  if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3414 >  {
3415 >    conf_error_report("File open failed, ignoring");
3416 >    break;
3417 >  }
3418  
3419 <    BIO_set_close(file, BIO_CLOSE);
3526 <    BIO_free(file);
3419 >  ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3420  
3421 <    if (ServerInfo.rsa_private_key == NULL)
3422 <    {
3530 <      yyerror("Couldn't extract key, ignoring");
3531 <      break;
3532 <    }
3421 >  BIO_set_close(file, BIO_CLOSE);
3422 >  BIO_free(file);
3423  
3424 <    if (!RSA_check_key(ServerInfo.rsa_private_key))
3425 <    {
3426 <      RSA_free(ServerInfo.rsa_private_key);
3427 <      ServerInfo.rsa_private_key = NULL;
3424 >  if (ServerInfo.rsa_private_key == NULL)
3425 >  {
3426 >    conf_error_report("Couldn't extract key, ignoring");
3427 >    break;
3428 >  }
3429  
3430 <      yyerror("Invalid key, ignoring");
3431 <      break;
3432 <    }
3430 >  if (!RSA_check_key(ServerInfo.rsa_private_key))
3431 >  {
3432 >    RSA_free(ServerInfo.rsa_private_key);
3433 >    ServerInfo.rsa_private_key = NULL;
3434  
3435 <    /* require 2048 bit (256 byte) key */
3436 <    if (RSA_size(ServerInfo.rsa_private_key) != 256)
3437 <    {
3546 <      RSA_free(ServerInfo.rsa_private_key);
3547 <      ServerInfo.rsa_private_key = NULL;
3435 >    conf_error_report("Invalid key, ignoring");
3436 >    break;
3437 >  }
3438  
3439 <      yyerror("Not a 2048 bit key, ignoring");
3440 <    }
3439 >  /* require 2048 bit (256 byte) key */
3440 >  if (RSA_size(ServerInfo.rsa_private_key) != 256)
3441 >  {
3442 >    RSA_free(ServerInfo.rsa_private_key);
3443 >    ServerInfo.rsa_private_key = NULL;
3444 >
3445 >    conf_error_report("Not a 2048 bit key, ignoring");
3446    }
3447   #endif
3448   }
3449      break;
3450  
3451 <  case 80:
3452 <
3453 < /* Line 1806 of yacc.c  */
3559 < #line 612 "conf_parser.y"
3451 >  case 84:
3452 > /* Line 1787 of yacc.c  */
3453 > #line 610 "conf_parser.y"
3454      {
3455   /* TBD - XXX: error reporting */
3456   #ifdef HAVE_LIBCRYPTO
# Line 3573 | Line 3467 | yyreduce:
3467        if (dh)
3468        {
3469          if (DH_size(dh) < 128)
3470 <          ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3470 >          conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3471          else
3472            SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3473  
# Line 3585 | Line 3479 | yyreduce:
3479   }
3480      break;
3481  
3482 <  case 81:
3483 <
3484 < /* Line 1806 of yacc.c  */
3591 < #line 640 "conf_parser.y"
3482 >  case 85:
3483 > /* Line 1787 of yacc.c  */
3484 > #line 638 "conf_parser.y"
3485      {
3486   #ifdef HAVE_LIBCRYPTO
3487    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3597 | Line 3490 | yyreduce:
3490   }
3491      break;
3492  
3493 <  case 82:
3494 <
3495 < /* Line 1806 of yacc.c  */
3603 < #line 648 "conf_parser.y"
3493 >  case 86:
3494 > /* Line 1787 of yacc.c  */
3495 > #line 646 "conf_parser.y"
3496      {
3497    /* this isn't rehashable */
3498    if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3499    {
3500      if (valid_servname(yylval.string))
3501 <      DupString(ServerInfo.name, yylval.string);
3501 >      ServerInfo.name = xstrdup(yylval.string);
3502      else
3503      {
3504 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::name -- invalid name. Aborting.");
3504 >      conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3505        exit(0);
3506      }
3507    }
3508   }
3509      break;
3510  
3511 <  case 83:
3512 <
3513 < /* Line 1806 of yacc.c  */
3622 < #line 663 "conf_parser.y"
3511 >  case 87:
3512 > /* Line 1787 of yacc.c  */
3513 > #line 661 "conf_parser.y"
3514      {
3515    /* this isn't rehashable */
3516    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3517    {
3518      if (valid_sid(yylval.string))
3519 <      DupString(ServerInfo.sid, yylval.string);
3519 >      ServerInfo.sid = xstrdup(yylval.string);
3520      else
3521      {
3522 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
3522 >      conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3523        exit(0);
3524      }
3525    }
3526   }
3527      break;
3528  
3529 <  case 84:
3530 <
3531 < /* Line 1806 of yacc.c  */
3641 < #line 678 "conf_parser.y"
3529 >  case 88:
3530 > /* Line 1787 of yacc.c  */
3531 > #line 676 "conf_parser.y"
3532      {
3533    if (conf_parser_ctx.pass == 2)
3534    {
3535      MyFree(ServerInfo.description);
3536 <    DupString(ServerInfo.description,yylval.string);
3536 >    ServerInfo.description = xstrdup(yylval.string);
3537    }
3538   }
3539      break;
3540  
3541 <  case 85:
3542 <
3543 < /* Line 1806 of yacc.c  */
3654 < #line 687 "conf_parser.y"
3541 >  case 89:
3542 > /* Line 1787 of yacc.c  */
3543 > #line 685 "conf_parser.y"
3544      {
3545    if (conf_parser_ctx.pass == 2)
3546    {
# Line 3661 | Line 3550 | yyreduce:
3550        p = '\0';
3551  
3552      MyFree(ServerInfo.network_name);
3553 <    DupString(ServerInfo.network_name, yylval.string);
3553 >    ServerInfo.network_name = xstrdup(yylval.string);
3554    }
3555   }
3556      break;
3557  
3558 <  case 86:
3559 <
3560 < /* Line 1806 of yacc.c  */
3672 < #line 701 "conf_parser.y"
3558 >  case 90:
3559 > /* Line 1787 of yacc.c  */
3560 > #line 699 "conf_parser.y"
3561      {
3562 <  if (conf_parser_ctx.pass == 2)
3675 <  {
3676 <    MyFree(ServerInfo.network_desc);
3677 <    DupString(ServerInfo.network_desc, yylval.string);
3678 <  }
3679 < }
3562 >  if (conf_parser_ctx.pass != 2)
3563      break;
3564  
3565 <  case 87:
3565 >  MyFree(ServerInfo.network_desc);
3566 >  ServerInfo.network_desc = xstrdup(yylval.string);
3567 > }
3568 >    break;
3569  
3570 < /* Line 1806 of yacc.c  */
3571 < #line 710 "conf_parser.y"
3570 >  case 91:
3571 > /* Line 1787 of yacc.c  */
3572 > #line 708 "conf_parser.y"
3573      {
3574    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3575    {
# Line 3711 | Line 3598 | yyreduce:
3598   }
3599      break;
3600  
3601 <  case 88:
3602 <
3603 < /* Line 1806 of yacc.c  */
3717 < #line 738 "conf_parser.y"
3601 >  case 92:
3602 > /* Line 1787 of yacc.c  */
3603 > #line 736 "conf_parser.y"
3604      {
3605   #ifdef IPV6
3606    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3745 | Line 3631 | yyreduce:
3631   }
3632      break;
3633  
3634 <  case 89:
3635 <
3636 < /* Line 1806 of yacc.c  */
3751 < #line 768 "conf_parser.y"
3634 >  case 93:
3635 > /* Line 1787 of yacc.c  */
3636 > #line 766 "conf_parser.y"
3637      {
3638 <  if (conf_parser_ctx.pass == 2)
3638 >  if (conf_parser_ctx.pass != 2)
3639 >    break;
3640 >
3641 >  if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3642    {
3643 <    recalc_fdlimit(NULL);
3643 >    char buf[IRCD_BUFSIZE];
3644  
3645 <    if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3646 <    {
3647 <      char buf[IRCD_BUFSIZE];
3760 <      ircsprintf(buf, "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3761 <      yyerror(buf);
3762 <    }
3763 <    else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3764 <    {
3765 <      char buf[IRCD_BUFSIZE];
3766 <      ircsprintf(buf, "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3767 <      yyerror(buf);
3768 <    }
3769 <    else
3770 <      ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3645 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3646 >    conf_error_report(buf);
3647 >    ServerInfo.max_clients = MAXCLIENTS_MIN;
3648    }
3649 +  else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3650 +  {
3651 +    char buf[IRCD_BUFSIZE];
3652 +
3653 +    snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3654 +    conf_error_report(buf);
3655 +    ServerInfo.max_clients = MAXCLIENTS_MAX;
3656 +  }
3657 +  else
3658 +    ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3659   }
3660      break;
3661  
3662 <  case 90:
3663 <
3777 < /* Line 1806 of yacc.c  */
3662 >  case 94:
3663 > /* Line 1787 of yacc.c  */
3664   #line 791 "conf_parser.y"
3665      {
3666 <  if (conf_parser_ctx.pass == 2)
3781 <    ServerInfo.hub = yylval.number;
3782 < }
3666 >  if (conf_parser_ctx.pass != 2)
3667      break;
3668  
3669 <  case 98:
3786 <
3787 < /* Line 1806 of yacc.c  */
3788 < #line 806 "conf_parser.y"
3789 <    {
3790 <  if (conf_parser_ctx.pass == 2)
3669 >  if ((yyvsp[(3) - (4)].number) < 9)
3670    {
3671 <    MyFree(AdminInfo.name);
3672 <    DupString(AdminInfo.name, yylval.string);
3671 >    conf_error_report("max_nick_length too low, setting to 9");
3672 >    ServerInfo.max_nick_length = 9;
3673    }
3674 +  else if ((yyvsp[(3) - (4)].number) > NICKLEN)
3675 +  {
3676 +    char buf[IRCD_BUFSIZE];
3677 +
3678 +    snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3679 +    conf_error_report(buf);
3680 +    ServerInfo.max_nick_length = NICKLEN;
3681 +  }
3682 +  else
3683 +    ServerInfo.max_nick_length = (yyvsp[(3) - (4)].number);
3684   }
3685      break;
3686  
3687 <  case 99:
3688 <
3689 < /* Line 1806 of yacc.c  */
3801 < #line 815 "conf_parser.y"
3687 >  case 95:
3688 > /* Line 1787 of yacc.c  */
3689 > #line 813 "conf_parser.y"
3690      {
3691 <  if (conf_parser_ctx.pass == 2)
3691 >  if (conf_parser_ctx.pass != 2)
3692 >    break;
3693 >
3694 >  if ((yyvsp[(3) - (4)].number) < 80)
3695 >  {
3696 >    conf_error_report("max_topic_length too low, setting to 80");
3697 >    ServerInfo.max_topic_length = 80;
3698 >  }
3699 >  else if ((yyvsp[(3) - (4)].number) > TOPICLEN)
3700    {
3701 <    MyFree(AdminInfo.email);
3702 <    DupString(AdminInfo.email, yylval.string);
3701 >    char buf[IRCD_BUFSIZE];
3702 >
3703 >    snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3704 >    conf_error_report(buf);
3705 >    ServerInfo.max_topic_length = TOPICLEN;
3706    }
3707 +  else
3708 +    ServerInfo.max_topic_length = (yyvsp[(3) - (4)].number);
3709   }
3710      break;
3711  
3712 <  case 100:
3713 <
3714 < /* Line 1806 of yacc.c  */
3814 < #line 824 "conf_parser.y"
3712 >  case 96:
3713 > /* Line 1787 of yacc.c  */
3714 > #line 835 "conf_parser.y"
3715      {
3716    if (conf_parser_ctx.pass == 2)
3717 <  {
3818 <    MyFree(AdminInfo.description);
3819 <    DupString(AdminInfo.description, yylval.string);
3820 <  }
3717 >    ServerInfo.hub = yylval.number;
3718   }
3719      break;
3720  
3721 <  case 107:
3722 <
3723 < /* Line 1806 of yacc.c  */
3827 < #line 842 "conf_parser.y"
3721 >  case 104:
3722 > /* Line 1787 of yacc.c  */
3723 > #line 850 "conf_parser.y"
3724      {
3725 <  if (conf_parser_ctx.pass == 2)
3830 <    ConfigLoggingEntry.use_logging = yylval.number;
3831 < }
3725 >  if (conf_parser_ctx.pass != 2)
3726      break;
3727  
3728 <  case 108:
3728 >  MyFree(AdminInfo.name);
3729 >  AdminInfo.name = xstrdup(yylval.string);
3730 > }
3731 >    break;
3732  
3733 < /* Line 1806 of yacc.c  */
3734 < #line 848 "conf_parser.y"
3733 >  case 105:
3734 > /* Line 1787 of yacc.c  */
3735 > #line 859 "conf_parser.y"
3736      {
3737 <  lfile[0] = '\0';
3840 <  ltype = 0;
3841 <  lsize = 0;
3842 < }
3737 >  if (conf_parser_ctx.pass != 2)
3738      break;
3739  
3740 <  case 109:
3740 >  MyFree(AdminInfo.email);
3741 >  AdminInfo.email = xstrdup(yylval.string);
3742 > }
3743 >    break;
3744  
3745 < /* Line 1806 of yacc.c  */
3746 < #line 853 "conf_parser.y"
3745 >  case 106:
3746 > /* Line 1787 of yacc.c  */
3747 > #line 868 "conf_parser.y"
3748      {
3749 <  if (conf_parser_ctx.pass == 2 && ltype > 0)
3851 <    log_add_file(ltype, lsize, lfile);
3852 < }
3749 >  if (conf_parser_ctx.pass != 2)
3750      break;
3751  
3752 <  case 116:
3752 >  MyFree(AdminInfo.description);
3753 >  AdminInfo.description = xstrdup(yylval.string);
3754 > }
3755 >    break;
3756  
3757 < /* Line 1806 of yacc.c  */
3758 < #line 865 "conf_parser.y"
3757 >  case 107:
3758 > /* Line 1787 of yacc.c  */
3759 > #line 880 "conf_parser.y"
3760      {
3761 <  strlcpy(lfile, yylval.string, sizeof(lfile));
3761 >  if (conf_parser_ctx.pass == 2)
3762 >    reset_block_state();
3763   }
3764      break;
3765  
3766 <  case 117:
3767 <
3768 < /* Line 1806 of yacc.c  */
3867 < #line 870 "conf_parser.y"
3766 >  case 108:
3767 > /* Line 1787 of yacc.c  */
3768 > #line 884 "conf_parser.y"
3769      {
3770 <  lsize = (yyvsp[(3) - (4)].number);
3771 < }
3770 >  dlink_node *ptr = NULL;
3771 >
3772 >  if (conf_parser_ctx.pass != 2)
3773 >    break;
3774 >
3775 >  if (!block_state.file.buf[0])
3776      break;
3777  
3778 <  case 118:
3778 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3779 >    motd_add(ptr->data, block_state.file.buf);
3780 > }
3781 >    break;
3782  
3783 < /* Line 1806 of yacc.c  */
3784 < #line 873 "conf_parser.y"
3783 >  case 114:
3784 > /* Line 1787 of yacc.c  */
3785 > #line 901 "conf_parser.y"
3786      {
3787 <  lsize = 0;
3787 >  if (conf_parser_ctx.pass == 2)
3788 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3789   }
3790      break;
3791  
3792 <  case 119:
3792 >  case 115:
3793 > /* Line 1787 of yacc.c  */
3794 > #line 907 "conf_parser.y"
3795 >    {
3796 >  if (conf_parser_ctx.pass == 2)
3797 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3798 > }
3799 >    break;
3800  
3801 < /* Line 1806 of yacc.c  */
3802 < #line 878 "conf_parser.y"
3801 >  case 122:
3802 > /* Line 1787 of yacc.c  */
3803 > #line 922 "conf_parser.y"
3804      {
3805    if (conf_parser_ctx.pass == 2)
3806 <    ltype = 0;
3806 >    ConfigLoggingEntry.use_logging = yylval.number;
3807   }
3808      break;
3809  
3810    case 123:
3811 <
3812 < /* Line 1806 of yacc.c  */
3895 < #line 885 "conf_parser.y"
3811 > /* Line 1787 of yacc.c  */
3812 > #line 928 "conf_parser.y"
3813      {
3814    if (conf_parser_ctx.pass == 2)
3815 <    ltype = LOG_TYPE_USER;
3815 >    reset_block_state();
3816   }
3817      break;
3818  
3819    case 124:
3820 <
3821 < /* Line 1806 of yacc.c  */
3905 < #line 889 "conf_parser.y"
3820 > /* Line 1787 of yacc.c  */
3821 > #line 932 "conf_parser.y"
3822      {
3823 <  if (conf_parser_ctx.pass == 2)
3824 <    ltype = LOG_TYPE_OPER;
3823 >  if (conf_parser_ctx.pass != 2)
3824 >    break;
3825 >
3826 >  if (block_state.type.value && block_state.file.buf[0])
3827 >    log_set_file(block_state.type.value, block_state.size.value,
3828 >                 block_state.file.buf);
3829   }
3830      break;
3831  
3832 <  case 125:
3832 >  case 131:
3833 > /* Line 1787 of yacc.c  */
3834 > #line 948 "conf_parser.y"
3835 >    {
3836 >  if (conf_parser_ctx.pass != 2)
3837 >    break;
3838 >
3839 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3840 > }
3841 >    break;
3842  
3843 < /* Line 1806 of yacc.c  */
3844 < #line 893 "conf_parser.y"
3843 >  case 132:
3844 > /* Line 1787 of yacc.c  */
3845 > #line 956 "conf_parser.y"
3846      {
3847 <  if (conf_parser_ctx.pass == 2)
3918 <    ltype = LOG_TYPE_GLINE;
3847 >  block_state.size.value = (yyvsp[(3) - (4)].number);
3848   }
3849      break;
3850  
3851 <  case 126:
3851 >  case 133:
3852 > /* Line 1787 of yacc.c  */
3853 > #line 959 "conf_parser.y"
3854 >    {
3855 >  block_state.size.value = 0;
3856 > }
3857 >    break;
3858  
3859 < /* Line 1806 of yacc.c  */
3860 < #line 897 "conf_parser.y"
3859 >  case 134:
3860 > /* Line 1787 of yacc.c  */
3861 > #line 964 "conf_parser.y"
3862      {
3863    if (conf_parser_ctx.pass == 2)
3864 <    ltype = LOG_TYPE_DLINE;
3864 >    block_state.type.value = 0;
3865   }
3866      break;
3867  
3868 <  case 127:
3869 <
3870 < /* Line 1806 of yacc.c  */
3935 < #line 901 "conf_parser.y"
3868 >  case 138:
3869 > /* Line 1787 of yacc.c  */
3870 > #line 971 "conf_parser.y"
3871      {
3872    if (conf_parser_ctx.pass == 2)
3873 <    ltype = LOG_TYPE_KLINE;
3873 >    block_state.type.value = LOG_TYPE_USER;
3874   }
3875      break;
3876  
3877 <  case 128:
3878 <
3879 < /* Line 1806 of yacc.c  */
3945 < #line 905 "conf_parser.y"
3877 >  case 139:
3878 > /* Line 1787 of yacc.c  */
3879 > #line 975 "conf_parser.y"
3880      {
3881    if (conf_parser_ctx.pass == 2)
3882 <    ltype = LOG_TYPE_KILL;
3882 >    block_state.type.value = LOG_TYPE_OPER;
3883   }
3884      break;
3885  
3886 <  case 129:
3887 <
3888 < /* Line 1806 of yacc.c  */
3955 < #line 909 "conf_parser.y"
3886 >  case 140:
3887 > /* Line 1787 of yacc.c  */
3888 > #line 979 "conf_parser.y"
3889      {
3890    if (conf_parser_ctx.pass == 2)
3891 <    ltype = LOG_TYPE_DEBUG;
3891 >    block_state.type.value = LOG_TYPE_GLINE;
3892   }
3893      break;
3894  
3895 <  case 130:
3896 <
3897 < /* Line 1806 of yacc.c  */
3965 < #line 919 "conf_parser.y"
3895 >  case 141:
3896 > /* Line 1787 of yacc.c  */
3897 > #line 983 "conf_parser.y"
3898      {
3899    if (conf_parser_ctx.pass == 2)
3900 <  {
3969 <    yy_conf = make_conf_item(OPER_TYPE);
3970 <    yy_aconf = map_to_conf(yy_conf);
3971 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
3972 <  }
3973 <  else
3974 <  {
3975 <    MyFree(class_name);
3976 <    class_name = NULL;
3977 <  }
3900 >    block_state.type.value = LOG_TYPE_DLINE;
3901   }
3902      break;
3903  
3904 <  case 131:
3905 <
3906 < /* Line 1806 of yacc.c  */
3984 < #line 932 "conf_parser.y"
3904 >  case 142:
3905 > /* Line 1787 of yacc.c  */
3906 > #line 987 "conf_parser.y"
3907      {
3908    if (conf_parser_ctx.pass == 2)
3909 <  {
3910 <    struct CollectItem *yy_tmp;
3911 <    dlink_node *ptr;
3990 <    dlink_node *next_ptr;
3909 >    block_state.type.value = LOG_TYPE_KLINE;
3910 > }
3911 >    break;
3912  
3913 <    conf_add_class_to_conf(yy_conf, class_name);
3913 >  case 143:
3914 > /* Line 1787 of yacc.c  */
3915 > #line 991 "conf_parser.y"
3916 >    {
3917 >  if (conf_parser_ctx.pass == 2)
3918 >    block_state.type.value = LOG_TYPE_KILL;
3919 > }
3920 >    break;
3921  
3922 <    /* Now, make sure there is a copy of the "base" given oper
3923 <     * block in each of the collected copies
3924 <     */
3922 >  case 144:
3923 > /* Line 1787 of yacc.c  */
3924 > #line 995 "conf_parser.y"
3925 >    {
3926 >  if (conf_parser_ctx.pass == 2)
3927 >    block_state.type.value = LOG_TYPE_DEBUG;
3928 > }
3929 >    break;
3930  
3931 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3931 >  case 145:
3932 > /* Line 1787 of yacc.c  */
3933 > #line 1005 "conf_parser.y"
3934      {
3935 <      struct AccessItem *new_aconf;
3936 <      struct ConfItem *new_conf;
4002 <      yy_tmp = ptr->data;
3935 >  if (conf_parser_ctx.pass != 2)
3936 >    break;
3937  
3938 <      new_conf = make_conf_item(OPER_TYPE);
3939 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
3938 >  reset_block_state();
3939 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3940 > }
3941 >    break;
3942  
3943 <      new_aconf->flags = yy_aconf->flags;
3943 >  case 146:
3944 > /* Line 1787 of yacc.c  */
3945 > #line 1012 "conf_parser.y"
3946 >    {
3947 >  dlink_node *ptr = NULL;
3948  
3949 <      if (yy_conf->name != NULL)
3950 <        DupString(new_conf->name, yy_conf->name);
4011 <      if (yy_tmp->user != NULL)
4012 <        DupString(new_aconf->user, yy_tmp->user);
4013 <      else
4014 <        DupString(new_aconf->user, "*");
4015 <      if (yy_tmp->host != NULL)
4016 <        DupString(new_aconf->host, yy_tmp->host);
4017 <      else
4018 <        DupString(new_aconf->host, "*");
3949 >  if (conf_parser_ctx.pass != 2)
3950 >    break;
3951  
3952 <      new_aconf->type = parse_netmask(new_aconf->host, &new_aconf->ipnum,
3953 <                                     &new_aconf->bits);
3952 >  if (!block_state.name.buf[0])
3953 >    break;
3954 > #ifdef HAVE_LIBCRYPTO
3955 >  if (!block_state.file.buf[0] &&
3956 >      !block_state.rpass.buf[0])
3957 >    break;
3958 > #else
3959 >  if (!block_state.rpass.buf[0])
3960 >    break;
3961 > #endif
3962  
3963 <      conf_add_class_to_conf(new_conf, class_name);
3964 <      if (yy_aconf->passwd != NULL)
3965 <        DupString(new_aconf->passwd, yy_aconf->passwd);
3963 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3964 >  {
3965 >    struct MaskItem *conf = NULL;
3966 >    struct split_nuh_item nuh;
3967  
3968 <      new_aconf->port = yy_aconf->port;
3969 < #ifdef HAVE_LIBCRYPTO
3970 <      if (yy_aconf->rsa_public_key_file != NULL)
3971 <      {
3972 <        BIO *file;
3968 >    nuh.nuhmask  = ptr->data;
3969 >    nuh.nickptr  = NULL;
3970 >    nuh.userptr  = block_state.user.buf;
3971 >    nuh.hostptr  = block_state.host.buf;
3972 >    nuh.nicksize = 0;
3973 >    nuh.usersize = sizeof(block_state.user.buf);
3974 >    nuh.hostsize = sizeof(block_state.host.buf);
3975 >    split_nuh(&nuh);
3976  
3977 <        DupString(new_aconf->rsa_public_key_file,
3978 <                  yy_aconf->rsa_public_key_file);
3977 >    conf        = conf_make(CONF_OPER);
3978 >    conf->name  = xstrdup(block_state.name.buf);
3979 >    conf->user  = xstrdup(block_state.user.buf);
3980 >    conf->host  = xstrdup(block_state.host.buf);
3981 >
3982 >    if (block_state.rpass.buf[0])
3983 >      conf->passwd = xstrdup(block_state.rpass.buf);
3984 >
3985 >    conf->flags = block_state.flags.value;
3986 >    conf->modes = block_state.modes.value;
3987 >    conf->port  = block_state.port.value;
3988 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3989  
3990 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
4037 <        new_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file,
4038 <                                                           NULL, 0, NULL);
4039 <        BIO_set_close(file, BIO_CLOSE);
4040 <        BIO_free(file);
4041 <      }
4042 < #endif
3990 >    conf_add_class_to_conf(conf, block_state.class.buf);
3991  
3992   #ifdef HAVE_LIBCRYPTO
3993 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
3994 <          && yy_tmp->host)
3995 < #else
3996 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
3997 < #endif
3993 >    if (block_state.file.buf[0])
3994 >    {
3995 >      BIO *file = NULL;
3996 >      RSA *pkey = NULL;
3997 >
3998 >      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3999        {
4000 <        conf_add_class_to_conf(new_conf, class_name);
4001 <        if (yy_tmp->name != NULL)
4053 <          DupString(new_conf->name, yy_tmp->name);
4000 >        conf_error_report("Ignoring rsa_public_key_file -- file doesn't exist");
4001 >        break;
4002        }
4003  
4004 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4005 <      free_collect_item(yy_tmp);
4058 <    }
4059 <
4060 <    yy_conf = NULL;
4061 <    yy_aconf = NULL;
4004 >      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
4005 >        conf_error_report("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
4006  
4007 <
4008 <    MyFree(class_name);
4009 <    class_name = NULL;
4007 >      conf->rsa_public_key = pkey;
4008 >      BIO_set_close(file, BIO_CLOSE);
4009 >      BIO_free(file);
4010 >    }
4011 > #endif /* HAVE_LIBCRYPTO */
4012    }
4013   }
4014      break;
4015  
4016 <  case 143:
4017 <
4018 < /* Line 1806 of yacc.c  */
4073 < #line 1022 "conf_parser.y"
4016 >  case 158:
4017 > /* Line 1787 of yacc.c  */
4018 > #line 1087 "conf_parser.y"
4019      {
4020    if (conf_parser_ctx.pass == 2)
4021 <  {
4077 <    if (strlen(yylval.string) > OPERNICKLEN)
4078 <      yylval.string[OPERNICKLEN] = '\0';
4079 <
4080 <    MyFree(yy_conf->name);
4081 <    DupString(yy_conf->name, yylval.string);
4082 <  }
4021 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4022   }
4023      break;
4024  
4025 <  case 144:
4026 <
4027 < /* Line 1806 of yacc.c  */
4089 < #line 1034 "conf_parser.y"
4025 >  case 159:
4026 > /* Line 1787 of yacc.c  */
4027 > #line 1093 "conf_parser.y"
4028      {
4029    if (conf_parser_ctx.pass == 2)
4030 <  {
4031 <    struct split_nuh_item nuh;
4032 <
4095 <    nuh.nuhmask  = yylval.string;
4096 <    nuh.nickptr  = NULL;
4097 <    nuh.userptr  = userbuf;
4098 <    nuh.hostptr  = hostbuf;
4099 <
4100 <    nuh.nicksize = 0;
4101 <    nuh.usersize = sizeof(userbuf);
4102 <    nuh.hostsize = sizeof(hostbuf);
4103 <
4104 <    split_nuh(&nuh);
4030 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4031 > }
4032 >    break;
4033  
4034 <    if (yy_aconf->user == NULL)
4034 >  case 160:
4035 > /* Line 1787 of yacc.c  */
4036 > #line 1099 "conf_parser.y"
4037      {
4038 <      DupString(yy_aconf->user, userbuf);
4039 <      DupString(yy_aconf->host, hostbuf);
4038 >  if (conf_parser_ctx.pass == 2)
4039 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4040 > }
4041 >    break;
4042  
4043 <      yy_aconf->type = parse_netmask(yy_aconf->host, &yy_aconf->ipnum,
4044 <                                    &yy_aconf->bits);
4045 <    }
4114 <    else
4043 >  case 161:
4044 > /* Line 1787 of yacc.c  */
4045 > #line 1105 "conf_parser.y"
4046      {
4047 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
4048 <
4118 <      DupString(yy_tmp->user, userbuf);
4119 <      DupString(yy_tmp->host, hostbuf);
4047 >  if (conf_parser_ctx.pass != 2)
4048 >    break;
4049  
4050 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4051 <    }
4052 <  }
4050 >  if (yylval.number)
4051 >    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4052 >  else
4053 >    block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4054   }
4055      break;
4056  
4057 <  case 145:
4058 <
4059 < /* Line 1806 of yacc.c  */
4130 < #line 1071 "conf_parser.y"
4057 >  case 162:
4058 > /* Line 1787 of yacc.c  */
4059 > #line 1116 "conf_parser.y"
4060      {
4061    if (conf_parser_ctx.pass == 2)
4062 <  {
4134 <    if (yy_aconf->passwd != NULL)
4135 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4136 <
4137 <    MyFree(yy_aconf->passwd);
4138 <    DupString(yy_aconf->passwd, yylval.string);
4139 <  }
4062 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
4063   }
4064      break;
4065  
4066 <  case 146:
4067 <
4068 < /* Line 1806 of yacc.c  */
4146 < #line 1083 "conf_parser.y"
4066 >  case 163:
4067 > /* Line 1787 of yacc.c  */
4068 > #line 1122 "conf_parser.y"
4069      {
4070    if (conf_parser_ctx.pass == 2)
4071 <  {
4150 <    if (yylval.number)
4151 <      SetConfEncrypted(yy_aconf);
4152 <    else
4153 <      ClearConfEncrypted(yy_aconf);
4154 <  }
4071 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4072   }
4073      break;
4074  
4075 <  case 147:
4076 <
4077 < /* Line 1806 of yacc.c  */
4161 < #line 1094 "conf_parser.y"
4075 >  case 164:
4076 > /* Line 1787 of yacc.c  */
4077 > #line 1128 "conf_parser.y"
4078      {
4163 #ifdef HAVE_LIBCRYPTO
4079    if (conf_parser_ctx.pass == 2)
4080 <  {
4081 <    BIO *file;
4082 <
4168 <    if (yy_aconf->rsa_public_key != NULL)
4169 <    {
4170 <      RSA_free(yy_aconf->rsa_public_key);
4171 <      yy_aconf->rsa_public_key = NULL;
4172 <    }
4080 >    block_state.modes.value = 0;
4081 > }
4082 >    break;
4083  
4084 <    if (yy_aconf->rsa_public_key_file != NULL)
4084 >  case 168:
4085 > /* Line 1787 of yacc.c  */
4086 > #line 1135 "conf_parser.y"
4087      {
4088 <      MyFree(yy_aconf->rsa_public_key_file);
4089 <      yy_aconf->rsa_public_key_file = NULL;
4090 <    }
4091 <
4180 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
4181 <    file = BIO_new_file(yylval.string, "r");
4088 >  if (conf_parser_ctx.pass == 2)
4089 >    block_state.modes.value |= UMODE_BOTS;
4090 > }
4091 >    break;
4092  
4093 <    if (file == NULL)
4093 >  case 169:
4094 > /* Line 1787 of yacc.c  */
4095 > #line 1139 "conf_parser.y"
4096      {
4097 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
4098 <      break;
4099 <    }
4100 <
4189 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
4097 >  if (conf_parser_ctx.pass == 2)
4098 >    block_state.modes.value |= UMODE_CCONN;
4099 > }
4100 >    break;
4101  
4102 <    if (yy_aconf->rsa_public_key == NULL)
4102 >  case 170:
4103 > /* Line 1787 of yacc.c  */
4104 > #line 1143 "conf_parser.y"
4105      {
4106 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
4107 <      break;
4195 <    }
4196 <
4197 <    BIO_set_close(file, BIO_CLOSE);
4198 <    BIO_free(file);
4199 <  }
4200 < #endif /* HAVE_LIBCRYPTO */
4106 >  if (conf_parser_ctx.pass == 2)
4107 >    block_state.modes.value |= UMODE_DEAF;
4108   }
4109      break;
4110  
4111 <  case 148:
4112 <
4113 < /* Line 1806 of yacc.c  */
4207 < #line 1136 "conf_parser.y"
4111 >  case 171:
4112 > /* Line 1787 of yacc.c  */
4113 > #line 1147 "conf_parser.y"
4114      {
4115    if (conf_parser_ctx.pass == 2)
4116 <  {
4211 <    MyFree(class_name);
4212 <    DupString(class_name, yylval.string);
4213 <  }
4116 >    block_state.modes.value |= UMODE_DEBUG;
4117   }
4118      break;
4119  
4120 <  case 149:
4121 <
4122 < /* Line 1806 of yacc.c  */
4220 < #line 1145 "conf_parser.y"
4120 >  case 172:
4121 > /* Line 1787 of yacc.c  */
4122 > #line 1151 "conf_parser.y"
4123      {
4124    if (conf_parser_ctx.pass == 2)
4125 <    yy_aconf->modes = 0;
4125 >    block_state.modes.value |= UMODE_FULL;
4126   }
4127      break;
4128  
4129 <  case 153:
4130 <
4131 < /* Line 1806 of yacc.c  */
4230 < #line 1152 "conf_parser.y"
4129 >  case 173:
4130 > /* Line 1787 of yacc.c  */
4131 > #line 1155 "conf_parser.y"
4132      {
4133    if (conf_parser_ctx.pass == 2)
4134 <    yy_aconf->modes |= UMODE_BOTS;
4134 >    block_state.modes.value |= UMODE_HIDDEN;
4135   }
4136      break;
4137  
4138 <  case 154:
4139 <
4140 < /* Line 1806 of yacc.c  */
4240 < #line 1156 "conf_parser.y"
4138 >  case 174:
4139 > /* Line 1787 of yacc.c  */
4140 > #line 1159 "conf_parser.y"
4141      {
4142    if (conf_parser_ctx.pass == 2)
4143 <    yy_aconf->modes |= UMODE_CCONN;
4143 >    block_state.modes.value |= UMODE_SKILL;
4144   }
4145      break;
4146  
4147 <  case 155:
4148 <
4149 < /* Line 1806 of yacc.c  */
4250 < #line 1160 "conf_parser.y"
4147 >  case 175:
4148 > /* Line 1787 of yacc.c  */
4149 > #line 1163 "conf_parser.y"
4150      {
4151    if (conf_parser_ctx.pass == 2)
4152 <    yy_aconf->modes |= UMODE_CCONN_FULL;
4152 >    block_state.modes.value |= UMODE_NCHANGE;
4153   }
4154      break;
4155  
4156 <  case 156:
4157 <
4158 < /* Line 1806 of yacc.c  */
4260 < #line 1164 "conf_parser.y"
4156 >  case 176:
4157 > /* Line 1787 of yacc.c  */
4158 > #line 1167 "conf_parser.y"
4159      {
4160    if (conf_parser_ctx.pass == 2)
4161 <    yy_aconf->modes |= UMODE_DEAF;
4161 >    block_state.modes.value |= UMODE_REJ;
4162   }
4163      break;
4164  
4165 <  case 157:
4166 <
4167 < /* Line 1806 of yacc.c  */
4270 < #line 1168 "conf_parser.y"
4165 >  case 177:
4166 > /* Line 1787 of yacc.c  */
4167 > #line 1171 "conf_parser.y"
4168      {
4169    if (conf_parser_ctx.pass == 2)
4170 <    yy_aconf->modes |= UMODE_DEBUG;
4170 >    block_state.modes.value |= UMODE_UNAUTH;
4171   }
4172      break;
4173  
4174 <  case 158:
4175 <
4176 < /* Line 1806 of yacc.c  */
4280 < #line 1172 "conf_parser.y"
4174 >  case 178:
4175 > /* Line 1787 of yacc.c  */
4176 > #line 1175 "conf_parser.y"
4177      {
4178    if (conf_parser_ctx.pass == 2)
4179 <    yy_aconf->modes |= UMODE_FULL;
4179 >    block_state.modes.value |= UMODE_SPY;
4180   }
4181      break;
4182  
4183 <  case 159:
4184 <
4185 < /* Line 1806 of yacc.c  */
4290 < #line 1176 "conf_parser.y"
4183 >  case 179:
4184 > /* Line 1787 of yacc.c  */
4185 > #line 1179 "conf_parser.y"
4186      {
4187    if (conf_parser_ctx.pass == 2)
4188 <    yy_aconf->modes |= UMODE_HIDDEN;
4188 >    block_state.modes.value |= UMODE_EXTERNAL;
4189   }
4190      break;
4191  
4192 <  case 160:
4193 <
4194 < /* Line 1806 of yacc.c  */
4300 < #line 1180 "conf_parser.y"
4192 >  case 180:
4193 > /* Line 1787 of yacc.c  */
4194 > #line 1183 "conf_parser.y"
4195      {
4196    if (conf_parser_ctx.pass == 2)
4197 <    yy_aconf->modes |= UMODE_SKILL;
4197 >    block_state.modes.value |= UMODE_OPERWALL;
4198   }
4199      break;
4200  
4201 <  case 161:
4202 <
4203 < /* Line 1806 of yacc.c  */
4310 < #line 1184 "conf_parser.y"
4201 >  case 181:
4202 > /* Line 1787 of yacc.c  */
4203 > #line 1187 "conf_parser.y"
4204      {
4205    if (conf_parser_ctx.pass == 2)
4206 <    yy_aconf->modes |= UMODE_NCHANGE;
4206 >    block_state.modes.value |= UMODE_SERVNOTICE;
4207   }
4208      break;
4209  
4210 <  case 162:
4211 <
4212 < /* Line 1806 of yacc.c  */
4320 < #line 1188 "conf_parser.y"
4210 >  case 182:
4211 > /* Line 1787 of yacc.c  */
4212 > #line 1191 "conf_parser.y"
4213      {
4214    if (conf_parser_ctx.pass == 2)
4215 <    yy_aconf->modes |= UMODE_REJ;
4215 >    block_state.modes.value |= UMODE_INVISIBLE;
4216   }
4217      break;
4218  
4219 <  case 163:
4220 <
4221 < /* Line 1806 of yacc.c  */
4330 < #line 1192 "conf_parser.y"
4219 >  case 183:
4220 > /* Line 1787 of yacc.c  */
4221 > #line 1195 "conf_parser.y"
4222      {
4223    if (conf_parser_ctx.pass == 2)
4224 <    yy_aconf->modes |= UMODE_UNAUTH;
4224 >    block_state.modes.value |= UMODE_WALLOP;
4225   }
4226      break;
4227  
4228 <  case 164:
4229 <
4230 < /* Line 1806 of yacc.c  */
4340 < #line 1196 "conf_parser.y"
4228 >  case 184:
4229 > /* Line 1787 of yacc.c  */
4230 > #line 1199 "conf_parser.y"
4231      {
4232    if (conf_parser_ctx.pass == 2)
4233 <    yy_aconf->modes |= UMODE_SPY;
4233 >    block_state.modes.value |= UMODE_SOFTCALLERID;
4234   }
4235      break;
4236  
4237 <  case 165:
4238 <
4239 < /* Line 1806 of yacc.c  */
4350 < #line 1200 "conf_parser.y"
4237 >  case 185:
4238 > /* Line 1787 of yacc.c  */
4239 > #line 1203 "conf_parser.y"
4240      {
4241    if (conf_parser_ctx.pass == 2)
4242 <    yy_aconf->modes |= UMODE_EXTERNAL;
4242 >    block_state.modes.value |= UMODE_CALLERID;
4243   }
4244      break;
4245  
4246 <  case 166:
4247 <
4248 < /* Line 1806 of yacc.c  */
4360 < #line 1204 "conf_parser.y"
4246 >  case 186:
4247 > /* Line 1787 of yacc.c  */
4248 > #line 1207 "conf_parser.y"
4249      {
4250    if (conf_parser_ctx.pass == 2)
4251 <    yy_aconf->modes |= UMODE_OPERWALL;
4251 >    block_state.modes.value |= UMODE_LOCOPS;
4252   }
4253      break;
4254  
4255 <  case 167:
4256 <
4257 < /* Line 1806 of yacc.c  */
4370 < #line 1208 "conf_parser.y"
4255 >  case 187:
4256 > /* Line 1787 of yacc.c  */
4257 > #line 1211 "conf_parser.y"
4258      {
4259    if (conf_parser_ctx.pass == 2)
4260 <    yy_aconf->modes |= UMODE_SERVNOTICE;
4260 >    block_state.modes.value |= UMODE_REGONLY;
4261   }
4262      break;
4263  
4264 <  case 168:
4265 <
4266 < /* Line 1806 of yacc.c  */
4380 < #line 1212 "conf_parser.y"
4264 >  case 188:
4265 > /* Line 1787 of yacc.c  */
4266 > #line 1215 "conf_parser.y"
4267      {
4268    if (conf_parser_ctx.pass == 2)
4269 <    yy_aconf->modes |= UMODE_INVISIBLE;
4269 >    block_state.modes.value |= UMODE_FARCONNECT;
4270   }
4271      break;
4272  
4273 <  case 169:
4274 <
4275 < /* Line 1806 of yacc.c  */
4390 < #line 1216 "conf_parser.y"
4273 >  case 189:
4274 > /* Line 1787 of yacc.c  */
4275 > #line 1221 "conf_parser.y"
4276      {
4277    if (conf_parser_ctx.pass == 2)
4278 <    yy_aconf->modes |= UMODE_WALLOP;
4278 >    block_state.port.value = 0;
4279   }
4280      break;
4281  
4282 <  case 170:
4283 <
4284 < /* Line 1806 of yacc.c  */
4400 < #line 1220 "conf_parser.y"
4282 >  case 193:
4283 > /* Line 1787 of yacc.c  */
4284 > #line 1228 "conf_parser.y"
4285      {
4286    if (conf_parser_ctx.pass == 2)
4287 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
4287 >    block_state.port.value |= OPER_FLAG_KILL_REMOTE;
4288   }
4289      break;
4290  
4291 <  case 171:
4292 <
4293 < /* Line 1806 of yacc.c  */
4410 < #line 1224 "conf_parser.y"
4291 >  case 194:
4292 > /* Line 1787 of yacc.c  */
4293 > #line 1232 "conf_parser.y"
4294      {
4295    if (conf_parser_ctx.pass == 2)
4296 <    yy_aconf->modes |= UMODE_CALLERID;
4296 >    block_state.port.value |= OPER_FLAG_KILL;
4297   }
4298      break;
4299  
4300 <  case 172:
4301 <
4302 < /* Line 1806 of yacc.c  */
4420 < #line 1228 "conf_parser.y"
4300 >  case 195:
4301 > /* Line 1787 of yacc.c  */
4302 > #line 1236 "conf_parser.y"
4303      {
4304    if (conf_parser_ctx.pass == 2)
4305 <    yy_aconf->modes |= UMODE_LOCOPS;
4305 >    block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
4306   }
4307      break;
4308  
4309 <  case 173:
4310 <
4311 < /* Line 1806 of yacc.c  */
4430 < #line 1234 "conf_parser.y"
4309 >  case 196:
4310 > /* Line 1787 of yacc.c  */
4311 > #line 1240 "conf_parser.y"
4312      {
4313    if (conf_parser_ctx.pass == 2)
4314 <    yy_aconf->port = 0;
4314 >    block_state.port.value |= OPER_FLAG_CONNECT;
4315   }
4316      break;
4317  
4318 <  case 177:
4319 <
4320 < /* Line 1806 of yacc.c  */
4440 < #line 1241 "conf_parser.y"
4318 >  case 197:
4319 > /* Line 1787 of yacc.c  */
4320 > #line 1244 "conf_parser.y"
4321      {
4322    if (conf_parser_ctx.pass == 2)
4323 <    yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4323 >    block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
4324   }
4325      break;
4326  
4327 <  case 178:
4328 <
4329 < /* Line 1806 of yacc.c  */
4450 < #line 1245 "conf_parser.y"
4327 >  case 198:
4328 > /* Line 1787 of yacc.c  */
4329 > #line 1248 "conf_parser.y"
4330      {
4331    if (conf_parser_ctx.pass == 2)
4332 <    yy_aconf->port |= OPER_FLAG_REMOTE;
4332 >    block_state.port.value |= OPER_FLAG_SQUIT;
4333   }
4334      break;
4335  
4336 <  case 179:
4337 <
4338 < /* Line 1806 of yacc.c  */
4460 < #line 1249 "conf_parser.y"
4336 >  case 199:
4337 > /* Line 1787 of yacc.c  */
4338 > #line 1252 "conf_parser.y"
4339      {
4340    if (conf_parser_ctx.pass == 2)
4341 <    yy_aconf->port |= OPER_FLAG_K;
4341 >    block_state.port.value |= OPER_FLAG_K;
4342   }
4343      break;
4344  
4345 <  case 180:
4346 <
4347 < /* Line 1806 of yacc.c  */
4470 < #line 1253 "conf_parser.y"
4345 >  case 200:
4346 > /* Line 1787 of yacc.c  */
4347 > #line 1256 "conf_parser.y"
4348      {
4349    if (conf_parser_ctx.pass == 2)
4350 <    yy_aconf->port |= OPER_FLAG_UNKLINE;
4350 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4351   }
4352      break;
4353  
4354 <  case 181:
4355 <
4356 < /* Line 1806 of yacc.c  */
4480 < #line 1257 "conf_parser.y"
4354 >  case 201:
4355 > /* Line 1787 of yacc.c  */
4356 > #line 1260 "conf_parser.y"
4357      {
4358    if (conf_parser_ctx.pass == 2)
4359 <    yy_aconf->port |= OPER_FLAG_DLINE;
4359 >    block_state.port.value |= OPER_FLAG_DLINE;
4360   }
4361      break;
4362  
4363 <  case 182:
4364 <
4365 < /* Line 1806 of yacc.c  */
4490 < #line 1261 "conf_parser.y"
4363 >  case 202:
4364 > /* Line 1787 of yacc.c  */
4365 > #line 1264 "conf_parser.y"
4366      {
4367    if (conf_parser_ctx.pass == 2)
4368 <    yy_aconf->port |= OPER_FLAG_UNDLINE;
4368 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4369   }
4370      break;
4371  
4372 <  case 183:
4373 <
4374 < /* Line 1806 of yacc.c  */
4500 < #line 1265 "conf_parser.y"
4372 >  case 203:
4373 > /* Line 1787 of yacc.c  */
4374 > #line 1268 "conf_parser.y"
4375      {
4376    if (conf_parser_ctx.pass == 2)
4377 <    yy_aconf->port |= OPER_FLAG_X;
4377 >    block_state.port.value |= OPER_FLAG_X;
4378   }
4379      break;
4380  
4381 <  case 184:
4382 <
4383 < /* Line 1806 of yacc.c  */
4510 < #line 1269 "conf_parser.y"
4381 >  case 204:
4382 > /* Line 1787 of yacc.c  */
4383 > #line 1272 "conf_parser.y"
4384      {
4385    if (conf_parser_ctx.pass == 2)
4386 <    yy_aconf->port |= OPER_FLAG_GLINE;
4386 >    block_state.port.value |= OPER_FLAG_GLINE;
4387   }
4388      break;
4389  
4390 <  case 185:
4391 <
4392 < /* Line 1806 of yacc.c  */
4520 < #line 1273 "conf_parser.y"
4390 >  case 205:
4391 > /* Line 1787 of yacc.c  */
4392 > #line 1276 "conf_parser.y"
4393      {
4394    if (conf_parser_ctx.pass == 2)
4395 <    yy_aconf->port |= OPER_FLAG_DIE;
4395 >    block_state.port.value |= OPER_FLAG_DIE;
4396   }
4397      break;
4398  
4399 <  case 186:
4400 <
4401 < /* Line 1806 of yacc.c  */
4530 < #line 1277 "conf_parser.y"
4399 >  case 206:
4400 > /* Line 1787 of yacc.c  */
4401 > #line 1280 "conf_parser.y"
4402      {
4403    if (conf_parser_ctx.pass == 2)
4404 <    yy_aconf->port |= OPER_FLAG_RESTART;
4404 >    block_state.port.value |= OPER_FLAG_RESTART;
4405   }
4406      break;
4407  
4408 <  case 187:
4409 <
4410 < /* Line 1806 of yacc.c  */
4540 < #line 1281 "conf_parser.y"
4408 >  case 207:
4409 > /* Line 1787 of yacc.c  */
4410 > #line 1284 "conf_parser.y"
4411      {
4412    if (conf_parser_ctx.pass == 2)
4413 <    yy_aconf->port |= OPER_FLAG_REHASH;
4413 >    block_state.port.value |= OPER_FLAG_REHASH;
4414   }
4415      break;
4416  
4417 <  case 188:
4418 <
4419 < /* Line 1806 of yacc.c  */
4550 < #line 1285 "conf_parser.y"
4417 >  case 208:
4418 > /* Line 1787 of yacc.c  */
4419 > #line 1288 "conf_parser.y"
4420      {
4421    if (conf_parser_ctx.pass == 2)
4422 <    yy_aconf->port |= OPER_FLAG_ADMIN;
4422 >    block_state.port.value |= OPER_FLAG_ADMIN;
4423   }
4424      break;
4425  
4426 <  case 189:
4427 <
4428 < /* Line 1806 of yacc.c  */
4560 < #line 1289 "conf_parser.y"
4426 >  case 209:
4427 > /* Line 1787 of yacc.c  */
4428 > #line 1292 "conf_parser.y"
4429      {
4430    if (conf_parser_ctx.pass == 2)
4431 <    yy_aconf->port |= OPER_FLAG_N;
4431 >    block_state.port.value |= OPER_FLAG_OPERWALL;
4432   }
4433      break;
4434  
4435 <  case 190:
4436 <
4437 < /* Line 1806 of yacc.c  */
4570 < #line 1293 "conf_parser.y"
4435 >  case 210:
4436 > /* Line 1787 of yacc.c  */
4437 > #line 1296 "conf_parser.y"
4438      {
4439    if (conf_parser_ctx.pass == 2)
4440 <    yy_aconf->port |= OPER_FLAG_OPERWALL;
4440 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4441   }
4442      break;
4443  
4444 <  case 191:
4445 <
4446 < /* Line 1806 of yacc.c  */
4580 < #line 1297 "conf_parser.y"
4444 >  case 211:
4445 > /* Line 1787 of yacc.c  */
4446 > #line 1300 "conf_parser.y"
4447      {
4448    if (conf_parser_ctx.pass == 2)
4449 <    yy_aconf->port |= OPER_FLAG_GLOBOPS;
4449 >    block_state.port.value |= OPER_FLAG_WALLOPS;
4450   }
4451      break;
4452  
4453 <  case 192:
4454 <
4455 < /* Line 1806 of yacc.c  */
4590 < #line 1301 "conf_parser.y"
4453 >  case 212:
4454 > /* Line 1787 of yacc.c  */
4455 > #line 1304 "conf_parser.y"
4456      {
4457    if (conf_parser_ctx.pass == 2)
4458 <    yy_aconf->port |= OPER_FLAG_OPER_SPY;
4458 >    block_state.port.value |= OPER_FLAG_LOCOPS;
4459   }
4460      break;
4461  
4462 <  case 193:
4463 <
4464 < /* Line 1806 of yacc.c  */
4600 < #line 1305 "conf_parser.y"
4462 >  case 213:
4463 > /* Line 1787 of yacc.c  */
4464 > #line 1308 "conf_parser.y"
4465      {
4466    if (conf_parser_ctx.pass == 2)
4467 <    yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4467 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4468   }
4469      break;
4470  
4471 <  case 194:
4472 <
4473 < /* Line 1806 of yacc.c  */
4610 < #line 1309 "conf_parser.y"
4471 >  case 214:
4472 > /* Line 1787 of yacc.c  */
4473 > #line 1312 "conf_parser.y"
4474      {
4475    if (conf_parser_ctx.pass == 2)
4476 <    yy_aconf->port |= OPER_FLAG_MODULE;
4476 >    block_state.port.value |= OPER_FLAG_SET;
4477   }
4478      break;
4479  
4480 <  case 195:
4481 <
4482 < /* Line 1806 of yacc.c  */
4620 < #line 1319 "conf_parser.y"
4480 >  case 215:
4481 > /* Line 1787 of yacc.c  */
4482 > #line 1316 "conf_parser.y"
4483      {
4484 <  if (conf_parser_ctx.pass == 1)
4485 <  {
4624 <    yy_conf = make_conf_item(CLASS_TYPE);
4625 <    yy_class = map_to_conf(yy_conf);
4626 <  }
4484 >  if (conf_parser_ctx.pass == 2)
4485 >    block_state.port.value |= OPER_FLAG_MODULE;
4486   }
4487      break;
4488  
4489 <  case 196:
4490 <
4632 < /* Line 1806 of yacc.c  */
4489 >  case 216:
4490 > /* Line 1787 of yacc.c  */
4491   #line 1326 "conf_parser.y"
4492      {
4493 <  if (conf_parser_ctx.pass == 1)
4494 <  {
4637 <    struct ConfItem *cconf = NULL;
4638 <    struct ClassItem *class = NULL;
4493 >  if (conf_parser_ctx.pass != 1)
4494 >    break;
4495  
4496 <    if (yy_class_name == NULL)
4641 <      delete_conf_item(yy_conf);
4642 <    else
4643 <    {
4644 <      cconf = find_exact_name_conf(CLASS_TYPE, NULL, yy_class_name, NULL, NULL);
4496 >  reset_block_state();
4497  
4498 <      if (cconf != NULL)                /* The class existed already */
4499 <      {
4500 <        int user_count = 0;
4498 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4499 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4500 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4501 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4502 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4503 > }
4504 >    break;
4505  
4506 <        rebuild_cidr_class(cconf, yy_class);
4506 >  case 217:
4507 > /* Line 1787 of yacc.c  */
4508 > #line 1338 "conf_parser.y"
4509 >    {
4510 >  struct ClassItem *class = NULL;
4511  
4512 <        class = map_to_conf(cconf);
4512 >  if (conf_parser_ctx.pass != 1)
4513 >    break;
4514  
4515 <        user_count = class->curr_user_count;
4516 <        memcpy(class, yy_class, sizeof(*class));
4656 <        class->curr_user_count = user_count;
4657 <        class->active = 1;
4515 >  if (!block_state.class.buf[0])
4516 >    break;
4517  
4518 <        delete_conf_item(yy_conf);
4518 >  if (!(class = class_find(block_state.class.buf, 0)))
4519 >    class = class_make();
4520  
4521 <        MyFree(cconf->name);            /* Allows case change of class name */
4522 <        cconf->name = yy_class_name;
4523 <      }
4524 <      else      /* Brand new class */
4525 <      {
4526 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4527 <        yy_conf->name = yy_class_name;
4528 <        yy_class->active = 1;
4529 <      }
4530 <    }
4521 >  class->active = 1;
4522 >  MyFree(class->name);
4523 >  class->name = xstrdup(block_state.class.buf);
4524 >  class->ping_freq = block_state.ping_freq.value;
4525 >  class->max_perip = block_state.max_perip.value;
4526 >  class->con_freq = block_state.con_freq.value;
4527 >  class->max_total = block_state.max_total.value;
4528 >  class->max_global = block_state.max_global.value;
4529 >  class->max_local = block_state.max_local.value;
4530 >  class->max_ident = block_state.max_ident.value;
4531 >  class->max_sendq = block_state.max_sendq.value;
4532 >  class->max_recvq = block_state.max_recvq.value;
4533  
4534 <    yy_class_name = NULL;
4534 >  if (block_state.min_idle.value > block_state.max_idle.value)
4535 >  {
4536 >    block_state.min_idle.value = 0;
4537 >    block_state.max_idle.value = 0;
4538 >    block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4539    }
4540 +
4541 +  class->flags = block_state.flags.value;
4542 +  class->min_idle = block_state.min_idle.value;
4543 +  class->max_idle = block_state.max_idle.value;
4544 +
4545 +  if (class->number_per_cidr && block_state.number_per_cidr.value)
4546 +    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4547 +        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4548 +      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4549 +          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4550 +        rebuild_cidr_list(class);
4551 +
4552 +  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4553 +  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4554 +  class->number_per_cidr = block_state.number_per_cidr.value;
4555   }
4556      break;
4557  
4558 <  case 213:
4559 <
4560 < /* Line 1806 of yacc.c  */
4680 < #line 1384 "conf_parser.y"
4558 >  case 237:
4559 > /* Line 1787 of yacc.c  */
4560 > #line 1404 "conf_parser.y"
4561      {
4562    if (conf_parser_ctx.pass == 1)
4563 <  {
4684 <    MyFree(yy_class_name);
4685 <    DupString(yy_class_name, yylval.string);
4686 <  }
4563 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4564   }
4565      break;
4566  
4567 <  case 214:
4568 <
4569 < /* Line 1806 of yacc.c  */
4693 < #line 1393 "conf_parser.y"
4567 >  case 238:
4568 > /* Line 1787 of yacc.c  */
4569 > #line 1410 "conf_parser.y"
4570      {
4571    if (conf_parser_ctx.pass == 1)
4572 <    yy_class->ping_freq = (yyvsp[(3) - (4)].number);
4572 >    block_state.ping_freq.value = (yyvsp[(3) - (4)].number);
4573   }
4574      break;
4575  
4576 <  case 215:
4577 <
4578 < /* Line 1806 of yacc.c  */
4703 < #line 1399 "conf_parser.y"
4576 >  case 239:
4577 > /* Line 1787 of yacc.c  */
4578 > #line 1416 "conf_parser.y"
4579      {
4580    if (conf_parser_ctx.pass == 1)
4581 <    yy_class->ping_warning = (yyvsp[(3) - (4)].number);
4581 >    block_state.max_perip.value = (yyvsp[(3) - (4)].number);
4582   }
4583      break;
4584  
4585 <  case 216:
4586 <
4587 < /* Line 1806 of yacc.c  */
4713 < #line 1405 "conf_parser.y"
4585 >  case 240:
4586 > /* Line 1787 of yacc.c  */
4587 > #line 1422 "conf_parser.y"
4588      {
4589    if (conf_parser_ctx.pass == 1)
4590 <    yy_class->max_perip = (yyvsp[(3) - (4)].number);
4590 >    block_state.con_freq.value = (yyvsp[(3) - (4)].number);
4591   }
4592      break;
4593  
4594 <  case 217:
4595 <
4596 < /* Line 1806 of yacc.c  */
4723 < #line 1411 "conf_parser.y"
4594 >  case 241:
4595 > /* Line 1787 of yacc.c  */
4596 > #line 1428 "conf_parser.y"
4597      {
4598    if (conf_parser_ctx.pass == 1)
4599 <    yy_class->con_freq = (yyvsp[(3) - (4)].number);
4599 >    block_state.max_total.value = (yyvsp[(3) - (4)].number);
4600   }
4601      break;
4602  
4603 <  case 218:
4604 <
4605 < /* Line 1806 of yacc.c  */
4733 < #line 1417 "conf_parser.y"
4603 >  case 242:
4604 > /* Line 1787 of yacc.c  */
4605 > #line 1434 "conf_parser.y"
4606      {
4607    if (conf_parser_ctx.pass == 1)
4608 <    yy_class->max_total = (yyvsp[(3) - (4)].number);
4608 >    block_state.max_global.value = (yyvsp[(3) - (4)].number);
4609   }
4610      break;
4611  
4612 <  case 219:
4613 <
4614 < /* Line 1806 of yacc.c  */
4743 < #line 1423 "conf_parser.y"
4612 >  case 243:
4613 > /* Line 1787 of yacc.c  */
4614 > #line 1440 "conf_parser.y"
4615      {
4616    if (conf_parser_ctx.pass == 1)
4617 <    yy_class->max_global = (yyvsp[(3) - (4)].number);
4617 >    block_state.max_local.value = (yyvsp[(3) - (4)].number);
4618   }
4619      break;
4620  
4621 <  case 220:
4622 <
4623 < /* Line 1806 of yacc.c  */
4753 < #line 1429 "conf_parser.y"
4621 >  case 244:
4622 > /* Line 1787 of yacc.c  */
4623 > #line 1446 "conf_parser.y"
4624      {
4625    if (conf_parser_ctx.pass == 1)
4626 <    yy_class->max_local = (yyvsp[(3) - (4)].number);
4626 >    block_state.max_ident.value = (yyvsp[(3) - (4)].number);
4627   }
4628      break;
4629  
4630 <  case 221:
4631 <
4632 < /* Line 1806 of yacc.c  */
4763 < #line 1435 "conf_parser.y"
4630 >  case 245:
4631 > /* Line 1787 of yacc.c  */
4632 > #line 1452 "conf_parser.y"
4633      {
4634    if (conf_parser_ctx.pass == 1)
4635 <    yy_class->max_ident = (yyvsp[(3) - (4)].number);
4635 >    block_state.max_sendq.value = (yyvsp[(3) - (4)].number);
4636   }
4637      break;
4638  
4639 <  case 222:
4640 <
4641 < /* Line 1806 of yacc.c  */
4773 < #line 1441 "conf_parser.y"
4639 >  case 246:
4640 > /* Line 1787 of yacc.c  */
4641 > #line 1458 "conf_parser.y"
4642      {
4643    if (conf_parser_ctx.pass == 1)
4644 <    yy_class->max_sendq = (yyvsp[(3) - (4)].number);
4644 >    if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4645 >      block_state.max_recvq.value = (yyvsp[(3) - (4)].number);
4646   }
4647      break;
4648  
4649 <  case 223:
4650 <
4651 < /* Line 1806 of yacc.c  */
4783 < #line 1447 "conf_parser.y"
4649 >  case 247:
4650 > /* Line 1787 of yacc.c  */
4651 > #line 1465 "conf_parser.y"
4652      {
4653    if (conf_parser_ctx.pass == 1)
4654 <    yy_class->cidr_bitlen_ipv4 = (yyvsp[(3) - (4)].number);
4654 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4655   }
4656      break;
4657  
4658 <  case 224:
4659 <
4660 < /* Line 1806 of yacc.c  */
4793 < #line 1453 "conf_parser.y"
4658 >  case 248:
4659 > /* Line 1787 of yacc.c  */
4660 > #line 1471 "conf_parser.y"
4661      {
4662    if (conf_parser_ctx.pass == 1)
4663 <    yy_class->cidr_bitlen_ipv6 = (yyvsp[(3) - (4)].number);
4663 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4664   }
4665      break;
4666  
4667 <  case 225:
4668 <
4669 < /* Line 1806 of yacc.c  */
4803 < #line 1459 "conf_parser.y"
4667 >  case 249:
4668 > /* Line 1787 of yacc.c  */
4669 > #line 1477 "conf_parser.y"
4670      {
4671    if (conf_parser_ctx.pass == 1)
4672 <    yy_class->number_per_cidr = (yyvsp[(3) - (4)].number);
4672 >    block_state.number_per_cidr.value = (yyvsp[(3) - (4)].number);
4673   }
4674      break;
4675  
4676 <  case 226:
4677 <
4678 < /* Line 1806 of yacc.c  */
4813 < #line 1468 "conf_parser.y"
4676 >  case 250:
4677 > /* Line 1787 of yacc.c  */
4678 > #line 1483 "conf_parser.y"
4679      {
4680 <  if (conf_parser_ctx.pass == 2)
4816 <  {
4817 <    listener_address = NULL;
4818 <    listener_flags = 0;
4819 <  }
4820 < }
4680 >  if (conf_parser_ctx.pass != 1)
4681      break;
4682  
4683 <  case 227:
4683 >  block_state.min_idle.value = (yyvsp[(3) - (4)].number);
4684 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4685 > }
4686 >    break;
4687  
4688 < /* Line 1806 of yacc.c  */
4689 < #line 1475 "conf_parser.y"
4688 >  case 251:
4689 > /* Line 1787 of yacc.c  */
4690 > #line 1492 "conf_parser.y"
4691      {
4692 <  if (conf_parser_ctx.pass == 2)
4693 <  {
4694 <    MyFree(listener_address);
4695 <    listener_address = NULL;
4696 <  }
4692 >  if (conf_parser_ctx.pass != 1)
4693 >    break;
4694 >
4695 >  block_state.max_idle.value = (yyvsp[(3) - (4)].number);
4696 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4697   }
4698      break;
4699  
4700 <  case 228:
4700 >  case 252:
4701 > /* Line 1787 of yacc.c  */
4702 > #line 1501 "conf_parser.y"
4703 >    {
4704 >  if (conf_parser_ctx.pass == 1)
4705 >    block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4706 > }
4707 >    break;
4708  
4709 < /* Line 1806 of yacc.c  */
4710 < #line 1484 "conf_parser.y"
4709 >  case 256:
4710 > /* Line 1787 of yacc.c  */
4711 > #line 1508 "conf_parser.y"
4712      {
4713 <  listener_flags = 0;
4713 >  if (conf_parser_ctx.pass == 1)
4714 >    block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4715   }
4716      break;
4717  
4718 <  case 232:
4718 >  case 257:
4719 > /* Line 1787 of yacc.c  */
4720 > #line 1512 "conf_parser.y"
4721 >    {
4722 >  if (conf_parser_ctx.pass == 1)
4723 >    block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4724 > }
4725 >    break;
4726  
4727 < /* Line 1806 of yacc.c  */
4728 < #line 1490 "conf_parser.y"
4727 >  case 258:
4728 > /* Line 1787 of yacc.c  */
4729 > #line 1522 "conf_parser.y"
4730      {
4731    if (conf_parser_ctx.pass == 2)
4732 <    listener_flags |= LISTENER_SSL;
4732 >    reset_block_state();
4733   }
4734      break;
4735  
4736 <  case 233:
4736 >  case 260:
4737 > /* Line 1787 of yacc.c  */
4738 > #line 1528 "conf_parser.y"
4739 >    {
4740 >  block_state.flags.value = 0;
4741 > }
4742 >    break;
4743  
4744 < /* Line 1806 of yacc.c  */
4745 < #line 1494 "conf_parser.y"
4744 >  case 264:
4745 > /* Line 1787 of yacc.c  */
4746 > #line 1534 "conf_parser.y"
4747      {
4748    if (conf_parser_ctx.pass == 2)
4749 <    listener_flags |= LISTENER_HIDDEN;
4749 >    block_state.flags.value |= LISTENER_SSL;
4750   }
4751      break;
4752  
4753 <  case 234:
4754 <
4755 < /* Line 1806 of yacc.c  */
4868 < #line 1498 "conf_parser.y"
4753 >  case 265:
4754 > /* Line 1787 of yacc.c  */
4755 > #line 1538 "conf_parser.y"
4756      {
4757    if (conf_parser_ctx.pass == 2)
4758 <    listener_flags |= LISTENER_SERVER;
4758 >    block_state.flags.value |= LISTENER_HIDDEN;
4759   }
4760      break;
4761  
4762 <  case 242:
4763 <
4764 < /* Line 1806 of yacc.c  */
4765 < #line 1508 "conf_parser.y"
4766 <    { listener_flags = 0; }
4762 >  case 266:
4763 > /* Line 1787 of yacc.c  */
4764 > #line 1542 "conf_parser.y"
4765 >    {
4766 >  if (conf_parser_ctx.pass == 2)
4767 >   block_state.flags.value |= LISTENER_SERVER;
4768 > }
4769      break;
4770  
4771 <  case 246:
4771 >  case 274:
4772 > /* Line 1787 of yacc.c  */
4773 > #line 1550 "conf_parser.y"
4774 >    { block_state.flags.value = 0; }
4775 >    break;
4776  
4777 < /* Line 1806 of yacc.c  */
4778 < #line 1513 "conf_parser.y"
4777 >  case 278:
4778 > /* Line 1787 of yacc.c  */
4779 > #line 1555 "conf_parser.y"
4780      {
4781    if (conf_parser_ctx.pass == 2)
4782    {
4783 <    if ((listener_flags & LISTENER_SSL))
4783 >    if (block_state.flags.value & LISTENER_SSL)
4784   #ifdef HAVE_LIBCRYPTO
4785        if (!ServerInfo.server_ctx)
4786   #endif
4787        {
4788 <        yyerror("SSL not available - port closed");
4788 >        conf_error_report("SSL not available - port closed");
4789          break;
4790        }
4791 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4791 >    add_listener((yyvsp[(1) - (1)].number), block_state.addr.buf, block_state.flags.value);
4792    }
4793   }
4794      break;
4795  
4796 <  case 247:
4797 <
4798 < /* Line 1806 of yacc.c  */
4905 < #line 1527 "conf_parser.y"
4796 >  case 279:
4797 > /* Line 1787 of yacc.c  */
4798 > #line 1569 "conf_parser.y"
4799      {
4800    if (conf_parser_ctx.pass == 2)
4801    {
4802      int i;
4803  
4804 <    if ((listener_flags & LISTENER_SSL))
4804 >    if (block_state.flags.value & LISTENER_SSL)
4805   #ifdef HAVE_LIBCRYPTO
4806        if (!ServerInfo.server_ctx)
4807   #endif
4808        {
4809 <        yyerror("SSL not available - port closed");
4809 >        conf_error_report("SSL not available - port closed");
4810          break;
4811        }
4812  
4813      for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4814 <      add_listener(i, listener_address, listener_flags);
4814 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4815    }
4816   }
4817      break;
4818  
4819 <  case 248:
4820 <
4821 < /* Line 1806 of yacc.c  */
4929 < #line 1547 "conf_parser.y"
4819 >  case 280:
4820 > /* Line 1787 of yacc.c  */
4821 > #line 1589 "conf_parser.y"
4822      {
4823    if (conf_parser_ctx.pass == 2)
4824 <  {
4933 <    MyFree(listener_address);
4934 <    DupString(listener_address, yylval.string);
4935 <  }
4824 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4825   }
4826      break;
4827  
4828 <  case 249:
4829 <
4830 < /* Line 1806 of yacc.c  */
4942 < #line 1556 "conf_parser.y"
4828 >  case 281:
4829 > /* Line 1787 of yacc.c  */
4830 > #line 1595 "conf_parser.y"
4831      {
4832    if (conf_parser_ctx.pass == 2)
4833 <  {
4946 <    MyFree(listener_address);
4947 <    DupString(listener_address, yylval.string);
4948 <  }
4833 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4834   }
4835      break;
4836  
4837 <  case 250:
4838 <
4839 < /* Line 1806 of yacc.c  */
4955 < #line 1568 "conf_parser.y"
4837 >  case 282:
4838 > /* Line 1787 of yacc.c  */
4839 > #line 1604 "conf_parser.y"
4840      {
4841    if (conf_parser_ctx.pass == 2)
4842 <  {
4959 <    yy_conf = make_conf_item(CLIENT_TYPE);
4960 <    yy_aconf = map_to_conf(yy_conf);
4961 <  }
4962 <  else
4963 <  {
4964 <    MyFree(class_name);
4965 <    class_name = NULL;
4966 <  }
4842 >    reset_block_state();
4843   }
4844      break;
4845  
4846 <  case 251:
4847 <
4848 < /* Line 1806 of yacc.c  */
4973 < #line 1580 "conf_parser.y"
4974 <    {
4975 <  if (conf_parser_ctx.pass == 2)
4976 <  {
4977 <    struct CollectItem *yy_tmp = NULL;
4978 <    dlink_node *ptr = NULL, *next_ptr = NULL;
4979 <
4980 <    if (yy_aconf->user && yy_aconf->host)
4981 <    {
4982 <      conf_add_class_to_conf(yy_conf, class_name);
4983 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
4984 <    }
4985 <    else
4986 <      delete_conf_item(yy_conf);
4987 <
4988 <    /* copy over settings from first struct */
4989 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4846 >  case 283:
4847 > /* Line 1787 of yacc.c  */
4848 > #line 1608 "conf_parser.y"
4849      {
4850 <      struct AccessItem *new_aconf;
4992 <      struct ConfItem *new_conf;
4993 <
4994 <      new_conf = make_conf_item(CLIENT_TYPE);
4995 <      new_aconf = map_to_conf(new_conf);
4996 <
4997 <      yy_tmp = ptr->data;
4998 <
4999 <      assert(yy_tmp->user && yy_tmp->host);
5000 <
5001 <      if (yy_aconf->passwd != NULL)
5002 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5003 <      if (yy_conf->name != NULL)
5004 <        DupString(new_conf->name, yy_conf->name);
5005 <      if (yy_aconf->passwd != NULL)
5006 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4850 >  dlink_node *ptr = NULL;
4851  
4852 <      new_aconf->flags = yy_aconf->flags;
5009 <      new_aconf->port  = yy_aconf->port;
5010 <
5011 <      DupString(new_aconf->user, yy_tmp->user);
5012 <      collapse(new_aconf->user);
5013 <
5014 <      DupString(new_aconf->host, yy_tmp->host);
5015 <      collapse(new_aconf->host);
5016 <
5017 <      conf_add_class_to_conf(new_conf, class_name);
5018 <      add_conf_by_address(CONF_CLIENT, new_aconf);
5019 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
5020 <      free_collect_item(yy_tmp);
5021 <    }
5022 <
5023 <    MyFree(class_name);
5024 <    class_name = NULL;
5025 <    yy_conf = NULL;
5026 <    yy_aconf = NULL;
5027 <  }
5028 < }
4852 >  if (conf_parser_ctx.pass != 2)
4853      break;
4854  
4855 <  case 263:
5032 <
5033 < /* Line 1806 of yacc.c  */
5034 < #line 1642 "conf_parser.y"
5035 <    {
5036 <  if (conf_parser_ctx.pass == 2)
4855 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4856    {
4857 <    struct CollectItem *yy_tmp = NULL;
4857 >    struct MaskItem *conf = NULL;
4858      struct split_nuh_item nuh;
4859  
4860 <    nuh.nuhmask  = yylval.string;
4860 >    nuh.nuhmask  = ptr->data;
4861      nuh.nickptr  = NULL;
4862 <    nuh.userptr  = userbuf;
4863 <    nuh.hostptr  = hostbuf;
5045 <
4862 >    nuh.userptr  = block_state.user.buf;
4863 >    nuh.hostptr  = block_state.host.buf;
4864      nuh.nicksize = 0;
4865 <    nuh.usersize = sizeof(userbuf);
4866 <    nuh.hostsize = sizeof(hostbuf);
5049 <
4865 >    nuh.usersize = sizeof(block_state.user.buf);
4866 >    nuh.hostsize = sizeof(block_state.host.buf);
4867      split_nuh(&nuh);
4868  
4869 <    if (yy_aconf->user == NULL)
4870 <    {
4871 <      DupString(yy_aconf->user, userbuf);
5055 <      DupString(yy_aconf->host, hostbuf);
5056 <    }
5057 <    else
5058 <    {
5059 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4869 >    conf        = conf_make(CONF_CLIENT);
4870 >    conf->user  = xstrdup(block_state.user.buf);
4871 >    conf->host  = xstrdup(block_state.host.buf);
4872  
4873 <      DupString(yy_tmp->user, userbuf);
4874 <      DupString(yy_tmp->host, hostbuf);
4873 >    if (block_state.rpass.buf[0])
4874 >      conf->passwd = xstrdup(block_state.rpass.buf);
4875 >    if (block_state.name.buf[0])
4876 >      conf->name = xstrdup(block_state.name.buf);
4877  
4878 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4879 <    }
4878 >    conf->flags = block_state.flags.value;
4879 >    conf->port  = block_state.port.value;
4880 >
4881 >    conf_add_class_to_conf(conf, block_state.class.buf);
4882 >    add_conf_by_address(CONF_CLIENT, conf);
4883    }
4884   }
4885      break;
4886  
4887 <  case 264:
4888 <
4889 < /* Line 1806 of yacc.c  */
5073 < #line 1679 "conf_parser.y"
4887 >  case 295:
4888 > /* Line 1787 of yacc.c  */
4889 > #line 1651 "conf_parser.y"
4890      {
4891    if (conf_parser_ctx.pass == 2)
4892 <  {
5077 <    /* be paranoid */
5078 <    if (yy_aconf->passwd != NULL)
5079 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5080 <
5081 <    MyFree(yy_aconf->passwd);
5082 <    DupString(yy_aconf->passwd, yylval.string);
5083 <  }
4892 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4893   }
4894      break;
4895  
4896 <  case 265:
4897 <
4898 < /* Line 1806 of yacc.c  */
5090 < #line 1692 "conf_parser.y"
4896 >  case 296:
4897 > /* Line 1787 of yacc.c  */
4898 > #line 1657 "conf_parser.y"
4899      {
4900    if (conf_parser_ctx.pass == 2)
4901 <  {
5094 <    MyFree(class_name);
5095 <    DupString(class_name, yylval.string);
5096 <  }
4901 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4902   }
4903      break;
4904  
4905 <  case 266:
4905 >  case 297:
4906 > /* Line 1787 of yacc.c  */
4907 > #line 1663 "conf_parser.y"
4908 >    {
4909 >  if (conf_parser_ctx.pass == 2)
4910 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4911 > }
4912 >    break;
4913  
4914 < /* Line 1806 of yacc.c  */
4915 < #line 1701 "conf_parser.y"
4914 >  case 298:
4915 > /* Line 1787 of yacc.c  */
4916 > #line 1669 "conf_parser.y"
4917      {
4918    if (conf_parser_ctx.pass == 2)
4919    {
4920      if (yylval.number)
4921 <      SetConfEncrypted(yy_aconf);
4921 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4922      else
4923 <      ClearConfEncrypted(yy_aconf);
4923 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4924    }
4925   }
4926      break;
4927  
4928 <  case 267:
4929 <
4930 < /* Line 1806 of yacc.c  */
5118 < #line 1712 "conf_parser.y"
4928 >  case 299:
4929 > /* Line 1787 of yacc.c  */
4930 > #line 1680 "conf_parser.y"
4931      {
4932 +  if (conf_parser_ctx.pass == 2)
4933 +    block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4934   }
4935      break;
4936  
4937 <  case 271:
4938 <
4939 < /* Line 1806 of yacc.c  */
5126 < #line 1717 "conf_parser.y"
4937 >  case 303:
4938 > /* Line 1787 of yacc.c  */
4939 > #line 1687 "conf_parser.y"
4940      {
4941    if (conf_parser_ctx.pass == 2)
4942 <    yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
4942 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4943   }
4944      break;
4945  
4946 <  case 272:
4947 <
4948 < /* Line 1806 of yacc.c  */
5136 < #line 1721 "conf_parser.y"
4946 >  case 304:
4947 > /* Line 1787 of yacc.c  */
4948 > #line 1691 "conf_parser.y"
4949      {
4950    if (conf_parser_ctx.pass == 2)
4951 <    yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
4951 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4952   }
4953      break;
4954  
4955 <  case 273:
4956 <
4957 < /* Line 1806 of yacc.c  */
5146 < #line 1725 "conf_parser.y"
4955 >  case 305:
4956 > /* Line 1787 of yacc.c  */
4957 > #line 1695 "conf_parser.y"
4958      {
4959    if (conf_parser_ctx.pass == 2)
4960 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
4960 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4961   }
4962      break;
4963  
4964 <  case 274:
4965 <
4966 < /* Line 1806 of yacc.c  */
5156 < #line 1729 "conf_parser.y"
4964 >  case 306:
4965 > /* Line 1787 of yacc.c  */
4966 > #line 1699 "conf_parser.y"
4967      {
4968    if (conf_parser_ctx.pass == 2)
4969 <    yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
4969 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4970   }
4971      break;
4972  
4973 <  case 275:
4974 <
4975 < /* Line 1806 of yacc.c  */
5166 < #line 1733 "conf_parser.y"
4973 >  case 307:
4974 > /* Line 1787 of yacc.c  */
4975 > #line 1703 "conf_parser.y"
4976      {
4977    if (conf_parser_ctx.pass == 2)
4978 <    yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
4978 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4979   }
4980      break;
4981  
4982 <  case 276:
4983 <
4984 < /* Line 1806 of yacc.c  */
5176 < #line 1737 "conf_parser.y"
4982 >  case 308:
4983 > /* Line 1787 of yacc.c  */
4984 > #line 1707 "conf_parser.y"
4985      {
4986    if (conf_parser_ctx.pass == 2)
4987 <    yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
4987 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4988   }
4989      break;
4990  
4991 <  case 277:
4992 <
4993 < /* Line 1806 of yacc.c  */
5186 < #line 1741 "conf_parser.y"
4991 >  case 309:
4992 > /* Line 1787 of yacc.c  */
4993 > #line 1711 "conf_parser.y"
4994      {
4995    if (conf_parser_ctx.pass == 2)
4996 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
4996 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4997   }
4998      break;
4999  
5000 <  case 278:
5001 <
5002 < /* Line 1806 of yacc.c  */
5196 < #line 1745 "conf_parser.y"
5000 >  case 310:
5001 > /* Line 1787 of yacc.c  */
5002 > #line 1715 "conf_parser.y"
5003      {
5004    if (conf_parser_ctx.pass == 2)
5005 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
5005 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
5006   }
5007      break;
5008  
5009 <  case 279:
5010 <
5011 < /* Line 1806 of yacc.c  */
5206 < #line 1749 "conf_parser.y"
5009 >  case 311:
5010 > /* Line 1787 of yacc.c  */
5011 > #line 1719 "conf_parser.y"
5012      {
5013    if (conf_parser_ctx.pass == 2)
5014 <    yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
5014 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
5015   }
5016      break;
5017  
5018 <  case 280:
5019 <
5020 < /* Line 1806 of yacc.c  */
5216 < #line 1756 "conf_parser.y"
5018 >  case 312:
5019 > /* Line 1787 of yacc.c  */
5020 > #line 1723 "conf_parser.y"
5021      {
5022    if (conf_parser_ctx.pass == 2)
5023 <  {
5220 <    MyFree(yy_conf->name);
5221 <
5222 <    if (strlen(yylval.string) < HOSTLEN)
5223 <    {    
5224 <      DupString(yy_conf->name, yylval.string);
5225 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
5226 <    }
5227 <    else
5228 <    {
5229 <      ilog(LOG_TYPE_IRCD, "Spoofs must be less than %d..ignoring it", HOSTLEN);
5230 <      yy_conf->name = NULL;
5231 <    }
5232 <  }
5023 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
5024   }
5025      break;
5026  
5027 <  case 281:
5028 <
5029 < /* Line 1806 of yacc.c  */
5239 < #line 1775 "conf_parser.y"
5027 >  case 313:
5028 > /* Line 1787 of yacc.c  */
5029 > #line 1729 "conf_parser.y"
5030      {
5031 <  if (conf_parser_ctx.pass == 2)
5031 >  if (conf_parser_ctx.pass != 2)
5032 >    break;
5033 >
5034 >  if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
5035    {
5036 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5037 <    MyFree(yy_conf->name);
5245 <    DupString(yy_conf->name, yylval.string);
5036 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5037 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
5038    }
5039 +  else
5040 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
5041   }
5042      break;
5043  
5044 <  case 282:
5045 <
5046 < /* Line 1806 of yacc.c  */
5253 < #line 1785 "conf_parser.y"
5044 >  case 314:
5045 > /* Line 1787 of yacc.c  */
5046 > #line 1743 "conf_parser.y"
5047      {
5048 <  if (conf_parser_ctx.pass == 2)
5256 <  {
5257 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5258 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5259 <  }
5260 < }
5048 >  if (conf_parser_ctx.pass != 2)
5049      break;
5050  
5051 <  case 283:
5051 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5052 >  block_state.flags.value |= CONF_FLAGS_REDIR;
5053 > }
5054 >    break;
5055  
5056 < /* Line 1806 of yacc.c  */
5057 < #line 1798 "conf_parser.y"
5056 >  case 315:
5057 > /* Line 1787 of yacc.c  */
5058 > #line 1752 "conf_parser.y"
5059      {
5060 <  if (conf_parser_ctx.pass == 2)
5269 <  {
5270 <    MyFree(resv_reason);
5271 <    resv_reason = NULL;
5272 <  }
5273 < }
5060 >  if (conf_parser_ctx.pass != 2)
5061      break;
5062  
5063 <  case 284:
5063 >  block_state.flags.value |= CONF_FLAGS_REDIR;
5064 >  block_state.port.value = (yyvsp[(3) - (4)].number);
5065 > }
5066 >    break;
5067  
5068 < /* Line 1806 of yacc.c  */
5069 < #line 1805 "conf_parser.y"
5068 >  case 316:
5069 > /* Line 1787 of yacc.c  */
5070 > #line 1765 "conf_parser.y"
5071      {
5072 <  if (conf_parser_ctx.pass == 2)
5282 <  {
5283 <    MyFree(resv_reason);
5284 <    resv_reason = NULL;
5285 <  }
5286 < }
5072 >  if (conf_parser_ctx.pass != 2)
5073      break;
5074  
5075 <  case 291:
5075 >  reset_block_state();
5076 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
5077 > }
5078 >    break;
5079  
5080 < /* Line 1806 of yacc.c  */
5081 < #line 1817 "conf_parser.y"
5080 >  case 317:
5081 > /* Line 1787 of yacc.c  */
5082 > #line 1772 "conf_parser.y"
5083      {
5084 <  if (conf_parser_ctx.pass == 2)
5295 <  {
5296 <    MyFree(resv_reason);
5297 <    DupString(resv_reason, yylval.string);
5298 <  }
5299 < }
5084 >  if (conf_parser_ctx.pass != 2)
5085      break;
5086  
5087 <  case 292:
5087 >  create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
5088 > }
5089 >    break;
5090  
5091 < /* Line 1806 of yacc.c  */
5092 < #line 1826 "conf_parser.y"
5091 >  case 324:
5092 > /* Line 1787 of yacc.c  */
5093 > #line 1783 "conf_parser.y"
5094      {
5095    if (conf_parser_ctx.pass == 2)
5096 <  {
5309 <    if (IsChanPrefix(*yylval.string))
5310 <    {
5311 <      char def_reason[] = "No reason";
5312 <
5313 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5314 <    }
5315 <  }
5316 <  /* ignore it for now.. but we really should make a warning if
5317 <   * its an erroneous name --fl_ */
5096 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5097   }
5098      break;
5099  
5100 <  case 293:
5101 <
5102 < /* Line 1806 of yacc.c  */
5324 < #line 1841 "conf_parser.y"
5100 >  case 325:
5101 > /* Line 1787 of yacc.c  */
5102 > #line 1789 "conf_parser.y"
5103      {
5104    if (conf_parser_ctx.pass == 2)
5105 <  {
5328 <    char def_reason[] = "No reason";
5329 <
5330 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5331 <  }
5105 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5106   }
5107      break;
5108  
5109 <  case 299:
5110 <
5111 < /* Line 1806 of yacc.c  */
5338 < #line 1859 "conf_parser.y"
5109 >  case 326:
5110 > /* Line 1787 of yacc.c  */
5111 > #line 1795 "conf_parser.y"
5112      {
5113    if (conf_parser_ctx.pass == 2)
5114 <  {
5342 <    if (valid_servname(yylval.string))
5343 <    {
5344 <      yy_conf = make_conf_item(SERVICE_TYPE);
5345 <      DupString(yy_conf->name, yylval.string);
5346 <    }
5347 <  }
5114 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
5115   }
5116      break;
5117  
5118 <  case 300:
5119 <
5120 < /* Line 1806 of yacc.c  */
5354 < #line 1874 "conf_parser.y"
5118 >  case 332:
5119 > /* Line 1787 of yacc.c  */
5120 > #line 1810 "conf_parser.y"
5121      {
5122 <  if (conf_parser_ctx.pass == 2)
5122 >  if (conf_parser_ctx.pass != 2)
5123 >    break;
5124 >
5125 >  if (valid_servname(yylval.string))
5126    {
5127 <    yy_conf = make_conf_item(ULINE_TYPE);
5128 <    yy_match_item = map_to_conf(yy_conf);
5360 <    yy_match_item->action = SHARED_ALL;
5127 >    struct MaskItem *conf = conf_make(CONF_SERVICE);
5128 >    conf->name = xstrdup(yylval.string);
5129    }
5130   }
5131      break;
5132  
5133 <  case 301:
5134 <
5135 < /* Line 1806 of yacc.c  */
5368 < #line 1882 "conf_parser.y"
5133 >  case 333:
5134 > /* Line 1787 of yacc.c  */
5135 > #line 1825 "conf_parser.y"
5136      {
5137 <  if (conf_parser_ctx.pass == 2)
5138 <  {
5139 <    yy_conf = NULL;
5140 <  }
5137 >  if (conf_parser_ctx.pass != 2)
5138 >    break;
5139 >
5140 >  reset_block_state();
5141 >
5142 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5143 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
5144 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
5145 >  block_state.flags.value = SHARED_ALL;
5146   }
5147      break;
5148  
5149 <  case 308:
5149 >  case 334:
5150 > /* Line 1787 of yacc.c  */
5151 > #line 1836 "conf_parser.y"
5152 >    {
5153 >  struct MaskItem *conf = NULL;
5154  
5155 < /* Line 1806 of yacc.c  */
5156 < #line 1893 "conf_parser.y"
5155 >  if (conf_parser_ctx.pass != 2)
5156 >    break;
5157 >
5158 >  conf = conf_make(CONF_ULINE);
5159 >  conf->flags = block_state.flags.value;
5160 >  conf->name = xstrdup(block_state.name.buf);
5161 >  conf->user = xstrdup(block_state.user.buf);
5162 >  conf->host = xstrdup(block_state.host.buf);
5163 > }
5164 >    break;
5165 >
5166 >  case 341:
5167 > /* Line 1787 of yacc.c  */
5168 > #line 1853 "conf_parser.y"
5169      {
5170    if (conf_parser_ctx.pass == 2)
5171 <  {
5384 <    MyFree(yy_conf->name);
5385 <    DupString(yy_conf->name, yylval.string);
5386 <  }
5171 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5172   }
5173      break;
5174  
5175 <  case 309:
5176 <
5177 < /* Line 1806 of yacc.c  */
5393 < #line 1902 "conf_parser.y"
5175 >  case 342:
5176 > /* Line 1787 of yacc.c  */
5177 > #line 1859 "conf_parser.y"
5178      {
5179    if (conf_parser_ctx.pass == 2)
5180    {
# Line 5398 | Line 5182 | yyreduce:
5182  
5183      nuh.nuhmask  = yylval.string;
5184      nuh.nickptr  = NULL;
5185 <    nuh.userptr  = userbuf;
5186 <    nuh.hostptr  = hostbuf;
5185 >    nuh.userptr  = block_state.user.buf;
5186 >    nuh.hostptr  = block_state.host.buf;
5187  
5188      nuh.nicksize = 0;
5189 <    nuh.usersize = sizeof(userbuf);
5190 <    nuh.hostsize = sizeof(hostbuf);
5189 >    nuh.usersize = sizeof(block_state.user.buf);
5190 >    nuh.hostsize = sizeof(block_state.host.buf);
5191  
5192      split_nuh(&nuh);
5409
5410    DupString(yy_match_item->user, userbuf);
5411    DupString(yy_match_item->host, hostbuf);
5193    }
5194   }
5195      break;
5196  
5197 <  case 310:
5198 <
5199 < /* Line 1806 of yacc.c  */
5419 < #line 1924 "conf_parser.y"
5197 >  case 343:
5198 > /* Line 1787 of yacc.c  */
5199 > #line 1878 "conf_parser.y"
5200      {
5201    if (conf_parser_ctx.pass == 2)
5202 <    yy_match_item->action = 0;
5202 >    block_state.flags.value = 0;
5203   }
5204      break;
5205  
5206 <  case 314:
5207 <
5208 < /* Line 1806 of yacc.c  */
5429 < #line 1931 "conf_parser.y"
5206 >  case 347:
5207 > /* Line 1787 of yacc.c  */
5208 > #line 1885 "conf_parser.y"
5209      {
5210    if (conf_parser_ctx.pass == 2)
5211 <    yy_match_item->action |= SHARED_KLINE;
5211 >    block_state.flags.value |= SHARED_KLINE;
5212   }
5213      break;
5214  
5215 <  case 315:
5216 <
5217 < /* Line 1806 of yacc.c  */
5439 < #line 1935 "conf_parser.y"
5215 >  case 348:
5216 > /* Line 1787 of yacc.c  */
5217 > #line 1889 "conf_parser.y"
5218      {
5219    if (conf_parser_ctx.pass == 2)
5220 <    yy_match_item->action |= SHARED_UNKLINE;
5220 >    block_state.flags.value |= SHARED_UNKLINE;
5221   }
5222      break;
5223  
5224 <  case 316:
5225 <
5226 < /* Line 1806 of yacc.c  */
5449 < #line 1939 "conf_parser.y"
5224 >  case 349:
5225 > /* Line 1787 of yacc.c  */
5226 > #line 1893 "conf_parser.y"
5227      {
5228    if (conf_parser_ctx.pass == 2)
5229 <    yy_match_item->action |= SHARED_DLINE;
5229 >    block_state.flags.value |= SHARED_DLINE;
5230   }
5231      break;
5232  
5233 <  case 317:
5234 <
5235 < /* Line 1806 of yacc.c  */
5459 < #line 1943 "conf_parser.y"
5233 >  case 350:
5234 > /* Line 1787 of yacc.c  */
5235 > #line 1897 "conf_parser.y"
5236      {
5237    if (conf_parser_ctx.pass == 2)
5238 <    yy_match_item->action |= SHARED_UNDLINE;
5238 >    block_state.flags.value |= SHARED_UNDLINE;
5239   }
5240      break;
5241  
5242 <  case 318:
5243 <
5244 < /* Line 1806 of yacc.c  */
5469 < #line 1947 "conf_parser.y"
5242 >  case 351:
5243 > /* Line 1787 of yacc.c  */
5244 > #line 1901 "conf_parser.y"
5245      {
5246    if (conf_parser_ctx.pass == 2)
5247 <    yy_match_item->action |= SHARED_XLINE;
5247 >    block_state.flags.value |= SHARED_XLINE;
5248   }
5249      break;
5250  
5251 <  case 319:
5252 <
5253 < /* Line 1806 of yacc.c  */
5479 < #line 1951 "conf_parser.y"
5251 >  case 352:
5252 > /* Line 1787 of yacc.c  */
5253 > #line 1905 "conf_parser.y"
5254      {
5255    if (conf_parser_ctx.pass == 2)
5256 <    yy_match_item->action |= SHARED_UNXLINE;
5256 >    block_state.flags.value |= SHARED_UNXLINE;
5257   }
5258      break;
5259  
5260 <  case 320:
5261 <
5262 < /* Line 1806 of yacc.c  */
5489 < #line 1955 "conf_parser.y"
5260 >  case 353:
5261 > /* Line 1787 of yacc.c  */
5262 > #line 1909 "conf_parser.y"
5263      {
5264    if (conf_parser_ctx.pass == 2)
5265 <    yy_match_item->action |= SHARED_RESV;
5265 >    block_state.flags.value |= SHARED_RESV;
5266   }
5267      break;
5268  
5269 <  case 321:
5270 <
5271 < /* Line 1806 of yacc.c  */
5499 < #line 1959 "conf_parser.y"
5269 >  case 354:
5270 > /* Line 1787 of yacc.c  */
5271 > #line 1913 "conf_parser.y"
5272      {
5273    if (conf_parser_ctx.pass == 2)
5274 <    yy_match_item->action |= SHARED_UNRESV;
5274 >    block_state.flags.value |= SHARED_UNRESV;
5275   }
5276      break;
5277  
5278 <  case 322:
5279 <
5280 < /* Line 1806 of yacc.c  */
5509 < #line 1963 "conf_parser.y"
5278 >  case 355:
5279 > /* Line 1787 of yacc.c  */
5280 > #line 1917 "conf_parser.y"
5281      {
5282    if (conf_parser_ctx.pass == 2)
5283 <    yy_match_item->action |= SHARED_LOCOPS;
5283 >    block_state.flags.value |= SHARED_LOCOPS;
5284   }
5285      break;
5286  
5287 <  case 323:
5288 <
5289 < /* Line 1806 of yacc.c  */
5519 < #line 1967 "conf_parser.y"
5287 >  case 356:
5288 > /* Line 1787 of yacc.c  */
5289 > #line 1921 "conf_parser.y"
5290      {
5291    if (conf_parser_ctx.pass == 2)
5292 <    yy_match_item->action = SHARED_ALL;
5292 >    block_state.flags.value = SHARED_ALL;
5293   }
5294      break;
5295  
5296 <  case 324:
5297 <
5298 < /* Line 1806 of yacc.c  */
5529 < #line 1976 "conf_parser.y"
5296 >  case 357:
5297 > /* Line 1787 of yacc.c  */
5298 > #line 1930 "conf_parser.y"
5299      {
5300 <  if (conf_parser_ctx.pass == 2)
5532 <  {
5533 <    yy_conf = make_conf_item(CLUSTER_TYPE);
5534 <    yy_conf->flags = SHARED_ALL;
5535 <  }
5536 < }
5300 >  if (conf_parser_ctx.pass != 2)
5301      break;
5302  
5303 <  case 325:
5303 >  reset_block_state();
5304  
5305 < /* Line 1806 of yacc.c  */
5306 < #line 1983 "conf_parser.y"
5543 <    {
5544 <  if (conf_parser_ctx.pass == 2)
5545 <  {
5546 <    if (yy_conf->name == NULL)
5547 <      DupString(yy_conf->name, "*");
5548 <    yy_conf = NULL;
5549 <  }
5305 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5306 >  block_state.flags.value = SHARED_ALL;
5307   }
5308      break;
5309  
5310 <  case 331:
5311 <
5312 < /* Line 1806 of yacc.c  */
5556 < #line 1996 "conf_parser.y"
5310 >  case 358:
5311 > /* Line 1787 of yacc.c  */
5312 > #line 1939 "conf_parser.y"
5313      {
5314 <  if (conf_parser_ctx.pass == 2)
5559 <    DupString(yy_conf->name, yylval.string);
5560 < }
5561 <    break;
5314 >  struct MaskItem *conf = NULL;
5315  
5316 <  case 332:
5316 >  if (conf_parser_ctx.pass != 2)
5317 >    break;
5318  
5319 < /* Line 1806 of yacc.c  */
5320 < #line 2002 "conf_parser.y"
5321 <    {
5568 <  if (conf_parser_ctx.pass == 2)
5569 <    yy_conf->flags = 0;
5319 >  conf = conf_make(CONF_CLUSTER);
5320 >  conf->flags = block_state.flags.value;
5321 >  conf->name = xstrdup(block_state.name.buf);
5322   }
5323      break;
5324  
5325 <  case 336:
5326 <
5327 < /* Line 1806 of yacc.c  */
5576 < #line 2009 "conf_parser.y"
5325 >  case 364:
5326 > /* Line 1787 of yacc.c  */
5327 > #line 1954 "conf_parser.y"
5328      {
5329    if (conf_parser_ctx.pass == 2)
5330 <    yy_conf->flags |= SHARED_KLINE;
5330 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5331   }
5332      break;
5333  
5334 <  case 337:
5335 <
5336 < /* Line 1806 of yacc.c  */
5586 < #line 2013 "conf_parser.y"
5334 >  case 365:
5335 > /* Line 1787 of yacc.c  */
5336 > #line 1960 "conf_parser.y"
5337      {
5338    if (conf_parser_ctx.pass == 2)
5339 <    yy_conf->flags |= SHARED_UNKLINE;
5339 >    block_state.flags.value = 0;
5340   }
5341      break;
5342  
5343 <  case 338:
5344 <
5345 < /* Line 1806 of yacc.c  */
5596 < #line 2017 "conf_parser.y"
5343 >  case 369:
5344 > /* Line 1787 of yacc.c  */
5345 > #line 1967 "conf_parser.y"
5346      {
5347    if (conf_parser_ctx.pass == 2)
5348 <    yy_conf->flags |= SHARED_DLINE;
5348 >    block_state.flags.value |= SHARED_KLINE;
5349   }
5350      break;
5351  
5352 <  case 339:
5353 <
5354 < /* Line 1806 of yacc.c  */
5606 < #line 2021 "conf_parser.y"
5352 >  case 370:
5353 > /* Line 1787 of yacc.c  */
5354 > #line 1971 "conf_parser.y"
5355      {
5356    if (conf_parser_ctx.pass == 2)
5357 <    yy_conf->flags |= SHARED_UNDLINE;
5357 >    block_state.flags.value |= SHARED_UNKLINE;
5358   }
5359      break;
5360  
5361 <  case 340:
5362 <
5363 < /* Line 1806 of yacc.c  */
5616 < #line 2025 "conf_parser.y"
5361 >  case 371:
5362 > /* Line 1787 of yacc.c  */
5363 > #line 1975 "conf_parser.y"
5364      {
5365    if (conf_parser_ctx.pass == 2)
5366 <    yy_conf->flags |= SHARED_XLINE;
5366 >    block_state.flags.value |= SHARED_DLINE;
5367   }
5368      break;
5369  
5370 <  case 341:
5371 <
5372 < /* Line 1806 of yacc.c  */
5626 < #line 2029 "conf_parser.y"
5370 >  case 372:
5371 > /* Line 1787 of yacc.c  */
5372 > #line 1979 "conf_parser.y"
5373      {
5374    if (conf_parser_ctx.pass == 2)
5375 <    yy_conf->flags |= SHARED_UNXLINE;
5375 >    block_state.flags.value |= SHARED_UNDLINE;
5376   }
5377      break;
5378  
5379 <  case 342:
5380 <
5381 < /* Line 1806 of yacc.c  */
5636 < #line 2033 "conf_parser.y"
5379 >  case 373:
5380 > /* Line 1787 of yacc.c  */
5381 > #line 1983 "conf_parser.y"
5382      {
5383    if (conf_parser_ctx.pass == 2)
5384 <    yy_conf->flags |= SHARED_RESV;
5384 >    block_state.flags.value |= SHARED_XLINE;
5385   }
5386      break;
5387  
5388 <  case 343:
5389 <
5390 < /* Line 1806 of yacc.c  */
5646 < #line 2037 "conf_parser.y"
5388 >  case 374:
5389 > /* Line 1787 of yacc.c  */
5390 > #line 1987 "conf_parser.y"
5391      {
5392    if (conf_parser_ctx.pass == 2)
5393 <    yy_conf->flags |= SHARED_UNRESV;
5393 >    block_state.flags.value |= SHARED_UNXLINE;
5394   }
5395      break;
5396  
5397 <  case 344:
5398 <
5399 < /* Line 1806 of yacc.c  */
5656 < #line 2041 "conf_parser.y"
5397 >  case 375:
5398 > /* Line 1787 of yacc.c  */
5399 > #line 1991 "conf_parser.y"
5400      {
5401    if (conf_parser_ctx.pass == 2)
5402 <    yy_conf->flags |= SHARED_LOCOPS;
5402 >    block_state.flags.value |= SHARED_RESV;
5403   }
5404      break;
5405  
5406 <  case 345:
5407 <
5408 < /* Line 1806 of yacc.c  */
5666 < #line 2045 "conf_parser.y"
5406 >  case 376:
5407 > /* Line 1787 of yacc.c  */
5408 > #line 1995 "conf_parser.y"
5409      {
5410    if (conf_parser_ctx.pass == 2)
5411 <    yy_conf->flags = SHARED_ALL;
5411 >    block_state.flags.value |= SHARED_UNRESV;
5412   }
5413      break;
5414  
5415 <  case 346:
5416 <
5417 < /* Line 1806 of yacc.c  */
5676 < #line 2054 "conf_parser.y"
5415 >  case 377:
5416 > /* Line 1787 of yacc.c  */
5417 > #line 1999 "conf_parser.y"
5418      {
5419    if (conf_parser_ctx.pass == 2)
5420 <  {
5680 <    yy_conf = make_conf_item(SERVER_TYPE);
5681 <    yy_aconf = map_to_conf(yy_conf);
5682 <
5683 <    /* defaults */
5684 <    yy_aconf->port = PORTNUM;
5685 <  }
5686 <  else
5687 <  {
5688 <    MyFree(class_name);
5689 <    class_name = NULL;
5690 <  }
5420 >    block_state.flags.value |= SHARED_LOCOPS;
5421   }
5422      break;
5423  
5424 <  case 347:
5425 <
5426 < /* Line 1806 of yacc.c  */
5697 < #line 2069 "conf_parser.y"
5424 >  case 378:
5425 > /* Line 1787 of yacc.c  */
5426 > #line 2003 "conf_parser.y"
5427      {
5428    if (conf_parser_ctx.pass == 2)
5429 <  {
5430 <    struct CollectItem *yy_hconf=NULL;
5431 <    struct CollectItem *yy_lconf=NULL;
5703 <    dlink_node *ptr = NULL, *next_ptr = NULL;
5429 >    block_state.flags.value = SHARED_ALL;
5430 > }
5431 >    break;
5432  
5433 <    if (yy_aconf->host &&
5434 <        yy_aconf->passwd && yy_aconf->spasswd)
5435 <    {
5708 <      if (conf_add_server(yy_conf, class_name) == -1)
5709 <      {
5710 <        delete_conf_item(yy_conf);
5711 <        yy_conf = NULL;
5712 <        yy_aconf = NULL;
5713 <      }
5714 <    }
5715 <    else
5433 >  case 379:
5434 > /* Line 1787 of yacc.c  */
5435 > #line 2012 "conf_parser.y"
5436      {
5717      /* Even if yy_conf ->name is NULL
5718       * should still unhook any hub/leaf confs still pending
5719       */
5720      unhook_hub_leaf_confs();
5721
5722      if (yy_conf->name != NULL)
5723      {
5724        if (yy_aconf->host == NULL)
5725          yyerror("Ignoring connect block -- missing host");
5726        else if (!yy_aconf->passwd || !yy_aconf->spasswd)
5727          yyerror("Ignoring connect block -- missing password");
5728      }
5729
5730
5731      /* XXX
5732       * This fixes a try_connections() core (caused by invalid class_ptr
5733       * pointers) reported by metalrock. That's an ugly fix, but there
5734       * is currently no better way. The entire config subsystem needs an
5735       * rewrite ASAP. make_conf_item() shouldn't really add things onto
5736       * a doubly linked list immediately without any sanity checks!  -Michael
5737       */
5738      delete_conf_item(yy_conf);
5739
5740      yy_aconf = NULL;
5741      yy_conf = NULL;
5742    }
5743
5744      /*
5745       * yy_conf is still pointing at the server that is having
5746       * a connect block built for it. This means, y_aconf->name
5747       * points to the actual irc name this server will be known as.
5748       * Now this new server has a set or even just one hub_mask (or leaf_mask)
5749       * given in the link list at yy_hconf. Fill in the HUB confs
5750       * from this link list now.
5751       */        
5752      DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
5753      {
5754        struct ConfItem *new_hub_conf;
5755        struct MatchItem *match_item;
5756
5757        yy_hconf = ptr->data;
5437  
5438 <        /* yy_conf == NULL is a fatal error for this connect block! */
5439 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5761 <        {
5762 <          new_hub_conf = make_conf_item(HUB_TYPE);
5763 <          match_item = (struct MatchItem *)map_to_conf(new_hub_conf);
5764 <          DupString(new_hub_conf->name, yy_conf->name);
5765 <          if (yy_hconf->user != NULL)
5766 <            DupString(match_item->user, yy_hconf->user);
5767 <          else
5768 <            DupString(match_item->user, "*");
5769 <          if (yy_hconf->host != NULL)
5770 <            DupString(match_item->host, yy_hconf->host);
5771 <          else
5772 <            DupString(match_item->host, "*");
5773 <        }
5774 <        dlinkDelete(&yy_hconf->node, &hub_conf_list);
5775 <        free_collect_item(yy_hconf);
5776 <      }
5777 <
5778 <      /* Ditto for the LEAF confs */
5779 <
5780 <      DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
5781 <      {
5782 <        struct ConfItem *new_leaf_conf;
5783 <        struct MatchItem *match_item;
5784 <
5785 <        yy_lconf = ptr->data;
5438 >  if (conf_parser_ctx.pass != 2)
5439 >    break;
5440  
5441 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5442 <        {
5789 <          new_leaf_conf = make_conf_item(LEAF_TYPE);
5790 <          match_item = (struct MatchItem *)map_to_conf(new_leaf_conf);
5791 <          DupString(new_leaf_conf->name, yy_conf->name);
5792 <          if (yy_lconf->user != NULL)
5793 <            DupString(match_item->user, yy_lconf->user);
5794 <          else
5795 <            DupString(match_item->user, "*");
5796 <          if (yy_lconf->host != NULL)
5797 <            DupString(match_item->host, yy_lconf->host);
5798 <          else
5799 <            DupString(match_item->host, "*");
5800 <        }
5801 <        dlinkDelete(&yy_lconf->node, &leaf_conf_list);
5802 <        free_collect_item(yy_lconf);
5803 <      }
5804 <      MyFree(class_name);
5805 <      class_name = NULL;
5806 <      yy_conf = NULL;
5807 <      yy_aconf = NULL;
5808 <  }
5441 >  reset_block_state();
5442 >  block_state.port.value = PORTNUM;
5443   }
5444      break;
5445  
5446 <  case 364:
5447 <
5448 < /* Line 1806 of yacc.c  */
5815 < #line 2191 "conf_parser.y"
5446 >  case 380:
5447 > /* Line 1787 of yacc.c  */
5448 > #line 2020 "conf_parser.y"
5449      {
5450 <  if (conf_parser_ctx.pass == 2)
5451 <  {
5452 <    MyFree(yy_conf->name);
5453 <    DupString(yy_conf->name, yylval.string);
5821 <  }
5822 < }
5450 >  struct MaskItem *conf = NULL;
5451 >  struct addrinfo hints, *res;
5452 >
5453 >  if (conf_parser_ctx.pass != 2)
5454      break;
5455  
5456 <  case 365:
5456 >  if (!block_state.name.buf[0] ||
5457 >      !block_state.host.buf[0])
5458 >    break;
5459  
5460 < /* Line 1806 of yacc.c  */
5461 < #line 2200 "conf_parser.y"
5829 <    {
5830 <  if (conf_parser_ctx.pass == 2)
5831 <  {
5832 <    MyFree(yy_aconf->host);
5833 <    DupString(yy_aconf->host, yylval.string);
5834 <  }
5835 < }
5460 >  if (!block_state.rpass.buf[0] ||
5461 >      !block_state.spass.buf[0])
5462      break;
5463  
5464 <  case 366:
5464 >  if (has_wildcards(block_state.name.buf) ||
5465 >      has_wildcards(block_state.host.buf))
5466 >    break;
5467  
5468 < /* Line 1806 of yacc.c  */
5469 < #line 2209 "conf_parser.y"
5470 <    {
5471 <  if (conf_parser_ctx.pass == 2)
5472 <  {
5473 <    struct addrinfo hints, *res;
5468 >  conf = conf_make(CONF_SERVER);
5469 >  conf->port = block_state.port.value;
5470 >  conf->flags = block_state.flags.value;
5471 >  conf->aftype = block_state.aftype.value;
5472 >  conf->host = xstrdup(block_state.host.buf);
5473 >  conf->name = xstrdup(block_state.name.buf);
5474 >  conf->passwd = xstrdup(block_state.rpass.buf);
5475 >  conf->spasswd = xstrdup(block_state.spass.buf);
5476 >  conf->cipher_list = xstrdup(block_state.ciph.buf);
5477 >
5478 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5479 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5480  
5481 +  if (block_state.bind.buf[0])
5482 +  {
5483      memset(&hints, 0, sizeof(hints));
5484  
5485      hints.ai_family   = AF_UNSPEC;
5486      hints.ai_socktype = SOCK_STREAM;
5487      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5488  
5489 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
5490 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
5489 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5490 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5491      else
5492      {
5493        assert(res != NULL);
5494  
5495 <      memcpy(&yy_aconf->my_ipnum, res->ai_addr, res->ai_addrlen);
5496 <      yy_aconf->my_ipnum.ss.ss_family = res->ai_family;
5497 <      yy_aconf->my_ipnum.ss_len = res->ai_addrlen;
5495 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5496 >      conf->bind.ss.ss_family = res->ai_family;
5497 >      conf->bind.ss_len = res->ai_addrlen;
5498        freeaddrinfo(res);
5499      }
5500    }
5501 +
5502 +  conf_add_class_to_conf(conf, block_state.class.buf);
5503 +  lookup_confhost(conf);
5504   }
5505      break;
5506  
5507 <  case 367:
5508 <
5509 < /* Line 1806 of yacc.c  */
5871 < #line 2235 "conf_parser.y"
5507 >  case 397:
5508 > /* Line 1787 of yacc.c  */
5509 > #line 2086 "conf_parser.y"
5510      {
5511    if (conf_parser_ctx.pass == 2)
5512 <  {
5875 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5876 <      yyerror("Server passwords cannot begin with a colon");
5877 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5878 <      yyerror("Server passwords cannot contain spaces");
5879 <    else {
5880 <      if (yy_aconf->spasswd != NULL)
5881 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
5882 <
5883 <      MyFree(yy_aconf->spasswd);
5884 <      DupString(yy_aconf->spasswd, yylval.string);
5885 <    }
5886 <  }
5512 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5513   }
5514      break;
5515  
5516 <  case 368:
5517 <
5518 < /* Line 1806 of yacc.c  */
5893 < #line 2253 "conf_parser.y"
5516 >  case 398:
5517 > /* Line 1787 of yacc.c  */
5518 > #line 2092 "conf_parser.y"
5519      {
5520    if (conf_parser_ctx.pass == 2)
5521 <  {
5897 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5898 <      yyerror("Server passwords cannot begin with a colon");
5899 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5900 <      yyerror("Server passwords cannot contain spaces");
5901 <    else {
5902 <      if (yy_aconf->passwd != NULL)
5903 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5904 <
5905 <      MyFree(yy_aconf->passwd);
5906 <      DupString(yy_aconf->passwd, yylval.string);
5907 <    }
5908 <  }
5521 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5522   }
5523      break;
5524  
5525 <  case 369:
5526 <
5527 < /* Line 1806 of yacc.c  */
5915 < #line 2271 "conf_parser.y"
5525 >  case 399:
5526 > /* Line 1787 of yacc.c  */
5527 > #line 2098 "conf_parser.y"
5528      {
5529    if (conf_parser_ctx.pass == 2)
5530 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5530 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5531   }
5532      break;
5533  
5534 <  case 370:
5535 <
5536 < /* Line 1806 of yacc.c  */
5925 < #line 2277 "conf_parser.y"
5534 >  case 400:
5535 > /* Line 1787 of yacc.c  */
5536 > #line 2104 "conf_parser.y"
5537      {
5538 <  if (conf_parser_ctx.pass == 2)
5928 <    yy_aconf->aftype = AF_INET;
5929 < }
5538 >  if (conf_parser_ctx.pass != 2)
5539      break;
5540  
5541 <  case 371:
5541 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5542 >    conf_error_report("Server passwords cannot begin with a colon");
5543 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5544 >    conf_error_report("Server passwords cannot contain spaces");
5545 >  else
5546 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5547 > }
5548 >    break;
5549  
5550 < /* Line 1806 of yacc.c  */
5551 < #line 2281 "conf_parser.y"
5550 >  case 401:
5551 > /* Line 1787 of yacc.c  */
5552 > #line 2117 "conf_parser.y"
5553      {
5554 < #ifdef IPV6
5938 <  if (conf_parser_ctx.pass == 2)
5939 <    yy_aconf->aftype = AF_INET6;
5940 < #endif
5941 < }
5554 >  if (conf_parser_ctx.pass != 2)
5555      break;
5556  
5557 <  case 372:
5557 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5558 >    conf_error_report("Server passwords cannot begin with a colon");
5559 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5560 >    conf_error_report("Server passwords cannot contain spaces");
5561 >  else
5562 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5563 > }
5564 >    break;
5565  
5566 < /* Line 1806 of yacc.c  */
5567 < #line 2289 "conf_parser.y"
5566 >  case 402:
5567 > /* Line 1787 of yacc.c  */
5568 > #line 2130 "conf_parser.y"
5569      {
5570 +  if (conf_parser_ctx.pass == 2)
5571 +    block_state.port.value = (yyvsp[(3) - (4)].number);
5572   }
5573      break;
5574  
5575 <  case 376:
5576 <
5577 < /* Line 1806 of yacc.c  */
5955 < #line 2294 "conf_parser.y"
5575 >  case 403:
5576 > /* Line 1787 of yacc.c  */
5577 > #line 2136 "conf_parser.y"
5578      {
5579    if (conf_parser_ctx.pass == 2)
5580 <    SetConfAllowAutoConn(yy_aconf);
5580 >    block_state.aftype.value = AF_INET;
5581   }
5582      break;
5583  
5584 <  case 377:
5585 <
5586 < /* Line 1806 of yacc.c  */
5965 < #line 2298 "conf_parser.y"
5584 >  case 404:
5585 > /* Line 1787 of yacc.c  */
5586 > #line 2140 "conf_parser.y"
5587      {
5588 + #ifdef IPV6
5589    if (conf_parser_ctx.pass == 2)
5590 <    SetConfAwayBurst(yy_aconf);
5590 >    block_state.aftype.value = AF_INET6;
5591 > #endif
5592   }
5593      break;
5594  
5595 <  case 378:
5595 >  case 405:
5596 > /* Line 1787 of yacc.c  */
5597 > #line 2148 "conf_parser.y"
5598 >    {
5599 >  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5600 > }
5601 >    break;
5602  
5603 < /* Line 1806 of yacc.c  */
5604 < #line 2302 "conf_parser.y"
5603 >  case 409:
5604 > /* Line 1787 of yacc.c  */
5605 > #line 2154 "conf_parser.y"
5606      {
5607    if (conf_parser_ctx.pass == 2)
5608 <    SetConfTopicBurst(yy_aconf);
5608 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5609   }
5610      break;
5611  
5612 <  case 379:
5613 <
5614 < /* Line 1806 of yacc.c  */
5985 < #line 2306 "conf_parser.y"
5612 >  case 410:
5613 > /* Line 1787 of yacc.c  */
5614 > #line 2158 "conf_parser.y"
5615      {
5616    if (conf_parser_ctx.pass == 2)
5617 <    SetConfSSL(yy_aconf);
5617 >    block_state.flags.value |= CONF_FLAGS_SSL;
5618   }
5619      break;
5620  
5621 <  case 380:
5622 <
5623 < /* Line 1806 of yacc.c  */
5995 < #line 2312 "conf_parser.y"
5621 >  case 411:
5622 > /* Line 1787 of yacc.c  */
5623 > #line 2164 "conf_parser.y"
5624      {
5625    if (conf_parser_ctx.pass == 2)
5626    {
5627      if (yylval.number)
5628 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
5628 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5629      else
5630 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
5630 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5631    }
5632   }
5633      break;
5634  
5635 <  case 381:
5636 <
5637 < /* Line 1806 of yacc.c  */
6010 < #line 2323 "conf_parser.y"
5635 >  case 412:
5636 > /* Line 1787 of yacc.c  */
5637 > #line 2175 "conf_parser.y"
5638      {
5639    if (conf_parser_ctx.pass == 2)
5640 <  {
6014 <    struct CollectItem *yy_tmp;
6015 <
6016 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6017 <    DupString(yy_tmp->host, yylval.string);
6018 <    DupString(yy_tmp->user, "*");
6019 <    dlinkAdd(yy_tmp, &yy_tmp->node, &hub_conf_list);
6020 <  }
5640 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5641   }
5642      break;
5643  
5644 <  case 382:
5645 <
5646 < /* Line 1806 of yacc.c  */
6027 < #line 2336 "conf_parser.y"
5644 >  case 413:
5645 > /* Line 1787 of yacc.c  */
5646 > #line 2181 "conf_parser.y"
5647      {
5648    if (conf_parser_ctx.pass == 2)
5649 <  {
6031 <    struct CollectItem *yy_tmp;
6032 <
6033 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6034 <    DupString(yy_tmp->host, yylval.string);
6035 <    DupString(yy_tmp->user, "*");
6036 <    dlinkAdd(yy_tmp, &yy_tmp->node, &leaf_conf_list);
6037 <  }
5649 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5650   }
5651      break;
5652  
5653 <  case 383:
5654 <
5655 < /* Line 1806 of yacc.c  */
6044 < #line 2349 "conf_parser.y"
5653 >  case 414:
5654 > /* Line 1787 of yacc.c  */
5655 > #line 2187 "conf_parser.y"
5656      {
5657    if (conf_parser_ctx.pass == 2)
5658 <  {
6048 <    MyFree(class_name);
6049 <    DupString(class_name, yylval.string);
6050 <  }
5658 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5659   }
5660      break;
5661  
5662 <  case 384:
5663 <
5664 < /* Line 1806 of yacc.c  */
6057 < #line 2358 "conf_parser.y"
5662 >  case 415:
5663 > /* Line 1787 of yacc.c  */
5664 > #line 2193 "conf_parser.y"
5665      {
5666   #ifdef HAVE_LIBCRYPTO
5667    if (conf_parser_ctx.pass == 2)
5668 <  {
6062 <    MyFree(yy_aconf->cipher_list);
6063 <    DupString(yy_aconf->cipher_list, yylval.string);
6064 <  }
5668 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5669   #else
5670    if (conf_parser_ctx.pass == 2)
5671 <    yyerror("Ignoring connect::ciphers -- no OpenSSL support");
5671 >    conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5672   #endif
5673   }
5674      break;
5675  
5676 <  case 385:
5677 <
5678 < /* Line 1806 of yacc.c  */
6075 < #line 2376 "conf_parser.y"
5676 >  case 416:
5677 > /* Line 1787 of yacc.c  */
5678 > #line 2208 "conf_parser.y"
5679      {
5680    if (conf_parser_ctx.pass == 2)
5681 <  {
6079 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
6080 <    regex_ban = 0;
6081 <  }
5681 >    reset_block_state();
5682   }
5683      break;
5684  
5685 <  case 386:
5686 <
5687 < /* Line 1806 of yacc.c  */
6088 < #line 2383 "conf_parser.y"
6089 <    {
6090 <  if (conf_parser_ctx.pass == 2)
6091 <  {
6092 <    if (userbuf[0] && hostbuf[0])
5685 >  case 417:
5686 > /* Line 1787 of yacc.c  */
5687 > #line 2212 "conf_parser.y"
5688      {
5689 <      if (regex_ban)
6095 <      {
6096 < #ifdef HAVE_LIBPCRE
6097 <        void *exp_user = NULL;
6098 <        void *exp_host = NULL;
6099 <        const char *errptr = NULL;
6100 <
6101 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
6102 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
6103 <        {
6104 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
6105 <               errptr);
6106 <          break;
6107 <        }
6108 <
6109 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
6110 <        yy_aconf->regexuser = exp_user;
6111 <        yy_aconf->regexhost = exp_host;
6112 <
6113 <        DupString(yy_aconf->user, userbuf);
6114 <        DupString(yy_aconf->host, hostbuf);
6115 <
6116 <        if (reasonbuf[0])
6117 <          DupString(yy_aconf->reason, reasonbuf);
6118 <        else
6119 <          DupString(yy_aconf->reason, "No reason");
6120 < #else
6121 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
6122 <        break;
6123 < #endif
6124 <      }
6125 <      else
6126 <      {
6127 <        find_and_delete_temporary(userbuf, hostbuf, CONF_KLINE);
6128 <
6129 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
5689 >  struct MaskItem *conf = NULL;
5690  
5691 <        DupString(yy_aconf->user, userbuf);
6132 <        DupString(yy_aconf->host, hostbuf);
6133 <
6134 <        if (reasonbuf[0])
6135 <          DupString(yy_aconf->reason, reasonbuf);
6136 <        else
6137 <          DupString(yy_aconf->reason, "No reason");
6138 <        add_conf_by_address(CONF_KLINE, yy_aconf);
6139 <      }
6140 <    }
6141 <
6142 <    yy_aconf = NULL;
6143 <  }
6144 < }
5691 >  if (conf_parser_ctx.pass != 2)
5692      break;
5693  
5694 <  case 387:
5695 <
6149 < /* Line 1806 of yacc.c  */
6150 < #line 2441 "conf_parser.y"
6151 <    {
6152 < }
5694 >  if (!block_state.user.buf[0] ||
5695 >      !block_state.host.buf[0])
5696      break;
5697  
5698 <  case 391:
5698 >  conf = conf_make(CONF_KLINE);
5699 >  conf->user = xstrdup(block_state.user.buf);
5700 >  conf->host = xstrdup(block_state.host.buf);
5701  
5702 < /* Line 1806 of yacc.c  */
5703 < #line 2446 "conf_parser.y"
5704 <    {
5705 <  if (conf_parser_ctx.pass == 2)
5706 <    regex_ban = 1;
5702 >  if (block_state.rpass.buf[0])
5703 >    conf->reason = xstrdup(block_state.rpass.buf);
5704 >  else
5705 >    conf->reason = xstrdup(CONF_NOREASON);
5706 >  add_conf_by_address(CONF_KLINE, conf);
5707   }
5708      break;
5709  
5710 <  case 398:
5711 <
5712 < /* Line 1806 of yacc.c  */
6168 < #line 2455 "conf_parser.y"
5710 >  case 423:
5711 > /* Line 1787 of yacc.c  */
5712 > #line 2237 "conf_parser.y"
5713      {
5714 +
5715    if (conf_parser_ctx.pass == 2)
5716    {
5717      struct split_nuh_item nuh;
5718  
5719      nuh.nuhmask  = yylval.string;
5720      nuh.nickptr  = NULL;
5721 <    nuh.userptr  = userbuf;
5722 <    nuh.hostptr  = hostbuf;
5721 >    nuh.userptr  = block_state.user.buf;
5722 >    nuh.hostptr  = block_state.host.buf;
5723  
5724      nuh.nicksize = 0;
5725 <    nuh.usersize = sizeof(userbuf);
5726 <    nuh.hostsize = sizeof(hostbuf);
5725 >    nuh.usersize = sizeof(block_state.user.buf);
5726 >    nuh.hostsize = sizeof(block_state.host.buf);
5727  
5728      split_nuh(&nuh);
5729    }
5730   }
5731      break;
5732  
5733 <  case 399:
5734 <
5735 < /* Line 1806 of yacc.c  */
6191 < #line 2474 "conf_parser.y"
5733 >  case 424:
5734 > /* Line 1787 of yacc.c  */
5735 > #line 2257 "conf_parser.y"
5736      {
5737    if (conf_parser_ctx.pass == 2)
5738 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5738 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5739   }
5740      break;
5741  
5742 <  case 400:
5743 <
5744 < /* Line 1806 of yacc.c  */
6201 < #line 2483 "conf_parser.y"
5742 >  case 425:
5743 > /* Line 1787 of yacc.c  */
5744 > #line 2266 "conf_parser.y"
5745      {
5746    if (conf_parser_ctx.pass == 2)
5747 <    hostbuf[0] = reasonbuf[0] = '\0';
5747 >    reset_block_state();
5748   }
5749      break;
5750  
5751 <  case 401:
5752 <
5753 < /* Line 1806 of yacc.c  */
6211 < #line 2487 "conf_parser.y"
5751 >  case 426:
5752 > /* Line 1787 of yacc.c  */
5753 > #line 2270 "conf_parser.y"
5754      {
5755 <  if (conf_parser_ctx.pass == 2)
6214 <  {
6215 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
6216 <    {
6217 <      find_and_delete_temporary(NULL, hostbuf, CONF_DLINE);
5755 >  struct MaskItem *conf = NULL;
5756  
5757 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
5758 <      DupString(yy_aconf->host, hostbuf);
5757 >  if (conf_parser_ctx.pass != 2)
5758 >    break;
5759  
5760 <      if (reasonbuf[0])
5761 <        DupString(yy_aconf->reason, reasonbuf);
5762 <      else
5763 <        DupString(yy_aconf->reason, "No reason");
5764 <      add_conf_by_address(CONF_DLINE, yy_aconf);
5765 <      yy_aconf = NULL;
5766 <    }
5760 >  if (!block_state.addr.buf[0])
5761 >    break;
5762 >
5763 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5764 >  {
5765 >    conf = conf_make(CONF_DLINE);
5766 >    conf->host = xstrdup(block_state.addr.buf);
5767 >
5768 >    if (block_state.rpass.buf[0])
5769 >      conf->reason = xstrdup(block_state.rpass.buf);
5770 >    else
5771 >      conf->reason = xstrdup(CONF_NOREASON);
5772 >    add_conf_by_address(CONF_DLINE, conf);
5773    }
5774   }
5775      break;
5776  
5777 <  case 407:
5778 <
5779 < /* Line 1806 of yacc.c  */
6236 < #line 2511 "conf_parser.y"
5777 >  case 432:
5778 > /* Line 1787 of yacc.c  */
5779 > #line 2296 "conf_parser.y"
5780      {
5781    if (conf_parser_ctx.pass == 2)
5782 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5782 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5783   }
5784      break;
5785  
5786 <  case 408:
5787 <
5788 < /* Line 1806 of yacc.c  */
6246 < #line 2517 "conf_parser.y"
5786 >  case 433:
5787 > /* Line 1787 of yacc.c  */
5788 > #line 2302 "conf_parser.y"
5789      {
5790    if (conf_parser_ctx.pass == 2)
5791 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5791 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5792   }
5793      break;
5794  
5795 <  case 414:
5796 <
5797 < /* Line 1806 of yacc.c  */
6256 < #line 2531 "conf_parser.y"
5795 >  case 439:
5796 > /* Line 1787 of yacc.c  */
5797 > #line 2316 "conf_parser.y"
5798      {
5799    if (conf_parser_ctx.pass == 2)
5800    {
5801      if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5802      {
5803 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5804 <      DupString(yy_aconf->host, yylval.string);
5803 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5804 >      conf->host = xstrdup(yylval.string);
5805  
5806 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
6266 <      yy_aconf = NULL;
5806 >      add_conf_by_address(CONF_EXEMPT, conf);
5807      }
5808    }
5809   }
5810      break;
5811  
5812 <  case 415:
5813 <
5814 < /* Line 1806 of yacc.c  */
6275 < #line 2549 "conf_parser.y"
5812 >  case 440:
5813 > /* Line 1787 of yacc.c  */
5814 > #line 2333 "conf_parser.y"
5815      {
5816    if (conf_parser_ctx.pass == 2)
5817 <  {
6279 <    regex_ban = 0;
6280 <    reasonbuf[0] = gecos_name[0] = '\0';
6281 <  }
5817 >    reset_block_state();
5818   }
5819      break;
5820  
5821 <  case 416:
5822 <
5823 < /* Line 1806 of yacc.c  */
6288 < #line 2556 "conf_parser.y"
6289 <    {
6290 <  if (conf_parser_ctx.pass == 2)
6291 <  {
6292 <    if (gecos_name[0])
5821 >  case 441:
5822 > /* Line 1787 of yacc.c  */
5823 > #line 2337 "conf_parser.y"
5824      {
5825 <      if (regex_ban)
6295 <      {
6296 < #ifdef HAVE_LIBPCRE
6297 <        void *exp_p = NULL;
6298 <        const char *errptr = NULL;
5825 >  struct MaskItem *conf = NULL;
5826  
5827 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
5828 <        {
6302 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
6303 <               errptr);
6304 <          break;
6305 <        }
6306 <
6307 <        yy_conf = make_conf_item(RXLINE_TYPE);
6308 <        yy_conf->regexpname = exp_p;
6309 < #else
6310 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
6311 <        break;
6312 < #endif
6313 <      }
6314 <      else
6315 <        yy_conf = make_conf_item(XLINE_TYPE);
6316 <
6317 <      yy_match_item = map_to_conf(yy_conf);
6318 <      DupString(yy_conf->name, gecos_name);
5827 >  if (conf_parser_ctx.pass != 2)
5828 >    break;
5829  
5830 <      if (reasonbuf[0])
6321 <        DupString(yy_match_item->reason, reasonbuf);
6322 <      else
6323 <        DupString(yy_match_item->reason, "No reason");
6324 <    }
6325 <  }
6326 < }
5830 >  if (!block_state.name.buf[0])
5831      break;
5832  
5833 <  case 417:
5833 >  conf = conf_make(CONF_XLINE);
5834 >  conf->name = xstrdup(block_state.name.buf);
5835  
5836 < /* Line 1806 of yacc.c  */
5837 < #line 2596 "conf_parser.y"
5838 <    {
5836 >  if (block_state.rpass.buf[0])
5837 >    conf->reason = xstrdup(block_state.rpass.buf);
5838 >  else
5839 >    conf->reason = xstrdup(CONF_NOREASON);
5840   }
5841      break;
5842  
5843 <  case 421:
5844 <
5845 < /* Line 1806 of yacc.c  */
6340 < #line 2601 "conf_parser.y"
5843 >  case 447:
5844 > /* Line 1787 of yacc.c  */
5845 > #line 2359 "conf_parser.y"
5846      {
5847    if (conf_parser_ctx.pass == 2)
5848 <    regex_ban = 1;
5848 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5849   }
5850      break;
5851  
5852 <  case 428:
5853 <
5854 < /* Line 1806 of yacc.c  */
6350 < #line 2610 "conf_parser.y"
5852 >  case 448:
5853 > /* Line 1787 of yacc.c  */
5854 > #line 2365 "conf_parser.y"
5855      {
5856    if (conf_parser_ctx.pass == 2)
5857 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5857 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5858   }
5859      break;
5860  
5861 <  case 429:
5862 <
5863 < /* Line 1806 of yacc.c  */
6360 < #line 2616 "conf_parser.y"
5861 >  case 501:
5862 > /* Line 1787 of yacc.c  */
5863 > #line 2409 "conf_parser.y"
5864      {
5865 <  if (conf_parser_ctx.pass == 2)
6363 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5865 >  ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5866   }
5867      break;
5868  
5869 <  case 485:
5870 <
5871 < /* Line 1806 of yacc.c  */
6370 < #line 2660 "conf_parser.y"
5869 >  case 502:
5870 > /* Line 1787 of yacc.c  */
5871 > #line 2414 "conf_parser.y"
5872      {
5873 <  ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5873 >  if (conf_parser_ctx.pass == 2)
5874 >    ConfigFileEntry.glines = yylval.number;
5875   }
5876      break;
5877  
5878 <  case 486:
5879 <
5880 < /* Line 1806 of yacc.c  */
6379 < #line 2665 "conf_parser.y"
5878 >  case 503:
5879 > /* Line 1787 of yacc.c  */
5880 > #line 2420 "conf_parser.y"
5881      {
5882 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5882 >  if (conf_parser_ctx.pass == 2)
5883 >    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5884   }
5885      break;
5886  
5887 <  case 487:
5888 <
5889 < /* Line 1806 of yacc.c  */
6388 < #line 2670 "conf_parser.y"
5887 >  case 504:
5888 > /* Line 1787 of yacc.c  */
5889 > #line 2426 "conf_parser.y"
5890      {
5891 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5891 >  if (conf_parser_ctx.pass == 2)
5892 >    ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5893   }
5894      break;
5895  
5896 <  case 488:
5897 <
5898 < /* Line 1806 of yacc.c  */
6397 < #line 2675 "conf_parser.y"
5896 >  case 505:
5897 > /* Line 1787 of yacc.c  */
5898 > #line 2432 "conf_parser.y"
5899      {
5900 <  ConfigFileEntry.use_whois_actually = yylval.number;
5900 >  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5901   }
5902      break;
5903  
5904 <  case 489:
5905 <
5906 < /* Line 1806 of yacc.c  */
6406 < #line 2680 "conf_parser.y"
5904 >  case 506:
5905 > /* Line 1787 of yacc.c  */
5906 > #line 2437 "conf_parser.y"
5907      {
5908 <  GlobalSetOptions.rejecttime = yylval.number;
5908 >  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5909   }
5910      break;
5911  
5912 <  case 490:
5913 <
5914 < /* Line 1806 of yacc.c  */
6415 < #line 2685 "conf_parser.y"
5912 >  case 507:
5913 > /* Line 1787 of yacc.c  */
5914 > #line 2442 "conf_parser.y"
5915      {
5916    ConfigFileEntry.tkline_expire_notices = yylval.number;
5917   }
5918      break;
5919  
5920 <  case 491:
5921 <
5922 < /* Line 1806 of yacc.c  */
6424 < #line 2690 "conf_parser.y"
5920 >  case 508:
5921 > /* Line 1787 of yacc.c  */
5922 > #line 2447 "conf_parser.y"
5923      {
5924    ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5925   }
5926      break;
5927  
5928 <  case 492:
5929 <
5930 < /* Line 1806 of yacc.c  */
6433 < #line 2695 "conf_parser.y"
5928 >  case 509:
5929 > /* Line 1787 of yacc.c  */
5930 > #line 2452 "conf_parser.y"
5931      {
5932    ConfigFileEntry.hide_spoof_ips = yylval.number;
5933   }
5934      break;
5935  
5936 <  case 493:
5937 <
5938 < /* Line 1806 of yacc.c  */
6442 < #line 2700 "conf_parser.y"
5936 >  case 510:
5937 > /* Line 1787 of yacc.c  */
5938 > #line 2457 "conf_parser.y"
5939      {
5940    ConfigFileEntry.ignore_bogus_ts = yylval.number;
5941   }
5942      break;
5943  
5944 <  case 494:
5945 <
5946 < /* Line 1806 of yacc.c  */
6451 < #line 2705 "conf_parser.y"
5944 >  case 511:
5945 > /* Line 1787 of yacc.c  */
5946 > #line 2462 "conf_parser.y"
5947      {
5948    ConfigFileEntry.disable_remote = yylval.number;
5949   }
5950      break;
5951  
5952 <  case 495:
5953 <
5954 < /* Line 1806 of yacc.c  */
6460 < #line 2710 "conf_parser.y"
5952 >  case 512:
5953 > /* Line 1787 of yacc.c  */
5954 > #line 2467 "conf_parser.y"
5955      {
5956    ConfigFileEntry.failed_oper_notice = yylval.number;
5957   }
5958      break;
5959  
5960 <  case 496:
5961 <
5962 < /* Line 1806 of yacc.c  */
6469 < #line 2715 "conf_parser.y"
5960 >  case 513:
5961 > /* Line 1787 of yacc.c  */
5962 > #line 2472 "conf_parser.y"
5963      {
5964    ConfigFileEntry.anti_nick_flood = yylval.number;
5965   }
5966      break;
5967  
5968 <  case 497:
5969 <
5970 < /* Line 1806 of yacc.c  */
6478 < #line 2720 "conf_parser.y"
5968 >  case 514:
5969 > /* Line 1787 of yacc.c  */
5970 > #line 2477 "conf_parser.y"
5971      {
5972    ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5973   }
5974      break;
5975  
5976 <  case 498:
5977 <
5978 < /* Line 1806 of yacc.c  */
6487 < #line 2725 "conf_parser.y"
5976 >  case 515:
5977 > /* Line 1787 of yacc.c  */
5978 > #line 2482 "conf_parser.y"
5979      {
5980    ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5981   }
5982      break;
5983  
5984 <  case 499:
5985 <
5986 < /* Line 1806 of yacc.c  */
6496 < #line 2730 "conf_parser.y"
5984 >  case 516:
5985 > /* Line 1787 of yacc.c  */
5986 > #line 2487 "conf_parser.y"
5987      {
5988    ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5989   }
5990      break;
5991  
5992 <  case 500:
5993 <
5994 < /* Line 1806 of yacc.c  */
6505 < #line 2735 "conf_parser.y"
5992 >  case 517:
5993 > /* Line 1787 of yacc.c  */
5994 > #line 2492 "conf_parser.y"
5995      {
5996    ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5997   }
5998      break;
5999  
6000 <  case 501:
6001 <
6002 < /* Line 1806 of yacc.c  */
6514 < #line 2740 "conf_parser.y"
6000 >  case 518:
6001 > /* Line 1787 of yacc.c  */
6002 > #line 2497 "conf_parser.y"
6003      {
6004    ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
6005   }
6006      break;
6007  
6008 <  case 502:
6009 <
6010 < /* Line 1806 of yacc.c  */
6523 < #line 2745 "conf_parser.y"
6008 >  case 519:
6009 > /* Line 1787 of yacc.c  */
6010 > #line 2502 "conf_parser.y"
6011      {
6012    if (conf_parser_ctx.pass == 2)
6013      ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
6014   }
6015      break;
6016  
6017 <  case 503:
6018 <
6019 < /* Line 1806 of yacc.c  */
6533 < #line 2751 "conf_parser.y"
6017 >  case 520:
6018 > /* Line 1787 of yacc.c  */
6019 > #line 2508 "conf_parser.y"
6020      {
6021    if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
6022    {
# Line 6542 | Line 6028 | yyreduce:
6028   }
6029      break;
6030  
6031 <  case 504:
6032 <
6033 < /* Line 1806 of yacc.c  */
6548 < #line 2762 "conf_parser.y"
6549 <    {
6550 <  ConfigFileEntry.kline_with_reason = yylval.number;
6551 < }
6552 <    break;
6553 <
6554 <  case 505:
6555 <
6556 < /* Line 1806 of yacc.c  */
6557 < #line 2767 "conf_parser.y"
6558 <    {
6559 <  if (conf_parser_ctx.pass == 2)
6560 <  {
6561 <    MyFree(ConfigFileEntry.kline_reason);
6562 <    DupString(ConfigFileEntry.kline_reason, yylval.string);
6563 <  }
6564 < }
6565 <    break;
6566 <
6567 <  case 506:
6568 <
6569 < /* Line 1806 of yacc.c  */
6570 < #line 2776 "conf_parser.y"
6031 >  case 521:
6032 > /* Line 1787 of yacc.c  */
6033 > #line 2519 "conf_parser.y"
6034      {
6035    ConfigFileEntry.invisible_on_connect = yylval.number;
6036   }
6037      break;
6038  
6039 <  case 507:
6040 <
6041 < /* Line 1806 of yacc.c  */
6579 < #line 2781 "conf_parser.y"
6039 >  case 522:
6040 > /* Line 1787 of yacc.c  */
6041 > #line 2524 "conf_parser.y"
6042      {
6043    ConfigFileEntry.warn_no_nline = yylval.number;
6044   }
6045      break;
6046  
6047 <  case 508:
6048 <
6049 < /* Line 1806 of yacc.c  */
6588 < #line 2786 "conf_parser.y"
6047 >  case 523:
6048 > /* Line 1787 of yacc.c  */
6049 > #line 2529 "conf_parser.y"
6050      {
6051    ConfigFileEntry.stats_e_disabled = yylval.number;
6052   }
6053      break;
6054  
6055 <  case 509:
6056 <
6057 < /* Line 1806 of yacc.c  */
6597 < #line 2791 "conf_parser.y"
6055 >  case 524:
6056 > /* Line 1787 of yacc.c  */
6057 > #line 2534 "conf_parser.y"
6058      {
6059    ConfigFileEntry.stats_o_oper_only = yylval.number;
6060   }
6061      break;
6062  
6063 <  case 510:
6064 <
6065 < /* Line 1806 of yacc.c  */
6606 < #line 2796 "conf_parser.y"
6063 >  case 525:
6064 > /* Line 1787 of yacc.c  */
6065 > #line 2539 "conf_parser.y"
6066      {
6067    ConfigFileEntry.stats_P_oper_only = yylval.number;
6068   }
6069      break;
6070  
6071 <  case 511:
6072 <
6073 < /* Line 1806 of yacc.c  */
6615 < #line 2801 "conf_parser.y"
6071 >  case 526:
6072 > /* Line 1787 of yacc.c  */
6073 > #line 2544 "conf_parser.y"
6074      {
6075    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
6076   }
6077      break;
6078  
6079 <  case 512:
6080 <
6081 < /* Line 1806 of yacc.c  */
6624 < #line 2804 "conf_parser.y"
6079 >  case 527:
6080 > /* Line 1787 of yacc.c  */
6081 > #line 2547 "conf_parser.y"
6082      {
6083    ConfigFileEntry.stats_k_oper_only = 1;
6084   }
6085      break;
6086  
6087 <  case 513:
6088 <
6089 < /* Line 1806 of yacc.c  */
6633 < #line 2809 "conf_parser.y"
6087 >  case 528:
6088 > /* Line 1787 of yacc.c  */
6089 > #line 2552 "conf_parser.y"
6090      {
6091    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
6092   }
6093      break;
6094  
6095 <  case 514:
6096 <
6097 < /* Line 1806 of yacc.c  */
6642 < #line 2812 "conf_parser.y"
6095 >  case 529:
6096 > /* Line 1787 of yacc.c  */
6097 > #line 2555 "conf_parser.y"
6098      {
6099    ConfigFileEntry.stats_i_oper_only = 1;
6100   }
6101      break;
6102  
6103 <  case 515:
6104 <
6105 < /* Line 1806 of yacc.c  */
6651 < #line 2817 "conf_parser.y"
6103 >  case 530:
6104 > /* Line 1787 of yacc.c  */
6105 > #line 2560 "conf_parser.y"
6106      {
6107    ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
6108   }
6109      break;
6110  
6111 <  case 516:
6112 <
6113 < /* Line 1806 of yacc.c  */
6660 < #line 2822 "conf_parser.y"
6111 >  case 531:
6112 > /* Line 1787 of yacc.c  */
6113 > #line 2565 "conf_parser.y"
6114      {
6115    ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
6116   }
6117      break;
6118  
6119 <  case 517:
6120 <
6121 < /* Line 1806 of yacc.c  */
6669 < #line 2827 "conf_parser.y"
6119 >  case 532:
6120 > /* Line 1787 of yacc.c  */
6121 > #line 2570 "conf_parser.y"
6122      {
6123    ConfigFileEntry.opers_bypass_callerid = yylval.number;
6124   }
6125      break;
6126  
6127 <  case 518:
6128 <
6129 < /* Line 1806 of yacc.c  */
6678 < #line 2832 "conf_parser.y"
6127 >  case 533:
6128 > /* Line 1787 of yacc.c  */
6129 > #line 2575 "conf_parser.y"
6130      {
6131    ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
6132   }
6133      break;
6134  
6135 <  case 519:
6136 <
6137 < /* Line 1806 of yacc.c  */
6687 < #line 2837 "conf_parser.y"
6135 >  case 534:
6136 > /* Line 1787 of yacc.c  */
6137 > #line 2580 "conf_parser.y"
6138      {
6139    ConfigFileEntry.short_motd = yylval.number;
6140   }
6141      break;
6142  
6143 <  case 520:
6144 <
6145 < /* Line 1806 of yacc.c  */
6696 < #line 2842 "conf_parser.y"
6143 >  case 535:
6144 > /* Line 1787 of yacc.c  */
6145 > #line 2585 "conf_parser.y"
6146      {
6147    ConfigFileEntry.no_oper_flood = yylval.number;
6148   }
6149      break;
6150  
6151 <  case 521:
6152 <
6153 < /* Line 1806 of yacc.c  */
6705 < #line 2847 "conf_parser.y"
6151 >  case 536:
6152 > /* Line 1787 of yacc.c  */
6153 > #line 2590 "conf_parser.y"
6154      {
6155    ConfigFileEntry.true_no_oper_flood = yylval.number;
6156   }
6157      break;
6158  
6159 <  case 522:
6160 <
6161 < /* Line 1806 of yacc.c  */
6714 < #line 2852 "conf_parser.y"
6159 >  case 537:
6160 > /* Line 1787 of yacc.c  */
6161 > #line 2595 "conf_parser.y"
6162      {
6163    ConfigFileEntry.oper_pass_resv = yylval.number;
6164   }
6165      break;
6166  
6167 <  case 523:
6168 <
6169 < /* Line 1806 of yacc.c  */
6723 < #line 2857 "conf_parser.y"
6724 <    {
6725 <  if (conf_parser_ctx.pass == 2)
6726 <  {
6727 <    if (strlen(yylval.string) > LOCALE_LENGTH-2)
6728 <      yylval.string[LOCALE_LENGTH-1] = '\0';
6729 <
6730 <    set_locale(yylval.string);
6731 <  }
6732 < }
6733 <    break;
6734 <
6735 <  case 524:
6736 <
6737 < /* Line 1806 of yacc.c  */
6738 < #line 2868 "conf_parser.y"
6167 >  case 538:
6168 > /* Line 1787 of yacc.c  */
6169 > #line 2600 "conf_parser.y"
6170      {
6171    ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
6172   }
6173      break;
6174  
6175 <  case 525:
6176 <
6177 < /* Line 1806 of yacc.c  */
6747 < #line 2873 "conf_parser.y"
6175 >  case 539:
6176 > /* Line 1787 of yacc.c  */
6177 > #line 2605 "conf_parser.y"
6178      {
6179    ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
6180   }
6181      break;
6182  
6183 <  case 526:
6184 <
6185 < /* Line 1806 of yacc.c  */
6756 < #line 2878 "conf_parser.y"
6183 >  case 540:
6184 > /* Line 1787 of yacc.c  */
6185 > #line 2610 "conf_parser.y"
6186      {
6187    ConfigFileEntry.use_egd = yylval.number;
6188   }
6189      break;
6190  
6191 <  case 527:
6192 <
6193 < /* Line 1806 of yacc.c  */
6765 < #line 2883 "conf_parser.y"
6191 >  case 541:
6192 > /* Line 1787 of yacc.c  */
6193 > #line 2615 "conf_parser.y"
6194      {
6195    if (conf_parser_ctx.pass == 2)
6196    {
6197      MyFree(ConfigFileEntry.egdpool_path);
6198 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
6198 >    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6199    }
6200   }
6201      break;
6202  
6203 <  case 528:
6204 <
6205 < /* Line 1806 of yacc.c  */
6778 < #line 2892 "conf_parser.y"
6203 >  case 542:
6204 > /* Line 1787 of yacc.c  */
6205 > #line 2624 "conf_parser.y"
6206      {
6207    if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6208    {
6209      MyFree(ConfigFileEntry.service_name);
6210 <    DupString(ConfigFileEntry.service_name, yylval.string);
6210 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
6211    }
6212   }
6213      break;
6214  
6215 <  case 529:
6216 <
6217 < /* Line 1806 of yacc.c  */
6791 < #line 2901 "conf_parser.y"
6215 >  case 543:
6216 > /* Line 1787 of yacc.c  */
6217 > #line 2633 "conf_parser.y"
6218      {
6219    ConfigFileEntry.ping_cookie = yylval.number;
6220   }
6221      break;
6222  
6223 <  case 530:
6224 <
6225 < /* Line 1806 of yacc.c  */
6800 < #line 2906 "conf_parser.y"
6223 >  case 544:
6224 > /* Line 1787 of yacc.c  */
6225 > #line 2638 "conf_parser.y"
6226      {
6227    ConfigFileEntry.disable_auth = yylval.number;
6228   }
6229      break;
6230  
6231 <  case 531:
6232 <
6233 < /* Line 1806 of yacc.c  */
6809 < #line 2911 "conf_parser.y"
6231 >  case 545:
6232 > /* Line 1787 of yacc.c  */
6233 > #line 2643 "conf_parser.y"
6234      {
6235    ConfigFileEntry.throttle_time = yylval.number;
6236   }
6237      break;
6238  
6239 <  case 532:
6240 <
6241 < /* Line 1806 of yacc.c  */
6818 < #line 2916 "conf_parser.y"
6239 >  case 546:
6240 > /* Line 1787 of yacc.c  */
6241 > #line 2648 "conf_parser.y"
6242      {
6243    ConfigFileEntry.oper_umodes = 0;
6244   }
6245      break;
6246  
6247 <  case 536:
6248 <
6249 < /* Line 1806 of yacc.c  */
6827 < #line 2922 "conf_parser.y"
6247 >  case 550:
6248 > /* Line 1787 of yacc.c  */
6249 > #line 2654 "conf_parser.y"
6250      {
6251    ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6252   }
6253      break;
6254  
6255 <  case 537:
6256 <
6257 < /* Line 1806 of yacc.c  */
6836 < #line 2925 "conf_parser.y"
6255 >  case 551:
6256 > /* Line 1787 of yacc.c  */
6257 > #line 2657 "conf_parser.y"
6258      {
6259    ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6260   }
6261      break;
6262  
6263 <  case 538:
6264 <
6265 < /* Line 1806 of yacc.c  */
6845 < #line 2928 "conf_parser.y"
6846 <    {
6847 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6848 < }
6849 <    break;
6850 <
6851 <  case 539:
6852 <
6853 < /* Line 1806 of yacc.c  */
6854 < #line 2931 "conf_parser.y"
6263 >  case 552:
6264 > /* Line 1787 of yacc.c  */
6265 > #line 2660 "conf_parser.y"
6266      {
6267    ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6268   }
6269      break;
6270  
6271 <  case 540:
6272 <
6273 < /* Line 1806 of yacc.c  */
6863 < #line 2934 "conf_parser.y"
6271 >  case 553:
6272 > /* Line 1787 of yacc.c  */
6273 > #line 2663 "conf_parser.y"
6274      {
6275    ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6276   }
6277      break;
6278  
6279 <  case 541:
6280 <
6281 < /* Line 1806 of yacc.c  */
6872 < #line 2937 "conf_parser.y"
6279 >  case 554:
6280 > /* Line 1787 of yacc.c  */
6281 > #line 2666 "conf_parser.y"
6282      {
6283    ConfigFileEntry.oper_umodes |= UMODE_FULL;
6284   }
6285      break;
6286  
6287 <  case 542:
6288 <
6289 < /* Line 1806 of yacc.c  */
6881 < #line 2940 "conf_parser.y"
6287 >  case 555:
6288 > /* Line 1787 of yacc.c  */
6289 > #line 2669 "conf_parser.y"
6290      {
6291    ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6292   }
6293      break;
6294  
6295 <  case 543:
6296 <
6297 < /* Line 1806 of yacc.c  */
6890 < #line 2943 "conf_parser.y"
6295 >  case 556:
6296 > /* Line 1787 of yacc.c  */
6297 > #line 2672 "conf_parser.y"
6298      {
6299    ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6300   }
6301      break;
6302  
6303 <  case 544:
6304 <
6305 < /* Line 1806 of yacc.c  */
6899 < #line 2946 "conf_parser.y"
6303 >  case 557:
6304 > /* Line 1787 of yacc.c  */
6305 > #line 2675 "conf_parser.y"
6306      {
6307    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6308   }
6309      break;
6310  
6311 <  case 545:
6312 <
6313 < /* Line 1806 of yacc.c  */
6908 < #line 2949 "conf_parser.y"
6311 >  case 558:
6312 > /* Line 1787 of yacc.c  */
6313 > #line 2678 "conf_parser.y"
6314      {
6315    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6316   }
6317      break;
6318  
6319 <  case 546:
6320 <
6321 < /* Line 1806 of yacc.c  */
6917 < #line 2952 "conf_parser.y"
6319 >  case 559:
6320 > /* Line 1787 of yacc.c  */
6321 > #line 2681 "conf_parser.y"
6322      {
6323    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6324   }
6325      break;
6326  
6327 <  case 547:
6328 <
6329 < /* Line 1806 of yacc.c  */
6926 < #line 2955 "conf_parser.y"
6327 >  case 560:
6328 > /* Line 1787 of yacc.c  */
6329 > #line 2684 "conf_parser.y"
6330      {
6331    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6332   }
6333      break;
6334  
6335 <  case 548:
6336 <
6337 < /* Line 1806 of yacc.c  */
6935 < #line 2958 "conf_parser.y"
6335 >  case 561:
6336 > /* Line 1787 of yacc.c  */
6337 > #line 2687 "conf_parser.y"
6338      {
6339    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6340   }
6341      break;
6342  
6343 <  case 549:
6344 <
6345 < /* Line 1806 of yacc.c  */
6944 < #line 2961 "conf_parser.y"
6343 >  case 562:
6344 > /* Line 1787 of yacc.c  */
6345 > #line 2690 "conf_parser.y"
6346      {
6347    ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6348   }
6349      break;
6350  
6351 <  case 550:
6352 <
6353 < /* Line 1806 of yacc.c  */
6953 < #line 2964 "conf_parser.y"
6351 >  case 563:
6352 > /* Line 1787 of yacc.c  */
6353 > #line 2693 "conf_parser.y"
6354      {
6355    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6356   }
6357      break;
6358  
6359 <  case 551:
6360 <
6361 < /* Line 1806 of yacc.c  */
6962 < #line 2967 "conf_parser.y"
6359 >  case 564:
6360 > /* Line 1787 of yacc.c  */
6361 > #line 2696 "conf_parser.y"
6362      {
6363    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6364   }
6365      break;
6366  
6367 <  case 552:
6368 <
6369 < /* Line 1806 of yacc.c  */
6971 < #line 2970 "conf_parser.y"
6367 >  case 565:
6368 > /* Line 1787 of yacc.c  */
6369 > #line 2699 "conf_parser.y"
6370      {
6371    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6372   }
6373      break;
6374  
6375 <  case 553:
6376 <
6377 < /* Line 1806 of yacc.c  */
6980 < #line 2973 "conf_parser.y"
6375 >  case 566:
6376 > /* Line 1787 of yacc.c  */
6377 > #line 2702 "conf_parser.y"
6378      {
6379    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6380   }
6381      break;
6382  
6383 <  case 554:
6384 <
6385 < /* Line 1806 of yacc.c  */
6989 < #line 2976 "conf_parser.y"
6383 >  case 567:
6384 > /* Line 1787 of yacc.c  */
6385 > #line 2705 "conf_parser.y"
6386      {
6387    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6388   }
6389      break;
6390  
6391 <  case 555:
6392 <
6393 < /* Line 1806 of yacc.c  */
6998 < #line 2979 "conf_parser.y"
6391 >  case 568:
6392 > /* Line 1787 of yacc.c  */
6393 > #line 2708 "conf_parser.y"
6394      {
6395    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6396   }
6397      break;
6398  
6399 <  case 556:
6400 <
6401 < /* Line 1806 of yacc.c  */
7007 < #line 2984 "conf_parser.y"
6399 >  case 569:
6400 > /* Line 1787 of yacc.c  */
6401 > #line 2711 "conf_parser.y"
6402      {
6403 <  ConfigFileEntry.oper_only_umodes = 0;
6403 >  ConfigFileEntry.oper_umodes |= UMODE_REGONLY;
6404   }
6405      break;
6406  
6407 <  case 560:
6408 <
6409 < /* Line 1806 of yacc.c  */
7016 < #line 2990 "conf_parser.y"
6407 >  case 570:
6408 > /* Line 1787 of yacc.c  */
6409 > #line 2714 "conf_parser.y"
6410      {
6411 <  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6411 >  ConfigFileEntry.oper_umodes |= UMODE_FARCONNECT;
6412   }
6413      break;
6414  
6415 <  case 561:
6416 <
6417 < /* Line 1806 of yacc.c  */
7025 < #line 2993 "conf_parser.y"
6415 >  case 571:
6416 > /* Line 1787 of yacc.c  */
6417 > #line 2719 "conf_parser.y"
6418      {
6419 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6419 >  ConfigFileEntry.oper_only_umodes = 0;
6420   }
6421      break;
6422  
6423 <  case 562:
6424 <
6425 < /* Line 1806 of yacc.c  */
7034 < #line 2996 "conf_parser.y"
6423 >  case 575:
6424 > /* Line 1787 of yacc.c  */
6425 > #line 2725 "conf_parser.y"
6426      {
6427 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6427 >  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6428   }
6429      break;
6430  
6431 <  case 563:
6431 >  case 576:
6432 > /* Line 1787 of yacc.c  */
6433 > #line 2728 "conf_parser.y"
6434 >    {
6435 >  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6436 > }
6437 >    break;
6438  
6439 < /* Line 1806 of yacc.c  */
6440 < #line 2999 "conf_parser.y"
6439 >  case 577:
6440 > /* Line 1787 of yacc.c  */
6441 > #line 2731 "conf_parser.y"
6442      {
6443    ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6444   }
6445      break;
6446  
6447 <  case 564:
6448 <
6449 < /* Line 1806 of yacc.c  */
7052 < #line 3002 "conf_parser.y"
6447 >  case 578:
6448 > /* Line 1787 of yacc.c  */
6449 > #line 2734 "conf_parser.y"
6450      {
6451    ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6452   }
6453      break;
6454  
6455 <  case 565:
6456 <
6457 < /* Line 1806 of yacc.c  */
7061 < #line 3005 "conf_parser.y"
6455 >  case 579:
6456 > /* Line 1787 of yacc.c  */
6457 > #line 2737 "conf_parser.y"
6458      {
6459    ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6460   }
6461      break;
6462  
6463 <  case 566:
6464 <
6465 < /* Line 1806 of yacc.c  */
7070 < #line 3008 "conf_parser.y"
6463 >  case 580:
6464 > /* Line 1787 of yacc.c  */
6465 > #line 2740 "conf_parser.y"
6466      {
6467    ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6468   }
6469      break;
6470  
6471 <  case 567:
6472 <
6473 < /* Line 1806 of yacc.c  */
7079 < #line 3011 "conf_parser.y"
6471 >  case 581:
6472 > /* Line 1787 of yacc.c  */
6473 > #line 2743 "conf_parser.y"
6474      {
6475    ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6476   }
6477      break;
6478  
6479 <  case 568:
6480 <
6481 < /* Line 1806 of yacc.c  */
7088 < #line 3014 "conf_parser.y"
6479 >  case 582:
6480 > /* Line 1787 of yacc.c  */
6481 > #line 2746 "conf_parser.y"
6482      {
6483    ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6484   }
6485      break;
6486  
6487 <  case 569:
6488 <
6489 < /* Line 1806 of yacc.c  */
7097 < #line 3017 "conf_parser.y"
6487 >  case 583:
6488 > /* Line 1787 of yacc.c  */
6489 > #line 2749 "conf_parser.y"
6490      {
6491    ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6492   }
6493      break;
6494  
6495 <  case 570:
6496 <
6497 < /* Line 1806 of yacc.c  */
7106 < #line 3020 "conf_parser.y"
6495 >  case 584:
6496 > /* Line 1787 of yacc.c  */
6497 > #line 2752 "conf_parser.y"
6498      {
6499    ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6500   }
6501      break;
6502  
6503 <  case 571:
6504 <
6505 < /* Line 1806 of yacc.c  */
7115 < #line 3023 "conf_parser.y"
6503 >  case 585:
6504 > /* Line 1787 of yacc.c  */
6505 > #line 2755 "conf_parser.y"
6506      {
6507    ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6508   }
6509      break;
6510  
6511 <  case 572:
6512 <
6513 < /* Line 1806 of yacc.c  */
7124 < #line 3026 "conf_parser.y"
6511 >  case 586:
6512 > /* Line 1787 of yacc.c  */
6513 > #line 2758 "conf_parser.y"
6514      {
6515    ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6516   }
6517      break;
6518  
6519 <  case 573:
6520 <
6521 < /* Line 1806 of yacc.c  */
7133 < #line 3029 "conf_parser.y"
6519 >  case 587:
6520 > /* Line 1787 of yacc.c  */
6521 > #line 2761 "conf_parser.y"
6522      {
6523    ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6524   }
6525      break;
6526  
6527 <  case 574:
6528 <
6529 < /* Line 1806 of yacc.c  */
7142 < #line 3032 "conf_parser.y"
6527 >  case 588:
6528 > /* Line 1787 of yacc.c  */
6529 > #line 2764 "conf_parser.y"
6530      {
6531    ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6532   }
6533      break;
6534  
6535 <  case 575:
6536 <
6537 < /* Line 1806 of yacc.c  */
7151 < #line 3035 "conf_parser.y"
6535 >  case 589:
6536 > /* Line 1787 of yacc.c  */
6537 > #line 2767 "conf_parser.y"
6538      {
6539    ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6540   }
6541      break;
6542  
6543 <  case 576:
6544 <
6545 < /* Line 1806 of yacc.c  */
7160 < #line 3038 "conf_parser.y"
6543 >  case 590:
6544 > /* Line 1787 of yacc.c  */
6545 > #line 2770 "conf_parser.y"
6546      {
6547    ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6548   }
6549      break;
6550  
6551 <  case 577:
6552 <
6553 < /* Line 1806 of yacc.c  */
7169 < #line 3041 "conf_parser.y"
6551 >  case 591:
6552 > /* Line 1787 of yacc.c  */
6553 > #line 2773 "conf_parser.y"
6554      {
6555    ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6556   }
6557      break;
6558  
6559 <  case 578:
6560 <
6561 < /* Line 1806 of yacc.c  */
7178 < #line 3044 "conf_parser.y"
6559 >  case 592:
6560 > /* Line 1787 of yacc.c  */
6561 > #line 2776 "conf_parser.y"
6562      {
6563    ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6564   }
6565      break;
6566  
6567 <  case 579:
6568 <
6569 < /* Line 1806 of yacc.c  */
7187 < #line 3047 "conf_parser.y"
6567 >  case 593:
6568 > /* Line 1787 of yacc.c  */
6569 > #line 2779 "conf_parser.y"
6570      {
6571    ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6572   }
6573      break;
6574  
6575 <  case 580:
6576 <
6577 < /* Line 1806 of yacc.c  */
7196 < #line 3052 "conf_parser.y"
6575 >  case 594:
6576 > /* Line 1787 of yacc.c  */
6577 > #line 2782 "conf_parser.y"
6578      {
6579 <  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
7199 < }
7200 <    break;
7201 <
7202 <  case 581:
7203 <
7204 < /* Line 1806 of yacc.c  */
7205 < #line 3057 "conf_parser.y"
7206 <    {
7207 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
7208 < }
7209 <    break;
7210 <
7211 <  case 582:
7212 <
7213 < /* Line 1806 of yacc.c  */
7214 < #line 3062 "conf_parser.y"
7215 <    {
7216 <  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
7217 < }
7218 <    break;
7219 <
7220 <  case 583:
7221 <
7222 < /* Line 1806 of yacc.c  */
7223 < #line 3067 "conf_parser.y"
7224 <    {
7225 <  ConfigFileEntry.client_flood = (yyvsp[(3) - (4)].number);
7226 < }
7227 <    break;
7228 <
7229 <  case 584:
7230 <
7231 < /* Line 1806 of yacc.c  */
7232 < #line 3076 "conf_parser.y"
7233 <    {
7234 <  if (conf_parser_ctx.pass == 2)
7235 <  {
7236 <    yy_conf = make_conf_item(GDENY_TYPE);
7237 <    yy_aconf = map_to_conf(yy_conf);
7238 <  }
7239 < }
7240 <    break;
7241 <
7242 <  case 585:
7243 <
7244 < /* Line 1806 of yacc.c  */
7245 < #line 3083 "conf_parser.y"
7246 <    {
7247 <  if (conf_parser_ctx.pass == 2)
7248 <  {
7249 <    /*
7250 <     * since we re-allocate yy_conf/yy_aconf after the end of action=, at the
7251 <     * end we will have one extra, so we should free it.
7252 <     */
7253 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
7254 <    {
7255 <      delete_conf_item(yy_conf);
7256 <      yy_conf = NULL;
7257 <      yy_aconf = NULL;
7258 <    }
7259 <  }
6579 >  ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6580   }
6581      break;
6582  
6583    case 595:
6584 <
6585 < /* Line 1806 of yacc.c  */
7266 < #line 3109 "conf_parser.y"
6584 > /* Line 1787 of yacc.c  */
6585 > #line 2785 "conf_parser.y"
6586      {
6587 <  if (conf_parser_ctx.pass == 2)
7269 <    ConfigFileEntry.glines = yylval.number;
6587 >  ConfigFileEntry.oper_only_umodes |= UMODE_FARCONNECT;
6588   }
6589      break;
6590  
6591    case 596:
6592 <
6593 < /* Line 1806 of yacc.c  */
7276 < #line 3115 "conf_parser.y"
6592 > /* Line 1787 of yacc.c  */
6593 > #line 2790 "conf_parser.y"
6594      {
6595 <  if (conf_parser_ctx.pass == 2)
7279 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
6595 >  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6596   }
6597      break;
6598  
6599    case 597:
6600 <
6601 < /* Line 1806 of yacc.c  */
7286 < #line 3121 "conf_parser.y"
7287 <    {
7288 <  if (conf_parser_ctx.pass == 2)
7289 <    ConfigFileEntry.gline_logging = 0;
7290 < }
7291 <    break;
7292 <
7293 <  case 601:
7294 <
7295 < /* Line 1806 of yacc.c  */
7296 < #line 3127 "conf_parser.y"
6600 > /* Line 1787 of yacc.c  */
6601 > #line 2795 "conf_parser.y"
6602      {
6603 <  if (conf_parser_ctx.pass == 2)
7299 <    ConfigFileEntry.gline_logging |= GDENY_REJECT;
7300 < }
7301 <    break;
7302 <
7303 <  case 602:
7304 <
7305 < /* Line 1806 of yacc.c  */
7306 < #line 3131 "conf_parser.y"
7307 <    {
7308 <  if (conf_parser_ctx.pass == 2)
7309 <    ConfigFileEntry.gline_logging |= GDENY_BLOCK;
7310 < }
7311 <    break;
7312 <
7313 <  case 603:
7314 <
7315 < /* Line 1806 of yacc.c  */
7316 < #line 3137 "conf_parser.y"
7317 <    {
7318 <  if (conf_parser_ctx.pass == 2)
7319 <  {
7320 <    struct split_nuh_item nuh;
7321 <
7322 <    nuh.nuhmask  = yylval.string;
7323 <    nuh.nickptr  = NULL;
7324 <    nuh.userptr  = userbuf;
7325 <    nuh.hostptr  = hostbuf;
7326 <
7327 <    nuh.nicksize = 0;
7328 <    nuh.usersize = sizeof(userbuf);
7329 <    nuh.hostsize = sizeof(hostbuf);
7330 <
7331 <    split_nuh(&nuh);
7332 <
7333 <    if (yy_aconf->user == NULL)
7334 <    {
7335 <      DupString(yy_aconf->user, userbuf);
7336 <      DupString(yy_aconf->host, hostbuf);
7337 <    }
7338 <    else
7339 <    {
7340 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
7341 <
7342 <      DupString(yy_tmp->user, userbuf);
7343 <      DupString(yy_tmp->host, hostbuf);
7344 <
7345 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
7346 <    }
7347 <  }
7348 < }
7349 <    break;
7350 <
7351 <  case 604:
7352 <
7353 < /* Line 1806 of yacc.c  */
7354 < #line 3171 "conf_parser.y"
7355 <    {
7356 <  if (conf_parser_ctx.pass == 2)  
7357 <  {
7358 <    MyFree(yy_conf->name);
7359 <    DupString(yy_conf->name, yylval.string);
7360 <  }
7361 < }
7362 <    break;
7363 <
7364 <  case 605:
7365 <
7366 < /* Line 1806 of yacc.c  */
7367 < #line 3180 "conf_parser.y"
7368 <    {
7369 <  if (conf_parser_ctx.pass == 2)
7370 <    yy_aconf->flags = 0;
7371 < }
7372 <    break;
7373 <
7374 <  case 606:
7375 <
7376 < /* Line 1806 of yacc.c  */
7377 < #line 3184 "conf_parser.y"
7378 <    {
7379 <  if (conf_parser_ctx.pass == 2)
7380 <  {
7381 <    struct CollectItem *yy_tmp = NULL;
7382 <    dlink_node *ptr, *next_ptr;
7383 <
7384 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
7385 <    {
7386 <      struct AccessItem *new_aconf;
7387 <      struct ConfItem *new_conf;
7388 <
7389 <      yy_tmp = ptr->data;
7390 <      new_conf = make_conf_item(GDENY_TYPE);
7391 <      new_aconf = map_to_conf(new_conf);
7392 <
7393 <      new_aconf->flags = yy_aconf->flags;
7394 <
7395 <      if (yy_conf->name != NULL)
7396 <        DupString(new_conf->name, yy_conf->name);
7397 <      else
7398 <        DupString(new_conf->name, "*");
7399 <      if (yy_aconf->user != NULL)
7400 <         DupString(new_aconf->user, yy_tmp->user);
7401 <      else  
7402 <        DupString(new_aconf->user, "*");
7403 <      if (yy_aconf->host != NULL)
7404 <        DupString(new_aconf->host, yy_tmp->host);
7405 <      else
7406 <        DupString(new_aconf->host, "*");
7407 <
7408 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
7409 <    }
7410 <
7411 <    /*
7412 <     * In case someone has fed us with more than one action= after user/name
7413 <     * which would leak memory  -Michael
7414 <     */
7415 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
7416 <      delete_conf_item(yy_conf);
7417 <
7418 <    yy_conf = make_conf_item(GDENY_TYPE);
7419 <    yy_aconf = map_to_conf(yy_conf);
7420 <  }
7421 < }
7422 <    break;
7423 <
7424 <  case 609:
7425 <
7426 < /* Line 1806 of yacc.c  */
7427 < #line 3231 "conf_parser.y"
7428 <    {
7429 <  if (conf_parser_ctx.pass == 2)
7430 <    yy_aconf->flags |= GDENY_REJECT;
6603 >  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6604   }
6605      break;
6606  
6607 <  case 610:
6608 <
6609 < /* Line 1806 of yacc.c  */
7437 < #line 3235 "conf_parser.y"
6607 >  case 598:
6608 > /* Line 1787 of yacc.c  */
6609 > #line 2800 "conf_parser.y"
6610      {
6611 <  if (conf_parser_ctx.pass == 2)
7440 <    yy_aconf->flags |= GDENY_BLOCK;
6611 >  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6612   }
6613      break;
6614  
6615 <  case 633:
6616 <
6617 < /* Line 1806 of yacc.c  */
7447 < #line 3259 "conf_parser.y"
6615 >  case 615:
6616 > /* Line 1787 of yacc.c  */
6617 > #line 2823 "conf_parser.y"
6618      {
6619    ConfigChannel.disable_fake_channels = yylval.number;
6620   }
6621      break;
6622  
6623 <  case 634:
6624 <
6625 < /* Line 1806 of yacc.c  */
7456 < #line 3264 "conf_parser.y"
7457 <    {
7458 <  ConfigChannel.restrict_channels = yylval.number;
7459 < }
7460 <    break;
7461 <
7462 <  case 635:
7463 <
7464 < /* Line 1806 of yacc.c  */
7465 < #line 3269 "conf_parser.y"
7466 <    {
7467 <  ConfigChannel.disable_local_channels = yylval.number;
7468 < }
7469 <    break;
7470 <
7471 <  case 636:
7472 <
7473 < /* Line 1806 of yacc.c  */
7474 < #line 3274 "conf_parser.y"
7475 <    {
7476 <  ConfigChannel.use_except = yylval.number;
7477 < }
7478 <    break;
7479 <
7480 <  case 637:
7481 <
7482 < /* Line 1806 of yacc.c  */
7483 < #line 3279 "conf_parser.y"
7484 <    {
7485 <  ConfigChannel.use_invex = yylval.number;
7486 < }
7487 <    break;
7488 <
7489 <  case 638:
7490 <
7491 < /* Line 1806 of yacc.c  */
7492 < #line 3284 "conf_parser.y"
7493 <    {
7494 <  ConfigChannel.use_knock = yylval.number;
7495 < }
7496 <    break;
7497 <
7498 <  case 639:
7499 <
7500 < /* Line 1806 of yacc.c  */
7501 < #line 3289 "conf_parser.y"
6623 >  case 616:
6624 > /* Line 1787 of yacc.c  */
6625 > #line 2828 "conf_parser.y"
6626      {
6627    ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6628   }
6629      break;
6630  
6631 <  case 640:
6632 <
6633 < /* Line 1806 of yacc.c  */
7510 < #line 3294 "conf_parser.y"
6631 >  case 617:
6632 > /* Line 1787 of yacc.c  */
6633 > #line 2833 "conf_parser.y"
6634      {
6635    ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6636   }
6637      break;
6638  
6639 <  case 641:
6640 <
6641 < /* Line 1806 of yacc.c  */
7519 < #line 3299 "conf_parser.y"
6639 >  case 618:
6640 > /* Line 1787 of yacc.c  */
6641 > #line 2838 "conf_parser.y"
6642      {
6643    ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6644   }
6645      break;
6646  
6647 <  case 642:
6648 <
6649 < /* Line 1806 of yacc.c  */
7528 < #line 3304 "conf_parser.y"
6647 >  case 619:
6648 > /* Line 1787 of yacc.c  */
6649 > #line 2843 "conf_parser.y"
6650      {
6651 <  ConfigChannel.quiet_on_ban = yylval.number;
6651 >  ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6652   }
6653      break;
6654  
6655 <  case 643:
6656 <
6657 < /* Line 1806 of yacc.c  */
7537 < #line 3309 "conf_parser.y"
6655 >  case 620:
6656 > /* Line 1787 of yacc.c  */
6657 > #line 2848 "conf_parser.y"
6658      {
6659    ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6660   }
6661      break;
6662  
6663 <  case 644:
6664 <
6665 < /* Line 1806 of yacc.c  */
7546 < #line 3314 "conf_parser.y"
6663 >  case 621:
6664 > /* Line 1787 of yacc.c  */
6665 > #line 2853 "conf_parser.y"
6666      {
6667    ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6668   }
6669      break;
6670  
6671 <  case 645:
6672 <
6673 < /* Line 1806 of yacc.c  */
7555 < #line 3319 "conf_parser.y"
6671 >  case 622:
6672 > /* Line 1787 of yacc.c  */
6673 > #line 2858 "conf_parser.y"
6674      {
6675    ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6676   }
6677      break;
6678  
6679 <  case 646:
6680 <
6681 < /* Line 1806 of yacc.c  */
7564 < #line 3324 "conf_parser.y"
6679 >  case 623:
6680 > /* Line 1787 of yacc.c  */
6681 > #line 2863 "conf_parser.y"
6682      {
6683    ConfigChannel.no_create_on_split = yylval.number;
6684   }
6685      break;
6686  
6687 <  case 647:
6688 <
6689 < /* Line 1806 of yacc.c  */
7573 < #line 3329 "conf_parser.y"
6687 >  case 624:
6688 > /* Line 1787 of yacc.c  */
6689 > #line 2868 "conf_parser.y"
6690      {
6691    ConfigChannel.no_join_on_split = yylval.number;
6692   }
6693      break;
6694  
6695 <  case 648:
6696 <
6697 < /* Line 1806 of yacc.c  */
7582 < #line 3334 "conf_parser.y"
7583 <    {
7584 <  ConfigChannel.burst_topicwho = yylval.number;
7585 < }
7586 <    break;
7587 <
7588 <  case 649:
7589 <
7590 < /* Line 1806 of yacc.c  */
7591 < #line 3339 "conf_parser.y"
6695 >  case 625:
6696 > /* Line 1787 of yacc.c  */
6697 > #line 2873 "conf_parser.y"
6698      {
6699    GlobalSetOptions.joinfloodcount = yylval.number;
6700   }
6701      break;
6702  
6703 <  case 650:
6704 <
6705 < /* Line 1806 of yacc.c  */
7600 < #line 3344 "conf_parser.y"
6703 >  case 626:
6704 > /* Line 1787 of yacc.c  */
6705 > #line 2878 "conf_parser.y"
6706      {
6707    GlobalSetOptions.joinfloodtime = yylval.number;
6708   }
6709      break;
6710  
6711 <  case 662:
6712 <
6713 < /* Line 1806 of yacc.c  */
7609 < #line 3363 "conf_parser.y"
6711 >  case 638:
6712 > /* Line 1787 of yacc.c  */
6713 > #line 2897 "conf_parser.y"
6714      {
6715    if (conf_parser_ctx.pass == 2)
6716      ConfigServerHide.flatten_links = yylval.number;
6717   }
6718      break;
6719  
6720 <  case 663:
6721 <
6722 < /* Line 1806 of yacc.c  */
7619 < #line 3369 "conf_parser.y"
6720 >  case 639:
6721 > /* Line 1787 of yacc.c  */
6722 > #line 2903 "conf_parser.y"
6723      {
6724    if (conf_parser_ctx.pass == 2)
6725      ConfigServerHide.hide_servers = yylval.number;
6726   }
6727      break;
6728  
6729 <  case 664:
6729 >  case 640:
6730 > /* Line 1787 of yacc.c  */
6731 > #line 2909 "conf_parser.y"
6732 >    {
6733 >  if (conf_parser_ctx.pass == 2)
6734 >    ConfigServerHide.hide_services = yylval.number;
6735 > }
6736 >    break;
6737  
6738 < /* Line 1806 of yacc.c  */
6739 < #line 3375 "conf_parser.y"
6738 >  case 641:
6739 > /* Line 1787 of yacc.c  */
6740 > #line 2915 "conf_parser.y"
6741      {
6742    if (conf_parser_ctx.pass == 2)
6743    {
6744      MyFree(ConfigServerHide.hidden_name);
6745 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6745 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6746    }
6747   }
6748      break;
6749  
6750 <  case 665:
6751 <
6752 < /* Line 1806 of yacc.c  */
7642 < #line 3384 "conf_parser.y"
6750 >  case 642:
6751 > /* Line 1787 of yacc.c  */
6752 > #line 2924 "conf_parser.y"
6753      {
6754    if (conf_parser_ctx.pass == 2)
6755    {
# Line 7654 | Line 6764 | yyreduce:
6764   }
6765      break;
6766  
6767 <  case 666:
6768 <
6769 < /* Line 1806 of yacc.c  */
7660 < #line 3398 "conf_parser.y"
6767 >  case 643:
6768 > /* Line 1787 of yacc.c  */
6769 > #line 2938 "conf_parser.y"
6770      {
6771    if (conf_parser_ctx.pass == 2)
6772      ConfigServerHide.hidden = yylval.number;
6773   }
6774      break;
6775  
6776 <  case 667:
6777 <
6778 < /* Line 1806 of yacc.c  */
7670 < #line 3404 "conf_parser.y"
7671 <    {
7672 <  if (conf_parser_ctx.pass == 2)
7673 <    ConfigServerHide.disable_hidden = yylval.number;
7674 < }
7675 <    break;
7676 <
7677 <  case 668:
7678 <
7679 < /* Line 1806 of yacc.c  */
7680 < #line 3410 "conf_parser.y"
6776 >  case 644:
6777 > /* Line 1787 of yacc.c  */
6778 > #line 2944 "conf_parser.y"
6779      {
6780    if (conf_parser_ctx.pass == 2)
6781      ConfigServerHide.hide_server_ips = yylval.number;
# Line 7685 | Line 6783 | yyreduce:
6783      break;
6784  
6785  
6786 <
6787 < /* Line 1806 of yacc.c  */
7690 < #line 7691 "conf_parser.c"
6786 > /* Line 1787 of yacc.c  */
6787 > #line 6788 "conf_parser.c"
6788        default: break;
6789      }
6790    /* User semantic actions sometimes alter yychar, and that requires
# Line 7850 | Line 6947 | yyerrlab1:
6947        YY_STACK_PRINT (yyss, yyssp);
6948      }
6949  
6950 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6951    *++yyvsp = yylval;
6952 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6953  
6954  
6955    /* Shift the error token.  */
# Line 7874 | Line 6973 | yyabortlab:
6973    yyresult = 1;
6974    goto yyreturn;
6975  
6976 < #if !defined(yyoverflow) || YYERROR_VERBOSE
6976 > #if !defined yyoverflow || YYERROR_VERBOSE
6977   /*-------------------------------------------------.
6978   | yyexhaustedlab -- memory exhaustion comes here.  |
6979   `-------------------------------------------------*/
# Line 7916 | Line 7015 | yyreturn:
7015   }
7016  
7017  
7919

Comparing:
ircd-hybrid-8/src/conf_parser.c (property svn:keywords), Revision 1377 by michael, Mon Apr 30 19:35:16 2012 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (property svn:keywords), Revision 2185 by michael, Tue Jun 4 12:29:18 2013 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

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