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

Comparing:
ircd-hybrid-8/src/conf_parser.c (file contents), Revision 1401 by michael, Tue May 8 18:58:13 2012 UTC vs.
ircd-hybrid/branches/8.2.x/src/conf_parser.c (file contents), Revision 4071 by michael, Thu Jun 26 15:42:08 2014 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 2.5.  */
1 > /* A Bison parser, made by GNU Bison 3.0.2.  */
2  
3   /* Bison implementation for Yacc-like parsers in C
4 <  
5 <      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
6 <  
4 >
5 >   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
6 >
7     This program is free software: you can redistribute it and/or modify
8     it under the terms of the GNU General Public License as published by
9     the Free Software Foundation, either version 3 of the License, or
10     (at your option) any later version.
11 <  
11 >
12     This program is distributed in the hope that it will be useful,
13     but WITHOUT ANY WARRANTY; without even the implied warranty of
14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15     GNU General Public License for more details.
16 <  
16 >
17     You should have received a copy of the GNU General Public License
18     along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19  
# Line 26 | Line 26
26     special exception, which will cause the skeleton and the resulting
27     Bison output files to be licensed under the GNU General Public
28     License without this special exception.
29 <  
29 >
30     This special exception was added by the Free Software Foundation in
31     version 2.2 of Bison.  */
32  
# Line 44 | Line 44
44   #define YYBISON 1
45  
46   /* Bison version.  */
47 < #define YYBISON_VERSION "2.5"
47 > #define YYBISON_VERSION "3.0.2"
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  */
69 < #line 25 "conf_parser.y"
65 > #line 28 "conf_parser.y" /* yacc.c:339  */
66  
67  
68   #define YY_NO_UNPUT
# Line 78 | Line 74
74   #include "ircd.h"
75   #include "list.h"
76   #include "conf.h"
77 + #include "conf_class.h"
78   #include "event.h"
79   #include "log.h"
80   #include "client.h"     /* for UMODE_ALL only */
81   #include "irc_string.h"
85 #include "sprintf_irc.h"
82   #include "memory.h"
83   #include "modules.h"
84 < #include "s_serv.h"
84 > #include "server.h"
85   #include "hostmask.h"
86   #include "send.h"
87   #include "listener.h"
88   #include "resv.h"
89   #include "numeric.h"
90 < #include "s_user.h"
90 > #include "user.h"
91 > #include "motd.h"
92  
93   #ifdef HAVE_LIBCRYPTO
94   #include <openssl/rsa.h>
# Line 100 | Line 97
97   #include <openssl/dh.h>
98   #endif
99  
100 < int yylex(void);
100 > #include "rsa.h"
101  
102 < static char *class_name = NULL;
106 < static struct ConfItem *yy_conf = NULL;
107 < static struct AccessItem *yy_aconf = NULL;
108 < static struct MatchItem *yy_match_item = NULL;
109 < static struct ClassItem *yy_class = NULL;
110 < static char *yy_class_name = NULL;
111 <
112 < static dlink_list col_conf_list  = { NULL, NULL, 0 };
113 < static unsigned int listener_flags = 0;
114 < static unsigned int regex_ban = 0;
115 < static char userbuf[IRCD_BUFSIZE];
116 < static char hostbuf[IRCD_BUFSIZE];
117 < static char reasonbuf[REASONLEN + 1];
118 < static char gecos_name[REALLEN * 4];
119 < static char lfile[IRCD_BUFSIZE];
120 < static unsigned int ltype = 0;
121 < static unsigned int lsize = 0;
122 < static char *resv_reason = NULL;
123 < static char *listener_address = NULL;
102 > int yylex(void);
103  
104 < struct CollectItem
104 > static struct
105   {
106 <  dlink_node node;
107 <  char *name;
108 <  char *user;
109 <  char *host;
110 <  char *passwd;
111 <  int  port;
112 <  int  flags;
113 < #ifdef HAVE_LIBCRYPTO
114 <  char *rsa_public_key_file;
115 <  RSA *rsa_public_key;
116 < #endif
117 < };
106 >  struct
107 >  {
108 >    dlink_list list;
109 >  } mask,
110 >    leaf,
111 >    hub;
112 >
113 >  struct
114 >  {
115 >    char buf[IRCD_BUFSIZE];
116 >  } name,
117 >    user,
118 >    host,
119 >    addr,
120 >    bind,
121 >    file,
122 >    ciph,
123 >    cert,
124 >    rpass,
125 >    spass,
126 >    class;
127 >
128 >  struct
129 >  {
130 >    unsigned int value;
131 >  } flags,
132 >    modes,
133 >    size,
134 >    type,
135 >    port,
136 >    aftype,
137 >    ping_freq,
138 >    max_perip,
139 >    con_freq,
140 >    min_idle,
141 >    max_idle,
142 >    max_total,
143 >    max_global,
144 >    max_local,
145 >    max_ident,
146 >    max_sendq,
147 >    max_recvq,
148 >    max_channels,
149 >    cidr_bitlen_ipv4,
150 >    cidr_bitlen_ipv6,
151 >    number_per_cidr;
152 > } block_state;
153  
154   static void
155 < free_collect_item(struct CollectItem *item)
155 > reset_block_state(void)
156   {
157 <  MyFree(item->name);
158 <  MyFree(item->user);
159 <  MyFree(item->host);
160 <  MyFree(item->passwd);
161 < #ifdef HAVE_LIBCRYPTO
162 <  MyFree(item->rsa_public_key_file);
163 < #endif
164 <  MyFree(item);
165 < }
157 >  dlink_node *ptr = NULL, *ptr_next = NULL;
158 >
159 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
160 >  {
161 >    MyFree(ptr->data);
162 >    dlinkDelete(ptr, &block_state.mask.list);
163 >    free_dlink_node(ptr);
164 >  }
165 >
166 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
167 >  {
168 >    MyFree(ptr->data);
169 >    dlinkDelete(ptr, &block_state.leaf.list);
170 >    free_dlink_node(ptr);
171 >  }
172  
173 +  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
174 +  {
175 +    MyFree(ptr->data);
176 +    dlinkDelete(ptr, &block_state.hub.list);
177 +    free_dlink_node(ptr);
178 +  }
179  
180 +  memset(&block_state, 0, sizeof(block_state));
181 + }
182  
155 /* Line 268 of yacc.c  */
156 #line 157 "conf_parser.c"
183  
184 < /* Enabling traces.  */
185 < #ifndef YYDEBUG
186 < # define YYDEBUG 0
187 < #endif
184 > #line 185 "conf_parser.c" /* yacc.c:339  */
185 >
186 > # ifndef YY_NULLPTR
187 > #  if defined __cplusplus && 201103L <= __cplusplus
188 > #   define YY_NULLPTR nullptr
189 > #  else
190 > #   define YY_NULLPTR 0
191 > #  endif
192 > # endif
193  
194   /* Enabling verbose error messages.  */
195   #ifdef YYERROR_VERBOSE
# Line 168 | Line 199 | free_collect_item(struct CollectItem *it
199   # define YYERROR_VERBOSE 0
200   #endif
201  
202 < /* Enabling the token table.  */
203 < #ifndef YYTOKEN_TABLE
204 < # define YYTOKEN_TABLE 0
202 > /* In a future release of Bison, this section will be replaced
203 >   by #include "y.tab.h".  */
204 > #ifndef YY_YY_CONF_PARSER_H_INCLUDED
205 > # define YY_YY_CONF_PARSER_H_INCLUDED
206 > /* Debug traces.  */
207 > #ifndef YYDEBUG
208 > # define YYDEBUG 0
209 > #endif
210 > #if YYDEBUG
211 > extern int yydebug;
212   #endif
213  
214 <
177 < /* Tokens.  */
214 > /* Token type.  */
215   #ifndef YYTOKENTYPE
216   # define YYTOKENTYPE
217 <   /* Put the tokens into the symbol table, so that GDB and other debuggers
218 <      know about them.  */
219 <   enum yytokentype {
220 <     ACCEPT_PASSWORD = 258,
221 <     ACTION = 259,
222 <     ADMIN = 260,
223 <     AFTYPE = 261,
224 <     T_ALLOW = 262,
225 <     ANTI_NICK_FLOOD = 263,
226 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 264,
227 <     AUTOCONN = 265,
228 <     T_BLOCK = 266,
229 <     BURST_AWAY = 267,
230 <     BYTES = 268,
231 <     KBYTES = 269,
232 <     MBYTES = 270,
233 <     GBYTES = 271,
234 <     TBYTES = 272,
235 <     CALLER_ID_WAIT = 273,
236 <     CAN_FLOOD = 274,
237 <     CHANNEL = 275,
238 <     CIDR_BITLEN_IPV4 = 276,
239 <     CIDR_BITLEN_IPV6 = 277,
240 <     CLASS = 278,
241 <     CONNECT = 279,
242 <     CONNECTFREQ = 280,
243 <     DEFAULT_FLOODCOUNT = 281,
244 <     DEFAULT_SPLIT_SERVER_COUNT = 282,
245 <     DEFAULT_SPLIT_USER_COUNT = 283,
246 <     DENY = 284,
247 <     DESCRIPTION = 285,
248 <     DIE = 286,
249 <     DISABLE_AUTH = 287,
250 <     DISABLE_FAKE_CHANNELS = 288,
251 <     DISABLE_HIDDEN = 289,
252 <     DISABLE_LOCAL_CHANNELS = 290,
253 <     DISABLE_REMOTE_COMMANDS = 291,
254 <     DOTS_IN_IDENT = 292,
255 <     DURATION = 293,
256 <     EGDPOOL_PATH = 294,
257 <     EMAIL = 295,
258 <     ENABLE = 296,
259 <     ENCRYPTED = 297,
260 <     EXCEED_LIMIT = 298,
261 <     EXEMPT = 299,
262 <     FAILED_OPER_NOTICE = 300,
263 <     IRCD_FLAGS = 301,
264 <     FLATTEN_LINKS = 302,
265 <     GECOS = 303,
266 <     GENERAL = 304,
267 <     GLINE = 305,
268 <     GLINES = 306,
269 <     GLINE_EXEMPT = 307,
270 <     GLINE_TIME = 308,
271 <     GLINE_MIN_CIDR = 309,
272 <     GLINE_MIN_CIDR6 = 310,
273 <     GLOBAL_KILL = 311,
274 <     IRCD_AUTH = 312,
275 <     NEED_IDENT = 313,
276 <     HAVENT_READ_CONF = 314,
277 <     HIDDEN = 315,
278 <     HIDDEN_NAME = 316,
279 <     HIDE_SERVER_IPS = 317,
280 <     HIDE_SERVERS = 318,
281 <     HIDE_SPOOF_IPS = 319,
282 <     HOST = 320,
283 <     HUB = 321,
284 <     HUB_MASK = 322,
285 <     IGNORE_BOGUS_TS = 323,
286 <     INVISIBLE_ON_CONNECT = 324,
287 <     IP = 325,
288 <     KILL = 326,
289 <     KILL_CHASE_TIME_LIMIT = 327,
290 <     KLINE = 328,
291 <     KLINE_EXEMPT = 329,
292 <     KLINE_REASON = 330,
293 <     KLINE_WITH_REASON = 331,
294 <     KNOCK_DELAY = 332,
295 <     KNOCK_DELAY_CHANNEL = 333,
296 <     LEAF_MASK = 334,
297 <     LINKS_DELAY = 335,
298 <     LISTEN = 336,
299 <     T_LOG = 337,
300 <     MAX_ACCEPT = 338,
301 <     MAX_BANS = 339,
302 <     MAX_CHANS_PER_USER = 340,
303 <     MAX_GLOBAL = 341,
304 <     MAX_IDENT = 342,
305 <     MAX_LOCAL = 343,
306 <     MAX_NICK_CHANGES = 344,
307 <     MAX_NICK_TIME = 345,
308 <     MAX_NUMBER = 346,
309 <     MAX_TARGETS = 347,
310 <     MAX_WATCH = 348,
311 <     MESSAGE_LOCALE = 349,
312 <     MIN_NONWILDCARD = 350,
313 <     MIN_NONWILDCARD_SIMPLE = 351,
314 <     MODULE = 352,
315 <     MODULES = 353,
316 <     NAME = 354,
317 <     NEED_PASSWORD = 355,
318 <     NETWORK_DESC = 356,
319 <     NETWORK_NAME = 357,
320 <     NICK = 358,
321 <     NICK_CHANGES = 359,
322 <     NO_CREATE_ON_SPLIT = 360,
323 <     NO_JOIN_ON_SPLIT = 361,
324 <     NO_OPER_FLOOD = 362,
325 <     NO_TILDE = 363,
326 <     NUMBER = 364,
327 <     NUMBER_PER_IDENT = 365,
328 <     NUMBER_PER_CIDR = 366,
329 <     NUMBER_PER_IP = 367,
330 <     NUMBER_PER_IP_GLOBAL = 368,
331 <     OPERATOR = 369,
332 <     OPERS_BYPASS_CALLERID = 370,
333 <     OPER_ONLY_UMODES = 371,
334 <     OPER_PASS_RESV = 372,
335 <     OPER_SPY_T = 373,
336 <     OPER_UMODES = 374,
337 <     JOIN_FLOOD_COUNT = 375,
338 <     JOIN_FLOOD_TIME = 376,
339 <     PACE_WAIT = 377,
340 <     PACE_WAIT_SIMPLE = 378,
341 <     PASSWORD = 379,
342 <     PATH = 380,
343 <     PING_COOKIE = 381,
344 <     PING_TIME = 382,
345 <     PING_WARNING = 383,
346 <     PORT = 384,
347 <     QSTRING = 385,
348 <     QUIET_ON_BAN = 386,
349 <     REASON = 387,
350 <     REDIRPORT = 388,
351 <     REDIRSERV = 389,
352 <     REGEX_T = 390,
353 <     REHASH = 391,
354 <     TREJECT_HOLD_TIME = 392,
355 <     REMOTE = 393,
356 <     REMOTEBAN = 394,
357 <     RESTRICT_CHANNELS = 395,
358 <     RESTRICTED = 396,
359 <     RSA_PRIVATE_KEY_FILE = 397,
360 <     RSA_PUBLIC_KEY_FILE = 398,
361 <     SSL_CERTIFICATE_FILE = 399,
362 <     SSL_DH_PARAM_FILE = 400,
363 <     T_SSL_CLIENT_METHOD = 401,
364 <     T_SSL_SERVER_METHOD = 402,
365 <     T_SSLV3 = 403,
366 <     T_TLSV1 = 404,
367 <     RESV = 405,
368 <     RESV_EXEMPT = 406,
369 <     SECONDS = 407,
370 <     MINUTES = 408,
371 <     HOURS = 409,
372 <     DAYS = 410,
373 <     WEEKS = 411,
374 <     SENDQ = 412,
375 <     SEND_PASSWORD = 413,
376 <     SERVERHIDE = 414,
377 <     SERVERINFO = 415,
378 <     IRCD_SID = 416,
379 <     TKLINE_EXPIRE_NOTICES = 417,
380 <     T_SHARED = 418,
381 <     T_CLUSTER = 419,
382 <     TYPE = 420,
383 <     SHORT_MOTD = 421,
384 <     SILENT = 422,
385 <     SPOOF = 423,
386 <     SPOOF_NOTICE = 424,
387 <     STATS_E_DISABLED = 425,
388 <     STATS_I_OPER_ONLY = 426,
389 <     STATS_K_OPER_ONLY = 427,
390 <     STATS_O_OPER_ONLY = 428,
391 <     STATS_P_OPER_ONLY = 429,
392 <     TBOOL = 430,
393 <     TMASKED = 431,
394 <     T_REJECT = 432,
395 <     TS_MAX_DELTA = 433,
396 <     TS_WARN_DELTA = 434,
397 <     TWODOTS = 435,
398 <     T_ALL = 436,
399 <     T_BOTS = 437,
400 <     T_SOFTCALLERID = 438,
401 <     T_CALLERID = 439,
402 <     T_CCONN = 440,
403 <     T_CCONN_FULL = 441,
404 <     T_SSL_CIPHER_LIST = 442,
405 <     T_CLIENT_FLOOD = 443,
406 <     T_DEAF = 444,
407 <     T_DEBUG = 445,
408 <     T_DLINE = 446,
409 <     T_DRONE = 447,
410 <     T_EXTERNAL = 448,
411 <     T_FULL = 449,
412 <     T_INVISIBLE = 450,
413 <     T_IPV4 = 451,
414 <     T_IPV6 = 452,
415 <     T_LOCOPS = 453,
416 <     T_MAX_CLIENTS = 454,
417 <     T_NCHANGE = 455,
418 <     T_OPERWALL = 456,
419 <     T_REJ = 457,
420 <     T_SERVER = 458,
421 <     T_SERVNOTICE = 459,
422 <     T_SKILL = 460,
423 <     T_SPY = 461,
424 <     T_SSL = 462,
425 <     T_UMODES = 463,
426 <     T_UNAUTH = 464,
427 <     T_UNDLINE = 465,
428 <     T_UNLIMITED = 466,
429 <     T_UNRESV = 467,
430 <     T_UNXLINE = 468,
431 <     T_GLOBOPS = 469,
432 <     T_WALLOP = 470,
433 <     T_RESTART = 471,
434 <     T_SERVICE = 472,
435 <     T_SERVICES_NAME = 473,
436 <     THROTTLE_TIME = 474,
437 <     TOPICBURST = 475,
438 <     TRUE_NO_OPER_FLOOD = 476,
439 <     TKLINE = 477,
440 <     TXLINE = 478,
441 <     TRESV = 479,
442 <     UNKLINE = 480,
443 <     USER = 481,
444 <     USE_EGD = 482,
445 <     USE_EXCEPT = 483,
446 <     USE_INVEX = 484,
447 <     USE_KNOCK = 485,
448 <     USE_LOGGING = 486,
412 <     USE_WHOIS_ACTUALLY = 487,
413 <     VHOST = 488,
414 <     VHOST6 = 489,
415 <     XLINE = 490,
416 <     WARN = 491,
417 <     WARN_NO_NLINE = 492,
418 <     T_SIZE = 493,
419 <     T_FILE = 494
420 <   };
217 >  enum yytokentype
218 >  {
219 >    ACCEPT_PASSWORD = 258,
220 >    ADMIN = 259,
221 >    AFTYPE = 260,
222 >    ANTI_NICK_FLOOD = 261,
223 >    ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
224 >    AUTOCONN = 263,
225 >    BYTES = 264,
226 >    KBYTES = 265,
227 >    MBYTES = 266,
228 >    CALLER_ID_WAIT = 267,
229 >    CAN_FLOOD = 268,
230 >    CHANNEL = 269,
231 >    CIDR_BITLEN_IPV4 = 270,
232 >    CIDR_BITLEN_IPV6 = 271,
233 >    CLASS = 272,
234 >    CONNECT = 273,
235 >    CONNECTFREQ = 274,
236 >    CYCLE_ON_HOST_CHANGE = 275,
237 >    DEFAULT_FLOODCOUNT = 276,
238 >    DEFAULT_SPLIT_SERVER_COUNT = 277,
239 >    DEFAULT_SPLIT_USER_COUNT = 278,
240 >    DENY = 279,
241 >    DESCRIPTION = 280,
242 >    DIE = 281,
243 >    DISABLE_AUTH = 282,
244 >    DISABLE_FAKE_CHANNELS = 283,
245 >    DISABLE_REMOTE_COMMANDS = 284,
246 >    DOTS_IN_IDENT = 285,
247 >    EGDPOOL_PATH = 286,
248 >    EMAIL = 287,
249 >    ENCRYPTED = 288,
250 >    EXCEED_LIMIT = 289,
251 >    EXEMPT = 290,
252 >    FAILED_OPER_NOTICE = 291,
253 >    FLATTEN_LINKS = 292,
254 >    GECOS = 293,
255 >    GENERAL = 294,
256 >    GLINE = 295,
257 >    GLINE_DURATION = 296,
258 >    GLINE_ENABLE = 297,
259 >    GLINE_EXEMPT = 298,
260 >    GLINE_MIN_CIDR = 299,
261 >    GLINE_MIN_CIDR6 = 300,
262 >    GLINE_REQUEST_DURATION = 301,
263 >    GLOBAL_KILL = 302,
264 >    HAVENT_READ_CONF = 303,
265 >    HIDDEN = 304,
266 >    HIDDEN_NAME = 305,
267 >    HIDE_CHANS = 306,
268 >    HIDE_IDLE = 307,
269 >    HIDE_IDLE_FROM_OPERS = 308,
270 >    HIDE_SERVER_IPS = 309,
271 >    HIDE_SERVERS = 310,
272 >    HIDE_SERVICES = 311,
273 >    HIDE_SPOOF_IPS = 312,
274 >    HOST = 313,
275 >    HUB = 314,
276 >    HUB_MASK = 315,
277 >    IGNORE_BOGUS_TS = 316,
278 >    INVISIBLE_ON_CONNECT = 317,
279 >    INVITE_CLIENT_COUNT = 318,
280 >    INVITE_CLIENT_TIME = 319,
281 >    IP = 320,
282 >    IRCD_AUTH = 321,
283 >    IRCD_FLAGS = 322,
284 >    IRCD_SID = 323,
285 >    JOIN_FLOOD_COUNT = 324,
286 >    JOIN_FLOOD_TIME = 325,
287 >    KILL = 326,
288 >    KILL_CHASE_TIME_LIMIT = 327,
289 >    KLINE = 328,
290 >    KLINE_EXEMPT = 329,
291 >    KNOCK_CLIENT_COUNT = 330,
292 >    KNOCK_CLIENT_TIME = 331,
293 >    KNOCK_DELAY_CHANNEL = 332,
294 >    LEAF_MASK = 333,
295 >    LINKS_DELAY = 334,
296 >    LISTEN = 335,
297 >    MASK = 336,
298 >    MAX_ACCEPT = 337,
299 >    MAX_BANS = 338,
300 >    MAX_CHANNELS = 339,
301 >    MAX_GLOBAL = 340,
302 >    MAX_IDENT = 341,
303 >    MAX_IDLE = 342,
304 >    MAX_LOCAL = 343,
305 >    MAX_NICK_CHANGES = 344,
306 >    MAX_NICK_LENGTH = 345,
307 >    MAX_NICK_TIME = 346,
308 >    MAX_NUMBER = 347,
309 >    MAX_TARGETS = 348,
310 >    MAX_TOPIC_LENGTH = 349,
311 >    MAX_WATCH = 350,
312 >    MIN_IDLE = 351,
313 >    MIN_NONWILDCARD = 352,
314 >    MIN_NONWILDCARD_SIMPLE = 353,
315 >    MODULE = 354,
316 >    MODULES = 355,
317 >    MOTD = 356,
318 >    NAME = 357,
319 >    NEED_IDENT = 358,
320 >    NEED_PASSWORD = 359,
321 >    NETWORK_DESC = 360,
322 >    NETWORK_NAME = 361,
323 >    NICK = 362,
324 >    NO_CREATE_ON_SPLIT = 363,
325 >    NO_JOIN_ON_SPLIT = 364,
326 >    NO_OPER_FLOOD = 365,
327 >    NO_TILDE = 366,
328 >    NUMBER = 367,
329 >    NUMBER_PER_CIDR = 368,
330 >    NUMBER_PER_IP = 369,
331 >    OPER_ONLY_UMODES = 370,
332 >    OPER_PASS_RESV = 371,
333 >    OPER_UMODES = 372,
334 >    OPERATOR = 373,
335 >    OPERS_BYPASS_CALLERID = 374,
336 >    PACE_WAIT = 375,
337 >    PACE_WAIT_SIMPLE = 376,
338 >    PASSWORD = 377,
339 >    PATH = 378,
340 >    PING_COOKIE = 379,
341 >    PING_TIME = 380,
342 >    PORT = 381,
343 >    QSTRING = 382,
344 >    RANDOM_IDLE = 383,
345 >    REASON = 384,
346 >    REDIRPORT = 385,
347 >    REDIRSERV = 386,
348 >    REHASH = 387,
349 >    REMOTE = 388,
350 >    REMOTEBAN = 389,
351 >    RESV = 390,
352 >    RESV_EXEMPT = 391,
353 >    RSA_PRIVATE_KEY_FILE = 392,
354 >    RSA_PUBLIC_KEY_FILE = 393,
355 >    SECONDS = 394,
356 >    MINUTES = 395,
357 >    HOURS = 396,
358 >    DAYS = 397,
359 >    WEEKS = 398,
360 >    MONTHS = 399,
361 >    YEARS = 400,
362 >    SEND_PASSWORD = 401,
363 >    SENDQ = 402,
364 >    SERVERHIDE = 403,
365 >    SERVERINFO = 404,
366 >    SHORT_MOTD = 405,
367 >    SPOOF = 406,
368 >    SPOOF_NOTICE = 407,
369 >    SQUIT = 408,
370 >    SSL_CERTIFICATE_FILE = 409,
371 >    SSL_CERTIFICATE_FINGERPRINT = 410,
372 >    SSL_CONNECTION_REQUIRED = 411,
373 >    SSL_DH_ELLIPTIC_CURVE = 412,
374 >    SSL_DH_PARAM_FILE = 413,
375 >    STATS_E_DISABLED = 414,
376 >    STATS_I_OPER_ONLY = 415,
377 >    STATS_K_OPER_ONLY = 416,
378 >    STATS_O_OPER_ONLY = 417,
379 >    STATS_P_OPER_ONLY = 418,
380 >    STATS_U_OPER_ONLY = 419,
381 >    T_ALL = 420,
382 >    T_BOTS = 421,
383 >    T_CALLERID = 422,
384 >    T_CCONN = 423,
385 >    T_CLUSTER = 424,
386 >    T_DEAF = 425,
387 >    T_DEBUG = 426,
388 >    T_DLINE = 427,
389 >    T_EXTERNAL = 428,
390 >    T_FARCONNECT = 429,
391 >    T_FILE = 430,
392 >    T_FULL = 431,
393 >    T_GLOBOPS = 432,
394 >    T_INVISIBLE = 433,
395 >    T_IPV4 = 434,
396 >    T_IPV6 = 435,
397 >    T_LOCOPS = 436,
398 >    T_LOG = 437,
399 >    T_MAX_CLIENTS = 438,
400 >    T_NCHANGE = 439,
401 >    T_NONONREG = 440,
402 >    T_RECVQ = 441,
403 >    T_REJ = 442,
404 >    T_RESTART = 443,
405 >    T_SERVER = 444,
406 >    T_SERVICE = 445,
407 >    T_SERVICES_NAME = 446,
408 >    T_SERVNOTICE = 447,
409 >    T_SET = 448,
410 >    T_SHARED = 449,
411 >    T_SIZE = 450,
412 >    T_SKILL = 451,
413 >    T_SOFTCALLERID = 452,
414 >    T_SPY = 453,
415 >    T_SSL = 454,
416 >    T_SSL_CIPHER_LIST = 455,
417 >    T_SSL_CLIENT_METHOD = 456,
418 >    T_SSL_SERVER_METHOD = 457,
419 >    T_SSLV3 = 458,
420 >    T_TLSV1 = 459,
421 >    T_UMODES = 460,
422 >    T_UNAUTH = 461,
423 >    T_UNDLINE = 462,
424 >    T_UNLIMITED = 463,
425 >    T_UNRESV = 464,
426 >    T_UNXLINE = 465,
427 >    T_WALLOP = 466,
428 >    T_WALLOPS = 467,
429 >    T_WEBIRC = 468,
430 >    TBOOL = 469,
431 >    THROTTLE_COUNT = 470,
432 >    THROTTLE_TIME = 471,
433 >    TKLINE_EXPIRE_NOTICES = 472,
434 >    TMASKED = 473,
435 >    TRUE_NO_OPER_FLOOD = 474,
436 >    TS_MAX_DELTA = 475,
437 >    TS_WARN_DELTA = 476,
438 >    TWODOTS = 477,
439 >    TYPE = 478,
440 >    UNKLINE = 479,
441 >    USE_EGD = 480,
442 >    USE_LOGGING = 481,
443 >    USER = 482,
444 >    VHOST = 483,
445 >    VHOST6 = 484,
446 >    WARN_NO_CONNECT_BLOCK = 485,
447 >    XLINE = 486
448 >  };
449   #endif
450   /* Tokens.  */
451   #define ACCEPT_PASSWORD 258
452 < #define ACTION 259
453 < #define ADMIN 260
454 < #define AFTYPE 261
455 < #define T_ALLOW 262
456 < #define ANTI_NICK_FLOOD 263
457 < #define ANTI_SPAM_EXIT_MESSAGE_TIME 264
458 < #define AUTOCONN 265
459 < #define T_BLOCK 266
460 < #define BURST_AWAY 267
461 < #define BYTES 268
462 < #define KBYTES 269
463 < #define MBYTES 270
464 < #define GBYTES 271
465 < #define TBYTES 272
466 < #define CALLER_ID_WAIT 273
467 < #define CAN_FLOOD 274
468 < #define CHANNEL 275
469 < #define CIDR_BITLEN_IPV4 276
470 < #define CIDR_BITLEN_IPV6 277
471 < #define CLASS 278
472 < #define CONNECT 279
473 < #define CONNECTFREQ 280
474 < #define DEFAULT_FLOODCOUNT 281
475 < #define DEFAULT_SPLIT_SERVER_COUNT 282
476 < #define DEFAULT_SPLIT_USER_COUNT 283
477 < #define DENY 284
478 < #define DESCRIPTION 285
479 < #define DIE 286
480 < #define DISABLE_AUTH 287
481 < #define DISABLE_FAKE_CHANNELS 288
482 < #define DISABLE_HIDDEN 289
483 < #define DISABLE_LOCAL_CHANNELS 290
484 < #define DISABLE_REMOTE_COMMANDS 291
485 < #define DOTS_IN_IDENT 292
486 < #define DURATION 293
487 < #define EGDPOOL_PATH 294
488 < #define EMAIL 295
489 < #define ENABLE 296
490 < #define ENCRYPTED 297
491 < #define EXCEED_LIMIT 298
492 < #define EXEMPT 299
493 < #define FAILED_OPER_NOTICE 300
494 < #define IRCD_FLAGS 301
495 < #define FLATTEN_LINKS 302
496 < #define GECOS 303
497 < #define GENERAL 304
498 < #define GLINE 305
499 < #define GLINES 306
500 < #define GLINE_EXEMPT 307
501 < #define GLINE_TIME 308
502 < #define GLINE_MIN_CIDR 309
503 < #define GLINE_MIN_CIDR6 310
504 < #define GLOBAL_KILL 311
505 < #define IRCD_AUTH 312
506 < #define NEED_IDENT 313
507 < #define HAVENT_READ_CONF 314
508 < #define HIDDEN 315
509 < #define HIDDEN_NAME 316
510 < #define HIDE_SERVER_IPS 317
511 < #define HIDE_SERVERS 318
512 < #define HIDE_SPOOF_IPS 319
513 < #define HOST 320
514 < #define HUB 321
515 < #define HUB_MASK 322
516 < #define IGNORE_BOGUS_TS 323
517 < #define INVISIBLE_ON_CONNECT 324
518 < #define IP 325
452 > #define ADMIN 259
453 > #define AFTYPE 260
454 > #define ANTI_NICK_FLOOD 261
455 > #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
456 > #define AUTOCONN 263
457 > #define BYTES 264
458 > #define KBYTES 265
459 > #define MBYTES 266
460 > #define CALLER_ID_WAIT 267
461 > #define CAN_FLOOD 268
462 > #define CHANNEL 269
463 > #define CIDR_BITLEN_IPV4 270
464 > #define CIDR_BITLEN_IPV6 271
465 > #define CLASS 272
466 > #define CONNECT 273
467 > #define CONNECTFREQ 274
468 > #define CYCLE_ON_HOST_CHANGE 275
469 > #define DEFAULT_FLOODCOUNT 276
470 > #define DEFAULT_SPLIT_SERVER_COUNT 277
471 > #define DEFAULT_SPLIT_USER_COUNT 278
472 > #define DENY 279
473 > #define DESCRIPTION 280
474 > #define DIE 281
475 > #define DISABLE_AUTH 282
476 > #define DISABLE_FAKE_CHANNELS 283
477 > #define DISABLE_REMOTE_COMMANDS 284
478 > #define DOTS_IN_IDENT 285
479 > #define EGDPOOL_PATH 286
480 > #define EMAIL 287
481 > #define ENCRYPTED 288
482 > #define EXCEED_LIMIT 289
483 > #define EXEMPT 290
484 > #define FAILED_OPER_NOTICE 291
485 > #define FLATTEN_LINKS 292
486 > #define GECOS 293
487 > #define GENERAL 294
488 > #define GLINE 295
489 > #define GLINE_DURATION 296
490 > #define GLINE_ENABLE 297
491 > #define GLINE_EXEMPT 298
492 > #define GLINE_MIN_CIDR 299
493 > #define GLINE_MIN_CIDR6 300
494 > #define GLINE_REQUEST_DURATION 301
495 > #define GLOBAL_KILL 302
496 > #define HAVENT_READ_CONF 303
497 > #define HIDDEN 304
498 > #define HIDDEN_NAME 305
499 > #define HIDE_CHANS 306
500 > #define HIDE_IDLE 307
501 > #define HIDE_IDLE_FROM_OPERS 308
502 > #define HIDE_SERVER_IPS 309
503 > #define HIDE_SERVERS 310
504 > #define HIDE_SERVICES 311
505 > #define HIDE_SPOOF_IPS 312
506 > #define HOST 313
507 > #define HUB 314
508 > #define HUB_MASK 315
509 > #define IGNORE_BOGUS_TS 316
510 > #define INVISIBLE_ON_CONNECT 317
511 > #define INVITE_CLIENT_COUNT 318
512 > #define INVITE_CLIENT_TIME 319
513 > #define IP 320
514 > #define IRCD_AUTH 321
515 > #define IRCD_FLAGS 322
516 > #define IRCD_SID 323
517 > #define JOIN_FLOOD_COUNT 324
518 > #define JOIN_FLOOD_TIME 325
519   #define KILL 326
520   #define KILL_CHASE_TIME_LIMIT 327
521   #define KLINE 328
522   #define KLINE_EXEMPT 329
523 < #define KLINE_REASON 330
524 < #define KLINE_WITH_REASON 331
525 < #define KNOCK_DELAY 332
526 < #define KNOCK_DELAY_CHANNEL 333
527 < #define LEAF_MASK 334
528 < #define LINKS_DELAY 335
529 < #define LISTEN 336
530 < #define T_LOG 337
531 < #define MAX_ACCEPT 338
532 < #define MAX_BANS 339
533 < #define MAX_CHANS_PER_USER 340
534 < #define MAX_GLOBAL 341
535 < #define MAX_IDENT 342
523 > #define KNOCK_CLIENT_COUNT 330
524 > #define KNOCK_CLIENT_TIME 331
525 > #define KNOCK_DELAY_CHANNEL 332
526 > #define LEAF_MASK 333
527 > #define LINKS_DELAY 334
528 > #define LISTEN 335
529 > #define MASK 336
530 > #define MAX_ACCEPT 337
531 > #define MAX_BANS 338
532 > #define MAX_CHANNELS 339
533 > #define MAX_GLOBAL 340
534 > #define MAX_IDENT 341
535 > #define MAX_IDLE 342
536   #define MAX_LOCAL 343
537   #define MAX_NICK_CHANGES 344
538 < #define MAX_NICK_TIME 345
539 < #define MAX_NUMBER 346
540 < #define MAX_TARGETS 347
541 < #define MAX_WATCH 348
542 < #define MESSAGE_LOCALE 349
543 < #define MIN_NONWILDCARD 350
544 < #define MIN_NONWILDCARD_SIMPLE 351
545 < #define MODULE 352
546 < #define MODULES 353
547 < #define NAME 354
548 < #define NEED_PASSWORD 355
549 < #define NETWORK_DESC 356
550 < #define NETWORK_NAME 357
551 < #define NICK 358
552 < #define NICK_CHANGES 359
553 < #define NO_CREATE_ON_SPLIT 360
554 < #define NO_JOIN_ON_SPLIT 361
555 < #define NO_OPER_FLOOD 362
556 < #define NO_TILDE 363
557 < #define NUMBER 364
558 < #define NUMBER_PER_IDENT 365
559 < #define NUMBER_PER_CIDR 366
560 < #define NUMBER_PER_IP 367
561 < #define NUMBER_PER_IP_GLOBAL 368
562 < #define OPERATOR 369
563 < #define OPERS_BYPASS_CALLERID 370
564 < #define OPER_ONLY_UMODES 371
565 < #define OPER_PASS_RESV 372
566 < #define OPER_SPY_T 373
567 < #define OPER_UMODES 374
568 < #define JOIN_FLOOD_COUNT 375
569 < #define JOIN_FLOOD_TIME 376
570 < #define PACE_WAIT 377
571 < #define PACE_WAIT_SIMPLE 378
572 < #define PASSWORD 379
573 < #define PATH 380
574 < #define PING_COOKIE 381
575 < #define PING_TIME 382
576 < #define PING_WARNING 383
577 < #define PORT 384
578 < #define QSTRING 385
579 < #define QUIET_ON_BAN 386
580 < #define REASON 387
581 < #define REDIRPORT 388
582 < #define REDIRSERV 389
583 < #define REGEX_T 390
584 < #define REHASH 391
585 < #define TREJECT_HOLD_TIME 392
586 < #define REMOTE 393
587 < #define REMOTEBAN 394
588 < #define RESTRICT_CHANNELS 395
589 < #define RESTRICTED 396
590 < #define RSA_PRIVATE_KEY_FILE 397
591 < #define RSA_PUBLIC_KEY_FILE 398
592 < #define SSL_CERTIFICATE_FILE 399
593 < #define SSL_DH_PARAM_FILE 400
594 < #define T_SSL_CLIENT_METHOD 401
595 < #define T_SSL_SERVER_METHOD 402
596 < #define T_SSLV3 403
597 < #define T_TLSV1 404
598 < #define RESV 405
599 < #define RESV_EXEMPT 406
600 < #define SECONDS 407
601 < #define MINUTES 408
602 < #define HOURS 409
603 < #define DAYS 410
604 < #define WEEKS 411
605 < #define SENDQ 412
606 < #define SEND_PASSWORD 413
607 < #define SERVERHIDE 414
608 < #define SERVERINFO 415
609 < #define IRCD_SID 416
610 < #define TKLINE_EXPIRE_NOTICES 417
611 < #define T_SHARED 418
612 < #define T_CLUSTER 419
613 < #define TYPE 420
614 < #define SHORT_MOTD 421
615 < #define SILENT 422
616 < #define SPOOF 423
617 < #define SPOOF_NOTICE 424
618 < #define STATS_E_DISABLED 425
619 < #define STATS_I_OPER_ONLY 426
620 < #define STATS_K_OPER_ONLY 427
621 < #define STATS_O_OPER_ONLY 428
622 < #define STATS_P_OPER_ONLY 429
623 < #define TBOOL 430
624 < #define TMASKED 431
625 < #define T_REJECT 432
626 < #define TS_MAX_DELTA 433
627 < #define TS_WARN_DELTA 434
628 < #define TWODOTS 435
629 < #define T_ALL 436
630 < #define T_BOTS 437
631 < #define T_SOFTCALLERID 438
632 < #define T_CALLERID 439
633 < #define T_CCONN 440
634 < #define T_CCONN_FULL 441
635 < #define T_SSL_CIPHER_LIST 442
636 < #define T_CLIENT_FLOOD 443
637 < #define T_DEAF 444
638 < #define T_DEBUG 445
639 < #define T_DLINE 446
640 < #define T_DRONE 447
641 < #define T_EXTERNAL 448
642 < #define T_FULL 449
643 < #define T_INVISIBLE 450
644 < #define T_IPV4 451
645 < #define T_IPV6 452
646 < #define T_LOCOPS 453
647 < #define T_MAX_CLIENTS 454
648 < #define T_NCHANGE 455
649 < #define T_OPERWALL 456
650 < #define T_REJ 457
651 < #define T_SERVER 458
652 < #define T_SERVNOTICE 459
653 < #define T_SKILL 460
654 < #define T_SPY 461
655 < #define T_SSL 462
656 < #define T_UMODES 463
657 < #define T_UNAUTH 464
658 < #define T_UNDLINE 465
659 < #define T_UNLIMITED 466
660 < #define T_UNRESV 467
661 < #define T_UNXLINE 468
662 < #define T_GLOBOPS 469
663 < #define T_WALLOP 470
664 < #define T_RESTART 471
665 < #define T_SERVICE 472
666 < #define T_SERVICES_NAME 473
667 < #define THROTTLE_TIME 474
668 < #define TOPICBURST 475
669 < #define TRUE_NO_OPER_FLOOD 476
670 < #define TKLINE 477
671 < #define TXLINE 478
672 < #define TRESV 479
673 < #define UNKLINE 480
674 < #define USER 481
675 < #define USE_EGD 482
676 < #define USE_EXCEPT 483
677 < #define USE_INVEX 484
678 < #define USE_KNOCK 485
679 < #define USE_LOGGING 486
652 < #define USE_WHOIS_ACTUALLY 487
653 < #define VHOST 488
654 < #define VHOST6 489
655 < #define XLINE 490
656 < #define WARN 491
657 < #define WARN_NO_NLINE 492
658 < #define T_SIZE 493
659 < #define T_FILE 494
660 <
661 <
662 <
538 > #define MAX_NICK_LENGTH 345
539 > #define MAX_NICK_TIME 346
540 > #define MAX_NUMBER 347
541 > #define MAX_TARGETS 348
542 > #define MAX_TOPIC_LENGTH 349
543 > #define MAX_WATCH 350
544 > #define MIN_IDLE 351
545 > #define MIN_NONWILDCARD 352
546 > #define MIN_NONWILDCARD_SIMPLE 353
547 > #define MODULE 354
548 > #define MODULES 355
549 > #define MOTD 356
550 > #define NAME 357
551 > #define NEED_IDENT 358
552 > #define NEED_PASSWORD 359
553 > #define NETWORK_DESC 360
554 > #define NETWORK_NAME 361
555 > #define NICK 362
556 > #define NO_CREATE_ON_SPLIT 363
557 > #define NO_JOIN_ON_SPLIT 364
558 > #define NO_OPER_FLOOD 365
559 > #define NO_TILDE 366
560 > #define NUMBER 367
561 > #define NUMBER_PER_CIDR 368
562 > #define NUMBER_PER_IP 369
563 > #define OPER_ONLY_UMODES 370
564 > #define OPER_PASS_RESV 371
565 > #define OPER_UMODES 372
566 > #define OPERATOR 373
567 > #define OPERS_BYPASS_CALLERID 374
568 > #define PACE_WAIT 375
569 > #define PACE_WAIT_SIMPLE 376
570 > #define PASSWORD 377
571 > #define PATH 378
572 > #define PING_COOKIE 379
573 > #define PING_TIME 380
574 > #define PORT 381
575 > #define QSTRING 382
576 > #define RANDOM_IDLE 383
577 > #define REASON 384
578 > #define REDIRPORT 385
579 > #define REDIRSERV 386
580 > #define REHASH 387
581 > #define REMOTE 388
582 > #define REMOTEBAN 389
583 > #define RESV 390
584 > #define RESV_EXEMPT 391
585 > #define RSA_PRIVATE_KEY_FILE 392
586 > #define RSA_PUBLIC_KEY_FILE 393
587 > #define SECONDS 394
588 > #define MINUTES 395
589 > #define HOURS 396
590 > #define DAYS 397
591 > #define WEEKS 398
592 > #define MONTHS 399
593 > #define YEARS 400
594 > #define SEND_PASSWORD 401
595 > #define SENDQ 402
596 > #define SERVERHIDE 403
597 > #define SERVERINFO 404
598 > #define SHORT_MOTD 405
599 > #define SPOOF 406
600 > #define SPOOF_NOTICE 407
601 > #define SQUIT 408
602 > #define SSL_CERTIFICATE_FILE 409
603 > #define SSL_CERTIFICATE_FINGERPRINT 410
604 > #define SSL_CONNECTION_REQUIRED 411
605 > #define SSL_DH_ELLIPTIC_CURVE 412
606 > #define SSL_DH_PARAM_FILE 413
607 > #define STATS_E_DISABLED 414
608 > #define STATS_I_OPER_ONLY 415
609 > #define STATS_K_OPER_ONLY 416
610 > #define STATS_O_OPER_ONLY 417
611 > #define STATS_P_OPER_ONLY 418
612 > #define STATS_U_OPER_ONLY 419
613 > #define T_ALL 420
614 > #define T_BOTS 421
615 > #define T_CALLERID 422
616 > #define T_CCONN 423
617 > #define T_CLUSTER 424
618 > #define T_DEAF 425
619 > #define T_DEBUG 426
620 > #define T_DLINE 427
621 > #define T_EXTERNAL 428
622 > #define T_FARCONNECT 429
623 > #define T_FILE 430
624 > #define T_FULL 431
625 > #define T_GLOBOPS 432
626 > #define T_INVISIBLE 433
627 > #define T_IPV4 434
628 > #define T_IPV6 435
629 > #define T_LOCOPS 436
630 > #define T_LOG 437
631 > #define T_MAX_CLIENTS 438
632 > #define T_NCHANGE 439
633 > #define T_NONONREG 440
634 > #define T_RECVQ 441
635 > #define T_REJ 442
636 > #define T_RESTART 443
637 > #define T_SERVER 444
638 > #define T_SERVICE 445
639 > #define T_SERVICES_NAME 446
640 > #define T_SERVNOTICE 447
641 > #define T_SET 448
642 > #define T_SHARED 449
643 > #define T_SIZE 450
644 > #define T_SKILL 451
645 > #define T_SOFTCALLERID 452
646 > #define T_SPY 453
647 > #define T_SSL 454
648 > #define T_SSL_CIPHER_LIST 455
649 > #define T_SSL_CLIENT_METHOD 456
650 > #define T_SSL_SERVER_METHOD 457
651 > #define T_SSLV3 458
652 > #define T_TLSV1 459
653 > #define T_UMODES 460
654 > #define T_UNAUTH 461
655 > #define T_UNDLINE 462
656 > #define T_UNLIMITED 463
657 > #define T_UNRESV 464
658 > #define T_UNXLINE 465
659 > #define T_WALLOP 466
660 > #define T_WALLOPS 467
661 > #define T_WEBIRC 468
662 > #define TBOOL 469
663 > #define THROTTLE_COUNT 470
664 > #define THROTTLE_TIME 471
665 > #define TKLINE_EXPIRE_NOTICES 472
666 > #define TMASKED 473
667 > #define TRUE_NO_OPER_FLOOD 474
668 > #define TS_MAX_DELTA 475
669 > #define TS_WARN_DELTA 476
670 > #define TWODOTS 477
671 > #define TYPE 478
672 > #define UNKLINE 479
673 > #define USE_EGD 480
674 > #define USE_LOGGING 481
675 > #define USER 482
676 > #define VHOST 483
677 > #define VHOST6 484
678 > #define WARN_NO_CONNECT_BLOCK 485
679 > #define XLINE 486
680  
681 + /* Value type.  */
682   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
683 < typedef union YYSTYPE
683 > typedef union YYSTYPE YYSTYPE;
684 > union YYSTYPE
685   {
686 <
668 < /* Line 293 of yacc.c  */
669 < #line 110 "conf_parser.y"
686 > #line 147 "conf_parser.y" /* yacc.c:355  */
687  
688    int number;
689    char *string;
690  
691 <
692 <
676 < /* Line 293 of yacc.c  */
677 < #line 678 "conf_parser.c"
678 < } YYSTYPE;
691 > #line 692 "conf_parser.c" /* yacc.c:355  */
692 > };
693   # define YYSTYPE_IS_TRIVIAL 1
680 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
694   # define YYSTYPE_IS_DECLARED 1
695   #endif
696  
697  
698 < /* Copy the second part of user declarations.  */
698 > extern YYSTYPE yylval;
699  
700 + int yyparse (void);
701 +
702 + #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
703  
704 < /* Line 343 of yacc.c  */
705 < #line 690 "conf_parser.c"
704 > /* Copy the second part of user declarations.  */
705 >
706 > #line 707 "conf_parser.c" /* yacc.c:358  */
707  
708   #ifdef short
709   # undef short
# Line 700 | Line 717 | typedef unsigned char yytype_uint8;
717  
718   #ifdef YYTYPE_INT8
719   typedef YYTYPE_INT8 yytype_int8;
703 #elif (defined __STDC__ || defined __C99__FUNC__ \
704     || defined __cplusplus || defined _MSC_VER)
705 typedef signed char yytype_int8;
720   #else
721 < typedef short int yytype_int8;
721 > typedef signed char yytype_int8;
722   #endif
723  
724   #ifdef YYTYPE_UINT16
# Line 724 | Line 738 | typedef short int yytype_int16;
738   #  define YYSIZE_T __SIZE_TYPE__
739   # elif defined size_t
740   #  define YYSIZE_T size_t
741 < # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
728 <     || defined __cplusplus || defined _MSC_VER)
741 > # elif ! defined YYSIZE_T
742   #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
743   #  define YYSIZE_T size_t
744   # else
# Line 739 | 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 YY_ATTRIBUTE
764 > # if (defined __GNUC__                                               \
765 >      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
766 >     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
767 > #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
768 > # else
769 > #  define YY_ATTRIBUTE(Spec) /* empty */
770 > # endif
771 > #endif
772 >
773 > #ifndef YY_ATTRIBUTE_PURE
774 > # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
775 > #endif
776 >
777 > #ifndef YY_ATTRIBUTE_UNUSED
778 > # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
779 > #endif
780 >
781 > #if !defined _Noreturn \
782 >     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
783 > # if defined _MSC_VER && 1200 <= _MSC_VER
784 > #  define _Noreturn __declspec (noreturn)
785 > # else
786 > #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
787   # endif
788   #endif
789  
790   /* Suppress unused-variable warnings by "using" E.  */
791   #if ! defined lint || defined __GNUC__
792 < # define YYUSE(e) ((void) (e))
792 > # define YYUSE(E) ((void) (E))
793   #else
794 < # define YYUSE(e) /* empty */
794 > # define YYUSE(E) /* empty */
795   #endif
796  
797 < /* Identity function, used to suppress warnings about constant conditions.  */
798 < #ifndef lint
799 < # define YYID(n) (n)
800 < #else
801 < #if (defined __STDC__ || defined __C99__FUNC__ \
802 <     || defined __cplusplus || defined _MSC_VER)
803 < static int
804 < YYID (int yyi)
797 > #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
798 > /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
799 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
800 >    _Pragma ("GCC diagnostic push") \
801 >    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
802 >    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
803 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
804 >    _Pragma ("GCC diagnostic pop")
805   #else
806 < static int
767 < YYID (yyi)
768 <    int yyi;
806 > # define YY_INITIAL_VALUE(Value) Value
807   #endif
808 < {
809 <  return yyi;
810 < }
808 > #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
809 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
810 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END
811   #endif
812 + #ifndef YY_INITIAL_VALUE
813 + # define YY_INITIAL_VALUE(Value) /* Nothing. */
814 + #endif
815 +
816  
817   #if ! defined yyoverflow || YYERROR_VERBOSE
818  
# Line 789 | Line 831 | YYID (yyi)
831   #    define alloca _alloca
832   #   else
833   #    define YYSTACK_ALLOC alloca
834 < #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
793 <     || defined __cplusplus || defined _MSC_VER)
834 > #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
835   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
836 +      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
837   #     ifndef EXIT_SUCCESS
838   #      define EXIT_SUCCESS 0
839   #     endif
# Line 801 | Line 843 | YYID (yyi)
843   # endif
844  
845   # ifdef YYSTACK_ALLOC
846 <   /* Pacify GCC's `empty if-body' warning.  */
847 < #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
846 >   /* Pacify GCC's 'empty if-body' warning.  */
847 > #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
848   #  ifndef YYSTACK_ALLOC_MAXIMUM
849      /* The OS might guarantee only one guard page at the bottom of the stack,
850         and a page size can be as small as 4096 bytes.  So we cannot safely
# Line 818 | Line 860 | YYID (yyi)
860   #  endif
861   #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
862         && ! ((defined YYMALLOC || defined malloc) \
863 <             && (defined YYFREE || defined free)))
863 >             && (defined YYFREE || defined free)))
864   #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
865   #   ifndef EXIT_SUCCESS
866   #    define EXIT_SUCCESS 0
# Line 826 | Line 868 | YYID (yyi)
868   #  endif
869   #  ifndef YYMALLOC
870   #   define YYMALLOC malloc
871 < #   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
830 <     || defined __cplusplus || defined _MSC_VER)
871 > #   if ! defined malloc && ! defined EXIT_SUCCESS
872   void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
873   #   endif
874   #  endif
875   #  ifndef YYFREE
876   #   define YYFREE free
877 < #   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
837 <     || defined __cplusplus || defined _MSC_VER)
877 > #   if ! defined free && ! defined EXIT_SUCCESS
878   void free (void *); /* INFRINGES ON USER NAME SPACE */
879   #   endif
880   #  endif
# Line 844 | Line 884 | void free (void *); /* INFRINGES ON USER
884  
885   #if (! defined yyoverflow \
886       && (! defined __cplusplus \
887 <         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
887 >         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
888  
889   /* A type that is properly aligned for any stack member.  */
890   union yyalloc
# Line 869 | Line 909 | union yyalloc
909     elements in the stack, and YYPTR gives the new location of the
910     stack.  Advance YYPTR to a properly aligned location for the next
911     stack.  */
912 < # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
913 <    do                                                                  \
914 <      {                                                                 \
915 <        YYSIZE_T yynewbytes;                                            \
916 <        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
917 <        Stack = &yyptr->Stack_alloc;                                    \
918 <        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
919 <        yyptr += yynewbytes / sizeof (*yyptr);                          \
920 <      }                                                                 \
921 <    while (YYID (0))
912 > # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
913 >    do                                                                  \
914 >      {                                                                 \
915 >        YYSIZE_T yynewbytes;                                            \
916 >        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
917 >        Stack = &yyptr->Stack_alloc;                                    \
918 >        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
919 >        yyptr += yynewbytes / sizeof (*yyptr);                          \
920 >      }                                                                 \
921 >    while (0)
922  
923   #endif
924  
925   #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
926 < /* Copy COUNT objects from FROM to TO.  The source and destination do
926 > /* Copy COUNT objects from SRC to DST.  The source and destination do
927     not overlap.  */
928   # ifndef YYCOPY
929   #  if defined __GNUC__ && 1 < __GNUC__
930 < #   define YYCOPY(To, From, Count) \
931 <      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
930 > #   define YYCOPY(Dst, Src, Count) \
931 >      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
932   #  else
933 < #   define YYCOPY(To, From, Count)              \
934 <      do                                        \
935 <        {                                       \
936 <          YYSIZE_T yyi;                         \
937 <          for (yyi = 0; yyi < (Count); yyi++)   \
938 <            (To)[yyi] = (From)[yyi];            \
939 <        }                                       \
940 <      while (YYID (0))
933 > #   define YYCOPY(Dst, Src, Count)              \
934 >      do                                        \
935 >        {                                       \
936 >          YYSIZE_T yyi;                         \
937 >          for (yyi = 0; yyi < (Count); yyi++)   \
938 >            (Dst)[yyi] = (Src)[yyi];            \
939 >        }                                       \
940 >      while (0)
941   #  endif
942   # endif
943   #endif /* !YYCOPY_NEEDED */
# Line 905 | Line 945 | union yyalloc
945   /* YYFINAL -- State number of the termination state.  */
946   #define YYFINAL  2
947   /* YYLAST -- Last index in YYTABLE.  */
948 < #define YYLAST   1256
948 > #define YYLAST   1260
949  
950   /* YYNTOKENS -- Number of terminals.  */
951 < #define YYNTOKENS  245
951 > #define YYNTOKENS  238
952   /* YYNNTS -- Number of nonterminals.  */
953 < #define YYNNTS  304
953 > #define YYNNTS  296
954   /* YYNRULES -- Number of rules.  */
955 < #define YYNRULES  666
956 < /* YYNRULES -- Number of states.  */
957 < #define YYNSTATES  1306
955 > #define YYNRULES  667
956 > /* YYNSTATES -- Number of states.  */
957 > #define YYNSTATES  1313
958  
959 < /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
959 > /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
960 >   by yylex, with out-of-bounds checking.  */
961   #define YYUNDEFTOK  2
962 < #define YYMAXUTOK   494
962 > #define YYMAXUTOK   486
963  
964 < #define YYTRANSLATE(YYX)                                                \
964 > #define YYTRANSLATE(YYX)                                                \
965    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
966  
967 < /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
967 > /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
968 >   as returned by yylex, without out-of-bounds checking.  */
969   static const yytype_uint8 yytranslate[] =
970   {
971         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
972         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
973         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
974         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
975 <       2,     2,     2,     2,   244,     2,     2,     2,     2,     2,
976 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   240,
977 <       2,   243,     2,     2,     2,     2,     2,     2,     2,     2,
975 >       2,     2,     2,     2,   236,     2,     2,     2,     2,     2,
976 >       2,     2,     2,     2,     2,     2,     2,     2,   237,   232,
977 >       2,   235,     2,     2,     2,     2,     2,     2,     2,     2,
978         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
979         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
980         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
981         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
982         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
983 <       2,     2,     2,   242,     2,   241,     2,     2,     2,     2,
983 >       2,     2,     2,   234,     2,   233,     2,     2,     2,     2,
984         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
985         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
986         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 974 | Line 1016 | static const yytype_uint8 yytranslate[]
1016       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1017       205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1018       215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1019 <     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
978 <     235,   236,   237,   238,   239
1019 >     225,   226,   227,   228,   229,   230,   231
1020   };
1021  
1022   #if YYDEBUG
1023 < /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
983 <   YYRHS.  */
984 < static const yytype_uint16 yyprhs[] =
985 < {
986 <       0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
987 <      19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
988 <      39,    41,    43,    45,    47,    49,    52,    55,    56,    58,
989 <      61,    65,    69,    73,    77,    81,    82,    84,    87,    91,
990 <      95,    99,   105,   108,   110,   112,   114,   117,   122,   127,
991 <     133,   136,   138,   140,   142,   144,   146,   148,   150,   152,
992 <     154,   156,   158,   160,   162,   164,   166,   168,   171,   176,
993 <     181,   185,   187,   189,   191,   195,   197,   199,   201,   206,
994 <     211,   216,   221,   226,   231,   236,   241,   246,   251,   256,
995 <     261,   266,   272,   275,   277,   279,   281,   283,   286,   291,
996 <     296,   301,   307,   310,   312,   314,   316,   319,   324,   325,
997 <     332,   335,   337,   339,   341,   343,   346,   351,   356,   361,
998 <     362,   368,   372,   374,   376,   378,   380,   382,   384,   386,
999 <     388,   389,   396,   399,   401,   403,   405,   407,   409,   411,
1000 <     413,   415,   417,   420,   425,   430,   435,   440,   445,   450,
1001 <     451,   457,   461,   463,   465,   467,   469,   471,   473,   475,
1002 <     477,   479,   481,   483,   485,   487,   489,   491,   493,   495,
1003 <     497,   499,   501,   503,   504,   510,   514,   516,   518,   520,
1004 <     522,   524,   526,   528,   530,   532,   534,   536,   538,   540,
1005 <     542,   544,   546,   548,   550,   552,   553,   560,   563,   565,
1006 <     567,   569,   571,   573,   575,   577,   579,   581,   583,   585,
1007 <     587,   589,   591,   594,   599,   604,   609,   614,   619,   624,
1008 <     629,   634,   639,   644,   649,   654,   659,   660,   667,   668,
1009 <     674,   678,   680,   682,   684,   686,   689,   691,   693,   695,
1010 <     697,   699,   702,   703,   709,   713,   715,   717,   721,   726,
1011 <     731,   732,   739,   742,   744,   746,   748,   750,   752,   754,
1012 <     756,   758,   760,   763,   768,   773,   778,   783,   784,   790,
1013 <     794,   796,   798,   800,   802,   804,   806,   808,   810,   812,
1014 <     814,   819,   824,   829,   830,   837,   840,   842,   844,   846,
1015 <     848,   851,   856,   861,   866,   872,   875,   877,   879,   881,
1016 <     886,   887,   894,   897,   899,   901,   903,   905,   908,   913,
1017 <     918,   919,   925,   929,   931,   933,   935,   937,   939,   941,
1018 <     943,   945,   947,   949,   951,   952,   959,   962,   964,   966,
1019 <     968,   971,   976,   977,   983,   987,   989,   991,   993,   995,
1020 <     997,   999,  1001,  1003,  1005,  1007,  1009,  1010,  1017,  1020,
1021 <    1022,  1024,  1026,  1028,  1030,  1032,  1034,  1036,  1038,  1040,
1022 <    1042,  1044,  1046,  1048,  1051,  1056,  1061,  1066,  1071,  1076,
1023 <    1081,  1086,  1091,  1092,  1098,  1102,  1104,  1106,  1108,  1110,
1024 <    1112,  1117,  1122,  1127,  1132,  1137,  1138,  1145,  1146,  1152,
1025 <    1156,  1158,  1160,  1163,  1165,  1167,  1169,  1171,  1173,  1178,
1026 <    1183,  1184,  1191,  1194,  1196,  1198,  1200,  1202,  1207,  1212,
1027 <    1218,  1221,  1223,  1225,  1227,  1232,  1233,  1240,  1241,  1247,
1028 <    1251,  1253,  1255,  1258,  1260,  1262,  1264,  1266,  1268,  1273,
1029 <    1278,  1284,  1287,  1289,  1291,  1293,  1295,  1297,  1299,  1301,
1030 <    1303,  1305,  1307,  1309,  1311,  1313,  1315,  1317,  1319,  1321,
1031 <    1323,  1325,  1327,  1329,  1331,  1333,  1335,  1337,  1339,  1341,
1032 <    1343,  1345,  1347,  1349,  1351,  1353,  1355,  1357,  1359,  1361,
1033 <    1363,  1365,  1367,  1369,  1371,  1373,  1375,  1377,  1379,  1381,
1034 <    1383,  1385,  1387,  1389,  1391,  1393,  1398,  1403,  1408,  1413,
1035 <    1418,  1423,  1428,  1433,  1438,  1443,  1448,  1453,  1458,  1463,
1036 <    1468,  1473,  1478,  1483,  1488,  1493,  1498,  1503,  1508,  1513,
1037 <    1518,  1523,  1528,  1533,  1538,  1543,  1548,  1553,  1558,  1563,
1038 <    1568,  1573,  1578,  1583,  1588,  1593,  1598,  1603,  1608,  1613,
1039 <    1618,  1623,  1628,  1629,  1635,  1639,  1641,  1643,  1645,  1647,
1040 <    1649,  1651,  1653,  1655,  1657,  1659,  1661,  1663,  1665,  1667,
1041 <    1669,  1671,  1673,  1675,  1677,  1679,  1681,  1682,  1688,  1692,
1042 <    1694,  1696,  1698,  1700,  1702,  1704,  1706,  1708,  1710,  1712,
1043 <    1714,  1716,  1718,  1720,  1722,  1724,  1726,  1728,  1730,  1732,
1044 <    1734,  1739,  1744,  1749,  1754,  1755,  1762,  1765,  1767,  1769,
1045 <    1771,  1773,  1775,  1777,  1779,  1781,  1786,  1791,  1792,  1798,
1046 <    1802,  1804,  1806,  1808,  1813,  1818,  1819,  1825,  1829,  1831,
1047 <    1833,  1835,  1841,  1844,  1846,  1848,  1850,  1852,  1854,  1856,
1048 <    1858,  1860,  1862,  1864,  1866,  1868,  1870,  1872,  1874,  1876,
1049 <    1878,  1880,  1882,  1887,  1892,  1897,  1902,  1907,  1912,  1917,
1050 <    1922,  1927,  1932,  1937,  1942,  1947,  1952,  1957,  1962,  1967,
1051 <    1973,  1976,  1978,  1980,  1982,  1984,  1986,  1988,  1990,  1992,
1052 <    1994,  1999,  2004,  2009,  2014,  2019,  2024
1053 < };
1054 <
1055 < /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1056 < static const yytype_int16 yyrhs[] =
1057 < {
1058 <     246,     0,    -1,    -1,   246,   247,    -1,   279,    -1,   285,
1059 <      -1,   299,    -1,   519,    -1,   317,    -1,   334,    -1,   348,
1060 <      -1,   257,    -1,   539,    -1,   363,    -1,   370,    -1,   374,
1061 <      -1,   384,    -1,   393,    -1,   413,    -1,   423,    -1,   429,
1062 <      -1,   443,    -1,   503,    -1,   433,    -1,   252,    -1,     1,
1063 <     240,    -1,     1,   241,    -1,    -1,   249,    -1,   109,   248,
1064 <      -1,   109,   152,   248,    -1,   109,   153,   248,    -1,   109,
1065 <     154,   248,    -1,   109,   155,   248,    -1,   109,   156,   248,
1066 <      -1,    -1,   251,    -1,   109,   250,    -1,   109,    13,   250,
1067 <      -1,   109,    14,   250,    -1,   109,    15,   250,    -1,    98,
1068 <     242,   253,   241,   240,    -1,   253,   254,    -1,   254,    -1,
1069 <     255,    -1,   256,    -1,     1,   240,    -1,    97,   243,   130,
1070 <     240,    -1,   125,   243,   130,   240,    -1,   160,   242,   258,
1071 <     241,   240,    -1,   258,   259,    -1,   259,    -1,   270,    -1,
1072 <     275,    -1,   278,    -1,   272,    -1,   273,    -1,   274,    -1,
1073 <     277,    -1,   268,    -1,   267,    -1,   276,    -1,   271,    -1,
1074 <     266,    -1,   260,    -1,   261,    -1,   269,    -1,     1,   240,
1075 <      -1,   146,   243,   262,   240,    -1,   147,   243,   264,   240,
1076 <      -1,   262,   244,   263,    -1,   263,    -1,   148,    -1,   149,
1077 <      -1,   264,   244,   265,    -1,   265,    -1,   148,    -1,   149,
1078 <      -1,   144,   243,   130,   240,    -1,   142,   243,   130,   240,
1079 <      -1,   145,   243,   130,   240,    -1,   187,   243,   130,   240,
1080 <      -1,    99,   243,   130,   240,    -1,   161,   243,   130,   240,
1081 <      -1,    30,   243,   130,   240,    -1,   102,   243,   130,   240,
1082 <      -1,   101,   243,   130,   240,    -1,   233,   243,   130,   240,
1083 <      -1,   234,   243,   130,   240,    -1,   199,   243,   109,   240,
1084 <      -1,    66,   243,   175,   240,    -1,     5,   242,   280,   241,
1085 <     240,    -1,   280,   281,    -1,   281,    -1,   282,    -1,   284,
1086 <      -1,   283,    -1,     1,   240,    -1,    99,   243,   130,   240,
1087 <      -1,    40,   243,   130,   240,    -1,    30,   243,   130,   240,
1088 <      -1,    82,   242,   286,   241,   240,    -1,   286,   287,    -1,
1089 <     287,    -1,   288,    -1,   289,    -1,     1,   240,    -1,   231,
1090 <     243,   175,   240,    -1,    -1,   290,   239,   242,   291,   241,
1091 <     240,    -1,   291,   292,    -1,   292,    -1,   293,    -1,   295,
1092 <      -1,   294,    -1,     1,   240,    -1,    99,   243,   130,   240,
1093 <      -1,   238,   243,   251,   240,    -1,   238,   243,   211,   240,
1094 <      -1,    -1,   165,   296,   243,   297,   240,    -1,   297,   244,
1095 <     298,    -1,   298,    -1,   226,    -1,   114,    -1,    50,    -1,
1096 <     191,    -1,    73,    -1,    71,    -1,   190,    -1,    -1,   114,
1097 <     300,   242,   301,   241,   240,    -1,   301,   302,    -1,   302,
1098 <      -1,   303,    -1,   304,    -1,   305,    -1,   309,    -1,   308,
1099 <      -1,   306,    -1,   307,    -1,   313,    -1,     1,   240,    -1,
1100 <      99,   243,   130,   240,    -1,   226,   243,   130,   240,    -1,
1101 <     124,   243,   130,   240,    -1,    42,   243,   175,   240,    -1,
1102 <     143,   243,   130,   240,    -1,    23,   243,   130,   240,    -1,
1103 <      -1,   208,   310,   243,   311,   240,    -1,   311,   244,   312,
1104 <      -1,   312,    -1,   182,    -1,   185,    -1,   186,    -1,   189,
1105 <      -1,   190,    -1,   194,    -1,    60,    -1,   205,    -1,   200,
1106 <      -1,   202,    -1,   209,    -1,   206,    -1,   193,    -1,   201,
1107 <      -1,   204,    -1,   195,    -1,   215,    -1,   183,    -1,   184,
1108 <      -1,   198,    -1,    -1,    46,   314,   243,   315,   240,    -1,
1109 <     315,   244,   316,    -1,   316,    -1,    56,    -1,   138,    -1,
1110 <      73,    -1,   225,    -1,   191,    -1,   210,    -1,   235,    -1,
1111 <      50,    -1,    31,    -1,   216,    -1,   136,    -1,     5,    -1,
1112 <     104,    -1,   201,    -1,   214,    -1,   118,    -1,   139,    -1,
1113 <      97,    -1,    -1,    23,   318,   242,   319,   241,   240,    -1,
1114 <     319,   320,    -1,   320,    -1,   321,    -1,   331,    -1,   332,
1115 <      -1,   322,    -1,   323,    -1,   333,    -1,   324,    -1,   325,
1116 <      -1,   326,    -1,   327,    -1,   328,    -1,   329,    -1,   330,
1117 <      -1,     1,   240,    -1,    99,   243,   130,   240,    -1,   127,
1118 <     243,   249,   240,    -1,   128,   243,   249,   240,    -1,   112,
1119 <     243,   109,   240,    -1,    25,   243,   249,   240,    -1,    91,
1120 <     243,   109,   240,    -1,    86,   243,   109,   240,    -1,    88,
1121 <     243,   109,   240,    -1,    87,   243,   109,   240,    -1,   157,
1122 <     243,   251,   240,    -1,    21,   243,   109,   240,    -1,    22,
1123 <     243,   109,   240,    -1,   111,   243,   109,   240,    -1,    -1,
1124 <      81,   335,   242,   340,   241,   240,    -1,    -1,    46,   337,
1125 <     243,   338,   240,    -1,   338,   244,   339,    -1,   339,    -1,
1126 <     207,    -1,    60,    -1,   203,    -1,   340,   341,    -1,   341,
1127 <      -1,   342,    -1,   336,    -1,   346,    -1,   347,    -1,     1,
1128 <     240,    -1,    -1,   129,   243,   344,   343,   240,    -1,   344,
1129 <     244,   345,    -1,   345,    -1,   109,    -1,   109,   180,   109,
1130 <      -1,    70,   243,   130,   240,    -1,    65,   243,   130,   240,
1131 <      -1,    -1,    57,   349,   242,   350,   241,   240,    -1,   350,
1132 <     351,    -1,   351,    -1,   352,    -1,   353,    -1,   354,    -1,
1133 <     356,    -1,   360,    -1,   361,    -1,   362,    -1,   355,    -1,
1134 <       1,   240,    -1,   226,   243,   130,   240,    -1,   124,   243,
1135 <     130,   240,    -1,    23,   243,   130,   240,    -1,    42,   243,
1136 <     175,   240,    -1,    -1,    46,   357,   243,   358,   240,    -1,
1137 <     358,   244,   359,    -1,   359,    -1,   169,    -1,    43,    -1,
1138 <      74,    -1,    58,    -1,    19,    -1,   108,    -1,    52,    -1,
1139 <     151,    -1,   100,    -1,   168,   243,   130,   240,    -1,   134,
1140 <     243,   130,   240,    -1,   133,   243,   109,   240,    -1,    -1,
1141 <     150,   364,   242,   365,   241,   240,    -1,   365,   366,    -1,
1142 <     366,    -1,   367,    -1,   368,    -1,   369,    -1,     1,   240,
1143 <      -1,   132,   243,   130,   240,    -1,    20,   243,   130,   240,
1144 <      -1,   103,   243,   130,   240,    -1,   217,   242,   371,   241,
1145 <     240,    -1,   371,   372,    -1,   372,    -1,   373,    -1,     1,
1146 <      -1,    99,   243,   130,   240,    -1,    -1,   163,   375,   242,
1147 <     376,   241,   240,    -1,   376,   377,    -1,   377,    -1,   378,
1148 <      -1,   379,    -1,   380,    -1,     1,   240,    -1,    99,   243,
1149 <     130,   240,    -1,   226,   243,   130,   240,    -1,    -1,   165,
1150 <     381,   243,   382,   240,    -1,   382,   244,   383,    -1,   383,
1151 <      -1,    73,    -1,   225,    -1,   191,    -1,   210,    -1,   235,
1152 <      -1,   213,    -1,   150,    -1,   212,    -1,   198,    -1,   181,
1153 <      -1,    -1,   164,   385,   242,   386,   241,   240,    -1,   386,
1154 <     387,    -1,   387,    -1,   388,    -1,   389,    -1,     1,   240,
1155 <      -1,    99,   243,   130,   240,    -1,    -1,   165,   390,   243,
1156 <     391,   240,    -1,   391,   244,   392,    -1,   392,    -1,    73,
1157 <      -1,   225,    -1,   191,    -1,   210,    -1,   235,    -1,   213,
1158 <      -1,   150,    -1,   212,    -1,   198,    -1,   181,    -1,    -1,
1159 <      24,   394,   242,   395,   241,   240,    -1,   395,   396,    -1,
1160 <     396,    -1,   397,    -1,   398,    -1,   399,    -1,   400,    -1,
1161 <     401,    -1,   403,    -1,   402,    -1,   412,    -1,   404,    -1,
1162 <     409,    -1,   410,    -1,   411,    -1,   408,    -1,     1,   240,
1163 <      -1,    99,   243,   130,   240,    -1,    65,   243,   130,   240,
1164 <      -1,   233,   243,   130,   240,    -1,   158,   243,   130,   240,
1165 <      -1,     3,   243,   130,   240,    -1,   129,   243,   109,   240,
1166 <      -1,     6,   243,   196,   240,    -1,     6,   243,   197,   240,
1167 <      -1,    -1,    46,   405,   243,   406,   240,    -1,   406,   244,
1168 <     407,    -1,   407,    -1,    10,    -1,    12,    -1,   220,    -1,
1169 <     207,    -1,    42,   243,   175,   240,    -1,    67,   243,   130,
1170 <     240,    -1,    79,   243,   130,   240,    -1,    23,   243,   130,
1171 <     240,    -1,   187,   243,   130,   240,    -1,    -1,    71,   414,
1172 <     242,   419,   241,   240,    -1,    -1,   165,   416,   243,   417,
1173 <     240,    -1,   417,   244,   418,    -1,   418,    -1,   135,    -1,
1174 <     419,   420,    -1,   420,    -1,   421,    -1,   422,    -1,   415,
1175 <      -1,     1,    -1,   226,   243,   130,   240,    -1,   132,   243,
1176 <     130,   240,    -1,    -1,    29,   424,   242,   425,   241,   240,
1177 <      -1,   425,   426,    -1,   426,    -1,   427,    -1,   428,    -1,
1178 <       1,    -1,    70,   243,   130,   240,    -1,   132,   243,   130,
1179 <     240,    -1,    44,   242,   430,   241,   240,    -1,   430,   431,
1180 <      -1,   431,    -1,   432,    -1,     1,    -1,    70,   243,   130,
1181 <     240,    -1,    -1,    48,   434,   242,   439,   241,   240,    -1,
1182 <      -1,   165,   436,   243,   437,   240,    -1,   437,   244,   438,
1183 <      -1,   438,    -1,   135,    -1,   439,   440,    -1,   440,    -1,
1184 <     441,    -1,   442,    -1,   435,    -1,     1,    -1,    99,   243,
1185 <     130,   240,    -1,   132,   243,   130,   240,    -1,    49,   242,
1186 <     444,   241,   240,    -1,   444,   445,    -1,   445,    -1,   453,
1187 <      -1,   454,    -1,   456,    -1,   457,    -1,   458,    -1,   459,
1188 <      -1,   460,    -1,   461,    -1,   462,    -1,   463,    -1,   452,
1189 <      -1,   465,    -1,   466,    -1,   467,    -1,   468,    -1,   483,
1190 <      -1,   470,    -1,   472,    -1,   474,    -1,   473,    -1,   477,
1191 <      -1,   471,    -1,   478,    -1,   479,    -1,   480,    -1,   481,
1192 <      -1,   482,    -1,   495,    -1,   484,    -1,   485,    -1,   486,
1193 <      -1,   491,    -1,   475,    -1,   476,    -1,   501,    -1,   499,
1194 <      -1,   500,    -1,   455,    -1,   502,    -1,   490,    -1,   464,
1195 <      -1,   488,    -1,   489,    -1,   451,    -1,   447,    -1,   448,
1196 <      -1,   449,    -1,   450,    -1,   469,    -1,   446,    -1,   487,
1197 <      -1,     1,    -1,    93,   243,   109,   240,    -1,    54,   243,
1198 <     109,   240,    -1,    55,   243,   109,   240,    -1,   232,   243,
1199 <     175,   240,    -1,   137,   243,   249,   240,    -1,   162,   243,
1200 <     175,   240,    -1,    72,   243,   249,   240,    -1,    64,   243,
1201 <     175,   240,    -1,    68,   243,   175,   240,    -1,    36,   243,
1202 <     175,   240,    -1,    45,   243,   175,   240,    -1,     8,   243,
1203 <     175,   240,    -1,    90,   243,   249,   240,    -1,    89,   243,
1204 <     109,   240,    -1,    83,   243,   109,   240,    -1,     9,   243,
1205 <     249,   240,    -1,   179,   243,   249,   240,    -1,   178,   243,
1206 <     249,   240,    -1,    59,   243,   109,   240,    -1,    76,   243,
1207 <     175,   240,    -1,    75,   243,   130,   240,    -1,    69,   243,
1208 <     175,   240,    -1,   237,   243,   175,   240,    -1,   170,   243,
1209 <     175,   240,    -1,   173,   243,   175,   240,    -1,   174,   243,
1210 <     175,   240,    -1,   172,   243,   175,   240,    -1,   172,   243,
1211 <     176,   240,    -1,   171,   243,   175,   240,    -1,   171,   243,
1212 <     176,   240,    -1,   122,   243,   249,   240,    -1,    18,   243,
1213 <     249,   240,    -1,   115,   243,   175,   240,    -1,   123,   243,
1214 <     249,   240,    -1,   166,   243,   175,   240,    -1,   107,   243,
1215 <     175,   240,    -1,   221,   243,   175,   240,    -1,   117,   243,
1216 <     175,   240,    -1,    94,   243,   130,   240,    -1,    37,   243,
1217 <     109,   240,    -1,    92,   243,   109,   240,    -1,   227,   243,
1218 <     175,   240,    -1,    39,   243,   130,   240,    -1,   218,   243,
1219 <     130,   240,    -1,   126,   243,   175,   240,    -1,    32,   243,
1220 <     175,   240,    -1,   219,   243,   249,   240,    -1,    -1,   119,
1221 <     492,   243,   493,   240,    -1,   493,   244,   494,    -1,   494,
1222 <      -1,   182,    -1,   185,    -1,   186,    -1,   189,    -1,   190,
1223 <      -1,   194,    -1,    60,    -1,   205,    -1,   200,    -1,   202,
1224 <      -1,   209,    -1,   206,    -1,   193,    -1,   201,    -1,   204,
1225 <      -1,   195,    -1,   215,    -1,   183,    -1,   184,    -1,   198,
1226 <      -1,    -1,   116,   496,   243,   497,   240,    -1,   497,   244,
1227 <     498,    -1,   498,    -1,   182,    -1,   185,    -1,   186,    -1,
1228 <     189,    -1,   190,    -1,   194,    -1,   205,    -1,    60,    -1,
1229 <     200,    -1,   202,    -1,   209,    -1,   206,    -1,   193,    -1,
1230 <     201,    -1,   204,    -1,   195,    -1,   215,    -1,   183,    -1,
1231 <     184,    -1,   198,    -1,    95,   243,   109,   240,    -1,    96,
1232 <     243,   109,   240,    -1,    26,   243,   109,   240,    -1,   188,
1233 <     243,   251,   240,    -1,    -1,    51,   504,   242,   505,   241,
1234 <     240,    -1,   505,   506,    -1,   506,    -1,   507,    -1,   508,
1235 <      -1,   509,    -1,   513,    -1,   514,    -1,   515,    -1,     1,
1236 <      -1,    41,   243,   175,   240,    -1,    38,   243,   249,   240,
1237 <      -1,    -1,    82,   510,   243,   511,   240,    -1,   511,   244,
1238 <     512,    -1,   512,    -1,   177,    -1,    11,    -1,   226,   243,
1239 <     130,   240,    -1,    99,   243,   130,   240,    -1,    -1,     4,
1240 <     516,   243,   517,   240,    -1,   517,   244,   518,    -1,   518,
1241 <      -1,   177,    -1,    11,    -1,    20,   242,   520,   241,   240,
1242 <      -1,   520,   521,    -1,   521,    -1,   524,    -1,   525,    -1,
1243 <     526,    -1,   527,    -1,   532,    -1,   528,    -1,   529,    -1,
1244 <     530,    -1,   531,    -1,   533,    -1,   534,    -1,   535,    -1,
1245 <     523,    -1,   536,    -1,   537,    -1,   538,    -1,   522,    -1,
1246 <       1,    -1,    33,   243,   175,   240,    -1,   140,   243,   175,
1247 <     240,    -1,    35,   243,   175,   240,    -1,   228,   243,   175,
1248 <     240,    -1,   229,   243,   175,   240,    -1,   230,   243,   175,
1249 <     240,    -1,    77,   243,   249,   240,    -1,    78,   243,   249,
1250 <     240,    -1,    85,   243,   109,   240,    -1,   131,   243,   175,
1251 <     240,    -1,    84,   243,   109,   240,    -1,    28,   243,   109,
1252 <     240,    -1,    27,   243,   109,   240,    -1,   105,   243,   175,
1253 <     240,    -1,   106,   243,   175,   240,    -1,   120,   243,   109,
1254 <     240,    -1,   121,   243,   249,   240,    -1,   159,   242,   540,
1255 <     241,   240,    -1,   540,   541,    -1,   541,    -1,   542,    -1,
1256 <     543,    -1,   545,    -1,   547,    -1,   546,    -1,   544,    -1,
1257 <     548,    -1,     1,    -1,    47,   243,   175,   240,    -1,    63,
1258 <     243,   175,   240,    -1,    61,   243,   130,   240,    -1,    80,
1259 <     243,   249,   240,    -1,    60,   243,   175,   240,    -1,    34,
1260 <     243,   175,   240,    -1,    62,   243,   175,   240,    -1
1261 < };
1262 <
1263 < /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1023 >  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1024   static const yytype_uint16 yyrline[] =
1025   {
1026 <       0,   353,   353,   354,   357,   358,   359,   360,   361,   362,
1027 <     363,   364,   365,   366,   367,   368,   369,   370,   371,   372,
1028 <     373,   374,   375,   376,   377,   378,   379,   383,   383,   384,
1029 <     388,   392,   396,   400,   404,   410,   410,   411,   412,   413,
1030 <     414,   421,   424,   424,   425,   425,   425,   427,   433,   440,
1031 <     442,   442,   443,   443,   444,   444,   445,   445,   446,   446,
1032 <     447,   447,   448,   448,   449,   449,   450,   451,   454,   455,
1033 <     457,   457,   458,   464,   472,   472,   473,   479,   487,   526,
1034 <     585,   613,   621,   636,   651,   660,   674,   683,   711,   741,
1035 <     764,   773,   775,   775,   776,   776,   777,   777,   779,   788,
1036 <     797,   809,   810,   810,   812,   812,   813,   815,   822,   822,
1037 <     832,   833,   835,   835,   836,   836,   838,   843,   846,   852,
1038 <     851,   857,   857,   858,   862,   866,   870,   874,   878,   882,
1039 <     893,   892,   990,   990,   991,   991,   991,   992,   992,   992,
1040 <     993,   993,   993,   995,  1004,  1041,  1053,  1064,  1106,  1116,
1041 <    1115,  1121,  1121,  1122,  1126,  1130,  1134,  1138,  1142,  1146,
1042 <    1150,  1154,  1158,  1162,  1166,  1170,  1174,  1178,  1182,  1186,
1043 <    1190,  1194,  1198,  1205,  1204,  1210,  1210,  1211,  1215,  1219,
1044 <    1223,  1227,  1231,  1235,  1239,  1243,  1247,  1251,  1255,  1259,
1045 <    1263,  1267,  1271,  1275,  1279,  1290,  1289,  1339,  1339,  1340,
1046 <    1341,  1341,  1342,  1343,  1344,  1345,  1346,  1347,  1348,  1349,
1047 <    1350,  1351,  1352,  1354,  1363,  1369,  1375,  1381,  1387,  1393,
1048 <    1399,  1405,  1411,  1417,  1423,  1429,  1439,  1438,  1455,  1454,
1049 <    1459,  1459,  1460,  1464,  1468,  1476,  1476,  1477,  1477,  1477,
1050 <    1477,  1477,  1479,  1479,  1481,  1481,  1483,  1497,  1517,  1526,
1051 <    1539,  1538,  1607,  1607,  1608,  1608,  1608,  1608,  1609,  1609,
1052 <    1609,  1610,  1610,  1612,  1647,  1660,  1669,  1681,  1680,  1684,
1053 <    1684,  1685,  1689,  1693,  1697,  1701,  1705,  1709,  1713,  1717,
1054 <    1724,  1743,  1753,  1767,  1766,  1782,  1782,  1783,  1783,  1783,
1055 <    1783,  1785,  1794,  1809,  1822,  1824,  1824,  1825,  1825,  1827,
1056 <    1843,  1842,  1858,  1858,  1859,  1859,  1859,  1859,  1861,  1870,
1057 <    1893,  1892,  1898,  1898,  1899,  1903,  1907,  1911,  1915,  1919,
1058 <    1923,  1927,  1931,  1935,  1945,  1944,  1961,  1961,  1962,  1962,
1059 <    1962,  1964,  1971,  1970,  1976,  1976,  1977,  1981,  1985,  1989,
1060 <    1993,  1997,  2001,  2005,  2009,  2013,  2023,  2022,  2073,  2073,
1061 <    2074,  2074,  2074,  2075,  2075,  2076,  2076,  2076,  2077,  2077,
1062 <    2077,  2078,  2078,  2079,  2081,  2090,  2099,  2125,  2143,  2161,
1063 <    2167,  2171,  2180,  2179,  2183,  2183,  2184,  2188,  2192,  2196,
1064 <    2202,  2213,  2224,  2235,  2244,  2263,  2262,  2328,  2327,  2331,
1065 <    2331,  2332,  2338,  2338,  2339,  2339,  2339,  2339,  2341,  2360,
1066 <    2370,  2369,  2394,  2394,  2395,  2395,  2395,  2397,  2403,  2412,
1067 <    2414,  2414,  2415,  2415,  2417,  2436,  2435,  2483,  2482,  2486,
1068 <    2486,  2487,  2493,  2493,  2494,  2494,  2494,  2494,  2496,  2502,
1069 <    2511,  2514,  2514,  2515,  2515,  2516,  2516,  2517,  2517,  2518,
1070 <    2518,  2519,  2519,  2520,  2520,  2521,  2521,  2522,  2522,  2523,
1071 <    2523,  2524,  2524,  2525,  2525,  2526,  2526,  2527,  2527,  2528,
1072 <    2529,  2529,  2530,  2530,  2531,  2531,  2532,  2532,  2533,  2533,
1073 <    2534,  2535,  2536,  2536,  2537,  2538,  2539,  2539,  2540,  2540,
1074 <    2541,  2541,  2542,  2542,  2543,  2546,  2551,  2556,  2561,  2566,
1075 <    2571,  2576,  2581,  2586,  2591,  2596,  2601,  2606,  2611,  2616,
1076 <    2621,  2626,  2631,  2637,  2648,  2653,  2662,  2667,  2672,  2677,
1077 <    2682,  2687,  2690,  2695,  2698,  2703,  2708,  2713,  2718,  2723,
1078 <    2728,  2733,  2738,  2743,  2754,  2759,  2764,  2769,  2778,  2787,
1079 <    2792,  2797,  2803,  2802,  2807,  2807,  2808,  2811,  2814,  2817,
1080 <    2820,  2823,  2826,  2829,  2832,  2835,  2838,  2841,  2844,  2847,
1081 <    2850,  2853,  2856,  2859,  2862,  2865,  2871,  2870,  2875,  2875,
1082 <    2876,  2879,  2882,  2885,  2888,  2891,  2894,  2897,  2900,  2903,
1083 <    2906,  2909,  2912,  2915,  2918,  2921,  2924,  2927,  2930,  2933,
1084 <    2938,  2943,  2948,  2953,  2963,  2962,  2986,  2986,  2987,  2988,
1085 <    2989,  2990,  2991,  2992,  2993,  2995,  3001,  3008,  3007,  3012,
1086 <    3012,  3013,  3017,  3023,  3057,  3067,  3066,  3116,  3116,  3117,
1087 <    3121,  3130,  3133,  3133,  3134,  3134,  3135,  3135,  3136,  3136,
1088 <    3137,  3137,  3138,  3138,  3139,  3140,  3140,  3141,  3142,  3142,
1089 <    3143,  3143,  3145,  3150,  3155,  3160,  3165,  3170,  3175,  3180,
1090 <    3185,  3190,  3195,  3200,  3205,  3210,  3215,  3220,  3225,  3233,
1091 <    3236,  3236,  3237,  3237,  3238,  3239,  3240,  3240,  3241,  3242,
1092 <    3244,  3250,  3256,  3265,  3279,  3285,  3291
1026 >       0,   382,   382,   383,   386,   387,   388,   389,   390,   391,
1027 >     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
1028 >     402,   403,   404,   405,   406,   407,   408,   412,   412,   413,
1029 >     414,   415,   416,   417,   418,   419,   420,   423,   423,   424,
1030 >     425,   426,   427,   434,   437,   437,   438,   438,   438,   440,
1031 >     446,   453,   455,   455,   456,   457,   458,   459,   460,   461,
1032 >     462,   463,   464,   465,   466,   467,   468,   469,   470,   471,
1033 >     472,   473,   474,   477,   478,   480,   480,   481,   487,   495,
1034 >     495,   496,   502,   510,   552,   610,   638,   646,   674,   689,
1035 >     704,   713,   727,   736,   764,   794,   819,   841,   863,   872,
1036 >     874,   874,   875,   876,   877,   878,   880,   889,   898,   911,
1037 >     910,   928,   928,   929,   929,   929,   931,   937,   946,   947,
1038 >     947,   949,   949,   950,   952,   959,   959,   972,   973,   975,
1039 >     975,   976,   976,   978,   986,   989,   995,   994,  1000,  1000,
1040 >    1001,  1005,  1009,  1013,  1017,  1021,  1025,  1029,  1033,  1044,
1041 >    1043,  1123,  1123,  1124,  1125,  1126,  1127,  1128,  1129,  1130,
1042 >    1131,  1132,  1133,  1134,  1136,  1142,  1148,  1154,  1165,  1171,
1043 >    1177,  1188,  1195,  1194,  1200,  1200,  1201,  1205,  1209,  1213,
1044 >    1217,  1221,  1225,  1229,  1233,  1237,  1241,  1245,  1249,  1253,
1045 >    1257,  1261,  1265,  1269,  1273,  1277,  1281,  1285,  1292,  1291,
1046 >    1297,  1297,  1298,  1302,  1306,  1310,  1314,  1318,  1322,  1326,
1047 >    1330,  1334,  1338,  1342,  1346,  1350,  1354,  1358,  1362,  1366,
1048 >    1370,  1374,  1378,  1382,  1386,  1397,  1396,  1458,  1458,  1459,
1049 >    1460,  1461,  1462,  1463,  1464,  1465,  1466,  1467,  1468,  1469,
1050 >    1470,  1471,  1471,  1472,  1473,  1474,  1475,  1477,  1483,  1489,
1051 >    1495,  1501,  1507,  1513,  1519,  1525,  1531,  1537,  1544,  1550,
1052 >    1556,  1562,  1571,  1581,  1580,  1586,  1586,  1587,  1591,  1602,
1053 >    1601,  1608,  1607,  1612,  1612,  1613,  1617,  1621,  1627,  1627,
1054 >    1628,  1628,  1628,  1628,  1628,  1630,  1630,  1632,  1632,  1634,
1055 >    1648,  1666,  1672,  1682,  1681,  1723,  1723,  1724,  1725,  1726,
1056 >    1727,  1728,  1729,  1730,  1731,  1732,  1734,  1740,  1746,  1752,
1057 >    1764,  1763,  1769,  1769,  1770,  1774,  1778,  1782,  1786,  1790,
1058 >    1794,  1798,  1802,  1806,  1812,  1826,  1835,  1849,  1848,  1863,
1059 >    1863,  1864,  1864,  1864,  1864,  1866,  1872,  1878,  1888,  1890,
1060 >    1890,  1891,  1891,  1893,  1909,  1908,  1933,  1933,  1934,  1934,
1061 >    1934,  1934,  1936,  1942,  1962,  1961,  1967,  1967,  1968,  1972,
1062 >    1976,  1980,  1984,  1988,  1992,  1996,  2000,  2004,  2014,  2013,
1063 >    2034,  2034,  2035,  2035,  2035,  2037,  2044,  2043,  2049,  2049,
1064 >    2050,  2054,  2058,  2062,  2066,  2070,  2074,  2078,  2082,  2086,
1065 >    2096,  2095,  2167,  2167,  2168,  2169,  2170,  2171,  2172,  2173,
1066 >    2174,  2175,  2176,  2177,  2178,  2179,  2180,  2181,  2182,  2184,
1067 >    2190,  2196,  2202,  2215,  2228,  2234,  2240,  2244,  2253,  2252,
1068 >    2257,  2257,  2258,  2262,  2268,  2279,  2285,  2291,  2297,  2313,
1069 >    2312,  2338,  2338,  2339,  2339,  2339,  2341,  2361,  2371,  2370,
1070 >    2397,  2397,  2398,  2398,  2398,  2400,  2406,  2415,  2417,  2417,
1071 >    2418,  2418,  2420,  2438,  2437,  2460,  2460,  2461,  2461,  2461,
1072 >    2463,  2469,  2478,  2481,  2481,  2482,  2483,  2484,  2485,  2486,
1073 >    2487,  2488,  2489,  2490,  2491,  2492,  2493,  2494,  2495,  2496,
1074 >    2497,  2498,  2499,  2500,  2501,  2502,  2503,  2504,  2505,  2506,
1075 >    2507,  2508,  2509,  2510,  2511,  2512,  2513,  2514,  2515,  2516,
1076 >    2517,  2518,  2519,  2520,  2521,  2522,  2523,  2524,  2525,  2526,
1077 >    2527,  2528,  2529,  2530,  2531,  2532,  2535,  2540,  2546,  2552,
1078 >    2558,  2564,  2569,  2574,  2579,  2584,  2589,  2594,  2599,  2604,
1079 >    2609,  2614,  2619,  2624,  2629,  2635,  2646,  2651,  2656,  2661,
1080 >    2666,  2671,  2676,  2679,  2684,  2687,  2692,  2697,  2702,  2707,
1081 >    2712,  2717,  2722,  2727,  2732,  2737,  2742,  2747,  2756,  2765,
1082 >    2770,  2775,  2780,  2786,  2785,  2790,  2790,  2791,  2794,  2797,
1083 >    2800,  2803,  2806,  2809,  2812,  2815,  2818,  2821,  2824,  2827,
1084 >    2830,  2833,  2836,  2839,  2842,  2845,  2848,  2851,  2854,  2860,
1085 >    2859,  2864,  2864,  2865,  2868,  2871,  2874,  2877,  2880,  2883,
1086 >    2886,  2889,  2892,  2895,  2898,  2901,  2904,  2907,  2910,  2913,
1087 >    2916,  2919,  2922,  2927,  2932,  2937,  2946,  2949,  2949,  2950,
1088 >    2951,  2952,  2953,  2954,  2955,  2956,  2957,  2958,  2959,  2960,
1089 >    2961,  2962,  2963,  2964,  2966,  2971,  2976,  2981,  2986,  2991,
1090 >    2996,  3001,  3006,  3011,  3016,  3021,  3026,  3031,  3039,  3042,
1091 >    3042,  3043,  3044,  3045,  3046,  3047,  3048,  3049,  3050,  3051,
1092 >    3053,  3059,  3065,  3071,  3077,  3086,  3100,  3106
1093   };
1094   #endif
1095  
1096 < #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1096 > #if YYDEBUG || YYERROR_VERBOSE || 0
1097   /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1098     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1099   static const char *const yytname[] =
1100   {
1101 <  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ACTION", "ADMIN",
1102 <  "AFTYPE", "T_ALLOW", "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME",
1103 <  "AUTOCONN", "T_BLOCK", "BURST_AWAY", "BYTES", "KBYTES", "MBYTES",
1344 <  "GBYTES", "TBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1101 >  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1102 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1103 >  "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1104    "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1105 <  "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1106 <  "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1107 <  "DISABLE_FAKE_CHANNELS", "DISABLE_HIDDEN", "DISABLE_LOCAL_CHANNELS",
1108 <  "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT", "DURATION", "EGDPOOL_PATH",
1109 <  "EMAIL", "ENABLE", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1110 <  "FAILED_OPER_NOTICE", "IRCD_FLAGS", "FLATTEN_LINKS", "GECOS", "GENERAL",
1111 <  "GLINE", "GLINES", "GLINE_EXEMPT", "GLINE_TIME", "GLINE_MIN_CIDR",
1112 <  "GLINE_MIN_CIDR6", "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT",
1113 <  "HAVENT_READ_CONF", "HIDDEN", "HIDDEN_NAME", "HIDE_SERVER_IPS",
1114 <  "HIDE_SERVERS", "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK",
1115 <  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "IP", "KILL",
1116 <  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KLINE_REASON",
1117 <  "KLINE_WITH_REASON", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1118 <  "LINKS_DELAY", "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS",
1119 <  "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1120 <  "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1121 <  "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1122 <  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1123 <  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1105 >  "CONNECTFREQ", "CYCLE_ON_HOST_CHANGE", "DEFAULT_FLOODCOUNT",
1106 >  "DEFAULT_SPLIT_SERVER_COUNT", "DEFAULT_SPLIT_USER_COUNT", "DENY",
1107 >  "DESCRIPTION", "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1108 >  "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT", "EGDPOOL_PATH", "EMAIL",
1109 >  "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT", "FAILED_OPER_NOTICE",
1110 >  "FLATTEN_LINKS", "GECOS", "GENERAL", "GLINE", "GLINE_DURATION",
1111 >  "GLINE_ENABLE", "GLINE_EXEMPT", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1112 >  "GLINE_REQUEST_DURATION", "GLOBAL_KILL", "HAVENT_READ_CONF", "HIDDEN",
1113 >  "HIDDEN_NAME", "HIDE_CHANS", "HIDE_IDLE", "HIDE_IDLE_FROM_OPERS",
1114 >  "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SERVICES", "HIDE_SPOOF_IPS",
1115 >  "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1116 >  "INVITE_CLIENT_COUNT", "INVITE_CLIENT_TIME", "IP", "IRCD_AUTH",
1117 >  "IRCD_FLAGS", "IRCD_SID", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "KILL",
1118 >  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KNOCK_CLIENT_COUNT",
1119 >  "KNOCK_CLIENT_TIME", "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY",
1120 >  "LISTEN", "MASK", "MAX_ACCEPT", "MAX_BANS", "MAX_CHANNELS", "MAX_GLOBAL",
1121 >  "MAX_IDENT", "MAX_IDLE", "MAX_LOCAL", "MAX_NICK_CHANGES",
1122 >  "MAX_NICK_LENGTH", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1123 >  "MAX_TOPIC_LENGTH", "MAX_WATCH", "MIN_IDLE", "MIN_NONWILDCARD",
1124 >  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "MOTD", "NAME",
1125 >  "NEED_IDENT", "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME", "NICK",
1126    "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1127 <  "NUMBER", "NUMBER_PER_IDENT", "NUMBER_PER_CIDR", "NUMBER_PER_IP",
1128 <  "NUMBER_PER_IP_GLOBAL", "OPERATOR", "OPERS_BYPASS_CALLERID",
1129 <  "OPER_ONLY_UMODES", "OPER_PASS_RESV", "OPER_SPY_T", "OPER_UMODES",
1130 <  "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "PACE_WAIT", "PACE_WAIT_SIMPLE",
1131 <  "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME", "PING_WARNING", "PORT",
1132 <  "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT", "REDIRSERV", "REGEX_T",
1133 <  "REHASH", "TREJECT_HOLD_TIME", "REMOTE", "REMOTEBAN",
1134 <  "RESTRICT_CHANNELS", "RESTRICTED", "RSA_PRIVATE_KEY_FILE",
1135 <  "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE",
1136 <  "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1",
1137 <  "RESV", "RESV_EXEMPT", "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS",
1138 <  "SENDQ", "SEND_PASSWORD", "SERVERHIDE", "SERVERINFO", "IRCD_SID",
1139 <  "TKLINE_EXPIRE_NOTICES", "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD",
1140 <  "SILENT", "SPOOF", "SPOOF_NOTICE", "STATS_E_DISABLED",
1141 <  "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY",
1142 <  "STATS_P_OPER_ONLY", "TBOOL", "TMASKED", "T_REJECT", "TS_MAX_DELTA",
1143 <  "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS", "T_SOFTCALLERID",
1144 <  "T_CALLERID", "T_CCONN", "T_CCONN_FULL", "T_SSL_CIPHER_LIST",
1145 <  "T_CLIENT_FLOOD", "T_DEAF", "T_DEBUG", "T_DLINE", "T_DRONE",
1146 <  "T_EXTERNAL", "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS",
1147 <  "T_MAX_CLIENTS", "T_NCHANGE", "T_OPERWALL", "T_REJ", "T_SERVER",
1148 <  "T_SERVNOTICE", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES", "T_UNAUTH",
1149 <  "T_UNDLINE", "T_UNLIMITED", "T_UNRESV", "T_UNXLINE", "T_GLOBOPS",
1150 <  "T_WALLOP", "T_RESTART", "T_SERVICE", "T_SERVICES_NAME", "THROTTLE_TIME",
1151 <  "TOPICBURST", "TRUE_NO_OPER_FLOOD", "TKLINE", "TXLINE", "TRESV",
1152 <  "UNKLINE", "USER", "USE_EGD", "USE_EXCEPT", "USE_INVEX", "USE_KNOCK",
1153 <  "USE_LOGGING", "USE_WHOIS_ACTUALLY", "VHOST", "VHOST6", "XLINE", "WARN",
1154 <  "WARN_NO_NLINE", "T_SIZE", "T_FILE", "';'", "'}'", "'{'", "'='", "','",
1155 <  "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1395 <  "sizespec", "modules_entry", "modules_items", "modules_item",
1396 <  "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1397 <  "serverinfo_item", "serverinfo_ssl_client_method",
1127 >  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPER_ONLY_UMODES",
1128 >  "OPER_PASS_RESV", "OPER_UMODES", "OPERATOR", "OPERS_BYPASS_CALLERID",
1129 >  "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1130 >  "PING_TIME", "PORT", "QSTRING", "RANDOM_IDLE", "REASON", "REDIRPORT",
1131 >  "REDIRSERV", "REHASH", "REMOTE", "REMOTEBAN", "RESV", "RESV_EXEMPT",
1132 >  "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE", "SECONDS", "MINUTES",
1133 >  "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ",
1134 >  "SERVERHIDE", "SERVERINFO", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1135 >  "SQUIT", "SSL_CERTIFICATE_FILE", "SSL_CERTIFICATE_FINGERPRINT",
1136 >  "SSL_CONNECTION_REQUIRED", "SSL_DH_ELLIPTIC_CURVE", "SSL_DH_PARAM_FILE",
1137 >  "STATS_E_DISABLED", "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY",
1138 >  "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "STATS_U_OPER_ONLY", "T_ALL",
1139 >  "T_BOTS", "T_CALLERID", "T_CCONN", "T_CLUSTER", "T_DEAF", "T_DEBUG",
1140 >  "T_DLINE", "T_EXTERNAL", "T_FARCONNECT", "T_FILE", "T_FULL", "T_GLOBOPS",
1141 >  "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_LOG", "T_MAX_CLIENTS",
1142 >  "T_NCHANGE", "T_NONONREG", "T_RECVQ", "T_REJ", "T_RESTART", "T_SERVER",
1143 >  "T_SERVICE", "T_SERVICES_NAME", "T_SERVNOTICE", "T_SET", "T_SHARED",
1144 >  "T_SIZE", "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL",
1145 >  "T_SSL_CIPHER_LIST", "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD",
1146 >  "T_SSLV3", "T_TLSV1", "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED",
1147 >  "T_UNRESV", "T_UNXLINE", "T_WALLOP", "T_WALLOPS", "T_WEBIRC", "TBOOL",
1148 >  "THROTTLE_COUNT", "THROTTLE_TIME", "TKLINE_EXPIRE_NOTICES", "TMASKED",
1149 >  "TRUE_NO_OPER_FLOOD", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "TYPE",
1150 >  "UNKLINE", "USE_EGD", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1151 >  "WARN_NO_CONNECT_BLOCK", "XLINE", "';'", "'}'", "'{'", "'='", "','",
1152 >  "':'", "$accept", "conf", "conf_item", "timespec_", "timespec",
1153 >  "sizespec_", "sizespec", "modules_entry", "modules_items",
1154 >  "modules_item", "modules_module", "modules_path", "serverinfo_entry",
1155 >  "serverinfo_items", "serverinfo_item", "serverinfo_ssl_client_method",
1156    "serverinfo_ssl_server_method", "client_method_types",
1157    "client_method_type_item", "server_method_types",
1158    "server_method_type_item", "serverinfo_ssl_certificate_file",
1159    "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1160 <  "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1161 <  "serverinfo_description", "serverinfo_network_name",
1162 <  "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1163 <  "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1164 <  "admin_item", "admin_name", "admin_email", "admin_description",
1165 <  "logging_entry", "logging_items", "logging_item", "logging_use_logging",
1166 <  "logging_file_entry", "$@1", "logging_file_items", "logging_file_item",
1167 <  "logging_file_name", "logging_file_size", "logging_file_type", "$@2",
1168 <  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@3",
1160 >  "serverinfo_ssl_cipher_list", "serverinfo_ssl_dh_elliptic_curve",
1161 >  "serverinfo_name", "serverinfo_sid", "serverinfo_description",
1162 >  "serverinfo_network_name", "serverinfo_network_desc", "serverinfo_vhost",
1163 >  "serverinfo_vhost6", "serverinfo_max_clients",
1164 >  "serverinfo_max_nick_length", "serverinfo_max_topic_length",
1165 >  "serverinfo_hub", "admin_entry", "admin_items", "admin_item",
1166 >  "admin_name", "admin_email", "admin_description", "motd_entry", "$@1",
1167 >  "motd_items", "motd_item", "motd_mask", "motd_file", "logging_entry",
1168 >  "logging_items", "logging_item", "logging_use_logging",
1169 >  "logging_file_entry", "$@2", "logging_file_items", "logging_file_item",
1170 >  "logging_file_name", "logging_file_size", "logging_file_type", "$@3",
1171 >  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@4",
1172    "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1173 <  "oper_encrypted", "oper_rsa_public_key_file", "oper_class",
1174 <  "oper_umodes", "$@4", "oper_umodes_items", "oper_umodes_item",
1175 <  "oper_flags", "$@5", "oper_flags_items", "oper_flags_item",
1176 <  "class_entry", "$@6", "class_items", "class_item", "class_name",
1177 <  "class_ping_time", "class_ping_warning", "class_number_per_ip",
1178 <  "class_connectfreq", "class_max_number", "class_max_global",
1179 <  "class_max_local", "class_max_ident", "class_sendq",
1180 <  "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1181 <  "class_number_per_cidr", "listen_entry", "$@7", "listen_flags", "$@8",
1182 <  "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1183 <  "listen_port", "$@9", "port_items", "port_item", "listen_address",
1184 <  "listen_host", "auth_entry", "$@10", "auth_items", "auth_item",
1185 <  "auth_user", "auth_passwd", "auth_class", "auth_encrypted", "auth_flags",
1186 <  "$@11", "auth_flags_items", "auth_flags_item", "auth_spoof",
1187 <  "auth_redir_serv", "auth_redir_port", "resv_entry", "$@12", "resv_items",
1188 <  "resv_item", "resv_creason", "resv_channel", "resv_nick",
1189 <  "service_entry", "service_items", "service_item", "service_name",
1190 <  "shared_entry", "$@13", "shared_items", "shared_item", "shared_name",
1191 <  "shared_user", "shared_type", "$@14", "shared_types", "shared_type_item",
1192 <  "cluster_entry", "$@15", "cluster_items", "cluster_item", "cluster_name",
1193 <  "cluster_type", "$@16", "cluster_types", "cluster_type_item",
1194 <  "connect_entry", "$@17", "connect_items", "connect_item", "connect_name",
1173 >  "oper_encrypted", "oper_rsa_public_key_file",
1174 >  "oper_ssl_certificate_fingerprint", "oper_ssl_connection_required",
1175 >  "oper_class", "oper_umodes", "$@5", "oper_umodes_items",
1176 >  "oper_umodes_item", "oper_flags", "$@6", "oper_flags_items",
1177 >  "oper_flags_item", "class_entry", "$@7", "class_items", "class_item",
1178 >  "class_name", "class_ping_time", "class_number_per_ip",
1179 >  "class_connectfreq", "class_max_channels", "class_max_number",
1180 >  "class_max_global", "class_max_local", "class_max_ident", "class_sendq",
1181 >  "class_recvq", "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1182 >  "class_number_per_cidr", "class_min_idle", "class_max_idle",
1183 >  "class_flags", "$@8", "class_flags_items", "class_flags_item",
1184 >  "listen_entry", "$@9", "listen_flags", "$@10", "listen_flags_items",
1185 >  "listen_flags_item", "listen_items", "listen_item", "listen_port",
1186 >  "$@11", "port_items", "port_item", "listen_address", "listen_host",
1187 >  "auth_entry", "$@12", "auth_items", "auth_item", "auth_user",
1188 >  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@13",
1189 >  "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1190 >  "auth_redir_port", "resv_entry", "$@14", "resv_items", "resv_item",
1191 >  "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1192 >  "service_items", "service_item", "service_name", "shared_entry", "$@15",
1193 >  "shared_items", "shared_item", "shared_name", "shared_user",
1194 >  "shared_type", "$@16", "shared_types", "shared_type_item",
1195 >  "cluster_entry", "$@17", "cluster_items", "cluster_item", "cluster_name",
1196 >  "cluster_type", "$@18", "cluster_types", "cluster_type_item",
1197 >  "connect_entry", "$@19", "connect_items", "connect_item", "connect_name",
1198    "connect_host", "connect_vhost", "connect_send_password",
1199 <  "connect_accept_password", "connect_port", "connect_aftype",
1200 <  "connect_flags", "$@18", "connect_flags_items", "connect_flags_item",
1201 <  "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1202 <  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@19",
1203 <  "kill_type", "$@20", "kill_type_items", "kill_type_item", "kill_items",
1204 <  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@21",
1199 >  "connect_accept_password", "connect_ssl_certificate_fingerprint",
1200 >  "connect_port", "connect_aftype", "connect_flags", "$@20",
1201 >  "connect_flags_items", "connect_flags_item", "connect_encrypted",
1202 >  "connect_hub_mask", "connect_leaf_mask", "connect_class",
1203 >  "connect_ssl_cipher_list", "kill_entry", "$@21", "kill_items",
1204 >  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@22",
1205    "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1206 <  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@22",
1443 <  "gecos_flags", "$@23", "gecos_flags_items", "gecos_flags_item",
1206 >  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@23",
1207    "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1208    "general_entry", "general_items", "general_item", "general_max_watch",
1209 +  "general_cycle_on_host_change", "general_gline_enable",
1210 +  "general_gline_duration", "general_gline_request_duration",
1211    "general_gline_min_cidr", "general_gline_min_cidr6",
1447  "general_use_whois_actually", "general_reject_hold_time",
1212    "general_tkline_expire_notices", "general_kill_chase_time_limit",
1213    "general_hide_spoof_ips", "general_ignore_bogus_ts",
1214 <  "general_disable_remote_commands", "general_failed_oper_notice",
1215 <  "general_anti_nick_flood", "general_max_nick_time",
1216 <  "general_max_nick_changes", "general_max_accept",
1217 <  "general_anti_spam_exit_message_time", "general_ts_warn_delta",
1218 <  "general_ts_max_delta", "general_havent_read_conf",
1219 <  "general_kline_with_reason", "general_kline_reason",
1220 <  "general_invisible_on_connect", "general_warn_no_nline",
1221 <  "general_stats_e_disabled", "general_stats_o_oper_only",
1458 <  "general_stats_P_oper_only", "general_stats_k_oper_only",
1214 >  "general_failed_oper_notice", "general_anti_nick_flood",
1215 >  "general_max_nick_time", "general_max_nick_changes",
1216 >  "general_max_accept", "general_anti_spam_exit_message_time",
1217 >  "general_ts_warn_delta", "general_ts_max_delta",
1218 >  "general_havent_read_conf", "general_invisible_on_connect",
1219 >  "general_warn_no_connect_block", "general_stats_e_disabled",
1220 >  "general_stats_o_oper_only", "general_stats_P_oper_only",
1221 >  "general_stats_u_oper_only", "general_stats_k_oper_only",
1222    "general_stats_i_oper_only", "general_pace_wait",
1223    "general_caller_id_wait", "general_opers_bypass_callerid",
1224    "general_pace_wait_simple", "general_short_motd",
1225    "general_no_oper_flood", "general_true_no_oper_flood",
1226 <  "general_oper_pass_resv", "general_message_locale",
1227 <  "general_dots_in_ident", "general_max_targets", "general_use_egd",
1228 <  "general_egdpool_path", "general_services_name", "general_ping_cookie",
1229 <  "general_disable_auth", "general_throttle_time", "general_oper_umodes",
1230 <  "$@24", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1231 <  "$@25", "umode_items", "umode_item", "general_min_nonwildcard",
1226 >  "general_oper_pass_resv", "general_dots_in_ident", "general_max_targets",
1227 >  "general_use_egd", "general_egdpool_path", "general_services_name",
1228 >  "general_ping_cookie", "general_disable_auth", "general_throttle_count",
1229 >  "general_throttle_time", "general_oper_umodes", "$@24", "umode_oitems",
1230 >  "umode_oitem", "general_oper_only_umodes", "$@25", "umode_items",
1231 >  "umode_item", "general_min_nonwildcard",
1232    "general_min_nonwildcard_simple", "general_default_floodcount",
1470  "general_client_flood", "gline_entry", "$@26", "gline_items",
1471  "gline_item", "gline_enable", "gline_duration", "gline_logging", "$@27",
1472  "gline_logging_types", "gline_logging_type_item", "gline_user",
1473  "gline_server", "gline_action", "$@28", "gdeny_types", "gdeny_type_item",
1233    "channel_entry", "channel_items", "channel_item",
1234 <  "channel_disable_fake_channels", "channel_restrict_channels",
1235 <  "channel_disable_local_channels", "channel_use_except",
1236 <  "channel_use_invex", "channel_use_knock", "channel_knock_delay",
1237 <  "channel_knock_delay_channel", "channel_max_chans_per_user",
1479 <  "channel_quiet_on_ban", "channel_max_bans",
1234 >  "channel_disable_fake_channels", "channel_invite_client_count",
1235 >  "channel_invite_client_time", "channel_knock_client_count",
1236 >  "channel_knock_client_time", "channel_knock_delay_channel",
1237 >  "channel_max_channels", "channel_max_bans",
1238    "channel_default_split_user_count", "channel_default_split_server_count",
1239    "channel_no_create_on_split", "channel_no_join_on_split",
1240    "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1241    "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1242 <  "serverhide_hide_servers", "serverhide_hidden_name",
1242 >  "serverhide_disable_remote_commands", "serverhide_hide_servers",
1243 >  "serverhide_hide_services", "serverhide_hidden_name",
1244    "serverhide_links_delay", "serverhide_hidden",
1245 <  "serverhide_disable_hidden", "serverhide_hide_server_ips", 0
1245 >  "serverhide_hide_server_ips", YY_NULLPTR
1246   };
1247   #endif
1248  
1249   # ifdef YYPRINT
1250 < /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1251 <   token YYLEX-NUM.  */
1250 > /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1251 >   (internal) symbol number NUM (which must be that of a token).  */
1252   static const yytype_uint16 yytoknum[] =
1253   {
1254         0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
# Line 1515 | Line 1274 | static const yytype_uint16 yytoknum[] =
1274       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1275       465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1276       475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1277 <     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1519 <      59,   125,   123,    61,    44
1277 >     485,   486,    59,   125,   123,    61,    44,    58
1278   };
1279   # endif
1280  
1281 < /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1524 < static const yytype_uint16 yyr1[] =
1525 < {
1526 <       0,   245,   246,   246,   247,   247,   247,   247,   247,   247,
1527 <     247,   247,   247,   247,   247,   247,   247,   247,   247,   247,
1528 <     247,   247,   247,   247,   247,   247,   247,   248,   248,   249,
1529 <     249,   249,   249,   249,   249,   250,   250,   251,   251,   251,
1530 <     251,   252,   253,   253,   254,   254,   254,   255,   256,   257,
1531 <     258,   258,   259,   259,   259,   259,   259,   259,   259,   259,
1532 <     259,   259,   259,   259,   259,   259,   259,   259,   260,   261,
1533 <     262,   262,   263,   263,   264,   264,   265,   265,   266,   267,
1534 <     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
1535 <     278,   279,   280,   280,   281,   281,   281,   281,   282,   283,
1536 <     284,   285,   286,   286,   287,   287,   287,   288,   290,   289,
1537 <     291,   291,   292,   292,   292,   292,   293,   294,   294,   296,
1538 <     295,   297,   297,   298,   298,   298,   298,   298,   298,   298,
1539 <     300,   299,   301,   301,   302,   302,   302,   302,   302,   302,
1540 <     302,   302,   302,   303,   304,   305,   306,   307,   308,   310,
1541 <     309,   311,   311,   312,   312,   312,   312,   312,   312,   312,
1542 <     312,   312,   312,   312,   312,   312,   312,   312,   312,   312,
1543 <     312,   312,   312,   314,   313,   315,   315,   316,   316,   316,
1544 <     316,   316,   316,   316,   316,   316,   316,   316,   316,   316,
1545 <     316,   316,   316,   316,   316,   318,   317,   319,   319,   320,
1546 <     320,   320,   320,   320,   320,   320,   320,   320,   320,   320,
1547 <     320,   320,   320,   321,   322,   323,   324,   325,   326,   327,
1548 <     328,   329,   330,   331,   332,   333,   335,   334,   337,   336,
1549 <     338,   338,   339,   339,   339,   340,   340,   341,   341,   341,
1550 <     341,   341,   343,   342,   344,   344,   345,   345,   346,   347,
1551 <     349,   348,   350,   350,   351,   351,   351,   351,   351,   351,
1552 <     351,   351,   351,   352,   353,   354,   355,   357,   356,   358,
1553 <     358,   359,   359,   359,   359,   359,   359,   359,   359,   359,
1554 <     360,   361,   362,   364,   363,   365,   365,   366,   366,   366,
1555 <     366,   367,   368,   369,   370,   371,   371,   372,   372,   373,
1556 <     375,   374,   376,   376,   377,   377,   377,   377,   378,   379,
1557 <     381,   380,   382,   382,   383,   383,   383,   383,   383,   383,
1558 <     383,   383,   383,   383,   385,   384,   386,   386,   387,   387,
1559 <     387,   388,   390,   389,   391,   391,   392,   392,   392,   392,
1560 <     392,   392,   392,   392,   392,   392,   394,   393,   395,   395,
1561 <     396,   396,   396,   396,   396,   396,   396,   396,   396,   396,
1562 <     396,   396,   396,   396,   397,   398,   399,   400,   401,   402,
1563 <     403,   403,   405,   404,   406,   406,   407,   407,   407,   407,
1564 <     408,   409,   410,   411,   412,   414,   413,   416,   415,   417,
1565 <     417,   418,   419,   419,   420,   420,   420,   420,   421,   422,
1566 <     424,   423,   425,   425,   426,   426,   426,   427,   428,   429,
1567 <     430,   430,   431,   431,   432,   434,   433,   436,   435,   437,
1568 <     437,   438,   439,   439,   440,   440,   440,   440,   441,   442,
1569 <     443,   444,   444,   445,   445,   445,   445,   445,   445,   445,
1570 <     445,   445,   445,   445,   445,   445,   445,   445,   445,   445,
1571 <     445,   445,   445,   445,   445,   445,   445,   445,   445,   445,
1572 <     445,   445,   445,   445,   445,   445,   445,   445,   445,   445,
1573 <     445,   445,   445,   445,   445,   445,   445,   445,   445,   445,
1574 <     445,   445,   445,   445,   445,   446,   447,   448,   449,   450,
1575 <     451,   452,   453,   454,   455,   456,   457,   458,   459,   460,
1576 <     461,   462,   463,   464,   465,   466,   467,   468,   469,   470,
1577 <     471,   472,   472,   473,   473,   474,   475,   476,   477,   478,
1578 <     479,   480,   481,   482,   483,   484,   485,   486,   487,   488,
1579 <     489,   490,   492,   491,   493,   493,   494,   494,   494,   494,
1580 <     494,   494,   494,   494,   494,   494,   494,   494,   494,   494,
1581 <     494,   494,   494,   494,   494,   494,   496,   495,   497,   497,
1582 <     498,   498,   498,   498,   498,   498,   498,   498,   498,   498,
1583 <     498,   498,   498,   498,   498,   498,   498,   498,   498,   498,
1584 <     499,   500,   501,   502,   504,   503,   505,   505,   506,   506,
1585 <     506,   506,   506,   506,   506,   507,   508,   510,   509,   511,
1586 <     511,   512,   512,   513,   514,   516,   515,   517,   517,   518,
1587 <     518,   519,   520,   520,   521,   521,   521,   521,   521,   521,
1588 <     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
1589 <     521,   521,   522,   523,   524,   525,   526,   527,   528,   529,
1590 <     530,   531,   532,   533,   534,   535,   536,   537,   538,   539,
1591 <     540,   540,   541,   541,   541,   541,   541,   541,   541,   541,
1592 <     542,   543,   544,   545,   546,   547,   548
1593 < };
1281 > #define YYPACT_NINF -880
1282  
1283 < /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1284 < static const yytype_uint8 yyr2[] =
1283 > #define yypact_value_is_default(Yystate) \
1284 >  (!!((Yystate) == (-880)))
1285 >
1286 > #define YYTABLE_NINF -126
1287 >
1288 > #define yytable_value_is_error(Yytable_value) \
1289 >  0
1290 >
1291 >  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1292 >     STATE-NUM.  */
1293 > static const yytype_int16 yypact[] =
1294   {
1295 <       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1296 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1297 <       1,     1,     1,     1,     1,     2,     2,     0,     1,     2,
1298 <       3,     3,     3,     3,     3,     0,     1,     2,     3,     3,
1299 <       3,     5,     2,     1,     1,     1,     2,     4,     4,     5,
1300 <       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1301 <       1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
1302 <       3,     1,     1,     1,     3,     1,     1,     1,     4,     4,
1303 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1304 <       4,     5,     2,     1,     1,     1,     1,     2,     4,     4,
1305 <       4,     5,     2,     1,     1,     1,     2,     4,     0,     6,
1306 <       2,     1,     1,     1,     1,     2,     4,     4,     4,     0,
1307 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1308 <       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
1309 <       1,     1,     2,     4,     4,     4,     4,     4,     4,     0,
1310 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1311 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1312 <       1,     1,     1,     0,     5,     3,     1,     1,     1,     1,
1313 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1314 <       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1315 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1316 <       1,     1,     2,     4,     4,     4,     4,     4,     4,     4,
1317 <       4,     4,     4,     4,     4,     4,     0,     6,     0,     5,
1318 <       3,     1,     1,     1,     1,     2,     1,     1,     1,     1,
1319 <       1,     2,     0,     5,     3,     1,     1,     3,     4,     4,
1320 <       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
1321 <       1,     1,     2,     4,     4,     4,     4,     0,     5,     3,
1322 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1323 <       4,     4,     4,     0,     6,     2,     1,     1,     1,     1,
1324 <       2,     4,     4,     4,     5,     2,     1,     1,     1,     4,
1325 <       0,     6,     2,     1,     1,     1,     1,     2,     4,     4,
1326 <       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
1327 <       1,     1,     1,     1,     0,     6,     2,     1,     1,     1,
1328 <       2,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1329 <       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
1330 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1331 <       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
1332 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1333 <       4,     4,     4,     4,     4,     0,     6,     0,     5,     3,
1334 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1335 <       0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
1336 <       2,     1,     1,     1,     4,     0,     6,     0,     5,     3,
1337 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1338 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1339 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1340 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1341 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1342 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1343 <       1,     1,     1,     1,     1,     4,     4,     4,     4,     4,
1344 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1345 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1346 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1347 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1348 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1349 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1350 <       1,     1,     1,     1,     1,     1,     0,     5,     3,     1,
1351 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1352 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1353 <       4,     4,     4,     4,     0,     6,     2,     1,     1,     1,
1354 <       1,     1,     1,     1,     1,     4,     4,     0,     5,     3,
1355 <       1,     1,     1,     4,     4,     0,     5,     3,     1,     1,
1356 <       1,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1357 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1358 <       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
1359 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     5,
1360 <       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1361 <       4,     4,     4,     4,     4,     4,     4
1295 >    -880,   707,  -880,  -177,  -165,  -159,  -880,  -880,  -880,  -150,
1296 >    -880,  -147,  -880,  -880,  -880,   -87,  -880,  -880,  -880,   -81,
1297 >     -74,  -880,   -62,   -55,  -880,  -880,  -880,  -880,  -880,  -880,
1298 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1299 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,    25,
1300 >     965,   -43,   -30,   -24,   125,   -15,   418,    -8,    51,    53,
1301 >      50,    72,    75,    77,   823,   464,    83,   118,    22,    89,
1302 >      -3,   -41,    68,    94,    12,  -880,  -880,  -880,  -880,  -880,
1303 >      96,   102,   106,   110,   112,   113,   114,   115,   117,   121,
1304 >     124,   126,   127,   134,     2,  -880,  -880,  -880,  -880,  -880,
1305 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1306 >     667,   612,    60,  -880,   135,    28,  -880,  -880,    26,  -880,
1307 >     137,   142,   143,   145,   146,   147,   149,   150,   151,   153,
1308 >     154,   156,   158,   159,   160,   163,   165,   166,   167,   168,
1309 >     169,   170,   172,   173,   175,   176,   178,  -880,   179,  -880,
1310 >     181,   187,   192,   193,   194,   196,   197,   198,   199,   201,
1311 >     202,   206,   209,   212,   215,   218,   220,   221,   222,   223,
1312 >      61,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1313 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1314 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1315 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1316 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1317 >    -880,  -880,   373,    11,   232,   119,   226,   234,    14,  -880,
1318 >    -880,  -880,     9,   450,   133,  -880,   235,   236,   237,   242,
1319 >     243,   246,   247,   249,     4,  -880,  -880,  -880,  -880,  -880,
1320 >    -880,  -880,  -880,  -880,   128,   250,   251,   252,   253,   256,
1321 >     257,   258,   259,   261,   263,   264,   266,   267,   270,   271,
1322 >     273,   275,   277,   138,  -880,  -880,  -880,  -880,  -880,  -880,
1323 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1324 >    -880,  -880,  -880,    30,   136,   279,    37,  -880,  -880,  -880,
1325 >     301,  -880,   283,    39,  -880,  -880,    46,  -880,   285,   290,
1326 >     392,   141,  -880,   408,   409,   308,   414,   415,   419,   415,
1327 >     424,   415,   415,   428,   429,   339,   341,   324,  -880,   325,
1328 >     326,   328,   329,  -880,   332,   336,   338,   340,   349,   350,
1329 >     351,   352,   354,   355,   356,   358,   359,   240,  -880,  -880,
1330 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1331 >    -880,  -880,  -880,  -880,  -880,  -880,   327,   360,   364,   367,
1332 >     368,   369,   372,  -880,   375,   376,   377,   379,   381,   384,
1333 >     385,   297,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1334 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,   390,   391,
1335 >      15,  -880,  -880,  -880,   433,   342,  -880,  -880,   393,   395,
1336 >      33,  -880,  -880,  -880,   362,   415,   415,   394,   515,   417,
1337 >     520,   509,   426,   415,   427,   530,   532,   415,   534,   435,
1338 >     436,   437,   415,   542,   544,   415,   546,   550,   551,   555,
1339 >     447,   434,   457,   438,   460,   415,   415,   461,   462,   466,
1340 >    -197,  -196,   467,   470,   473,   561,   577,   415,   477,   480,
1341 >     415,   415,   481,   482,   468,  -880,   471,   463,   469,  -880,
1342 >     474,   484,   485,   487,   488,   182,  -880,  -880,  -880,  -880,
1343 >    -880,  -880,  -880,  -880,  -880,  -880,   491,   492,    38,  -880,
1344 >    -880,  -880,   483,   493,   494,  -880,   495,  -880,    31,  -880,
1345 >    -880,  -880,  -880,  -880,   572,   578,   501,  -880,   504,   505,
1346 >     506,    18,  -880,  -880,  -880,   507,   508,   512,  -880,   513,
1347 >     522,   526,   529,   533,  -880,   535,   241,  -880,  -880,  -880,
1348 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,   518,   536,
1349 >     539,   540,    35,  -880,  -880,  -880,  -880,   498,   502,   503,
1350 >     617,   562,   563,   565,   415,   528,  -880,  -880,   638,   568,
1351 >     656,   672,   673,   663,   664,   674,   676,   677,   678,   679,
1352 >     688,   683,  -140,   116,   684,   686,   583,  -880,   584,   582,
1353 >    -880,    34,  -880,  -880,  -880,  -880,   605,   589,  -880,   592,
1354 >     700,   596,  -880,   597,   595,  -880,   598,    27,  -880,  -880,
1355 >    -880,  -880,   599,   600,   602,  -880,   603,   604,   606,   607,
1356 >     654,   609,   611,   613,   616,   618,   619,   625,   626,   627,
1357 >     630,  -880,  -880,   725,   751,   415,   614,   752,   753,   754,
1358 >     415,   755,   757,   415,   743,   759,   762,   415,   763,   763,
1359 >     648,  -880,  -880,   756,   155,   758,   668,   760,   761,   646,
1360 >     764,   765,   772,   766,   767,   768,   769,   658,  -880,   773,
1361 >     779,   666,  -880,   680,  -880,   782,   787,   685,  -880,   687,
1362 >     691,   693,   694,   695,   696,   698,   699,   704,   708,   714,
1363 >     718,   719,   721,   722,   727,   728,   729,   730,   732,   733,
1364 >     738,   742,   748,   774,   775,   776,   805,   777,   737,   778,
1365 >     780,   781,   783,   785,   786,   788,   789,   790,   791,   792,
1366 >     793,   794,   795,   798,   799,   800,   801,   804,   806,   807,
1367 >     811,  -880,  -880,   830,   702,   651,   857,   808,   858,   864,
1368 >     867,   812,  -880,   868,   869,   813,  -880,  -880,   871,   872,
1369 >     697,   888,   814,  -880,   815,   818,  -880,  -880,   877,   878,
1370 >     819,  -880,  -880,   887,   838,   784,   910,   926,   927,   928,
1371 >     842,   822,   931,   827,  -880,  -880,   933,   934,   935,   831,
1372 >    -880,   832,   833,   834,   835,   836,   837,   839,   840,  -880,
1373 >     843,   844,   845,   846,   847,   848,   849,   850,   851,   852,
1374 >     853,   854,   855,   856,  -880,  -880,  -190,  -880,  -880,  -880,
1375 >    -187,  -880,   859,   860,  -880,  -880,   943,   861,   862,  -880,
1376 >     863,  -880,    93,   865,  -880,  -880,   962,   866,   963,   870,
1377 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,   415,   415,
1378 >     415,   415,   415,   415,   415,  -880,  -880,  -880,  -880,  -880,
1379 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,   873,   874,   875,
1380 >     -33,   876,   879,   880,   881,   882,   883,   884,   885,   886,
1381 >     889,   890,   177,   891,   892,  -880,   893,   894,   895,   896,
1382 >     897,   898,   899,     1,   900,   901,   902,   903,   904,   905,
1383 >     906,  -880,   907,   908,  -880,  -880,   909,   911,  -880,  -880,
1384 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1385 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1386 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1387 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1388 >    -880,  -880,  -880,  -880,  -880,  -880,  -184,  -880,  -880,  -880,
1389 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1390 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1391 >    -880,   -67,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1392 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1393 >    -880,  -880,  -880,  -880,  -880,   912,   913,   549,   914,   915,
1394 >     916,   917,   918,  -880,   919,   920,  -880,   921,   922,   -38,
1395 >     936,   923,  -880,  -880,  -880,  -880,   924,   925,  -880,   929,
1396 >     930,   525,   932,   937,   938,   939,   940,   771,   941,  -880,
1397 >     942,   944,   945,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1398 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1399 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -140,  -880,   116,
1400 >    -880,  -880,   946,   211,  -880,  -880,   947,   948,   949,  -880,
1401 >      13,  -880,  -880,  -880,  -880,  -880,   950,   637,   953,  -880,
1402 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1403 >    -880,  -880,   -66,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1404 >    -880,  -880,  -880,  -880,  -880,   763,   763,   763,  -880,  -880,
1405 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1406 >    -880,   -40,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1407 >    -880,  -880,  -880,  -880,  -880,   805,  -880,   737,  -880,  -880,
1408 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1409 >     -34,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1410 >    -880,  -880,  -880,  -880,   -31,  -880,   981,   888,   954,  -880,
1411 >    -880,  -880,  -880,  -880,   662,  -880,  -880,   951,  -880,  -880,
1412 >    -880,  -880,   952,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1413 >    -880,  -880,  -880,   -29,  -880,  -880,  -880,  -880,  -880,  -880,
1414 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1415 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1416 >    -880,  -880,   -23,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1417 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1418 >    -880,    -5,  -880,  -880,   971,  -104,   955,   959,  -880,  -880,
1419 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1420 >      47,  -880,  -880,  -880,   -33,  -880,  -880,  -880,  -880,     1,
1421 >    -880,  -880,  -880,   549,  -880,   -38,  -880,  -880,  -880,   966,
1422 >     967,   970,  -880,   525,  -880,   771,  -880,   211,   960,   961,
1423 >     964,     3,  -880,  -880,   637,  -880,  -880,  -880,  -880,  -880,
1424 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1425 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,    69,  -880,  -880,
1426 >    -880,     3,  -880
1427   };
1428  
1429 < /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
1430 <   Performed when YYTABLE doesn't specify something else to do.  Zero
1431 <   means the default is an error.  */
1429 >  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1430 >     Performed when YYTABLE does not specify something else to do.  Zero
1431 >     means the default is an error.  */
1432   static const yytype_uint16 yydefact[] =
1433   {
1434 <       2,     0,     1,     0,     0,     0,   195,   346,   400,     0,
1435 <     415,     0,   584,   250,   385,   226,     0,     0,   130,   283,
1436 <       0,     0,   300,   324,     0,     3,    24,    11,     4,     5,
1437 <       6,     8,     9,    10,    13,    14,    15,    16,    17,    18,
1438 <      19,    20,    23,    21,    22,     7,    12,    25,    26,     0,
1434 >       2,     0,     1,     0,     0,     0,   225,   390,   438,     0,
1435 >     453,     0,   293,   429,   269,     0,   109,   149,   327,     0,
1436 >       0,   368,     0,     0,   344,     3,    23,    11,     4,    24,
1437 >       5,     6,     8,     9,    10,    13,    14,    15,    16,    17,
1438 >      18,    19,    20,    22,    21,     7,    12,    25,    26,     0,
1439         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1440         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1441 <       0,     0,     0,     0,     0,    93,    94,    96,    95,   631,
1441 >       0,     0,     0,     0,     0,   101,   102,   104,   103,   633,
1442         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1443 <       0,     0,     0,     0,     0,     0,     0,     0,   613,   630,
1444 <     626,   614,   615,   616,   617,   619,   620,   621,   622,   618,
1445 <     623,   624,   625,   627,   628,   629,     0,     0,     0,   413,
1684 <       0,     0,   411,   412,     0,   484,     0,     0,     0,     0,
1443 >       0,     0,     0,     0,     0,   618,   632,   620,   621,   622,
1444 >     623,   624,   625,   619,   626,   627,   628,   629,   630,   631,
1445 >       0,     0,     0,   451,     0,     0,   449,   450,     0,   515,
1446         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1447         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1448 <       0,     0,     0,     0,   556,     0,   532,     0,     0,     0,
1448 >       0,     0,     0,     0,     0,     0,     0,   589,     0,   563,
1449         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1689       0,     0,     0,     0,     0,     0,     0,     0,   432,   482,
1690     477,   478,   479,   480,   476,   443,   433,   434,   470,   435,
1691     436,   437,   438,   439,   440,   441,   442,   473,   444,   445,
1692     446,   447,   481,   449,   454,   450,   452,   451,   465,   466,
1693     453,   455,   456,   457,   458,   459,   448,   461,   462,   463,
1694     483,   474,   475,   472,   464,   460,   468,   469,   467,   471,
1695       0,     0,     0,     0,     0,     0,     0,   103,   104,   105,
1696       0,     0,     0,     0,     0,    43,    44,    45,     0,     0,
1697     659,     0,     0,     0,     0,     0,     0,     0,     0,   651,
1698     652,   653,   657,   654,   656,   655,   658,     0,     0,     0,
1450         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1451 <       0,     0,     0,     0,    51,    64,    65,    63,    60,    59,
1452 <      66,    52,    62,    55,    56,    57,    53,    61,    58,    54,
1453 <       0,     0,   298,     0,     0,   296,   297,    97,     0,     0,
1454 <       0,     0,    92,     0,     0,     0,     0,     0,     0,     0,
1451 >       0,   464,   512,   514,   506,   507,   508,   509,   510,   505,
1452 >     475,   465,   466,   467,   468,   469,   470,   471,   472,   473,
1453 >     474,   502,   476,   477,   511,   479,   484,   485,   480,   482,
1454 >     481,   495,   496,   483,   486,   487,   488,   489,   478,   491,
1455 >     492,   493,   513,   503,   504,   500,   501,   494,   490,   498,
1456 >     499,   497,     0,     0,     0,     0,     0,     0,     0,    45,
1457 >      46,    47,     0,     0,     0,   659,     0,     0,     0,     0,
1458 >       0,     0,     0,     0,     0,   650,   651,   652,   653,   654,
1459 >     657,   655,   656,   658,     0,     0,     0,     0,     0,     0,
1460         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1461 <       0,   612,     0,     0,     0,     0,     0,     0,     0,     0,
1462 <       0,     0,     0,     0,     0,     0,     0,   198,   199,   202,
1463 <     203,   205,   206,   207,   208,   209,   210,   211,   200,   201,
1464 <     204,     0,     0,     0,     0,     0,   372,     0,     0,     0,
1465 <       0,     0,     0,     0,     0,     0,   349,   350,   351,   352,
1466 <     353,   354,   356,   355,   358,   362,   359,   360,   361,   357,
1467 <     406,     0,     0,     0,   403,   404,   405,     0,     0,   410,
1468 <     427,     0,     0,   417,   426,     0,   423,   424,   425,     0,
1461 >       0,     0,     0,     0,    53,    69,    70,    68,    65,    63,
1462 >      71,    64,    54,    67,    57,    58,    59,    55,    66,    60,
1463 >      61,    62,    56,     0,     0,     0,     0,   120,   121,   122,
1464 >       0,   342,     0,     0,   340,   341,     0,   105,     0,     0,
1465 >       0,     0,   100,     0,     0,     0,     0,     0,     0,     0,
1466 >       0,     0,     0,     0,     0,     0,     0,     0,   617,     0,
1467 >       0,     0,     0,   263,     0,     0,     0,     0,     0,     0,
1468 >       0,     0,     0,     0,     0,     0,     0,     0,   228,   229,
1469 >     232,   234,   235,   236,   237,   238,   239,   240,   241,   242,
1470 >     230,   231,   233,   243,   244,   245,     0,     0,     0,     0,
1471 >       0,     0,     0,   418,     0,     0,     0,     0,     0,     0,
1472 >       0,     0,   393,   394,   395,   396,   397,   398,   399,   401,
1473 >     400,   403,   407,   404,   405,   406,   402,   444,     0,     0,
1474 >       0,   441,   442,   443,     0,     0,   448,   459,     0,     0,
1475 >       0,   456,   457,   458,     0,     0,     0,     0,     0,     0,
1476         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1477         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1478         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1479         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1480 +       0,     0,     0,     0,     0,   463,     0,     0,     0,   310,
1481 +       0,     0,     0,     0,     0,     0,   296,   297,   298,   299,
1482 +     304,   300,   301,   302,   303,   435,     0,     0,     0,   432,
1483 +     433,   434,     0,     0,     0,   271,     0,   281,     0,   279,
1484 +     280,   282,   283,    48,     0,     0,     0,    44,     0,     0,
1485 +       0,     0,   112,   113,   114,     0,     0,     0,   198,     0,
1486 +       0,     0,     0,     0,   172,     0,     0,   152,   153,   154,
1487 +     155,   158,   159,   160,   161,   157,   156,   162,     0,     0,
1488 +       0,     0,     0,   330,   331,   332,   333,     0,     0,     0,
1489 +       0,     0,     0,     0,     0,     0,   649,    72,     0,     0,
1490         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1491 <       0,   431,   594,   605,     0,     0,   597,     0,     0,     0,
1492 <     587,   588,   589,   590,   591,   592,   593,     0,     0,     0,
1493 <     267,     0,     0,     0,     0,     0,     0,   253,   254,   255,
1494 <     256,   261,   257,   258,   259,   260,   397,     0,   387,     0,
1495 <     396,     0,   393,   394,   395,     0,   228,     0,     0,     0,
1496 <     238,     0,   236,   237,   239,   240,   106,     0,     0,   102,
1724 <       0,    46,     0,     0,     0,    42,     0,     0,     0,   173,
1725 <       0,     0,     0,   149,     0,     0,   133,   134,   135,   136,
1726 <     139,   140,   138,   137,   141,     0,     0,     0,     0,     0,
1727 <     286,   287,   288,   289,     0,     0,     0,     0,     0,     0,
1728 <       0,     0,   650,    67,     0,     0,     0,     0,     0,     0,
1491 >       0,     0,     0,     0,     0,     0,     0,    52,     0,     0,
1492 >     376,     0,   371,   372,   373,   123,     0,     0,   119,     0,
1493 >       0,     0,   339,     0,     0,   354,     0,     0,   347,   348,
1494 >     349,   350,     0,     0,     0,    99,     0,     0,     0,     0,
1495 >      27,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1496 >       0,   616,   246,     0,     0,     0,     0,     0,     0,     0,
1497         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1498 <      50,     0,     0,   310,     0,     0,   303,   304,   305,   306,
1499 <       0,     0,   332,     0,   327,   328,   329,     0,     0,   295,
1500 <       0,     0,     0,    91,     0,     0,     0,     0,    27,     0,
1498 >       0,   227,   408,     0,     0,     0,     0,     0,     0,     0,
1499 >       0,     0,     0,     0,     0,     0,     0,     0,   392,     0,
1500 >       0,     0,   440,     0,   447,     0,     0,     0,   455,     0,
1501         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1734       0,     0,   611,   212,     0,     0,     0,     0,     0,     0,
1735       0,     0,     0,     0,     0,     0,     0,     0,   197,   363,
1502         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1737       0,     0,     0,     0,   348,     0,     0,     0,   402,     0,
1738     409,     0,     0,     0,     0,   422,     0,     0,     0,     0,
1503         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1504         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1505         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1506 +       0,   462,   305,     0,     0,     0,     0,     0,     0,     0,
1507 +       0,     0,   295,     0,     0,     0,   431,   284,     0,     0,
1508 +       0,     0,     0,   278,     0,     0,    43,   115,     0,     0,
1509 +       0,   111,   163,     0,     0,     0,     0,     0,     0,     0,
1510 +       0,     0,     0,     0,   151,   334,     0,     0,     0,     0,
1511 +     329,     0,     0,     0,     0,     0,     0,     0,     0,   648,
1512         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1513 <       0,     0,    35,     0,     0,     0,     0,     0,     0,     0,
1514 <     430,     0,     0,     0,     0,     0,     0,     0,   586,   262,
1515 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   252,
1516 <       0,     0,     0,     0,   392,   241,     0,     0,     0,     0,
1517 <       0,   235,     0,   101,     0,     0,     0,    41,   142,     0,
1518 <       0,     0,     0,     0,     0,     0,     0,     0,   132,   290,
1749 <       0,     0,     0,     0,   285,     0,     0,     0,     0,     0,
1750 <       0,     0,   649,     0,     0,     0,     0,     0,     0,     0,
1751 <       0,    72,    73,     0,    71,    76,    77,     0,    75,     0,
1752 <       0,     0,     0,     0,    49,   307,     0,     0,     0,     0,
1753 <     302,   330,     0,     0,     0,   326,     0,   294,   100,    99,
1754 <      98,   644,   643,   632,   634,    27,    27,    27,    27,    27,
1755 <      29,    28,   638,   639,   642,   640,   645,   646,   647,   648,
1756 <     641,   633,   635,   636,   637,     0,     0,     0,     0,     0,
1757 <       0,     0,     0,     0,     0,     0,     0,     0,   196,     0,
1513 >       0,     0,     0,     0,    77,    78,     0,    76,    81,    82,
1514 >       0,    80,     0,     0,    51,   374,     0,     0,     0,   370,
1515 >       0,   118,     0,     0,   338,   351,     0,     0,     0,     0,
1516 >     346,   108,   107,   106,   643,   642,   634,   635,    27,    27,
1517 >      27,    27,    27,    27,    27,    29,    28,   636,   646,   647,
1518 >     637,   638,   639,   641,   640,   644,   645,     0,     0,     0,
1519         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1520 <       0,     0,     0,   347,     0,     0,   401,   414,     0,     0,
1521 <       0,   416,   496,   500,   516,   582,   530,   494,   524,   527,
1522 <     495,   486,   487,   503,   492,   493,   506,   491,   505,   504,
1523 <     499,   498,   497,   525,   485,   523,   580,   581,   520,   517,
1524 <     567,   560,   577,   578,   561,   562,   563,   564,   572,   565,
1525 <     575,   579,   568,   573,   569,   574,   566,   571,   570,   576,
1526 <       0,   559,   522,   542,   536,   553,   554,   537,   538,   539,
1527 <     540,   548,   541,   551,   555,   544,   549,   545,   550,   543,
1528 <     547,   546,   552,     0,   535,   515,   518,   529,   489,   490,
1529 <     519,   508,   513,   514,   511,   512,   509,   510,   502,   501,
1530 <      35,    35,    35,    37,    36,   583,   528,   531,   521,   526,
1531 <     488,   507,     0,     0,     0,     0,     0,     0,   585,     0,
1532 <       0,     0,     0,     0,     0,     0,     0,   251,     0,     0,
1533 <       0,   386,     0,     0,     0,   246,   242,   245,   227,   107,
1534 <       0,     0,   119,     0,     0,   111,   112,   114,   113,    47,
1535 <      48,     0,     0,     0,     0,     0,     0,     0,     0,   131,
1536 <       0,     0,     0,   284,   665,   660,   664,   662,   666,   661,
1537 <     663,    84,    90,    82,    86,    85,    79,    78,    80,    68,
1538 <       0,    69,     0,    83,    81,    89,    87,    88,     0,     0,
1539 <       0,   301,     0,     0,   325,   299,    30,    31,    32,    33,
1540 <      34,   223,   224,   217,   219,   221,   220,   218,   213,   225,
1541 <     216,   214,   215,   222,   368,   370,   371,   383,   380,   376,
1542 <     377,   379,   378,     0,   375,   365,   381,   382,   364,   369,
1543 <     367,   384,   366,   407,   408,   428,   429,   421,     0,   420,
1544 <     557,     0,   533,     0,    38,    39,    40,   610,   609,     0,
1545 <     608,   596,   595,   602,   601,     0,   600,   604,   603,   265,
1546 <     266,   275,   272,   277,   274,   273,   279,   276,   278,   271,
1547 <       0,   270,   264,   282,   281,   280,   263,   399,   391,     0,
1548 <     390,   398,   233,   234,   232,     0,   231,   249,   248,     0,
1549 <       0,     0,   115,     0,     0,     0,     0,   110,   148,   146,
1550 <     188,   185,   184,   177,   179,   194,   189,   192,   187,   178,
1551 <     193,   181,   190,   182,   191,   186,   180,   183,     0,   176,
1552 <     143,   145,   147,   159,   153,   170,   171,   154,   155,   156,
1553 <     157,   165,   158,   168,   172,   161,   166,   162,   167,   160,
1554 <     164,   163,   169,     0,   152,   144,   292,   293,   291,    70,
1555 <      74,   308,   314,   320,   323,   316,   322,   317,   321,   319,
1556 <     315,   318,     0,   313,   309,   331,   336,   342,   345,   338,
1557 <     344,   339,   343,   341,   337,   340,     0,   335,   373,     0,
1558 <     418,     0,   558,   534,   606,     0,   598,     0,   268,     0,
1559 <     388,     0,   229,     0,   247,   244,   243,     0,     0,     0,
1560 <       0,   109,   174,     0,   150,     0,   311,     0,   333,     0,
1561 <     374,   419,   607,   599,   269,   389,   230,   116,   125,   128,
1562 <     127,   124,   129,   126,   123,     0,   122,   118,   117,   175,
1563 <     151,   312,   334,   120,     0,   121
1564 < };
1565 <
1805 < /* YYDEFGOTO[NTERM-NUM].  */
1806 < static const yytype_int16 yydefgoto[] =
1807 < {
1808 <      -1,     1,    25,   830,   831,   973,   974,    26,   244,   245,
1809 <     246,   247,    27,   283,   284,   285,   286,   793,   794,   797,
1810 <     798,   287,   288,   289,   290,   291,   292,   293,   294,   295,
1811 <     296,   297,   298,   299,    28,    74,    75,    76,    77,    78,
1812 <      29,   236,   237,   238,   239,   240,  1014,  1015,  1016,  1017,
1813 <    1018,  1164,  1295,  1296,    30,    63,   535,   536,   537,   538,
1814 <     539,   540,   541,   542,   543,   765,  1213,  1214,   544,   761,
1815 <    1188,  1189,    31,    51,   346,   347,   348,   349,   350,   351,
1816 <     352,   353,   354,   355,   356,   357,   358,   359,   360,    32,
1817 <      60,   510,   746,  1155,  1156,   511,   512,   513,  1161,  1006,
1818 <    1007,   514,   515,    33,    58,   486,   487,   488,   489,   490,
1819 <     491,   492,   732,  1140,  1141,   493,   494,   495,    34,    64,
1820 <     549,   550,   551,   552,   553,    35,   304,   305,   306,    36,
1821 <      67,   585,   586,   587,   588,   589,   807,  1232,  1233,    37,
1822 <      68,   593,   594,   595,   596,   813,  1246,  1247,    38,    52,
1823 <     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
1824 <     644,  1093,  1094,   385,   386,   387,   388,   389,    39,    59,
1825 <     500,   741,  1149,  1150,   501,   502,   503,   504,    40,    53,
1826 <     393,   394,   395,   396,    41,   121,   122,   123,    42,    55,
1827 <     404,   663,  1108,  1109,   405,   406,   407,   408,    43,   177,
1828 <     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
1829 <     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
1830 <     198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
1831 <     208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
1832 <     218,   219,   220,   221,   222,   223,   224,   439,   953,   954,
1833 <     225,   437,   930,   931,   226,   227,   228,   229,    44,    57,
1834 <     469,   470,   471,   472,   473,   724,  1125,  1126,   474,   475,
1835 <     476,   721,  1119,  1120,    45,    97,    98,    99,   100,   101,
1836 <     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1837 <     112,   113,   114,   115,    46,   258,   259,   260,   261,   262,
1838 <     263,   264,   265,   266
1520 >       0,     0,    37,     0,     0,   226,     0,     0,     0,     0,
1521 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1522 >       0,   391,     0,     0,   439,   452,     0,     0,   454,   528,
1523 >     532,   547,   517,   615,   560,   554,   557,   527,   519,   518,
1524 >     521,   522,   520,   535,   525,   526,   536,   524,   531,   530,
1525 >     529,   555,   516,   613,   614,   551,   599,   593,   609,   594,
1526 >     595,   596,   604,   612,   597,   606,   610,   600,   611,   601,
1527 >     605,   598,   608,   603,   602,   607,     0,   592,   553,   572,
1528 >     573,   574,   567,   585,   568,   569,   570,   580,   588,   571,
1529 >     582,   586,   576,   587,   577,   581,   575,   584,   579,   578,
1530 >     583,     0,   566,   548,   546,   549,   559,   550,   538,   544,
1531 >     545,   542,   543,   539,   540,   541,   558,   561,   562,   523,
1532 >     552,   534,   533,   556,   537,     0,     0,     0,     0,     0,
1533 >       0,     0,     0,   294,     0,     0,   430,     0,     0,     0,
1534 >     289,   285,   288,   270,    49,    50,     0,     0,   110,     0,
1535 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   150,
1536 >       0,     0,     0,   328,   661,   660,   666,   664,   667,   662,
1537 >     663,   665,    90,    98,    89,    96,    97,    88,    92,    91,
1538 >      84,    83,    87,    85,    95,    86,    73,     0,    74,     0,
1539 >      93,    94,     0,     0,   369,   124,     0,     0,     0,   136,
1540 >       0,   128,   129,   131,   130,   343,     0,     0,     0,   345,
1541 >      30,    31,    32,    33,    34,    35,    36,   258,   259,   250,
1542 >     268,   267,     0,   266,   251,   253,   255,   262,   254,   252,
1543 >     261,   247,   260,   249,   248,    37,    37,    37,    39,    38,
1544 >     256,   257,   413,   416,   417,   427,   424,   410,   425,   422,
1545 >     423,     0,   421,   426,   409,   415,   412,   414,   428,   411,
1546 >     445,   446,   460,   461,   590,     0,   564,     0,   308,   309,
1547 >     318,   315,   320,   316,   317,   323,   319,   321,   314,   322,
1548 >       0,   313,   307,   326,   325,   324,   306,   437,   436,   292,
1549 >     291,   276,   277,   275,     0,   274,     0,     0,     0,   116,
1550 >     117,   171,   167,   218,   205,   215,   214,   203,   208,   224,
1551 >     217,   222,   207,   210,   219,   221,   216,   223,   211,   213,
1552 >     220,   209,   212,     0,   201,   164,   166,   168,   169,   170,
1553 >     181,   182,   183,   176,   194,   177,   178,   179,   189,   197,
1554 >     180,   191,   195,   185,   196,   186,   190,   184,   193,   188,
1555 >     187,   192,     0,   175,   165,   337,   335,   336,    75,    79,
1556 >     375,   380,   386,   389,   382,   388,   383,   387,   385,   381,
1557 >     384,     0,   379,   132,     0,     0,     0,     0,   127,   352,
1558 >     358,   364,   367,   360,   366,   361,   365,   363,   359,   362,
1559 >       0,   357,   353,   264,     0,    40,    41,    42,   419,     0,
1560 >     591,   565,   311,     0,   272,     0,   290,   287,   286,     0,
1561 >       0,     0,   199,     0,   173,     0,   377,     0,     0,     0,
1562 >       0,     0,   126,   355,     0,   265,   420,   312,   273,   204,
1563 >     202,   206,   200,   174,   378,   133,   135,   134,   142,   147,
1564 >     146,   141,   144,   148,   145,   140,   143,     0,   139,   356,
1565 >     137,     0,   138
1566   };
1567  
1568 < /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1569 <   STATE-NUM.  */
1843 < #define YYPACT_NINF -872
1844 < static const yytype_int16 yypact[] =
1568 >  /* YYPGOTO[NTERM-NUM].  */
1569 > static const yytype_int16 yypgoto[] =
1570   {
1571 <    -872,   684,  -872,  -194,  -227,  -225,  -872,  -872,  -872,  -207,
1572 <    -872,  -202,  -872,  -872,  -872,  -872,  -190,  -185,  -872,  -872,
1573 <    -182,  -174,  -872,  -872,  -166,  -872,  -872,  -872,  -872,  -872,
1574 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1575 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,    11,
1576 <     596,  -152,  -133,  -131,    10,  -128,   420,  -125,  -122,  -111,
1577 <     -97,     2,    66,   -76,   -61,   339,   379,   -48,   -35,     5,
1578 <    -212,   -25,   -18,    -3,     4,  -872,  -872,  -872,  -872,  -872,
1579 <      29,    40,    57,    63,    72,    82,    90,    92,   108,   113,
1580 <     121,   127,   146,   149,   150,   153,   154,   196,  -872,  -872,
1581 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1582 <    -872,  -872,  -872,  -872,  -872,  -872,   693,   505,    26,  -872,
1583 <     160,    80,  -872,  -872,    54,  -872,   168,   179,   184,   187,
1584 <     190,   192,   193,   197,   200,   201,   205,   206,   207,   208,
1585 <     210,   215,   218,   220,   223,   224,   225,   227,   228,   230,
1586 <     234,   239,   240,   242,  -872,   243,  -872,   247,   254,   255,
1587 <     256,   258,   262,   264,   274,   275,   276,   277,   279,   287,
1588 <     289,   290,   301,   302,   306,   307,   309,   120,  -872,  -872,
1589 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1590 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1591 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1592 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1593 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1594 <     129,   308,    22,    32,   -20,   310,    36,  -872,  -872,  -872,
1595 <      16,   138,   311,   312,    15,  -872,  -872,  -872,   348,   328,
1596 <    -872,   316,   318,   322,   324,   325,   326,   330,     9,  -872,
1597 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,   155,   333,   334,
1598 <     336,   337,   338,   344,   345,   352,   353,   357,   358,   359,
1599 <     360,   362,   364,   221,  -872,  -872,  -872,  -872,  -872,  -872,
1600 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1876 <     172,    35,  -872,   366,    38,  -872,  -872,  -872,   280,   304,
1877 <     374,   199,  -872,   298,   355,   396,   435,   502,   502,   506,
1878 <     507,   439,   442,   509,   502,   444,   445,   446,   450,   451,
1879 <     387,  -872,   388,   389,   390,   393,   397,   399,   400,   401,
1880 <     402,   405,   406,   407,   410,   411,   177,  -872,  -872,  -872,
1881 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1882 <    -872,   416,   415,   417,   419,   421,  -872,   422,   424,   425,
1883 <     427,   432,   436,   443,   447,    19,  -872,  -872,  -872,  -872,
1884 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1885 <    -872,   448,   453,    37,  -872,  -872,  -872,   529,   438,  -872,
1886 <    -872,   456,   457,  -872,  -872,    17,  -872,  -872,  -872,   512,
1887 <     502,   502,   573,   513,   518,   597,   575,   534,   610,   612,
1888 <     613,   548,   550,   551,   502,   600,   556,   628,   630,   502,
1889 <     631,   633,   614,   636,   637,   576,   577,   510,   581,   514,
1890 <     502,   502,   584,   502,   585,   586,   587,   -83,   -53,   588,
1891 <     592,   502,   502,   639,   620,   502,   594,   595,   598,   599,
1892 <     531,  -872,  -872,  -872,   532,   535,  -872,   540,   542,    44,
1893 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,   536,   543,   544,
1894 <    -872,   545,   546,   547,   552,   553,     8,  -872,  -872,  -872,
1895 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,   554,  -872,   557,
1896 <    -872,    28,  -872,  -872,  -872,   537,  -872,   558,   559,   560,
1897 <    -872,    18,  -872,  -872,  -872,  -872,  -872,   616,   566,  -872,
1898 <     565,  -872,   663,   664,   568,  -872,   569,   567,   570,  -872,
1899 <     571,   572,   574,  -872,   579,   261,  -872,  -872,  -872,  -872,
1900 <    -872,  -872,  -872,  -872,  -872,   578,   580,   589,   590,    12,
1901 <    -872,  -872,  -872,  -872,   641,   644,   652,   681,   653,   654,
1902 <     502,   591,  -872,  -872,   682,   655,   705,   706,   707,   708,
1903 <     709,   710,   164,   235,   711,   712,   736,   716,   719,   617,
1904 <    -872,   621,   622,  -872,   623,     6,  -872,  -872,  -872,  -872,
1905 <     632,   625,  -872,    20,  -872,  -872,  -872,   726,   640,  -872,
1906 <     642,   643,   645,  -872,   651,   656,   660,   667,   260,   671,
1907 <     672,   674,   675,   676,   677,   678,   680,   686,   687,   690,
1908 <     691,   695,  -872,  -872,   751,   767,   502,   768,   770,   772,
1909 <     783,   765,   794,   827,   502,   502,   639,   698,  -872,  -872,
1910 <     812,   191,   816,   774,   713,   817,   820,   821,   822,   844,
1911 <     825,   828,   829,   717,  -872,   830,   831,   722,  -872,   723,
1912 <    -872,   834,   835,   724,   728,  -872,   729,   730,   731,   732,
1913 <     733,   734,   735,   737,   738,   740,   741,   742,   743,   744,
1914 <     745,   746,   747,   748,   749,   750,   752,   753,   754,   755,
1915 <     756,   757,   758,   759,   669,   760,   704,   761,   762,   763,
1916 <     764,   766,   769,   771,   773,   775,   776,   777,   778,   779,
1917 <     780,   781,   282,   782,   784,   785,   786,   787,   788,   789,
1918 <    -872,   790,   502,   791,   792,   846,   849,   796,  -872,  -872,
1919 <     861,   832,   795,   875,   899,   880,   882,   884,   797,  -872,
1920 <     893,   798,   900,   799,  -872,  -872,   800,   901,   902,   925,
1921 <     802,  -872,   804,  -872,   167,   805,   806,  -872,  -872,   910,
1922 <     872,   807,   918,   919,   921,   809,   923,   814,  -872,  -872,
1923 <     926,   927,   928,   815,  -872,   819,   823,   824,   826,   833,
1924 <     836,   837,  -872,   838,   839,   840,   841,   842,   843,   845,
1925 <     847,  -872,  -872,  -214,  -872,  -872,  -872,  -191,  -872,   848,
1926 <     850,   851,   852,   853,  -872,  -872,   930,   818,   932,   854,
1927 <    -872,  -872,   935,   855,   856,  -872,   857,  -872,  -872,  -872,
1928 <    -872,  -872,  -872,  -872,  -872,   502,   502,   502,   502,   502,
1929 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1930 <    -872,  -872,  -872,  -872,  -872,   859,   860,   862,   863,   864,
1931 <     865,   866,   867,   868,   869,   870,   871,   873,  -872,   874,
1932 <     876,   877,   878,   879,   152,   881,   883,   885,   886,   887,
1933 <     888,   889,   890,  -872,   891,   892,  -872,  -872,   894,   895,
1934 <     933,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1935 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1936 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1937 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1938 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1939 <    -181,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1940 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1941 <    -872,  -872,  -872,  -178,  -872,  -872,  -872,  -872,  -872,  -872,
1942 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1943 <     639,   639,   639,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1944 <    -872,  -872,     3,   896,   897,    13,   898,   903,  -872,   904,
1945 <     905,   603,   906,   907,   908,   909,   911,  -872,   912,   934,
1946 <     913,  -872,    -2,   914,   915,   940,   916,  -872,  -872,  -872,
1947 <     917,   858,  -872,   920,    73,  -872,  -872,  -872,  -872,  -872,
1948 <    -872,   922,   924,   533,   929,   931,   936,   739,   937,  -872,
1949 <     938,   939,   941,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1950 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1951 <     164,  -872,   235,  -872,  -872,  -872,  -872,  -872,   942,   350,
1952 <     943,  -872,   944,   485,  -872,  -872,  -872,  -872,  -872,  -872,
1953 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1954 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1955 <    -872,  -872,  -872,  -167,  -872,  -872,  -872,  -872,  -872,  -872,
1956 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -165,  -872,
1957 <    -872,   669,  -872,   704,  -872,  -872,  -872,  -872,  -872,  -153,
1958 <    -872,  -872,  -872,  -872,  -872,   -89,  -872,  -872,  -872,  -872,
1959 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1960 <     -36,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,   -23,
1961 <    -872,  -872,  -872,  -872,  -872,   -14,  -872,  -872,  -872,   958,
1962 <     925,   945,  -872,   954,   946,  -105,   947,  -872,  -872,  -872,
1963 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1964 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,    84,  -872,
1965 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1966 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1967 <    -872,  -872,  -872,    86,  -872,  -872,  -872,  -872,  -872,  -872,
1968 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1969 <    -872,  -872,   118,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1970 <    -872,  -872,  -872,  -872,  -872,  -872,   135,  -872,  -872,   152,
1971 <    -872,   933,  -872,  -872,  -872,     3,  -872,    13,  -872,   603,
1972 <    -872,   934,  -872,    -2,  -872,  -872,  -872,   948,   303,   950,
1973 <     951,  -872,  -872,   533,  -872,   739,  -872,   350,  -872,   485,
1974 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1975 <    -872,  -872,  -872,  -872,  -872,   137,  -872,  -872,  -872,  -872,
1976 <    -872,  -872,  -872,  -872,   303,  -872
1571 >    -880,  -880,  -880,  -284,  -315,  -879,  -638,  -880,  -880,   969,
1572 >    -880,  -880,  -880,  -880,   956,  -880,  -880,  -880,    57,  -880,
1573 >      70,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1574 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  1035,
1575 >    -880,  -880,  -880,  -880,  -880,  -880,   631,  -880,  -880,  -880,
1576 >    -880,   824,  -880,  -880,  -880,  -880,    95,  -880,  -880,  -880,
1577 >    -880,  -880,  -201,  -880,  -880,  -880,   634,  -880,  -880,  -880,
1578 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -112,  -880,
1579 >    -880,  -880,  -108,  -880,  -880,  -880,   820,  -880,  -880,  -880,
1580 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1581 >    -880,  -880,  -880,  -880,  -880,  -880,   -88,  -880,  -880,  -880,
1582 >    -880,  -880,   -97,  -880,   682,  -880,  -880,  -880,    24,  -880,
1583 >    -880,  -880,  -880,  -880,   712,  -880,  -880,  -880,  -880,  -880,
1584 >    -880,  -880,   -69,  -880,  -880,  -880,  -880,  -880,  -880,   633,
1585 >    -880,  -880,  -880,  -880,  -880,   957,  -880,  -880,  -880,  -880,
1586 >     601,  -880,  -880,  -880,  -880,  -880,   -89,  -880,  -880,  -880,
1587 >     620,  -880,  -880,  -880,  -880,   -78,  -880,  -880,  -880,   821,
1588 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1589 >    -880,   -59,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1590 >     715,  -880,  -880,  -880,  -880,  -880,   809,  -880,  -880,  -880,
1591 >    -880,  1089,  -880,  -880,  -880,  -880,   796,  -880,  -880,  -880,
1592 >    -880,  1037,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1593 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1594 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1595 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1596 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1597 >      78,  -880,  -880,  -880,    85,  -880,  -880,  -880,  -880,  -880,
1598 >    1114,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,  -880,
1599 >    -880,  -880,  -880,  -880,  -880,  -880,  -880,   968,  -880,  -880,
1600 >    -880,  -880,  -880,  -880,  -880,  -880
1601   };
1602  
1603 < /* YYPGOTO[NTERM-NUM].  */
1604 < static const yytype_int16 yypgoto[] =
1603 >  /* YYDEFGOTO[NTERM-NUM].  */
1604 > static const yytype_int16 yydefgoto[] =
1605   {
1606 <    -872,  -872,  -872,  -483,  -316,  -871,  -453,  -872,  -872,   949,
1607 <    -872,  -872,  -872,  -872,   803,  -872,  -872,  -872,    21,  -872,
1608 <      23,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1609 <    -872,  -872,  -872,  -872,  -872,  -872,   996,  -872,  -872,  -872,
1610 <    -872,  -872,   956,  -872,  -872,  -872,  -872,    58,  -872,  -872,
1611 <    -872,  -872,  -872,  -230,  -872,  -872,  -872,   604,  -872,  -872,
1612 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -186,  -872,  -872,
1613 <    -872,  -161,  -872,  -872,  -872,   810,  -872,  -872,  -872,  -872,
1614 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1615 <    -872,  -872,  -872,  -872,  -168,  -872,   611,  -872,  -872,  -872,
1616 <     -45,  -872,  -872,  -872,  -872,  -872,   638,  -872,  -872,  -872,
1617 <    -872,  -872,  -872,  -872,  -126,  -872,  -872,  -872,  -872,  -872,
1618 <    -872,   593,  -872,  -872,  -872,  -872,  -872,   952,  -872,  -872,
1619 <    -872,  -872,   555,  -872,  -872,  -872,  -872,  -872,  -136,  -872,
1620 <    -872,  -872,   582,  -872,  -872,  -872,  -872,  -129,  -872,  -872,
1621 <    -872,   793,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1622 <    -872,  -872,   -91,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1623 <    -872,  -872,  -872,  -102,  -872,   665,  -872,  -872,  -872,  -872,
1624 <    -872,   801,  -872,  -872,  -872,  -872,  1040,  -872,  -872,  -872,
1625 <    -872,  -872,  -872,   -86,  -872,   808,  -872,  -872,  -872,  -872,
1626 <     990,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1627 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1628 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1629 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1630 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,    59,
1631 <    -872,  -872,  -872,    62,  -872,  -872,  -872,  -872,  -872,  -872,
1632 <    -872,   701,  -872,  -872,  -872,  -872,  -872,   -77,  -872,  -872,
1633 <    -872,  -872,  -872,   -81,  -872,  -872,  1089,  -872,  -872,  -872,
1634 <    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
1635 <    -872,  -872,  -872,  -872,  -872,  -872,   953,  -872,  -872,  -872,
2012 <    -872,  -872,  -872,  -872
1606 >      -1,     1,    25,   835,   836,  1098,  1099,    26,   228,   229,
1607 >     230,   231,    27,   273,   274,   275,   276,   796,   797,   800,
1608 >     801,   277,   278,   279,   280,   281,   282,   283,   284,   285,
1609 >     286,   287,   288,   289,   290,   291,   292,    28,    74,    75,
1610 >      76,    77,    78,    29,    61,   511,   512,   513,   514,    30,
1611 >     296,   297,   298,   299,   300,  1060,  1061,  1062,  1063,  1064,
1612 >    1236,  1307,  1308,    31,    62,   526,   527,   528,   529,   530,
1613 >     531,   532,   533,   534,   535,   536,   761,  1212,  1213,   537,
1614 >     755,  1183,  1184,    32,    51,   347,   348,   349,   350,   351,
1615 >     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
1616 >     362,   363,   364,   365,   626,  1082,  1083,    33,    59,   497,
1617 >     740,  1154,  1155,   498,   499,   500,  1158,  1001,  1002,   501,
1618 >     502,    34,    57,   475,   476,   477,   478,   479,   480,   481,
1619 >     725,  1140,  1141,   482,   483,   484,    35,    63,   542,   543,
1620 >     544,   545,   546,    36,   303,   304,   305,    37,    69,   597,
1621 >     598,   599,   600,   601,   817,  1250,  1251,    38,    66,   581,
1622 >     582,   583,   584,   807,  1231,  1232,    39,    52,   381,   382,
1623 >     383,   384,   385,   386,   387,   388,   389,   390,   391,   649,
1624 >    1111,  1112,   392,   393,   394,   395,   396,    40,    58,   488,
1625 >     489,   490,   491,    41,    53,   400,   401,   402,   403,    42,
1626 >     115,   116,   117,    43,    55,   410,   411,   412,   413,    44,
1627 >     170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
1628 >     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1629 >     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1630 >     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1631 >     210,   211,   212,   213,   214,   215,   216,   217,   443,   961,
1632 >     962,   218,   441,   936,   937,   219,   220,   221,    45,    94,
1633 >      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1634 >     105,   106,   107,   108,   109,    46,   244,   245,   246,   247,
1635 >     248,   249,   250,   251,   252,   253
1636   };
1637  
1638 < /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1639 <   positive, shift that token.  If negative, reduce the rule which
1640 <   number is the opposite.  If YYTABLE_NINF, syntax error.  */
2018 < #define YYTABLE_NINF -109
1638 >  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1639 >     positive, shift that token.  If negative, reduce the rule whose
1640 >     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1641   static const yytype_int16 yytable[] =
1642   {
1643 <     713,   609,   610,   234,   712,    70,   302,   581,   616,   477,
1644 <     250,   119,    70,   545,  1117,    49,   241,    50,   400,   505,
1645 <     361,   590,   362,   496,  1123,   363,  1049,   390,   307,   496,
1646 <    1050,   478,   546,   505,    71,    54,   590,   234,   390,   302,
1647 <      56,    71,   364,   251,    72,   462,    47,    48,   463,  1051,
1648 <     479,    72,    61,  1052,   480,   400,   252,    62,  1152,  1110,
1649 <      65,   365,  1112,  1111,   506,   366,  1113,   241,    66,   253,
1650 <     254,   255,   256,  1248,  1010,  1250,    69,  1249,   506,  1251,
1651 <     120,   119,   464,   507,   367,   465,   368,  1254,   508,   257,
1652 <     116,  1255,   704,   705,   667,   668,   391,   507,   369,  1114,
1653 <    1115,  1116,   508,    73,   303,   582,  1269,   391,   681,   117,
1654 <      73,   118,   242,   686,   124,   547,   401,   230,   370,   591,
1655 <     231,   125,   706,   707,   697,   698,   466,   700,   126,   127,
1656 <     462,   232,   481,   463,   591,   710,   711,   303,   128,   715,
1657 <     243,   482,   483,   467,   548,   233,   129,   509,   371,   402,
1658 <     120,  1256,   130,   401,   497,  1257,   131,   132,   392,   133,
1659 <     497,   509,  1089,   242,  1090,   134,   248,   464,  1010,   392,
1660 <     465,   583,  1011,   581,   135,   136,   484,   372,   332,   137,
1661 <    1118,   249,   403,   857,   138,   592,   402,   498,   139,   140,
1662 <    1124,   243,   141,   498,   300,   142,   143,    79,   333,   334,
1663 <     592,  1153,   335,   144,  1258,  1154,   373,   301,  1259,   145,
1664 <     146,   466,   147,   148,   149,   150,   151,  1260,   308,   403,
1665 <     516,  1261,   267,    80,    81,   309,  1262,   152,   467,    82,
1666 <    1263,    83,   584,   235,   485,   153,   154,   155,  1012,   156,
1667 <     310,  -108,   157,   158,   781,   311,   159,   809,   499,   738,
1668 <     561,   268,   374,   773,   499,   520,   524,   160,   664,   750,
1669 <     653,   814,   526,   336,   337,   338,  1011,   235,   339,   743,
1670 <     468,   582,   313,    84,    85,  -108,   340,   518,   657,   598,
1671 <      86,    87,   161,   314,   527,   727,   162,   269,   341,   342,
1672 <     163,   164,   165,   166,   167,   970,   971,   972,   168,   169,
1673 <     315,    88,    89,   528,   343,   344,   316,   529,   170,   477,
1674 <     847,  1013,   791,   792,  1166,   317,    90,    91,   855,   856,
1675 <     270,   398,   271,   272,  1272,   318,  1274,    92,  1273,   545,
1676 <    1275,   478,  1012,   319,   345,   320,    93,   583,   171,   172,
1677 <     250,   173,  1066,  1067,  1068,  1069,  1070,   174,   546,   526,
1678 <     479,   321,   175,  1288,   480,   468,   322,   176,  1276,  1091,
1679 <     530,   460,  1277,   273,   323,   274,   275,   276,   277,   608,
1680 <     324,   527,  1092,   251,  1289,  1278,  1290,  1303,   521,  1279,
1681 <     267,  1304,   278,   795,   796,   531,   252,   860,   861,   325,
1682 <     528,   712,   326,   327,   529,   563,   328,   329,   584,   253,
1683 <     254,   255,   256,   397,   532,  1013,   983,   604,   279,   268,
1684 <     600,   409,   825,   826,   827,   828,   829,  1291,   637,   257,
1685 <     280,   125,   410,  1222,    94,    95,    96,   411,   126,   127,
1686 <     412,   547,   481,   413,   601,   414,   415,   330,   128,   603,
1687 <     416,   482,   483,   417,   418,   269,   129,   530,   419,   420,
1688 <     421,   422,   130,   423,   281,   282,   131,   132,   424,   133,
1689 <     548,   425,   579,   426,   605,   134,   427,   428,   429,   533,
1690 <     430,   431,   531,   432,   135,   136,   484,   433,   270,   137,
1691 <     271,   272,   434,   435,   138,   436,   438,   534,   139,   140,
1692 <     440,   532,   141,  1292,  1293,   142,   143,   441,   442,   443,
1693 <    1223,   444,   767,   144,   602,   445,   361,   446,   362,   145,
1694 <     146,   363,   147,   148,   149,   150,   151,   447,   448,   449,
1695 <     450,   273,   451,   274,   275,   276,   277,   152,   364,  1294,
1696 <     452,  1224,   453,   454,   485,   153,   154,   155,  1170,   156,
1697 <     278,  1225,   157,   158,   455,   456,   159,   365,  1226,   457,
1698 <     458,   366,   459,   517,   522,   523,   533,   160,  1236,   554,
1699 <    1227,   555,  1228,  1229,  1171,   556,   279,   557,   558,   559,
1700 <     367,   606,   368,   560,   534,  1230,   564,   565,   280,   566,
1701 <     567,   568,   161,  1172,   369,  1231,   162,   569,   570,  1173,
1702 <     163,   164,   165,   166,   167,   571,   572,    79,   168,   169,
1703 <     573,   574,   575,   576,   370,   577,  1174,   578,   170,   597,
1704 <     607,   608,   281,   282,   613,   611,   612,   614,   615,   617,
1705 <     618,   619,  1131,    80,    81,   620,   621,   622,   623,    82,
1706 <    1175,    83,   624,   625,   371,  1237,   626,  1176,   171,   172,
1707 <     627,   173,   628,   629,   630,   631,  1132,   174,   632,   633,
1708 <     634,  1177,   175,   635,   636,  1133,   639,   176,   640,   659,
1709 <     641,  1134,   642,   372,   643,   645,  1238,   646,   647,  1178,
1710 <     648,  1179,  1180,    84,    85,   649,  1239,  1135,   660,   650,
1711 <      86,    87,   669,  1240,     2,     3,   651,   666,   670,     4,
1712 <     652,   655,   373,   671,   332,  1241,   656,  1242,  1243,   661,
1713 <     662,    88,    89,  1136,     5,   673,   672,     6,     7,   674,
1714 <    1244,  1137,  1270,     8,   333,   334,    90,    91,   335,   675,
1715 <    1245,   676,   677,   678,  1181,   679,   680,    92,     9,   910,
1716 <     682,   683,    10,    11,  1182,    12,    93,   684,   374,   685,
1717 <     687,    13,   688,  1183,   689,   690,   691,  1184,   712,  1185,
1718 <     714,   692,   693,   694,  1138,    14,   695,   696,  1186,   699,
1719 <     701,   702,   703,   708,   933,    15,    16,   709,  1187,   716,
1720 <     717,   720,  1139,   718,   719,   722,   729,   745,   723,   336,
1721 <     337,   338,    17,   725,   339,   726,   730,   731,   733,   734,
1722 <     735,   752,   340,   755,   756,   736,   737,   740,    18,  1193,
1723 <     742,   747,   748,   749,   341,   342,   753,   754,   757,   758,
1724 <     759,   778,   783,   760,   762,   763,   775,   764,   769,   776,
1725 <     343,   344,   766,   770,    94,    95,    96,   777,   779,   780,
1726 <     784,   782,   771,   772,    19,   785,   786,   787,   788,   789,
1727 <     790,   799,   800,    20,    21,   801,   802,    22,    23,   803,
1728 <     345,   911,   912,   913,   914,   915,   816,   804,   916,   917,
1729 <     845,   805,   918,   919,   920,   806,   808,   921,   812,   922,
1730 <     923,   924,   811,   925,   926,   927,   846,   848,   928,   849,
1731 <     817,   850,   818,   819,   929,   820,   934,   935,   936,   937,
1732 <     938,   821,   851,   939,   940,   852,   822,   941,   942,   943,
1733 <     823,    24,   944,   853,   945,   946,   947,   824,   948,   949,
1734 <     950,   832,   833,   951,   834,   835,   836,   837,   838,   952,
1735 <     839,  1194,  1195,  1196,  1197,  1198,   840,   841,  1199,  1200,
1736 <     842,   843,  1201,  1202,  1203,   844,   854,  1204,   858,  1205,
1737 <    1206,  1207,   859,  1208,  1209,  1210,   862,   865,  1211,   863,
1738 <     866,   867,   868,   869,  1212,   870,   864,   873,   871,   872,
1739 <     874,   875,   876,   877,   878,   879,   984,   880,   881,   882,
1740 <     883,   884,   885,   886,   887,   888,   986,   889,   890,   987,
1741 <     891,   892,   893,   894,   895,   896,   897,   898,   899,   900,
1742 <     901,   989,   902,   903,   904,   905,   906,   907,   908,   909,
1743 <     932,   955,   956,   957,   958,   992,   959,   990,   993,   960,
1744 <     994,   961,   995,   962,   996,   963,   964,   965,   966,   967,
1745 <     968,   969,   975,   998,   976,   977,   978,   979,   980,   981,
1746 <    1000,  1003,  1004,   982,  1005,   985,   988,   997,   991,  1001,
1747 <    1021,   999,  1008,  1002,  1009,  1019,  1020,  1022,  1024,  1025,
1748 <    1023,  1026,  1027,  1028,  1029,  1033,  1030,  1031,  1032,  1034,
1749 <    1058,  1059,  1060,  1035,  1036,  1062,  1037,  1264,  1107,  1148,
1750 <     312,  1219,  1167,  1038,  1305,  1220,  1039,  1040,  1041,  1042,
1751 <    1043,  1044,  1045,  1046,  1267,  1047,   580,  1048,  1053,  1300,
1752 <    1054,  1055,  1056,  1057,  1061,  1286,  1064,  1065,  1063,  1071,
1753 <    1072,  1163,  1073,  1074,  1075,  1076,  1077,  1078,  1079,  1080,
1754 <    1081,  1082,  1299,  1083,  1084,  1265,  1085,  1086,  1087,  1088,
1755 <    1159,  1095,   751,  1096,   739,  1097,  1098,  1099,  1100,  1101,
1756 <    1102,  1103,  1104,  1284,  1105,  1106,  1121,  1122,  1127,   768,
1757 <     810,  1301,   774,  1128,  1129,  1130,  1142,  1143,  1144,  1145,
1758 <    1302,  1146,  1147,  1151,  1157,  1158,   638,  1162,  1280,  1285,
1759 <    1160,   399,  1168,  1165,  1169,  1281,   744,   461,   654,  1190,
1760 <     728,  1191,  1253,  1252,  1282,   815,  1192,  1215,  1216,  1217,
1761 <    1283,  1218,  1221,  1234,  1235,  1266,   331,  1271,  1287,  1268,
1762 <    1297,  1298,   519,   525,   658,     0,     0,     0,     0,     0,
1763 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1764 <       0,   562,     0,   665,     0,     0,     0,     0,     0,     0,
1643 >     863,   864,   611,    79,   613,   235,   615,   616,   862,  1109,
1644 >     508,  1151,   485,    70,  1056,   225,   397,   705,   707,   508,
1645 >    1080,   706,   708,   301,    80,    81,    70,   407,   593,   113,
1646 >      82,   578,   492,   236,   407,   578,   538,    71,   294,   485,
1647 >     301,   237,  1046,  1298,    72,  1048,  1047,   593,  1124,  1049,
1648 >      71,   225,  1125,   238,   239,    47,    48,    72,   240,   241,
1649 >     242,   397,   119,   794,   795,    83,    84,   120,   121,    49,
1650 >     539,    85,    86,   122,  1299,    50,  1300,    87,    88,    89,
1651 >     398,   123,   124,   243,    54,    90,    91,    56,   125,   493,
1652 >     509,   126,   127,   114,  1056,  1081,   494,   128,   495,   509,
1653 >     670,   671,   129,   130,  1279,   131,   132,   133,   678,   134,
1654 >      92,    93,   682,   226,    73,  1057,   540,   687,   135,   294,
1655 >     690,  1301,   136,   137,   302,   398,   113,    73,   408,   594,
1656 >     700,   701,   579,   138,   538,   408,   579,   227,  1302,   254,
1657 >     486,   302,   714,   139,   399,   717,   718,    60,   594,   226,
1658 >     140,  1152,   141,    64,   142,   409,   143,   496,   144,   145,
1659 >      65,  1153,   409,   255,   541,  1126,  1253,   486,   539,  1127,
1660 >    1254,   146,    67,   227,  1303,  1304,   147,   148,   149,    68,
1661 >     150,   151,   152,   466,   510,   153,  1095,  1096,  1097,   399,
1662 >     114,   110,  1258,   510,   308,  1057,  1259,   256,  1262,   467,
1663 >    1110,  1264,  1263,  1272,   111,  1265,   257,  1273,  1058,  1274,
1664 >     112,   154,  -125,  1275,   540,   468,  1255,  1256,  1257,   118,
1665 >     155,   156,   157,   158,   159,   160,   222,  1276,   258,   307,
1666 >    1305,  1277,   259,   492,  1306,   327,  1059,   555,   487,   778,
1667 >     260,   329,   515,   261,   262,   311,  1237,   506,   661,   469,
1668 >     595,   750,   161,   580,   596,   330,   331,   580,   516,   332,
1669 >     819,   405,   541,   295,   742,   487,   667,   808,   769,   595,
1670 >     587,   735,   591,   596,   517,   263,   162,   163,   164,  1283,
1671 >     165,   166,   167,  1284,  1221,   223,   168,   224,  1058,   862,
1672 >     493,   169,   264,  -125,   464,   265,   266,   494,   366,   495,
1673 >     367,  1310,   368,   309,   470,  1311,   232,   333,   518,   233,
1674 >     849,   234,   471,   472,   369,   854,  1059,   293,   857,   798,
1675 >     799,   267,   861,   306,   334,   335,   336,   337,   338,   310,
1676 >     370,   313,   339,   473,   867,   868,   340,   314,   268,   269,
1677 >     270,   315,   341,   519,   295,   316,  1222,   317,   318,   319,
1678 >     320,   503,   321,   342,   343,   371,   322,   372,   496,   323,
1679 >     557,   324,   325,   520,   373,   344,   271,   272,   585,   326,
1680 >     404,   576,   414,   605,   466,   374,  1223,   415,   416,   521,
1681 >     417,   418,   419,  1224,   420,   421,   422,   345,   423,   424,
1682 >     467,   425,  1225,   426,   427,   428,   522,   523,   429,   375,
1683 >     430,   431,   432,   433,   434,   435,   468,   436,   437,   474,
1684 >     438,   439,   602,   440,   442,   731,   444,   603,  1226,   119,
1685 >    1227,  1228,   445,   376,   120,   121,   346,   446,   447,   448,
1686 >     122,   449,   450,   451,   452,  1229,   453,   454,   123,   124,
1687 >     469,   455,  1230,   377,   456,   125,   524,   457,   126,   127,
1688 >     458,   515,   378,   459,   128,   460,   461,   462,   463,   129,
1689 >     130,   504,   131,   132,   133,   254,   134,   516,   525,   505,
1690 >     547,   548,   549,   640,   763,   135,   589,   550,   551,   136,
1691 >     137,   552,   553,   517,   554,   558,   559,   560,   561,   255,
1692 >     138,   562,   563,   564,   565,   470,   566,   379,   567,   568,
1693 >     139,   569,   570,   471,   472,   571,   572,   140,   573,   141,
1694 >     574,   142,   575,   143,   586,   144,   145,   518,   590,   604,
1695 >     606,   607,   608,   256,   473,   380,   609,   610,   146,  1163,
1696 >     657,   612,   257,   147,   148,   149,   614,   150,   151,   152,
1697 >     617,   618,   153,  1164,  1070,  1071,  1072,  1073,  1074,  1075,
1698 >    1076,  1165,   519,   619,   258,   620,   621,   622,   259,   642,
1699 >     663,   623,  1130,   624,   625,  1166,   260,   627,   154,   261,
1700 >     262,   628,   520,   629,   664,   630,   669,   155,   156,   157,
1701 >     158,   159,   160,  1131,   631,   632,   633,   634,   521,   635,
1702 >     636,   637,  1132,   638,   639,   643,  1167,  1280,  1168,   644,
1703 >     474,   263,   645,   646,   647,   522,   523,   648,   672,   161,
1704 >     650,   651,   652,   366,   653,   367,   654,   368,   264,   655,
1705 >     656,   265,   266,  1133,  1169,   659,   660,   673,   665,   369,
1706 >     666,   674,   675,   162,   163,   164,   676,   165,   166,   167,
1707 >     677,   679,   680,   168,   681,   370,   683,   267,   169,   684,
1708 >     685,   686,  1134,  1135,   688,   524,   689,  1170,   691,  1171,
1709 >    1136,   695,   692,   693,   268,   269,   270,   694,   329,   696,
1710 >     371,   697,   372,   698,   699,   702,   703,   525,  1172,   373,
1711 >     704,   709,   330,   331,   710,  1137,   332,   711,   712,   713,
1712 >     374,   715,   271,   272,   716,   719,   720,  1173,   723,   744,
1713 >     721,  1138,  1174,   722,   724,   745,  1175,     2,     3,   726,
1714 >    1240,     4,   771,  1176,   375,   737,   772,   773,  1177,   727,
1715 >     728,     5,   729,   730,     6,     7,   733,   734,   738,   739,
1716 >     741,     8,  1178,   746,   333,  1179,   747,  1180,   376,   752,
1717 >     748,   749,     9,   753,   774,    10,    11,   754,   756,  1181,
1718 >     765,   334,   335,   336,   337,   338,  1182,   757,   377,   339,
1719 >     779,   758,  1139,   340,   759,   780,   610,   378,   760,   341,
1720 >     762,   766,  1241,    12,   767,   768,   775,   776,    13,   777,
1721 >     342,   343,   781,   782,   783,   784,   939,    14,   940,   941,
1722 >     785,   786,   344,   828,   829,   830,   831,   832,   833,   834,
1723 >     792,   787,  1242,   788,   789,   790,   791,    15,    16,  1243,
1724 >     793,   802,   379,   803,   345,   804,   805,   806,  1244,   810,
1725 >    1190,   811,  1191,  1192,   235,    17,   812,   813,   814,   815,
1726 >     816,   821,   822,   818,   823,   824,   825,   847,   826,   827,
1727 >     380,   837,    18,   838,  1245,   839,  1246,  1247,   840,   850,
1728 >     841,   842,   236,   346,   916,    19,    20,   843,   844,   845,
1729 >     237,  1248,   846,   848,   851,   852,   853,   855,  1249,   856,
1730 >     858,   859,   238,   239,   860,   862,    21,   240,   241,   242,
1731 >     865,   873,   870,   866,   876,   869,   987,   871,   872,    22,
1732 >     881,   874,   875,   877,   878,   879,   880,    23,   884,  1269,
1733 >     882,    24,   243,   942,   943,   944,   883,   945,   946,   886,
1734 >     947,   948,   885,   949,   887,   950,   986,   888,   951,   889,
1735 >     989,   952,   953,   890,   954,   891,   892,   893,   894,   955,
1736 >     895,   896,   999,   956,   957,   958,   897,  1193,  1194,  1195,
1737 >     898,  1196,  1197,   959,  1198,  1199,   899,  1200,   960,  1201,
1738 >     900,   901,  1202,   902,   903,  1203,  1204,   985,  1205,   904,
1739 >     905,   906,   907,  1206,   908,   909,    79,  1207,  1208,  1209,
1740 >     910,   917,   918,   919,   911,   920,   921,  1210,   922,   923,
1741 >     912,   924,  1211,   925,   988,   990,   926,    80,    81,   927,
1742 >     928,   991,   929,    82,   992,   994,   995,   930,   997,   998,
1743 >    1000,   931,   932,   933,  1006,  1007,   913,   914,   915,   938,
1744 >     963,   934,   964,   965,  1009,   966,   935,   967,   968,  1011,
1745 >     969,   970,   971,   972,   973,   974,   975,   976,    83,    84,
1746 >     977,   978,   979,   980,    85,    86,   981,  1012,   982,   983,
1747 >      87,    88,    89,   984,   993,   996,  1003,  1004,    90,    91,
1748 >    1005,  1008,  1010,  1013,  1014,  1015,  1016,  1017,  1018,  1019,
1749 >    1020,  1021,  1022,  1023,  1024,  1025,  1026,  1027,  1028,  1029,
1750 >    1052,  1030,  1031,    92,    93,  1032,  1033,  1034,  1035,  1036,
1751 >    1037,  1038,  1039,  1040,  1041,  1042,  1043,  1044,  1045,  1066,
1752 >    1068,  1050,  1051,  1266,  1054,  1055,  1053,  1065,  1278,  1289,
1753 >    1290,  1067,  1069,  1291,  1218,  1077,  1078,  1079,  1084,   312,
1754 >    1312,  1085,  1086,  1087,  1088,  1089,  1090,  1091,  1092,  1219,
1755 >     588,  1093,  1094,  1100,  1101,  1102,  1103,  1104,  1105,  1106,
1756 >    1107,  1108,  1113,  1114,  1115,  1116,  1117,  1118,  1119,  1120,
1757 >    1121,  1122,   751,  1123,  1128,  1129,  1142,  1143,  1144,  1145,
1758 >    1146,  1147,  1148,  1149,  1150,  1238,  1159,  1160,  1156,  1157,
1759 >     764,  1161,  1162,  1293,  1185,  1292,  1285,   641,  1288,  1186,
1760 >    1187,  1188,  1189,  1214,  1215,   770,  1216,  1217,  1220,  1233,
1761 >     743,  1267,  1239,  1234,  1235,  1252,  1268,   732,  1270,  1271,
1762 >    1281,  1282,  1295,  1296,  1287,  1309,  1297,   507,   820,  1294,
1763 >    1286,   809,   658,   736,   406,  1261,   668,   465,   328,   662,
1764 >    1260,     0,   556,     0,     0,     0,     0,     0,     0,     0,
1765 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   577,
1766         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1767         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1768         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1769 <       0,     0,     0,     0,     0,     0,   599
1769 >     592
1770   };
1771  
2149 #define yypact_value_is_default(yystate) \
2150  ((yystate) == (-872))
2151
2152 #define yytable_value_is_error(yytable_value) \
2153  YYID (0)
2154
1772   static const yytype_int16 yycheck[] =
1773   {
1774 <     453,   317,   318,     1,   109,     1,     1,     1,   324,     1,
1775 <       1,     1,     1,     1,    11,   242,     1,   242,     1,     1,
1776 <       1,     1,     3,     1,    11,     6,   240,     1,   240,     1,
1777 <     244,    23,    20,     1,    30,   242,     1,     1,     1,     1,
1778 <     242,    30,    23,    34,    40,     1,   240,   241,     4,   240,
1779 <      42,    40,   242,   244,    46,     1,    47,   242,    60,   240,
1780 <     242,    42,   240,   244,    46,    46,   244,     1,   242,    60,
1781 <      61,    62,    63,   240,     1,   240,   242,   244,    46,   244,
1782 <      70,     1,    38,    65,    65,    41,    67,   240,    70,    80,
1783 <     242,   244,   175,   176,   410,   411,    70,    65,    79,   970,
1784 <     971,   972,    70,    99,    99,    99,   211,    70,   424,   242,
1785 <      99,   242,    97,   429,   242,   103,    99,   242,    99,    99,
1786 <     242,     1,   175,   176,   440,   441,    82,   443,     8,     9,
1787 <       1,   242,   124,     4,    99,   451,   452,    99,    18,   455,
1788 <     125,   133,   134,    99,   132,   242,    26,   129,   129,   132,
1789 <      70,   240,    32,    99,   132,   244,    36,    37,   132,    39,
1790 <     132,   129,    10,    97,    12,    45,   242,    38,     1,   132,
1791 <      41,   165,    99,     1,    54,    55,   168,   158,     1,    59,
1792 <     177,   242,   165,   636,    64,   165,   132,   165,    68,    69,
1793 <     177,   125,    72,   165,   242,    75,    76,     1,    21,    22,
1794 <     165,   203,    25,    83,   240,   207,   187,   242,   244,    89,
1795 <      90,    82,    92,    93,    94,    95,    96,   240,   243,   165,
1796 <     240,   244,     1,    27,    28,   243,   240,   107,    99,    33,
1797 <     244,    35,   226,   231,   226,   115,   116,   117,   165,   119,
1798 <     243,   239,   122,   123,   560,   241,   126,   241,   226,   241,
1799 <     241,    30,   233,   241,   226,   239,   241,   137,   241,   241,
1800 <     241,   241,     1,    86,    87,    88,    99,   231,    91,   241,
1801 <     226,    99,   243,    77,    78,   239,    99,   241,   241,   241,
1802 <      84,    85,   162,   243,    23,   241,   166,    66,   111,   112,
1803 <     170,   171,   172,   173,   174,    13,    14,    15,   178,   179,
1804 <     243,   105,   106,    42,   127,   128,   243,    46,   188,     1,
1805 <     626,   238,   148,   149,   241,   243,   120,   121,   634,   635,
1806 <      99,   241,   101,   102,   240,   243,   240,   131,   244,     1,
1807 <     244,    23,   165,   243,   157,   243,   140,   165,   218,   219,
1808 <       1,   221,   825,   826,   827,   828,   829,   227,    20,     1,
1809 <      42,   243,   232,    50,    46,   226,   243,   237,   240,   207,
1810 <      99,   241,   244,   142,   243,   144,   145,   146,   147,   109,
1811 <     243,    23,   220,    34,    71,   240,    73,   240,   240,   244,
1812 <       1,   244,   161,   148,   149,   124,    47,   196,   197,   243,
1813 <      42,   109,   243,   243,    46,   240,   243,   243,   226,    60,
1814 <      61,    62,    63,   243,   143,   238,   722,   109,   187,    30,
1815 <     130,   243,   152,   153,   154,   155,   156,   114,   241,    80,
1816 <     199,     1,   243,    73,   228,   229,   230,   243,     8,     9,
1817 <     243,   103,   124,   243,   130,   243,   243,   241,    18,   240,
1818 <     243,   133,   134,   243,   243,    66,    26,    99,   243,   243,
1819 <     243,   243,    32,   243,   233,   234,    36,    37,   243,    39,
1820 <     132,   243,   241,   243,   109,    45,   243,   243,   243,   208,
1821 <     243,   243,   124,   243,    54,    55,   168,   243,    99,    59,
1822 <     101,   102,   243,   243,    64,   243,   243,   226,    68,    69,
1823 <     243,   143,    72,   190,   191,    75,    76,   243,   243,   243,
1824 <     150,   243,   241,    83,   130,   243,     1,   243,     3,    89,
1825 <      90,     6,    92,    93,    94,    95,    96,   243,   243,   243,
1826 <     243,   142,   243,   144,   145,   146,   147,   107,    23,   226,
1827 <     243,   181,   243,   243,   226,   115,   116,   117,     5,   119,
1828 <     161,   191,   122,   123,   243,   243,   126,    42,   198,   243,
1829 <     243,    46,   243,   243,   243,   243,   208,   137,    73,   243,
1830 <     210,   243,   212,   213,    31,   243,   187,   243,   243,   243,
1831 <      65,   175,    67,   243,   226,   225,   243,   243,   199,   243,
1832 <     243,   243,   162,    50,    79,   235,   166,   243,   243,    56,
1833 <     170,   171,   172,   173,   174,   243,   243,     1,   178,   179,
1834 <     243,   243,   243,   243,    99,   243,    73,   243,   188,   243,
1835 <     175,   109,   233,   234,   175,   109,   109,   175,   109,   175,
1836 <     175,   175,    19,    27,    28,   175,   175,   240,   240,    33,
1837 <      97,    35,   243,   243,   129,   150,   243,   104,   218,   219,
1838 <     243,   221,   243,   243,   243,   243,    43,   227,   243,   243,
1839 <     243,   118,   232,   243,   243,    52,   240,   237,   243,   130,
1840 <     243,    58,   243,   158,   243,   243,   181,   243,   243,   136,
1841 <     243,   138,   139,    77,    78,   243,   191,    74,   240,   243,
1842 <      84,    85,   109,   198,     0,     1,   243,   175,   175,     5,
1843 <     243,   243,   187,   175,     1,   210,   243,   212,   213,   243,
1844 <     243,   105,   106,   100,    20,   130,   109,    23,    24,   175,
1845 <     225,   108,  1165,    29,    21,    22,   120,   121,    25,   109,
1846 <     235,   109,   109,   175,   191,   175,   175,   131,    44,    60,
1847 <     130,   175,    48,    49,   201,    51,   140,   109,   233,   109,
1848 <     109,    57,   109,   210,   130,   109,   109,   214,   109,   216,
1849 <     130,   175,   175,   243,   151,    71,   175,   243,   225,   175,
1850 <     175,   175,   175,   175,    60,    81,    82,   175,   235,   175,
1851 <     175,   240,   169,   175,   175,   243,   240,   240,   243,    86,
1852 <      87,    88,    98,   243,    91,   243,   243,   243,   243,   243,
1853 <     243,   175,    99,   130,   130,   243,   243,   243,   114,    60,
1854 <     243,   243,   243,   243,   111,   112,   240,   242,   240,   240,
1855 <     243,   130,   130,   243,   243,   243,   175,   243,   240,   175,
1856 <     127,   128,   243,   243,   228,   229,   230,   175,   175,   175,
1857 <     175,   240,   243,   243,   150,   130,   130,   130,   130,   130,
1858 <     130,   130,   130,   159,   160,   109,   130,   163,   164,   130,
1859 <     157,   182,   183,   184,   185,   186,   130,   240,   189,   190,
1860 <     109,   240,   193,   194,   195,   243,   243,   198,   243,   200,
1861 <     201,   202,   240,   204,   205,   206,   109,   109,   209,   109,
1862 <     240,   109,   240,   240,   215,   240,   182,   183,   184,   185,
1863 <     186,   240,   109,   189,   190,   130,   240,   193,   194,   195,
1864 <     240,   217,   198,   109,   200,   201,   202,   240,   204,   205,
1865 <     206,   240,   240,   209,   240,   240,   240,   240,   240,   215,
1866 <     240,   182,   183,   184,   185,   186,   240,   240,   189,   190,
1867 <     240,   240,   193,   194,   195,   240,   109,   198,   240,   200,
1868 <     201,   202,   130,   204,   205,   206,   130,   130,   209,   175,
1869 <     130,   130,   130,   109,   215,   130,   243,   240,   130,   130,
1870 <     130,   130,   240,   240,   130,   130,   175,   243,   240,   240,
1871 <     240,   240,   240,   240,   240,   240,   130,   240,   240,   130,
1872 <     240,   240,   240,   240,   240,   240,   240,   240,   240,   240,
1873 <     240,   130,   240,   240,   240,   240,   240,   240,   240,   240,
1874 <     240,   240,   240,   240,   240,   130,   240,   175,   109,   240,
1875 <     130,   240,   130,   240,   130,   240,   240,   240,   240,   240,
1876 <     240,   240,   240,   130,   240,   240,   240,   240,   240,   240,
1877 <     130,   130,   130,   243,   109,   243,   240,   240,   243,   240,
1878 <     130,   243,   240,   243,   240,   240,   240,   175,   130,   130,
1879 <     243,   130,   243,   130,   240,   240,   130,   130,   130,   240,
1880 <     130,   243,   130,   240,   240,   130,   240,   109,   135,   135,
1881 <      74,  1050,  1014,   240,  1304,  1052,   240,   240,   240,   240,
1882 <     240,   240,   240,   240,   130,   240,   283,   240,   240,  1275,
1883 <     240,   240,   240,   240,   240,  1263,   240,   240,   243,   240,
1884 <     240,   243,   240,   240,   240,   240,   240,   240,   240,   240,
1885 <     240,   240,  1273,   240,   240,  1160,   240,   240,   240,   240,
1886 <     180,   240,   511,   240,   486,   240,   240,   240,   240,   240,
1887 <     240,   240,   240,  1259,   240,   240,   240,   240,   240,   535,
1888 <     585,  1277,   549,   240,   240,   240,   240,   240,   240,   240,
1889 <    1279,   240,   240,   240,   240,   240,   346,   240,  1249,  1261,
1890 <     244,   121,   240,   243,   240,  1251,   501,   177,   375,   240,
1891 <     469,   240,  1113,  1111,  1255,   593,   240,   240,   240,   240,
1892 <    1257,   240,   240,   240,   240,   240,    97,   240,   240,   243,
1893 <     240,   240,   236,   244,   393,    -1,    -1,    -1,    -1,    -1,
1894 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1895 <      -1,   258,    -1,   405,    -1,    -1,    -1,    -1,    -1,    -1,
1774 >     638,   639,   317,     1,   319,     1,   321,   322,   112,     8,
1775 >       1,    49,     1,     1,     1,     1,     1,   214,   214,     1,
1776 >      53,   218,   218,     1,    22,    23,     1,     1,     1,     1,
1777 >      28,     1,     1,    29,     1,     1,     1,    25,     1,     1,
1778 >       1,    37,   232,    40,    32,   232,   236,     1,   232,   236,
1779 >      25,     1,   236,    49,    50,   232,   233,    32,    54,    55,
1780 >      56,     1,     1,   203,   204,    63,    64,     6,     7,   234,
1781 >      35,    69,    70,    12,    71,   234,    73,    75,    76,    77,
1782 >      65,    20,    21,    79,   234,    83,    84,   234,    27,    58,
1783 >      81,    30,    31,    65,     1,   128,    65,    36,    67,    81,
1784 >     415,   416,    41,    42,   208,    44,    45,    46,   423,    48,
1785 >     108,   109,   427,    99,   102,   102,    81,   432,    57,     1,
1786 >     435,   118,    61,    62,   102,    65,     1,   102,   102,   102,
1787 >     445,   446,   102,    72,     1,   102,   102,   123,   135,     1,
1788 >     129,   102,   457,    82,   129,   460,   461,   234,   102,    99,
1789 >      89,   189,    91,   234,    93,   129,    95,   126,    97,    98,
1790 >     234,   199,   129,    25,   129,   232,   232,   129,    35,   236,
1791 >     236,   110,   234,   123,   171,   172,   115,   116,   117,   234,
1792 >     119,   120,   121,     1,   175,   124,     9,    10,    11,   129,
1793 >      65,   234,   232,   175,   235,   102,   236,    59,   232,    17,
1794 >     199,   232,   236,   232,   234,   236,    68,   236,   195,   232,
1795 >     234,   150,   175,   236,    81,    33,  1095,  1096,  1097,   234,
1796 >     159,   160,   161,   162,   163,   164,   234,   232,    90,   232,
1797 >     227,   236,    94,     1,   231,   233,   223,   233,   227,   554,
1798 >     102,     1,     1,   105,   106,   233,   233,   233,   233,    67,
1799 >     223,   233,   191,   223,   227,    15,    16,   223,    17,    19,
1800 >     233,   233,   129,   226,   233,   227,   233,   233,   233,   223,
1801 >     233,   233,   233,   227,    33,   137,   215,   216,   217,   232,
1802 >     219,   220,   221,   236,    73,   234,   225,   234,   195,   112,
1803 >      58,   230,   154,   175,   233,   157,   158,    65,     1,    67,
1804 >       3,   232,     5,   235,   122,   236,   234,    67,    67,   234,
1805 >     625,   234,   130,   131,    17,   630,   223,   234,   633,   203,
1806 >     204,   183,   637,   234,    84,    85,    86,    87,    88,   235,
1807 >      33,   235,    92,   151,   179,   180,    96,   235,   200,   201,
1808 >     202,   235,   102,   102,   226,   235,   135,   235,   235,   235,
1809 >     235,   232,   235,   113,   114,    58,   235,    60,   126,   235,
1810 >     232,   235,   235,   122,    67,   125,   228,   229,   232,   235,
1811 >     235,   233,   235,   232,     1,    78,   165,   235,   235,   138,
1812 >     235,   235,   235,   172,   235,   235,   235,   147,   235,   235,
1813 >      17,   235,   181,   235,   235,   235,   155,   156,   235,   102,
1814 >     235,   235,   235,   235,   235,   235,    33,   235,   235,   227,
1815 >     235,   235,   127,   235,   235,   233,   235,   127,   207,     1,
1816 >     209,   210,   235,   126,     6,     7,   186,   235,   235,   235,
1817 >      12,   235,   235,   235,   235,   224,   235,   235,    20,    21,
1818 >      67,   235,   231,   146,   235,    27,   205,   235,    30,    31,
1819 >     235,     1,   155,   235,    36,   235,   235,   235,   235,    41,
1820 >      42,   235,    44,    45,    46,     1,    48,    17,   227,   235,
1821 >     235,   235,   235,   233,   233,    57,   175,   235,   235,    61,
1822 >      62,   235,   235,    33,   235,   235,   235,   235,   235,    25,
1823 >      72,   235,   235,   235,   235,   122,   235,   200,   235,   235,
1824 >      82,   235,   235,   130,   131,   235,   235,    89,   235,    91,
1825 >     235,    93,   235,    95,   235,    97,    98,    67,   235,   127,
1826 >     112,   112,   214,    59,   151,   228,   112,   112,   110,     4,
1827 >     233,   112,    68,   115,   116,   117,   112,   119,   120,   121,
1828 >     112,   112,   124,    18,   828,   829,   830,   831,   832,   833,
1829 >     834,    26,   102,   214,    90,   214,   232,   232,    94,   232,
1830 >     127,   235,    13,   235,   235,    40,   102,   235,   150,   105,
1831 >     106,   235,   122,   235,   232,   235,   214,   159,   160,   161,
1832 >     162,   163,   164,    34,   235,   235,   235,   235,   138,   235,
1833 >     235,   235,    43,   235,   235,   235,    71,  1235,    73,   235,
1834 >     227,   137,   235,   235,   235,   155,   156,   235,   214,   191,
1835 >     235,   235,   235,     1,   235,     3,   235,     5,   154,   235,
1836 >     235,   157,   158,    74,    99,   235,   235,   112,   235,    17,
1837 >     235,   214,   112,   215,   216,   217,   127,   219,   220,   221,
1838 >     214,   214,   112,   225,   112,    33,   112,   183,   230,   214,
1839 >     214,   214,   103,   104,   112,   205,   112,   132,   112,   134,
1840 >     111,   214,   112,   112,   200,   201,   202,   112,     1,   235,
1841 >      58,   214,    60,   235,   214,   214,   214,   227,   153,    67,
1842 >     214,   214,    15,    16,   214,   136,    19,   214,   127,   112,
1843 >      78,   214,   228,   229,   214,   214,   214,   172,   235,   127,
1844 >     232,   152,   177,   232,   235,   127,   181,     0,     1,   235,
1845 >      73,     4,   214,   188,   102,   232,   214,   214,   193,   235,
1846 >     235,    14,   235,   235,    17,    18,   235,   235,   235,   235,
1847 >     235,    24,   207,   232,    67,   210,   232,   212,   126,   232,
1848 >     235,   235,    35,   235,   127,    38,    39,   235,   235,   224,
1849 >     232,    84,    85,    86,    87,    88,   231,   235,   146,    92,
1850 >     232,   235,   213,    96,   235,   127,   112,   155,   235,   102,
1851 >     235,   235,   135,    66,   235,   235,   214,   214,    71,   214,
1852 >     113,   114,   214,   127,   112,   112,    49,    80,    51,    52,
1853 >     127,   127,   125,   139,   140,   141,   142,   143,   144,   145,
1854 >     112,   127,   165,   127,   127,   127,   127,   100,   101,   172,
1855 >     127,   127,   200,   127,   147,   232,   232,   235,   181,   214,
1856 >      49,   232,    51,    52,     1,   118,   234,   127,   232,   232,
1857 >     235,   232,   232,   235,   232,   232,   232,   112,   232,   232,
1858 >     228,   232,   135,   232,   207,   232,   209,   210,   232,   235,
1859 >     232,   232,    29,   186,    49,   148,   149,   232,   232,   232,
1860 >      37,   224,   232,   112,   112,   112,   112,   112,   231,   112,
1861 >     127,   112,    49,    50,   112,   112,   169,    54,    55,    56,
1862 >     232,   235,   214,   127,   112,   127,   235,   127,   127,   182,
1863 >     232,   127,   127,   127,   127,   127,   127,   190,   232,   237,
1864 >     127,   194,    79,   166,   167,   168,   127,   170,   171,   127,
1865 >     173,   174,   232,   176,   127,   178,   214,   232,   181,   232,
1866 >     112,   184,   185,   232,   187,   232,   232,   232,   232,   192,
1867 >     232,   232,   235,   196,   197,   198,   232,   166,   167,   168,
1868 >     232,   170,   171,   206,   173,   174,   232,   176,   211,   178,
1869 >     232,   232,   181,   232,   232,   184,   185,   127,   187,   232,
1870 >     232,   232,   232,   192,   232,   232,     1,   196,   197,   198,
1871 >     232,   166,   167,   168,   232,   170,   171,   206,   173,   174,
1872 >     232,   176,   211,   178,   127,   127,   181,    22,    23,   184,
1873 >     185,   127,   187,    28,   127,   127,   127,   192,   127,   127,
1874 >     112,   196,   197,   198,   127,   127,   232,   232,   232,   232,
1875 >     232,   206,   232,   232,   127,   232,   211,   232,   232,   235,
1876 >     232,   232,   232,   232,   232,   232,   232,   232,    63,    64,
1877 >     232,   232,   232,   232,    69,    70,   232,   127,   232,   232,
1878 >      75,    76,    77,   232,   232,   232,   232,   232,    83,    84,
1879 >     232,   232,   214,   127,   127,   127,   214,   235,   127,   232,
1880 >     127,   127,   127,   232,   232,   232,   232,   232,   232,   232,
1881 >     127,   232,   232,   108,   109,   232,   232,   232,   232,   232,
1882 >     232,   232,   232,   232,   232,   232,   232,   232,   232,   127,
1883 >     127,   232,   232,   112,   232,   232,   235,   232,   127,   133,
1884 >     133,   235,   232,   133,  1047,   232,   232,   232,   232,    74,
1885 >    1311,   232,   232,   232,   232,   232,   232,   232,   232,  1049,
1886 >     296,   232,   232,   232,   232,   232,   232,   232,   232,   232,
1887 >     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
1888 >     232,   232,   511,   232,   232,   232,   232,   232,   232,   232,
1889 >     232,   232,   232,   232,   232,  1060,   232,   232,   222,   236,
1890 >     526,   232,   232,  1275,   232,  1273,  1254,   347,  1265,   232,
1891 >     232,   232,   232,   232,   232,   542,   232,   232,   232,   232,
1892 >     498,  1157,   232,   235,   235,   232,   232,   475,   237,   237,
1893 >     235,   232,   232,   232,  1263,  1284,   232,   228,   597,  1277,
1894 >    1259,   581,   381,   488,   115,  1127,   410,   170,    94,   400,
1895 >    1125,    -1,   244,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1896 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   273,
1897        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1898        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1899        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1900 <      -1,    -1,    -1,    -1,    -1,    -1,   304
1900 >     303
1901   };
1902  
1903 < /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1904 <   symbol of state STATE-NUM.  */
1903 >  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1904 >     symbol of state STATE-NUM.  */
1905   static const yytype_uint16 yystos[] =
1906   {
1907 <       0,   246,     0,     1,     5,    20,    23,    24,    29,    44,
1908 <      48,    49,    51,    57,    71,    81,    82,    98,   114,   150,
1909 <     159,   160,   163,   164,   217,   247,   252,   257,   279,   285,
1910 <     299,   317,   334,   348,   363,   370,   374,   384,   393,   413,
1911 <     423,   429,   433,   443,   503,   519,   539,   240,   241,   242,
1912 <     242,   318,   394,   424,   242,   434,   242,   504,   349,   414,
1913 <     335,   242,   242,   300,   364,   242,   242,   375,   385,   242,
1914 <       1,    30,    40,    99,   280,   281,   282,   283,   284,     1,
1915 <      27,    28,    33,    35,    77,    78,    84,    85,   105,   106,
1916 <     120,   121,   131,   140,   228,   229,   230,   520,   521,   522,
1917 <     523,   524,   525,   526,   527,   528,   529,   530,   531,   532,
1918 <     533,   534,   535,   536,   537,   538,   242,   242,   242,     1,
1919 <      70,   430,   431,   432,   242,     1,     8,     9,    18,    26,
1920 <      32,    36,    37,    39,    45,    54,    55,    59,    64,    68,
1921 <      69,    72,    75,    76,    83,    89,    90,    92,    93,    94,
1922 <      95,    96,   107,   115,   116,   117,   119,   122,   123,   126,
1923 <     137,   162,   166,   170,   171,   172,   173,   174,   178,   179,
1924 <     188,   218,   219,   221,   227,   232,   237,   444,   445,   446,
1925 <     447,   448,   449,   450,   451,   452,   453,   454,   455,   456,
1926 <     457,   458,   459,   460,   461,   462,   463,   464,   465,   466,
1927 <     467,   468,   469,   470,   471,   472,   473,   474,   475,   476,
1928 <     477,   478,   479,   480,   481,   482,   483,   484,   485,   486,
1929 <     487,   488,   489,   490,   491,   495,   499,   500,   501,   502,
1930 <     242,   242,   242,   242,     1,   231,   286,   287,   288,   289,
1931 <     290,     1,    97,   125,   253,   254,   255,   256,   242,   242,
1932 <       1,    34,    47,    60,    61,    62,    63,    80,   540,   541,
1933 <     542,   543,   544,   545,   546,   547,   548,     1,    30,    66,
1934 <      99,   101,   102,   142,   144,   145,   146,   147,   161,   187,
1935 <     199,   233,   234,   258,   259,   260,   261,   266,   267,   268,
1936 <     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
1937 <     242,   242,     1,    99,   371,   372,   373,   240,   243,   243,
1938 <     243,   241,   281,   243,   243,   243,   243,   243,   243,   243,
1939 <     243,   243,   243,   243,   243,   243,   243,   243,   243,   243,
1940 <     241,   521,     1,    21,    22,    25,    86,    87,    88,    91,
1941 <      99,   111,   112,   127,   128,   157,   319,   320,   321,   322,
1942 <     323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
1943 <     333,     1,     3,     6,    23,    42,    46,    65,    67,    79,
1944 <      99,   129,   158,   187,   233,   395,   396,   397,   398,   399,
1945 <     400,   401,   402,   403,   404,   408,   409,   410,   411,   412,
1946 <       1,    70,   132,   425,   426,   427,   428,   243,   241,   431,
1947 <       1,    99,   132,   165,   435,   439,   440,   441,   442,   243,
1948 <     243,   243,   243,   243,   243,   243,   243,   243,   243,   243,
1949 <     243,   243,   243,   243,   243,   243,   243,   243,   243,   243,
1950 <     243,   243,   243,   243,   243,   243,   243,   496,   243,   492,
1951 <     243,   243,   243,   243,   243,   243,   243,   243,   243,   243,
1952 <     243,   243,   243,   243,   243,   243,   243,   243,   243,   243,
1953 <     241,   445,     1,     4,    38,    41,    82,    99,   226,   505,
1954 <     506,   507,   508,   509,   513,   514,   515,     1,    23,    42,
1955 <      46,   124,   133,   134,   168,   226,   350,   351,   352,   353,
1956 <     354,   355,   356,   360,   361,   362,     1,   132,   165,   226,
1957 <     415,   419,   420,   421,   422,     1,    46,    65,    70,   129,
1958 <     336,   340,   341,   342,   346,   347,   240,   243,   241,   287,
1959 <     239,   240,   243,   243,   241,   254,     1,    23,    42,    46,
1960 <      99,   124,   143,   208,   226,   301,   302,   303,   304,   305,
1961 <     306,   307,   308,   309,   313,     1,    20,   103,   132,   365,
1962 <     366,   367,   368,   369,   243,   243,   243,   243,   243,   243,
1963 <     243,   241,   541,   240,   243,   243,   243,   243,   243,   243,
1964 <     243,   243,   243,   243,   243,   243,   243,   243,   243,   241,
1965 <     259,     1,    99,   165,   226,   376,   377,   378,   379,   380,
1966 <       1,    99,   165,   386,   387,   388,   389,   243,   241,   372,
1967 <     130,   130,   130,   240,   109,   109,   175,   175,   109,   249,
1968 <     249,   109,   109,   175,   175,   109,   249,   175,   175,   175,
1969 <     175,   175,   240,   240,   243,   243,   243,   243,   243,   243,
1970 <     243,   243,   243,   243,   243,   243,   243,   241,   320,   240,
1971 <     243,   243,   243,   243,   405,   243,   243,   243,   243,   243,
1972 <     243,   243,   243,   241,   396,   243,   243,   241,   426,   130,
1973 <     240,   243,   243,   436,   241,   440,   175,   249,   249,   109,
1974 <     175,   175,   109,   130,   175,   109,   109,   109,   175,   175,
1975 <     175,   249,   130,   175,   109,   109,   249,   109,   109,   130,
1976 <     109,   109,   175,   175,   243,   175,   243,   249,   249,   175,
1977 <     249,   175,   175,   175,   175,   176,   175,   176,   175,   175,
1978 <     249,   249,   109,   251,   130,   249,   175,   175,   175,   175,
1979 <     240,   516,   243,   243,   510,   243,   243,   241,   506,   240,
1980 <     243,   243,   357,   243,   243,   243,   243,   243,   241,   351,
1981 <     243,   416,   243,   241,   420,   240,   337,   243,   243,   243,
1982 <     241,   341,   175,   240,   242,   130,   130,   240,   240,   243,
1983 <     243,   314,   243,   243,   243,   310,   243,   241,   302,   240,
1984 <     243,   243,   243,   241,   366,   175,   175,   175,   130,   175,
1985 <     175,   249,   240,   130,   175,   130,   130,   130,   130,   130,
1986 <     130,   148,   149,   262,   263,   148,   149,   264,   265,   130,
1987 <     130,   109,   130,   130,   240,   240,   243,   381,   243,   241,
1988 <     377,   240,   243,   390,   241,   387,   130,   240,   240,   240,
1989 <     240,   240,   240,   240,   240,   152,   153,   154,   155,   156,
1990 <     248,   249,   240,   240,   240,   240,   240,   240,   240,   240,
1991 <     240,   240,   240,   240,   240,   109,   109,   249,   109,   109,
1992 <     109,   109,   130,   109,   109,   249,   249,   251,   240,   130,
1993 <     196,   197,   130,   175,   243,   130,   130,   130,   130,   109,
1994 <     130,   130,   130,   240,   130,   130,   240,   240,   130,   130,
1995 <     243,   240,   240,   240,   240,   240,   240,   240,   240,   240,
1996 <     240,   240,   240,   240,   240,   240,   240,   240,   240,   240,
1997 <     240,   240,   240,   240,   240,   240,   240,   240,   240,   240,
1998 <      60,   182,   183,   184,   185,   186,   189,   190,   193,   194,
1999 <     195,   198,   200,   201,   202,   204,   205,   206,   209,   215,
2000 <     497,   498,   240,    60,   182,   183,   184,   185,   186,   189,
2001 <     190,   193,   194,   195,   198,   200,   201,   202,   204,   205,
2002 <     206,   209,   215,   493,   494,   240,   240,   240,   240,   240,
2003 <     240,   240,   240,   240,   240,   240,   240,   240,   240,   240,
2004 <      13,    14,    15,   250,   251,   240,   240,   240,   240,   240,
2005 <     240,   240,   243,   249,   175,   243,   130,   130,   240,   130,
2006 <     175,   243,   130,   109,   130,   130,   130,   240,   130,   243,
2007 <     130,   240,   243,   130,   130,   109,   344,   345,   240,   240,
2008 <       1,    99,   165,   238,   291,   292,   293,   294,   295,   240,
2009 <     240,   130,   175,   243,   130,   130,   130,   243,   130,   240,
2010 <     130,   130,   130,   240,   240,   240,   240,   240,   240,   240,
2011 <     240,   240,   240,   240,   240,   240,   240,   240,   240,   240,
2012 <     244,   240,   244,   240,   240,   240,   240,   240,   130,   243,
2013 <     130,   240,   130,   243,   240,   240,   248,   248,   248,   248,
2014 <     248,   240,   240,   240,   240,   240,   240,   240,   240,   240,
2015 <     240,   240,   240,   240,   240,   240,   240,   240,   240,    10,
2016 <      12,   207,   220,   406,   407,   240,   240,   240,   240,   240,
2017 <     240,   240,   240,   240,   240,   240,   240,   135,   437,   438,
2018 <     240,   244,   240,   244,   250,   250,   250,    11,   177,   517,
2019 <     518,   240,   240,    11,   177,   511,   512,   240,   240,   240,
2020 <     240,    19,    43,    52,    58,    74,   100,   108,   151,   169,
2021 <     358,   359,   240,   240,   240,   240,   240,   240,   135,   417,
2022 <     418,   240,    60,   203,   207,   338,   339,   240,   240,   180,
2023 <     244,   343,   240,   243,   296,   243,   241,   292,   240,   240,
2024 <       5,    31,    50,    56,    73,    97,   104,   118,   136,   138,
2025 <     139,   191,   201,   210,   214,   216,   225,   235,   315,   316,
2026 <     240,   240,   240,    60,   182,   183,   184,   185,   186,   189,
2027 <     190,   193,   194,   195,   198,   200,   201,   202,   204,   205,
2028 <     206,   209,   215,   311,   312,   240,   240,   240,   240,   263,
2029 <     265,   240,    73,   150,   181,   191,   198,   210,   212,   213,
2030 <     225,   235,   382,   383,   240,   240,    73,   150,   181,   191,
2031 <     198,   210,   212,   213,   225,   235,   391,   392,   240,   244,
2032 <     240,   244,   498,   494,   240,   244,   240,   244,   240,   244,
2033 <     240,   244,   240,   244,   109,   345,   240,   130,   243,   211,
2034 <     251,   240,   240,   244,   240,   244,   240,   244,   240,   244,
2035 <     407,   438,   518,   512,   359,   418,   339,   240,    50,    71,
2036 <      73,   114,   190,   191,   226,   297,   298,   240,   240,   316,
2037 <     312,   383,   392,   240,   244,   298
1907 >       0,   239,     0,     1,     4,    14,    17,    18,    24,    35,
1908 >      38,    39,    66,    71,    80,   100,   101,   118,   135,   148,
1909 >     149,   169,   182,   190,   194,   240,   245,   250,   275,   281,
1910 >     287,   301,   321,   345,   359,   374,   381,   385,   395,   404,
1911 >     425,   431,   437,   441,   447,   506,   523,   232,   233,   234,
1912 >     234,   322,   405,   432,   234,   442,   234,   360,   426,   346,
1913 >     234,   282,   302,   375,   234,   234,   396,   234,   234,   386,
1914 >       1,    25,    32,   102,   276,   277,   278,   279,   280,     1,
1915 >      22,    23,    28,    63,    64,    69,    70,    75,    76,    77,
1916 >      83,    84,   108,   109,   507,   508,   509,   510,   511,   512,
1917 >     513,   514,   515,   516,   517,   518,   519,   520,   521,   522,
1918 >     234,   234,   234,     1,    65,   438,   439,   440,   234,     1,
1919 >       6,     7,    12,    20,    21,    27,    30,    31,    36,    41,
1920 >      42,    44,    45,    46,    48,    57,    61,    62,    72,    82,
1921 >      89,    91,    93,    95,    97,    98,   110,   115,   116,   117,
1922 >     119,   120,   121,   124,   150,   159,   160,   161,   162,   163,
1923 >     164,   191,   215,   216,   217,   219,   220,   221,   225,   230,
1924 >     448,   449,   450,   451,   452,   453,   454,   455,   456,   457,
1925 >     458,   459,   460,   461,   462,   463,   464,   465,   466,   467,
1926 >     468,   469,   470,   471,   472,   473,   474,   475,   476,   477,
1927 >     478,   479,   480,   481,   482,   483,   484,   485,   486,   487,
1928 >     488,   489,   490,   491,   492,   493,   494,   495,   499,   503,
1929 >     504,   505,   234,   234,   234,     1,    99,   123,   246,   247,
1930 >     248,   249,   234,   234,   234,     1,    29,    37,    49,    50,
1931 >      54,    55,    56,    79,   524,   525,   526,   527,   528,   529,
1932 >     530,   531,   532,   533,     1,    25,    59,    68,    90,    94,
1933 >     102,   105,   106,   137,   154,   157,   158,   183,   200,   201,
1934 >     202,   228,   229,   251,   252,   253,   254,   259,   260,   261,
1935 >     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
1936 >     272,   273,   274,   234,     1,   226,   288,   289,   290,   291,
1937 >     292,     1,   102,   382,   383,   384,   234,   232,   235,   235,
1938 >     235,   233,   277,   235,   235,   235,   235,   235,   235,   235,
1939 >     235,   235,   235,   235,   235,   235,   235,   233,   508,     1,
1940 >      15,    16,    19,    67,    84,    85,    86,    87,    88,    92,
1941 >      96,   102,   113,   114,   125,   147,   186,   323,   324,   325,
1942 >     326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
1943 >     336,   337,   338,   339,   340,   341,     1,     3,     5,    17,
1944 >      33,    58,    60,    67,    78,   102,   126,   146,   155,   200,
1945 >     228,   406,   407,   408,   409,   410,   411,   412,   413,   414,
1946 >     415,   416,   420,   421,   422,   423,   424,     1,    65,   129,
1947 >     433,   434,   435,   436,   235,   233,   439,     1,   102,   129,
1948 >     443,   444,   445,   446,   235,   235,   235,   235,   235,   235,
1949 >     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
1950 >     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
1951 >     235,   500,   235,   496,   235,   235,   235,   235,   235,   235,
1952 >     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
1953 >     235,   235,   235,   235,   233,   449,     1,    17,    33,    67,
1954 >     122,   130,   131,   151,   227,   361,   362,   363,   364,   365,
1955 >     366,   367,   371,   372,   373,     1,   129,   227,   427,   428,
1956 >     429,   430,     1,    58,    65,    67,   126,   347,   351,   352,
1957 >     353,   357,   358,   232,   235,   235,   233,   247,     1,    81,
1958 >     175,   283,   284,   285,   286,     1,    17,    33,    67,   102,
1959 >     122,   138,   155,   156,   205,   227,   303,   304,   305,   306,
1960 >     307,   308,   309,   310,   311,   312,   313,   317,     1,    35,
1961 >      81,   129,   376,   377,   378,   379,   380,   235,   235,   235,
1962 >     235,   235,   235,   235,   235,   233,   525,   232,   235,   235,
1963 >     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
1964 >     235,   235,   235,   235,   235,   235,   233,   252,     1,   102,
1965 >     223,   397,   398,   399,   400,   232,   235,   233,   289,   175,
1966 >     235,   233,   383,     1,   102,   223,   227,   387,   388,   389,
1967 >     390,   391,   127,   127,   127,   232,   112,   112,   214,   112,
1968 >     112,   242,   112,   242,   112,   242,   242,   112,   112,   214,
1969 >     214,   232,   232,   235,   235,   235,   342,   235,   235,   235,
1970 >     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
1971 >     233,   324,   232,   235,   235,   235,   235,   235,   235,   417,
1972 >     235,   235,   235,   235,   235,   235,   235,   233,   407,   235,
1973 >     235,   233,   434,   127,   232,   235,   235,   233,   444,   214,
1974 >     242,   242,   214,   112,   214,   112,   127,   214,   242,   214,
1975 >     112,   112,   242,   112,   214,   214,   214,   242,   112,   112,
1976 >     242,   112,   112,   112,   112,   214,   235,   214,   235,   214,
1977 >     242,   242,   214,   214,   214,   214,   218,   214,   218,   214,
1978 >     214,   214,   127,   112,   242,   214,   214,   242,   242,   214,
1979 >     214,   232,   232,   235,   235,   368,   235,   235,   235,   235,
1980 >     235,   233,   362,   235,   235,   233,   428,   232,   235,   235,
1981 >     348,   235,   233,   352,   127,   127,   232,   232,   235,   235,
1982 >     233,   284,   232,   235,   235,   318,   235,   235,   235,   235,
1983 >     235,   314,   235,   233,   304,   232,   235,   235,   235,   233,
1984 >     377,   214,   214,   214,   127,   214,   214,   214,   242,   232,
1985 >     127,   214,   127,   112,   112,   127,   127,   127,   127,   127,
1986 >     127,   127,   112,   127,   203,   204,   255,   256,   203,   204,
1987 >     257,   258,   127,   127,   232,   232,   235,   401,   233,   398,
1988 >     214,   232,   234,   127,   232,   232,   235,   392,   235,   233,
1989 >     388,   232,   232,   232,   232,   232,   232,   232,   139,   140,
1990 >     141,   142,   143,   144,   145,   241,   242,   232,   232,   232,
1991 >     232,   232,   232,   232,   232,   232,   232,   112,   112,   242,
1992 >     235,   112,   112,   112,   242,   112,   112,   242,   127,   112,
1993 >     112,   242,   112,   244,   244,   232,   127,   179,   180,   127,
1994 >     214,   127,   127,   235,   127,   127,   112,   127,   127,   127,
1995 >     127,   232,   127,   127,   232,   232,   127,   127,   232,   232,
1996 >     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
1997 >     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
1998 >     232,   232,   232,   232,   232,   232,    49,   166,   167,   168,
1999 >     170,   171,   173,   174,   176,   178,   181,   184,   185,   187,
2000 >     192,   196,   197,   198,   206,   211,   501,   502,   232,    49,
2001 >      51,    52,   166,   167,   168,   170,   171,   173,   174,   176,
2002 >     178,   181,   184,   185,   187,   192,   196,   197,   198,   206,
2003 >     211,   497,   498,   232,   232,   232,   232,   232,   232,   232,
2004 >     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
2005 >     232,   232,   232,   232,   232,   127,   214,   235,   127,   112,
2006 >     127,   127,   127,   232,   127,   127,   232,   127,   127,   235,
2007 >     112,   355,   356,   232,   232,   232,   127,   127,   232,   127,
2008 >     214,   235,   127,   127,   127,   127,   214,   235,   127,   232,
2009 >     127,   127,   127,   232,   232,   232,   232,   232,   232,   232,
2010 >     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
2011 >     232,   232,   232,   232,   232,   232,   232,   236,   232,   236,
2012 >     232,   232,   127,   235,   232,   232,     1,   102,   195,   223,
2013 >     293,   294,   295,   296,   297,   232,   127,   235,   127,   232,
2014 >     241,   241,   241,   241,   241,   241,   241,   232,   232,   232,
2015 >      53,   128,   343,   344,   232,   232,   232,   232,   232,   232,
2016 >     232,   232,   232,   232,   232,     9,    10,    11,   243,   244,
2017 >     232,   232,   232,   232,   232,   232,   232,   232,   232,     8,
2018 >     199,   418,   419,   232,   232,   232,   232,   232,   232,   232,
2019 >     232,   232,   232,   232,   232,   236,   232,   236,   232,   232,
2020 >      13,    34,    43,    74,   103,   104,   111,   136,   152,   213,
2021 >     369,   370,   232,   232,   232,   232,   232,   232,   232,   232,
2022 >     232,    49,   189,   199,   349,   350,   222,   236,   354,   232,
2023 >     232,   232,   232,     4,    18,    26,    40,    71,    73,    99,
2024 >     132,   134,   153,   172,   177,   181,   188,   193,   207,   210,
2025 >     212,   224,   231,   319,   320,   232,   232,   232,   232,   232,
2026 >      49,    51,    52,   166,   167,   168,   170,   171,   173,   174,
2027 >     176,   178,   181,   184,   185,   187,   192,   196,   197,   198,
2028 >     206,   211,   315,   316,   232,   232,   232,   232,   256,   258,
2029 >     232,    73,   135,   165,   172,   181,   207,   209,   210,   224,
2030 >     231,   402,   403,   232,   235,   235,   298,   233,   294,   232,
2031 >      73,   135,   165,   172,   181,   207,   209,   210,   224,   231,
2032 >     393,   394,   232,   232,   236,   243,   243,   243,   232,   236,
2033 >     502,   498,   232,   236,   232,   236,   112,   356,   232,   237,
2034 >     237,   237,   232,   236,   232,   236,   232,   236,   127,   208,
2035 >     244,   235,   232,   232,   236,   344,   419,   370,   350,   133,
2036 >     133,   133,   320,   316,   403,   232,   232,   232,    40,    71,
2037 >      73,   118,   135,   171,   172,   227,   231,   299,   300,   394,
2038 >     232,   236,   300
2039   };
2040  
2041 < #define yyerrok         (yyerrstatus = 0)
2042 < #define yyclearin       (yychar = YYEMPTY)
2043 < #define YYEMPTY         (-2)
2044 < #define YYEOF           0
2045 <
2046 < #define YYACCEPT        goto yyacceptlab
2047 < #define YYABORT         goto yyabortlab
2048 < #define YYERROR         goto yyerrorlab
2049 <
2050 <
2051 < /* Like YYERROR except do call yyerror.  This remains here temporarily
2052 <   to ease the transition to the new meaning of YYERROR, for GCC.
2053 <   Once GCC version 2 has supplanted version 1, this can go.  However,
2054 <   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
2055 <   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2056 <   discussed.  */
2057 <
2058 < #define YYFAIL          goto yyerrlab
2059 < #if defined YYFAIL
2060 <  /* This is here to suppress warnings from the GCC cpp's
2061 <     -Wunused-macros.  Normally we don't worry about that warning, but
2062 <     some users do, and we want to make it easy for users to remove
2063 <     YYFAIL uses, which will produce warnings from Bison 2.5.  */
2064 < #endif
2041 >  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
2042 > static const yytype_uint16 yyr1[] =
2043 > {
2044 >       0,   238,   239,   239,   240,   240,   240,   240,   240,   240,
2045 >     240,   240,   240,   240,   240,   240,   240,   240,   240,   240,
2046 >     240,   240,   240,   240,   240,   240,   240,   241,   241,   242,
2047 >     242,   242,   242,   242,   242,   242,   242,   243,   243,   244,
2048 >     244,   244,   244,   245,   246,   246,   247,   247,   247,   248,
2049 >     249,   250,   251,   251,   252,   252,   252,   252,   252,   252,
2050 >     252,   252,   252,   252,   252,   252,   252,   252,   252,   252,
2051 >     252,   252,   252,   253,   254,   255,   255,   256,   256,   257,
2052 >     257,   258,   258,   259,   260,   261,   262,   263,   264,   265,
2053 >     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
2054 >     276,   276,   277,   277,   277,   277,   278,   279,   280,   282,
2055 >     281,   283,   283,   284,   284,   284,   285,   286,   287,   288,
2056 >     288,   289,   289,   289,   290,   292,   291,   293,   293,   294,
2057 >     294,   294,   294,   295,   296,   296,   298,   297,   299,   299,
2058 >     300,   300,   300,   300,   300,   300,   300,   300,   300,   302,
2059 >     301,   303,   303,   304,   304,   304,   304,   304,   304,   304,
2060 >     304,   304,   304,   304,   305,   306,   307,   308,   309,   310,
2061 >     311,   312,   314,   313,   315,   315,   316,   316,   316,   316,
2062 >     316,   316,   316,   316,   316,   316,   316,   316,   316,   316,
2063 >     316,   316,   316,   316,   316,   316,   316,   316,   318,   317,
2064 >     319,   319,   320,   320,   320,   320,   320,   320,   320,   320,
2065 >     320,   320,   320,   320,   320,   320,   320,   320,   320,   320,
2066 >     320,   320,   320,   320,   320,   322,   321,   323,   323,   324,
2067 >     324,   324,   324,   324,   324,   324,   324,   324,   324,   324,
2068 >     324,   324,   324,   324,   324,   324,   324,   325,   326,   327,
2069 >     328,   329,   330,   331,   332,   333,   334,   335,   336,   337,
2070 >     338,   339,   340,   342,   341,   343,   343,   344,   344,   346,
2071 >     345,   348,   347,   349,   349,   350,   350,   350,   351,   351,
2072 >     352,   352,   352,   352,   352,   354,   353,   355,   355,   356,
2073 >     356,   357,   358,   360,   359,   361,   361,   362,   362,   362,
2074 >     362,   362,   362,   362,   362,   362,   363,   364,   365,   366,
2075 >     368,   367,   369,   369,   370,   370,   370,   370,   370,   370,
2076 >     370,   370,   370,   370,   371,   372,   373,   375,   374,   376,
2077 >     376,   377,   377,   377,   377,   378,   379,   380,   381,   382,
2078 >     382,   383,   383,   384,   386,   385,   387,   387,   388,   388,
2079 >     388,   388,   389,   390,   392,   391,   393,   393,   394,   394,
2080 >     394,   394,   394,   394,   394,   394,   394,   394,   396,   395,
2081 >     397,   397,   398,   398,   398,   399,   401,   400,   402,   402,
2082 >     403,   403,   403,   403,   403,   403,   403,   403,   403,   403,
2083 >     405,   404,   406,   406,   407,   407,   407,   407,   407,   407,
2084 >     407,   407,   407,   407,   407,   407,   407,   407,   407,   408,
2085 >     409,   410,   411,   412,   413,   414,   415,   415,   417,   416,
2086 >     418,   418,   419,   419,   420,   421,   422,   423,   424,   426,
2087 >     425,   427,   427,   428,   428,   428,   429,   430,   432,   431,
2088 >     433,   433,   434,   434,   434,   435,   436,   437,   438,   438,
2089 >     439,   439,   440,   442,   441,   443,   443,   444,   444,   444,
2090 >     445,   446,   447,   448,   448,   449,   449,   449,   449,   449,
2091 >     449,   449,   449,   449,   449,   449,   449,   449,   449,   449,
2092 >     449,   449,   449,   449,   449,   449,   449,   449,   449,   449,
2093 >     449,   449,   449,   449,   449,   449,   449,   449,   449,   449,
2094 >     449,   449,   449,   449,   449,   449,   449,   449,   449,   449,
2095 >     449,   449,   449,   449,   449,   449,   450,   451,   452,   453,
2096 >     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
2097 >     464,   465,   466,   467,   468,   469,   470,   471,   472,   473,
2098 >     474,   475,   476,   476,   477,   477,   478,   479,   480,   481,
2099 >     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
2100 >     492,   493,   494,   496,   495,   497,   497,   498,   498,   498,
2101 >     498,   498,   498,   498,   498,   498,   498,   498,   498,   498,
2102 >     498,   498,   498,   498,   498,   498,   498,   498,   498,   500,
2103 >     499,   501,   501,   502,   502,   502,   502,   502,   502,   502,
2104 >     502,   502,   502,   502,   502,   502,   502,   502,   502,   502,
2105 >     502,   502,   502,   503,   504,   505,   506,   507,   507,   508,
2106 >     508,   508,   508,   508,   508,   508,   508,   508,   508,   508,
2107 >     508,   508,   508,   508,   509,   510,   511,   512,   513,   514,
2108 >     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
2109 >     524,   525,   525,   525,   525,   525,   525,   525,   525,   525,
2110 >     526,   527,   528,   529,   530,   531,   532,   533
2111 > };
2112  
2113 < #define YYRECOVERING()  (!!yyerrstatus)
2113 >  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
2114 > static const yytype_uint8 yyr2[] =
2115 > {
2116 >       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
2117 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2118 >       1,     1,     1,     1,     1,     2,     2,     0,     1,     2,
2119 >       3,     3,     3,     3,     3,     3,     3,     0,     1,     2,
2120 >       3,     3,     3,     5,     2,     1,     1,     1,     2,     4,
2121 >       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
2122 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2123 >       1,     1,     2,     4,     4,     3,     1,     1,     1,     3,
2124 >       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
2125 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     5,
2126 >       2,     1,     1,     1,     1,     2,     4,     4,     4,     0,
2127 >       6,     2,     1,     1,     1,     2,     4,     4,     5,     2,
2128 >       1,     1,     1,     2,     4,     0,     6,     2,     1,     1,
2129 >       1,     1,     2,     4,     4,     4,     0,     5,     3,     1,
2130 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
2131 >       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
2132 >       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
2133 >       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
2134 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2135 >       1,     1,     1,     1,     1,     1,     1,     1,     0,     5,
2136 >       3,     1,     3,     1,     3,     1,     3,     1,     1,     1,
2137 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2138 >       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
2139 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2140 >       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
2141 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2142 >       4,     4,     4,     0,     5,     3,     1,     1,     1,     0,
2143 >       6,     0,     5,     3,     1,     1,     1,     1,     2,     1,
2144 >       1,     1,     1,     1,     2,     0,     5,     3,     1,     1,
2145 >       3,     4,     4,     0,     6,     2,     1,     1,     1,     1,
2146 >       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
2147 >       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
2148 >       1,     1,     1,     1,     4,     4,     4,     0,     6,     2,
2149 >       1,     1,     1,     1,     2,     4,     4,     4,     5,     2,
2150 >       1,     1,     1,     4,     0,     6,     2,     1,     1,     1,
2151 >       1,     2,     4,     4,     0,     5,     3,     1,     1,     1,
2152 >       1,     1,     1,     1,     1,     1,     1,     1,     0,     6,
2153 >       2,     1,     1,     1,     2,     4,     0,     5,     3,     1,
2154 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2155 >       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
2156 >       1,     1,     1,     1,     1,     1,     1,     1,     2,     4,
2157 >       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
2158 >       3,     1,     1,     1,     4,     4,     4,     4,     4,     0,
2159 >       6,     2,     1,     1,     1,     1,     4,     4,     0,     6,
2160 >       2,     1,     1,     1,     1,     4,     4,     5,     2,     1,
2161 >       1,     1,     4,     0,     6,     2,     1,     1,     1,     1,
2162 >       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
2163 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2164 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2165 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2166 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2167 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     4,
2168 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2169 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2170 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2171 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2172 >       4,     4,     4,     0,     5,     3,     1,     1,     1,     1,
2173 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2174 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
2175 >       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
2176 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2177 >       1,     1,     1,     4,     4,     4,     5,     2,     1,     1,
2178 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2179 >       1,     1,     1,     1,     4,     4,     4,     4,     4,     4,
2180 >       4,     4,     4,     4,     4,     4,     4,     4,     5,     2,
2181 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2182 >       4,     4,     4,     4,     4,     4,     4,     4
2183 > };
2184  
2449 #define YYBACKUP(Token, Value)                                  \
2450 do                                                              \
2451  if (yychar == YYEMPTY && yylen == 1)                          \
2452    {                                                           \
2453      yychar = (Token);                                         \
2454      yylval = (Value);                                         \
2455      YYPOPSTACK (1);                                           \
2456      goto yybackup;                                            \
2457    }                                                           \
2458  else                                                          \
2459    {                                                           \
2460      yyerror (YY_("syntax error: cannot back up")); \
2461      YYERROR;                                                  \
2462    }                                                           \
2463 while (YYID (0))
2464
2465
2466 #define YYTERROR        1
2467 #define YYERRCODE       256
2468
2469
2470 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2471   If N is 0, then set CURRENT to the empty location which ends
2472   the previous symbol: RHS[0] (always defined).  */
2473
2474 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2475 #ifndef YYLLOC_DEFAULT
2476 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2477    do                                                                  \
2478      if (YYID (N))                                                    \
2479        {                                                               \
2480          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2481          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2482          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2483          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2484        }                                                               \
2485      else                                                              \
2486        {                                                               \
2487          (Current).first_line   = (Current).last_line   =              \
2488            YYRHSLOC (Rhs, 0).last_line;                                \
2489          (Current).first_column = (Current).last_column =              \
2490            YYRHSLOC (Rhs, 0).last_column;                              \
2491        }                                                               \
2492    while (YYID (0))
2493 #endif
2185  
2186 + #define yyerrok         (yyerrstatus = 0)
2187 + #define yyclearin       (yychar = YYEMPTY)
2188 + #define YYEMPTY         (-2)
2189 + #define YYEOF           0
2190 +
2191 + #define YYACCEPT        goto yyacceptlab
2192 + #define YYABORT         goto yyabortlab
2193 + #define YYERROR         goto yyerrorlab
2194  
2496 /* This macro is provided for backward compatibility. */
2195  
2196 < #ifndef YY_LOCATION_PRINT
2499 < # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2500 < #endif
2196 > #define YYRECOVERING()  (!!yyerrstatus)
2197  
2198 + #define YYBACKUP(Token, Value)                                  \
2199 + do                                                              \
2200 +  if (yychar == YYEMPTY)                                        \
2201 +    {                                                           \
2202 +      yychar = (Token);                                         \
2203 +      yylval = (Value);                                         \
2204 +      YYPOPSTACK (yylen);                                       \
2205 +      yystate = *yyssp;                                         \
2206 +      goto yybackup;                                            \
2207 +    }                                                           \
2208 +  else                                                          \
2209 +    {                                                           \
2210 +      yyerror (YY_("syntax error: cannot back up")); \
2211 +      YYERROR;                                                  \
2212 +    }                                                           \
2213 + while (0)
2214 +
2215 + /* Error token number */
2216 + #define YYTERROR        1
2217 + #define YYERRCODE       256
2218  
2503 /* YYLEX -- calling `yylex' with the right arguments.  */
2219  
2505 #ifdef YYLEX_PARAM
2506 # define YYLEX yylex (YYLEX_PARAM)
2507 #else
2508 # define YYLEX yylex ()
2509 #endif
2220  
2221   /* Enable debugging if requested.  */
2222   #if YYDEBUG
# Line 2516 | Line 2226 | while (YYID (0))
2226   #  define YYFPRINTF fprintf
2227   # endif
2228  
2229 < # define YYDPRINTF(Args)                        \
2230 < do {                                            \
2231 <  if (yydebug)                                  \
2232 <    YYFPRINTF Args;                             \
2233 < } while (YYID (0))
2524 <
2525 < # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2526 < do {                                                                      \
2527 <  if (yydebug)                                                            \
2528 <    {                                                                     \
2529 <      YYFPRINTF (stderr, "%s ", Title);                                   \
2530 <      yy_symbol_print (stderr,                                            \
2531 <                  Type, Value); \
2532 <      YYFPRINTF (stderr, "\n");                                           \
2533 <    }                                                                     \
2534 < } while (YYID (0))
2229 > # define YYDPRINTF(Args)                        \
2230 > do {                                            \
2231 >  if (yydebug)                                  \
2232 >    YYFPRINTF Args;                             \
2233 > } while (0)
2234  
2235 + /* This macro is provided for backward compatibility. */
2236 + #ifndef YY_LOCATION_PRINT
2237 + # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2238 + #endif
2239  
2537 /*--------------------------------.
2538 | Print this symbol on YYOUTPUT.  |
2539 `--------------------------------*/
2240  
2241 < /*ARGSUSED*/
2242 < #if (defined __STDC__ || defined __C99__FUNC__ \
2243 <     || defined __cplusplus || defined _MSC_VER)
2241 > # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2242 > do {                                                                      \
2243 >  if (yydebug)                                                            \
2244 >    {                                                                     \
2245 >      YYFPRINTF (stderr, "%s ", Title);                                   \
2246 >      yy_symbol_print (stderr,                                            \
2247 >                  Type, Value); \
2248 >      YYFPRINTF (stderr, "\n");                                           \
2249 >    }                                                                     \
2250 > } while (0)
2251 >
2252 >
2253 > /*----------------------------------------.
2254 > | Print this symbol's value on YYOUTPUT.  |
2255 > `----------------------------------------*/
2256 >
2257   static void
2258   yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2546 #else
2547 static void
2548 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
2549    FILE *yyoutput;
2550    int yytype;
2551    YYSTYPE const * const yyvaluep;
2552 #endif
2259   {
2260 +  FILE *yyo = yyoutput;
2261 +  YYUSE (yyo);
2262    if (!yyvaluep)
2263      return;
2264   # ifdef YYPRINT
2265    if (yytype < YYNTOKENS)
2266      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2559 # else
2560  YYUSE (yyoutput);
2267   # endif
2268 <  switch (yytype)
2563 <    {
2564 <      default:
2565 <        break;
2566 <    }
2268 >  YYUSE (yytype);
2269   }
2270  
2271  
# Line 2571 | Line 2273 | yy_symbol_value_print (yyoutput, yytype,
2273   | Print this symbol on YYOUTPUT.  |
2274   `--------------------------------*/
2275  
2574 #if (defined __STDC__ || defined __C99__FUNC__ \
2575     || defined __cplusplus || defined _MSC_VER)
2276   static void
2277   yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2578 #else
2579 static void
2580 yy_symbol_print (yyoutput, yytype, yyvaluep)
2581    FILE *yyoutput;
2582    int yytype;
2583    YYSTYPE const * const yyvaluep;
2584 #endif
2278   {
2279 <  if (yytype < YYNTOKENS)
2280 <    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2588 <  else
2589 <    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2279 >  YYFPRINTF (yyoutput, "%s %s (",
2280 >             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2281  
2282    yy_symbol_value_print (yyoutput, yytype, yyvaluep);
2283    YYFPRINTF (yyoutput, ")");
# Line 2597 | Line 2288 | yy_symbol_print (yyoutput, yytype, yyval
2288   | TOP (included).                                                   |
2289   `------------------------------------------------------------------*/
2290  
2600 #if (defined __STDC__ || defined __C99__FUNC__ \
2601     || defined __cplusplus || defined _MSC_VER)
2291   static void
2292   yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2604 #else
2605 static void
2606 yy_stack_print (yybottom, yytop)
2607    yytype_int16 *yybottom;
2608    yytype_int16 *yytop;
2609 #endif
2293   {
2294    YYFPRINTF (stderr, "Stack now");
2295    for (; yybottom <= yytop; yybottom++)
# Line 2617 | Line 2300 | yy_stack_print (yybottom, yytop)
2300    YYFPRINTF (stderr, "\n");
2301   }
2302  
2303 < # define YY_STACK_PRINT(Bottom, Top)                            \
2304 < do {                                                            \
2305 <  if (yydebug)                                                  \
2306 <    yy_stack_print ((Bottom), (Top));                           \
2307 < } while (YYID (0))
2303 > # define YY_STACK_PRINT(Bottom, Top)                            \
2304 > do {                                                            \
2305 >  if (yydebug)                                                  \
2306 >    yy_stack_print ((Bottom), (Top));                           \
2307 > } while (0)
2308  
2309  
2310   /*------------------------------------------------.
2311   | Report that the YYRULE is going to be reduced.  |
2312   `------------------------------------------------*/
2313  
2631 #if (defined __STDC__ || defined __C99__FUNC__ \
2632     || defined __cplusplus || defined _MSC_VER)
2314   static void
2315 < yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
2635 < #else
2636 < static void
2637 < yy_reduce_print (yyvsp, yyrule)
2638 <    YYSTYPE *yyvsp;
2639 <    int yyrule;
2640 < #endif
2315 > yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
2316   {
2317 +  unsigned long int yylno = yyrline[yyrule];
2318    int yynrhs = yyr2[yyrule];
2319    int yyi;
2644  unsigned long int yylno = yyrline[yyrule];
2320    YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2321 <             yyrule - 1, yylno);
2321 >             yyrule - 1, yylno);
2322    /* The symbols being reduced.  */
2323    for (yyi = 0; yyi < yynrhs; yyi++)
2324      {
2325        YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2326 <      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
2327 <                       &(yyvsp[(yyi + 1) - (yynrhs)])
2328 <                                       );
2326 >      yy_symbol_print (stderr,
2327 >                       yystos[yyssp[yyi + 1 - yynrhs]],
2328 >                       &(yyvsp[(yyi + 1) - (yynrhs)])
2329 >                                              );
2330        YYFPRINTF (stderr, "\n");
2331      }
2332   }
2333  
2334 < # define YY_REDUCE_PRINT(Rule)          \
2335 < do {                                    \
2336 <  if (yydebug)                          \
2337 <    yy_reduce_print (yyvsp, Rule); \
2338 < } while (YYID (0))
2334 > # define YY_REDUCE_PRINT(Rule)          \
2335 > do {                                    \
2336 >  if (yydebug)                          \
2337 >    yy_reduce_print (yyssp, yyvsp, Rule); \
2338 > } while (0)
2339  
2340   /* Nonzero means print parse trace.  It is left uninitialized so that
2341     multiple parsers can coexist.  */
# Line 2673 | Line 2349 | int yydebug;
2349  
2350  
2351   /* YYINITDEPTH -- initial size of the parser's stacks.  */
2352 < #ifndef YYINITDEPTH
2352 > #ifndef YYINITDEPTH
2353   # define YYINITDEPTH 200
2354   #endif
2355  
# Line 2696 | Line 2372 | int yydebug;
2372   #   define yystrlen strlen
2373   #  else
2374   /* Return the length of YYSTR.  */
2699 #if (defined __STDC__ || defined __C99__FUNC__ \
2700     || defined __cplusplus || defined _MSC_VER)
2375   static YYSIZE_T
2376   yystrlen (const char *yystr)
2703 #else
2704 static YYSIZE_T
2705 yystrlen (yystr)
2706    const char *yystr;
2707 #endif
2377   {
2378    YYSIZE_T yylen;
2379    for (yylen = 0; yystr[yylen]; yylen++)
# Line 2720 | Line 2389 | yystrlen (yystr)
2389   #  else
2390   /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2391     YYDEST.  */
2723 #if (defined __STDC__ || defined __C99__FUNC__ \
2724     || defined __cplusplus || defined _MSC_VER)
2392   static char *
2393   yystpcpy (char *yydest, const char *yysrc)
2727 #else
2728 static char *
2729 yystpcpy (yydest, yysrc)
2730    char *yydest;
2731    const char *yysrc;
2732 #endif
2394   {
2395    char *yyd = yydest;
2396    const char *yys = yysrc;
# Line 2759 | Line 2420 | yytnamerr (char *yyres, const char *yyst
2420        char const *yyp = yystr;
2421  
2422        for (;;)
2423 <        switch (*++yyp)
2424 <          {
2425 <          case '\'':
2426 <          case ',':
2427 <            goto do_not_strip_quotes;
2428 <
2429 <          case '\\':
2430 <            if (*++yyp != '\\')
2431 <              goto do_not_strip_quotes;
2432 <            /* Fall through.  */
2433 <          default:
2434 <            if (yyres)
2435 <              yyres[yyn] = *yyp;
2436 <            yyn++;
2437 <            break;
2438 <
2439 <          case '"':
2440 <            if (yyres)
2441 <              yyres[yyn] = '\0';
2442 <            return yyn;
2443 <          }
2423 >        switch (*++yyp)
2424 >          {
2425 >          case '\'':
2426 >          case ',':
2427 >            goto do_not_strip_quotes;
2428 >
2429 >          case '\\':
2430 >            if (*++yyp != '\\')
2431 >              goto do_not_strip_quotes;
2432 >            /* Fall through.  */
2433 >          default:
2434 >            if (yyres)
2435 >              yyres[yyn] = *yyp;
2436 >            yyn++;
2437 >            break;
2438 >
2439 >          case '"':
2440 >            if (yyres)
2441 >              yyres[yyn] = '\0';
2442 >            return yyn;
2443 >          }
2444      do_not_strip_quotes: ;
2445      }
2446  
# Line 2802 | Line 2463 | static int
2463   yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2464                  yytype_int16 *yyssp, int yytoken)
2465   {
2466 <  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
2466 >  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
2467    YYSIZE_T yysize = yysize0;
2807  YYSIZE_T yysize1;
2468    enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2469    /* Internationalized format string. */
2470 <  const char *yyformat = 0;
2470 >  const char *yyformat = YY_NULLPTR;
2471    /* Arguments of yyformat. */
2472    char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2473    /* Number of reported tokens (one for the "unexpected", one per
# Line 2815 | Line 2475 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2475    int yycount = 0;
2476  
2477    /* There are many possibilities here to consider:
2818     - Assume YYFAIL is not used.  It's too flawed to consider.  See
2819       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
2820       for details.  YYERROR is fine as it does not invoke this
2821       function.
2478       - If this state is a consistent state with a default action, then
2479         the only way this function was invoked is if the default action
2480         is an error action.  In that case, don't check for expected
# Line 2867 | Line 2523 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2523                      break;
2524                    }
2525                  yyarg[yycount++] = yytname[yyx];
2526 <                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
2527 <                if (! (yysize <= yysize1
2528 <                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2529 <                  return 2;
2530 <                yysize = yysize1;
2526 >                {
2527 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2528 >                  if (! (yysize <= yysize1
2529 >                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2530 >                    return 2;
2531 >                  yysize = yysize1;
2532 >                }
2533                }
2534          }
2535      }
# Line 2891 | Line 2549 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2549   # undef YYCASE_
2550      }
2551  
2552 <  yysize1 = yysize + yystrlen (yyformat);
2553 <  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2554 <    return 2;
2555 <  yysize = yysize1;
2552 >  {
2553 >    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2554 >    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2555 >      return 2;
2556 >    yysize = yysize1;
2557 >  }
2558  
2559    if (*yymsg_alloc < yysize)
2560      {
# Line 2931 | Line 2591 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2591   | Release the memory associated to this symbol.  |
2592   `-----------------------------------------------*/
2593  
2934 /*ARGSUSED*/
2935 #if (defined __STDC__ || defined __C99__FUNC__ \
2936     || defined __cplusplus || defined _MSC_VER)
2594   static void
2595   yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
2939 #else
2940 static void
2941 yydestruct (yymsg, yytype, yyvaluep)
2942    const char *yymsg;
2943    int yytype;
2944    YYSTYPE *yyvaluep;
2945 #endif
2596   {
2597    YYUSE (yyvaluep);
2948
2598    if (!yymsg)
2599      yymsg = "Deleting";
2600    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2601  
2602 <  switch (yytype)
2603 <    {
2604 <
2956 <      default:
2957 <        break;
2958 <    }
2602 >  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2603 >  YYUSE (yytype);
2604 >  YY_IGNORE_MAYBE_UNINITIALIZED_END
2605   }
2606  
2607  
2962 /* Prevent warnings from -Wmissing-prototypes.  */
2963 #ifdef YYPARSE_PARAM
2964 #if defined __STDC__ || defined __cplusplus
2965 int yyparse (void *YYPARSE_PARAM);
2966 #else
2967 int yyparse ();
2968 #endif
2969 #else /* ! YYPARSE_PARAM */
2970 #if defined __STDC__ || defined __cplusplus
2971 int yyparse (void);
2972 #else
2973 int yyparse ();
2974 #endif
2975 #endif /* ! YYPARSE_PARAM */
2608  
2609  
2610   /* The lookahead symbol.  */
# Line 2980 | Line 2612 | int yychar;
2612  
2613   /* The semantic value of the lookahead symbol.  */
2614   YYSTYPE yylval;
2983
2615   /* Number of syntax errors so far.  */
2616   int yynerrs;
2617  
# Line 2989 | Line 2620 | int yynerrs;
2620   | yyparse.  |
2621   `----------*/
2622  
2992 #ifdef YYPARSE_PARAM
2993 #if (defined __STDC__ || defined __C99__FUNC__ \
2994     || defined __cplusplus || defined _MSC_VER)
2995 int
2996 yyparse (void *YYPARSE_PARAM)
2997 #else
2998 int
2999 yyparse (YYPARSE_PARAM)
3000    void *YYPARSE_PARAM;
3001 #endif
3002 #else /* ! YYPARSE_PARAM */
3003 #if (defined __STDC__ || defined __C99__FUNC__ \
3004     || defined __cplusplus || defined _MSC_VER)
2623   int
2624   yyparse (void)
3007 #else
3008 int
3009 yyparse ()
3010
3011 #endif
3012 #endif
2625   {
2626      int yystate;
2627      /* Number of tokens to shift before error messages enabled.  */
2628      int yyerrstatus;
2629  
2630      /* The stacks and their tools:
2631 <       `yyss': related to states.
2632 <       `yyvs': related to semantic values.
2631 >       'yyss': related to states.
2632 >       'yyvs': related to semantic values.
2633  
2634 <       Refer to the stacks thru separate pointers, to allow yyoverflow
2634 >       Refer to the stacks through separate pointers, to allow yyoverflow
2635         to reallocate them elsewhere.  */
2636  
2637      /* The state stack.  */
# Line 3037 | Line 2649 | yyparse ()
2649    int yyn;
2650    int yyresult;
2651    /* Lookahead token as an internal (translated) token number.  */
2652 <  int yytoken;
2652 >  int yytoken = 0;
2653    /* The variables used to return semantic value and location from the
2654       action routines.  */
2655    YYSTYPE yyval;
# Line 3055 | Line 2667 | yyparse ()
2667       Keep to zero when no symbol should be popped.  */
2668    int yylen = 0;
2669  
2670 <  yytoken = 0;
2671 <  yyss = yyssa;
3060 <  yyvs = yyvsa;
2670 >  yyssp = yyss = yyssa;
2671 >  yyvsp = yyvs = yyvsa;
2672    yystacksize = YYINITDEPTH;
2673  
2674    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 3066 | Line 2677 | yyparse ()
2677    yyerrstatus = 0;
2678    yynerrs = 0;
2679    yychar = YYEMPTY; /* Cause a token to be read.  */
3069
3070  /* Initialize stack pointers.
3071     Waste one element of value and location stack
3072     so that they stay on the same level as the state stack.
3073     The wasted elements are never initialized.  */
3074  yyssp = yyss;
3075  yyvsp = yyvs;
3076
2680    goto yysetstate;
2681  
2682   /*------------------------------------------------------------.
# Line 3094 | Line 2697 | yyparse ()
2697  
2698   #ifdef yyoverflow
2699        {
2700 <        /* Give user a chance to reallocate the stack.  Use copies of
2701 <           these so that the &'s don't force the real ones into
2702 <           memory.  */
2703 <        YYSTYPE *yyvs1 = yyvs;
2704 <        yytype_int16 *yyss1 = yyss;
2705 <
2706 <        /* Each stack pointer address is followed by the size of the
2707 <           data in use in that stack, in bytes.  This used to be a
2708 <           conditional around just the two extra args, but that might
2709 <           be undefined if yyoverflow is a macro.  */
2710 <        yyoverflow (YY_("memory exhausted"),
2711 <                    &yyss1, yysize * sizeof (*yyssp),
2712 <                    &yyvs1, yysize * sizeof (*yyvsp),
2713 <                    &yystacksize);
2700 >        /* Give user a chance to reallocate the stack.  Use copies of
2701 >           these so that the &'s don't force the real ones into
2702 >           memory.  */
2703 >        YYSTYPE *yyvs1 = yyvs;
2704 >        yytype_int16 *yyss1 = yyss;
2705 >
2706 >        /* Each stack pointer address is followed by the size of the
2707 >           data in use in that stack, in bytes.  This used to be a
2708 >           conditional around just the two extra args, but that might
2709 >           be undefined if yyoverflow is a macro.  */
2710 >        yyoverflow (YY_("memory exhausted"),
2711 >                    &yyss1, yysize * sizeof (*yyssp),
2712 >                    &yyvs1, yysize * sizeof (*yyvsp),
2713 >                    &yystacksize);
2714  
2715 <        yyss = yyss1;
2716 <        yyvs = yyvs1;
2715 >        yyss = yyss1;
2716 >        yyvs = yyvs1;
2717        }
2718   #else /* no yyoverflow */
2719   # ifndef YYSTACK_RELOCATE
# Line 3118 | Line 2721 | yyparse ()
2721   # else
2722        /* Extend the stack our own way.  */
2723        if (YYMAXDEPTH <= yystacksize)
2724 <        goto yyexhaustedlab;
2724 >        goto yyexhaustedlab;
2725        yystacksize *= 2;
2726        if (YYMAXDEPTH < yystacksize)
2727 <        yystacksize = YYMAXDEPTH;
2727 >        yystacksize = YYMAXDEPTH;
2728  
2729        {
2730 <        yytype_int16 *yyss1 = yyss;
2731 <        union yyalloc *yyptr =
2732 <          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2733 <        if (! yyptr)
2734 <          goto yyexhaustedlab;
2735 <        YYSTACK_RELOCATE (yyss_alloc, yyss);
2736 <        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2730 >        yytype_int16 *yyss1 = yyss;
2731 >        union yyalloc *yyptr =
2732 >          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2733 >        if (! yyptr)
2734 >          goto yyexhaustedlab;
2735 >        YYSTACK_RELOCATE (yyss_alloc, yyss);
2736 >        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2737   #  undef YYSTACK_RELOCATE
2738 <        if (yyss1 != yyssa)
2739 <          YYSTACK_FREE (yyss1);
2738 >        if (yyss1 != yyssa)
2739 >          YYSTACK_FREE (yyss1);
2740        }
2741   # endif
2742   #endif /* no yyoverflow */
# Line 3142 | Line 2745 | yyparse ()
2745        yyvsp = yyvs + yysize - 1;
2746  
2747        YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2748 <                  (unsigned long int) yystacksize));
2748 >                  (unsigned long int) yystacksize));
2749  
2750        if (yyss + yystacksize - 1 <= yyssp)
2751 <        YYABORT;
2751 >        YYABORT;
2752      }
2753  
2754    YYDPRINTF ((stderr, "Entering state %d\n", yystate));
# Line 3174 | Line 2777 | yybackup:
2777    if (yychar == YYEMPTY)
2778      {
2779        YYDPRINTF ((stderr, "Reading a token: "));
2780 <      yychar = YYLEX;
2780 >      yychar = yylex ();
2781      }
2782  
2783    if (yychar <= YYEOF)
# Line 3214 | Line 2817 | yybackup:
2817    yychar = YYEMPTY;
2818  
2819    yystate = yyn;
2820 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2821    *++yyvsp = yylval;
2822 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
2823  
2824    goto yynewstate;
2825  
# Line 3237 | Line 2842 | yyreduce:
2842    yylen = yyr2[yyn];
2843  
2844    /* If YYLEN is nonzero, implement the default value of the action:
2845 <     `$$ = $1'.
2845 >     '$$ = $1'.
2846  
2847       Otherwise, the following line sets YYVAL to garbage.
2848       This behavior is undocumented and Bison
# Line 3251 | Line 2856 | yyreduce:
2856    switch (yyn)
2857      {
2858          case 27:
2859 <
3255 < /* Line 1806 of yacc.c  */
3256 < #line 383 "conf_parser.y"
2859 > #line 412 "conf_parser.y" /* yacc.c:1646  */
2860      { (yyval.number) = 0; }
2861 + #line 2862 "conf_parser.c" /* yacc.c:1646  */
2862      break;
2863  
2864    case 29:
2865 <
2866 < /* Line 1806 of yacc.c  */
2867 < #line 385 "conf_parser.y"
3264 <    {
3265 <                        (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3266 <                }
2865 > #line 413 "conf_parser.y" /* yacc.c:1646  */
2866 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2867 > #line 2868 "conf_parser.c" /* yacc.c:1646  */
2868      break;
2869  
2870    case 30:
2871 <
2872 < /* Line 1806 of yacc.c  */
2873 < #line 389 "conf_parser.y"
3273 <    {
3274 <                        (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3275 <                }
2871 > #line 414 "conf_parser.y" /* yacc.c:1646  */
2872 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2873 > #line 2874 "conf_parser.c" /* yacc.c:1646  */
2874      break;
2875  
2876    case 31:
2877 <
2878 < /* Line 1806 of yacc.c  */
2879 < #line 393 "conf_parser.y"
3282 <    {
3283 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3284 <                }
2877 > #line 415 "conf_parser.y" /* yacc.c:1646  */
2878 >    { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); }
2879 > #line 2880 "conf_parser.c" /* yacc.c:1646  */
2880      break;
2881  
2882    case 32:
2883 <
2884 < /* Line 1806 of yacc.c  */
2885 < #line 397 "conf_parser.y"
3291 <    {
3292 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3293 <                }
2883 > #line 416 "conf_parser.y" /* yacc.c:1646  */
2884 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); }
2885 > #line 2886 "conf_parser.c" /* yacc.c:1646  */
2886      break;
2887  
2888    case 33:
2889 <
2890 < /* Line 1806 of yacc.c  */
2891 < #line 401 "conf_parser.y"
3300 <    {
3301 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3302 <                }
2889 > #line 417 "conf_parser.y" /* yacc.c:1646  */
2890 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); }
2891 > #line 2892 "conf_parser.c" /* yacc.c:1646  */
2892      break;
2893  
2894    case 34:
2895 <
2896 < /* Line 1806 of yacc.c  */
2897 < #line 405 "conf_parser.y"
3309 <    {
3310 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3311 <                }
2895 > #line 418 "conf_parser.y" /* yacc.c:1646  */
2896 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); }
2897 > #line 2898 "conf_parser.c" /* yacc.c:1646  */
2898      break;
2899  
2900    case 35:
2901 <
2902 < /* Line 1806 of yacc.c  */
2903 < #line 410 "conf_parser.y"
3318 <    { (yyval.number) = 0; }
2901 > #line 419 "conf_parser.y" /* yacc.c:1646  */
2902 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); }
2903 > #line 2904 "conf_parser.c" /* yacc.c:1646  */
2904      break;
2905  
2906 <  case 37:
2907 <
2908 < /* Line 1806 of yacc.c  */
2909 < #line 411 "conf_parser.y"
3325 <    { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
2906 >  case 36:
2907 > #line 420 "conf_parser.y" /* yacc.c:1646  */
2908 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); }
2909 > #line 2910 "conf_parser.c" /* yacc.c:1646  */
2910      break;
2911  
2912 <  case 38:
2913 <
2914 < /* Line 1806 of yacc.c  */
2915 < #line 412 "conf_parser.y"
3332 <    { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
2912 >  case 37:
2913 > #line 423 "conf_parser.y" /* yacc.c:1646  */
2914 >    { (yyval.number) = 0; }
2915 > #line 2916 "conf_parser.c" /* yacc.c:1646  */
2916      break;
2917  
2918    case 39:
2919 <
2920 < /* Line 1806 of yacc.c  */
2921 < #line 413 "conf_parser.y"
3339 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
2919 > #line 424 "conf_parser.y" /* yacc.c:1646  */
2920 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2921 > #line 2922 "conf_parser.c" /* yacc.c:1646  */
2922      break;
2923  
2924    case 40:
2925 + #line 425 "conf_parser.y" /* yacc.c:1646  */
2926 +    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2927 + #line 2928 "conf_parser.c" /* yacc.c:1646  */
2928 +    break;
2929  
2930 < /* Line 1806 of yacc.c  */
2931 < #line 414 "conf_parser.y"
2932 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
2930 >  case 41:
2931 > #line 426 "conf_parser.y" /* yacc.c:1646  */
2932 >    { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); }
2933 > #line 2934 "conf_parser.c" /* yacc.c:1646  */
2934      break;
2935  
2936 <  case 47:
2936 >  case 42:
2937 > #line 427 "conf_parser.y" /* yacc.c:1646  */
2938 >    { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); }
2939 > #line 2940 "conf_parser.c" /* yacc.c:1646  */
2940 >    break;
2941  
2942 < /* Line 1806 of yacc.c  */
2943 < #line 428 "conf_parser.y"
2942 >  case 49:
2943 > #line 441 "conf_parser.y" /* yacc.c:1646  */
2944      {
2945    if (conf_parser_ctx.pass == 2)
2946      add_conf_module(libio_basename(yylval.string));
2947   }
2948 + #line 2949 "conf_parser.c" /* yacc.c:1646  */
2949      break;
2950  
2951 <  case 48:
2952 <
3361 < /* Line 1806 of yacc.c  */
3362 < #line 434 "conf_parser.y"
2951 >  case 50:
2952 > #line 447 "conf_parser.y" /* yacc.c:1646  */
2953      {
2954    if (conf_parser_ctx.pass == 2)
2955      mod_add_path(yylval.string);
2956   }
2957 + #line 2958 "conf_parser.c" /* yacc.c:1646  */
2958      break;
2959  
2960 <  case 72:
2961 <
3371 < /* Line 1806 of yacc.c  */
3372 < #line 459 "conf_parser.y"
2960 >  case 77:
2961 > #line 482 "conf_parser.y" /* yacc.c:1646  */
2962      {
2963   #ifdef HAVE_LIBCRYPTO
2964    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
2965      SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
2966   #endif
2967   }
2968 + #line 2969 "conf_parser.c" /* yacc.c:1646  */
2969      break;
2970  
2971 <  case 73:
2972 <
3383 < /* Line 1806 of yacc.c  */
3384 < #line 465 "conf_parser.y"
2971 >  case 78:
2972 > #line 488 "conf_parser.y" /* yacc.c:1646  */
2973      {
2974   #ifdef HAVE_LIBCRYPTO
2975    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
2976      SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
2977   #endif
2978   }
2979 + #line 2980 "conf_parser.c" /* yacc.c:1646  */
2980      break;
2981  
2982 <  case 76:
2983 <
3395 < /* Line 1806 of yacc.c  */
3396 < #line 474 "conf_parser.y"
2982 >  case 81:
2983 > #line 497 "conf_parser.y" /* yacc.c:1646  */
2984      {
2985   #ifdef HAVE_LIBCRYPTO
2986    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2987      SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
2988   #endif
2989   }
2990 + #line 2991 "conf_parser.c" /* yacc.c:1646  */
2991      break;
2992  
2993 <  case 77:
2994 <
3407 < /* Line 1806 of yacc.c  */
3408 < #line 480 "conf_parser.y"
2993 >  case 82:
2994 > #line 503 "conf_parser.y" /* yacc.c:1646  */
2995      {
2996   #ifdef HAVE_LIBCRYPTO
2997    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2998      SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
2999   #endif
3000   }
3001 + #line 3002 "conf_parser.c" /* yacc.c:1646  */
3002      break;
3003  
3004 <  case 78:
3005 <
3419 < /* Line 1806 of yacc.c  */
3420 < #line 488 "conf_parser.y"
3004 >  case 83:
3005 > #line 511 "conf_parser.y" /* yacc.c:1646  */
3006      {
3007   #ifdef HAVE_LIBCRYPTO
3008 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3008 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3009    {
3010      if (!ServerInfo.rsa_private_key_file)
3011      {
3012 <      yyerror("No rsa_private_key_file specified, SSL disabled");
3012 >      conf_error_report("No rsa_private_key_file specified, SSL disabled");
3013        break;
3014      }
3015  
# Line 3433 | Line 3018 | yyreduce:
3018          SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3019                                       SSL_FILETYPE_PEM) <= 0)
3020      {
3021 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3021 >      report_crypto_errors();
3022 >      conf_error_report("Could not open/read certificate file");
3023        break;
3024      }
3025  
# Line 3442 | Line 3028 | yyreduce:
3028          SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3029                                      SSL_FILETYPE_PEM) <= 0)
3030      {
3031 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3031 >      report_crypto_errors();
3032 >      conf_error_report("Could not read RSA private key");
3033        break;
3034      }
3035  
3036      if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3037          !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3038      {
3039 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3039 >      report_crypto_errors();
3040 >      conf_error_report("Could not read RSA private key");
3041        break;
3042      }
3043    }
3044   #endif
3045   }
3046 + #line 3047 "conf_parser.c" /* yacc.c:1646  */
3047      break;
3048  
3049 <  case 79:
3050 <
3462 < /* Line 1806 of yacc.c  */
3463 < #line 527 "conf_parser.y"
3049 >  case 84:
3050 > #line 553 "conf_parser.y" /* yacc.c:1646  */
3051      {
3052   #ifdef HAVE_LIBCRYPTO
3053 <  if (conf_parser_ctx.pass == 1)
3467 <  {
3468 <    BIO *file;
3053 >  BIO *file = NULL;
3054  
3055 <    if (ServerInfo.rsa_private_key)
3056 <    {
3472 <      RSA_free(ServerInfo.rsa_private_key);
3473 <      ServerInfo.rsa_private_key = NULL;
3474 <    }
3055 >  if (conf_parser_ctx.pass != 1)
3056 >    break;
3057  
3058 <    if (ServerInfo.rsa_private_key_file)
3059 <    {
3060 <      MyFree(ServerInfo.rsa_private_key_file);
3061 <      ServerInfo.rsa_private_key_file = NULL;
3062 <    }
3058 >  if (ServerInfo.rsa_private_key)
3059 >  {
3060 >    RSA_free(ServerInfo.rsa_private_key);
3061 >    ServerInfo.rsa_private_key = NULL;
3062 >  }
3063  
3064 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3064 >  if (ServerInfo.rsa_private_key_file)
3065 >  {
3066 >    MyFree(ServerInfo.rsa_private_key_file);
3067 >    ServerInfo.rsa_private_key_file = NULL;
3068 >  }
3069  
3070 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3485 <    {
3486 <      yyerror("File open failed, ignoring");
3487 <      break;
3488 <    }
3070 >  ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3071  
3072 <    ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3072 >  if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3073 >  {
3074 >    conf_error_report("File open failed, ignoring");
3075 >    break;
3076 >  }
3077  
3078 <    BIO_set_close(file, BIO_CLOSE);
3493 <    BIO_free(file);
3078 >  ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3079  
3080 <    if (ServerInfo.rsa_private_key == NULL)
3081 <    {
3497 <      yyerror("Couldn't extract key, ignoring");
3498 <      break;
3499 <    }
3080 >  BIO_set_close(file, BIO_CLOSE);
3081 >  BIO_free(file);
3082  
3083 <    if (!RSA_check_key(ServerInfo.rsa_private_key))
3084 <    {
3085 <      RSA_free(ServerInfo.rsa_private_key);
3086 <      ServerInfo.rsa_private_key = NULL;
3083 >  if (ServerInfo.rsa_private_key == NULL)
3084 >  {
3085 >    conf_error_report("Couldn't extract key, ignoring");
3086 >    break;
3087 >  }
3088  
3089 <      yyerror("Invalid key, ignoring");
3090 <      break;
3091 <    }
3089 >  if (!RSA_check_key(ServerInfo.rsa_private_key))
3090 >  {
3091 >    RSA_free(ServerInfo.rsa_private_key);
3092 >    ServerInfo.rsa_private_key = NULL;
3093  
3094 <    /* require 2048 bit (256 byte) key */
3095 <    if (RSA_size(ServerInfo.rsa_private_key) != 256)
3096 <    {
3513 <      RSA_free(ServerInfo.rsa_private_key);
3514 <      ServerInfo.rsa_private_key = NULL;
3094 >    conf_error_report("Invalid key, ignoring");
3095 >    break;
3096 >  }
3097  
3098 <      yyerror("Not a 2048 bit key, ignoring");
3099 <    }
3098 >  if (RSA_size(ServerInfo.rsa_private_key) < 128)
3099 >  {
3100 >    RSA_free(ServerInfo.rsa_private_key);
3101 >    ServerInfo.rsa_private_key = NULL;
3102 >
3103 >    conf_error_report("Ignoring serverinfo::rsa_private_key_file -- need at least a 1024 bit key size");
3104    }
3105   #endif
3106   }
3107 + #line 3108 "conf_parser.c" /* yacc.c:1646  */
3108      break;
3109  
3110 <  case 80:
3111 <
3525 < /* Line 1806 of yacc.c  */
3526 < #line 586 "conf_parser.y"
3110 >  case 85:
3111 > #line 611 "conf_parser.y" /* yacc.c:1646  */
3112      {
3113   /* TBD - XXX: error reporting */
3114   #ifdef HAVE_LIBCRYPTO
# Line 3540 | Line 3125 | yyreduce:
3125        if (dh)
3126        {
3127          if (DH_size(dh) < 128)
3128 <          ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3128 >          conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3129          else
3130            SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3131  
# Line 3550 | Line 3135 | yyreduce:
3135    }
3136   #endif
3137   }
3138 + #line 3139 "conf_parser.c" /* yacc.c:1646  */
3139      break;
3140  
3141 <  case 81:
3142 <
3557 < /* Line 1806 of yacc.c  */
3558 < #line 614 "conf_parser.y"
3141 >  case 86:
3142 > #line 639 "conf_parser.y" /* yacc.c:1646  */
3143      {
3144   #ifdef HAVE_LIBCRYPTO
3145    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3146      SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3147   #endif
3148   }
3149 + #line 3150 "conf_parser.c" /* yacc.c:1646  */
3150      break;
3151  
3152 <  case 82:
3152 >  case 87:
3153 > #line 647 "conf_parser.y" /* yacc.c:1646  */
3154 >    {
3155 > #ifdef HAVE_LIBCRYPTO
3156 > #if OPENSSL_VERSION_NUMBER >= 0x1000005FL && !defined(OPENSSL_NO_ECDH)
3157 >  int nid = 0;
3158 >  EC_KEY *key = NULL;
3159 >
3160 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3161 >  {
3162 >    if ((nid = OBJ_sn2nid(yylval.string)) == 0)
3163 >    {
3164 >        conf_error_report("Ignoring serverinfo::serverinfo_ssl_dh_elliptic_curve -- unknown curve name");
3165 >        break;
3166 >    }
3167 >
3168 >    if ((key = EC_KEY_new_by_curve_name(nid)) == NULL)
3169 >    {
3170 >      conf_error_report("Ignoring serverinfo::serverinfo_ssl_dh_elliptic_curve -- could not create curve");
3171 >      break;
3172 >    }
3173 >
3174 >    SSL_CTX_set_tmp_ecdh(ServerInfo.server_ctx, key);
3175 >    EC_KEY_free(key);
3176 > }
3177 > #endif
3178 > #endif
3179 > }
3180 > #line 3181 "conf_parser.c" /* yacc.c:1646  */
3181 >    break;
3182  
3183 < /* Line 1806 of yacc.c  */
3184 < #line 622 "conf_parser.y"
3183 >  case 88:
3184 > #line 675 "conf_parser.y" /* yacc.c:1646  */
3185      {
3186    /* this isn't rehashable */
3187    if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3188    {
3189      if (valid_servname(yylval.string))
3190 <      DupString(ServerInfo.name, yylval.string);
3190 >      ServerInfo.name = xstrdup(yylval.string);
3191      else
3192      {
3193 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::name -- invalid name. Aborting.");
3193 >      conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3194        exit(0);
3195      }
3196    }
3197   }
3198 + #line 3199 "conf_parser.c" /* yacc.c:1646  */
3199      break;
3200  
3201 <  case 83:
3202 <
3588 < /* Line 1806 of yacc.c  */
3589 < #line 637 "conf_parser.y"
3201 >  case 89:
3202 > #line 690 "conf_parser.y" /* yacc.c:1646  */
3203      {
3204    /* this isn't rehashable */
3205    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3206    {
3207      if (valid_sid(yylval.string))
3208 <      DupString(ServerInfo.sid, yylval.string);
3208 >      ServerInfo.sid = xstrdup(yylval.string);
3209      else
3210      {
3211 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
3211 >      conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3212        exit(0);
3213      }
3214    }
3215   }
3216 + #line 3217 "conf_parser.c" /* yacc.c:1646  */
3217      break;
3218  
3219 <  case 84:
3220 <
3607 < /* Line 1806 of yacc.c  */
3608 < #line 652 "conf_parser.y"
3219 >  case 90:
3220 > #line 705 "conf_parser.y" /* yacc.c:1646  */
3221      {
3222    if (conf_parser_ctx.pass == 2)
3223    {
3224      MyFree(ServerInfo.description);
3225 <    DupString(ServerInfo.description,yylval.string);
3225 >    ServerInfo.description = xstrdup(yylval.string);
3226    }
3227   }
3228 + #line 3229 "conf_parser.c" /* yacc.c:1646  */
3229      break;
3230  
3231 <  case 85:
3232 <
3620 < /* Line 1806 of yacc.c  */
3621 < #line 661 "conf_parser.y"
3231 >  case 91:
3232 > #line 714 "conf_parser.y" /* yacc.c:1646  */
3233      {
3234    if (conf_parser_ctx.pass == 2)
3235    {
3236      char *p;
3237  
3238 <    if ((p = strchr(yylval.string, ' ')) != NULL)
3239 <      p = '\0';
3238 >    if ((p = strchr(yylval.string, ' ')))
3239 >      *p = '\0';
3240  
3241      MyFree(ServerInfo.network_name);
3242 <    DupString(ServerInfo.network_name, yylval.string);
3242 >    ServerInfo.network_name = xstrdup(yylval.string);
3243    }
3244   }
3245 + #line 3246 "conf_parser.c" /* yacc.c:1646  */
3246      break;
3247  
3248 <  case 86:
3249 <
3638 < /* Line 1806 of yacc.c  */
3639 < #line 675 "conf_parser.y"
3248 >  case 92:
3249 > #line 728 "conf_parser.y" /* yacc.c:1646  */
3250      {
3251 <  if (conf_parser_ctx.pass == 2)
3642 <  {
3643 <    MyFree(ServerInfo.network_desc);
3644 <    DupString(ServerInfo.network_desc, yylval.string);
3645 <  }
3646 < }
3251 >  if (conf_parser_ctx.pass != 2)
3252      break;
3253  
3254 <  case 87:
3254 >  MyFree(ServerInfo.network_desc);
3255 >  ServerInfo.network_desc = xstrdup(yylval.string);
3256 > }
3257 > #line 3258 "conf_parser.c" /* yacc.c:1646  */
3258 >    break;
3259  
3260 < /* Line 1806 of yacc.c  */
3261 < #line 684 "conf_parser.y"
3260 >  case 93:
3261 > #line 737 "conf_parser.y" /* yacc.c:1646  */
3262      {
3263    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3264    {
# Line 3665 | Line 3274 | yyreduce:
3274        ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3275      else
3276      {
3277 <      assert(res != NULL);
3277 >      assert(res);
3278  
3279        memcpy(&ServerInfo.ip, res->ai_addr, res->ai_addrlen);
3280        ServerInfo.ip.ss.ss_family = res->ai_family;
# Line 3676 | Line 3285 | yyreduce:
3285      }
3286    }
3287   }
3288 + #line 3289 "conf_parser.c" /* yacc.c:1646  */
3289      break;
3290  
3291 <  case 88:
3292 <
3683 < /* Line 1806 of yacc.c  */
3684 < #line 712 "conf_parser.y"
3291 >  case 94:
3292 > #line 765 "conf_parser.y" /* yacc.c:1646  */
3293      {
3294   #ifdef IPV6
3295    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3698 | Line 3306 | yyreduce:
3306        ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3307      else
3308      {
3309 <      assert(res != NULL);
3309 >      assert(res);
3310  
3311        memcpy(&ServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3312        ServerInfo.ip6.ss.ss_family = res->ai_family;
# Line 3710 | Line 3318 | yyreduce:
3318    }
3319   #endif
3320   }
3321 + #line 3322 "conf_parser.c" /* yacc.c:1646  */
3322      break;
3323  
3324 <  case 89:
3325 <
3717 < /* Line 1806 of yacc.c  */
3718 < #line 742 "conf_parser.y"
3324 >  case 95:
3325 > #line 795 "conf_parser.y" /* yacc.c:1646  */
3326      {
3327 <  if (conf_parser_ctx.pass == 2)
3327 >  if (conf_parser_ctx.pass != 2)
3328 >    break;
3329 >
3330 >  if ((yyvsp[-1].number) < MAXCLIENTS_MIN)
3331    {
3332 <    recalc_fdlimit(NULL);
3332 >    char buf[IRCD_BUFSIZE] = "";
3333  
3334 <    if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3335 <    {
3336 <      char buf[IRCD_BUFSIZE];
3727 <      ircsprintf(buf, "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3728 <      yyerror(buf);
3729 <    }
3730 <    else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3731 <    {
3732 <      char buf[IRCD_BUFSIZE];
3733 <      ircsprintf(buf, "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3734 <      yyerror(buf);
3735 <    }
3736 <    else
3737 <      ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3334 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3335 >    conf_error_report(buf);
3336 >    ServerInfo.max_clients = MAXCLIENTS_MIN;
3337    }
3338 +  else if ((yyvsp[-1].number) > MAXCLIENTS_MAX)
3339 +  {
3340 +    char buf[IRCD_BUFSIZE] = "";
3341 +
3342 +    snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3343 +    conf_error_report(buf);
3344 +    ServerInfo.max_clients = MAXCLIENTS_MAX;
3345 +  }
3346 +  else
3347 +    ServerInfo.max_clients = (yyvsp[-1].number);
3348   }
3349 + #line 3350 "conf_parser.c" /* yacc.c:1646  */
3350      break;
3351  
3352 <  case 90:
3353 <
3744 < /* Line 1806 of yacc.c  */
3745 < #line 765 "conf_parser.y"
3352 >  case 96:
3353 > #line 820 "conf_parser.y" /* yacc.c:1646  */
3354      {
3355 <  if (conf_parser_ctx.pass == 2)
3748 <    ServerInfo.hub = yylval.number;
3749 < }
3355 >  if (conf_parser_ctx.pass != 2)
3356      break;
3357  
3358 <  case 98:
3753 <
3754 < /* Line 1806 of yacc.c  */
3755 < #line 780 "conf_parser.y"
3756 <    {
3757 <  if (conf_parser_ctx.pass == 2)
3358 >  if ((yyvsp[-1].number) < 9)
3359    {
3360 <    MyFree(AdminInfo.name);
3361 <    DupString(AdminInfo.name, yylval.string);
3360 >    conf_error_report("max_nick_length too low, setting to 9");
3361 >    ServerInfo.max_nick_length = 9;
3362    }
3363 +  else if ((yyvsp[-1].number) > NICKLEN)
3364 +  {
3365 +    char buf[IRCD_BUFSIZE] = "";
3366 +
3367 +    snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3368 +    conf_error_report(buf);
3369 +    ServerInfo.max_nick_length = NICKLEN;
3370 +  }
3371 +  else
3372 +    ServerInfo.max_nick_length = (yyvsp[-1].number);
3373   }
3374 + #line 3375 "conf_parser.c" /* yacc.c:1646  */
3375      break;
3376  
3377 <  case 99:
3378 <
3767 < /* Line 1806 of yacc.c  */
3768 < #line 789 "conf_parser.y"
3377 >  case 97:
3378 > #line 842 "conf_parser.y" /* yacc.c:1646  */
3379      {
3380 <  if (conf_parser_ctx.pass == 2)
3380 >  if (conf_parser_ctx.pass != 2)
3381 >    break;
3382 >
3383 >  if ((yyvsp[-1].number) < 80)
3384    {
3385 <    MyFree(AdminInfo.email);
3386 <    DupString(AdminInfo.email, yylval.string);
3385 >    conf_error_report("max_topic_length too low, setting to 80");
3386 >    ServerInfo.max_topic_length = 80;
3387    }
3388 +  else if ((yyvsp[-1].number) > TOPICLEN)
3389 +  {
3390 +    char buf[IRCD_BUFSIZE] = "";
3391 +
3392 +    snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3393 +    conf_error_report(buf);
3394 +    ServerInfo.max_topic_length = TOPICLEN;
3395 +  }
3396 +  else
3397 +    ServerInfo.max_topic_length = (yyvsp[-1].number);
3398   }
3399 + #line 3400 "conf_parser.c" /* yacc.c:1646  */
3400      break;
3401  
3402 <  case 100:
3403 <
3780 < /* Line 1806 of yacc.c  */
3781 < #line 798 "conf_parser.y"
3402 >  case 98:
3403 > #line 864 "conf_parser.y" /* yacc.c:1646  */
3404      {
3405    if (conf_parser_ctx.pass == 2)
3406 <  {
3785 <    MyFree(AdminInfo.description);
3786 <    DupString(AdminInfo.description, yylval.string);
3787 <  }
3406 >    ServerInfo.hub = yylval.number;
3407   }
3408 + #line 3409 "conf_parser.c" /* yacc.c:1646  */
3409      break;
3410  
3411 <  case 107:
3411 >  case 106:
3412 > #line 881 "conf_parser.y" /* yacc.c:1646  */
3413 >    {
3414 >  if (conf_parser_ctx.pass != 2)
3415 >    break;
3416 >
3417 >  MyFree(AdminInfo.name);
3418 >  AdminInfo.name = xstrdup(yylval.string);
3419 > }
3420 > #line 3421 "conf_parser.c" /* yacc.c:1646  */
3421 >    break;
3422  
3423 < /* Line 1806 of yacc.c  */
3424 < #line 816 "conf_parser.y"
3423 >  case 107:
3424 > #line 890 "conf_parser.y" /* yacc.c:1646  */
3425      {
3426 <  if (conf_parser_ctx.pass == 2)
3427 <    ConfigLoggingEntry.use_logging = yylval.number;
3426 >  if (conf_parser_ctx.pass != 2)
3427 >    break;
3428 >
3429 >  MyFree(AdminInfo.email);
3430 >  AdminInfo.email = xstrdup(yylval.string);
3431   }
3432 + #line 3433 "conf_parser.c" /* yacc.c:1646  */
3433      break;
3434  
3435    case 108:
3436 <
3803 < /* Line 1806 of yacc.c  */
3804 < #line 822 "conf_parser.y"
3436 > #line 899 "conf_parser.y" /* yacc.c:1646  */
3437      {
3438 <  lfile[0] = '\0';
3439 <  ltype = 0;
3440 <  lsize = 0;
3438 >  if (conf_parser_ctx.pass != 2)
3439 >    break;
3440 >
3441 >  MyFree(AdminInfo.description);
3442 >  AdminInfo.description = xstrdup(yylval.string);
3443   }
3444 + #line 3445 "conf_parser.c" /* yacc.c:1646  */
3445      break;
3446  
3447    case 109:
3448 + #line 911 "conf_parser.y" /* yacc.c:1646  */
3449 +    {
3450 +  if (conf_parser_ctx.pass == 2)
3451 +    reset_block_state();
3452 + }
3453 + #line 3454 "conf_parser.c" /* yacc.c:1646  */
3454 +    break;
3455  
3456 < /* Line 1806 of yacc.c  */
3457 < #line 827 "conf_parser.y"
3456 >  case 110:
3457 > #line 915 "conf_parser.y" /* yacc.c:1646  */
3458      {
3459 <  if (conf_parser_ctx.pass == 2 && ltype > 0)
3460 <    log_add_file(ltype, lsize, lfile);
3459 >  dlink_node *ptr = NULL;
3460 >
3461 >  if (conf_parser_ctx.pass != 2)
3462 >    break;
3463 >
3464 >  if (!block_state.file.buf[0])
3465 >    break;
3466 >
3467 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3468 >    motd_add(ptr->data, block_state.file.buf);
3469   }
3470 + #line 3471 "conf_parser.c" /* yacc.c:1646  */
3471      break;
3472  
3473    case 116:
3474 <
3824 < /* Line 1806 of yacc.c  */
3825 < #line 839 "conf_parser.y"
3474 > #line 932 "conf_parser.y" /* yacc.c:1646  */
3475      {
3476 <  strlcpy(lfile, yylval.string, sizeof(lfile));
3476 >  if (conf_parser_ctx.pass == 2)
3477 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3478   }
3479 + #line 3480 "conf_parser.c" /* yacc.c:1646  */
3480      break;
3481  
3482    case 117:
3483 + #line 938 "conf_parser.y" /* yacc.c:1646  */
3484 +    {
3485 +  if (conf_parser_ctx.pass == 2)
3486 +    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3487 + }
3488 + #line 3489 "conf_parser.c" /* yacc.c:1646  */
3489 +    break;
3490  
3491 < /* Line 1806 of yacc.c  */
3492 < #line 844 "conf_parser.y"
3491 >  case 124:
3492 > #line 953 "conf_parser.y" /* yacc.c:1646  */
3493      {
3494 <  lsize = (yyvsp[(3) - (4)].number);
3494 >  if (conf_parser_ctx.pass == 2)
3495 >    ConfigLoggingEntry.use_logging = yylval.number;
3496   }
3497 + #line 3498 "conf_parser.c" /* yacc.c:1646  */
3498      break;
3499  
3500 <  case 118:
3500 >  case 125:
3501 > #line 959 "conf_parser.y" /* yacc.c:1646  */
3502 >    {
3503 >  if (conf_parser_ctx.pass == 2)
3504 >    reset_block_state();
3505 > }
3506 > #line 3507 "conf_parser.c" /* yacc.c:1646  */
3507 >    break;
3508  
3509 < /* Line 1806 of yacc.c  */
3510 < #line 847 "conf_parser.y"
3509 >  case 126:
3510 > #line 963 "conf_parser.y" /* yacc.c:1646  */
3511      {
3512 <  lsize = 0;
3512 >  if (conf_parser_ctx.pass != 2)
3513 >    break;
3514 >
3515 >  if (block_state.type.value && block_state.file.buf[0])
3516 >    log_set_file(block_state.type.value, block_state.size.value,
3517 >                 block_state.file.buf);
3518   }
3519 + #line 3520 "conf_parser.c" /* yacc.c:1646  */
3520      break;
3521  
3522 <  case 119:
3522 >  case 133:
3523 > #line 979 "conf_parser.y" /* yacc.c:1646  */
3524 >    {
3525 >  if (conf_parser_ctx.pass != 2)
3526 >    break;
3527 >
3528 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3529 > }
3530 > #line 3531 "conf_parser.c" /* yacc.c:1646  */
3531 >    break;
3532  
3533 < /* Line 1806 of yacc.c  */
3534 < #line 852 "conf_parser.y"
3533 >  case 134:
3534 > #line 987 "conf_parser.y" /* yacc.c:1646  */
3535      {
3536 <  if (conf_parser_ctx.pass == 2)
3855 <    ltype = 0;
3536 >  block_state.size.value = (yyvsp[-1].number);
3537   }
3538 + #line 3539 "conf_parser.c" /* yacc.c:1646  */
3539      break;
3540  
3541 <  case 123:
3541 >  case 135:
3542 > #line 990 "conf_parser.y" /* yacc.c:1646  */
3543 >    {
3544 >  block_state.size.value = 0;
3545 > }
3546 > #line 3547 "conf_parser.c" /* yacc.c:1646  */
3547 >    break;
3548  
3549 < /* Line 1806 of yacc.c  */
3550 < #line 859 "conf_parser.y"
3549 >  case 136:
3550 > #line 995 "conf_parser.y" /* yacc.c:1646  */
3551      {
3552    if (conf_parser_ctx.pass == 2)
3553 <    ltype = LOG_TYPE_USER;
3553 >    block_state.type.value = 0;
3554   }
3555 + #line 3556 "conf_parser.c" /* yacc.c:1646  */
3556      break;
3557  
3558 <  case 124:
3559 <
3871 < /* Line 1806 of yacc.c  */
3872 < #line 863 "conf_parser.y"
3558 >  case 140:
3559 > #line 1002 "conf_parser.y" /* yacc.c:1646  */
3560      {
3561    if (conf_parser_ctx.pass == 2)
3562 <    ltype = LOG_TYPE_OPER;
3562 >    block_state.type.value = LOG_TYPE_USER;
3563   }
3564 + #line 3565 "conf_parser.c" /* yacc.c:1646  */
3565      break;
3566  
3567 <  case 125:
3568 <
3881 < /* Line 1806 of yacc.c  */
3882 < #line 867 "conf_parser.y"
3567 >  case 141:
3568 > #line 1006 "conf_parser.y" /* yacc.c:1646  */
3569      {
3570    if (conf_parser_ctx.pass == 2)
3571 <    ltype = LOG_TYPE_GLINE;
3571 >    block_state.type.value = LOG_TYPE_OPER;
3572   }
3573 + #line 3574 "conf_parser.c" /* yacc.c:1646  */
3574      break;
3575  
3576 <  case 126:
3577 <
3891 < /* Line 1806 of yacc.c  */
3892 < #line 871 "conf_parser.y"
3576 >  case 142:
3577 > #line 1010 "conf_parser.y" /* yacc.c:1646  */
3578      {
3579    if (conf_parser_ctx.pass == 2)
3580 <    ltype = LOG_TYPE_DLINE;
3580 >    block_state.type.value = LOG_TYPE_GLINE;
3581   }
3582 + #line 3583 "conf_parser.c" /* yacc.c:1646  */
3583      break;
3584  
3585 <  case 127:
3586 <
3901 < /* Line 1806 of yacc.c  */
3902 < #line 875 "conf_parser.y"
3585 >  case 143:
3586 > #line 1014 "conf_parser.y" /* yacc.c:1646  */
3587      {
3588    if (conf_parser_ctx.pass == 2)
3589 <    ltype = LOG_TYPE_KLINE;
3589 >    block_state.type.value = LOG_TYPE_XLINE;
3590   }
3591 + #line 3592 "conf_parser.c" /* yacc.c:1646  */
3592      break;
3593  
3594 <  case 128:
3595 <
3911 < /* Line 1806 of yacc.c  */
3912 < #line 879 "conf_parser.y"
3594 >  case 144:
3595 > #line 1018 "conf_parser.y" /* yacc.c:1646  */
3596      {
3597    if (conf_parser_ctx.pass == 2)
3598 <    ltype = LOG_TYPE_KILL;
3598 >    block_state.type.value = LOG_TYPE_RESV;
3599   }
3600 + #line 3601 "conf_parser.c" /* yacc.c:1646  */
3601      break;
3602  
3603 <  case 129:
3604 <
3921 < /* Line 1806 of yacc.c  */
3922 < #line 883 "conf_parser.y"
3603 >  case 145:
3604 > #line 1022 "conf_parser.y" /* yacc.c:1646  */
3605      {
3606    if (conf_parser_ctx.pass == 2)
3607 <    ltype = LOG_TYPE_DEBUG;
3607 >    block_state.type.value = LOG_TYPE_DLINE;
3608   }
3609 + #line 3610 "conf_parser.c" /* yacc.c:1646  */
3610      break;
3611  
3612 <  case 130:
3613 <
3931 < /* Line 1806 of yacc.c  */
3932 < #line 893 "conf_parser.y"
3612 >  case 146:
3613 > #line 1026 "conf_parser.y" /* yacc.c:1646  */
3614      {
3615    if (conf_parser_ctx.pass == 2)
3616 <  {
3936 <    yy_conf = make_conf_item(OPER_TYPE);
3937 <    yy_aconf = map_to_conf(yy_conf);
3938 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
3939 <  }
3940 <  else
3941 <  {
3942 <    MyFree(class_name);
3943 <    class_name = NULL;
3944 <  }
3616 >    block_state.type.value = LOG_TYPE_KLINE;
3617   }
3618 + #line 3619 "conf_parser.c" /* yacc.c:1646  */
3619      break;
3620  
3621 <  case 131:
3622 <
3950 < /* Line 1806 of yacc.c  */
3951 < #line 906 "conf_parser.y"
3621 >  case 147:
3622 > #line 1030 "conf_parser.y" /* yacc.c:1646  */
3623      {
3624    if (conf_parser_ctx.pass == 2)
3625 <  {
3626 <    struct CollectItem *yy_tmp;
3627 <    dlink_node *ptr;
3628 <    dlink_node *next_ptr;
3958 <
3959 <    conf_add_class_to_conf(yy_conf, class_name);
3625 >    block_state.type.value = LOG_TYPE_KILL;
3626 > }
3627 > #line 3628 "conf_parser.c" /* yacc.c:1646  */
3628 >    break;
3629  
3630 <    /* Now, make sure there is a copy of the "base" given oper
3631 <     * block in each of the collected copies
3632 <     */
3630 >  case 148:
3631 > #line 1034 "conf_parser.y" /* yacc.c:1646  */
3632 >    {
3633 >  if (conf_parser_ctx.pass == 2)
3634 >    block_state.type.value = LOG_TYPE_DEBUG;
3635 > }
3636 > #line 3637 "conf_parser.c" /* yacc.c:1646  */
3637 >    break;
3638  
3639 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3639 >  case 149:
3640 > #line 1044 "conf_parser.y" /* yacc.c:1646  */
3641      {
3642 <      struct AccessItem *new_aconf;
3643 <      struct ConfItem *new_conf;
3969 <      yy_tmp = ptr->data;
3642 >  if (conf_parser_ctx.pass != 2)
3643 >    break;
3644  
3645 <      new_conf = make_conf_item(OPER_TYPE);
3646 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
3645 >  reset_block_state();
3646 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3647 > }
3648 > #line 3649 "conf_parser.c" /* yacc.c:1646  */
3649 >    break;
3650  
3651 <      new_aconf->flags = yy_aconf->flags;
3651 >  case 150:
3652 > #line 1051 "conf_parser.y" /* yacc.c:1646  */
3653 >    {
3654 >  dlink_node *ptr = NULL;
3655  
3656 <      if (yy_conf->name != NULL)
3657 <        DupString(new_conf->name, yy_conf->name);
3978 <      if (yy_tmp->user != NULL)
3979 <        DupString(new_aconf->user, yy_tmp->user);
3980 <      else
3981 <        DupString(new_aconf->user, "*");
3982 <      if (yy_tmp->host != NULL)
3983 <        DupString(new_aconf->host, yy_tmp->host);
3984 <      else
3985 <        DupString(new_aconf->host, "*");
3656 >  if (conf_parser_ctx.pass != 2)
3657 >    break;
3658  
3659 <      new_aconf->type = parse_netmask(new_aconf->host, &new_aconf->addr,
3660 <                                     &new_aconf->bits);
3659 >  if (!block_state.name.buf[0])
3660 >    break;
3661 > #ifdef HAVE_LIBCRYPTO
3662 >  if (!block_state.file.buf[0] &&
3663 >      !block_state.rpass.buf[0])
3664 >    break;
3665 > #else
3666 >  if (!block_state.rpass.buf[0])
3667 >    break;
3668 > #endif
3669  
3670 <      conf_add_class_to_conf(new_conf, class_name);
3671 <      if (yy_aconf->passwd != NULL)
3672 <        DupString(new_aconf->passwd, yy_aconf->passwd);
3670 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3671 >  {
3672 >    struct MaskItem *conf = NULL;
3673 >    struct split_nuh_item nuh;
3674  
3675 <      new_aconf->port = yy_aconf->port;
3676 < #ifdef HAVE_LIBCRYPTO
3677 <      if (yy_aconf->rsa_public_key_file != NULL)
3678 <      {
3679 <        BIO *file;
3675 >    nuh.nuhmask  = ptr->data;
3676 >    nuh.nickptr  = NULL;
3677 >    nuh.userptr  = block_state.user.buf;
3678 >    nuh.hostptr  = block_state.host.buf;
3679 >    nuh.nicksize = 0;
3680 >    nuh.usersize = sizeof(block_state.user.buf);
3681 >    nuh.hostsize = sizeof(block_state.host.buf);
3682 >    split_nuh(&nuh);
3683  
3684 <        DupString(new_aconf->rsa_public_key_file,
3685 <                  yy_aconf->rsa_public_key_file);
3684 >    conf         = conf_make(CONF_OPER);
3685 >    conf->name   = xstrdup(block_state.name.buf);
3686 >    conf->user   = xstrdup(block_state.user.buf);
3687 >    conf->host   = xstrdup(block_state.host.buf);
3688 >
3689 >    if (block_state.cert.buf[0])
3690 >      conf->certfp = xstrdup(block_state.cert.buf);
3691 >
3692 >    if (block_state.rpass.buf[0])
3693 >      conf->passwd = xstrdup(block_state.rpass.buf);
3694 >
3695 >    conf->flags = block_state.flags.value;
3696 >    conf->modes = block_state.modes.value;
3697 >    conf->port  = block_state.port.value;
3698 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3699  
3700 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
4004 <        new_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file,
4005 <                                                           NULL, 0, NULL);
4006 <        BIO_set_close(file, BIO_CLOSE);
4007 <        BIO_free(file);
4008 <      }
4009 < #endif
3700 >    conf_add_class_to_conf(conf, block_state.class.buf);
3701  
3702   #ifdef HAVE_LIBCRYPTO
3703 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
3704 <          && yy_tmp->host)
3705 < #else
3706 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
3707 < #endif
3703 >    if (block_state.file.buf[0])
3704 >    {
3705 >      BIO *file = NULL;
3706 >      RSA *pkey = NULL;
3707 >
3708 >      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3709        {
3710 <        conf_add_class_to_conf(new_conf, class_name);
3711 <        if (yy_tmp->name != NULL)
4020 <          DupString(new_conf->name, yy_tmp->name);
3710 >        conf_error_report("Ignoring rsa_public_key_file -- file doesn't exist");
3711 >        break;
3712        }
3713  
3714 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
3715 <      free_collect_item(yy_tmp);
4025 <    }
4026 <
4027 <    yy_conf = NULL;
4028 <    yy_aconf = NULL;
3714 >      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3715 >        conf_error_report("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3716  
3717 <
3718 <    MyFree(class_name);
3719 <    class_name = NULL;
3717 >      conf->rsa_public_key = pkey;
3718 >      BIO_set_close(file, BIO_CLOSE);
3719 >      BIO_free(file);
3720 >    }
3721 > #endif /* HAVE_LIBCRYPTO */
3722    }
3723   }
3724 + #line 3725 "conf_parser.c" /* yacc.c:1646  */
3725      break;
3726  
3727 <  case 143:
3728 <
4039 < /* Line 1806 of yacc.c  */
4040 < #line 996 "conf_parser.y"
3727 >  case 164:
3728 > #line 1137 "conf_parser.y" /* yacc.c:1646  */
3729      {
3730    if (conf_parser_ctx.pass == 2)
3731 <  {
4044 <    MyFree(yy_conf->name);
4045 <    DupString(yy_conf->name, yylval.string);
4046 <  }
3731 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3732   }
3733 + #line 3734 "conf_parser.c" /* yacc.c:1646  */
3734      break;
3735  
3736 <  case 144:
3737 <
4052 < /* Line 1806 of yacc.c  */
4053 < #line 1005 "conf_parser.y"
3736 >  case 165:
3737 > #line 1143 "conf_parser.y" /* yacc.c:1646  */
3738      {
3739    if (conf_parser_ctx.pass == 2)
3740 <  {
3741 <    struct split_nuh_item nuh;
3740 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3741 > }
3742 > #line 3743 "conf_parser.c" /* yacc.c:1646  */
3743 >    break;
3744  
3745 <    nuh.nuhmask  = yylval.string;
3746 <    nuh.nickptr  = NULL;
3747 <    nuh.userptr  = userbuf;
3748 <    nuh.hostptr  = hostbuf;
3745 >  case 166:
3746 > #line 1149 "conf_parser.y" /* yacc.c:1646  */
3747 >    {
3748 >  if (conf_parser_ctx.pass == 2)
3749 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3750 > }
3751 > #line 3752 "conf_parser.c" /* yacc.c:1646  */
3752 >    break;
3753  
3754 <    nuh.nicksize = 0;
3755 <    nuh.usersize = sizeof(userbuf);
3756 <    nuh.hostsize = sizeof(hostbuf);
3754 >  case 167:
3755 > #line 1155 "conf_parser.y" /* yacc.c:1646  */
3756 >    {
3757 >  if (conf_parser_ctx.pass != 2)
3758 >    break;
3759  
3760 <    split_nuh(&nuh);
3760 >  if (yylval.number)
3761 >    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3762 >  else
3763 >    block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3764 > }
3765 > #line 3766 "conf_parser.c" /* yacc.c:1646  */
3766 >    break;
3767  
3768 <    if (yy_aconf->user == NULL)
3768 >  case 168:
3769 > #line 1166 "conf_parser.y" /* yacc.c:1646  */
3770      {
3771 <      DupString(yy_aconf->user, userbuf);
3772 <      DupString(yy_aconf->host, hostbuf);
3771 >  if (conf_parser_ctx.pass == 2)
3772 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3773 > }
3774 > #line 3775 "conf_parser.c" /* yacc.c:1646  */
3775 >    break;
3776  
3777 <      yy_aconf->type = parse_netmask(yy_aconf->host, &yy_aconf->addr,
3778 <                                    &yy_aconf->bits);
4077 <    }
4078 <    else
3777 >  case 169:
3778 > #line 1172 "conf_parser.y" /* yacc.c:1646  */
3779      {
3780 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
3780 >  if (conf_parser_ctx.pass == 2)
3781 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
3782 > }
3783 > #line 3784 "conf_parser.c" /* yacc.c:1646  */
3784 >    break;
3785  
3786 <      DupString(yy_tmp->user, userbuf);
3787 <      DupString(yy_tmp->host, hostbuf);
3786 >  case 170:
3787 > #line 1178 "conf_parser.y" /* yacc.c:1646  */
3788 >    {
3789 >  if (conf_parser_ctx.pass != 2)
3790 >    break;
3791  
3792 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
3793 <    }
3794 <  }
3792 >  if (yylval.number)
3793 >    block_state.flags.value |= CONF_FLAGS_SSL;
3794 >  else
3795 >    block_state.flags.value &= ~CONF_FLAGS_SSL;
3796   }
3797 + #line 3798 "conf_parser.c" /* yacc.c:1646  */
3798      break;
3799  
3800 <  case 145:
3801 <
4093 < /* Line 1806 of yacc.c  */
4094 < #line 1042 "conf_parser.y"
3800 >  case 171:
3801 > #line 1189 "conf_parser.y" /* yacc.c:1646  */
3802      {
3803    if (conf_parser_ctx.pass == 2)
3804 <  {
4098 <    if (yy_aconf->passwd != NULL)
4099 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4100 <
4101 <    MyFree(yy_aconf->passwd);
4102 <    DupString(yy_aconf->passwd, yylval.string);
4103 <  }
3804 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3805   }
3806 + #line 3807 "conf_parser.c" /* yacc.c:1646  */
3807      break;
3808  
3809 <  case 146:
3810 <
4109 < /* Line 1806 of yacc.c  */
4110 < #line 1054 "conf_parser.y"
3809 >  case 172:
3810 > #line 1195 "conf_parser.y" /* yacc.c:1646  */
3811      {
3812    if (conf_parser_ctx.pass == 2)
3813 <  {
4114 <    if (yylval.number)
4115 <      SetConfEncrypted(yy_aconf);
4116 <    else
4117 <      ClearConfEncrypted(yy_aconf);
4118 <  }
3813 >    block_state.modes.value = 0;
3814   }
3815 + #line 3816 "conf_parser.c" /* yacc.c:1646  */
3816      break;
3817  
3818 <  case 147:
3819 <
4124 < /* Line 1806 of yacc.c  */
4125 < #line 1065 "conf_parser.y"
3818 >  case 176:
3819 > #line 1202 "conf_parser.y" /* yacc.c:1646  */
3820      {
4127 #ifdef HAVE_LIBCRYPTO
3821    if (conf_parser_ctx.pass == 2)
3822 <  {
3823 <    BIO *file;
3822 >    block_state.modes.value |= UMODE_BOTS;
3823 > }
3824 > #line 3825 "conf_parser.c" /* yacc.c:1646  */
3825 >    break;
3826  
3827 <    if (yy_aconf->rsa_public_key != NULL)
3827 >  case 177:
3828 > #line 1206 "conf_parser.y" /* yacc.c:1646  */
3829      {
3830 <      RSA_free(yy_aconf->rsa_public_key);
3831 <      yy_aconf->rsa_public_key = NULL;
3832 <    }
3830 >  if (conf_parser_ctx.pass == 2)
3831 >    block_state.modes.value |= UMODE_CCONN;
3832 > }
3833 > #line 3834 "conf_parser.c" /* yacc.c:1646  */
3834 >    break;
3835  
3836 <    if (yy_aconf->rsa_public_key_file != NULL)
3836 >  case 178:
3837 > #line 1210 "conf_parser.y" /* yacc.c:1646  */
3838      {
3839 <      MyFree(yy_aconf->rsa_public_key_file);
3840 <      yy_aconf->rsa_public_key_file = NULL;
3841 <    }
3842 <
3843 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
4145 <    file = BIO_new_file(yylval.string, "r");
3839 >  if (conf_parser_ctx.pass == 2)
3840 >    block_state.modes.value |= UMODE_DEAF;
3841 > }
3842 > #line 3843 "conf_parser.c" /* yacc.c:1646  */
3843 >    break;
3844  
3845 <    if (file == NULL)
3845 >  case 179:
3846 > #line 1214 "conf_parser.y" /* yacc.c:1646  */
3847      {
3848 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
3849 <      break;
3850 <    }
3851 <
3852 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
3848 >  if (conf_parser_ctx.pass == 2)
3849 >    block_state.modes.value |= UMODE_DEBUG;
3850 > }
3851 > #line 3852 "conf_parser.c" /* yacc.c:1646  */
3852 >    break;
3853  
3854 <    if (yy_aconf->rsa_public_key == NULL)
3854 >  case 180:
3855 > #line 1218 "conf_parser.y" /* yacc.c:1646  */
3856      {
3857 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3858 <      break;
4159 <    }
4160 <
4161 <    BIO_set_close(file, BIO_CLOSE);
4162 <    BIO_free(file);
4163 <  }
4164 < #endif /* HAVE_LIBCRYPTO */
3857 >  if (conf_parser_ctx.pass == 2)
3858 >    block_state.modes.value |= UMODE_FULL;
3859   }
3860 + #line 3861 "conf_parser.c" /* yacc.c:1646  */
3861      break;
3862  
3863 <  case 148:
3864 <
4170 < /* Line 1806 of yacc.c  */
4171 < #line 1107 "conf_parser.y"
3863 >  case 181:
3864 > #line 1222 "conf_parser.y" /* yacc.c:1646  */
3865      {
3866    if (conf_parser_ctx.pass == 2)
3867 <  {
4175 <    MyFree(class_name);
4176 <    DupString(class_name, yylval.string);
4177 <  }
3867 >    block_state.modes.value |= UMODE_HIDDEN;
3868   }
3869 + #line 3870 "conf_parser.c" /* yacc.c:1646  */
3870      break;
3871  
3872 <  case 149:
3873 <
4183 < /* Line 1806 of yacc.c  */
4184 < #line 1116 "conf_parser.y"
3872 >  case 182:
3873 > #line 1226 "conf_parser.y" /* yacc.c:1646  */
3874      {
3875    if (conf_parser_ctx.pass == 2)
3876 <    yy_aconf->modes = 0;
3876 >    block_state.modes.value |= UMODE_HIDECHANS;
3877   }
3878 + #line 3879 "conf_parser.c" /* yacc.c:1646  */
3879      break;
3880  
3881 <  case 153:
3882 <
4193 < /* Line 1806 of yacc.c  */
4194 < #line 1123 "conf_parser.y"
3881 >  case 183:
3882 > #line 1230 "conf_parser.y" /* yacc.c:1646  */
3883      {
3884    if (conf_parser_ctx.pass == 2)
3885 <    yy_aconf->modes |= UMODE_BOTS;
3885 >    block_state.modes.value |= UMODE_HIDEIDLE;
3886   }
3887 + #line 3888 "conf_parser.c" /* yacc.c:1646  */
3888      break;
3889  
3890 <  case 154:
3891 <
4203 < /* Line 1806 of yacc.c  */
4204 < #line 1127 "conf_parser.y"
3890 >  case 184:
3891 > #line 1234 "conf_parser.y" /* yacc.c:1646  */
3892      {
3893    if (conf_parser_ctx.pass == 2)
3894 <    yy_aconf->modes |= UMODE_CCONN;
3894 >    block_state.modes.value |= UMODE_SKILL;
3895   }
3896 + #line 3897 "conf_parser.c" /* yacc.c:1646  */
3897      break;
3898  
3899 <  case 155:
3900 <
4213 < /* Line 1806 of yacc.c  */
4214 < #line 1131 "conf_parser.y"
3899 >  case 185:
3900 > #line 1238 "conf_parser.y" /* yacc.c:1646  */
3901      {
3902    if (conf_parser_ctx.pass == 2)
3903 <    yy_aconf->modes |= UMODE_CCONN_FULL;
3903 >    block_state.modes.value |= UMODE_NCHANGE;
3904   }
3905 + #line 3906 "conf_parser.c" /* yacc.c:1646  */
3906      break;
3907  
3908 <  case 156:
3909 <
4223 < /* Line 1806 of yacc.c  */
4224 < #line 1135 "conf_parser.y"
3908 >  case 186:
3909 > #line 1242 "conf_parser.y" /* yacc.c:1646  */
3910      {
3911    if (conf_parser_ctx.pass == 2)
3912 <    yy_aconf->modes |= UMODE_DEAF;
3912 >    block_state.modes.value |= UMODE_REJ;
3913   }
3914 + #line 3915 "conf_parser.c" /* yacc.c:1646  */
3915      break;
3916  
3917 <  case 157:
3918 <
4233 < /* Line 1806 of yacc.c  */
4234 < #line 1139 "conf_parser.y"
3917 >  case 187:
3918 > #line 1246 "conf_parser.y" /* yacc.c:1646  */
3919      {
3920    if (conf_parser_ctx.pass == 2)
3921 <    yy_aconf->modes |= UMODE_DEBUG;
3921 >    block_state.modes.value |= UMODE_UNAUTH;
3922   }
3923 + #line 3924 "conf_parser.c" /* yacc.c:1646  */
3924      break;
3925  
3926 <  case 158:
3927 <
4243 < /* Line 1806 of yacc.c  */
4244 < #line 1143 "conf_parser.y"
3926 >  case 188:
3927 > #line 1250 "conf_parser.y" /* yacc.c:1646  */
3928      {
3929    if (conf_parser_ctx.pass == 2)
3930 <    yy_aconf->modes |= UMODE_FULL;
3930 >    block_state.modes.value |= UMODE_SPY;
3931   }
3932 + #line 3933 "conf_parser.c" /* yacc.c:1646  */
3933      break;
3934  
3935 <  case 159:
3936 <
4253 < /* Line 1806 of yacc.c  */
4254 < #line 1147 "conf_parser.y"
3935 >  case 189:
3936 > #line 1254 "conf_parser.y" /* yacc.c:1646  */
3937      {
3938    if (conf_parser_ctx.pass == 2)
3939 <    yy_aconf->modes |= UMODE_HIDDEN;
3939 >    block_state.modes.value |= UMODE_EXTERNAL;
3940   }
3941 + #line 3942 "conf_parser.c" /* yacc.c:1646  */
3942      break;
3943  
3944 <  case 160:
3945 <
4263 < /* Line 1806 of yacc.c  */
4264 < #line 1151 "conf_parser.y"
3944 >  case 190:
3945 > #line 1258 "conf_parser.y" /* yacc.c:1646  */
3946      {
3947    if (conf_parser_ctx.pass == 2)
3948 <    yy_aconf->modes |= UMODE_SKILL;
3948 >    block_state.modes.value |= UMODE_SERVNOTICE;
3949   }
3950 + #line 3951 "conf_parser.c" /* yacc.c:1646  */
3951      break;
3952  
3953 <  case 161:
3954 <
4273 < /* Line 1806 of yacc.c  */
4274 < #line 1155 "conf_parser.y"
3953 >  case 191:
3954 > #line 1262 "conf_parser.y" /* yacc.c:1646  */
3955      {
3956    if (conf_parser_ctx.pass == 2)
3957 <    yy_aconf->modes |= UMODE_NCHANGE;
3957 >    block_state.modes.value |= UMODE_INVISIBLE;
3958   }
3959 + #line 3960 "conf_parser.c" /* yacc.c:1646  */
3960      break;
3961  
3962 <  case 162:
3963 <
4283 < /* Line 1806 of yacc.c  */
4284 < #line 1159 "conf_parser.y"
3962 >  case 192:
3963 > #line 1266 "conf_parser.y" /* yacc.c:1646  */
3964      {
3965    if (conf_parser_ctx.pass == 2)
3966 <    yy_aconf->modes |= UMODE_REJ;
3966 >    block_state.modes.value |= UMODE_WALLOP;
3967   }
3968 + #line 3969 "conf_parser.c" /* yacc.c:1646  */
3969      break;
3970  
3971 <  case 163:
3972 <
4293 < /* Line 1806 of yacc.c  */
4294 < #line 1163 "conf_parser.y"
3971 >  case 193:
3972 > #line 1270 "conf_parser.y" /* yacc.c:1646  */
3973      {
3974    if (conf_parser_ctx.pass == 2)
3975 <    yy_aconf->modes |= UMODE_UNAUTH;
3975 >    block_state.modes.value |= UMODE_SOFTCALLERID;
3976   }
3977 + #line 3978 "conf_parser.c" /* yacc.c:1646  */
3978      break;
3979  
3980 <  case 164:
3981 <
4303 < /* Line 1806 of yacc.c  */
4304 < #line 1167 "conf_parser.y"
3980 >  case 194:
3981 > #line 1274 "conf_parser.y" /* yacc.c:1646  */
3982      {
3983    if (conf_parser_ctx.pass == 2)
3984 <    yy_aconf->modes |= UMODE_SPY;
3984 >    block_state.modes.value |= UMODE_CALLERID;
3985   }
3986 + #line 3987 "conf_parser.c" /* yacc.c:1646  */
3987      break;
3988  
3989 <  case 165:
3990 <
4313 < /* Line 1806 of yacc.c  */
4314 < #line 1171 "conf_parser.y"
3989 >  case 195:
3990 > #line 1278 "conf_parser.y" /* yacc.c:1646  */
3991      {
3992    if (conf_parser_ctx.pass == 2)
3993 <    yy_aconf->modes |= UMODE_EXTERNAL;
3993 >    block_state.modes.value |= UMODE_LOCOPS;
3994   }
3995 + #line 3996 "conf_parser.c" /* yacc.c:1646  */
3996      break;
3997  
3998 <  case 166:
3999 <
4323 < /* Line 1806 of yacc.c  */
4324 < #line 1175 "conf_parser.y"
3998 >  case 196:
3999 > #line 1282 "conf_parser.y" /* yacc.c:1646  */
4000      {
4001    if (conf_parser_ctx.pass == 2)
4002 <    yy_aconf->modes |= UMODE_OPERWALL;
4002 >    block_state.modes.value |= UMODE_REGONLY;
4003   }
4004 + #line 4005 "conf_parser.c" /* yacc.c:1646  */
4005      break;
4006  
4007 <  case 167:
4008 <
4333 < /* Line 1806 of yacc.c  */
4334 < #line 1179 "conf_parser.y"
4007 >  case 197:
4008 > #line 1286 "conf_parser.y" /* yacc.c:1646  */
4009      {
4010    if (conf_parser_ctx.pass == 2)
4011 <    yy_aconf->modes |= UMODE_SERVNOTICE;
4011 >    block_state.modes.value |= UMODE_FARCONNECT;
4012   }
4013 + #line 4014 "conf_parser.c" /* yacc.c:1646  */
4014      break;
4015  
4016 <  case 168:
4017 <
4343 < /* Line 1806 of yacc.c  */
4344 < #line 1183 "conf_parser.y"
4016 >  case 198:
4017 > #line 1292 "conf_parser.y" /* yacc.c:1646  */
4018      {
4019    if (conf_parser_ctx.pass == 2)
4020 <    yy_aconf->modes |= UMODE_INVISIBLE;
4020 >    block_state.port.value = 0;
4021   }
4022 + #line 4023 "conf_parser.c" /* yacc.c:1646  */
4023      break;
4024  
4025 <  case 169:
4026 <
4353 < /* Line 1806 of yacc.c  */
4354 < #line 1187 "conf_parser.y"
4025 >  case 202:
4026 > #line 1299 "conf_parser.y" /* yacc.c:1646  */
4027      {
4028    if (conf_parser_ctx.pass == 2)
4029 <    yy_aconf->modes |= UMODE_WALLOP;
4029 >    block_state.port.value |= OPER_FLAG_KILL_REMOTE;
4030   }
4031 + #line 4032 "conf_parser.c" /* yacc.c:1646  */
4032      break;
4033  
4034 <  case 170:
4035 <
4363 < /* Line 1806 of yacc.c  */
4364 < #line 1191 "conf_parser.y"
4034 >  case 203:
4035 > #line 1303 "conf_parser.y" /* yacc.c:1646  */
4036      {
4037    if (conf_parser_ctx.pass == 2)
4038 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
4038 >    block_state.port.value |= OPER_FLAG_KILL;
4039   }
4040 + #line 4041 "conf_parser.c" /* yacc.c:1646  */
4041      break;
4042  
4043 <  case 171:
4044 <
4373 < /* Line 1806 of yacc.c  */
4374 < #line 1195 "conf_parser.y"
4043 >  case 204:
4044 > #line 1307 "conf_parser.y" /* yacc.c:1646  */
4045      {
4046    if (conf_parser_ctx.pass == 2)
4047 <    yy_aconf->modes |= UMODE_CALLERID;
4047 >    block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
4048   }
4049 + #line 4050 "conf_parser.c" /* yacc.c:1646  */
4050      break;
4051  
4052 <  case 172:
4053 <
4383 < /* Line 1806 of yacc.c  */
4384 < #line 1199 "conf_parser.y"
4052 >  case 205:
4053 > #line 1311 "conf_parser.y" /* yacc.c:1646  */
4054      {
4055    if (conf_parser_ctx.pass == 2)
4056 <    yy_aconf->modes |= UMODE_LOCOPS;
4056 >    block_state.port.value |= OPER_FLAG_CONNECT;
4057   }
4058 + #line 4059 "conf_parser.c" /* yacc.c:1646  */
4059      break;
4060  
4061 <  case 173:
4062 <
4393 < /* Line 1806 of yacc.c  */
4394 < #line 1205 "conf_parser.y"
4061 >  case 206:
4062 > #line 1315 "conf_parser.y" /* yacc.c:1646  */
4063      {
4064    if (conf_parser_ctx.pass == 2)
4065 <    yy_aconf->port = 0;
4065 >    block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
4066   }
4067 + #line 4068 "conf_parser.c" /* yacc.c:1646  */
4068      break;
4069  
4070 <  case 177:
4071 <
4403 < /* Line 1806 of yacc.c  */
4404 < #line 1212 "conf_parser.y"
4070 >  case 207:
4071 > #line 1319 "conf_parser.y" /* yacc.c:1646  */
4072      {
4073    if (conf_parser_ctx.pass == 2)
4074 <    yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4074 >    block_state.port.value |= OPER_FLAG_SQUIT;
4075   }
4076 + #line 4077 "conf_parser.c" /* yacc.c:1646  */
4077      break;
4078  
4079 <  case 178:
4080 <
4413 < /* Line 1806 of yacc.c  */
4414 < #line 1216 "conf_parser.y"
4079 >  case 208:
4080 > #line 1323 "conf_parser.y" /* yacc.c:1646  */
4081      {
4082    if (conf_parser_ctx.pass == 2)
4083 <    yy_aconf->port |= OPER_FLAG_REMOTE;
4083 >    block_state.port.value |= OPER_FLAG_KLINE;
4084   }
4085 + #line 4086 "conf_parser.c" /* yacc.c:1646  */
4086      break;
4087  
4088 <  case 179:
4089 <
4423 < /* Line 1806 of yacc.c  */
4424 < #line 1220 "conf_parser.y"
4088 >  case 209:
4089 > #line 1327 "conf_parser.y" /* yacc.c:1646  */
4090      {
4091    if (conf_parser_ctx.pass == 2)
4092 <    yy_aconf->port |= OPER_FLAG_K;
4092 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4093   }
4094 + #line 4095 "conf_parser.c" /* yacc.c:1646  */
4095      break;
4096  
4097 <  case 180:
4098 <
4433 < /* Line 1806 of yacc.c  */
4434 < #line 1224 "conf_parser.y"
4097 >  case 210:
4098 > #line 1331 "conf_parser.y" /* yacc.c:1646  */
4099      {
4100    if (conf_parser_ctx.pass == 2)
4101 <    yy_aconf->port |= OPER_FLAG_UNKLINE;
4101 >    block_state.port.value |= OPER_FLAG_DLINE;
4102   }
4103 + #line 4104 "conf_parser.c" /* yacc.c:1646  */
4104      break;
4105  
4106 <  case 181:
4107 <
4443 < /* Line 1806 of yacc.c  */
4444 < #line 1228 "conf_parser.y"
4106 >  case 211:
4107 > #line 1335 "conf_parser.y" /* yacc.c:1646  */
4108      {
4109    if (conf_parser_ctx.pass == 2)
4110 <    yy_aconf->port |= OPER_FLAG_DLINE;
4110 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4111   }
4112 + #line 4113 "conf_parser.c" /* yacc.c:1646  */
4113      break;
4114  
4115 <  case 182:
4116 <
4453 < /* Line 1806 of yacc.c  */
4454 < #line 1232 "conf_parser.y"
4115 >  case 212:
4116 > #line 1339 "conf_parser.y" /* yacc.c:1646  */
4117      {
4118    if (conf_parser_ctx.pass == 2)
4119 <    yy_aconf->port |= OPER_FLAG_UNDLINE;
4119 >    block_state.port.value |= OPER_FLAG_XLINE;
4120   }
4121 + #line 4122 "conf_parser.c" /* yacc.c:1646  */
4122      break;
4123  
4124 <  case 183:
4125 <
4463 < /* Line 1806 of yacc.c  */
4464 < #line 1236 "conf_parser.y"
4124 >  case 213:
4125 > #line 1343 "conf_parser.y" /* yacc.c:1646  */
4126      {
4127    if (conf_parser_ctx.pass == 2)
4128 <    yy_aconf->port |= OPER_FLAG_X;
4128 >    block_state.port.value |= OPER_FLAG_UNXLINE;
4129   }
4130 + #line 4131 "conf_parser.c" /* yacc.c:1646  */
4131      break;
4132  
4133 <  case 184:
4134 <
4473 < /* Line 1806 of yacc.c  */
4474 < #line 1240 "conf_parser.y"
4133 >  case 214:
4134 > #line 1347 "conf_parser.y" /* yacc.c:1646  */
4135      {
4136    if (conf_parser_ctx.pass == 2)
4137 <    yy_aconf->port |= OPER_FLAG_GLINE;
4137 >    block_state.port.value |= OPER_FLAG_GLINE;
4138   }
4139 + #line 4140 "conf_parser.c" /* yacc.c:1646  */
4140      break;
4141  
4142 <  case 185:
4143 <
4483 < /* Line 1806 of yacc.c  */
4484 < #line 1244 "conf_parser.y"
4142 >  case 215:
4143 > #line 1351 "conf_parser.y" /* yacc.c:1646  */
4144      {
4145    if (conf_parser_ctx.pass == 2)
4146 <    yy_aconf->port |= OPER_FLAG_DIE;
4146 >    block_state.port.value |= OPER_FLAG_DIE;
4147   }
4148 + #line 4149 "conf_parser.c" /* yacc.c:1646  */
4149      break;
4150  
4151 <  case 186:
4152 <
4493 < /* Line 1806 of yacc.c  */
4494 < #line 1248 "conf_parser.y"
4151 >  case 216:
4152 > #line 1355 "conf_parser.y" /* yacc.c:1646  */
4153      {
4154    if (conf_parser_ctx.pass == 2)
4155 <    yy_aconf->port |= OPER_FLAG_RESTART;
4155 >    block_state.port.value |= OPER_FLAG_RESTART;
4156   }
4157 + #line 4158 "conf_parser.c" /* yacc.c:1646  */
4158      break;
4159  
4160 <  case 187:
4161 <
4503 < /* Line 1806 of yacc.c  */
4504 < #line 1252 "conf_parser.y"
4160 >  case 217:
4161 > #line 1359 "conf_parser.y" /* yacc.c:1646  */
4162      {
4163    if (conf_parser_ctx.pass == 2)
4164 <    yy_aconf->port |= OPER_FLAG_REHASH;
4164 >    block_state.port.value |= OPER_FLAG_REHASH;
4165   }
4166 + #line 4167 "conf_parser.c" /* yacc.c:1646  */
4167      break;
4168  
4169 <  case 188:
4170 <
4513 < /* Line 1806 of yacc.c  */
4514 < #line 1256 "conf_parser.y"
4169 >  case 218:
4170 > #line 1363 "conf_parser.y" /* yacc.c:1646  */
4171      {
4172    if (conf_parser_ctx.pass == 2)
4173 <    yy_aconf->port |= OPER_FLAG_ADMIN;
4173 >    block_state.port.value |= OPER_FLAG_ADMIN;
4174   }
4175 + #line 4176 "conf_parser.c" /* yacc.c:1646  */
4176      break;
4177  
4178 <  case 189:
4179 <
4523 < /* Line 1806 of yacc.c  */
4524 < #line 1260 "conf_parser.y"
4178 >  case 219:
4179 > #line 1367 "conf_parser.y" /* yacc.c:1646  */
4180      {
4181    if (conf_parser_ctx.pass == 2)
4182 <    yy_aconf->port |= OPER_FLAG_N;
4182 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4183   }
4184 + #line 4185 "conf_parser.c" /* yacc.c:1646  */
4185      break;
4186  
4187 <  case 190:
4188 <
4533 < /* Line 1806 of yacc.c  */
4534 < #line 1264 "conf_parser.y"
4187 >  case 220:
4188 > #line 1371 "conf_parser.y" /* yacc.c:1646  */
4189      {
4190    if (conf_parser_ctx.pass == 2)
4191 <    yy_aconf->port |= OPER_FLAG_OPERWALL;
4191 >    block_state.port.value |= OPER_FLAG_WALLOPS;
4192   }
4193 + #line 4194 "conf_parser.c" /* yacc.c:1646  */
4194      break;
4195  
4196 <  case 191:
4197 <
4543 < /* Line 1806 of yacc.c  */
4544 < #line 1268 "conf_parser.y"
4196 >  case 221:
4197 > #line 1375 "conf_parser.y" /* yacc.c:1646  */
4198      {
4199    if (conf_parser_ctx.pass == 2)
4200 <    yy_aconf->port |= OPER_FLAG_GLOBOPS;
4200 >    block_state.port.value |= OPER_FLAG_LOCOPS;
4201   }
4202 + #line 4203 "conf_parser.c" /* yacc.c:1646  */
4203      break;
4204  
4205 <  case 192:
4206 <
4553 < /* Line 1806 of yacc.c  */
4554 < #line 1272 "conf_parser.y"
4205 >  case 222:
4206 > #line 1379 "conf_parser.y" /* yacc.c:1646  */
4207      {
4208    if (conf_parser_ctx.pass == 2)
4209 <    yy_aconf->port |= OPER_FLAG_OPER_SPY;
4209 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4210   }
4211 + #line 4212 "conf_parser.c" /* yacc.c:1646  */
4212      break;
4213  
4214 <  case 193:
4215 <
4563 < /* Line 1806 of yacc.c  */
4564 < #line 1276 "conf_parser.y"
4214 >  case 223:
4215 > #line 1383 "conf_parser.y" /* yacc.c:1646  */
4216      {
4217    if (conf_parser_ctx.pass == 2)
4218 <    yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4218 >    block_state.port.value |= OPER_FLAG_SET;
4219   }
4220 + #line 4221 "conf_parser.c" /* yacc.c:1646  */
4221      break;
4222  
4223 <  case 194:
4224 <
4573 < /* Line 1806 of yacc.c  */
4574 < #line 1280 "conf_parser.y"
4223 >  case 224:
4224 > #line 1387 "conf_parser.y" /* yacc.c:1646  */
4225      {
4226    if (conf_parser_ctx.pass == 2)
4227 <    yy_aconf->port |= OPER_FLAG_MODULE;
4227 >    block_state.port.value |= OPER_FLAG_MODULE;
4228   }
4229 + #line 4230 "conf_parser.c" /* yacc.c:1646  */
4230      break;
4231  
4232 <  case 195:
4233 <
4583 < /* Line 1806 of yacc.c  */
4584 < #line 1290 "conf_parser.y"
4232 >  case 225:
4233 > #line 1397 "conf_parser.y" /* yacc.c:1646  */
4234      {
4235 <  if (conf_parser_ctx.pass == 1)
4587 <  {
4588 <    yy_conf = make_conf_item(CLASS_TYPE);
4589 <    yy_class = map_to_conf(yy_conf);
4590 <  }
4591 < }
4235 >  if (conf_parser_ctx.pass != 1)
4236      break;
4237  
4238 <  case 196:
4238 >  reset_block_state();
4239  
4240 < /* Line 1806 of yacc.c  */
4241 < #line 1297 "conf_parser.y"
4242 <    {
4243 <  if (conf_parser_ctx.pass == 1)
4244 <  {
4245 <    struct ConfItem *cconf = NULL;
4246 <    struct ClassItem *class = NULL;
4240 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4241 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4242 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4243 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4244 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4245 > }
4246 > #line 4247 "conf_parser.c" /* yacc.c:1646  */
4247 >    break;
4248  
4249 <    if (yy_class_name == NULL)
4250 <      delete_conf_item(yy_conf);
4606 <    else
4249 >  case 226:
4250 > #line 1409 "conf_parser.y" /* yacc.c:1646  */
4251      {
4252 <      cconf = find_exact_name_conf(CLASS_TYPE, NULL, yy_class_name, NULL, NULL);
4252 >  struct ClassItem *class = NULL;
4253  
4254 <      if (cconf != NULL)                /* The class existed already */
4255 <      {
4612 <        int user_count = 0;
4254 >  if (conf_parser_ctx.pass != 1)
4255 >    break;
4256  
4257 <        rebuild_cidr_class(cconf, yy_class);
4257 >  if (!block_state.class.buf[0])
4258 >    break;
4259  
4260 <        class = map_to_conf(cconf);
4260 >  if (!(class = class_find(block_state.class.buf, 0)))
4261 >    class = class_make();
4262  
4263 <        user_count = class->curr_user_count;
4264 <        memcpy(class, yy_class, sizeof(*class));
4265 <        class->curr_user_count = user_count;
4266 <        class->active = 1;
4263 >  class->active = 1;
4264 >  MyFree(class->name);
4265 >  class->name = xstrdup(block_state.class.buf);
4266 >  class->ping_freq = block_state.ping_freq.value;
4267 >  class->max_perip = block_state.max_perip.value;
4268 >  class->con_freq = block_state.con_freq.value;
4269 >  class->max_total = block_state.max_total.value;
4270 >  class->max_global = block_state.max_global.value;
4271 >  class->max_local = block_state.max_local.value;
4272 >  class->max_ident = block_state.max_ident.value;
4273 >  class->max_sendq = block_state.max_sendq.value;
4274 >  class->max_recvq = block_state.max_recvq.value;
4275 >  class->max_channels = block_state.max_channels.value;
4276  
4277 <        delete_conf_item(yy_conf);
4277 >  if (block_state.min_idle.value > block_state.max_idle.value)
4278 >  {
4279 >    block_state.min_idle.value = 0;
4280 >    block_state.max_idle.value = 0;
4281 >    block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4282 >  }
4283  
4284 <        MyFree(cconf->name);            /* Allows case change of class name */
4285 <        cconf->name = yy_class_name;
4286 <      }
4628 <      else      /* Brand new class */
4629 <      {
4630 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4631 <        yy_conf->name = yy_class_name;
4632 <        yy_class->active = 1;
4633 <      }
4634 <    }
4284 >  class->flags = block_state.flags.value;
4285 >  class->min_idle = block_state.min_idle.value;
4286 >  class->max_idle = block_state.max_idle.value;
4287  
4288 <    yy_class_name = NULL;
4289 <  }
4288 >  if (class->number_per_cidr && block_state.number_per_cidr.value)
4289 >    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4290 >        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4291 >      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4292 >          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4293 >        rebuild_cidr_list(class);
4294 >
4295 >  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4296 >  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4297 >  class->number_per_cidr = block_state.number_per_cidr.value;
4298   }
4299 + #line 4300 "conf_parser.c" /* yacc.c:1646  */
4300      break;
4301  
4302 <  case 213:
4303 <
4643 < /* Line 1806 of yacc.c  */
4644 < #line 1355 "conf_parser.y"
4302 >  case 247:
4303 > #line 1478 "conf_parser.y" /* yacc.c:1646  */
4304      {
4305    if (conf_parser_ctx.pass == 1)
4306 <  {
4648 <    MyFree(yy_class_name);
4649 <    DupString(yy_class_name, yylval.string);
4650 <  }
4306 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4307   }
4308 + #line 4309 "conf_parser.c" /* yacc.c:1646  */
4309      break;
4310  
4311 <  case 214:
4312 <
4656 < /* Line 1806 of yacc.c  */
4657 < #line 1364 "conf_parser.y"
4311 >  case 248:
4312 > #line 1484 "conf_parser.y" /* yacc.c:1646  */
4313      {
4314    if (conf_parser_ctx.pass == 1)
4315 <    yy_class->ping_freq = (yyvsp[(3) - (4)].number);
4315 >    block_state.ping_freq.value = (yyvsp[-1].number);
4316   }
4317 + #line 4318 "conf_parser.c" /* yacc.c:1646  */
4318      break;
4319  
4320 <  case 215:
4321 <
4666 < /* Line 1806 of yacc.c  */
4667 < #line 1370 "conf_parser.y"
4320 >  case 249:
4321 > #line 1490 "conf_parser.y" /* yacc.c:1646  */
4322      {
4323    if (conf_parser_ctx.pass == 1)
4324 <    yy_class->ping_warning = (yyvsp[(3) - (4)].number);
4324 >    block_state.max_perip.value = (yyvsp[-1].number);
4325   }
4326 + #line 4327 "conf_parser.c" /* yacc.c:1646  */
4327      break;
4328  
4329 <  case 216:
4330 <
4676 < /* Line 1806 of yacc.c  */
4677 < #line 1376 "conf_parser.y"
4329 >  case 250:
4330 > #line 1496 "conf_parser.y" /* yacc.c:1646  */
4331      {
4332    if (conf_parser_ctx.pass == 1)
4333 <    yy_class->max_perip = (yyvsp[(3) - (4)].number);
4333 >    block_state.con_freq.value = (yyvsp[-1].number);
4334   }
4335 + #line 4336 "conf_parser.c" /* yacc.c:1646  */
4336      break;
4337  
4338 <  case 217:
4339 <
4686 < /* Line 1806 of yacc.c  */
4687 < #line 1382 "conf_parser.y"
4338 >  case 251:
4339 > #line 1502 "conf_parser.y" /* yacc.c:1646  */
4340      {
4341    if (conf_parser_ctx.pass == 1)
4342 <    yy_class->con_freq = (yyvsp[(3) - (4)].number);
4342 >    block_state.max_channels.value = (yyvsp[-1].number);
4343   }
4344 + #line 4345 "conf_parser.c" /* yacc.c:1646  */
4345      break;
4346  
4347 <  case 218:
4348 <
4696 < /* Line 1806 of yacc.c  */
4697 < #line 1388 "conf_parser.y"
4347 >  case 252:
4348 > #line 1508 "conf_parser.y" /* yacc.c:1646  */
4349      {
4350    if (conf_parser_ctx.pass == 1)
4351 <    yy_class->max_total = (yyvsp[(3) - (4)].number);
4351 >    block_state.max_total.value = (yyvsp[-1].number);
4352   }
4353 + #line 4354 "conf_parser.c" /* yacc.c:1646  */
4354      break;
4355  
4356 <  case 219:
4357 <
4706 < /* Line 1806 of yacc.c  */
4707 < #line 1394 "conf_parser.y"
4356 >  case 253:
4357 > #line 1514 "conf_parser.y" /* yacc.c:1646  */
4358      {
4359    if (conf_parser_ctx.pass == 1)
4360 <    yy_class->max_global = (yyvsp[(3) - (4)].number);
4360 >    block_state.max_global.value = (yyvsp[-1].number);
4361   }
4362 + #line 4363 "conf_parser.c" /* yacc.c:1646  */
4363      break;
4364  
4365 <  case 220:
4366 <
4716 < /* Line 1806 of yacc.c  */
4717 < #line 1400 "conf_parser.y"
4365 >  case 254:
4366 > #line 1520 "conf_parser.y" /* yacc.c:1646  */
4367      {
4368    if (conf_parser_ctx.pass == 1)
4369 <    yy_class->max_local = (yyvsp[(3) - (4)].number);
4369 >    block_state.max_local.value = (yyvsp[-1].number);
4370   }
4371 + #line 4372 "conf_parser.c" /* yacc.c:1646  */
4372      break;
4373  
4374 <  case 221:
4375 <
4726 < /* Line 1806 of yacc.c  */
4727 < #line 1406 "conf_parser.y"
4374 >  case 255:
4375 > #line 1526 "conf_parser.y" /* yacc.c:1646  */
4376      {
4377    if (conf_parser_ctx.pass == 1)
4378 <    yy_class->max_ident = (yyvsp[(3) - (4)].number);
4378 >    block_state.max_ident.value = (yyvsp[-1].number);
4379   }
4380 + #line 4381 "conf_parser.c" /* yacc.c:1646  */
4381      break;
4382  
4383 <  case 222:
4384 <
4736 < /* Line 1806 of yacc.c  */
4737 < #line 1412 "conf_parser.y"
4383 >  case 256:
4384 > #line 1532 "conf_parser.y" /* yacc.c:1646  */
4385      {
4386    if (conf_parser_ctx.pass == 1)
4387 <    yy_class->max_sendq = (yyvsp[(3) - (4)].number);
4387 >    block_state.max_sendq.value = (yyvsp[-1].number);
4388   }
4389 + #line 4390 "conf_parser.c" /* yacc.c:1646  */
4390      break;
4391  
4392 <  case 223:
4393 <
4746 < /* Line 1806 of yacc.c  */
4747 < #line 1418 "conf_parser.y"
4392 >  case 257:
4393 > #line 1538 "conf_parser.y" /* yacc.c:1646  */
4394      {
4395    if (conf_parser_ctx.pass == 1)
4396 <    yy_class->cidr_bitlen_ipv4 = (yyvsp[(3) - (4)].number);
4396 >    if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX)
4397 >      block_state.max_recvq.value = (yyvsp[-1].number);
4398   }
4399 + #line 4400 "conf_parser.c" /* yacc.c:1646  */
4400      break;
4401  
4402 <  case 224:
4403 <
4756 < /* Line 1806 of yacc.c  */
4757 < #line 1424 "conf_parser.y"
4402 >  case 258:
4403 > #line 1545 "conf_parser.y" /* yacc.c:1646  */
4404      {
4405    if (conf_parser_ctx.pass == 1)
4406 <    yy_class->cidr_bitlen_ipv6 = (yyvsp[(3) - (4)].number);
4406 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number);
4407   }
4408 + #line 4409 "conf_parser.c" /* yacc.c:1646  */
4409      break;
4410  
4411 <  case 225:
4412 <
4766 < /* Line 1806 of yacc.c  */
4767 < #line 1430 "conf_parser.y"
4411 >  case 259:
4412 > #line 1551 "conf_parser.y" /* yacc.c:1646  */
4413      {
4414    if (conf_parser_ctx.pass == 1)
4415 <    yy_class->number_per_cidr = (yyvsp[(3) - (4)].number);
4415 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number);
4416   }
4417 + #line 4418 "conf_parser.c" /* yacc.c:1646  */
4418      break;
4419  
4420 <  case 226:
4421 <
4776 < /* Line 1806 of yacc.c  */
4777 < #line 1439 "conf_parser.y"
4420 >  case 260:
4421 > #line 1557 "conf_parser.y" /* yacc.c:1646  */
4422      {
4423 <  if (conf_parser_ctx.pass == 2)
4424 <  {
4781 <    listener_address = NULL;
4782 <    listener_flags = 0;
4783 <  }
4423 >  if (conf_parser_ctx.pass == 1)
4424 >    block_state.number_per_cidr.value = (yyvsp[-1].number);
4425   }
4426 + #line 4427 "conf_parser.c" /* yacc.c:1646  */
4427 +    break;
4428 +
4429 +  case 261:
4430 + #line 1563 "conf_parser.y" /* yacc.c:1646  */
4431 +    {
4432 +  if (conf_parser_ctx.pass != 1)
4433      break;
4434  
4435 <  case 227:
4435 >  block_state.min_idle.value = (yyvsp[-1].number);
4436 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4437 > }
4438 > #line 4439 "conf_parser.c" /* yacc.c:1646  */
4439 >    break;
4440  
4441 < /* Line 1806 of yacc.c  */
4442 < #line 1446 "conf_parser.y"
4441 >  case 262:
4442 > #line 1572 "conf_parser.y" /* yacc.c:1646  */
4443      {
4444 <  if (conf_parser_ctx.pass == 2)
4445 <  {
4446 <    MyFree(listener_address);
4447 <    listener_address = NULL;
4448 <  }
4444 >  if (conf_parser_ctx.pass != 1)
4445 >    break;
4446 >
4447 >  block_state.max_idle.value = (yyvsp[-1].number);
4448 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4449   }
4450 + #line 4451 "conf_parser.c" /* yacc.c:1646  */
4451      break;
4452  
4453 <  case 228:
4453 >  case 263:
4454 > #line 1581 "conf_parser.y" /* yacc.c:1646  */
4455 >    {
4456 >  if (conf_parser_ctx.pass == 1)
4457 >    block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4458 > }
4459 > #line 4460 "conf_parser.c" /* yacc.c:1646  */
4460 >    break;
4461  
4462 < /* Line 1806 of yacc.c  */
4463 < #line 1455 "conf_parser.y"
4462 >  case 267:
4463 > #line 1588 "conf_parser.y" /* yacc.c:1646  */
4464      {
4465 <  listener_flags = 0;
4465 >  if (conf_parser_ctx.pass == 1)
4466 >    block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4467   }
4468 + #line 4469 "conf_parser.c" /* yacc.c:1646  */
4469      break;
4470  
4471 <  case 232:
4471 >  case 268:
4472 > #line 1592 "conf_parser.y" /* yacc.c:1646  */
4473 >    {
4474 >  if (conf_parser_ctx.pass == 1)
4475 >    block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4476 > }
4477 > #line 4478 "conf_parser.c" /* yacc.c:1646  */
4478 >    break;
4479  
4480 < /* Line 1806 of yacc.c  */
4481 < #line 1461 "conf_parser.y"
4480 >  case 269:
4481 > #line 1602 "conf_parser.y" /* yacc.c:1646  */
4482      {
4483    if (conf_parser_ctx.pass == 2)
4484 <    listener_flags |= LISTENER_SSL;
4484 >    reset_block_state();
4485   }
4486 + #line 4487 "conf_parser.c" /* yacc.c:1646  */
4487      break;
4488  
4489 <  case 233:
4489 >  case 271:
4490 > #line 1608 "conf_parser.y" /* yacc.c:1646  */
4491 >    {
4492 >  block_state.flags.value = 0;
4493 > }
4494 > #line 4495 "conf_parser.c" /* yacc.c:1646  */
4495 >    break;
4496  
4497 < /* Line 1806 of yacc.c  */
4498 < #line 1465 "conf_parser.y"
4497 >  case 275:
4498 > #line 1614 "conf_parser.y" /* yacc.c:1646  */
4499      {
4500    if (conf_parser_ctx.pass == 2)
4501 <    listener_flags |= LISTENER_HIDDEN;
4501 >    block_state.flags.value |= LISTENER_SSL;
4502   }
4503 + #line 4504 "conf_parser.c" /* yacc.c:1646  */
4504      break;
4505  
4506 <  case 234:
4507 <
4831 < /* Line 1806 of yacc.c  */
4832 < #line 1469 "conf_parser.y"
4506 >  case 276:
4507 > #line 1618 "conf_parser.y" /* yacc.c:1646  */
4508      {
4509    if (conf_parser_ctx.pass == 2)
4510 <    listener_flags |= LISTENER_SERVER;
4510 >    block_state.flags.value |= LISTENER_HIDDEN;
4511   }
4512 + #line 4513 "conf_parser.c" /* yacc.c:1646  */
4513      break;
4514  
4515 <  case 242:
4516 <
4517 < /* Line 1806 of yacc.c  */
4518 < #line 1479 "conf_parser.y"
4519 <    { listener_flags = 0; }
4515 >  case 277:
4516 > #line 1622 "conf_parser.y" /* yacc.c:1646  */
4517 >    {
4518 >  if (conf_parser_ctx.pass == 2)
4519 >   block_state.flags.value |= LISTENER_SERVER;
4520 > }
4521 > #line 4522 "conf_parser.c" /* yacc.c:1646  */
4522      break;
4523  
4524 <  case 246:
4524 >  case 285:
4525 > #line 1630 "conf_parser.y" /* yacc.c:1646  */
4526 >    { block_state.flags.value = 0; }
4527 > #line 4528 "conf_parser.c" /* yacc.c:1646  */
4528 >    break;
4529  
4530 < /* Line 1806 of yacc.c  */
4531 < #line 1484 "conf_parser.y"
4530 >  case 289:
4531 > #line 1635 "conf_parser.y" /* yacc.c:1646  */
4532      {
4533    if (conf_parser_ctx.pass == 2)
4534    {
4535 <    if ((listener_flags & LISTENER_SSL))
4535 >    if (block_state.flags.value & LISTENER_SSL)
4536   #ifdef HAVE_LIBCRYPTO
4537        if (!ServerInfo.server_ctx)
4538   #endif
4539        {
4540 <        yyerror("SSL not available - port closed");
4541 <        break;
4540 >        conf_error_report("SSL not available - port closed");
4541 >        break;
4542        }
4543 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4543 >    add_listener((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4544    }
4545   }
4546 + #line 4547 "conf_parser.c" /* yacc.c:1646  */
4547      break;
4548  
4549 <  case 247:
4550 <
4868 < /* Line 1806 of yacc.c  */
4869 < #line 1498 "conf_parser.y"
4549 >  case 290:
4550 > #line 1649 "conf_parser.y" /* yacc.c:1646  */
4551      {
4552    if (conf_parser_ctx.pass == 2)
4553    {
4554 <    int i;
4874 <
4875 <    if ((listener_flags & LISTENER_SSL))
4554 >    if (block_state.flags.value & LISTENER_SSL)
4555   #ifdef HAVE_LIBCRYPTO
4556        if (!ServerInfo.server_ctx)
4557   #endif
4558        {
4559 <        yyerror("SSL not available - port closed");
4560 <        break;
4559 >        conf_error_report("SSL not available - port closed");
4560 >        break;
4561        }
4562  
4563 <    for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4564 <      add_listener(i, listener_address, listener_flags);
4563 >    for (int i = (yyvsp[-2].number); i <= (yyvsp[0].number); ++i)
4564 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4565    }
4566   }
4567 + #line 4568 "conf_parser.c" /* yacc.c:1646  */
4568      break;
4569  
4570 <  case 248:
4571 <
4892 < /* Line 1806 of yacc.c  */
4893 < #line 1518 "conf_parser.y"
4570 >  case 291:
4571 > #line 1667 "conf_parser.y" /* yacc.c:1646  */
4572      {
4573    if (conf_parser_ctx.pass == 2)
4574 <  {
4897 <    MyFree(listener_address);
4898 <    DupString(listener_address, yylval.string);
4899 <  }
4574 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4575   }
4576 + #line 4577 "conf_parser.c" /* yacc.c:1646  */
4577      break;
4578  
4579 <  case 249:
4580 <
4905 < /* Line 1806 of yacc.c  */
4906 < #line 1527 "conf_parser.y"
4579 >  case 292:
4580 > #line 1673 "conf_parser.y" /* yacc.c:1646  */
4581      {
4582    if (conf_parser_ctx.pass == 2)
4583 <  {
4910 <    MyFree(listener_address);
4911 <    DupString(listener_address, yylval.string);
4912 <  }
4583 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4584   }
4585 + #line 4586 "conf_parser.c" /* yacc.c:1646  */
4586      break;
4587  
4588 <  case 250:
4589 <
4918 < /* Line 1806 of yacc.c  */
4919 < #line 1539 "conf_parser.y"
4588 >  case 293:
4589 > #line 1682 "conf_parser.y" /* yacc.c:1646  */
4590      {
4591    if (conf_parser_ctx.pass == 2)
4592 <  {
4923 <    yy_conf = make_conf_item(CLIENT_TYPE);
4924 <    yy_aconf = map_to_conf(yy_conf);
4925 <  }
4926 <  else
4927 <  {
4928 <    MyFree(class_name);
4929 <    class_name = NULL;
4930 <  }
4592 >    reset_block_state();
4593   }
4594 + #line 4595 "conf_parser.c" /* yacc.c:1646  */
4595      break;
4596  
4597 <  case 251:
4598 <
4936 < /* Line 1806 of yacc.c  */
4937 < #line 1551 "conf_parser.y"
4938 <    {
4939 <  if (conf_parser_ctx.pass == 2)
4940 <  {
4941 <    struct CollectItem *yy_tmp = NULL;
4942 <    dlink_node *ptr = NULL, *next_ptr = NULL;
4943 <
4944 <    if (yy_aconf->user && yy_aconf->host)
4597 >  case 294:
4598 > #line 1686 "conf_parser.y" /* yacc.c:1646  */
4599      {
4600 <      conf_add_class_to_conf(yy_conf, class_name);
4947 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
4948 <    }
4949 <    else
4950 <      delete_conf_item(yy_conf);
4951 <
4952 <    /* copy over settings from first struct */
4953 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4954 <    {
4955 <      struct AccessItem *new_aconf;
4956 <      struct ConfItem *new_conf;
4957 <
4958 <      new_conf = make_conf_item(CLIENT_TYPE);
4959 <      new_aconf = map_to_conf(new_conf);
4960 <
4961 <      yy_tmp = ptr->data;
4600 >  dlink_node *ptr = NULL;
4601  
4602 <      assert(yy_tmp->user && yy_tmp->host);
4964 <
4965 <      if (yy_aconf->passwd != NULL)
4966 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4967 <      if (yy_conf->name != NULL)
4968 <        DupString(new_conf->name, yy_conf->name);
4969 <      if (yy_aconf->passwd != NULL)
4970 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4971 <
4972 <      new_aconf->flags = yy_aconf->flags;
4973 <      new_aconf->port  = yy_aconf->port;
4974 <
4975 <      DupString(new_aconf->user, yy_tmp->user);
4976 <      collapse(new_aconf->user);
4977 <
4978 <      DupString(new_aconf->host, yy_tmp->host);
4979 <      collapse(new_aconf->host);
4980 <
4981 <      conf_add_class_to_conf(new_conf, class_name);
4982 <      add_conf_by_address(CONF_CLIENT, new_aconf);
4983 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4984 <      free_collect_item(yy_tmp);
4985 <    }
4986 <
4987 <    MyFree(class_name);
4988 <    class_name = NULL;
4989 <    yy_conf = NULL;
4990 <    yy_aconf = NULL;
4991 <  }
4992 < }
4602 >  if (conf_parser_ctx.pass != 2)
4603      break;
4604  
4605 <  case 263:
4996 <
4997 < /* Line 1806 of yacc.c  */
4998 < #line 1613 "conf_parser.y"
4999 <    {
5000 <  if (conf_parser_ctx.pass == 2)
4605 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4606    {
4607 <    struct CollectItem *yy_tmp = NULL;
4607 >    struct MaskItem *conf = NULL;
4608      struct split_nuh_item nuh;
4609  
4610 <    nuh.nuhmask  = yylval.string;
4610 >    nuh.nuhmask  = ptr->data;
4611      nuh.nickptr  = NULL;
4612 <    nuh.userptr  = userbuf;
4613 <    nuh.hostptr  = hostbuf;
5009 <
4612 >    nuh.userptr  = block_state.user.buf;
4613 >    nuh.hostptr  = block_state.host.buf;
4614      nuh.nicksize = 0;
4615 <    nuh.usersize = sizeof(userbuf);
4616 <    nuh.hostsize = sizeof(hostbuf);
5013 <
4615 >    nuh.usersize = sizeof(block_state.user.buf);
4616 >    nuh.hostsize = sizeof(block_state.host.buf);
4617      split_nuh(&nuh);
4618  
4619 <    if (yy_aconf->user == NULL)
4620 <    {
4621 <      DupString(yy_aconf->user, userbuf);
5019 <      DupString(yy_aconf->host, hostbuf);
5020 <    }
5021 <    else
5022 <    {
5023 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4619 >    conf        = conf_make(CONF_CLIENT);
4620 >    conf->user  = xstrdup(block_state.user.buf);
4621 >    conf->host  = xstrdup(block_state.host.buf);
4622  
4623 <      DupString(yy_tmp->user, userbuf);
4624 <      DupString(yy_tmp->host, hostbuf);
4623 >    if (block_state.rpass.buf[0])
4624 >      conf->passwd = xstrdup(block_state.rpass.buf);
4625 >    if (block_state.name.buf[0])
4626 >      conf->name = xstrdup(block_state.name.buf);
4627  
4628 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4629 <    }
4628 >    conf->flags = block_state.flags.value;
4629 >    conf->port  = block_state.port.value;
4630 >
4631 >    conf_add_class_to_conf(conf, block_state.class.buf);
4632 >    add_conf_by_address(CONF_CLIENT, conf);
4633    }
4634   }
4635 + #line 4636 "conf_parser.c" /* yacc.c:1646  */
4636      break;
4637  
4638 <  case 264:
4639 <
5036 < /* Line 1806 of yacc.c  */
5037 < #line 1648 "conf_parser.y"
4638 >  case 306:
4639 > #line 1735 "conf_parser.y" /* yacc.c:1646  */
4640      {
4641    if (conf_parser_ctx.pass == 2)
4642 <  {
5041 <    /* be paranoid */
5042 <    if (yy_aconf->passwd != NULL)
5043 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5044 <
5045 <    MyFree(yy_aconf->passwd);
5046 <    DupString(yy_aconf->passwd, yylval.string);
5047 <  }
4642 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4643   }
4644 + #line 4645 "conf_parser.c" /* yacc.c:1646  */
4645      break;
4646  
4647 <  case 265:
4648 <
5053 < /* Line 1806 of yacc.c  */
5054 < #line 1661 "conf_parser.y"
4647 >  case 307:
4648 > #line 1741 "conf_parser.y" /* yacc.c:1646  */
4649      {
4650    if (conf_parser_ctx.pass == 2)
4651 <  {
5058 <    MyFree(class_name);
5059 <    DupString(class_name, yylval.string);
5060 <  }
4651 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4652   }
4653 + #line 4654 "conf_parser.c" /* yacc.c:1646  */
4654      break;
4655  
4656 <  case 266:
4656 >  case 308:
4657 > #line 1747 "conf_parser.y" /* yacc.c:1646  */
4658 >    {
4659 >  if (conf_parser_ctx.pass == 2)
4660 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4661 > }
4662 > #line 4663 "conf_parser.c" /* yacc.c:1646  */
4663 >    break;
4664  
4665 < /* Line 1806 of yacc.c  */
4666 < #line 1670 "conf_parser.y"
4665 >  case 309:
4666 > #line 1753 "conf_parser.y" /* yacc.c:1646  */
4667      {
4668    if (conf_parser_ctx.pass == 2)
4669    {
4670      if (yylval.number)
4671 <      SetConfEncrypted(yy_aconf);
4671 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4672      else
4673 <      ClearConfEncrypted(yy_aconf);
4673 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4674    }
4675   }
4676 + #line 4677 "conf_parser.c" /* yacc.c:1646  */
4677      break;
4678  
4679 <  case 267:
4680 <
5081 < /* Line 1806 of yacc.c  */
5082 < #line 1681 "conf_parser.y"
4679 >  case 310:
4680 > #line 1764 "conf_parser.y" /* yacc.c:1646  */
4681      {
4682 +  if (conf_parser_ctx.pass == 2)
4683 +    block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4684   }
4685 + #line 4686 "conf_parser.c" /* yacc.c:1646  */
4686      break;
4687  
4688 <  case 271:
4689 <
5089 < /* Line 1806 of yacc.c  */
5090 < #line 1686 "conf_parser.y"
4688 >  case 314:
4689 > #line 1771 "conf_parser.y" /* yacc.c:1646  */
4690      {
4691    if (conf_parser_ctx.pass == 2)
4692 <    yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
4692 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4693   }
4694 + #line 4695 "conf_parser.c" /* yacc.c:1646  */
4695      break;
4696  
4697 <  case 272:
4698 <
5099 < /* Line 1806 of yacc.c  */
5100 < #line 1690 "conf_parser.y"
4697 >  case 315:
4698 > #line 1775 "conf_parser.y" /* yacc.c:1646  */
4699      {
4700    if (conf_parser_ctx.pass == 2)
4701 <    yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
4701 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4702   }
4703 + #line 4704 "conf_parser.c" /* yacc.c:1646  */
4704      break;
4705  
4706 <  case 273:
4707 <
5109 < /* Line 1806 of yacc.c  */
5110 < #line 1694 "conf_parser.y"
4706 >  case 316:
4707 > #line 1779 "conf_parser.y" /* yacc.c:1646  */
4708      {
4709    if (conf_parser_ctx.pass == 2)
4710 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
4710 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4711   }
4712 + #line 4713 "conf_parser.c" /* yacc.c:1646  */
4713      break;
4714  
4715 <  case 274:
4716 <
5119 < /* Line 1806 of yacc.c  */
5120 < #line 1698 "conf_parser.y"
4715 >  case 317:
4716 > #line 1783 "conf_parser.y" /* yacc.c:1646  */
4717      {
4718    if (conf_parser_ctx.pass == 2)
4719 <    yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
4719 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4720   }
4721 + #line 4722 "conf_parser.c" /* yacc.c:1646  */
4722      break;
4723  
4724 <  case 275:
4725 <
5129 < /* Line 1806 of yacc.c  */
5130 < #line 1702 "conf_parser.y"
4724 >  case 318:
4725 > #line 1787 "conf_parser.y" /* yacc.c:1646  */
4726      {
4727    if (conf_parser_ctx.pass == 2)
4728 <    yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
4728 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4729   }
4730 + #line 4731 "conf_parser.c" /* yacc.c:1646  */
4731      break;
4732  
4733 <  case 276:
4734 <
5139 < /* Line 1806 of yacc.c  */
5140 < #line 1706 "conf_parser.y"
4733 >  case 319:
4734 > #line 1791 "conf_parser.y" /* yacc.c:1646  */
4735      {
4736    if (conf_parser_ctx.pass == 2)
4737 <    yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
4737 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4738   }
4739 + #line 4740 "conf_parser.c" /* yacc.c:1646  */
4740      break;
4741  
4742 <  case 277:
4743 <
5149 < /* Line 1806 of yacc.c  */
5150 < #line 1710 "conf_parser.y"
4742 >  case 320:
4743 > #line 1795 "conf_parser.y" /* yacc.c:1646  */
4744      {
4745    if (conf_parser_ctx.pass == 2)
4746 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
4746 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4747   }
4748 + #line 4749 "conf_parser.c" /* yacc.c:1646  */
4749      break;
4750  
4751 <  case 278:
4752 <
5159 < /* Line 1806 of yacc.c  */
5160 < #line 1714 "conf_parser.y"
4751 >  case 321:
4752 > #line 1799 "conf_parser.y" /* yacc.c:1646  */
4753      {
4754    if (conf_parser_ctx.pass == 2)
4755 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
4755 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4756   }
4757 + #line 4758 "conf_parser.c" /* yacc.c:1646  */
4758      break;
4759  
4760 <  case 279:
4761 <
5169 < /* Line 1806 of yacc.c  */
5170 < #line 1718 "conf_parser.y"
4760 >  case 322:
4761 > #line 1803 "conf_parser.y" /* yacc.c:1646  */
4762      {
4763    if (conf_parser_ctx.pass == 2)
4764 <    yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
4764 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
4765   }
4766 + #line 4767 "conf_parser.c" /* yacc.c:1646  */
4767      break;
4768  
4769 <  case 280:
4770 <
5179 < /* Line 1806 of yacc.c  */
5180 < #line 1725 "conf_parser.y"
4769 >  case 323:
4770 > #line 1807 "conf_parser.y" /* yacc.c:1646  */
4771      {
4772    if (conf_parser_ctx.pass == 2)
4773 <  {
5184 <    MyFree(yy_conf->name);
5185 <
5186 <    if (strlen(yylval.string) < HOSTLEN)
5187 <    {    
5188 <      DupString(yy_conf->name, yylval.string);
5189 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
5190 <    }
5191 <    else
5192 <    {
5193 <      ilog(LOG_TYPE_IRCD, "Spoofs must be less than %d..ignoring it", HOSTLEN);
5194 <      yy_conf->name = NULL;
5195 <    }
5196 <  }
4773 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4774   }
4775 + #line 4776 "conf_parser.c" /* yacc.c:1646  */
4776      break;
4777  
4778 <  case 281:
4779 <
5202 < /* Line 1806 of yacc.c  */
5203 < #line 1744 "conf_parser.y"
4778 >  case 324:
4779 > #line 1813 "conf_parser.y" /* yacc.c:1646  */
4780      {
4781 <  if (conf_parser_ctx.pass == 2)
4781 >  if (conf_parser_ctx.pass != 2)
4782 >    break;
4783 >
4784 >  if (valid_hostname(yylval.string))
4785    {
4786 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4787 <    MyFree(yy_conf->name);
5209 <    DupString(yy_conf->name, yylval.string);
4786 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4787 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4788    }
4789 +  else
4790 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4791   }
4792 + #line 4793 "conf_parser.c" /* yacc.c:1646  */
4793      break;
4794  
4795 <  case 282:
4796 <
5216 < /* Line 1806 of yacc.c  */
5217 < #line 1754 "conf_parser.y"
4795 >  case 325:
4796 > #line 1827 "conf_parser.y" /* yacc.c:1646  */
4797      {
4798 <  if (conf_parser_ctx.pass == 2)
5220 <  {
5221 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5222 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5223 <  }
5224 < }
4798 >  if (conf_parser_ctx.pass != 2)
4799      break;
4800  
4801 <  case 283:
4801 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4802 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4803 > }
4804 > #line 4805 "conf_parser.c" /* yacc.c:1646  */
4805 >    break;
4806  
4807 < /* Line 1806 of yacc.c  */
4808 < #line 1767 "conf_parser.y"
4807 >  case 326:
4808 > #line 1836 "conf_parser.y" /* yacc.c:1646  */
4809      {
4810 <  if (conf_parser_ctx.pass == 2)
5233 <  {
5234 <    MyFree(resv_reason);
5235 <    resv_reason = NULL;
5236 <  }
5237 < }
4810 >  if (conf_parser_ctx.pass != 2)
4811      break;
4812  
4813 <  case 284:
4813 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4814 >  block_state.port.value = (yyvsp[-1].number);
4815 > }
4816 > #line 4817 "conf_parser.c" /* yacc.c:1646  */
4817 >    break;
4818  
4819 < /* Line 1806 of yacc.c  */
4820 < #line 1774 "conf_parser.y"
4819 >  case 327:
4820 > #line 1849 "conf_parser.y" /* yacc.c:1646  */
4821      {
4822 <  if (conf_parser_ctx.pass == 2)
5246 <  {
5247 <    MyFree(resv_reason);
5248 <    resv_reason = NULL;
5249 <  }
5250 < }
4822 >  if (conf_parser_ctx.pass != 2)
4823      break;
4824  
4825 <  case 291:
4825 >  reset_block_state();
4826 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4827 > }
4828 > #line 4829 "conf_parser.c" /* yacc.c:1646  */
4829 >    break;
4830  
4831 < /* Line 1806 of yacc.c  */
4832 < #line 1786 "conf_parser.y"
4831 >  case 328:
4832 > #line 1856 "conf_parser.y" /* yacc.c:1646  */
4833      {
4834 <  if (conf_parser_ctx.pass == 2)
5259 <  {
5260 <    MyFree(resv_reason);
5261 <    DupString(resv_reason, yylval.string);
5262 <  }
5263 < }
4834 >  if (conf_parser_ctx.pass != 2)
4835      break;
4836  
4837 <  case 292:
4837 >  create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4838 > }
4839 > #line 4840 "conf_parser.c" /* yacc.c:1646  */
4840 >    break;
4841  
4842 < /* Line 1806 of yacc.c  */
4843 < #line 1795 "conf_parser.y"
4842 >  case 335:
4843 > #line 1867 "conf_parser.y" /* yacc.c:1646  */
4844      {
4845    if (conf_parser_ctx.pass == 2)
4846 <  {
5273 <    if (IsChanPrefix(*yylval.string))
5274 <    {
5275 <      char def_reason[] = "No reason";
5276 <
5277 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5278 <    }
5279 <  }
5280 <  /* ignore it for now.. but we really should make a warning if
5281 <   * its an erroneous name --fl_ */
4846 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4847   }
4848 + #line 4849 "conf_parser.c" /* yacc.c:1646  */
4849      break;
4850  
4851 <  case 293:
4852 <
5287 < /* Line 1806 of yacc.c  */
5288 < #line 1810 "conf_parser.y"
4851 >  case 336:
4852 > #line 1873 "conf_parser.y" /* yacc.c:1646  */
4853      {
4854    if (conf_parser_ctx.pass == 2)
4855 <  {
5292 <    char def_reason[] = "No reason";
5293 <
5294 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5295 <  }
4855 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4856   }
4857 + #line 4858 "conf_parser.c" /* yacc.c:1646  */
4858      break;
4859  
4860 <  case 299:
4861 <
5301 < /* Line 1806 of yacc.c  */
5302 < #line 1828 "conf_parser.y"
4860 >  case 337:
4861 > #line 1879 "conf_parser.y" /* yacc.c:1646  */
4862      {
4863    if (conf_parser_ctx.pass == 2)
4864 <  {
5306 <    if (valid_servname(yylval.string))
5307 <    {
5308 <      yy_conf = make_conf_item(SERVICE_TYPE);
5309 <      DupString(yy_conf->name, yylval.string);
5310 <    }
5311 <  }
4864 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4865   }
4866 + #line 4867 "conf_parser.c" /* yacc.c:1646  */
4867      break;
4868  
4869 <  case 300:
4870 <
5317 < /* Line 1806 of yacc.c  */
5318 < #line 1843 "conf_parser.y"
4869 >  case 343:
4870 > #line 1894 "conf_parser.y" /* yacc.c:1646  */
4871      {
4872 <  if (conf_parser_ctx.pass == 2)
4872 >  if (conf_parser_ctx.pass != 2)
4873 >    break;
4874 >
4875 >  if (valid_servname(yylval.string))
4876    {
4877 <    yy_conf = make_conf_item(ULINE_TYPE);
4878 <    yy_match_item = map_to_conf(yy_conf);
5324 <    yy_match_item->action = SHARED_ALL;
4877 >    struct MaskItem *conf = conf_make(CONF_SERVICE);
4878 >    conf->name = xstrdup(yylval.string);
4879    }
4880   }
4881 + #line 4882 "conf_parser.c" /* yacc.c:1646  */
4882      break;
4883  
4884 <  case 301:
4885 <
5331 < /* Line 1806 of yacc.c  */
5332 < #line 1851 "conf_parser.y"
4884 >  case 344:
4885 > #line 1909 "conf_parser.y" /* yacc.c:1646  */
4886      {
4887 <  if (conf_parser_ctx.pass == 2)
4888 <  {
4889 <    yy_conf = NULL;
4890 <  }
4887 >  if (conf_parser_ctx.pass != 2)
4888 >    break;
4889 >
4890 >  reset_block_state();
4891 >
4892 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4893 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
4894 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4895 >  block_state.flags.value = SHARED_ALL;
4896   }
4897 + #line 4898 "conf_parser.c" /* yacc.c:1646  */
4898      break;
4899  
4900 <  case 308:
4900 >  case 345:
4901 > #line 1920 "conf_parser.y" /* yacc.c:1646  */
4902 >    {
4903 >  struct MaskItem *conf = NULL;
4904 >
4905 >  if (conf_parser_ctx.pass != 2)
4906 >    break;
4907  
4908 < /* Line 1806 of yacc.c  */
4909 < #line 1862 "conf_parser.y"
4908 >  conf = conf_make(CONF_ULINE);
4909 >  conf->flags = block_state.flags.value;
4910 >  conf->name = xstrdup(block_state.name.buf);
4911 >  conf->user = xstrdup(block_state.user.buf);
4912 >  conf->host = xstrdup(block_state.host.buf);
4913 > }
4914 > #line 4915 "conf_parser.c" /* yacc.c:1646  */
4915 >    break;
4916 >
4917 >  case 352:
4918 > #line 1937 "conf_parser.y" /* yacc.c:1646  */
4919      {
4920    if (conf_parser_ctx.pass == 2)
4921 <  {
5348 <    MyFree(yy_conf->name);
5349 <    DupString(yy_conf->name, yylval.string);
5350 <  }
4921 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4922   }
4923 + #line 4924 "conf_parser.c" /* yacc.c:1646  */
4924      break;
4925  
4926 <  case 309:
4927 <
5356 < /* Line 1806 of yacc.c  */
5357 < #line 1871 "conf_parser.y"
4926 >  case 353:
4927 > #line 1943 "conf_parser.y" /* yacc.c:1646  */
4928      {
4929    if (conf_parser_ctx.pass == 2)
4930    {
# Line 5362 | Line 4932 | yyreduce:
4932  
4933      nuh.nuhmask  = yylval.string;
4934      nuh.nickptr  = NULL;
4935 <    nuh.userptr  = userbuf;
4936 <    nuh.hostptr  = hostbuf;
4935 >    nuh.userptr  = block_state.user.buf;
4936 >    nuh.hostptr  = block_state.host.buf;
4937  
4938      nuh.nicksize = 0;
4939 <    nuh.usersize = sizeof(userbuf);
4940 <    nuh.hostsize = sizeof(hostbuf);
4939 >    nuh.usersize = sizeof(block_state.user.buf);
4940 >    nuh.hostsize = sizeof(block_state.host.buf);
4941  
4942      split_nuh(&nuh);
5373
5374    DupString(yy_match_item->user, userbuf);
5375    DupString(yy_match_item->host, hostbuf);
4943    }
4944   }
4945 + #line 4946 "conf_parser.c" /* yacc.c:1646  */
4946      break;
4947  
4948 <  case 310:
4949 <
5382 < /* Line 1806 of yacc.c  */
5383 < #line 1893 "conf_parser.y"
4948 >  case 354:
4949 > #line 1962 "conf_parser.y" /* yacc.c:1646  */
4950      {
4951    if (conf_parser_ctx.pass == 2)
4952 <    yy_match_item->action = 0;
4952 >    block_state.flags.value = 0;
4953   }
4954 + #line 4955 "conf_parser.c" /* yacc.c:1646  */
4955      break;
4956  
4957 <  case 314:
4958 <
5392 < /* Line 1806 of yacc.c  */
5393 < #line 1900 "conf_parser.y"
4957 >  case 358:
4958 > #line 1969 "conf_parser.y" /* yacc.c:1646  */
4959      {
4960    if (conf_parser_ctx.pass == 2)
4961 <    yy_match_item->action |= SHARED_KLINE;
4961 >    block_state.flags.value |= SHARED_KLINE;
4962   }
4963 + #line 4964 "conf_parser.c" /* yacc.c:1646  */
4964      break;
4965  
4966 <  case 315:
4967 <
5402 < /* Line 1806 of yacc.c  */
5403 < #line 1904 "conf_parser.y"
4966 >  case 359:
4967 > #line 1973 "conf_parser.y" /* yacc.c:1646  */
4968      {
4969    if (conf_parser_ctx.pass == 2)
4970 <    yy_match_item->action |= SHARED_UNKLINE;
4970 >    block_state.flags.value |= SHARED_UNKLINE;
4971   }
4972 + #line 4973 "conf_parser.c" /* yacc.c:1646  */
4973      break;
4974  
4975 <  case 316:
4976 <
5412 < /* Line 1806 of yacc.c  */
5413 < #line 1908 "conf_parser.y"
4975 >  case 360:
4976 > #line 1977 "conf_parser.y" /* yacc.c:1646  */
4977      {
4978    if (conf_parser_ctx.pass == 2)
4979 <    yy_match_item->action |= SHARED_DLINE;
4979 >    block_state.flags.value |= SHARED_DLINE;
4980   }
4981 + #line 4982 "conf_parser.c" /* yacc.c:1646  */
4982      break;
4983  
4984 <  case 317:
4985 <
5422 < /* Line 1806 of yacc.c  */
5423 < #line 1912 "conf_parser.y"
4984 >  case 361:
4985 > #line 1981 "conf_parser.y" /* yacc.c:1646  */
4986      {
4987    if (conf_parser_ctx.pass == 2)
4988 <    yy_match_item->action |= SHARED_UNDLINE;
4988 >    block_state.flags.value |= SHARED_UNDLINE;
4989   }
4990 + #line 4991 "conf_parser.c" /* yacc.c:1646  */
4991      break;
4992  
4993 <  case 318:
4994 <
5432 < /* Line 1806 of yacc.c  */
5433 < #line 1916 "conf_parser.y"
4993 >  case 362:
4994 > #line 1985 "conf_parser.y" /* yacc.c:1646  */
4995      {
4996    if (conf_parser_ctx.pass == 2)
4997 <    yy_match_item->action |= SHARED_XLINE;
4997 >    block_state.flags.value |= SHARED_XLINE;
4998   }
4999 + #line 5000 "conf_parser.c" /* yacc.c:1646  */
5000      break;
5001  
5002 <  case 319:
5003 <
5442 < /* Line 1806 of yacc.c  */
5443 < #line 1920 "conf_parser.y"
5002 >  case 363:
5003 > #line 1989 "conf_parser.y" /* yacc.c:1646  */
5004      {
5005    if (conf_parser_ctx.pass == 2)
5006 <    yy_match_item->action |= SHARED_UNXLINE;
5006 >    block_state.flags.value |= SHARED_UNXLINE;
5007   }
5008 + #line 5009 "conf_parser.c" /* yacc.c:1646  */
5009      break;
5010  
5011 <  case 320:
5012 <
5452 < /* Line 1806 of yacc.c  */
5453 < #line 1924 "conf_parser.y"
5011 >  case 364:
5012 > #line 1993 "conf_parser.y" /* yacc.c:1646  */
5013      {
5014    if (conf_parser_ctx.pass == 2)
5015 <    yy_match_item->action |= SHARED_RESV;
5015 >    block_state.flags.value |= SHARED_RESV;
5016   }
5017 + #line 5018 "conf_parser.c" /* yacc.c:1646  */
5018      break;
5019  
5020 <  case 321:
5021 <
5462 < /* Line 1806 of yacc.c  */
5463 < #line 1928 "conf_parser.y"
5020 >  case 365:
5021 > #line 1997 "conf_parser.y" /* yacc.c:1646  */
5022      {
5023    if (conf_parser_ctx.pass == 2)
5024 <    yy_match_item->action |= SHARED_UNRESV;
5024 >    block_state.flags.value |= SHARED_UNRESV;
5025   }
5026 + #line 5027 "conf_parser.c" /* yacc.c:1646  */
5027      break;
5028  
5029 <  case 322:
5030 <
5472 < /* Line 1806 of yacc.c  */
5473 < #line 1932 "conf_parser.y"
5029 >  case 366:
5030 > #line 2001 "conf_parser.y" /* yacc.c:1646  */
5031      {
5032    if (conf_parser_ctx.pass == 2)
5033 <    yy_match_item->action |= SHARED_LOCOPS;
5033 >    block_state.flags.value |= SHARED_LOCOPS;
5034   }
5035 + #line 5036 "conf_parser.c" /* yacc.c:1646  */
5036      break;
5037  
5038 <  case 323:
5039 <
5482 < /* Line 1806 of yacc.c  */
5483 < #line 1936 "conf_parser.y"
5038 >  case 367:
5039 > #line 2005 "conf_parser.y" /* yacc.c:1646  */
5040      {
5041    if (conf_parser_ctx.pass == 2)
5042 <    yy_match_item->action = SHARED_ALL;
5042 >    block_state.flags.value = SHARED_ALL;
5043   }
5044 + #line 5045 "conf_parser.c" /* yacc.c:1646  */
5045      break;
5046  
5047 <  case 324:
5048 <
5492 < /* Line 1806 of yacc.c  */
5493 < #line 1945 "conf_parser.y"
5047 >  case 368:
5048 > #line 2014 "conf_parser.y" /* yacc.c:1646  */
5049      {
5050 <  if (conf_parser_ctx.pass == 2)
5496 <  {
5497 <    yy_conf = make_conf_item(CLUSTER_TYPE);
5498 <    yy_conf->flags = SHARED_ALL;
5499 <  }
5500 < }
5050 >  if (conf_parser_ctx.pass != 2)
5051      break;
5052  
5053 <  case 325:
5053 >  reset_block_state();
5054  
5055 < /* Line 1806 of yacc.c  */
5056 < #line 1952 "conf_parser.y"
5507 <    {
5508 <  if (conf_parser_ctx.pass == 2)
5509 <  {
5510 <    if (yy_conf->name == NULL)
5511 <      DupString(yy_conf->name, "*");
5512 <    yy_conf = NULL;
5513 <  }
5055 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5056 >  block_state.flags.value = SHARED_ALL;
5057   }
5058 + #line 5059 "conf_parser.c" /* yacc.c:1646  */
5059      break;
5060  
5061 <  case 331:
5062 <
5519 < /* Line 1806 of yacc.c  */
5520 < #line 1965 "conf_parser.y"
5061 >  case 369:
5062 > #line 2023 "conf_parser.y" /* yacc.c:1646  */
5063      {
5064 <  if (conf_parser_ctx.pass == 2)
5065 <    DupString(yy_conf->name, yylval.string);
5066 < }
5064 >  struct MaskItem *conf = NULL;
5065 >
5066 >  if (conf_parser_ctx.pass != 2)
5067      break;
5068  
5069 <  case 332:
5069 >  conf = conf_make(CONF_CLUSTER);
5070 >  conf->flags = block_state.flags.value;
5071 >  conf->name = xstrdup(block_state.name.buf);
5072 > }
5073 > #line 5074 "conf_parser.c" /* yacc.c:1646  */
5074 >    break;
5075  
5076 < /* Line 1806 of yacc.c  */
5077 < #line 1971 "conf_parser.y"
5076 >  case 375:
5077 > #line 2038 "conf_parser.y" /* yacc.c:1646  */
5078      {
5079    if (conf_parser_ctx.pass == 2)
5080 <    yy_conf->flags = 0;
5080 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5081   }
5082 + #line 5083 "conf_parser.c" /* yacc.c:1646  */
5083      break;
5084  
5085 <  case 336:
5086 <
5539 < /* Line 1806 of yacc.c  */
5540 < #line 1978 "conf_parser.y"
5085 >  case 376:
5086 > #line 2044 "conf_parser.y" /* yacc.c:1646  */
5087      {
5088    if (conf_parser_ctx.pass == 2)
5089 <    yy_conf->flags |= SHARED_KLINE;
5089 >    block_state.flags.value = 0;
5090   }
5091 + #line 5092 "conf_parser.c" /* yacc.c:1646  */
5092      break;
5093  
5094 <  case 337:
5095 <
5549 < /* Line 1806 of yacc.c  */
5550 < #line 1982 "conf_parser.y"
5094 >  case 380:
5095 > #line 2051 "conf_parser.y" /* yacc.c:1646  */
5096      {
5097    if (conf_parser_ctx.pass == 2)
5098 <    yy_conf->flags |= SHARED_UNKLINE;
5098 >    block_state.flags.value |= SHARED_KLINE;
5099   }
5100 + #line 5101 "conf_parser.c" /* yacc.c:1646  */
5101      break;
5102  
5103 <  case 338:
5104 <
5559 < /* Line 1806 of yacc.c  */
5560 < #line 1986 "conf_parser.y"
5103 >  case 381:
5104 > #line 2055 "conf_parser.y" /* yacc.c:1646  */
5105      {
5106    if (conf_parser_ctx.pass == 2)
5107 <    yy_conf->flags |= SHARED_DLINE;
5107 >    block_state.flags.value |= SHARED_UNKLINE;
5108   }
5109 + #line 5110 "conf_parser.c" /* yacc.c:1646  */
5110      break;
5111  
5112 <  case 339:
5113 <
5569 < /* Line 1806 of yacc.c  */
5570 < #line 1990 "conf_parser.y"
5112 >  case 382:
5113 > #line 2059 "conf_parser.y" /* yacc.c:1646  */
5114      {
5115    if (conf_parser_ctx.pass == 2)
5116 <    yy_conf->flags |= SHARED_UNDLINE;
5116 >    block_state.flags.value |= SHARED_DLINE;
5117   }
5118 + #line 5119 "conf_parser.c" /* yacc.c:1646  */
5119      break;
5120  
5121 <  case 340:
5122 <
5579 < /* Line 1806 of yacc.c  */
5580 < #line 1994 "conf_parser.y"
5121 >  case 383:
5122 > #line 2063 "conf_parser.y" /* yacc.c:1646  */
5123      {
5124    if (conf_parser_ctx.pass == 2)
5125 <    yy_conf->flags |= SHARED_XLINE;
5125 >    block_state.flags.value |= SHARED_UNDLINE;
5126   }
5127 + #line 5128 "conf_parser.c" /* yacc.c:1646  */
5128      break;
5129  
5130 <  case 341:
5131 <
5589 < /* Line 1806 of yacc.c  */
5590 < #line 1998 "conf_parser.y"
5130 >  case 384:
5131 > #line 2067 "conf_parser.y" /* yacc.c:1646  */
5132      {
5133    if (conf_parser_ctx.pass == 2)
5134 <    yy_conf->flags |= SHARED_UNXLINE;
5134 >    block_state.flags.value |= SHARED_XLINE;
5135   }
5136 + #line 5137 "conf_parser.c" /* yacc.c:1646  */
5137      break;
5138  
5139 <  case 342:
5140 <
5599 < /* Line 1806 of yacc.c  */
5600 < #line 2002 "conf_parser.y"
5139 >  case 385:
5140 > #line 2071 "conf_parser.y" /* yacc.c:1646  */
5141      {
5142    if (conf_parser_ctx.pass == 2)
5143 <    yy_conf->flags |= SHARED_RESV;
5143 >    block_state.flags.value |= SHARED_UNXLINE;
5144   }
5145 + #line 5146 "conf_parser.c" /* yacc.c:1646  */
5146      break;
5147  
5148 <  case 343:
5149 <
5609 < /* Line 1806 of yacc.c  */
5610 < #line 2006 "conf_parser.y"
5148 >  case 386:
5149 > #line 2075 "conf_parser.y" /* yacc.c:1646  */
5150      {
5151    if (conf_parser_ctx.pass == 2)
5152 <    yy_conf->flags |= SHARED_UNRESV;
5152 >    block_state.flags.value |= SHARED_RESV;
5153   }
5154 + #line 5155 "conf_parser.c" /* yacc.c:1646  */
5155      break;
5156  
5157 <  case 344:
5158 <
5619 < /* Line 1806 of yacc.c  */
5620 < #line 2010 "conf_parser.y"
5157 >  case 387:
5158 > #line 2079 "conf_parser.y" /* yacc.c:1646  */
5159      {
5160    if (conf_parser_ctx.pass == 2)
5161 <    yy_conf->flags |= SHARED_LOCOPS;
5161 >    block_state.flags.value |= SHARED_UNRESV;
5162   }
5163 + #line 5164 "conf_parser.c" /* yacc.c:1646  */
5164      break;
5165  
5166 <  case 345:
5167 <
5629 < /* Line 1806 of yacc.c  */
5630 < #line 2014 "conf_parser.y"
5166 >  case 388:
5167 > #line 2083 "conf_parser.y" /* yacc.c:1646  */
5168      {
5169    if (conf_parser_ctx.pass == 2)
5170 <    yy_conf->flags = SHARED_ALL;
5170 >    block_state.flags.value |= SHARED_LOCOPS;
5171   }
5172 + #line 5173 "conf_parser.c" /* yacc.c:1646  */
5173      break;
5174  
5175 <  case 346:
5176 <
5639 < /* Line 1806 of yacc.c  */
5640 < #line 2023 "conf_parser.y"
5175 >  case 389:
5176 > #line 2087 "conf_parser.y" /* yacc.c:1646  */
5177      {
5178    if (conf_parser_ctx.pass == 2)
5179 <  {
5644 <    yy_conf = make_conf_item(SERVER_TYPE);
5645 <    yy_aconf = map_to_conf(yy_conf);
5646 <
5647 <    /* defaults */
5648 <    yy_aconf->port = PORTNUM;
5649 <  }
5650 <  else
5651 <  {
5652 <    MyFree(class_name);
5653 <    class_name = NULL;
5654 <  }
5179 >    block_state.flags.value = SHARED_ALL;
5180   }
5181 + #line 5182 "conf_parser.c" /* yacc.c:1646  */
5182      break;
5183  
5184 <  case 347:
5185 <
5660 < /* Line 1806 of yacc.c  */
5661 < #line 2038 "conf_parser.y"
5662 <    {
5663 <  if (conf_parser_ctx.pass == 2)
5664 <  {
5665 <    if (yy_aconf->host && yy_aconf->passwd && yy_aconf->spasswd)
5184 >  case 390:
5185 > #line 2096 "conf_parser.y" /* yacc.c:1646  */
5186      {
5667      if (conf_add_server(yy_conf, class_name) == -1)
5668        delete_conf_item(yy_conf);
5669    }
5670    else
5671    {
5672      if (yy_conf->name != NULL)
5673      {
5674        if (yy_aconf->host == NULL)
5675          yyerror("Ignoring connect block -- missing host");
5676        else if (!yy_aconf->passwd || !yy_aconf->spasswd)
5677          yyerror("Ignoring connect block -- missing password");
5678      }
5187  
5188 <      /* XXX
5189 <       * This fixes a try_connections() core (caused by invalid class_ptr
5682 <       * pointers) reported by metalrock. That's an ugly fix, but there
5683 <       * is currently no better way. The entire config subsystem needs an
5684 <       * rewrite ASAP. make_conf_item() shouldn't really add things onto
5685 <       * a doubly linked list immediately without any sanity checks!  -Michael
5686 <       */
5687 <      delete_conf_item(yy_conf);
5688 <    }
5188 >  if (conf_parser_ctx.pass != 2)
5189 >    break;
5190  
5191 <    MyFree(class_name);
5192 <    class_name = NULL;
5193 <    yy_conf = NULL;
5693 <    yy_aconf = NULL;
5694 <  }
5191 >  reset_block_state();
5192 >  block_state.aftype.value = AF_INET;
5193 >  block_state.port.value = PORTNUM;
5194   }
5195 + #line 5196 "conf_parser.c" /* yacc.c:1646  */
5196      break;
5197  
5198 <  case 364:
5199 <
5700 < /* Line 1806 of yacc.c  */
5701 < #line 2082 "conf_parser.y"
5198 >  case 391:
5199 > #line 2105 "conf_parser.y" /* yacc.c:1646  */
5200      {
5201 <  if (conf_parser_ctx.pass == 2)
5202 <  {
5203 <    MyFree(yy_conf->name);
5204 <    DupString(yy_conf->name, yylval.string);
5707 <  }
5708 < }
5201 >  struct MaskItem *conf = NULL;
5202 >  struct addrinfo hints, *res;
5203 >
5204 >  if (conf_parser_ctx.pass != 2)
5205      break;
5206  
5207 <  case 365:
5207 >  if (!block_state.name.buf[0] ||
5208 >      !block_state.host.buf[0])
5209 >    break;
5210  
5211 < /* Line 1806 of yacc.c  */
5212 < #line 2091 "conf_parser.y"
5715 <    {
5716 <  if (conf_parser_ctx.pass == 2)
5717 <  {
5718 <    MyFree(yy_aconf->host);
5719 <    DupString(yy_aconf->host, yylval.string);
5720 <  }
5721 < }
5211 >  if (!block_state.rpass.buf[0] ||
5212 >      !block_state.spass.buf[0])
5213      break;
5214  
5215 <  case 366:
5215 >  if (has_wildcards(block_state.name.buf) ||
5216 >      has_wildcards(block_state.host.buf))
5217 >    break;
5218  
5219 < /* Line 1806 of yacc.c  */
5220 < #line 2100 "conf_parser.y"
5221 <    {
5222 <  if (conf_parser_ctx.pass == 2)
5223 <  {
5224 <    struct addrinfo hints, *res;
5219 >  conf = conf_make(CONF_SERVER);
5220 >  conf->port = block_state.port.value;
5221 >  conf->flags = block_state.flags.value;
5222 >  conf->aftype = block_state.aftype.value;
5223 >  conf->host = xstrdup(block_state.host.buf);
5224 >  conf->name = xstrdup(block_state.name.buf);
5225 >  conf->passwd = xstrdup(block_state.rpass.buf);
5226 >  conf->spasswd = xstrdup(block_state.spass.buf);
5227 >
5228 >  if (block_state.cert.buf[0])
5229 >    conf->certfp = xstrdup(block_state.cert.buf);
5230 >
5231 >  if (block_state.ciph.buf[0])
5232 >    conf->cipher_list = xstrdup(block_state.ciph.buf);
5233 >
5234 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5235 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5236  
5237 +  if (block_state.bind.buf[0])
5238 +  {
5239      memset(&hints, 0, sizeof(hints));
5240  
5241      hints.ai_family   = AF_UNSPEC;
5242      hints.ai_socktype = SOCK_STREAM;
5243      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5244  
5245 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
5246 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
5245 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5246 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5247      else
5248      {
5249 <      assert(res != NULL);
5249 >      assert(res);
5250  
5251 <      memcpy(&yy_aconf->bind, res->ai_addr, res->ai_addrlen);
5252 <      yy_aconf->bind.ss.ss_family = res->ai_family;
5253 <      yy_aconf->bind.ss_len = res->ai_addrlen;
5251 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5252 >      conf->bind.ss.ss_family = res->ai_family;
5253 >      conf->bind.ss_len = res->ai_addrlen;
5254        freeaddrinfo(res);
5255      }
5256    }
5257 +
5258 +  conf_add_class_to_conf(conf, block_state.class.buf);
5259 +  lookup_confhost(conf);
5260   }
5261 + #line 5262 "conf_parser.c" /* yacc.c:1646  */
5262      break;
5263  
5264 <  case 367:
5265 <
5756 < /* Line 1806 of yacc.c  */
5757 < #line 2126 "conf_parser.y"
5264 >  case 409:
5265 > #line 2185 "conf_parser.y" /* yacc.c:1646  */
5266      {
5267    if (conf_parser_ctx.pass == 2)
5268 <  {
5761 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5762 <      yyerror("Server passwords cannot begin with a colon");
5763 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5764 <      yyerror("Server passwords cannot contain spaces");
5765 <    else {
5766 <      if (yy_aconf->spasswd != NULL)
5767 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
5768 <
5769 <      MyFree(yy_aconf->spasswd);
5770 <      DupString(yy_aconf->spasswd, yylval.string);
5771 <    }
5772 <  }
5268 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5269   }
5270 + #line 5271 "conf_parser.c" /* yacc.c:1646  */
5271      break;
5272  
5273 <  case 368:
5274 <
5778 < /* Line 1806 of yacc.c  */
5779 < #line 2144 "conf_parser.y"
5273 >  case 410:
5274 > #line 2191 "conf_parser.y" /* yacc.c:1646  */
5275      {
5276    if (conf_parser_ctx.pass == 2)
5277 <  {
5783 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5784 <      yyerror("Server passwords cannot begin with a colon");
5785 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5786 <      yyerror("Server passwords cannot contain spaces");
5787 <    else {
5788 <      if (yy_aconf->passwd != NULL)
5789 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5790 <
5791 <      MyFree(yy_aconf->passwd);
5792 <      DupString(yy_aconf->passwd, yylval.string);
5793 <    }
5794 <  }
5277 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5278   }
5279 + #line 5280 "conf_parser.c" /* yacc.c:1646  */
5280      break;
5281  
5282 <  case 369:
5283 <
5800 < /* Line 1806 of yacc.c  */
5801 < #line 2162 "conf_parser.y"
5282 >  case 411:
5283 > #line 2197 "conf_parser.y" /* yacc.c:1646  */
5284      {
5285    if (conf_parser_ctx.pass == 2)
5286 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5286 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5287   }
5288 + #line 5289 "conf_parser.c" /* yacc.c:1646  */
5289      break;
5290  
5291 <  case 370:
5292 <
5810 < /* Line 1806 of yacc.c  */
5811 < #line 2168 "conf_parser.y"
5291 >  case 412:
5292 > #line 2203 "conf_parser.y" /* yacc.c:1646  */
5293      {
5294 <  if (conf_parser_ctx.pass == 2)
5295 <    yy_aconf->aftype = AF_INET;
5294 >  if (conf_parser_ctx.pass != 2)
5295 >    break;
5296 >
5297 >  if ((yyvsp[-1].string)[0] == ':')
5298 >    conf_error_report("Server passwords cannot begin with a colon");
5299 >  else if (strchr((yyvsp[-1].string), ' '))
5300 >    conf_error_report("Server passwords cannot contain spaces");
5301 >  else
5302 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5303   }
5304 + #line 5305 "conf_parser.c" /* yacc.c:1646  */
5305      break;
5306  
5307 <  case 371:
5307 >  case 413:
5308 > #line 2216 "conf_parser.y" /* yacc.c:1646  */
5309 >    {
5310 >  if (conf_parser_ctx.pass != 2)
5311 >    break;
5312  
5313 < /* Line 1806 of yacc.c  */
5314 < #line 2172 "conf_parser.y"
5313 >  if ((yyvsp[-1].string)[0] == ':')
5314 >    conf_error_report("Server passwords cannot begin with a colon");
5315 >  else if (strchr((yyvsp[-1].string), ' '))
5316 >    conf_error_report("Server passwords cannot contain spaces");
5317 >  else
5318 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5319 > }
5320 > #line 5321 "conf_parser.c" /* yacc.c:1646  */
5321 >    break;
5322 >
5323 >  case 414:
5324 > #line 2229 "conf_parser.y" /* yacc.c:1646  */
5325      {
5823 #ifdef IPV6
5326    if (conf_parser_ctx.pass == 2)
5327 <    yy_aconf->aftype = AF_INET6;
5826 < #endif
5327 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5328   }
5329 + #line 5330 "conf_parser.c" /* yacc.c:1646  */
5330      break;
5331  
5332 <  case 372:
5333 <
5832 < /* Line 1806 of yacc.c  */
5833 < #line 2180 "conf_parser.y"
5332 >  case 415:
5333 > #line 2235 "conf_parser.y" /* yacc.c:1646  */
5334      {
5335 +  if (conf_parser_ctx.pass == 2)
5336 +    block_state.port.value = (yyvsp[-1].number);
5337   }
5338 + #line 5339 "conf_parser.c" /* yacc.c:1646  */
5339      break;
5340  
5341 <  case 376:
5342 <
5840 < /* Line 1806 of yacc.c  */
5841 < #line 2185 "conf_parser.y"
5341 >  case 416:
5342 > #line 2241 "conf_parser.y" /* yacc.c:1646  */
5343      {
5344    if (conf_parser_ctx.pass == 2)
5345 <    SetConfAllowAutoConn(yy_aconf);
5345 >    block_state.aftype.value = AF_INET;
5346   }
5347 + #line 5348 "conf_parser.c" /* yacc.c:1646  */
5348      break;
5349  
5350 <  case 377:
5351 <
5850 < /* Line 1806 of yacc.c  */
5851 < #line 2189 "conf_parser.y"
5350 >  case 417:
5351 > #line 2245 "conf_parser.y" /* yacc.c:1646  */
5352      {
5353 + #ifdef IPV6
5354    if (conf_parser_ctx.pass == 2)
5355 <    SetConfAwayBurst(yy_aconf);
5355 >    block_state.aftype.value = AF_INET6;
5356 > #endif
5357   }
5358 + #line 5359 "conf_parser.c" /* yacc.c:1646  */
5359      break;
5360  
5361 <  case 378:
5361 >  case 418:
5362 > #line 2253 "conf_parser.y" /* yacc.c:1646  */
5363 >    {
5364 >  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5365 > }
5366 > #line 5367 "conf_parser.c" /* yacc.c:1646  */
5367 >    break;
5368  
5369 < /* Line 1806 of yacc.c  */
5370 < #line 2193 "conf_parser.y"
5369 >  case 422:
5370 > #line 2259 "conf_parser.y" /* yacc.c:1646  */
5371      {
5372    if (conf_parser_ctx.pass == 2)
5373 <    SetConfTopicBurst(yy_aconf);
5373 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5374   }
5375 + #line 5376 "conf_parser.c" /* yacc.c:1646  */
5376      break;
5377  
5378 <  case 379:
5379 <
5870 < /* Line 1806 of yacc.c  */
5871 < #line 2197 "conf_parser.y"
5378 >  case 423:
5379 > #line 2263 "conf_parser.y" /* yacc.c:1646  */
5380      {
5381    if (conf_parser_ctx.pass == 2)
5382 <    SetConfSSL(yy_aconf);
5382 >    block_state.flags.value |= CONF_FLAGS_SSL;
5383   }
5384 + #line 5385 "conf_parser.c" /* yacc.c:1646  */
5385      break;
5386  
5387 <  case 380:
5388 <
5880 < /* Line 1806 of yacc.c  */
5881 < #line 2203 "conf_parser.y"
5387 >  case 424:
5388 > #line 2269 "conf_parser.y" /* yacc.c:1646  */
5389      {
5390    if (conf_parser_ctx.pass == 2)
5391    {
5392      if (yylval.number)
5393 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
5393 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5394      else
5395 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
5395 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5396    }
5397   }
5398 + #line 5399 "conf_parser.c" /* yacc.c:1646  */
5399      break;
5400  
5401 <  case 381:
5402 <
5895 < /* Line 1806 of yacc.c  */
5896 < #line 2214 "conf_parser.y"
5401 >  case 425:
5402 > #line 2280 "conf_parser.y" /* yacc.c:1646  */
5403      {
5404    if (conf_parser_ctx.pass == 2)
5405 <  {
5900 <    char *mask;
5901 <
5902 <    DupString(mask, yylval.string);
5903 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->hub_list);
5904 <  }
5405 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5406   }
5407 + #line 5408 "conf_parser.c" /* yacc.c:1646  */
5408      break;
5409  
5410 <  case 382:
5411 <
5910 < /* Line 1806 of yacc.c  */
5911 < #line 2225 "conf_parser.y"
5410 >  case 426:
5411 > #line 2286 "conf_parser.y" /* yacc.c:1646  */
5412      {
5413    if (conf_parser_ctx.pass == 2)
5414 <  {
5915 <    char *mask;
5916 <
5917 <    DupString(mask, yylval.string);
5918 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->leaf_list);
5919 <  }
5414 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5415   }
5416 + #line 5417 "conf_parser.c" /* yacc.c:1646  */
5417      break;
5418  
5419 <  case 383:
5420 <
5925 < /* Line 1806 of yacc.c  */
5926 < #line 2236 "conf_parser.y"
5419 >  case 427:
5420 > #line 2292 "conf_parser.y" /* yacc.c:1646  */
5421      {
5422    if (conf_parser_ctx.pass == 2)
5423 <  {
5930 <    MyFree(class_name);
5931 <    DupString(class_name, yylval.string);
5932 <  }
5423 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5424   }
5425 + #line 5426 "conf_parser.c" /* yacc.c:1646  */
5426      break;
5427  
5428 <  case 384:
5429 <
5938 < /* Line 1806 of yacc.c  */
5939 < #line 2245 "conf_parser.y"
5428 >  case 428:
5429 > #line 2298 "conf_parser.y" /* yacc.c:1646  */
5430      {
5431   #ifdef HAVE_LIBCRYPTO
5432    if (conf_parser_ctx.pass == 2)
5433 <  {
5944 <    MyFree(yy_aconf->cipher_list);
5945 <    DupString(yy_aconf->cipher_list, yylval.string);
5946 <  }
5433 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5434   #else
5435    if (conf_parser_ctx.pass == 2)
5436 <    yyerror("Ignoring connect::ciphers -- no OpenSSL support");
5436 >    conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5437   #endif
5438   }
5439 + #line 5440 "conf_parser.c" /* yacc.c:1646  */
5440      break;
5441  
5442 <  case 385:
5443 <
5956 < /* Line 1806 of yacc.c  */
5957 < #line 2263 "conf_parser.y"
5442 >  case 429:
5443 > #line 2313 "conf_parser.y" /* yacc.c:1646  */
5444      {
5445    if (conf_parser_ctx.pass == 2)
5446 <  {
5961 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
5962 <    regex_ban = 0;
5963 <  }
5446 >    reset_block_state();
5447   }
5448 + #line 5449 "conf_parser.c" /* yacc.c:1646  */
5449      break;
5450  
5451 <  case 386:
5452 <
5969 < /* Line 1806 of yacc.c  */
5970 < #line 2270 "conf_parser.y"
5971 <    {
5972 <  if (conf_parser_ctx.pass == 2)
5973 <  {
5974 <    if (userbuf[0] && hostbuf[0])
5451 >  case 430:
5452 > #line 2317 "conf_parser.y" /* yacc.c:1646  */
5453      {
5454 <      if (regex_ban)
5977 <      {
5978 < #ifdef HAVE_LIBPCRE
5979 <        void *exp_user = NULL;
5980 <        void *exp_host = NULL;
5981 <        const char *errptr = NULL;
5982 <
5983 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
5984 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
5985 <        {
5986 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
5987 <               errptr);
5988 <          break;
5989 <        }
5990 <
5991 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
5992 <        yy_aconf->regexuser = exp_user;
5993 <        yy_aconf->regexhost = exp_host;
5994 <
5995 <        DupString(yy_aconf->user, userbuf);
5996 <        DupString(yy_aconf->host, hostbuf);
5454 >  struct MaskItem *conf = NULL;
5455  
5456 <        if (reasonbuf[0])
5999 <          DupString(yy_aconf->reason, reasonbuf);
6000 <        else
6001 <          DupString(yy_aconf->reason, "No reason");
6002 < #else
6003 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
6004 <        break;
6005 < #endif
6006 <      }
6007 <      else
6008 <      {
6009 <        find_and_delete_temporary(userbuf, hostbuf, CONF_KLINE);
6010 <
6011 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
6012 <
6013 <        DupString(yy_aconf->user, userbuf);
6014 <        DupString(yy_aconf->host, hostbuf);
6015 <
6016 <        if (reasonbuf[0])
6017 <          DupString(yy_aconf->reason, reasonbuf);
6018 <        else
6019 <          DupString(yy_aconf->reason, "No reason");
6020 <        add_conf_by_address(CONF_KLINE, yy_aconf);
6021 <      }
6022 <    }
6023 <
6024 <    yy_aconf = NULL;
6025 <  }
6026 < }
5456 >  if (conf_parser_ctx.pass != 2)
5457      break;
5458  
5459 <  case 387:
5460 <
6031 < /* Line 1806 of yacc.c  */
6032 < #line 2328 "conf_parser.y"
6033 <    {
6034 < }
5459 >  if (!block_state.user.buf[0] ||
5460 >      !block_state.host.buf[0])
5461      break;
5462  
5463 <  case 391:
5463 >  conf = conf_make(CONF_KLINE);
5464 >  conf->user = xstrdup(block_state.user.buf);
5465 >  conf->host = xstrdup(block_state.host.buf);
5466  
5467 < /* Line 1806 of yacc.c  */
5468 < #line 2333 "conf_parser.y"
5469 <    {
5470 <  if (conf_parser_ctx.pass == 2)
5471 <    regex_ban = 1;
5467 >  if (block_state.rpass.buf[0])
5468 >    conf->reason = xstrdup(block_state.rpass.buf);
5469 >  else
5470 >    conf->reason = xstrdup(CONF_NOREASON);
5471 >  add_conf_by_address(CONF_KLINE, conf);
5472   }
5473 + #line 5474 "conf_parser.c" /* yacc.c:1646  */
5474      break;
5475  
5476 <  case 398:
5477 <
6049 < /* Line 1806 of yacc.c  */
6050 < #line 2342 "conf_parser.y"
5476 >  case 436:
5477 > #line 2342 "conf_parser.y" /* yacc.c:1646  */
5478      {
5479 +
5480    if (conf_parser_ctx.pass == 2)
5481    {
5482      struct split_nuh_item nuh;
5483  
5484      nuh.nuhmask  = yylval.string;
5485      nuh.nickptr  = NULL;
5486 <    nuh.userptr  = userbuf;
5487 <    nuh.hostptr  = hostbuf;
5486 >    nuh.userptr  = block_state.user.buf;
5487 >    nuh.hostptr  = block_state.host.buf;
5488  
5489      nuh.nicksize = 0;
5490 <    nuh.usersize = sizeof(userbuf);
5491 <    nuh.hostsize = sizeof(hostbuf);
5490 >    nuh.usersize = sizeof(block_state.user.buf);
5491 >    nuh.hostsize = sizeof(block_state.host.buf);
5492  
5493      split_nuh(&nuh);
5494    }
5495   }
5496 + #line 5497 "conf_parser.c" /* yacc.c:1646  */
5497      break;
5498  
5499 <  case 399:
5500 <
6072 < /* Line 1806 of yacc.c  */
6073 < #line 2361 "conf_parser.y"
5499 >  case 437:
5500 > #line 2362 "conf_parser.y" /* yacc.c:1646  */
5501      {
5502    if (conf_parser_ctx.pass == 2)
5503 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5503 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5504   }
5505 + #line 5506 "conf_parser.c" /* yacc.c:1646  */
5506      break;
5507  
5508 <  case 400:
5509 <
6082 < /* Line 1806 of yacc.c  */
6083 < #line 2370 "conf_parser.y"
5508 >  case 438:
5509 > #line 2371 "conf_parser.y" /* yacc.c:1646  */
5510      {
5511    if (conf_parser_ctx.pass == 2)
5512 <    hostbuf[0] = reasonbuf[0] = '\0';
5512 >    reset_block_state();
5513   }
5514 + #line 5515 "conf_parser.c" /* yacc.c:1646  */
5515      break;
5516  
5517 <  case 401:
5518 <
6092 < /* Line 1806 of yacc.c  */
6093 < #line 2374 "conf_parser.y"
5517 >  case 439:
5518 > #line 2375 "conf_parser.y" /* yacc.c:1646  */
5519      {
5520 <  if (conf_parser_ctx.pass == 2)
6096 <  {
6097 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
6098 <    {
6099 <      find_and_delete_temporary(NULL, hostbuf, CONF_DLINE);
5520 >  struct MaskItem *conf = NULL;
5521  
5522 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
5523 <      DupString(yy_aconf->host, hostbuf);
5522 >  if (conf_parser_ctx.pass != 2)
5523 >    break;
5524  
5525 <      if (reasonbuf[0])
5526 <        DupString(yy_aconf->reason, reasonbuf);
5527 <      else
5528 <        DupString(yy_aconf->reason, "No reason");
5529 <      add_conf_by_address(CONF_DLINE, yy_aconf);
5530 <      yy_aconf = NULL;
5531 <    }
5525 >  if (!block_state.addr.buf[0])
5526 >    break;
5527 >
5528 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5529 >  {
5530 >    conf = conf_make(CONF_DLINE);
5531 >    conf->host = xstrdup(block_state.addr.buf);
5532 >
5533 >    if (block_state.rpass.buf[0])
5534 >      conf->reason = xstrdup(block_state.rpass.buf);
5535 >    else
5536 >      conf->reason = xstrdup(CONF_NOREASON);
5537 >    add_conf_by_address(CONF_DLINE, conf);
5538    }
5539   }
5540 + #line 5541 "conf_parser.c" /* yacc.c:1646  */
5541      break;
5542  
5543 <  case 407:
5544 <
6117 < /* Line 1806 of yacc.c  */
6118 < #line 2398 "conf_parser.y"
5543 >  case 445:
5544 > #line 2401 "conf_parser.y" /* yacc.c:1646  */
5545      {
5546    if (conf_parser_ctx.pass == 2)
5547 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5547 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5548   }
5549 + #line 5550 "conf_parser.c" /* yacc.c:1646  */
5550      break;
5551  
5552 <  case 408:
5553 <
6127 < /* Line 1806 of yacc.c  */
6128 < #line 2404 "conf_parser.y"
5552 >  case 446:
5553 > #line 2407 "conf_parser.y" /* yacc.c:1646  */
5554      {
5555    if (conf_parser_ctx.pass == 2)
5556 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5556 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5557   }
5558 + #line 5559 "conf_parser.c" /* yacc.c:1646  */
5559      break;
5560  
5561 <  case 414:
5562 <
6137 < /* Line 1806 of yacc.c  */
6138 < #line 2418 "conf_parser.y"
5561 >  case 452:
5562 > #line 2421 "conf_parser.y" /* yacc.c:1646  */
5563      {
5564    if (conf_parser_ctx.pass == 2)
5565    {
5566      if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5567      {
5568 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5569 <      DupString(yy_aconf->host, yylval.string);
5568 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5569 >      conf->host = xstrdup(yylval.string);
5570  
5571 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
6148 <      yy_aconf = NULL;
5571 >      add_conf_by_address(CONF_EXEMPT, conf);
5572      }
5573    }
5574   }
5575 + #line 5576 "conf_parser.c" /* yacc.c:1646  */
5576      break;
5577  
5578 <  case 415:
5579 <
6156 < /* Line 1806 of yacc.c  */
6157 < #line 2436 "conf_parser.y"
5578 >  case 453:
5579 > #line 2438 "conf_parser.y" /* yacc.c:1646  */
5580      {
5581    if (conf_parser_ctx.pass == 2)
5582 <  {
6161 <    regex_ban = 0;
6162 <    reasonbuf[0] = gecos_name[0] = '\0';
6163 <  }
5582 >    reset_block_state();
5583   }
5584 + #line 5585 "conf_parser.c" /* yacc.c:1646  */
5585      break;
5586  
5587 <  case 416:
5588 <
6169 < /* Line 1806 of yacc.c  */
6170 < #line 2443 "conf_parser.y"
5587 >  case 454:
5588 > #line 2442 "conf_parser.y" /* yacc.c:1646  */
5589      {
5590 <  if (conf_parser_ctx.pass == 2)
6173 <  {
6174 <    if (gecos_name[0])
6175 <    {
6176 <      if (regex_ban)
6177 <      {
6178 < #ifdef HAVE_LIBPCRE
6179 <        void *exp_p = NULL;
6180 <        const char *errptr = NULL;
5590 >  struct MaskItem *conf = NULL;
5591  
5592 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
5593 <        {
6184 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
6185 <               errptr);
6186 <          break;
6187 <        }
5592 >  if (conf_parser_ctx.pass != 2)
5593 >    break;
5594  
5595 <        yy_conf = make_conf_item(RXLINE_TYPE);
5596 <        yy_conf->regexpname = exp_p;
6191 < #else
6192 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
6193 <        break;
6194 < #endif
6195 <      }
6196 <      else
6197 <        yy_conf = make_conf_item(XLINE_TYPE);
5595 >  if (!block_state.name.buf[0])
5596 >    break;
5597  
5598 <      yy_match_item = map_to_conf(yy_conf);
5599 <      DupString(yy_conf->name, gecos_name);
5598 >  conf = conf_make(CONF_XLINE);
5599 >  conf->name = xstrdup(block_state.name.buf);
5600  
5601 <      if (reasonbuf[0])
5602 <        DupString(yy_match_item->reason, reasonbuf);
5603 <      else
5604 <        DupString(yy_match_item->reason, "No reason");
6206 <    }
6207 <  }
5601 >  if (block_state.rpass.buf[0])
5602 >    conf->reason = xstrdup(block_state.rpass.buf);
5603 >  else
5604 >    conf->reason = xstrdup(CONF_NOREASON);
5605   }
5606 + #line 5607 "conf_parser.c" /* yacc.c:1646  */
5607      break;
5608  
5609 <  case 417:
5610 <
6213 < /* Line 1806 of yacc.c  */
6214 < #line 2483 "conf_parser.y"
5609 >  case 460:
5610 > #line 2464 "conf_parser.y" /* yacc.c:1646  */
5611      {
5612 +  if (conf_parser_ctx.pass == 2)
5613 +    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5614   }
5615 + #line 5616 "conf_parser.c" /* yacc.c:1646  */
5616      break;
5617  
5618 <  case 421:
5619 <
6221 < /* Line 1806 of yacc.c  */
6222 < #line 2488 "conf_parser.y"
5618 >  case 461:
5619 > #line 2470 "conf_parser.y" /* yacc.c:1646  */
5620      {
5621    if (conf_parser_ctx.pass == 2)
5622 <    regex_ban = 1;
5622 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5623   }
5624 + #line 5625 "conf_parser.c" /* yacc.c:1646  */
5625      break;
5626  
5627 <  case 428:
5628 <
6231 < /* Line 1806 of yacc.c  */
6232 < #line 2497 "conf_parser.y"
5627 >  case 516:
5628 > #line 2536 "conf_parser.y" /* yacc.c:1646  */
5629      {
5630 <  if (conf_parser_ctx.pass == 2)
6235 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5630 >  ConfigFileEntry.max_watch = (yyvsp[-1].number);
5631   }
5632 + #line 5633 "conf_parser.c" /* yacc.c:1646  */
5633      break;
5634  
5635 <  case 429:
5636 <
6241 < /* Line 1806 of yacc.c  */
6242 < #line 2503 "conf_parser.y"
5635 >  case 517:
5636 > #line 2541 "conf_parser.y" /* yacc.c:1646  */
5637      {
5638    if (conf_parser_ctx.pass == 2)
5639 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5639 >    ConfigFileEntry.cycle_on_host_change = yylval.number;
5640   }
5641 + #line 5642 "conf_parser.c" /* yacc.c:1646  */
5642      break;
5643  
5644 <  case 485:
5645 <
6251 < /* Line 1806 of yacc.c  */
6252 < #line 2547 "conf_parser.y"
5644 >  case 518:
5645 > #line 2547 "conf_parser.y" /* yacc.c:1646  */
5646      {
5647 <  ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5647 >  if (conf_parser_ctx.pass == 2)
5648 >    ConfigFileEntry.glines = yylval.number;
5649   }
5650 + #line 5651 "conf_parser.c" /* yacc.c:1646  */
5651      break;
5652  
5653 <  case 486:
5654 <
6260 < /* Line 1806 of yacc.c  */
6261 < #line 2552 "conf_parser.y"
5653 >  case 519:
5654 > #line 2553 "conf_parser.y" /* yacc.c:1646  */
5655      {
5656 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5656 >  if (conf_parser_ctx.pass == 2)
5657 >    ConfigFileEntry.gline_time = (yyvsp[-1].number);
5658   }
5659 + #line 5660 "conf_parser.c" /* yacc.c:1646  */
5660      break;
5661  
5662 <  case 487:
5663 <
6269 < /* Line 1806 of yacc.c  */
6270 < #line 2557 "conf_parser.y"
5662 >  case 520:
5663 > #line 2559 "conf_parser.y" /* yacc.c:1646  */
5664      {
5665 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5665 >  if (conf_parser_ctx.pass == 2)
5666 >    ConfigFileEntry.gline_request_time = (yyvsp[-1].number);
5667   }
5668 + #line 5669 "conf_parser.c" /* yacc.c:1646  */
5669      break;
5670  
5671 <  case 488:
5672 <
6278 < /* Line 1806 of yacc.c  */
6279 < #line 2562 "conf_parser.y"
5671 >  case 521:
5672 > #line 2565 "conf_parser.y" /* yacc.c:1646  */
5673      {
5674 <  ConfigFileEntry.use_whois_actually = yylval.number;
5674 >  ConfigFileEntry.gline_min_cidr = (yyvsp[-1].number);
5675   }
5676 + #line 5677 "conf_parser.c" /* yacc.c:1646  */
5677      break;
5678  
5679 <  case 489:
5680 <
6287 < /* Line 1806 of yacc.c  */
6288 < #line 2567 "conf_parser.y"
5679 >  case 522:
5680 > #line 2570 "conf_parser.y" /* yacc.c:1646  */
5681      {
5682 <  GlobalSetOptions.rejecttime = yylval.number;
5682 >  ConfigFileEntry.gline_min_cidr6 = (yyvsp[-1].number);
5683   }
5684 + #line 5685 "conf_parser.c" /* yacc.c:1646  */
5685      break;
5686  
5687 <  case 490:
5688 <
6296 < /* Line 1806 of yacc.c  */
6297 < #line 2572 "conf_parser.y"
5687 >  case 523:
5688 > #line 2575 "conf_parser.y" /* yacc.c:1646  */
5689      {
5690    ConfigFileEntry.tkline_expire_notices = yylval.number;
5691   }
5692 + #line 5693 "conf_parser.c" /* yacc.c:1646  */
5693      break;
5694  
5695 <  case 491:
5696 <
6305 < /* Line 1806 of yacc.c  */
6306 < #line 2577 "conf_parser.y"
5695 >  case 524:
5696 > #line 2580 "conf_parser.y" /* yacc.c:1646  */
5697      {
5698 <  ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5698 >  ConfigFileEntry.kill_chase_time_limit = (yyvsp[-1].number);
5699   }
5700 + #line 5701 "conf_parser.c" /* yacc.c:1646  */
5701      break;
5702  
5703 <  case 492:
5704 <
6314 < /* Line 1806 of yacc.c  */
6315 < #line 2582 "conf_parser.y"
5703 >  case 525:
5704 > #line 2585 "conf_parser.y" /* yacc.c:1646  */
5705      {
5706    ConfigFileEntry.hide_spoof_ips = yylval.number;
5707   }
5708 + #line 5709 "conf_parser.c" /* yacc.c:1646  */
5709      break;
5710  
5711 <  case 493:
5712 <
6323 < /* Line 1806 of yacc.c  */
6324 < #line 2587 "conf_parser.y"
5711 >  case 526:
5712 > #line 2590 "conf_parser.y" /* yacc.c:1646  */
5713      {
5714    ConfigFileEntry.ignore_bogus_ts = yylval.number;
5715   }
5716 + #line 5717 "conf_parser.c" /* yacc.c:1646  */
5717      break;
5718  
5719 <  case 494:
5720 <
6332 < /* Line 1806 of yacc.c  */
6333 < #line 2592 "conf_parser.y"
6334 <    {
6335 <  ConfigFileEntry.disable_remote = yylval.number;
6336 < }
6337 <    break;
6338 <
6339 <  case 495:
6340 <
6341 < /* Line 1806 of yacc.c  */
6342 < #line 2597 "conf_parser.y"
5719 >  case 527:
5720 > #line 2595 "conf_parser.y" /* yacc.c:1646  */
5721      {
5722    ConfigFileEntry.failed_oper_notice = yylval.number;
5723   }
5724 + #line 5725 "conf_parser.c" /* yacc.c:1646  */
5725      break;
5726  
5727 <  case 496:
5728 <
6350 < /* Line 1806 of yacc.c  */
6351 < #line 2602 "conf_parser.y"
5727 >  case 528:
5728 > #line 2600 "conf_parser.y" /* yacc.c:1646  */
5729      {
5730    ConfigFileEntry.anti_nick_flood = yylval.number;
5731   }
5732 + #line 5733 "conf_parser.c" /* yacc.c:1646  */
5733      break;
5734  
5735 <  case 497:
5736 <
6359 < /* Line 1806 of yacc.c  */
6360 < #line 2607 "conf_parser.y"
5735 >  case 529:
5736 > #line 2605 "conf_parser.y" /* yacc.c:1646  */
5737      {
5738 <  ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5738 >  ConfigFileEntry.max_nick_time = (yyvsp[-1].number);
5739   }
5740 + #line 5741 "conf_parser.c" /* yacc.c:1646  */
5741      break;
5742  
5743 <  case 498:
5744 <
6368 < /* Line 1806 of yacc.c  */
6369 < #line 2612 "conf_parser.y"
5743 >  case 530:
5744 > #line 2610 "conf_parser.y" /* yacc.c:1646  */
5745      {
5746 <  ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5746 >  ConfigFileEntry.max_nick_changes = (yyvsp[-1].number);
5747   }
5748 + #line 5749 "conf_parser.c" /* yacc.c:1646  */
5749      break;
5750  
5751 <  case 499:
5752 <
6377 < /* Line 1806 of yacc.c  */
6378 < #line 2617 "conf_parser.y"
5751 >  case 531:
5752 > #line 2615 "conf_parser.y" /* yacc.c:1646  */
5753      {
5754 <  ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5754 >  ConfigFileEntry.max_accept = (yyvsp[-1].number);
5755   }
5756 + #line 5757 "conf_parser.c" /* yacc.c:1646  */
5757      break;
5758  
5759 <  case 500:
5760 <
6386 < /* Line 1806 of yacc.c  */
6387 < #line 2622 "conf_parser.y"
5759 >  case 532:
5760 > #line 2620 "conf_parser.y" /* yacc.c:1646  */
5761      {
5762 <  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5762 >  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[-1].number);
5763   }
5764 + #line 5765 "conf_parser.c" /* yacc.c:1646  */
5765      break;
5766  
5767 <  case 501:
5768 <
6395 < /* Line 1806 of yacc.c  */
6396 < #line 2627 "conf_parser.y"
5767 >  case 533:
5768 > #line 2625 "conf_parser.y" /* yacc.c:1646  */
5769      {
5770 <  ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5770 >  ConfigFileEntry.ts_warn_delta = (yyvsp[-1].number);
5771   }
5772 + #line 5773 "conf_parser.c" /* yacc.c:1646  */
5773      break;
5774  
5775 <  case 502:
5776 <
6404 < /* Line 1806 of yacc.c  */
6405 < #line 2632 "conf_parser.y"
5775 >  case 534:
5776 > #line 2630 "conf_parser.y" /* yacc.c:1646  */
5777      {
5778    if (conf_parser_ctx.pass == 2)
5779 <    ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5779 >    ConfigFileEntry.ts_max_delta = (yyvsp[-1].number);
5780   }
5781 + #line 5782 "conf_parser.c" /* yacc.c:1646  */
5782      break;
5783  
5784 <  case 503:
5785 <
6414 < /* Line 1806 of yacc.c  */
6415 < #line 2638 "conf_parser.y"
5784 >  case 535:
5785 > #line 2636 "conf_parser.y" /* yacc.c:1646  */
5786      {
5787 <  if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
5787 >  if (((yyvsp[-1].number) > 0) && conf_parser_ctx.pass == 1)
5788    {
5789      ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
5790      ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
# Line 6422 | Line 5792 | yyreduce:
5792      exit(0);
5793    }
5794   }
5795 + #line 5796 "conf_parser.c" /* yacc.c:1646  */
5796      break;
5797  
5798 <  case 504:
5799 <
6429 < /* Line 1806 of yacc.c  */
6430 < #line 2649 "conf_parser.y"
6431 <    {
6432 <  ConfigFileEntry.kline_with_reason = yylval.number;
6433 < }
6434 <    break;
6435 <
6436 <  case 505:
6437 <
6438 < /* Line 1806 of yacc.c  */
6439 < #line 2654 "conf_parser.y"
6440 <    {
6441 <  if (conf_parser_ctx.pass == 2)
6442 <  {
6443 <    MyFree(ConfigFileEntry.kline_reason);
6444 <    DupString(ConfigFileEntry.kline_reason, yylval.string);
6445 <  }
6446 < }
6447 <    break;
6448 <
6449 <  case 506:
6450 <
6451 < /* Line 1806 of yacc.c  */
6452 < #line 2663 "conf_parser.y"
5798 >  case 536:
5799 > #line 2647 "conf_parser.y" /* yacc.c:1646  */
5800      {
5801    ConfigFileEntry.invisible_on_connect = yylval.number;
5802   }
5803 + #line 5804 "conf_parser.c" /* yacc.c:1646  */
5804      break;
5805  
5806 <  case 507:
5807 <
6460 < /* Line 1806 of yacc.c  */
6461 < #line 2668 "conf_parser.y"
5806 >  case 537:
5807 > #line 2652 "conf_parser.y" /* yacc.c:1646  */
5808      {
5809 <  ConfigFileEntry.warn_no_nline = yylval.number;
5809 >  ConfigFileEntry.warn_no_connect_block = yylval.number;
5810   }
5811 + #line 5812 "conf_parser.c" /* yacc.c:1646  */
5812      break;
5813  
5814 <  case 508:
5815 <
6469 < /* Line 1806 of yacc.c  */
6470 < #line 2673 "conf_parser.y"
5814 >  case 538:
5815 > #line 2657 "conf_parser.y" /* yacc.c:1646  */
5816      {
5817    ConfigFileEntry.stats_e_disabled = yylval.number;
5818   }
5819 + #line 5820 "conf_parser.c" /* yacc.c:1646  */
5820      break;
5821  
5822 <  case 509:
5823 <
6478 < /* Line 1806 of yacc.c  */
6479 < #line 2678 "conf_parser.y"
5822 >  case 539:
5823 > #line 2662 "conf_parser.y" /* yacc.c:1646  */
5824      {
5825    ConfigFileEntry.stats_o_oper_only = yylval.number;
5826   }
5827 + #line 5828 "conf_parser.c" /* yacc.c:1646  */
5828      break;
5829  
5830 <  case 510:
5831 <
6487 < /* Line 1806 of yacc.c  */
6488 < #line 2683 "conf_parser.y"
5830 >  case 540:
5831 > #line 2667 "conf_parser.y" /* yacc.c:1646  */
5832      {
5833    ConfigFileEntry.stats_P_oper_only = yylval.number;
5834   }
5835 + #line 5836 "conf_parser.c" /* yacc.c:1646  */
5836      break;
5837  
5838 <  case 511:
5838 >  case 541:
5839 > #line 2672 "conf_parser.y" /* yacc.c:1646  */
5840 >    {
5841 >  ConfigFileEntry.stats_u_oper_only = yylval.number;
5842 > }
5843 > #line 5844 "conf_parser.c" /* yacc.c:1646  */
5844 >    break;
5845  
5846 < /* Line 1806 of yacc.c  */
5847 < #line 2688 "conf_parser.y"
5846 >  case 542:
5847 > #line 2677 "conf_parser.y" /* yacc.c:1646  */
5848      {
5849    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5850   }
5851 + #line 5852 "conf_parser.c" /* yacc.c:1646  */
5852      break;
5853  
5854 <  case 512:
5855 <
6505 < /* Line 1806 of yacc.c  */
6506 < #line 2691 "conf_parser.y"
5854 >  case 543:
5855 > #line 2680 "conf_parser.y" /* yacc.c:1646  */
5856      {
5857    ConfigFileEntry.stats_k_oper_only = 1;
5858   }
5859 + #line 5860 "conf_parser.c" /* yacc.c:1646  */
5860      break;
5861  
5862 <  case 513:
5863 <
6514 < /* Line 1806 of yacc.c  */
6515 < #line 2696 "conf_parser.y"
5862 >  case 544:
5863 > #line 2685 "conf_parser.y" /* yacc.c:1646  */
5864      {
5865    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5866   }
5867 + #line 5868 "conf_parser.c" /* yacc.c:1646  */
5868      break;
5869  
5870 <  case 514:
5871 <
6523 < /* Line 1806 of yacc.c  */
6524 < #line 2699 "conf_parser.y"
5870 >  case 545:
5871 > #line 2688 "conf_parser.y" /* yacc.c:1646  */
5872      {
5873    ConfigFileEntry.stats_i_oper_only = 1;
5874   }
5875 + #line 5876 "conf_parser.c" /* yacc.c:1646  */
5876      break;
5877  
5878 <  case 515:
5879 <
6532 < /* Line 1806 of yacc.c  */
6533 < #line 2704 "conf_parser.y"
5878 >  case 546:
5879 > #line 2693 "conf_parser.y" /* yacc.c:1646  */
5880      {
5881 <  ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5881 >  ConfigFileEntry.pace_wait = (yyvsp[-1].number);
5882   }
5883 + #line 5884 "conf_parser.c" /* yacc.c:1646  */
5884      break;
5885  
5886 <  case 516:
5887 <
6541 < /* Line 1806 of yacc.c  */
6542 < #line 2709 "conf_parser.y"
5886 >  case 547:
5887 > #line 2698 "conf_parser.y" /* yacc.c:1646  */
5888      {
5889 <  ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5889 >  ConfigFileEntry.caller_id_wait = (yyvsp[-1].number);
5890   }
5891 + #line 5892 "conf_parser.c" /* yacc.c:1646  */
5892      break;
5893  
5894 <  case 517:
5895 <
6550 < /* Line 1806 of yacc.c  */
6551 < #line 2714 "conf_parser.y"
5894 >  case 548:
5895 > #line 2703 "conf_parser.y" /* yacc.c:1646  */
5896      {
5897    ConfigFileEntry.opers_bypass_callerid = yylval.number;
5898   }
5899 + #line 5900 "conf_parser.c" /* yacc.c:1646  */
5900      break;
5901  
5902 <  case 518:
5903 <
6559 < /* Line 1806 of yacc.c  */
6560 < #line 2719 "conf_parser.y"
5902 >  case 549:
5903 > #line 2708 "conf_parser.y" /* yacc.c:1646  */
5904      {
5905 <  ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
5905 >  ConfigFileEntry.pace_wait_simple = (yyvsp[-1].number);
5906   }
5907 + #line 5908 "conf_parser.c" /* yacc.c:1646  */
5908      break;
5909  
5910 <  case 519:
5911 <
6568 < /* Line 1806 of yacc.c  */
6569 < #line 2724 "conf_parser.y"
5910 >  case 550:
5911 > #line 2713 "conf_parser.y" /* yacc.c:1646  */
5912      {
5913    ConfigFileEntry.short_motd = yylval.number;
5914   }
5915 + #line 5916 "conf_parser.c" /* yacc.c:1646  */
5916      break;
5917  
5918 <  case 520:
5919 <
6577 < /* Line 1806 of yacc.c  */
6578 < #line 2729 "conf_parser.y"
5918 >  case 551:
5919 > #line 2718 "conf_parser.y" /* yacc.c:1646  */
5920      {
5921    ConfigFileEntry.no_oper_flood = yylval.number;
5922   }
5923 + #line 5924 "conf_parser.c" /* yacc.c:1646  */
5924      break;
5925  
5926 <  case 521:
5927 <
6586 < /* Line 1806 of yacc.c  */
6587 < #line 2734 "conf_parser.y"
5926 >  case 552:
5927 > #line 2723 "conf_parser.y" /* yacc.c:1646  */
5928      {
5929    ConfigFileEntry.true_no_oper_flood = yylval.number;
5930   }
5931 + #line 5932 "conf_parser.c" /* yacc.c:1646  */
5932      break;
5933  
5934 <  case 522:
5935 <
6595 < /* Line 1806 of yacc.c  */
6596 < #line 2739 "conf_parser.y"
5934 >  case 553:
5935 > #line 2728 "conf_parser.y" /* yacc.c:1646  */
5936      {
5937    ConfigFileEntry.oper_pass_resv = yylval.number;
5938   }
5939 + #line 5940 "conf_parser.c" /* yacc.c:1646  */
5940      break;
5941  
5942 <  case 523:
5943 <
6604 < /* Line 1806 of yacc.c  */
6605 < #line 2744 "conf_parser.y"
6606 <    {
6607 <  if (conf_parser_ctx.pass == 2)
6608 <  {
6609 <    if (strlen(yylval.string) > LOCALE_LENGTH-2)
6610 <      yylval.string[LOCALE_LENGTH-1] = '\0';
6611 <
6612 <    set_locale(yylval.string);
6613 <  }
6614 < }
6615 <    break;
6616 <
6617 <  case 524:
6618 <
6619 < /* Line 1806 of yacc.c  */
6620 < #line 2755 "conf_parser.y"
5942 >  case 554:
5943 > #line 2733 "conf_parser.y" /* yacc.c:1646  */
5944      {
5945 <  ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
5945 >  ConfigFileEntry.dots_in_ident = (yyvsp[-1].number);
5946   }
5947 + #line 5948 "conf_parser.c" /* yacc.c:1646  */
5948      break;
5949  
5950 <  case 525:
5951 <
6628 < /* Line 1806 of yacc.c  */
6629 < #line 2760 "conf_parser.y"
5950 >  case 555:
5951 > #line 2738 "conf_parser.y" /* yacc.c:1646  */
5952      {
5953 <  ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
5953 >  ConfigFileEntry.max_targets = (yyvsp[-1].number);
5954   }
5955 + #line 5956 "conf_parser.c" /* yacc.c:1646  */
5956      break;
5957  
5958 <  case 526:
5959 <
6637 < /* Line 1806 of yacc.c  */
6638 < #line 2765 "conf_parser.y"
5958 >  case 556:
5959 > #line 2743 "conf_parser.y" /* yacc.c:1646  */
5960      {
5961    ConfigFileEntry.use_egd = yylval.number;
5962   }
5963 + #line 5964 "conf_parser.c" /* yacc.c:1646  */
5964      break;
5965  
5966 <  case 527:
5967 <
6646 < /* Line 1806 of yacc.c  */
6647 < #line 2770 "conf_parser.y"
5966 >  case 557:
5967 > #line 2748 "conf_parser.y" /* yacc.c:1646  */
5968      {
5969    if (conf_parser_ctx.pass == 2)
5970    {
5971      MyFree(ConfigFileEntry.egdpool_path);
5972 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
5972 >    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
5973    }
5974   }
5975 + #line 5976 "conf_parser.c" /* yacc.c:1646  */
5976      break;
5977  
5978 <  case 528:
5979 <
6659 < /* Line 1806 of yacc.c  */
6660 < #line 2779 "conf_parser.y"
5978 >  case 558:
5979 > #line 2757 "conf_parser.y" /* yacc.c:1646  */
5980      {
5981    if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
5982    {
5983      MyFree(ConfigFileEntry.service_name);
5984 <    DupString(ConfigFileEntry.service_name, yylval.string);
5984 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
5985    }
5986   }
5987 + #line 5988 "conf_parser.c" /* yacc.c:1646  */
5988      break;
5989  
5990 <  case 529:
5991 <
6672 < /* Line 1806 of yacc.c  */
6673 < #line 2788 "conf_parser.y"
5990 >  case 559:
5991 > #line 2766 "conf_parser.y" /* yacc.c:1646  */
5992      {
5993    ConfigFileEntry.ping_cookie = yylval.number;
5994   }
5995 + #line 5996 "conf_parser.c" /* yacc.c:1646  */
5996      break;
5997  
5998 <  case 530:
5999 <
6681 < /* Line 1806 of yacc.c  */
6682 < #line 2793 "conf_parser.y"
5998 >  case 560:
5999 > #line 2771 "conf_parser.y" /* yacc.c:1646  */
6000      {
6001    ConfigFileEntry.disable_auth = yylval.number;
6002   }
6003 + #line 6004 "conf_parser.c" /* yacc.c:1646  */
6004      break;
6005  
6006 <  case 531:
6007 <
6690 < /* Line 1806 of yacc.c  */
6691 < #line 2798 "conf_parser.y"
6006 >  case 561:
6007 > #line 2776 "conf_parser.y" /* yacc.c:1646  */
6008      {
6009 <  ConfigFileEntry.throttle_time = yylval.number;
6009 >  ConfigFileEntry.throttle_count = (yyvsp[-1].number);
6010   }
6011 + #line 6012 "conf_parser.c" /* yacc.c:1646  */
6012      break;
6013  
6014 <  case 532:
6015 <
6699 < /* Line 1806 of yacc.c  */
6700 < #line 2803 "conf_parser.y"
6014 >  case 562:
6015 > #line 2781 "conf_parser.y" /* yacc.c:1646  */
6016      {
6017 <  ConfigFileEntry.oper_umodes = 0;
6017 >  ConfigFileEntry.throttle_time = (yyvsp[-1].number);
6018   }
6019 + #line 6020 "conf_parser.c" /* yacc.c:1646  */
6020      break;
6021  
6022 <  case 536:
6023 <
6708 < /* Line 1806 of yacc.c  */
6709 < #line 2809 "conf_parser.y"
6022 >  case 563:
6023 > #line 2786 "conf_parser.y" /* yacc.c:1646  */
6024      {
6025 <  ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6025 >  ConfigFileEntry.oper_umodes = 0;
6026   }
6027 + #line 6028 "conf_parser.c" /* yacc.c:1646  */
6028      break;
6029  
6030 <  case 537:
6031 <
6717 < /* Line 1806 of yacc.c  */
6718 < #line 2812 "conf_parser.y"
6030 >  case 567:
6031 > #line 2792 "conf_parser.y" /* yacc.c:1646  */
6032      {
6033 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6033 >  ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6034   }
6035 + #line 6036 "conf_parser.c" /* yacc.c:1646  */
6036      break;
6037  
6038 <  case 538:
6039 <
6726 < /* Line 1806 of yacc.c  */
6727 < #line 2815 "conf_parser.y"
6038 >  case 568:
6039 > #line 2795 "conf_parser.y" /* yacc.c:1646  */
6040      {
6041 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6041 >  ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6042   }
6043 + #line 6044 "conf_parser.c" /* yacc.c:1646  */
6044      break;
6045  
6046 <  case 539:
6047 <
6735 < /* Line 1806 of yacc.c  */
6736 < #line 2818 "conf_parser.y"
6046 >  case 569:
6047 > #line 2798 "conf_parser.y" /* yacc.c:1646  */
6048      {
6049    ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6050   }
6051 + #line 6052 "conf_parser.c" /* yacc.c:1646  */
6052      break;
6053  
6054 <  case 540:
6055 <
6744 < /* Line 1806 of yacc.c  */
6745 < #line 2821 "conf_parser.y"
6054 >  case 570:
6055 > #line 2801 "conf_parser.y" /* yacc.c:1646  */
6056      {
6057    ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6058   }
6059 + #line 6060 "conf_parser.c" /* yacc.c:1646  */
6060      break;
6061  
6062 <  case 541:
6063 <
6753 < /* Line 1806 of yacc.c  */
6754 < #line 2824 "conf_parser.y"
6062 >  case 571:
6063 > #line 2804 "conf_parser.y" /* yacc.c:1646  */
6064      {
6065    ConfigFileEntry.oper_umodes |= UMODE_FULL;
6066   }
6067 + #line 6068 "conf_parser.c" /* yacc.c:1646  */
6068      break;
6069  
6070 <  case 542:
6071 <
6762 < /* Line 1806 of yacc.c  */
6763 < #line 2827 "conf_parser.y"
6070 >  case 572:
6071 > #line 2807 "conf_parser.y" /* yacc.c:1646  */
6072      {
6073    ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6074   }
6075 + #line 6076 "conf_parser.c" /* yacc.c:1646  */
6076      break;
6077  
6078 <  case 543:
6078 >  case 573:
6079 > #line 2810 "conf_parser.y" /* yacc.c:1646  */
6080 >    {
6081 >  ConfigFileEntry.oper_umodes |= UMODE_HIDECHANS;
6082 > }
6083 > #line 6084 "conf_parser.c" /* yacc.c:1646  */
6084 >    break;
6085  
6086 < /* Line 1806 of yacc.c  */
6087 < #line 2830 "conf_parser.y"
6086 >  case 574:
6087 > #line 2813 "conf_parser.y" /* yacc.c:1646  */
6088      {
6089 <  ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6089 >  ConfigFileEntry.oper_umodes |= UMODE_HIDEIDLE;
6090   }
6091 + #line 6092 "conf_parser.c" /* yacc.c:1646  */
6092      break;
6093  
6094 <  case 544:
6094 >  case 575:
6095 > #line 2816 "conf_parser.y" /* yacc.c:1646  */
6096 >    {
6097 >  ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6098 > }
6099 > #line 6100 "conf_parser.c" /* yacc.c:1646  */
6100 >    break;
6101  
6102 < /* Line 1806 of yacc.c  */
6103 < #line 2833 "conf_parser.y"
6102 >  case 576:
6103 > #line 2819 "conf_parser.y" /* yacc.c:1646  */
6104      {
6105    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6106   }
6107 + #line 6108 "conf_parser.c" /* yacc.c:1646  */
6108      break;
6109  
6110 <  case 545:
6111 <
6789 < /* Line 1806 of yacc.c  */
6790 < #line 2836 "conf_parser.y"
6110 >  case 577:
6111 > #line 2822 "conf_parser.y" /* yacc.c:1646  */
6112      {
6113    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6114   }
6115 + #line 6116 "conf_parser.c" /* yacc.c:1646  */
6116      break;
6117  
6118 <  case 546:
6119 <
6798 < /* Line 1806 of yacc.c  */
6799 < #line 2839 "conf_parser.y"
6118 >  case 578:
6119 > #line 2825 "conf_parser.y" /* yacc.c:1646  */
6120      {
6121    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6122   }
6123 + #line 6124 "conf_parser.c" /* yacc.c:1646  */
6124      break;
6125  
6126 <  case 547:
6127 <
6807 < /* Line 1806 of yacc.c  */
6808 < #line 2842 "conf_parser.y"
6126 >  case 579:
6127 > #line 2828 "conf_parser.y" /* yacc.c:1646  */
6128      {
6129    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6130   }
6131 + #line 6132 "conf_parser.c" /* yacc.c:1646  */
6132      break;
6133  
6134 <  case 548:
6135 <
6816 < /* Line 1806 of yacc.c  */
6817 < #line 2845 "conf_parser.y"
6134 >  case 580:
6135 > #line 2831 "conf_parser.y" /* yacc.c:1646  */
6136      {
6137    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6138   }
6139 + #line 6140 "conf_parser.c" /* yacc.c:1646  */
6140      break;
6141  
6142 <  case 549:
6143 <
6825 < /* Line 1806 of yacc.c  */
6826 < #line 2848 "conf_parser.y"
6827 <    {
6828 <  ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6829 < }
6830 <    break;
6831 <
6832 <  case 550:
6833 <
6834 < /* Line 1806 of yacc.c  */
6835 < #line 2851 "conf_parser.y"
6142 >  case 581:
6143 > #line 2834 "conf_parser.y" /* yacc.c:1646  */
6144      {
6145    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6146   }
6147 + #line 6148 "conf_parser.c" /* yacc.c:1646  */
6148      break;
6149  
6150 <  case 551:
6151 <
6843 < /* Line 1806 of yacc.c  */
6844 < #line 2854 "conf_parser.y"
6150 >  case 582:
6151 > #line 2837 "conf_parser.y" /* yacc.c:1646  */
6152      {
6153    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6154   }
6155 + #line 6156 "conf_parser.c" /* yacc.c:1646  */
6156      break;
6157  
6158 <  case 552:
6159 <
6852 < /* Line 1806 of yacc.c  */
6853 < #line 2857 "conf_parser.y"
6158 >  case 583:
6159 > #line 2840 "conf_parser.y" /* yacc.c:1646  */
6160      {
6161    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6162   }
6163 + #line 6164 "conf_parser.c" /* yacc.c:1646  */
6164      break;
6165  
6166 <  case 553:
6167 <
6861 < /* Line 1806 of yacc.c  */
6862 < #line 2860 "conf_parser.y"
6166 >  case 584:
6167 > #line 2843 "conf_parser.y" /* yacc.c:1646  */
6168      {
6169    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6170   }
6171 + #line 6172 "conf_parser.c" /* yacc.c:1646  */
6172      break;
6173  
6174 <  case 554:
6175 <
6870 < /* Line 1806 of yacc.c  */
6871 < #line 2863 "conf_parser.y"
6174 >  case 585:
6175 > #line 2846 "conf_parser.y" /* yacc.c:1646  */
6176      {
6177    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6178   }
6179 + #line 6180 "conf_parser.c" /* yacc.c:1646  */
6180      break;
6181  
6182 <  case 555:
6183 <
6879 < /* Line 1806 of yacc.c  */
6880 < #line 2866 "conf_parser.y"
6182 >  case 586:
6183 > #line 2849 "conf_parser.y" /* yacc.c:1646  */
6184      {
6185    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6186   }
6187 + #line 6188 "conf_parser.c" /* yacc.c:1646  */
6188      break;
6189  
6190 <  case 556:
6191 <
6888 < /* Line 1806 of yacc.c  */
6889 < #line 2871 "conf_parser.y"
6190 >  case 587:
6191 > #line 2852 "conf_parser.y" /* yacc.c:1646  */
6192      {
6193 <  ConfigFileEntry.oper_only_umodes = 0;
6193 >  ConfigFileEntry.oper_umodes |= UMODE_REGONLY;
6194   }
6195 + #line 6196 "conf_parser.c" /* yacc.c:1646  */
6196      break;
6197  
6198 <  case 560:
6199 <
6897 < /* Line 1806 of yacc.c  */
6898 < #line 2877 "conf_parser.y"
6198 >  case 588:
6199 > #line 2855 "conf_parser.y" /* yacc.c:1646  */
6200      {
6201 <  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6201 >  ConfigFileEntry.oper_umodes |= UMODE_FARCONNECT;
6202   }
6203 + #line 6204 "conf_parser.c" /* yacc.c:1646  */
6204      break;
6205  
6206 <  case 561:
6207 <
6906 < /* Line 1806 of yacc.c  */
6907 < #line 2880 "conf_parser.y"
6206 >  case 589:
6207 > #line 2860 "conf_parser.y" /* yacc.c:1646  */
6208      {
6209 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6209 >  ConfigFileEntry.oper_only_umodes = 0;
6210   }
6211 + #line 6212 "conf_parser.c" /* yacc.c:1646  */
6212      break;
6213  
6214 <  case 562:
6215 <
6915 < /* Line 1806 of yacc.c  */
6916 < #line 2883 "conf_parser.y"
6214 >  case 593:
6215 > #line 2866 "conf_parser.y" /* yacc.c:1646  */
6216      {
6217 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6217 >  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6218   }
6219 + #line 6220 "conf_parser.c" /* yacc.c:1646  */
6220      break;
6221  
6222 <  case 563:
6222 >  case 594:
6223 > #line 2869 "conf_parser.y" /* yacc.c:1646  */
6224 >    {
6225 >  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6226 > }
6227 > #line 6228 "conf_parser.c" /* yacc.c:1646  */
6228 >    break;
6229  
6230 < /* Line 1806 of yacc.c  */
6231 < #line 2886 "conf_parser.y"
6230 >  case 595:
6231 > #line 2872 "conf_parser.y" /* yacc.c:1646  */
6232      {
6233    ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6234   }
6235 + #line 6236 "conf_parser.c" /* yacc.c:1646  */
6236      break;
6237  
6238 <  case 564:
6239 <
6933 < /* Line 1806 of yacc.c  */
6934 < #line 2889 "conf_parser.y"
6238 >  case 596:
6239 > #line 2875 "conf_parser.y" /* yacc.c:1646  */
6240      {
6241    ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6242   }
6243 + #line 6244 "conf_parser.c" /* yacc.c:1646  */
6244      break;
6245  
6246 <  case 565:
6247 <
6248 < /* Line 1806 of yacc.c  */
6943 < #line 2892 "conf_parser.y"
6944 <    {
6246 >  case 597:
6247 > #line 2878 "conf_parser.y" /* yacc.c:1646  */
6248 >    {
6249    ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6250   }
6251 + #line 6252 "conf_parser.c" /* yacc.c:1646  */
6252      break;
6253  
6254 <  case 566:
6255 <
6951 < /* Line 1806 of yacc.c  */
6952 < #line 2895 "conf_parser.y"
6254 >  case 598:
6255 > #line 2881 "conf_parser.y" /* yacc.c:1646  */
6256      {
6257    ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6258   }
6259 + #line 6260 "conf_parser.c" /* yacc.c:1646  */
6260      break;
6261  
6262 <  case 567:
6263 <
6960 < /* Line 1806 of yacc.c  */
6961 < #line 2898 "conf_parser.y"
6262 >  case 599:
6263 > #line 2884 "conf_parser.y" /* yacc.c:1646  */
6264      {
6265    ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6266   }
6267 + #line 6268 "conf_parser.c" /* yacc.c:1646  */
6268      break;
6269  
6270 <  case 568:
6271 <
6969 < /* Line 1806 of yacc.c  */
6970 < #line 2901 "conf_parser.y"
6270 >  case 600:
6271 > #line 2887 "conf_parser.y" /* yacc.c:1646  */
6272      {
6273    ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6274   }
6275 + #line 6276 "conf_parser.c" /* yacc.c:1646  */
6276      break;
6277  
6278 <  case 569:
6279 <
6978 < /* Line 1806 of yacc.c  */
6979 < #line 2904 "conf_parser.y"
6278 >  case 601:
6279 > #line 2890 "conf_parser.y" /* yacc.c:1646  */
6280      {
6281    ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6282   }
6283 + #line 6284 "conf_parser.c" /* yacc.c:1646  */
6284      break;
6285  
6286 <  case 570:
6287 <
6987 < /* Line 1806 of yacc.c  */
6988 < #line 2907 "conf_parser.y"
6286 >  case 602:
6287 > #line 2893 "conf_parser.y" /* yacc.c:1646  */
6288      {
6289    ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6290   }
6291 + #line 6292 "conf_parser.c" /* yacc.c:1646  */
6292      break;
6293  
6294 <  case 571:
6295 <
6996 < /* Line 1806 of yacc.c  */
6997 < #line 2910 "conf_parser.y"
6294 >  case 603:
6295 > #line 2896 "conf_parser.y" /* yacc.c:1646  */
6296      {
6297    ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6298   }
6299 + #line 6300 "conf_parser.c" /* yacc.c:1646  */
6300      break;
6301  
6302 <  case 572:
6303 <
7005 < /* Line 1806 of yacc.c  */
7006 < #line 2913 "conf_parser.y"
6302 >  case 604:
6303 > #line 2899 "conf_parser.y" /* yacc.c:1646  */
6304      {
6305    ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6306   }
6307 + #line 6308 "conf_parser.c" /* yacc.c:1646  */
6308      break;
6309  
6310 <  case 573:
6311 <
7014 < /* Line 1806 of yacc.c  */
7015 < #line 2916 "conf_parser.y"
7016 <    {
7017 <  ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
7018 < }
7019 <    break;
7020 <
7021 <  case 574:
7022 <
7023 < /* Line 1806 of yacc.c  */
7024 < #line 2919 "conf_parser.y"
6310 >  case 605:
6311 > #line 2902 "conf_parser.y" /* yacc.c:1646  */
6312      {
6313    ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6314   }
6315 + #line 6316 "conf_parser.c" /* yacc.c:1646  */
6316      break;
6317  
6318 <  case 575:
6319 <
7032 < /* Line 1806 of yacc.c  */
7033 < #line 2922 "conf_parser.y"
6318 >  case 606:
6319 > #line 2905 "conf_parser.y" /* yacc.c:1646  */
6320      {
6321    ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6322   }
6323 + #line 6324 "conf_parser.c" /* yacc.c:1646  */
6324      break;
6325  
6326 <  case 576:
6327 <
7041 < /* Line 1806 of yacc.c  */
7042 < #line 2925 "conf_parser.y"
6326 >  case 607:
6327 > #line 2908 "conf_parser.y" /* yacc.c:1646  */
6328      {
6329    ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6330   }
6331 + #line 6332 "conf_parser.c" /* yacc.c:1646  */
6332      break;
6333  
6334 <  case 577:
6335 <
7050 < /* Line 1806 of yacc.c  */
7051 < #line 2928 "conf_parser.y"
6334 >  case 608:
6335 > #line 2911 "conf_parser.y" /* yacc.c:1646  */
6336      {
6337    ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6338   }
6339 + #line 6340 "conf_parser.c" /* yacc.c:1646  */
6340      break;
6341  
6342 <  case 578:
6343 <
7059 < /* Line 1806 of yacc.c  */
7060 < #line 2931 "conf_parser.y"
6342 >  case 609:
6343 > #line 2914 "conf_parser.y" /* yacc.c:1646  */
6344      {
6345    ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6346   }
6347 + #line 6348 "conf_parser.c" /* yacc.c:1646  */
6348      break;
6349  
6350 <  case 579:
6351 <
7068 < /* Line 1806 of yacc.c  */
7069 < #line 2934 "conf_parser.y"
6350 >  case 610:
6351 > #line 2917 "conf_parser.y" /* yacc.c:1646  */
6352      {
6353    ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6354   }
6355 + #line 6356 "conf_parser.c" /* yacc.c:1646  */
6356      break;
6357  
6358 <  case 580:
6359 <
7077 < /* Line 1806 of yacc.c  */
7078 < #line 2939 "conf_parser.y"
7079 <    {
7080 <  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
7081 < }
7082 <    break;
7083 <
7084 <  case 581:
7085 <
7086 < /* Line 1806 of yacc.c  */
7087 < #line 2944 "conf_parser.y"
7088 <    {
7089 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
7090 < }
7091 <    break;
7092 <
7093 <  case 582:
7094 <
7095 < /* Line 1806 of yacc.c  */
7096 < #line 2949 "conf_parser.y"
7097 <    {
7098 <  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
7099 < }
7100 <    break;
7101 <
7102 <  case 583:
7103 <
7104 < /* Line 1806 of yacc.c  */
7105 < #line 2954 "conf_parser.y"
7106 <    {
7107 <  ConfigFileEntry.client_flood = (yyvsp[(3) - (4)].number);
7108 < }
7109 <    break;
7110 <
7111 <  case 584:
7112 <
7113 < /* Line 1806 of yacc.c  */
7114 < #line 2963 "conf_parser.y"
7115 <    {
7116 <  if (conf_parser_ctx.pass == 2)
7117 <  {
7118 <    yy_conf = make_conf_item(GDENY_TYPE);
7119 <    yy_aconf = map_to_conf(yy_conf);
7120 <  }
7121 < }
7122 <    break;
7123 <
7124 <  case 585:
7125 <
7126 < /* Line 1806 of yacc.c  */
7127 < #line 2970 "conf_parser.y"
7128 <    {
7129 <  if (conf_parser_ctx.pass == 2)
7130 <  {
7131 <    /*
7132 <     * since we re-allocate yy_conf/yy_aconf after the end of action=, at the
7133 <     * end we will have one extra, so we should free it.
7134 <     */
7135 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
7136 <    {
7137 <      delete_conf_item(yy_conf);
7138 <      yy_conf = NULL;
7139 <      yy_aconf = NULL;
7140 <    }
7141 <  }
7142 < }
7143 <    break;
7144 <
7145 <  case 595:
7146 <
7147 < /* Line 1806 of yacc.c  */
7148 < #line 2996 "conf_parser.y"
7149 <    {
7150 <  if (conf_parser_ctx.pass == 2)
7151 <    ConfigFileEntry.glines = yylval.number;
7152 < }
7153 <    break;
7154 <
7155 <  case 596:
7156 <
7157 < /* Line 1806 of yacc.c  */
7158 < #line 3002 "conf_parser.y"
7159 <    {
7160 <  if (conf_parser_ctx.pass == 2)
7161 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
7162 < }
7163 <    break;
7164 <
7165 <  case 597:
7166 <
7167 < /* Line 1806 of yacc.c  */
7168 < #line 3008 "conf_parser.y"
7169 <    {
7170 <  if (conf_parser_ctx.pass == 2)
7171 <    ConfigFileEntry.gline_logging = 0;
7172 < }
7173 <    break;
7174 <
7175 <  case 601:
7176 <
7177 < /* Line 1806 of yacc.c  */
7178 < #line 3014 "conf_parser.y"
7179 <    {
7180 <  if (conf_parser_ctx.pass == 2)
7181 <    ConfigFileEntry.gline_logging |= GDENY_REJECT;
7182 < }
7183 <    break;
7184 <
7185 <  case 602:
7186 <
7187 < /* Line 1806 of yacc.c  */
7188 < #line 3018 "conf_parser.y"
7189 <    {
7190 <  if (conf_parser_ctx.pass == 2)
7191 <    ConfigFileEntry.gline_logging |= GDENY_BLOCK;
7192 < }
7193 <    break;
7194 <
7195 <  case 603:
7196 <
7197 < /* Line 1806 of yacc.c  */
7198 < #line 3024 "conf_parser.y"
7199 <    {
7200 <  if (conf_parser_ctx.pass == 2)
7201 <  {
7202 <    struct split_nuh_item nuh;
7203 <
7204 <    nuh.nuhmask  = yylval.string;
7205 <    nuh.nickptr  = NULL;
7206 <    nuh.userptr  = userbuf;
7207 <    nuh.hostptr  = hostbuf;
7208 <
7209 <    nuh.nicksize = 0;
7210 <    nuh.usersize = sizeof(userbuf);
7211 <    nuh.hostsize = sizeof(hostbuf);
7212 <
7213 <    split_nuh(&nuh);
7214 <
7215 <    if (yy_aconf->user == NULL)
7216 <    {
7217 <      DupString(yy_aconf->user, userbuf);
7218 <      DupString(yy_aconf->host, hostbuf);
7219 <    }
7220 <    else
7221 <    {
7222 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
7223 <
7224 <      DupString(yy_tmp->user, userbuf);
7225 <      DupString(yy_tmp->host, hostbuf);
7226 <
7227 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
7228 <    }
7229 <  }
7230 < }
7231 <    break;
7232 <
7233 <  case 604:
7234 <
7235 < /* Line 1806 of yacc.c  */
7236 < #line 3058 "conf_parser.y"
6358 >  case 611:
6359 > #line 2920 "conf_parser.y" /* yacc.c:1646  */
6360      {
6361 <  if (conf_parser_ctx.pass == 2)  
7239 <  {
7240 <    MyFree(yy_conf->name);
7241 <    DupString(yy_conf->name, yylval.string);
7242 <  }
6361 >  ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6362   }
6363 + #line 6364 "conf_parser.c" /* yacc.c:1646  */
6364      break;
6365  
6366 <  case 605:
6367 <
7248 < /* Line 1806 of yacc.c  */
7249 < #line 3067 "conf_parser.y"
6366 >  case 612:
6367 > #line 2923 "conf_parser.y" /* yacc.c:1646  */
6368      {
6369 <  if (conf_parser_ctx.pass == 2)
7252 <    yy_aconf->flags = 0;
6369 >  ConfigFileEntry.oper_only_umodes |= UMODE_FARCONNECT;
6370   }
6371 + #line 6372 "conf_parser.c" /* yacc.c:1646  */
6372      break;
6373  
6374 <  case 606:
6375 <
7258 < /* Line 1806 of yacc.c  */
7259 < #line 3071 "conf_parser.y"
6374 >  case 613:
6375 > #line 2928 "conf_parser.y" /* yacc.c:1646  */
6376      {
6377 <  if (conf_parser_ctx.pass == 2)
7262 <  {
7263 <    struct CollectItem *yy_tmp = NULL;
7264 <    dlink_node *ptr, *next_ptr;
7265 <
7266 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
7267 <    {
7268 <      struct AccessItem *new_aconf;
7269 <      struct ConfItem *new_conf;
7270 <
7271 <      yy_tmp = ptr->data;
7272 <      new_conf = make_conf_item(GDENY_TYPE);
7273 <      new_aconf = map_to_conf(new_conf);
7274 <
7275 <      new_aconf->flags = yy_aconf->flags;
7276 <
7277 <      if (yy_conf->name != NULL)
7278 <        DupString(new_conf->name, yy_conf->name);
7279 <      else
7280 <        DupString(new_conf->name, "*");
7281 <      if (yy_aconf->user != NULL)
7282 <         DupString(new_aconf->user, yy_tmp->user);
7283 <      else  
7284 <        DupString(new_aconf->user, "*");
7285 <      if (yy_aconf->host != NULL)
7286 <        DupString(new_aconf->host, yy_tmp->host);
7287 <      else
7288 <        DupString(new_aconf->host, "*");
7289 <
7290 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
7291 <    }
7292 <
7293 <    /*
7294 <     * In case someone has fed us with more than one action= after user/name
7295 <     * which would leak memory  -Michael
7296 <     */
7297 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
7298 <      delete_conf_item(yy_conf);
7299 <
7300 <    yy_conf = make_conf_item(GDENY_TYPE);
7301 <    yy_aconf = map_to_conf(yy_conf);
7302 <  }
6377 >  ConfigFileEntry.min_nonwildcard = (yyvsp[-1].number);
6378   }
6379 + #line 6380 "conf_parser.c" /* yacc.c:1646  */
6380      break;
6381  
6382 <  case 609:
6383 <
7308 < /* Line 1806 of yacc.c  */
7309 < #line 3118 "conf_parser.y"
7310 <    {
7311 <  if (conf_parser_ctx.pass == 2)
7312 <    yy_aconf->flags |= GDENY_REJECT;
7313 < }
7314 <    break;
7315 <
7316 <  case 610:
7317 <
7318 < /* Line 1806 of yacc.c  */
7319 < #line 3122 "conf_parser.y"
6382 >  case 614:
6383 > #line 2933 "conf_parser.y" /* yacc.c:1646  */
6384      {
6385 <  if (conf_parser_ctx.pass == 2)
7322 <    yy_aconf->flags |= GDENY_BLOCK;
6385 >  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[-1].number);
6386   }
6387 + #line 6388 "conf_parser.c" /* yacc.c:1646  */
6388      break;
6389  
6390 <  case 632:
6391 <
7328 < /* Line 1806 of yacc.c  */
7329 < #line 3146 "conf_parser.y"
6390 >  case 615:
6391 > #line 2938 "conf_parser.y" /* yacc.c:1646  */
6392      {
6393 <  ConfigChannel.disable_fake_channels = yylval.number;
7332 < }
7333 <    break;
7334 <
7335 <  case 633:
7336 <
7337 < /* Line 1806 of yacc.c  */
7338 < #line 3151 "conf_parser.y"
7339 <    {
7340 <  ConfigChannel.restrict_channels = yylval.number;
6393 >  ConfigFileEntry.default_floodcount = (yyvsp[-1].number);
6394   }
6395 + #line 6396 "conf_parser.c" /* yacc.c:1646  */
6396      break;
6397  
6398    case 634:
6399 <
7346 < /* Line 1806 of yacc.c  */
7347 < #line 3156 "conf_parser.y"
6399 > #line 2967 "conf_parser.y" /* yacc.c:1646  */
6400      {
6401 <  ConfigChannel.disable_local_channels = yylval.number;
6401 >  ConfigChannel.disable_fake_channels = yylval.number;
6402   }
6403 + #line 6404 "conf_parser.c" /* yacc.c:1646  */
6404      break;
6405  
6406    case 635:
6407 <
7355 < /* Line 1806 of yacc.c  */
7356 < #line 3161 "conf_parser.y"
6407 > #line 2972 "conf_parser.y" /* yacc.c:1646  */
6408      {
6409 <  ConfigChannel.use_except = yylval.number;
6409 >  ConfigChannel.invite_client_count = (yyvsp[-1].number);
6410   }
6411 + #line 6412 "conf_parser.c" /* yacc.c:1646  */
6412      break;
6413  
6414    case 636:
6415 <
7364 < /* Line 1806 of yacc.c  */
7365 < #line 3166 "conf_parser.y"
6415 > #line 2977 "conf_parser.y" /* yacc.c:1646  */
6416      {
6417 <  ConfigChannel.use_invex = yylval.number;
6417 >  ConfigChannel.invite_client_time = (yyvsp[-1].number);
6418   }
6419 + #line 6420 "conf_parser.c" /* yacc.c:1646  */
6420      break;
6421  
6422    case 637:
6423 <
7373 < /* Line 1806 of yacc.c  */
7374 < #line 3171 "conf_parser.y"
6423 > #line 2982 "conf_parser.y" /* yacc.c:1646  */
6424      {
6425 <  ConfigChannel.use_knock = yylval.number;
6425 >  ConfigChannel.knock_client_count = (yyvsp[-1].number);
6426   }
6427 + #line 6428 "conf_parser.c" /* yacc.c:1646  */
6428      break;
6429  
6430    case 638:
6431 <
7382 < /* Line 1806 of yacc.c  */
7383 < #line 3176 "conf_parser.y"
6431 > #line 2987 "conf_parser.y" /* yacc.c:1646  */
6432      {
6433 <  ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6433 >  ConfigChannel.knock_client_time = (yyvsp[-1].number);
6434   }
6435 + #line 6436 "conf_parser.c" /* yacc.c:1646  */
6436      break;
6437  
6438    case 639:
6439 <
7391 < /* Line 1806 of yacc.c  */
7392 < #line 3181 "conf_parser.y"
6439 > #line 2992 "conf_parser.y" /* yacc.c:1646  */
6440      {
6441 <  ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6441 >  ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6442   }
6443 + #line 6444 "conf_parser.c" /* yacc.c:1646  */
6444      break;
6445  
6446    case 640:
6447 <
7400 < /* Line 1806 of yacc.c  */
7401 < #line 3186 "conf_parser.y"
6447 > #line 2997 "conf_parser.y" /* yacc.c:1646  */
6448      {
6449 <  ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6449 >  ConfigChannel.max_channels = (yyvsp[-1].number);
6450   }
6451 + #line 6452 "conf_parser.c" /* yacc.c:1646  */
6452      break;
6453  
6454    case 641:
6455 <
7409 < /* Line 1806 of yacc.c  */
7410 < #line 3191 "conf_parser.y"
6455 > #line 3002 "conf_parser.y" /* yacc.c:1646  */
6456      {
6457 <  ConfigChannel.quiet_on_ban = yylval.number;
6457 >  ConfigChannel.max_bans = (yyvsp[-1].number);
6458   }
6459 + #line 6460 "conf_parser.c" /* yacc.c:1646  */
6460      break;
6461  
6462    case 642:
6463 <
7418 < /* Line 1806 of yacc.c  */
7419 < #line 3196 "conf_parser.y"
6463 > #line 3007 "conf_parser.y" /* yacc.c:1646  */
6464      {
6465 <  ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6465 >  ConfigChannel.default_split_user_count = (yyvsp[-1].number);
6466   }
6467 + #line 6468 "conf_parser.c" /* yacc.c:1646  */
6468      break;
6469  
6470    case 643:
6471 <
7427 < /* Line 1806 of yacc.c  */
7428 < #line 3201 "conf_parser.y"
6471 > #line 3012 "conf_parser.y" /* yacc.c:1646  */
6472      {
6473 <  ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6473 >  ConfigChannel.default_split_server_count = (yyvsp[-1].number);
6474   }
6475 + #line 6476 "conf_parser.c" /* yacc.c:1646  */
6476      break;
6477  
6478    case 644:
6479 <
7436 < /* Line 1806 of yacc.c  */
7437 < #line 3206 "conf_parser.y"
7438 <    {
7439 <  ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
7440 < }
7441 <    break;
7442 <
7443 <  case 645:
7444 <
7445 < /* Line 1806 of yacc.c  */
7446 < #line 3211 "conf_parser.y"
6479 > #line 3017 "conf_parser.y" /* yacc.c:1646  */
6480      {
6481    ConfigChannel.no_create_on_split = yylval.number;
6482   }
6483 + #line 6484 "conf_parser.c" /* yacc.c:1646  */
6484      break;
6485  
6486 <  case 646:
6487 <
7454 < /* Line 1806 of yacc.c  */
7455 < #line 3216 "conf_parser.y"
6486 >  case 645:
6487 > #line 3022 "conf_parser.y" /* yacc.c:1646  */
6488      {
6489    ConfigChannel.no_join_on_split = yylval.number;
6490   }
6491 + #line 6492 "conf_parser.c" /* yacc.c:1646  */
6492      break;
6493  
6494 <  case 647:
6495 <
7463 < /* Line 1806 of yacc.c  */
7464 < #line 3221 "conf_parser.y"
6494 >  case 646:
6495 > #line 3027 "conf_parser.y" /* yacc.c:1646  */
6496      {
6497    GlobalSetOptions.joinfloodcount = yylval.number;
6498   }
6499 + #line 6500 "conf_parser.c" /* yacc.c:1646  */
6500      break;
6501  
6502 <  case 648:
6503 <
7472 < /* Line 1806 of yacc.c  */
7473 < #line 3226 "conf_parser.y"
6502 >  case 647:
6503 > #line 3032 "conf_parser.y" /* yacc.c:1646  */
6504      {
6505 <  GlobalSetOptions.joinfloodtime = yylval.number;
6505 >  GlobalSetOptions.joinfloodtime = (yyvsp[-1].number);
6506   }
6507 + #line 6508 "conf_parser.c" /* yacc.c:1646  */
6508      break;
6509  
6510    case 660:
6511 <
7481 < /* Line 1806 of yacc.c  */
7482 < #line 3245 "conf_parser.y"
6511 > #line 3054 "conf_parser.y" /* yacc.c:1646  */
6512      {
6513    if (conf_parser_ctx.pass == 2)
6514      ConfigServerHide.flatten_links = yylval.number;
6515   }
6516 + #line 6517 "conf_parser.c" /* yacc.c:1646  */
6517      break;
6518  
6519    case 661:
6520 + #line 3060 "conf_parser.y" /* yacc.c:1646  */
6521 +    {
6522 +  if (conf_parser_ctx.pass == 2)
6523 +    ConfigServerHide.disable_remote_commands = yylval.number;
6524 + }
6525 + #line 6526 "conf_parser.c" /* yacc.c:1646  */
6526 +    break;
6527  
6528 < /* Line 1806 of yacc.c  */
6529 < #line 3251 "conf_parser.y"
6528 >  case 662:
6529 > #line 3066 "conf_parser.y" /* yacc.c:1646  */
6530      {
6531    if (conf_parser_ctx.pass == 2)
6532      ConfigServerHide.hide_servers = yylval.number;
6533   }
6534 + #line 6535 "conf_parser.c" /* yacc.c:1646  */
6535      break;
6536  
6537 <  case 662:
6537 >  case 663:
6538 > #line 3072 "conf_parser.y" /* yacc.c:1646  */
6539 >    {
6540 >  if (conf_parser_ctx.pass == 2)
6541 >    ConfigServerHide.hide_services = yylval.number;
6542 > }
6543 > #line 6544 "conf_parser.c" /* yacc.c:1646  */
6544 >    break;
6545  
6546 < /* Line 1806 of yacc.c  */
6547 < #line 3257 "conf_parser.y"
6546 >  case 664:
6547 > #line 3078 "conf_parser.y" /* yacc.c:1646  */
6548      {
6549    if (conf_parser_ctx.pass == 2)
6550    {
6551      MyFree(ConfigServerHide.hidden_name);
6552 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6552 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6553    }
6554   }
6555 + #line 6556 "conf_parser.c" /* yacc.c:1646  */
6556      break;
6557  
6558 <  case 663:
6559 <
7514 < /* Line 1806 of yacc.c  */
7515 < #line 3266 "conf_parser.y"
6558 >  case 665:
6559 > #line 3087 "conf_parser.y" /* yacc.c:1646  */
6560      {
6561    if (conf_parser_ctx.pass == 2)
6562    {
6563 <    if (((yyvsp[(3) - (4)].number) > 0) && ConfigServerHide.links_disabled == 1)
6563 >    if (((yyvsp[-1].number) > 0) && ConfigServerHide.links_disabled == 1)
6564      {
6565 <      eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[(3) - (4)].number));
6565 >      eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[-1].number));
6566        ConfigServerHide.links_disabled = 0;
6567      }
6568  
6569 <    ConfigServerHide.links_delay = (yyvsp[(3) - (4)].number);
6569 >    ConfigServerHide.links_delay = (yyvsp[-1].number);
6570    }
6571   }
6572 + #line 6573 "conf_parser.c" /* yacc.c:1646  */
6573      break;
6574  
6575 <  case 664:
6576 <
7532 < /* Line 1806 of yacc.c  */
7533 < #line 3280 "conf_parser.y"
6575 >  case 666:
6576 > #line 3101 "conf_parser.y" /* yacc.c:1646  */
6577      {
6578    if (conf_parser_ctx.pass == 2)
6579      ConfigServerHide.hidden = yylval.number;
6580   }
6581 + #line 6582 "conf_parser.c" /* yacc.c:1646  */
6582      break;
6583  
6584 <  case 665:
6585 <
7542 < /* Line 1806 of yacc.c  */
7543 < #line 3286 "conf_parser.y"
7544 <    {
7545 <  if (conf_parser_ctx.pass == 2)
7546 <    ConfigServerHide.disable_hidden = yylval.number;
7547 < }
7548 <    break;
7549 <
7550 <  case 666:
7551 <
7552 < /* Line 1806 of yacc.c  */
7553 < #line 3292 "conf_parser.y"
6584 >  case 667:
6585 > #line 3107 "conf_parser.y" /* yacc.c:1646  */
6586      {
6587    if (conf_parser_ctx.pass == 2)
6588      ConfigServerHide.hide_server_ips = yylval.number;
6589   }
6590 + #line 6591 "conf_parser.c" /* yacc.c:1646  */
6591      break;
6592  
6593  
6594 <
7562 < /* Line 1806 of yacc.c  */
7563 < #line 7564 "conf_parser.c"
6594 > #line 6595 "conf_parser.c" /* yacc.c:1646  */
6595        default: break;
6596      }
6597    /* User semantic actions sometimes alter yychar, and that requires
# Line 7582 | Line 6613 | yyreduce:
6613  
6614    *++yyvsp = yyval;
6615  
6616 <  /* Now `shift' the result of the reduction.  Determine what state
6616 >  /* Now 'shift' the result of the reduction.  Determine what state
6617       that goes to, based on the state we popped back to and the rule
6618       number reduced by.  */
6619  
# Line 7597 | Line 6628 | yyreduce:
6628    goto yynewstate;
6629  
6630  
6631 < /*------------------------------------.
6632 < | yyerrlab -- here on detecting error |
6633 < `------------------------------------*/
6631 > /*--------------------------------------.
6632 > | yyerrlab -- here on detecting error.  |
6633 > `--------------------------------------*/
6634   yyerrlab:
6635    /* Make sure we have latest lookahead translation.  See comments at
6636       user semantic actions for why this is necessary.  */
# Line 7650 | Line 6681 | yyerrlab:
6681    if (yyerrstatus == 3)
6682      {
6683        /* If just tried and failed to reuse lookahead token after an
6684 <         error, discard it.  */
6684 >         error, discard it.  */
6685  
6686        if (yychar <= YYEOF)
6687 <        {
6688 <          /* Return failure if at end of input.  */
6689 <          if (yychar == YYEOF)
6690 <            YYABORT;
6691 <        }
6687 >        {
6688 >          /* Return failure if at end of input.  */
6689 >          if (yychar == YYEOF)
6690 >            YYABORT;
6691 >        }
6692        else
6693 <        {
6694 <          yydestruct ("Error: discarding",
6695 <                      yytoken, &yylval);
6696 <          yychar = YYEMPTY;
6697 <        }
6693 >        {
6694 >          yydestruct ("Error: discarding",
6695 >                      yytoken, &yylval);
6696 >          yychar = YYEMPTY;
6697 >        }
6698      }
6699  
6700    /* Else will try to reuse lookahead token after shifting the error
# Line 7682 | Line 6713 | yyerrorlab:
6713    if (/*CONSTCOND*/ 0)
6714       goto yyerrorlab;
6715  
6716 <  /* Do not reclaim the symbols of the rule which action triggered
6716 >  /* Do not reclaim the symbols of the rule whose action triggered
6717       this YYERROR.  */
6718    YYPOPSTACK (yylen);
6719    yylen = 0;
# Line 7695 | Line 6726 | yyerrorlab:
6726   | yyerrlab1 -- common code for both syntax error and YYERROR.  |
6727   `-------------------------------------------------------------*/
6728   yyerrlab1:
6729 <  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6729 >  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6730  
6731    for (;;)
6732      {
6733        yyn = yypact[yystate];
6734        if (!yypact_value_is_default (yyn))
6735 <        {
6736 <          yyn += YYTERROR;
6737 <          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6738 <            {
6739 <              yyn = yytable[yyn];
6740 <              if (0 < yyn)
6741 <                break;
6742 <            }
6743 <        }
6735 >        {
6736 >          yyn += YYTERROR;
6737 >          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6738 >            {
6739 >              yyn = yytable[yyn];
6740 >              if (0 < yyn)
6741 >                break;
6742 >            }
6743 >        }
6744  
6745        /* Pop the current state because it cannot handle the error token.  */
6746        if (yyssp == yyss)
6747 <        YYABORT;
6747 >        YYABORT;
6748  
6749  
6750        yydestruct ("Error: popping",
6751 <                  yystos[yystate], yyvsp);
6751 >                  yystos[yystate], yyvsp);
6752        YYPOPSTACK (1);
6753        yystate = *yyssp;
6754        YY_STACK_PRINT (yyss, yyssp);
6755      }
6756  
6757 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6758    *++yyvsp = yylval;
6759 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6760  
6761  
6762    /* Shift the error token.  */
# Line 7747 | Line 6780 | yyabortlab:
6780    yyresult = 1;
6781    goto yyreturn;
6782  
6783 < #if !defined(yyoverflow) || YYERROR_VERBOSE
6783 > #if !defined yyoverflow || YYERROR_VERBOSE
6784   /*-------------------------------------------------.
6785   | yyexhaustedlab -- memory exhaustion comes here.  |
6786   `-------------------------------------------------*/
# Line 7766 | Line 6799 | yyreturn:
6799        yydestruct ("Cleanup: discarding lookahead",
6800                    yytoken, &yylval);
6801      }
6802 <  /* Do not reclaim the symbols of the rule which action triggered
6802 >  /* Do not reclaim the symbols of the rule whose action triggered
6803       this YYABORT or YYACCEPT.  */
6804    YYPOPSTACK (yylen);
6805    YY_STACK_PRINT (yyss, yyssp);
6806    while (yyssp != yyss)
6807      {
6808        yydestruct ("Cleanup: popping",
6809 <                  yystos[*yyssp], yyvsp);
6809 >                  yystos[*yyssp], yyvsp);
6810        YYPOPSTACK (1);
6811      }
6812   #ifndef yyoverflow
# Line 7784 | Line 6817 | yyreturn:
6817    if (yymsg != yymsgbuf)
6818      YYSTACK_FREE (yymsg);
6819   #endif
6820 <  /* Make sure YYID is used.  */
7788 <  return YYID (yyresult);
6820 >  return yyresult;
6821   }
7790
7791
7792

Comparing:
ircd-hybrid-8/src/conf_parser.c (property svn:keywords), Revision 1401 by michael, Tue May 8 18:58:13 2012 UTC vs.
ircd-hybrid/branches/8.2.x/src/conf_parser.c (property svn:keywords), Revision 4071 by michael, Thu Jun 26 15:42:08 2014 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

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