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

Comparing ircd-hybrid/trunk/src/conf_parser.c (file contents):
Revision 1592 by michael, Sat Oct 27 21:02:32 2012 UTC vs.
Revision 2570 by michael, Mon Nov 18 19:14:02 2013 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 2.6.2.  */
1 > /* A Bison parser, made by GNU Bison 3.0.1.  */
2  
3   /* Bison implementation for Yacc-like parsers in C
4 <  
5 <      Copyright (C) 1984, 1989-1990, 2000-2012 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.6.2"
47 > #define YYBISON_VERSION "3.0.1"
48  
49   /* Skeleton name.  */
50   #define YYSKELETON_NAME "yacc.c"
# Line 62 | Line 62
62  
63  
64   /* Copy the first part of user declarations.  */
65 < /* Line 336 of yacc.c  */
66 < #line 25 "conf_parser.y"
65 > #line 25 "conf_parser.y" /* yacc.c:339  */
66  
67  
68   #define YY_NO_UNPUT
# Line 75 | 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"
82 #include "sprintf_irc.h"
82   #include "memory.h"
83   #include "modules.h"
84   #include "s_serv.h"
# Line 89 | Line 88
88   #include "resv.h"
89   #include "numeric.h"
90   #include "s_user.h"
91 + #include "motd.h"
92  
93   #ifdef HAVE_LIBCRYPTO
94   #include <openssl/rsa.h>
# Line 97 | 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;
103 < static struct ConfItem *yy_conf = NULL;
104 < static struct AccessItem *yy_aconf = NULL;
105 < static struct MatchItem *yy_match_item = NULL;
106 < static struct ClassItem *yy_class = NULL;
107 < static char *yy_class_name = NULL;
108 <
109 < static dlink_list col_conf_list  = { NULL, NULL, 0 };
110 < static unsigned int listener_flags = 0;
111 < static unsigned int regex_ban = 0;
112 < static char userbuf[IRCD_BUFSIZE];
113 < static char hostbuf[IRCD_BUFSIZE];
114 < static char reasonbuf[REASONLEN + 1];
115 < static char gecos_name[REALLEN * 4];
116 < static char lfile[IRCD_BUFSIZE];
117 < static unsigned int ltype = 0;
118 < static unsigned int lsize = 0;
119 < static char *resv_reason = NULL;
120 < static char *listener_address = NULL;
102 > int yylex(void);
103  
104 < struct CollectItem
104 > static struct
105   {
106 <  dlink_node node;
107 <  char *name;
108 <  char *user;
109 <  char *host;
110 <  char *passwd;
111 <  int  port;
112 <  int  flags;
113 < #ifdef HAVE_LIBCRYPTO
114 <  char *rsa_public_key_file;
115 <  RSA *rsa_public_key;
116 < #endif
117 < };
106 >  struct {
107 >    dlink_list list;
108 >  } mask,
109 >    leaf,
110 >    hub;
111 >
112 >  struct {
113 >    char buf[IRCD_BUFSIZE];
114 >  } name,
115 >    user,
116 >    host,
117 >    addr,
118 >    bind,
119 >    file,
120 >    ciph,
121 >    cert,
122 >    rpass,
123 >    spass,
124 >    class;
125 >
126 >  struct {
127 >    unsigned int value;
128 >  } flags,
129 >    modes,
130 >    size,
131 >    type,
132 >    port,
133 >    aftype,
134 >    ping_freq,
135 >    max_perip,
136 >    con_freq,
137 >    min_idle,
138 >    max_idle,
139 >    max_total,
140 >    max_global,
141 >    max_local,
142 >    max_ident,
143 >    max_sendq,
144 >    max_recvq,
145 >    cidr_bitlen_ipv4,
146 >    cidr_bitlen_ipv6,
147 >    number_per_cidr;
148 > } block_state;
149  
150   static void
151 < free_collect_item(struct CollectItem *item)
151 > reset_block_state(void)
152   {
153 <  MyFree(item->name);
154 <  MyFree(item->user);
155 <  MyFree(item->host);
156 <  MyFree(item->passwd);
157 < #ifdef HAVE_LIBCRYPTO
158 <  MyFree(item->rsa_public_key_file);
159 < #endif
160 <  MyFree(item);
153 >  dlink_node *ptr = NULL, *ptr_next = NULL;
154 >
155 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
156 >  {
157 >    MyFree(ptr->data);
158 >    dlinkDelete(ptr, &block_state.mask.list);
159 >    free_dlink_node(ptr);
160 >  }
161 >
162 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
163 >  {
164 >    MyFree(ptr->data);
165 >    dlinkDelete(ptr, &block_state.leaf.list);
166 >    free_dlink_node(ptr);
167 >  }
168 >
169 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
170 >  {
171 >    MyFree(ptr->data);
172 >    dlinkDelete(ptr, &block_state.hub.list);
173 >    free_dlink_node(ptr);
174 >  }
175 >
176 >  memset(&block_state, 0, sizeof(block_state));
177   }
178  
179  
180 < /* Line 336 of yacc.c  */
152 < #line 153 "conf_parser.c"
180 > #line 181 "conf_parser.c" /* yacc.c:339  */
181  
182 < # ifndef YY_NULL
182 > # ifndef YY_NULLPTR
183   #  if defined __cplusplus && 201103L <= __cplusplus
184 < #   define YY_NULL nullptr
184 > #   define YY_NULLPTR nullptr
185   #  else
186 < #   define YY_NULL 0
186 > #   define YY_NULLPTR 0
187   #  endif
188   # endif
189  
# Line 169 | Line 197 | free_collect_item(struct CollectItem *it
197  
198   /* In a future release of Bison, this section will be replaced
199     by #include "y.tab.h".  */
200 < #ifndef YY_Y_TAB_H
201 < # define YY_Y_TAB_H
202 < /* Enabling traces.  */
200 > #ifndef YY_YY_CONF_PARSER_H_INCLUDED
201 > # define YY_YY_CONF_PARSER_H_INCLUDED
202 > /* Debug traces.  */
203   #ifndef YYDEBUG
204   # define YYDEBUG 0
205   #endif
# Line 179 | Line 207 | free_collect_item(struct CollectItem *it
207   extern int yydebug;
208   #endif
209  
210 < /* Tokens.  */
210 > /* Token type.  */
211   #ifndef YYTOKENTYPE
212   # define YYTOKENTYPE
213 <   /* Put the tokens into the symbol table, so that GDB and other debuggers
214 <      know about them.  */
215 <   enum yytokentype {
216 <     ACCEPT_PASSWORD = 258,
217 <     ADMIN = 259,
218 <     AFTYPE = 260,
219 <     ANTI_NICK_FLOOD = 261,
220 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
221 <     AUTOCONN = 263,
222 <     BYTES = 264,
223 <     KBYTES = 265,
224 <     MBYTES = 266,
225 <     CALLER_ID_WAIT = 267,
226 <     CAN_FLOOD = 268,
227 <     CHANNEL = 269,
228 <     CIDR_BITLEN_IPV4 = 270,
229 <     CIDR_BITLEN_IPV6 = 271,
230 <     CLASS = 272,
231 <     CONNECT = 273,
232 <     CONNECTFREQ = 274,
233 <     DEFAULT_FLOODCOUNT = 275,
234 <     DEFAULT_SPLIT_SERVER_COUNT = 276,
235 <     DEFAULT_SPLIT_USER_COUNT = 277,
236 <     DENY = 278,
237 <     DESCRIPTION = 279,
238 <     DIE = 280,
239 <     DISABLE_AUTH = 281,
240 <     DISABLE_FAKE_CHANNELS = 282,
241 <     DISABLE_REMOTE_COMMANDS = 283,
242 <     DOTS_IN_IDENT = 284,
243 <     EGDPOOL_PATH = 285,
244 <     EMAIL = 286,
245 <     ENCRYPTED = 287,
246 <     EXCEED_LIMIT = 288,
247 <     EXEMPT = 289,
248 <     FAILED_OPER_NOTICE = 290,
249 <     IRCD_FLAGS = 291,
250 <     FLATTEN_LINKS = 292,
251 <     GECOS = 293,
252 <     GENERAL = 294,
253 <     GLINE = 295,
254 <     GLINE_DURATION = 296,
255 <     GLINE_ENABLE = 297,
256 <     GLINE_EXEMPT = 298,
257 <     GLINE_REQUEST_DURATION = 299,
258 <     GLINE_MIN_CIDR = 300,
259 <     GLINE_MIN_CIDR6 = 301,
260 <     GLOBAL_KILL = 302,
261 <     IRCD_AUTH = 303,
262 <     NEED_IDENT = 304,
263 <     HAVENT_READ_CONF = 305,
264 <     HIDDEN = 306,
265 <     HIDDEN_NAME = 307,
266 <     HIDE_SERVER_IPS = 308,
267 <     HIDE_SERVERS = 309,
268 <     HIDE_SPOOF_IPS = 310,
269 <     HOST = 311,
270 <     HUB = 312,
271 <     HUB_MASK = 313,
272 <     IGNORE_BOGUS_TS = 314,
273 <     INVISIBLE_ON_CONNECT = 315,
274 <     IP = 316,
275 <     KILL = 317,
276 <     KILL_CHASE_TIME_LIMIT = 318,
277 <     KLINE = 319,
278 <     KLINE_EXEMPT = 320,
279 <     KNOCK_DELAY = 321,
280 <     KNOCK_DELAY_CHANNEL = 322,
281 <     LEAF_MASK = 323,
282 <     LINKS_DELAY = 324,
283 <     LISTEN = 325,
284 <     T_LOG = 326,
285 <     MAX_ACCEPT = 327,
286 <     MAX_BANS = 328,
287 <     MAX_CHANS_PER_OPER = 329,
288 <     MAX_CHANS_PER_USER = 330,
289 <     MAX_GLOBAL = 331,
290 <     MAX_IDENT = 332,
291 <     MAX_LOCAL = 333,
292 <     MAX_NICK_CHANGES = 334,
293 <     MAX_NICK_TIME = 335,
294 <     MAX_NUMBER = 336,
295 <     MAX_TARGETS = 337,
296 <     MAX_WATCH = 338,
297 <     MESSAGE_LOCALE = 339,
298 <     MIN_NONWILDCARD = 340,
299 <     MIN_NONWILDCARD_SIMPLE = 341,
300 <     MODULE = 342,
301 <     MODULES = 343,
302 <     NAME = 344,
303 <     NEED_PASSWORD = 345,
304 <     NETWORK_DESC = 346,
305 <     NETWORK_NAME = 347,
306 <     NICK = 348,
307 <     NICK_CHANGES = 349,
308 <     NO_CREATE_ON_SPLIT = 350,
309 <     NO_JOIN_ON_SPLIT = 351,
310 <     NO_OPER_FLOOD = 352,
311 <     NO_TILDE = 353,
312 <     NUMBER = 354,
313 <     NUMBER_PER_CIDR = 355,
314 <     NUMBER_PER_IP = 356,
315 <     OPERATOR = 357,
316 <     OPERS_BYPASS_CALLERID = 358,
317 <     OPER_ONLY_UMODES = 359,
318 <     OPER_PASS_RESV = 360,
319 <     OPER_SPY_T = 361,
320 <     OPER_UMODES = 362,
321 <     JOIN_FLOOD_COUNT = 363,
322 <     JOIN_FLOOD_TIME = 364,
323 <     PACE_WAIT = 365,
324 <     PACE_WAIT_SIMPLE = 366,
325 <     PASSWORD = 367,
326 <     PATH = 368,
327 <     PING_COOKIE = 369,
328 <     PING_TIME = 370,
329 <     PING_WARNING = 371,
330 <     PORT = 372,
331 <     QSTRING = 373,
332 <     QUIET_ON_BAN = 374,
333 <     REASON = 375,
334 <     REDIRPORT = 376,
335 <     REDIRSERV = 377,
336 <     REGEX_T = 378,
337 <     REHASH = 379,
338 <     REMOTE = 380,
339 <     REMOTEBAN = 381,
340 <     RESTRICT_CHANNELS = 382,
341 <     RSA_PRIVATE_KEY_FILE = 383,
342 <     RSA_PUBLIC_KEY_FILE = 384,
343 <     SSL_CERTIFICATE_FILE = 385,
344 <     SSL_DH_PARAM_FILE = 386,
345 <     T_SSL_CLIENT_METHOD = 387,
346 <     T_SSL_SERVER_METHOD = 388,
347 <     T_SSLV3 = 389,
348 <     T_TLSV1 = 390,
349 <     RESV = 391,
350 <     RESV_EXEMPT = 392,
351 <     SECONDS = 393,
352 <     MINUTES = 394,
353 <     HOURS = 395,
354 <     DAYS = 396,
355 <     WEEKS = 397,
356 <     SENDQ = 398,
357 <     SEND_PASSWORD = 399,
358 <     SERVERHIDE = 400,
359 <     SERVERINFO = 401,
360 <     IRCD_SID = 402,
361 <     TKLINE_EXPIRE_NOTICES = 403,
362 <     T_SHARED = 404,
363 <     T_CLUSTER = 405,
364 <     TYPE = 406,
365 <     SHORT_MOTD = 407,
366 <     SPOOF = 408,
367 <     SPOOF_NOTICE = 409,
368 <     STATS_E_DISABLED = 410,
369 <     STATS_I_OPER_ONLY = 411,
370 <     STATS_K_OPER_ONLY = 412,
371 <     STATS_O_OPER_ONLY = 413,
372 <     STATS_P_OPER_ONLY = 414,
373 <     TBOOL = 415,
374 <     TMASKED = 416,
375 <     TS_MAX_DELTA = 417,
376 <     TS_WARN_DELTA = 418,
377 <     TWODOTS = 419,
378 <     T_ALL = 420,
379 <     T_BOTS = 421,
380 <     T_SOFTCALLERID = 422,
381 <     T_CALLERID = 423,
382 <     T_CCONN = 424,
383 <     T_CCONN_FULL = 425,
384 <     T_SSL_CIPHER_LIST = 426,
385 <     T_DEAF = 427,
386 <     T_DEBUG = 428,
387 <     T_DLINE = 429,
388 <     T_EXTERNAL = 430,
389 <     T_FULL = 431,
390 <     T_INVISIBLE = 432,
391 <     T_IPV4 = 433,
392 <     T_IPV6 = 434,
393 <     T_LOCOPS = 435,
394 <     T_MAX_CLIENTS = 436,
395 <     T_NCHANGE = 437,
396 <     T_OPERWALL = 438,
397 <     T_RECVQ = 439,
398 <     T_REJ = 440,
399 <     T_SERVER = 441,
400 <     T_SERVNOTICE = 442,
401 <     T_SET = 443,
402 <     T_SKILL = 444,
403 <     T_SPY = 445,
404 <     T_SSL = 446,
405 <     T_UMODES = 447,
406 <     T_UNAUTH = 448,
407 <     T_UNDLINE = 449,
408 <     T_UNLIMITED = 450,
409 <     T_UNRESV = 451,
410 <     T_UNXLINE = 452,
411 <     T_GLOBOPS = 453,
412 <     T_WALLOP = 454,
413 <     T_RESTART = 455,
414 <     T_SERVICE = 456,
415 <     T_SERVICES_NAME = 457,
416 <     THROTTLE_TIME = 458,
417 <     TRUE_NO_OPER_FLOOD = 459,
418 <     UNKLINE = 460,
419 <     USER = 461,
420 <     USE_EGD = 462,
421 <     USE_LOGGING = 463,
422 <     VHOST = 464,
423 <     VHOST6 = 465,
424 <     XLINE = 466,
425 <     WARN_NO_NLINE = 467,
426 <     T_SIZE = 468,
427 <     T_FILE = 469
428 <   };
213 >  enum yytokentype
214 >  {
215 >    ACCEPT_PASSWORD = 258,
216 >    ADMIN = 259,
217 >    AFTYPE = 260,
218 >    ANTI_NICK_FLOOD = 261,
219 >    ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
220 >    AUTOCONN = 263,
221 >    BYTES = 264,
222 >    KBYTES = 265,
223 >    MBYTES = 266,
224 >    CALLER_ID_WAIT = 267,
225 >    CAN_FLOOD = 268,
226 >    CHANNEL = 269,
227 >    CIDR_BITLEN_IPV4 = 270,
228 >    CIDR_BITLEN_IPV6 = 271,
229 >    CLASS = 272,
230 >    CONNECT = 273,
231 >    CONNECTFREQ = 274,
232 >    CYCLE_ON_HOST_CHANGE = 275,
233 >    DEFAULT_FLOODCOUNT = 276,
234 >    DEFAULT_SPLIT_SERVER_COUNT = 277,
235 >    DEFAULT_SPLIT_USER_COUNT = 278,
236 >    DENY = 279,
237 >    DESCRIPTION = 280,
238 >    DIE = 281,
239 >    DISABLE_AUTH = 282,
240 >    DISABLE_FAKE_CHANNELS = 283,
241 >    DISABLE_REMOTE_COMMANDS = 284,
242 >    DOTS_IN_IDENT = 285,
243 >    EGDPOOL_PATH = 286,
244 >    EMAIL = 287,
245 >    ENCRYPTED = 288,
246 >    EXCEED_LIMIT = 289,
247 >    EXEMPT = 290,
248 >    FAILED_OPER_NOTICE = 291,
249 >    FLATTEN_LINKS = 292,
250 >    GECOS = 293,
251 >    GENERAL = 294,
252 >    GLINE = 295,
253 >    GLINE_DURATION = 296,
254 >    GLINE_ENABLE = 297,
255 >    GLINE_EXEMPT = 298,
256 >    GLINE_MIN_CIDR = 299,
257 >    GLINE_MIN_CIDR6 = 300,
258 >    GLINE_REQUEST_DURATION = 301,
259 >    GLOBAL_KILL = 302,
260 >    HAVENT_READ_CONF = 303,
261 >    HIDDEN = 304,
262 >    HIDDEN_NAME = 305,
263 >    HIDE_IDLE_FROM_OPERS = 306,
264 >    HIDE_SERVER_IPS = 307,
265 >    HIDE_SERVERS = 308,
266 >    HIDE_SERVICES = 309,
267 >    HIDE_SPOOF_IPS = 310,
268 >    HOST = 311,
269 >    HUB = 312,
270 >    HUB_MASK = 313,
271 >    IGNORE_BOGUS_TS = 314,
272 >    INVISIBLE_ON_CONNECT = 315,
273 >    IP = 316,
274 >    IRCD_AUTH = 317,
275 >    IRCD_FLAGS = 318,
276 >    IRCD_SID = 319,
277 >    JOIN_FLOOD_COUNT = 320,
278 >    JOIN_FLOOD_TIME = 321,
279 >    KILL = 322,
280 >    KILL_CHASE_TIME_LIMIT = 323,
281 >    KLINE = 324,
282 >    KLINE_EXEMPT = 325,
283 >    KNOCK_DELAY = 326,
284 >    KNOCK_DELAY_CHANNEL = 327,
285 >    LEAF_MASK = 328,
286 >    LINKS_DELAY = 329,
287 >    LISTEN = 330,
288 >    MASK = 331,
289 >    MAX_ACCEPT = 332,
290 >    MAX_BANS = 333,
291 >    MAX_CHANS_PER_OPER = 334,
292 >    MAX_CHANS_PER_USER = 335,
293 >    MAX_GLOBAL = 336,
294 >    MAX_IDENT = 337,
295 >    MAX_IDLE = 338,
296 >    MAX_LOCAL = 339,
297 >    MAX_NICK_CHANGES = 340,
298 >    MAX_NICK_LENGTH = 341,
299 >    MAX_NICK_TIME = 342,
300 >    MAX_NUMBER = 343,
301 >    MAX_TARGETS = 344,
302 >    MAX_TOPIC_LENGTH = 345,
303 >    MAX_WATCH = 346,
304 >    MIN_IDLE = 347,
305 >    MIN_NONWILDCARD = 348,
306 >    MIN_NONWILDCARD_SIMPLE = 349,
307 >    MODULE = 350,
308 >    MODULES = 351,
309 >    MOTD = 352,
310 >    NAME = 353,
311 >    NEED_IDENT = 354,
312 >    NEED_PASSWORD = 355,
313 >    NETWORK_DESC = 356,
314 >    NETWORK_NAME = 357,
315 >    NICK = 358,
316 >    NO_CREATE_ON_SPLIT = 359,
317 >    NO_JOIN_ON_SPLIT = 360,
318 >    NO_OPER_FLOOD = 361,
319 >    NO_TILDE = 362,
320 >    NUMBER = 363,
321 >    NUMBER_PER_CIDR = 364,
322 >    NUMBER_PER_IP = 365,
323 >    OPER_ONLY_UMODES = 366,
324 >    OPER_PASS_RESV = 367,
325 >    OPER_UMODES = 368,
326 >    OPERATOR = 369,
327 >    OPERS_BYPASS_CALLERID = 370,
328 >    PACE_WAIT = 371,
329 >    PACE_WAIT_SIMPLE = 372,
330 >    PASSWORD = 373,
331 >    PATH = 374,
332 >    PING_COOKIE = 375,
333 >    PING_TIME = 376,
334 >    PORT = 377,
335 >    QSTRING = 378,
336 >    RANDOM_IDLE = 379,
337 >    REASON = 380,
338 >    REDIRPORT = 381,
339 >    REDIRSERV = 382,
340 >    REHASH = 383,
341 >    REMOTE = 384,
342 >    REMOTEBAN = 385,
343 >    RESV = 386,
344 >    RESV_EXEMPT = 387,
345 >    RSA_PRIVATE_KEY_FILE = 388,
346 >    RSA_PUBLIC_KEY_FILE = 389,
347 >    SECONDS = 390,
348 >    MINUTES = 391,
349 >    HOURS = 392,
350 >    DAYS = 393,
351 >    WEEKS = 394,
352 >    MONTHS = 395,
353 >    YEARS = 396,
354 >    SEND_PASSWORD = 397,
355 >    SENDQ = 398,
356 >    SERVERHIDE = 399,
357 >    SERVERINFO = 400,
358 >    SHORT_MOTD = 401,
359 >    SPOOF = 402,
360 >    SPOOF_NOTICE = 403,
361 >    SQUIT = 404,
362 >    SSL_CERTIFICATE_FILE = 405,
363 >    SSL_CERTIFICATE_FINGERPRINT = 406,
364 >    SSL_CONNECTION_REQUIRED = 407,
365 >    SSL_DH_PARAM_FILE = 408,
366 >    STATS_E_DISABLED = 409,
367 >    STATS_I_OPER_ONLY = 410,
368 >    STATS_K_OPER_ONLY = 411,
369 >    STATS_O_OPER_ONLY = 412,
370 >    STATS_P_OPER_ONLY = 413,
371 >    STATS_U_OPER_ONLY = 414,
372 >    T_ALL = 415,
373 >    T_BOTS = 416,
374 >    T_CALLERID = 417,
375 >    T_CCONN = 418,
376 >    T_CLUSTER = 419,
377 >    T_DEAF = 420,
378 >    T_DEBUG = 421,
379 >    T_DLINE = 422,
380 >    T_EXTERNAL = 423,
381 >    T_FARCONNECT = 424,
382 >    T_FILE = 425,
383 >    T_FULL = 426,
384 >    T_GLOBOPS = 427,
385 >    T_INVISIBLE = 428,
386 >    T_IPV4 = 429,
387 >    T_IPV6 = 430,
388 >    T_LOCOPS = 431,
389 >    T_LOG = 432,
390 >    T_MAX_CLIENTS = 433,
391 >    T_NCHANGE = 434,
392 >    T_NONONREG = 435,
393 >    T_OPERWALL = 436,
394 >    T_RECVQ = 437,
395 >    T_REJ = 438,
396 >    T_RESTART = 439,
397 >    T_SERVER = 440,
398 >    T_SERVICE = 441,
399 >    T_SERVICES_NAME = 442,
400 >    T_SERVNOTICE = 443,
401 >    T_SET = 444,
402 >    T_SHARED = 445,
403 >    T_SIZE = 446,
404 >    T_SKILL = 447,
405 >    T_SOFTCALLERID = 448,
406 >    T_SPY = 449,
407 >    T_SSL = 450,
408 >    T_SSL_CIPHER_LIST = 451,
409 >    T_SSL_CLIENT_METHOD = 452,
410 >    T_SSL_SERVER_METHOD = 453,
411 >    T_SSLV3 = 454,
412 >    T_TLSV1 = 455,
413 >    T_UMODES = 456,
414 >    T_UNAUTH = 457,
415 >    T_UNDLINE = 458,
416 >    T_UNLIMITED = 459,
417 >    T_UNRESV = 460,
418 >    T_UNXLINE = 461,
419 >    T_WALLOP = 462,
420 >    T_WALLOPS = 463,
421 >    T_WEBIRC = 464,
422 >    TBOOL = 465,
423 >    THROTTLE_TIME = 466,
424 >    TKLINE_EXPIRE_NOTICES = 467,
425 >    TMASKED = 468,
426 >    TRUE_NO_OPER_FLOOD = 469,
427 >    TS_MAX_DELTA = 470,
428 >    TS_WARN_DELTA = 471,
429 >    TWODOTS = 472,
430 >    TYPE = 473,
431 >    UNKLINE = 474,
432 >    USE_EGD = 475,
433 >    USE_LOGGING = 476,
434 >    USER = 477,
435 >    VHOST = 478,
436 >    VHOST6 = 479,
437 >    WARN_NO_NLINE = 480,
438 >    XLINE = 481
439 >  };
440   #endif
441   /* Tokens.  */
442   #define ACCEPT_PASSWORD 258
# Line 417 | Line 456 | extern int yydebug;
456   #define CLASS 272
457   #define CONNECT 273
458   #define CONNECTFREQ 274
459 < #define DEFAULT_FLOODCOUNT 275
460 < #define DEFAULT_SPLIT_SERVER_COUNT 276
461 < #define DEFAULT_SPLIT_USER_COUNT 277
462 < #define DENY 278
463 < #define DESCRIPTION 279
464 < #define DIE 280
465 < #define DISABLE_AUTH 281
466 < #define DISABLE_FAKE_CHANNELS 282
467 < #define DISABLE_REMOTE_COMMANDS 283
468 < #define DOTS_IN_IDENT 284
469 < #define EGDPOOL_PATH 285
470 < #define EMAIL 286
471 < #define ENCRYPTED 287
472 < #define EXCEED_LIMIT 288
473 < #define EXEMPT 289
474 < #define FAILED_OPER_NOTICE 290
475 < #define IRCD_FLAGS 291
459 > #define CYCLE_ON_HOST_CHANGE 275
460 > #define DEFAULT_FLOODCOUNT 276
461 > #define DEFAULT_SPLIT_SERVER_COUNT 277
462 > #define DEFAULT_SPLIT_USER_COUNT 278
463 > #define DENY 279
464 > #define DESCRIPTION 280
465 > #define DIE 281
466 > #define DISABLE_AUTH 282
467 > #define DISABLE_FAKE_CHANNELS 283
468 > #define DISABLE_REMOTE_COMMANDS 284
469 > #define DOTS_IN_IDENT 285
470 > #define EGDPOOL_PATH 286
471 > #define EMAIL 287
472 > #define ENCRYPTED 288
473 > #define EXCEED_LIMIT 289
474 > #define EXEMPT 290
475 > #define FAILED_OPER_NOTICE 291
476   #define FLATTEN_LINKS 292
477   #define GECOS 293
478   #define GENERAL 294
# Line 441 | Line 480 | extern int yydebug;
480   #define GLINE_DURATION 296
481   #define GLINE_ENABLE 297
482   #define GLINE_EXEMPT 298
483 < #define GLINE_REQUEST_DURATION 299
484 < #define GLINE_MIN_CIDR 300
485 < #define GLINE_MIN_CIDR6 301
483 > #define GLINE_MIN_CIDR 299
484 > #define GLINE_MIN_CIDR6 300
485 > #define GLINE_REQUEST_DURATION 301
486   #define GLOBAL_KILL 302
487 < #define IRCD_AUTH 303
488 < #define NEED_IDENT 304
489 < #define HAVENT_READ_CONF 305
490 < #define HIDDEN 306
491 < #define HIDDEN_NAME 307
492 < #define HIDE_SERVER_IPS 308
493 < #define HIDE_SERVERS 309
487 > #define HAVENT_READ_CONF 303
488 > #define HIDDEN 304
489 > #define HIDDEN_NAME 305
490 > #define HIDE_IDLE_FROM_OPERS 306
491 > #define HIDE_SERVER_IPS 307
492 > #define HIDE_SERVERS 308
493 > #define HIDE_SERVICES 309
494   #define HIDE_SPOOF_IPS 310
495   #define HOST 311
496   #define HUB 312
# Line 459 | Line 498 | extern int yydebug;
498   #define IGNORE_BOGUS_TS 314
499   #define INVISIBLE_ON_CONNECT 315
500   #define IP 316
501 < #define KILL 317
502 < #define KILL_CHASE_TIME_LIMIT 318
503 < #define KLINE 319
504 < #define KLINE_EXEMPT 320
505 < #define KNOCK_DELAY 321
506 < #define KNOCK_DELAY_CHANNEL 322
507 < #define LEAF_MASK 323
508 < #define LINKS_DELAY 324
509 < #define LISTEN 325
510 < #define T_LOG 326
511 < #define MAX_ACCEPT 327
512 < #define MAX_BANS 328
513 < #define MAX_CHANS_PER_OPER 329
514 < #define MAX_CHANS_PER_USER 330
515 < #define MAX_GLOBAL 331
516 < #define MAX_IDENT 332
517 < #define MAX_LOCAL 333
518 < #define MAX_NICK_CHANGES 334
519 < #define MAX_NICK_TIME 335
520 < #define MAX_NUMBER 336
521 < #define MAX_TARGETS 337
522 < #define MAX_WATCH 338
523 < #define MESSAGE_LOCALE 339
524 < #define MIN_NONWILDCARD 340
525 < #define MIN_NONWILDCARD_SIMPLE 341
526 < #define MODULE 342
527 < #define MODULES 343
528 < #define NAME 344
529 < #define NEED_PASSWORD 345
530 < #define NETWORK_DESC 346
531 < #define NETWORK_NAME 347
532 < #define NICK 348
533 < #define NICK_CHANGES 349
534 < #define NO_CREATE_ON_SPLIT 350
535 < #define NO_JOIN_ON_SPLIT 351
536 < #define NO_OPER_FLOOD 352
537 < #define NO_TILDE 353
538 < #define NUMBER 354
539 < #define NUMBER_PER_CIDR 355
540 < #define NUMBER_PER_IP 356
541 < #define OPERATOR 357
542 < #define OPERS_BYPASS_CALLERID 358
543 < #define OPER_ONLY_UMODES 359
544 < #define OPER_PASS_RESV 360
545 < #define OPER_SPY_T 361
546 < #define OPER_UMODES 362
547 < #define JOIN_FLOOD_COUNT 363
548 < #define JOIN_FLOOD_TIME 364
549 < #define PACE_WAIT 365
550 < #define PACE_WAIT_SIMPLE 366
551 < #define PASSWORD 367
552 < #define PATH 368
553 < #define PING_COOKIE 369
554 < #define PING_TIME 370
555 < #define PING_WARNING 371
556 < #define PORT 372
557 < #define QSTRING 373
558 < #define QUIET_ON_BAN 374
559 < #define REASON 375
560 < #define REDIRPORT 376
561 < #define REDIRSERV 377
562 < #define REGEX_T 378
563 < #define REHASH 379
564 < #define REMOTE 380
565 < #define REMOTEBAN 381
566 < #define RESTRICT_CHANNELS 382
567 < #define RSA_PRIVATE_KEY_FILE 383
568 < #define RSA_PUBLIC_KEY_FILE 384
569 < #define SSL_CERTIFICATE_FILE 385
570 < #define SSL_DH_PARAM_FILE 386
571 < #define T_SSL_CLIENT_METHOD 387
572 < #define T_SSL_SERVER_METHOD 388
573 < #define T_SSLV3 389
574 < #define T_TLSV1 390
575 < #define RESV 391
576 < #define RESV_EXEMPT 392
577 < #define SECONDS 393
578 < #define MINUTES 394
579 < #define HOURS 395
580 < #define DAYS 396
581 < #define WEEKS 397
501 > #define IRCD_AUTH 317
502 > #define IRCD_FLAGS 318
503 > #define IRCD_SID 319
504 > #define JOIN_FLOOD_COUNT 320
505 > #define JOIN_FLOOD_TIME 321
506 > #define KILL 322
507 > #define KILL_CHASE_TIME_LIMIT 323
508 > #define KLINE 324
509 > #define KLINE_EXEMPT 325
510 > #define KNOCK_DELAY 326
511 > #define KNOCK_DELAY_CHANNEL 327
512 > #define LEAF_MASK 328
513 > #define LINKS_DELAY 329
514 > #define LISTEN 330
515 > #define MASK 331
516 > #define MAX_ACCEPT 332
517 > #define MAX_BANS 333
518 > #define MAX_CHANS_PER_OPER 334
519 > #define MAX_CHANS_PER_USER 335
520 > #define MAX_GLOBAL 336
521 > #define MAX_IDENT 337
522 > #define MAX_IDLE 338
523 > #define MAX_LOCAL 339
524 > #define MAX_NICK_CHANGES 340
525 > #define MAX_NICK_LENGTH 341
526 > #define MAX_NICK_TIME 342
527 > #define MAX_NUMBER 343
528 > #define MAX_TARGETS 344
529 > #define MAX_TOPIC_LENGTH 345
530 > #define MAX_WATCH 346
531 > #define MIN_IDLE 347
532 > #define MIN_NONWILDCARD 348
533 > #define MIN_NONWILDCARD_SIMPLE 349
534 > #define MODULE 350
535 > #define MODULES 351
536 > #define MOTD 352
537 > #define NAME 353
538 > #define NEED_IDENT 354
539 > #define NEED_PASSWORD 355
540 > #define NETWORK_DESC 356
541 > #define NETWORK_NAME 357
542 > #define NICK 358
543 > #define NO_CREATE_ON_SPLIT 359
544 > #define NO_JOIN_ON_SPLIT 360
545 > #define NO_OPER_FLOOD 361
546 > #define NO_TILDE 362
547 > #define NUMBER 363
548 > #define NUMBER_PER_CIDR 364
549 > #define NUMBER_PER_IP 365
550 > #define OPER_ONLY_UMODES 366
551 > #define OPER_PASS_RESV 367
552 > #define OPER_UMODES 368
553 > #define OPERATOR 369
554 > #define OPERS_BYPASS_CALLERID 370
555 > #define PACE_WAIT 371
556 > #define PACE_WAIT_SIMPLE 372
557 > #define PASSWORD 373
558 > #define PATH 374
559 > #define PING_COOKIE 375
560 > #define PING_TIME 376
561 > #define PORT 377
562 > #define QSTRING 378
563 > #define RANDOM_IDLE 379
564 > #define REASON 380
565 > #define REDIRPORT 381
566 > #define REDIRSERV 382
567 > #define REHASH 383
568 > #define REMOTE 384
569 > #define REMOTEBAN 385
570 > #define RESV 386
571 > #define RESV_EXEMPT 387
572 > #define RSA_PRIVATE_KEY_FILE 388
573 > #define RSA_PUBLIC_KEY_FILE 389
574 > #define SECONDS 390
575 > #define MINUTES 391
576 > #define HOURS 392
577 > #define DAYS 393
578 > #define WEEKS 394
579 > #define MONTHS 395
580 > #define YEARS 396
581 > #define SEND_PASSWORD 397
582   #define SENDQ 398
583 < #define SEND_PASSWORD 399
584 < #define SERVERHIDE 400
585 < #define SERVERINFO 401
586 < #define IRCD_SID 402
587 < #define TKLINE_EXPIRE_NOTICES 403
588 < #define T_SHARED 404
589 < #define T_CLUSTER 405
590 < #define TYPE 406
591 < #define SHORT_MOTD 407
592 < #define SPOOF 408
593 < #define SPOOF_NOTICE 409
594 < #define STATS_E_DISABLED 410
595 < #define STATS_I_OPER_ONLY 411
596 < #define STATS_K_OPER_ONLY 412
597 < #define STATS_O_OPER_ONLY 413
598 < #define STATS_P_OPER_ONLY 414
599 < #define TBOOL 415
600 < #define TMASKED 416
601 < #define TS_MAX_DELTA 417
602 < #define TS_WARN_DELTA 418
603 < #define TWODOTS 419
604 < #define T_ALL 420
605 < #define T_BOTS 421
606 < #define T_SOFTCALLERID 422
607 < #define T_CALLERID 423
608 < #define T_CCONN 424
609 < #define T_CCONN_FULL 425
610 < #define T_SSL_CIPHER_LIST 426
611 < #define T_DEAF 427
612 < #define T_DEBUG 428
613 < #define T_DLINE 429
614 < #define T_EXTERNAL 430
615 < #define T_FULL 431
616 < #define T_INVISIBLE 432
617 < #define T_IPV4 433
618 < #define T_IPV6 434
619 < #define T_LOCOPS 435
620 < #define T_MAX_CLIENTS 436
621 < #define T_NCHANGE 437
622 < #define T_OPERWALL 438
623 < #define T_RECVQ 439
624 < #define T_REJ 440
625 < #define T_SERVER 441
626 < #define T_SERVNOTICE 442
627 < #define T_SET 443
628 < #define T_SKILL 444
629 < #define T_SPY 445
630 < #define T_SSL 446
631 < #define T_UMODES 447
632 < #define T_UNAUTH 448
633 < #define T_UNDLINE 449
634 < #define T_UNLIMITED 450
635 < #define T_UNRESV 451
636 < #define T_UNXLINE 452
637 < #define T_GLOBOPS 453
638 < #define T_WALLOP 454
639 < #define T_RESTART 455
640 < #define T_SERVICE 456
641 < #define T_SERVICES_NAME 457
642 < #define THROTTLE_TIME 458
643 < #define TRUE_NO_OPER_FLOOD 459
644 < #define UNKLINE 460
645 < #define USER 461
646 < #define USE_EGD 462
647 < #define USE_LOGGING 463
648 < #define VHOST 464
649 < #define VHOST6 465
650 < #define XLINE 466
651 < #define WARN_NO_NLINE 467
652 < #define T_SIZE 468
653 < #define T_FILE 469
654 <
655 <
583 > #define SERVERHIDE 399
584 > #define SERVERINFO 400
585 > #define SHORT_MOTD 401
586 > #define SPOOF 402
587 > #define SPOOF_NOTICE 403
588 > #define SQUIT 404
589 > #define SSL_CERTIFICATE_FILE 405
590 > #define SSL_CERTIFICATE_FINGERPRINT 406
591 > #define SSL_CONNECTION_REQUIRED 407
592 > #define SSL_DH_PARAM_FILE 408
593 > #define STATS_E_DISABLED 409
594 > #define STATS_I_OPER_ONLY 410
595 > #define STATS_K_OPER_ONLY 411
596 > #define STATS_O_OPER_ONLY 412
597 > #define STATS_P_OPER_ONLY 413
598 > #define STATS_U_OPER_ONLY 414
599 > #define T_ALL 415
600 > #define T_BOTS 416
601 > #define T_CALLERID 417
602 > #define T_CCONN 418
603 > #define T_CLUSTER 419
604 > #define T_DEAF 420
605 > #define T_DEBUG 421
606 > #define T_DLINE 422
607 > #define T_EXTERNAL 423
608 > #define T_FARCONNECT 424
609 > #define T_FILE 425
610 > #define T_FULL 426
611 > #define T_GLOBOPS 427
612 > #define T_INVISIBLE 428
613 > #define T_IPV4 429
614 > #define T_IPV6 430
615 > #define T_LOCOPS 431
616 > #define T_LOG 432
617 > #define T_MAX_CLIENTS 433
618 > #define T_NCHANGE 434
619 > #define T_NONONREG 435
620 > #define T_OPERWALL 436
621 > #define T_RECVQ 437
622 > #define T_REJ 438
623 > #define T_RESTART 439
624 > #define T_SERVER 440
625 > #define T_SERVICE 441
626 > #define T_SERVICES_NAME 442
627 > #define T_SERVNOTICE 443
628 > #define T_SET 444
629 > #define T_SHARED 445
630 > #define T_SIZE 446
631 > #define T_SKILL 447
632 > #define T_SOFTCALLERID 448
633 > #define T_SPY 449
634 > #define T_SSL 450
635 > #define T_SSL_CIPHER_LIST 451
636 > #define T_SSL_CLIENT_METHOD 452
637 > #define T_SSL_SERVER_METHOD 453
638 > #define T_SSLV3 454
639 > #define T_TLSV1 455
640 > #define T_UMODES 456
641 > #define T_UNAUTH 457
642 > #define T_UNDLINE 458
643 > #define T_UNLIMITED 459
644 > #define T_UNRESV 460
645 > #define T_UNXLINE 461
646 > #define T_WALLOP 462
647 > #define T_WALLOPS 463
648 > #define T_WEBIRC 464
649 > #define TBOOL 465
650 > #define THROTTLE_TIME 466
651 > #define TKLINE_EXPIRE_NOTICES 467
652 > #define TMASKED 468
653 > #define TRUE_NO_OPER_FLOOD 469
654 > #define TS_MAX_DELTA 470
655 > #define TS_WARN_DELTA 471
656 > #define TWODOTS 472
657 > #define TYPE 473
658 > #define UNKLINE 474
659 > #define USE_EGD 475
660 > #define USE_LOGGING 476
661 > #define USER 477
662 > #define VHOST 478
663 > #define VHOST6 479
664 > #define WARN_NO_NLINE 480
665 > #define XLINE 481
666  
667 + /* Value type.  */
668   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
669 < typedef union YYSTYPE
669 > typedef union YYSTYPE YYSTYPE;
670 > union YYSTYPE
671   {
672 < /* Line 350 of yacc.c  */
622 < #line 110 "conf_parser.y"
672 > #line 140 "conf_parser.y" /* yacc.c:355  */
673  
674    int number;
675    char *string;
676  
677 <
678 < /* Line 350 of yacc.c  */
629 < #line 630 "conf_parser.c"
630 < } YYSTYPE;
677 > #line 678 "conf_parser.c" /* yacc.c:355  */
678 > };
679   # define YYSTYPE_IS_TRIVIAL 1
632 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
680   # define YYSTYPE_IS_DECLARED 1
681   #endif
682  
683 +
684   extern YYSTYPE yylval;
685  
638 #ifdef YYPARSE_PARAM
639 #if defined __STDC__ || defined __cplusplus
640 int yyparse (void *YYPARSE_PARAM);
641 #else
642 int yyparse ();
643 #endif
644 #else /* ! YYPARSE_PARAM */
645 #if defined __STDC__ || defined __cplusplus
686   int yyparse (void);
647 #else
648 int yyparse ();
649 #endif
650 #endif /* ! YYPARSE_PARAM */
687  
688 < #endif /* !YY_Y_TAB_H  */
688 > #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
689  
690   /* Copy the second part of user declarations.  */
691  
692 < /* Line 353 of yacc.c  */
657 < #line 658 "conf_parser.c"
692 > #line 693 "conf_parser.c" /* yacc.c:358  */
693  
694   #ifdef short
695   # undef short
# Line 668 | Line 703 | typedef unsigned char yytype_uint8;
703  
704   #ifdef YYTYPE_INT8
705   typedef YYTYPE_INT8 yytype_int8;
671 #elif (defined __STDC__ || defined __C99__FUNC__ \
672     || defined __cplusplus || defined _MSC_VER)
673 typedef signed char yytype_int8;
706   #else
707 < typedef short int yytype_int8;
707 > typedef signed char yytype_int8;
708   #endif
709  
710   #ifdef YYTYPE_UINT16
# Line 692 | Line 724 | typedef short int yytype_int16;
724   #  define YYSIZE_T __SIZE_TYPE__
725   # elif defined size_t
726   #  define YYSIZE_T size_t
727 < # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
696 <     || defined __cplusplus || defined _MSC_VER)
727 > # elif ! defined YYSIZE_T
728   #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
729   #  define YYSIZE_T size_t
730   # else
# Line 707 | Line 738 | typedef short int yytype_int16;
738   # if defined YYENABLE_NLS && YYENABLE_NLS
739   #  if ENABLE_NLS
740   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
741 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
741 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
742   #  endif
743   # endif
744   # ifndef YY_
745 < #  define YY_(msgid) msgid
745 > #  define YY_(Msgid) Msgid
746 > # endif
747 > #endif
748 >
749 > #ifndef YY_ATTRIBUTE
750 > # if (defined __GNUC__                                               \
751 >      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
752 >     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
753 > #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
754 > # else
755 > #  define YY_ATTRIBUTE(Spec) /* empty */
756 > # endif
757 > #endif
758 >
759 > #ifndef YY_ATTRIBUTE_PURE
760 > # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
761 > #endif
762 >
763 > #ifndef YY_ATTRIBUTE_UNUSED
764 > # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
765 > #endif
766 >
767 > #if !defined _Noreturn \
768 >     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
769 > # if defined _MSC_VER && 1200 <= _MSC_VER
770 > #  define _Noreturn __declspec (noreturn)
771 > # else
772 > #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
773   # endif
774   #endif
775  
776   /* Suppress unused-variable warnings by "using" E.  */
777   #if ! defined lint || defined __GNUC__
778 < # define YYUSE(e) ((void) (e))
778 > # define YYUSE(E) ((void) (E))
779   #else
780 < # define YYUSE(e) /* empty */
780 > # define YYUSE(E) /* empty */
781   #endif
782  
783 < /* Identity function, used to suppress warnings about constant conditions.  */
784 < #ifndef lint
785 < # define YYID(n) (n)
783 > #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
784 > /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
785 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
786 >    _Pragma ("GCC diagnostic push") \
787 >    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
788 >    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
789 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
790 >    _Pragma ("GCC diagnostic pop")
791   #else
792 < #if (defined __STDC__ || defined __C99__FUNC__ \
730 <     || defined __cplusplus || defined _MSC_VER)
731 < static int
732 < YYID (int yyi)
733 < #else
734 < static int
735 < YYID (yyi)
736 <    int yyi;
792 > # define YY_INITIAL_VALUE(Value) Value
793   #endif
794 < {
795 <  return yyi;
796 < }
794 > #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
795 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
796 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END
797 > #endif
798 > #ifndef YY_INITIAL_VALUE
799 > # define YY_INITIAL_VALUE(Value) /* Nothing. */
800   #endif
801  
802 +
803   #if ! defined yyoverflow || YYERROR_VERBOSE
804  
805   /* The parser invokes alloca or malloc; define the necessary symbols.  */
# Line 757 | Line 817 | YYID (yyi)
817   #    define alloca _alloca
818   #   else
819   #    define YYSTACK_ALLOC alloca
820 < #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
761 <     || defined __cplusplus || defined _MSC_VER)
820 > #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
821   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
822        /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
823   #     ifndef EXIT_SUCCESS
# Line 770 | Line 829 | YYID (yyi)
829   # endif
830  
831   # ifdef YYSTACK_ALLOC
832 <   /* Pacify GCC's `empty if-body' warning.  */
833 < #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
832 >   /* Pacify GCC's 'empty if-body' warning.  */
833 > #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
834   #  ifndef YYSTACK_ALLOC_MAXIMUM
835      /* The OS might guarantee only one guard page at the bottom of the stack,
836         and a page size can be as small as 4096 bytes.  So we cannot safely
# Line 787 | Line 846 | YYID (yyi)
846   #  endif
847   #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
848         && ! ((defined YYMALLOC || defined malloc) \
849 <             && (defined YYFREE || defined free)))
849 >             && (defined YYFREE || defined free)))
850   #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
851   #   ifndef EXIT_SUCCESS
852   #    define EXIT_SUCCESS 0
# Line 795 | Line 854 | YYID (yyi)
854   #  endif
855   #  ifndef YYMALLOC
856   #   define YYMALLOC malloc
857 < #   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
799 <     || defined __cplusplus || defined _MSC_VER)
857 > #   if ! defined malloc && ! defined EXIT_SUCCESS
858   void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
859   #   endif
860   #  endif
861   #  ifndef YYFREE
862   #   define YYFREE free
863 < #   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
806 <     || defined __cplusplus || defined _MSC_VER)
863 > #   if ! defined free && ! defined EXIT_SUCCESS
864   void free (void *); /* INFRINGES ON USER NAME SPACE */
865   #   endif
866   #  endif
# Line 813 | Line 870 | void free (void *); /* INFRINGES ON USER
870  
871   #if (! defined yyoverflow \
872       && (! defined __cplusplus \
873 <         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
873 >         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
874  
875   /* A type that is properly aligned for any stack member.  */
876   union yyalloc
# Line 838 | Line 895 | union yyalloc
895     elements in the stack, and YYPTR gives the new location of the
896     stack.  Advance YYPTR to a properly aligned location for the next
897     stack.  */
898 < # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
899 <    do                                                                  \
900 <      {                                                                 \
901 <        YYSIZE_T yynewbytes;                                            \
902 <        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
903 <        Stack = &yyptr->Stack_alloc;                                    \
904 <        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
905 <        yyptr += yynewbytes / sizeof (*yyptr);                          \
906 <      }                                                                 \
907 <    while (YYID (0))
898 > # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
899 >    do                                                                  \
900 >      {                                                                 \
901 >        YYSIZE_T yynewbytes;                                            \
902 >        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
903 >        Stack = &yyptr->Stack_alloc;                                    \
904 >        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
905 >        yyptr += yynewbytes / sizeof (*yyptr);                          \
906 >      }                                                                 \
907 >    while (0)
908  
909   #endif
910  
# Line 866 | Line 923 | union yyalloc
923            for (yyi = 0; yyi < (Count); yyi++)   \
924              (Dst)[yyi] = (Src)[yyi];            \
925          }                                       \
926 <      while (YYID (0))
926 >      while (0)
927   #  endif
928   # endif
929   #endif /* !YYCOPY_NEEDED */
# Line 874 | Line 931 | union yyalloc
931   /* YYFINAL -- State number of the termination state.  */
932   #define YYFINAL  2
933   /* YYLAST -- Last index in YYTABLE.  */
934 < #define YYLAST   1206
934 > #define YYLAST   1236
935  
936   /* YYNTOKENS -- Number of terminals.  */
937 < #define YYNTOKENS  220
937 > #define YYNTOKENS  233
938   /* YYNNTS -- Number of nonterminals.  */
939 < #define YYNNTS  283
939 > #define YYNNTS  291
940   /* YYNRULES -- Number of rules.  */
941 < #define YYNRULES  627
942 < /* YYNRULES -- Number of states.  */
943 < #define YYNSTATES  1228
941 > #define YYNRULES  656
942 > /* YYNSTATES -- Number of states.  */
943 > #define YYNSTATES  1287
944  
945 < /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
945 > /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
946 >   by yylex, with out-of-bounds checking.  */
947   #define YYUNDEFTOK  2
948 < #define YYMAXUTOK   469
948 > #define YYMAXUTOK   481
949  
950 < #define YYTRANSLATE(YYX)                                                \
950 > #define YYTRANSLATE(YYX)                                                \
951    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
952  
953 < /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
953 > /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
954 >   as returned by yylex, without out-of-bounds checking.  */
955   static const yytype_uint8 yytranslate[] =
956   {
957         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
958         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
959         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
960         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
961 <       2,     2,     2,     2,   219,     2,     2,     2,     2,     2,
962 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   215,
963 <       2,   218,     2,     2,     2,     2,     2,     2,     2,     2,
961 >       2,     2,     2,     2,   231,     2,     2,     2,     2,     2,
962 >       2,     2,     2,     2,     2,     2,     2,     2,   232,   227,
963 >       2,   230,     2,     2,     2,     2,     2,     2,     2,     2,
964         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
965         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
966         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
967         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
968         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
969 <       2,     2,     2,   217,     2,   216,     2,     2,     2,     2,
969 >       2,     2,     2,   229,     2,   228,     2,     2,     2,     2,
970         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
971         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
972         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 941 | Line 1000 | static const yytype_uint8 yytranslate[]
1000       175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1001       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1002       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1003 <     205,   206,   207,   208,   209,   210,   211,   212,   213,   214
1003 >     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1004 >     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1005 >     225,   226
1006   };
1007  
1008   #if YYDEBUG
1009 < /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
949 <   YYRHS.  */
950 < static const yytype_uint16 yyprhs[] =
951 < {
952 <       0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
953 <      19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
954 <      39,    41,    43,    45,    47,    50,    53,    54,    56,    59,
955 <      63,    67,    71,    75,    79,    80,    82,    85,    89,    93,
956 <      97,   103,   106,   108,   110,   112,   115,   120,   125,   131,
957 <     134,   136,   138,   140,   142,   144,   146,   148,   150,   152,
958 <     154,   156,   158,   160,   162,   164,   166,   169,   174,   179,
959 <     183,   185,   187,   189,   193,   195,   197,   199,   204,   209,
960 <     214,   219,   224,   229,   234,   239,   244,   249,   254,   259,
961 <     264,   270,   273,   275,   277,   279,   281,   284,   289,   294,
962 <     299,   305,   308,   310,   312,   314,   317,   322,   323,   330,
963 <     333,   335,   337,   339,   341,   344,   349,   354,   359,   360,
964 <     366,   370,   372,   374,   376,   378,   380,   382,   384,   386,
965 <     387,   394,   397,   399,   401,   403,   405,   407,   409,   411,
966 <     413,   415,   418,   423,   428,   433,   438,   443,   448,   449,
967 <     455,   459,   461,   463,   465,   467,   469,   471,   473,   475,
968 <     477,   479,   481,   483,   485,   487,   489,   491,   493,   495,
969 <     497,   499,   501,   502,   508,   512,   514,   516,   518,   520,
970 <     522,   524,   526,   528,   530,   532,   534,   536,   538,   540,
971 <     542,   544,   546,   548,   550,   552,   553,   560,   563,   565,
972 <     567,   569,   571,   573,   575,   577,   579,   581,   583,   585,
973 <     587,   589,   591,   593,   596,   601,   606,   611,   616,   621,
974 <     626,   631,   636,   641,   646,   651,   656,   661,   666,   667,
975 <     674,   675,   681,   685,   687,   689,   691,   693,   696,   698,
976 <     700,   702,   704,   706,   709,   710,   716,   720,   722,   724,
977 <     728,   733,   738,   739,   746,   749,   751,   753,   755,   757,
978 <     759,   761,   763,   765,   767,   770,   775,   780,   785,   790,
979 <     791,   797,   801,   803,   805,   807,   809,   811,   813,   815,
980 <     817,   819,   821,   826,   831,   836,   837,   844,   847,   849,
981 <     851,   853,   855,   858,   863,   868,   873,   879,   882,   884,
982 <     886,   888,   893,   894,   901,   904,   906,   908,   910,   912,
983 <     915,   920,   925,   926,   932,   936,   938,   940,   942,   944,
984 <     946,   948,   950,   952,   954,   956,   958,   959,   966,   969,
985 <     971,   973,   975,   978,   983,   984,   990,   994,   996,   998,
986 <    1000,  1002,  1004,  1006,  1008,  1010,  1012,  1014,  1016,  1017,
987 <    1024,  1027,  1029,  1031,  1033,  1035,  1037,  1039,  1041,  1043,
988 <    1045,  1047,  1049,  1051,  1053,  1055,  1058,  1063,  1068,  1073,
989 <    1078,  1083,  1088,  1093,  1098,  1099,  1105,  1109,  1111,  1113,
990 <    1115,  1120,  1125,  1130,  1135,  1140,  1141,  1148,  1149,  1155,
991 <    1159,  1161,  1163,  1166,  1168,  1170,  1172,  1174,  1176,  1181,
992 <    1186,  1187,  1194,  1197,  1199,  1201,  1203,  1205,  1210,  1215,
993 <    1221,  1224,  1226,  1228,  1230,  1235,  1236,  1243,  1244,  1250,
994 <    1254,  1256,  1258,  1261,  1263,  1265,  1267,  1269,  1271,  1276,
995 <    1281,  1287,  1290,  1292,  1294,  1296,  1298,  1300,  1302,  1304,
996 <    1306,  1308,  1310,  1312,  1314,  1316,  1318,  1320,  1322,  1324,
997 <    1326,  1328,  1330,  1332,  1334,  1336,  1338,  1340,  1342,  1344,
998 <    1346,  1348,  1350,  1352,  1354,  1356,  1358,  1360,  1362,  1364,
999 <    1366,  1368,  1370,  1372,  1374,  1376,  1378,  1380,  1382,  1384,
1000 <    1386,  1388,  1390,  1392,  1397,  1402,  1407,  1412,  1417,  1422,
1001 <    1427,  1432,  1437,  1442,  1447,  1452,  1457,  1462,  1467,  1472,
1002 <    1477,  1482,  1487,  1492,  1497,  1502,  1507,  1512,  1517,  1522,
1003 <    1527,  1532,  1537,  1542,  1547,  1552,  1557,  1562,  1567,  1572,
1004 <    1577,  1582,  1587,  1592,  1597,  1602,  1607,  1612,  1617,  1622,
1005 <    1623,  1629,  1633,  1635,  1637,  1639,  1641,  1643,  1645,  1647,
1006 <    1649,  1651,  1653,  1655,  1657,  1659,  1661,  1663,  1665,  1667,
1007 <    1669,  1671,  1673,  1675,  1676,  1682,  1686,  1688,  1690,  1692,
1008 <    1694,  1696,  1698,  1700,  1702,  1704,  1706,  1708,  1710,  1712,
1009 <    1714,  1716,  1718,  1720,  1722,  1724,  1726,  1728,  1733,  1738,
1010 <    1743,  1749,  1752,  1754,  1756,  1758,  1760,  1762,  1764,  1766,
1011 <    1768,  1770,  1772,  1774,  1776,  1778,  1780,  1782,  1784,  1789,
1012 <    1794,  1799,  1804,  1809,  1814,  1819,  1824,  1829,  1834,  1839,
1013 <    1844,  1849,  1854,  1860,  1863,  1865,  1867,  1869,  1871,  1873,
1014 <    1875,  1877,  1879,  1884,  1889,  1894,  1899,  1904
1015 < };
1016 <
1017 < /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1018 < static const yytype_int16 yyrhs[] =
1019 < {
1020 <     221,     0,    -1,    -1,   221,   222,    -1,   254,    -1,   260,
1021 <      -1,   274,    -1,   477,    -1,   292,    -1,   310,    -1,   324,
1022 <      -1,   232,    -1,   494,    -1,   339,    -1,   346,    -1,   350,
1023 <      -1,   360,    -1,   369,    -1,   389,    -1,   399,    -1,   405,
1024 <      -1,   419,    -1,   409,    -1,   227,    -1,     1,   215,    -1,
1025 <       1,   216,    -1,    -1,   224,    -1,    99,   223,    -1,    99,
1026 <     138,   223,    -1,    99,   139,   223,    -1,    99,   140,   223,
1027 <      -1,    99,   141,   223,    -1,    99,   142,   223,    -1,    -1,
1028 <     226,    -1,    99,   225,    -1,    99,     9,   225,    -1,    99,
1029 <      10,   225,    -1,    99,    11,   225,    -1,    88,   217,   228,
1030 <     216,   215,    -1,   228,   229,    -1,   229,    -1,   230,    -1,
1031 <     231,    -1,     1,   215,    -1,    87,   218,   118,   215,    -1,
1032 <     113,   218,   118,   215,    -1,   146,   217,   233,   216,   215,
1033 <      -1,   233,   234,    -1,   234,    -1,   245,    -1,   250,    -1,
1034 <     253,    -1,   247,    -1,   248,    -1,   249,    -1,   252,    -1,
1035 <     243,    -1,   242,    -1,   251,    -1,   246,    -1,   241,    -1,
1036 <     235,    -1,   236,    -1,   244,    -1,     1,   215,    -1,   132,
1037 <     218,   237,   215,    -1,   133,   218,   239,   215,    -1,   237,
1038 <     219,   238,    -1,   238,    -1,   134,    -1,   135,    -1,   239,
1039 <     219,   240,    -1,   240,    -1,   134,    -1,   135,    -1,   130,
1040 <     218,   118,   215,    -1,   128,   218,   118,   215,    -1,   131,
1041 <     218,   118,   215,    -1,   171,   218,   118,   215,    -1,    89,
1042 <     218,   118,   215,    -1,   147,   218,   118,   215,    -1,    24,
1043 <     218,   118,   215,    -1,    92,   218,   118,   215,    -1,    91,
1044 <     218,   118,   215,    -1,   209,   218,   118,   215,    -1,   210,
1045 <     218,   118,   215,    -1,   181,   218,    99,   215,    -1,    57,
1046 <     218,   160,   215,    -1,     4,   217,   255,   216,   215,    -1,
1047 <     255,   256,    -1,   256,    -1,   257,    -1,   259,    -1,   258,
1048 <      -1,     1,   215,    -1,    89,   218,   118,   215,    -1,    31,
1049 <     218,   118,   215,    -1,    24,   218,   118,   215,    -1,    71,
1050 <     217,   261,   216,   215,    -1,   261,   262,    -1,   262,    -1,
1051 <     263,    -1,   264,    -1,     1,   215,    -1,   208,   218,   160,
1052 <     215,    -1,    -1,   265,   214,   217,   266,   216,   215,    -1,
1053 <     266,   267,    -1,   267,    -1,   268,    -1,   270,    -1,   269,
1054 <      -1,     1,   215,    -1,    89,   218,   118,   215,    -1,   213,
1055 <     218,   226,   215,    -1,   213,   218,   195,   215,    -1,    -1,
1056 <     151,   271,   218,   272,   215,    -1,   272,   219,   273,    -1,
1057 <     273,    -1,   206,    -1,   102,    -1,    40,    -1,   174,    -1,
1058 <      64,    -1,    62,    -1,   173,    -1,    -1,   102,   275,   217,
1059 <     276,   216,   215,    -1,   276,   277,    -1,   277,    -1,   278,
1060 <      -1,   279,    -1,   280,    -1,   284,    -1,   283,    -1,   281,
1061 <      -1,   282,    -1,   288,    -1,     1,   215,    -1,    89,   218,
1062 <     118,   215,    -1,   206,   218,   118,   215,    -1,   112,   218,
1063 <     118,   215,    -1,    32,   218,   160,   215,    -1,   129,   218,
1064 <     118,   215,    -1,    17,   218,   118,   215,    -1,    -1,   192,
1065 <     285,   218,   286,   215,    -1,   286,   219,   287,    -1,   287,
1066 <      -1,   166,    -1,   169,    -1,   170,    -1,   172,    -1,   173,
1067 <      -1,   176,    -1,    51,    -1,   189,    -1,   182,    -1,   185,
1068 <      -1,   193,    -1,   190,    -1,   175,    -1,   183,    -1,   187,
1069 <      -1,   177,    -1,   199,    -1,   167,    -1,   168,    -1,   180,
1070 <      -1,    -1,    36,   289,   218,   290,   215,    -1,   290,   219,
1071 <     291,    -1,   291,    -1,    47,    -1,   125,    -1,    64,    -1,
1072 <     205,    -1,   174,    -1,   194,    -1,   211,    -1,    40,    -1,
1073 <      25,    -1,   200,    -1,   124,    -1,     4,    -1,    94,    -1,
1074 <     183,    -1,   198,    -1,   106,    -1,   126,    -1,   188,    -1,
1075 <      87,    -1,    -1,    17,   293,   217,   294,   216,   215,    -1,
1076 <     294,   295,    -1,   295,    -1,   296,    -1,   307,    -1,   308,
1077 <      -1,   297,    -1,   298,    -1,   309,    -1,   299,    -1,   300,
1078 <      -1,   301,    -1,   302,    -1,   303,    -1,   304,    -1,   305,
1079 <      -1,   306,    -1,     1,   215,    -1,    89,   218,   118,   215,
1080 <      -1,   115,   218,   224,   215,    -1,   116,   218,   224,   215,
1081 <      -1,   101,   218,    99,   215,    -1,    19,   218,   224,   215,
1082 <      -1,    81,   218,    99,   215,    -1,    76,   218,    99,   215,
1083 <      -1,    78,   218,    99,   215,    -1,    77,   218,    99,   215,
1084 <      -1,   143,   218,   226,   215,    -1,   184,   218,   226,   215,
1085 <      -1,    15,   218,    99,   215,    -1,    16,   218,    99,   215,
1086 <      -1,   100,   218,    99,   215,    -1,    -1,    70,   311,   217,
1087 <     316,   216,   215,    -1,    -1,    36,   313,   218,   314,   215,
1088 <      -1,   314,   219,   315,    -1,   315,    -1,   191,    -1,    51,
1089 <      -1,   186,    -1,   316,   317,    -1,   317,    -1,   318,    -1,
1090 <     312,    -1,   322,    -1,   323,    -1,     1,   215,    -1,    -1,
1091 <     117,   218,   320,   319,   215,    -1,   320,   219,   321,    -1,
1092 <     321,    -1,    99,    -1,    99,   164,    99,    -1,    61,   218,
1093 <     118,   215,    -1,    56,   218,   118,   215,    -1,    -1,    48,
1094 <     325,   217,   326,   216,   215,    -1,   326,   327,    -1,   327,
1095 <      -1,   328,    -1,   329,    -1,   330,    -1,   332,    -1,   336,
1096 <      -1,   337,    -1,   338,    -1,   331,    -1,     1,   215,    -1,
1097 <     206,   218,   118,   215,    -1,   112,   218,   118,   215,    -1,
1098 <      17,   218,   118,   215,    -1,    32,   218,   160,   215,    -1,
1099 <      -1,    36,   333,   218,   334,   215,    -1,   334,   219,   335,
1100 <      -1,   335,    -1,   154,    -1,    33,    -1,    65,    -1,    49,
1101 <      -1,    13,    -1,    98,    -1,    43,    -1,   137,    -1,    90,
1102 <      -1,   153,   218,   118,   215,    -1,   122,   218,   118,   215,
1103 <      -1,   121,   218,    99,   215,    -1,    -1,   136,   340,   217,
1104 <     341,   216,   215,    -1,   341,   342,    -1,   342,    -1,   343,
1105 <      -1,   344,    -1,   345,    -1,     1,   215,    -1,   120,   218,
1106 <     118,   215,    -1,    14,   218,   118,   215,    -1,    93,   218,
1107 <     118,   215,    -1,   201,   217,   347,   216,   215,    -1,   347,
1108 <     348,    -1,   348,    -1,   349,    -1,     1,    -1,    89,   218,
1109 <     118,   215,    -1,    -1,   149,   351,   217,   352,   216,   215,
1110 <      -1,   352,   353,    -1,   353,    -1,   354,    -1,   355,    -1,
1111 <     356,    -1,     1,   215,    -1,    89,   218,   118,   215,    -1,
1112 <     206,   218,   118,   215,    -1,    -1,   151,   357,   218,   358,
1113 <     215,    -1,   358,   219,   359,    -1,   359,    -1,    64,    -1,
1114 <     205,    -1,   174,    -1,   194,    -1,   211,    -1,   197,    -1,
1115 <     136,    -1,   196,    -1,   180,    -1,   165,    -1,    -1,   150,
1116 <     361,   217,   362,   216,   215,    -1,   362,   363,    -1,   363,
1117 <      -1,   364,    -1,   365,    -1,     1,   215,    -1,    89,   218,
1118 <     118,   215,    -1,    -1,   151,   366,   218,   367,   215,    -1,
1119 <     367,   219,   368,    -1,   368,    -1,    64,    -1,   205,    -1,
1120 <     174,    -1,   194,    -1,   211,    -1,   197,    -1,   136,    -1,
1121 <     196,    -1,   180,    -1,   165,    -1,    -1,    18,   370,   217,
1122 <     371,   216,   215,    -1,   371,   372,    -1,   372,    -1,   373,
1123 <      -1,   374,    -1,   375,    -1,   376,    -1,   377,    -1,   379,
1124 <      -1,   378,    -1,   388,    -1,   380,    -1,   385,    -1,   386,
1125 <      -1,   387,    -1,   384,    -1,     1,   215,    -1,    89,   218,
1126 <     118,   215,    -1,    56,   218,   118,   215,    -1,   209,   218,
1127 <     118,   215,    -1,   144,   218,   118,   215,    -1,     3,   218,
1128 <     118,   215,    -1,   117,   218,    99,   215,    -1,     5,   218,
1129 <     178,   215,    -1,     5,   218,   179,   215,    -1,    -1,    36,
1130 <     381,   218,   382,   215,    -1,   382,   219,   383,    -1,   383,
1131 <      -1,     8,    -1,   191,    -1,    32,   218,   160,   215,    -1,
1132 <      58,   218,   118,   215,    -1,    68,   218,   118,   215,    -1,
1133 <      17,   218,   118,   215,    -1,   171,   218,   118,   215,    -1,
1134 <      -1,    62,   390,   217,   395,   216,   215,    -1,    -1,   151,
1135 <     392,   218,   393,   215,    -1,   393,   219,   394,    -1,   394,
1136 <      -1,   123,    -1,   395,   396,    -1,   396,    -1,   397,    -1,
1137 <     398,    -1,   391,    -1,     1,    -1,   206,   218,   118,   215,
1138 <      -1,   120,   218,   118,   215,    -1,    -1,    23,   400,   217,
1139 <     401,   216,   215,    -1,   401,   402,    -1,   402,    -1,   403,
1140 <      -1,   404,    -1,     1,    -1,    61,   218,   118,   215,    -1,
1141 <     120,   218,   118,   215,    -1,    34,   217,   406,   216,   215,
1142 <      -1,   406,   407,    -1,   407,    -1,   408,    -1,     1,    -1,
1143 <      61,   218,   118,   215,    -1,    -1,    38,   410,   217,   415,
1144 <     216,   215,    -1,    -1,   151,   412,   218,   413,   215,    -1,
1145 <     413,   219,   414,    -1,   414,    -1,   123,    -1,   415,   416,
1146 <      -1,   416,    -1,   417,    -1,   418,    -1,   411,    -1,     1,
1147 <      -1,    89,   218,   118,   215,    -1,   120,   218,   118,   215,
1148 <      -1,    39,   217,   420,   216,   215,    -1,   420,   421,    -1,
1149 <     421,    -1,   430,    -1,   431,    -1,   433,    -1,   434,    -1,
1150 <     435,    -1,   436,    -1,   437,    -1,   438,    -1,   439,    -1,
1151 <     440,    -1,   429,    -1,   442,    -1,   443,    -1,   458,    -1,
1152 <     445,    -1,   447,    -1,   449,    -1,   448,    -1,   452,    -1,
1153 <     446,    -1,   453,    -1,   454,    -1,   455,    -1,   456,    -1,
1154 <     457,    -1,   470,    -1,   459,    -1,   460,    -1,   461,    -1,
1155 <     466,    -1,   450,    -1,   451,    -1,   476,    -1,   474,    -1,
1156 <     475,    -1,   432,    -1,   465,    -1,   441,    -1,   463,    -1,
1157 <     464,    -1,   428,    -1,   423,    -1,   424,    -1,   425,    -1,
1158 <     426,    -1,   427,    -1,   444,    -1,   422,    -1,   462,    -1,
1159 <       1,    -1,    83,   218,    99,   215,    -1,    42,   218,   160,
1160 <     215,    -1,    41,   218,   224,   215,    -1,    44,   218,   224,
1161 <     215,    -1,    45,   218,    99,   215,    -1,    46,   218,    99,
1162 <     215,    -1,   148,   218,   160,   215,    -1,    63,   218,   224,
1163 <     215,    -1,    55,   218,   160,   215,    -1,    59,   218,   160,
1164 <     215,    -1,    28,   218,   160,   215,    -1,    35,   218,   160,
1165 <     215,    -1,     6,   218,   160,   215,    -1,    80,   218,   224,
1166 <     215,    -1,    79,   218,    99,   215,    -1,    72,   218,    99,
1167 <     215,    -1,     7,   218,   224,   215,    -1,   163,   218,   224,
1168 <     215,    -1,   162,   218,   224,   215,    -1,    50,   218,    99,
1169 <     215,    -1,    60,   218,   160,   215,    -1,   212,   218,   160,
1170 <     215,    -1,   155,   218,   160,   215,    -1,   158,   218,   160,
1171 <     215,    -1,   159,   218,   160,   215,    -1,   157,   218,   160,
1172 <     215,    -1,   157,   218,   161,   215,    -1,   156,   218,   160,
1173 <     215,    -1,   156,   218,   161,   215,    -1,   110,   218,   224,
1174 <     215,    -1,    12,   218,   224,   215,    -1,   103,   218,   160,
1175 <     215,    -1,   111,   218,   224,   215,    -1,   152,   218,   160,
1176 <     215,    -1,    97,   218,   160,   215,    -1,   204,   218,   160,
1177 <     215,    -1,   105,   218,   160,   215,    -1,    84,   218,   118,
1178 <     215,    -1,    29,   218,    99,   215,    -1,    82,   218,    99,
1179 <     215,    -1,   207,   218,   160,   215,    -1,    30,   218,   118,
1180 <     215,    -1,   202,   218,   118,   215,    -1,   114,   218,   160,
1181 <     215,    -1,    26,   218,   160,   215,    -1,   203,   218,   224,
1182 <     215,    -1,    -1,   107,   467,   218,   468,   215,    -1,   468,
1183 <     219,   469,    -1,   469,    -1,   166,    -1,   169,    -1,   170,
1184 <      -1,   172,    -1,   173,    -1,   176,    -1,    51,    -1,   189,
1185 <      -1,   182,    -1,   185,    -1,   193,    -1,   190,    -1,   175,
1186 <      -1,   183,    -1,   187,    -1,   177,    -1,   199,    -1,   167,
1187 <      -1,   168,    -1,   180,    -1,    -1,   104,   471,   218,   472,
1188 <     215,    -1,   472,   219,   473,    -1,   473,    -1,   166,    -1,
1189 <     169,    -1,   170,    -1,   172,    -1,   173,    -1,   176,    -1,
1190 <     189,    -1,    51,    -1,   182,    -1,   185,    -1,   193,    -1,
1191 <     190,    -1,   175,    -1,   183,    -1,   187,    -1,   177,    -1,
1192 <     199,    -1,   167,    -1,   168,    -1,   180,    -1,    85,   218,
1193 <      99,   215,    -1,    86,   218,    99,   215,    -1,    20,   218,
1194 <      99,   215,    -1,    14,   217,   478,   216,   215,    -1,   478,
1195 <     479,    -1,   479,    -1,   487,    -1,   482,    -1,   483,    -1,
1196 <     484,    -1,   485,    -1,   486,    -1,   488,    -1,   489,    -1,
1197 <     490,    -1,   481,    -1,   491,    -1,   492,    -1,   493,    -1,
1198 <     480,    -1,     1,    -1,    27,   218,   160,   215,    -1,   127,
1199 <     218,   160,   215,    -1,    66,   218,   224,   215,    -1,    67,
1200 <     218,   224,   215,    -1,    75,   218,    99,   215,    -1,    74,
1201 <     218,    99,   215,    -1,   119,   218,   160,   215,    -1,    73,
1202 <     218,    99,   215,    -1,    22,   218,    99,   215,    -1,    21,
1203 <     218,    99,   215,    -1,    95,   218,   160,   215,    -1,    96,
1204 <     218,   160,   215,    -1,   108,   218,    99,   215,    -1,   109,
1205 <     218,   224,   215,    -1,   145,   217,   495,   216,   215,    -1,
1206 <     495,   496,    -1,   496,    -1,   497,    -1,   498,    -1,   500,
1207 <      -1,   501,    -1,   499,    -1,   502,    -1,     1,    -1,    37,
1208 <     218,   160,   215,    -1,    54,   218,   160,   215,    -1,    52,
1209 <     218,   118,   215,    -1,    69,   218,   224,   215,    -1,    51,
1210 <     218,   160,   215,    -1,    53,   218,   160,   215,    -1
1211 < };
1212 <
1213 < /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1009 >  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1010   static const yytype_uint16 yyrline[] =
1011   {
1012 <       0,   330,   330,   331,   334,   335,   336,   337,   338,   339,
1013 <     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
1014 <     350,   351,   352,   353,   354,   355,   359,   359,   360,   364,
1015 <     368,   372,   376,   380,   386,   386,   387,   388,   389,   390,
1016 <     397,   400,   400,   401,   401,   401,   403,   409,   416,   418,
1017 <     418,   419,   419,   420,   420,   421,   421,   422,   422,   423,
1018 <     423,   424,   424,   425,   425,   426,   427,   430,   431,   433,
1019 <     433,   434,   440,   448,   448,   449,   455,   463,   502,   561,
1020 <     589,   597,   612,   627,   636,   650,   659,   687,   717,   740,
1021 <     749,   751,   751,   752,   752,   753,   753,   755,   764,   773,
1022 <     785,   786,   786,   788,   788,   789,   791,   798,   798,   808,
1023 <     809,   811,   811,   812,   812,   814,   819,   822,   828,   827,
1024 <     833,   833,   834,   838,   842,   846,   850,   854,   858,   869,
1025 <     868,   966,   966,   967,   967,   967,   968,   968,   968,   969,
1026 <     969,   969,   971,   980,  1017,  1029,  1040,  1082,  1092,  1091,
1027 <    1097,  1097,  1098,  1102,  1106,  1110,  1114,  1118,  1122,  1126,
1028 <    1130,  1134,  1138,  1142,  1146,  1150,  1154,  1158,  1162,  1166,
1029 <    1170,  1174,  1181,  1180,  1186,  1186,  1187,  1191,  1195,  1199,
1030 <    1203,  1207,  1211,  1215,  1219,  1223,  1227,  1231,  1235,  1239,
1031 <    1243,  1247,  1251,  1255,  1259,  1270,  1269,  1319,  1319,  1320,
1032 <    1321,  1321,  1322,  1323,  1324,  1325,  1326,  1327,  1328,  1329,
1033 <    1330,  1331,  1331,  1332,  1334,  1343,  1349,  1355,  1361,  1367,
1034 <    1373,  1379,  1385,  1391,  1397,  1404,  1410,  1416,  1426,  1425,
1035 <    1442,  1441,  1446,  1446,  1447,  1451,  1455,  1463,  1463,  1464,
1036 <    1464,  1464,  1464,  1464,  1466,  1466,  1468,  1468,  1470,  1484,
1037 <    1504,  1513,  1526,  1525,  1594,  1594,  1595,  1595,  1595,  1595,
1038 <    1596,  1596,  1596,  1597,  1597,  1599,  1634,  1647,  1656,  1668,
1039 <    1667,  1671,  1671,  1672,  1676,  1680,  1684,  1688,  1692,  1696,
1040 <    1700,  1704,  1710,  1729,  1739,  1753,  1752,  1768,  1768,  1769,
1041 <    1769,  1769,  1769,  1771,  1780,  1795,  1808,  1810,  1810,  1811,
1042 <    1811,  1813,  1829,  1828,  1844,  1844,  1845,  1845,  1845,  1845,
1043 <    1847,  1856,  1879,  1878,  1884,  1884,  1885,  1889,  1893,  1897,
1044 <    1901,  1905,  1909,  1913,  1917,  1921,  1931,  1930,  1947,  1947,
1045 <    1948,  1948,  1948,  1950,  1957,  1956,  1962,  1962,  1963,  1967,
1046 <    1971,  1975,  1979,  1983,  1987,  1991,  1995,  1999,  2009,  2008,
1047 <    2059,  2059,  2060,  2060,  2060,  2061,  2061,  2062,  2062,  2062,
1048 <    2063,  2063,  2063,  2064,  2064,  2065,  2067,  2076,  2085,  2111,
1049 <    2129,  2147,  2153,  2157,  2166,  2165,  2169,  2169,  2170,  2174,
1050 <    2180,  2191,  2202,  2213,  2222,  2241,  2240,  2306,  2305,  2309,
1051 <    2309,  2310,  2316,  2316,  2317,  2317,  2317,  2317,  2319,  2338,
1052 <    2348,  2347,  2372,  2372,  2373,  2373,  2373,  2375,  2381,  2390,
1053 <    2392,  2392,  2393,  2393,  2395,  2414,  2413,  2461,  2460,  2464,
1054 <    2464,  2465,  2471,  2471,  2472,  2472,  2472,  2472,  2474,  2480,
1055 <    2489,  2492,  2492,  2493,  2493,  2494,  2494,  2495,  2495,  2496,
1056 <    2496,  2497,  2497,  2498,  2499,  2500,  2500,  2501,  2501,  2502,
1057 <    2502,  2503,  2503,  2504,  2504,  2505,  2505,  2506,  2507,  2507,
1058 <    2508,  2508,  2509,  2509,  2510,  2510,  2511,  2511,  2512,  2513,
1059 <    2513,  2514,  2515,  2516,  2516,  2517,  2517,  2518,  2519,  2520,
1060 <    2521,  2521,  2522,  2525,  2530,  2536,  2542,  2548,  2553,  2558,
1061 <    2563,  2568,  2573,  2578,  2583,  2588,  2593,  2598,  2603,  2608,
1062 <    2613,  2618,  2624,  2635,  2640,  2645,  2650,  2655,  2660,  2663,
1063 <    2668,  2671,  2676,  2681,  2686,  2691,  2696,  2701,  2706,  2711,
1064 <    2716,  2727,  2732,  2737,  2742,  2751,  2760,  2765,  2770,  2776,
1065 <    2775,  2780,  2780,  2781,  2784,  2787,  2790,  2793,  2796,  2799,
1066 <    2802,  2805,  2808,  2811,  2814,  2817,  2820,  2823,  2826,  2829,
1067 <    2832,  2835,  2838,  2844,  2843,  2848,  2848,  2849,  2852,  2855,
1068 <    2858,  2861,  2864,  2867,  2870,  2873,  2876,  2879,  2882,  2885,
1069 <    2888,  2891,  2894,  2897,  2900,  2903,  2906,  2911,  2916,  2921,
1070 <    2930,  2933,  2933,  2934,  2935,  2935,  2936,  2936,  2937,  2937,
1071 <    2938,  2939,  2939,  2940,  2941,  2941,  2942,  2942,  2944,  2949,
1072 <    2954,  2959,  2964,  2969,  2974,  2979,  2984,  2989,  2994,  2999,
1073 <    3004,  3009,  3017,  3020,  3020,  3021,  3021,  3022,  3023,  3023,
1074 <    3024,  3025,  3027,  3033,  3039,  3048,  3062,  3068
1012 >       0,   370,   370,   371,   374,   375,   376,   377,   378,   379,
1013 >     380,   381,   382,   383,   384,   385,   386,   387,   388,   389,
1014 >     390,   391,   392,   393,   394,   395,   396,   400,   400,   401,
1015 >     405,   409,   413,   417,   421,   425,   429,   435,   435,   436,
1016 >     437,   438,   439,   446,   449,   449,   450,   450,   450,   452,
1017 >     458,   465,   467,   467,   468,   468,   469,   469,   470,   470,
1018 >     471,   471,   472,   472,   473,   473,   474,   474,   475,   475,
1019 >     476,   477,   480,   481,   483,   483,   484,   490,   498,   498,
1020 >     499,   505,   513,   555,   614,   642,   650,   665,   680,   689,
1021 >     703,   712,   740,   770,   795,   817,   839,   848,   850,   850,
1022 >     851,   851,   852,   852,   854,   863,   872,   885,   884,   902,
1023 >     902,   903,   903,   903,   905,   911,   920,   921,   921,   923,
1024 >     923,   924,   926,   933,   933,   946,   947,   949,   949,   950,
1025 >     950,   952,   960,   963,   969,   968,   974,   974,   975,   979,
1026 >     983,   987,   991,   995,   999,  1003,  1007,  1018,  1017,  1097,
1027 >    1097,  1098,  1098,  1098,  1099,  1099,  1099,  1100,  1100,  1101,
1028 >    1102,  1102,  1104,  1110,  1116,  1122,  1133,  1139,  1145,  1156,
1029 >    1163,  1162,  1168,  1168,  1169,  1173,  1177,  1181,  1185,  1189,
1030 >    1193,  1197,  1201,  1205,  1209,  1213,  1217,  1221,  1225,  1229,
1031 >    1233,  1237,  1241,  1245,  1249,  1256,  1255,  1261,  1261,  1262,
1032 >    1266,  1270,  1274,  1278,  1282,  1286,  1290,  1294,  1298,  1302,
1033 >    1306,  1310,  1314,  1318,  1322,  1326,  1330,  1334,  1338,  1342,
1034 >    1346,  1350,  1361,  1360,  1421,  1421,  1422,  1423,  1423,  1424,
1035 >    1425,  1426,  1427,  1428,  1429,  1430,  1431,  1432,  1432,  1433,
1036 >    1434,  1435,  1436,  1438,  1444,  1450,  1456,  1462,  1468,  1474,
1037 >    1480,  1486,  1492,  1499,  1505,  1511,  1517,  1526,  1536,  1535,
1038 >    1541,  1541,  1542,  1546,  1557,  1556,  1563,  1562,  1567,  1567,
1039 >    1568,  1572,  1576,  1582,  1582,  1583,  1583,  1583,  1583,  1583,
1040 >    1585,  1585,  1587,  1587,  1589,  1603,  1623,  1629,  1639,  1638,
1041 >    1680,  1680,  1681,  1681,  1681,  1681,  1682,  1682,  1682,  1683,
1042 >    1683,  1685,  1691,  1697,  1703,  1715,  1714,  1720,  1720,  1721,
1043 >    1725,  1729,  1733,  1737,  1741,  1745,  1749,  1753,  1757,  1763,
1044 >    1777,  1786,  1800,  1799,  1814,  1814,  1815,  1815,  1815,  1815,
1045 >    1817,  1823,  1829,  1839,  1841,  1841,  1842,  1842,  1844,  1860,
1046 >    1859,  1884,  1884,  1885,  1885,  1885,  1885,  1887,  1893,  1913,
1047 >    1912,  1918,  1918,  1919,  1923,  1927,  1931,  1935,  1939,  1943,
1048 >    1947,  1951,  1955,  1965,  1964,  1985,  1985,  1986,  1986,  1986,
1049 >    1988,  1995,  1994,  2000,  2000,  2001,  2005,  2009,  2013,  2017,
1050 >    2021,  2025,  2029,  2033,  2037,  2047,  2046,  2118,  2118,  2119,
1051 >    2119,  2119,  2120,  2120,  2121,  2122,  2122,  2122,  2123,  2123,
1052 >    2123,  2124,  2124,  2125,  2127,  2133,  2139,  2145,  2158,  2171,
1053 >    2177,  2183,  2187,  2196,  2195,  2200,  2200,  2201,  2205,  2211,
1054 >    2222,  2228,  2234,  2240,  2256,  2255,  2281,  2281,  2282,  2282,
1055 >    2282,  2284,  2304,  2314,  2313,  2340,  2340,  2341,  2341,  2341,
1056 >    2343,  2349,  2358,  2360,  2360,  2361,  2361,  2363,  2381,  2380,
1057 >    2403,  2403,  2404,  2404,  2404,  2406,  2412,  2421,  2424,  2424,
1058 >    2425,  2425,  2426,  2426,  2427,  2427,  2428,  2428,  2429,  2429,
1059 >    2430,  2431,  2432,  2432,  2433,  2433,  2434,  2434,  2435,  2435,
1060 >    2436,  2437,  2437,  2438,  2438,  2439,  2439,  2440,  2440,  2441,
1061 >    2441,  2442,  2442,  2443,  2443,  2444,  2444,  2445,  2446,  2447,
1062 >    2447,  2448,  2448,  2449,  2450,  2451,  2452,  2452,  2453,  2454,
1063 >    2457,  2462,  2468,  2474,  2480,  2486,  2491,  2496,  2501,  2506,
1064 >    2511,  2516,  2521,  2526,  2531,  2536,  2541,  2546,  2551,  2557,
1065 >    2568,  2573,  2578,  2583,  2588,  2593,  2598,  2601,  2606,  2609,
1066 >    2614,  2619,  2624,  2629,  2634,  2639,  2644,  2649,  2654,  2659,
1067 >    2664,  2669,  2678,  2687,  2692,  2697,  2703,  2702,  2707,  2707,
1068 >    2708,  2711,  2714,  2717,  2720,  2723,  2726,  2729,  2732,  2735,
1069 >    2738,  2741,  2744,  2747,  2750,  2753,  2756,  2759,  2762,  2765,
1070 >    2768,  2774,  2773,  2778,  2778,  2779,  2782,  2785,  2788,  2791,
1071 >    2794,  2797,  2800,  2803,  2806,  2809,  2812,  2815,  2818,  2821,
1072 >    2824,  2827,  2830,  2833,  2836,  2839,  2844,  2849,  2854,  2863,
1073 >    2866,  2866,  2867,  2868,  2868,  2869,  2869,  2870,  2871,  2872,
1074 >    2873,  2874,  2874,  2875,  2875,  2877,  2882,  2887,  2892,  2897,
1075 >    2902,  2907,  2912,  2917,  2922,  2927,  2932,  2940,  2943,  2943,
1076 >    2944,  2944,  2945,  2946,  2947,  2948,  2948,  2949,  2950,  2952,
1077 >    2958,  2964,  2970,  2976,  2985,  2999,  3005
1078   };
1079   #endif
1080  
# Line 1288 | Line 1087 | static const char *const yytname[] =
1087    "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1088    "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1089    "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1090 <  "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1091 <  "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1092 <  "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1093 <  "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1094 <  "FAILED_OPER_NOTICE", "IRCD_FLAGS", "FLATTEN_LINKS", "GECOS", "GENERAL",
1095 <  "GLINE", "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT",
1096 <  "GLINE_REQUEST_DURATION", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1097 <  "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1098 <  "HIDDEN_NAME", "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SPOOF_IPS",
1099 <  "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1100 <  "IP", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT",
1101 <  "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY",
1102 <  "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_OPER",
1103 <  "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1104 <  "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1105 <  "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1106 <  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1107 <  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1090 >  "CONNECTFREQ", "CYCLE_ON_HOST_CHANGE", "DEFAULT_FLOODCOUNT",
1091 >  "DEFAULT_SPLIT_SERVER_COUNT", "DEFAULT_SPLIT_USER_COUNT", "DENY",
1092 >  "DESCRIPTION", "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1093 >  "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT", "EGDPOOL_PATH", "EMAIL",
1094 >  "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT", "FAILED_OPER_NOTICE",
1095 >  "FLATTEN_LINKS", "GECOS", "GENERAL", "GLINE", "GLINE_DURATION",
1096 >  "GLINE_ENABLE", "GLINE_EXEMPT", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1097 >  "GLINE_REQUEST_DURATION", "GLOBAL_KILL", "HAVENT_READ_CONF", "HIDDEN",
1098 >  "HIDDEN_NAME", "HIDE_IDLE_FROM_OPERS", "HIDE_SERVER_IPS", "HIDE_SERVERS",
1099 >  "HIDE_SERVICES", "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK",
1100 >  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "IP", "IRCD_AUTH",
1101 >  "IRCD_FLAGS", "IRCD_SID", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "KILL",
1102 >  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KNOCK_DELAY",
1103 >  "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY", "LISTEN", "MASK",
1104 >  "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_OPER", "MAX_CHANS_PER_USER",
1105 >  "MAX_GLOBAL", "MAX_IDENT", "MAX_IDLE", "MAX_LOCAL", "MAX_NICK_CHANGES",
1106 >  "MAX_NICK_LENGTH", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1107 >  "MAX_TOPIC_LENGTH", "MAX_WATCH", "MIN_IDLE", "MIN_NONWILDCARD",
1108 >  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "MOTD", "NAME",
1109 >  "NEED_IDENT", "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME", "NICK",
1110    "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1111 <  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPERATOR",
1112 <  "OPERS_BYPASS_CALLERID", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1312 <  "OPER_SPY_T", "OPER_UMODES", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME",
1111 >  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPER_ONLY_UMODES",
1112 >  "OPER_PASS_RESV", "OPER_UMODES", "OPERATOR", "OPERS_BYPASS_CALLERID",
1113    "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1114 <  "PING_TIME", "PING_WARNING", "PORT", "QSTRING", "QUIET_ON_BAN", "REASON",
1115 <  "REDIRPORT", "REDIRSERV", "REGEX_T", "REHASH", "REMOTE", "REMOTEBAN",
1116 <  "RESTRICT_CHANNELS", "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE",
1117 <  "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE", "T_SSL_CLIENT_METHOD",
1118 <  "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT",
1119 <  "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD",
1120 <  "SERVERHIDE", "SERVERINFO", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1121 <  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1122 <  "STATS_E_DISABLED", "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY",
1123 <  "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL", "TMASKED",
1124 <  "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS",
1125 <  "T_SOFTCALLERID", "T_CALLERID", "T_CCONN", "T_CCONN_FULL",
1126 <  "T_SSL_CIPHER_LIST", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1127 <  "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_MAX_CLIENTS",
1128 <  "T_NCHANGE", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_SERVER",
1129 <  "T_SERVNOTICE", "T_SET", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES",
1130 <  "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV", "T_UNXLINE",
1131 <  "T_GLOBOPS", "T_WALLOP", "T_RESTART", "T_SERVICE", "T_SERVICES_NAME",
1132 <  "THROTTLE_TIME", "TRUE_NO_OPER_FLOOD", "UNKLINE", "USER", "USE_EGD",
1133 <  "USE_LOGGING", "VHOST", "VHOST6", "XLINE", "WARN_NO_NLINE", "T_SIZE",
1134 <  "T_FILE", "';'", "'}'", "'{'", "'='", "','", "$accept", "conf",
1135 <  "conf_item", "timespec_", "timespec", "sizespec_", "sizespec",
1136 <  "modules_entry", "modules_items", "modules_item", "modules_module",
1137 <  "modules_path", "serverinfo_entry", "serverinfo_items",
1114 >  "PING_TIME", "PORT", "QSTRING", "RANDOM_IDLE", "REASON", "REDIRPORT",
1115 >  "REDIRSERV", "REHASH", "REMOTE", "REMOTEBAN", "RESV", "RESV_EXEMPT",
1116 >  "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE", "SECONDS", "MINUTES",
1117 >  "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ",
1118 >  "SERVERHIDE", "SERVERINFO", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1119 >  "SQUIT", "SSL_CERTIFICATE_FILE", "SSL_CERTIFICATE_FINGERPRINT",
1120 >  "SSL_CONNECTION_REQUIRED", "SSL_DH_PARAM_FILE", "STATS_E_DISABLED",
1121 >  "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY",
1122 >  "STATS_P_OPER_ONLY", "STATS_U_OPER_ONLY", "T_ALL", "T_BOTS",
1123 >  "T_CALLERID", "T_CCONN", "T_CLUSTER", "T_DEAF", "T_DEBUG", "T_DLINE",
1124 >  "T_EXTERNAL", "T_FARCONNECT", "T_FILE", "T_FULL", "T_GLOBOPS",
1125 >  "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_LOG", "T_MAX_CLIENTS",
1126 >  "T_NCHANGE", "T_NONONREG", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_RESTART",
1127 >  "T_SERVER", "T_SERVICE", "T_SERVICES_NAME", "T_SERVNOTICE", "T_SET",
1128 >  "T_SHARED", "T_SIZE", "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL",
1129 >  "T_SSL_CIPHER_LIST", "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD",
1130 >  "T_SSLV3", "T_TLSV1", "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED",
1131 >  "T_UNRESV", "T_UNXLINE", "T_WALLOP", "T_WALLOPS", "T_WEBIRC", "TBOOL",
1132 >  "THROTTLE_TIME", "TKLINE_EXPIRE_NOTICES", "TMASKED",
1133 >  "TRUE_NO_OPER_FLOOD", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "TYPE",
1134 >  "UNKLINE", "USE_EGD", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1135 >  "WARN_NO_NLINE", "XLINE", "';'", "'}'", "'{'", "'='", "','", "':'",
1136 >  "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1137 >  "sizespec", "modules_entry", "modules_items", "modules_item",
1138 >  "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1139    "serverinfo_item", "serverinfo_ssl_client_method",
1140    "serverinfo_ssl_server_method", "client_method_types",
1141    "client_method_type_item", "server_method_types",
# Line 1343 | Line 1144 | static const char *const yytname[] =
1144    "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1145    "serverinfo_description", "serverinfo_network_name",
1146    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1147 <  "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1148 <  "admin_item", "admin_name", "admin_email", "admin_description",
1149 <  "logging_entry", "logging_items", "logging_item", "logging_use_logging",
1150 <  "logging_file_entry", "$@1", "logging_file_items", "logging_file_item",
1151 <  "logging_file_name", "logging_file_size", "logging_file_type", "$@2",
1152 <  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@3",
1147 >  "serverinfo_max_clients", "serverinfo_max_nick_length",
1148 >  "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1149 >  "admin_items", "admin_item", "admin_name", "admin_email",
1150 >  "admin_description", "motd_entry", "$@1", "motd_items", "motd_item",
1151 >  "motd_mask", "motd_file", "logging_entry", "logging_items",
1152 >  "logging_item", "logging_use_logging", "logging_file_entry", "$@2",
1153 >  "logging_file_items", "logging_file_item", "logging_file_name",
1154 >  "logging_file_size", "logging_file_type", "$@3",
1155 >  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@4",
1156    "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1157 <  "oper_encrypted", "oper_rsa_public_key_file", "oper_class",
1158 <  "oper_umodes", "$@4", "oper_umodes_items", "oper_umodes_item",
1159 <  "oper_flags", "$@5", "oper_flags_items", "oper_flags_item",
1160 <  "class_entry", "$@6", "class_items", "class_item", "class_name",
1161 <  "class_ping_time", "class_ping_warning", "class_number_per_ip",
1157 >  "oper_encrypted", "oper_rsa_public_key_file",
1158 >  "oper_ssl_certificate_fingerprint", "oper_ssl_connection_required",
1159 >  "oper_class", "oper_umodes", "$@5", "oper_umodes_items",
1160 >  "oper_umodes_item", "oper_flags", "$@6", "oper_flags_items",
1161 >  "oper_flags_item", "class_entry", "$@7", "class_items", "class_item",
1162 >  "class_name", "class_ping_time", "class_number_per_ip",
1163    "class_connectfreq", "class_max_number", "class_max_global",
1164    "class_max_local", "class_max_ident", "class_sendq", "class_recvq",
1165    "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1166 <  "class_number_per_cidr", "listen_entry", "$@7", "listen_flags", "$@8",
1167 <  "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1168 <  "listen_port", "$@9", "port_items", "port_item", "listen_address",
1169 <  "listen_host", "auth_entry", "$@10", "auth_items", "auth_item",
1170 <  "auth_user", "auth_passwd", "auth_class", "auth_encrypted", "auth_flags",
1171 <  "$@11", "auth_flags_items", "auth_flags_item", "auth_spoof",
1172 <  "auth_redir_serv", "auth_redir_port", "resv_entry", "$@12", "resv_items",
1173 <  "resv_item", "resv_creason", "resv_channel", "resv_nick",
1174 <  "service_entry", "service_items", "service_item", "service_name",
1175 <  "shared_entry", "$@13", "shared_items", "shared_item", "shared_name",
1176 <  "shared_user", "shared_type", "$@14", "shared_types", "shared_type_item",
1177 <  "cluster_entry", "$@15", "cluster_items", "cluster_item", "cluster_name",
1178 <  "cluster_type", "$@16", "cluster_types", "cluster_type_item",
1179 <  "connect_entry", "$@17", "connect_items", "connect_item", "connect_name",
1166 >  "class_number_per_cidr", "class_min_idle", "class_max_idle",
1167 >  "class_flags", "$@8", "class_flags_items", "class_flags_item",
1168 >  "listen_entry", "$@9", "listen_flags", "$@10", "listen_flags_items",
1169 >  "listen_flags_item", "listen_items", "listen_item", "listen_port",
1170 >  "$@11", "port_items", "port_item", "listen_address", "listen_host",
1171 >  "auth_entry", "$@12", "auth_items", "auth_item", "auth_user",
1172 >  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@13",
1173 >  "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1174 >  "auth_redir_port", "resv_entry", "$@14", "resv_items", "resv_item",
1175 >  "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1176 >  "service_items", "service_item", "service_name", "shared_entry", "$@15",
1177 >  "shared_items", "shared_item", "shared_name", "shared_user",
1178 >  "shared_type", "$@16", "shared_types", "shared_type_item",
1179 >  "cluster_entry", "$@17", "cluster_items", "cluster_item", "cluster_name",
1180 >  "cluster_type", "$@18", "cluster_types", "cluster_type_item",
1181 >  "connect_entry", "$@19", "connect_items", "connect_item", "connect_name",
1182    "connect_host", "connect_vhost", "connect_send_password",
1183 <  "connect_accept_password", "connect_port", "connect_aftype",
1184 <  "connect_flags", "$@18", "connect_flags_items", "connect_flags_item",
1185 <  "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1186 <  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@19",
1187 <  "kill_type", "$@20", "kill_type_items", "kill_type_item", "kill_items",
1188 <  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@21",
1183 >  "connect_accept_password", "connect_ssl_certificate_fingerprint",
1184 >  "connect_port", "connect_aftype", "connect_flags", "$@20",
1185 >  "connect_flags_items", "connect_flags_item", "connect_encrypted",
1186 >  "connect_hub_mask", "connect_leaf_mask", "connect_class",
1187 >  "connect_ssl_cipher_list", "kill_entry", "$@21", "kill_items",
1188 >  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@22",
1189    "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1190 <  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@22",
1384 <  "gecos_flags", "$@23", "gecos_flags_items", "gecos_flags_item",
1190 >  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@23",
1191    "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1192    "general_entry", "general_items", "general_item", "general_max_watch",
1193 <  "general_gline_enable", "general_gline_duration",
1194 <  "general_gline_request_duration", "general_gline_min_cidr",
1195 <  "general_gline_min_cidr6", "general_tkline_expire_notices",
1196 <  "general_kill_chase_time_limit", "general_hide_spoof_ips",
1197 <  "general_ignore_bogus_ts", "general_disable_remote_commands",
1193 >  "general_cycle_on_host_change", "general_gline_enable",
1194 >  "general_gline_duration", "general_gline_request_duration",
1195 >  "general_gline_min_cidr", "general_gline_min_cidr6",
1196 >  "general_tkline_expire_notices", "general_kill_chase_time_limit",
1197 >  "general_hide_spoof_ips", "general_ignore_bogus_ts",
1198    "general_failed_oper_notice", "general_anti_nick_flood",
1199    "general_max_nick_time", "general_max_nick_changes",
1200    "general_max_accept", "general_anti_spam_exit_message_time",
# Line 1396 | Line 1202 | static const char *const yytname[] =
1202    "general_havent_read_conf", "general_invisible_on_connect",
1203    "general_warn_no_nline", "general_stats_e_disabled",
1204    "general_stats_o_oper_only", "general_stats_P_oper_only",
1205 <  "general_stats_k_oper_only", "general_stats_i_oper_only",
1206 <  "general_pace_wait", "general_caller_id_wait",
1207 <  "general_opers_bypass_callerid", "general_pace_wait_simple",
1208 <  "general_short_motd", "general_no_oper_flood",
1209 <  "general_true_no_oper_flood", "general_oper_pass_resv",
1210 <  "general_message_locale", "general_dots_in_ident", "general_max_targets",
1205 >  "general_stats_u_oper_only", "general_stats_k_oper_only",
1206 >  "general_stats_i_oper_only", "general_pace_wait",
1207 >  "general_caller_id_wait", "general_opers_bypass_callerid",
1208 >  "general_pace_wait_simple", "general_short_motd",
1209 >  "general_no_oper_flood", "general_true_no_oper_flood",
1210 >  "general_oper_pass_resv", "general_dots_in_ident", "general_max_targets",
1211    "general_use_egd", "general_egdpool_path", "general_services_name",
1212    "general_ping_cookie", "general_disable_auth", "general_throttle_time",
1213    "general_oper_umodes", "$@24", "umode_oitems", "umode_oitem",
1214    "general_oper_only_umodes", "$@25", "umode_items", "umode_item",
1215    "general_min_nonwildcard", "general_min_nonwildcard_simple",
1216    "general_default_floodcount", "channel_entry", "channel_items",
1217 <  "channel_item", "channel_disable_fake_channels",
1412 <  "channel_restrict_channels", "channel_knock_delay",
1217 >  "channel_item", "channel_disable_fake_channels", "channel_knock_delay",
1218    "channel_knock_delay_channel", "channel_max_chans_per_user",
1219 <  "channel_max_chans_per_oper", "channel_quiet_on_ban", "channel_max_bans",
1219 >  "channel_max_chans_per_oper", "channel_max_bans",
1220    "channel_default_split_user_count", "channel_default_split_server_count",
1221    "channel_no_create_on_split", "channel_no_join_on_split",
1222    "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1223    "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1224 <  "serverhide_hide_servers", "serverhide_hidden_name",
1224 >  "serverhide_disable_remote_commands", "serverhide_hide_servers",
1225 >  "serverhide_hide_services", "serverhide_hidden_name",
1226    "serverhide_links_delay", "serverhide_hidden",
1227 <  "serverhide_hide_server_ips", YY_NULL
1227 >  "serverhide_hide_server_ips", YY_NULLPTR
1228   };
1229   #endif
1230  
1231   # ifdef YYPRINT
1232 < /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1233 <   token YYLEX-NUM.  */
1232 > /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1233 >   (internal) symbol number NUM (which must be that of a token).  */
1234   static const yytype_uint16 yytoknum[] =
1235   {
1236         0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
# Line 1448 | Line 1254 | static const yytype_uint16 yytoknum[] =
1254       435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1255       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1256       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1257 <     465,   466,   467,   468,   469,    59,   125,   123,    61,    44
1257 >     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1258 >     475,   476,   477,   478,   479,   480,   481,    59,   125,   123,
1259 >      61,    44,    58
1260   };
1261   # endif
1262  
1263 < /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1456 < static const yytype_uint16 yyr1[] =
1457 < {
1458 <       0,   220,   221,   221,   222,   222,   222,   222,   222,   222,
1459 <     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
1460 <     222,   222,   222,   222,   222,   222,   223,   223,   224,   224,
1461 <     224,   224,   224,   224,   225,   225,   226,   226,   226,   226,
1462 <     227,   228,   228,   229,   229,   229,   230,   231,   232,   233,
1463 <     233,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1464 <     234,   234,   234,   234,   234,   234,   234,   235,   236,   237,
1465 <     237,   238,   238,   239,   239,   240,   240,   241,   242,   243,
1466 <     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1467 <     254,   255,   255,   256,   256,   256,   256,   257,   258,   259,
1468 <     260,   261,   261,   262,   262,   262,   263,   265,   264,   266,
1469 <     266,   267,   267,   267,   267,   268,   269,   269,   271,   270,
1470 <     272,   272,   273,   273,   273,   273,   273,   273,   273,   275,
1471 <     274,   276,   276,   277,   277,   277,   277,   277,   277,   277,
1472 <     277,   277,   278,   279,   280,   281,   282,   283,   285,   284,
1473 <     286,   286,   287,   287,   287,   287,   287,   287,   287,   287,
1474 <     287,   287,   287,   287,   287,   287,   287,   287,   287,   287,
1475 <     287,   287,   289,   288,   290,   290,   291,   291,   291,   291,
1476 <     291,   291,   291,   291,   291,   291,   291,   291,   291,   291,
1477 <     291,   291,   291,   291,   291,   293,   292,   294,   294,   295,
1478 <     295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
1479 <     295,   295,   295,   295,   296,   297,   298,   299,   300,   301,
1480 <     302,   303,   304,   305,   306,   307,   308,   309,   311,   310,
1481 <     313,   312,   314,   314,   315,   315,   315,   316,   316,   317,
1482 <     317,   317,   317,   317,   319,   318,   320,   320,   321,   321,
1483 <     322,   323,   325,   324,   326,   326,   327,   327,   327,   327,
1484 <     327,   327,   327,   327,   327,   328,   329,   330,   331,   333,
1485 <     332,   334,   334,   335,   335,   335,   335,   335,   335,   335,
1486 <     335,   335,   336,   337,   338,   340,   339,   341,   341,   342,
1487 <     342,   342,   342,   343,   344,   345,   346,   347,   347,   348,
1488 <     348,   349,   351,   350,   352,   352,   353,   353,   353,   353,
1489 <     354,   355,   357,   356,   358,   358,   359,   359,   359,   359,
1490 <     359,   359,   359,   359,   359,   359,   361,   360,   362,   362,
1491 <     363,   363,   363,   364,   366,   365,   367,   367,   368,   368,
1492 <     368,   368,   368,   368,   368,   368,   368,   368,   370,   369,
1493 <     371,   371,   372,   372,   372,   372,   372,   372,   372,   372,
1494 <     372,   372,   372,   372,   372,   372,   373,   374,   375,   376,
1495 <     377,   378,   379,   379,   381,   380,   382,   382,   383,   383,
1496 <     384,   385,   386,   387,   388,   390,   389,   392,   391,   393,
1497 <     393,   394,   395,   395,   396,   396,   396,   396,   397,   398,
1498 <     400,   399,   401,   401,   402,   402,   402,   403,   404,   405,
1499 <     406,   406,   407,   407,   408,   410,   409,   412,   411,   413,
1500 <     413,   414,   415,   415,   416,   416,   416,   416,   417,   418,
1501 <     419,   420,   420,   421,   421,   421,   421,   421,   421,   421,
1502 <     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
1503 <     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
1504 <     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
1505 <     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
1506 <     421,   421,   421,   422,   423,   424,   425,   426,   427,   428,
1507 <     429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
1508 <     439,   440,   441,   442,   443,   444,   445,   446,   447,   447,
1509 <     448,   448,   449,   450,   451,   452,   453,   454,   455,   456,
1510 <     457,   458,   459,   460,   461,   462,   463,   464,   465,   467,
1511 <     466,   468,   468,   469,   469,   469,   469,   469,   469,   469,
1512 <     469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
1513 <     469,   469,   469,   471,   470,   472,   472,   473,   473,   473,
1514 <     473,   473,   473,   473,   473,   473,   473,   473,   473,   473,
1515 <     473,   473,   473,   473,   473,   473,   473,   474,   475,   476,
1516 <     477,   478,   478,   479,   479,   479,   479,   479,   479,   479,
1517 <     479,   479,   479,   479,   479,   479,   479,   479,   480,   481,
1518 <     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
1519 <     492,   493,   494,   495,   495,   496,   496,   496,   496,   496,
1520 <     496,   496,   497,   498,   499,   500,   501,   502
1521 < };
1263 > #define YYPACT_NINF -755
1264  
1265 < /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1266 < static const yytype_uint8 yyr2[] =
1265 > #define yypact_value_is_default(Yystate) \
1266 >  (!!((Yystate) == (-755)))
1267 >
1268 > #define YYTABLE_NINF -124
1269 >
1270 > #define yytable_value_is_error(Yytable_value) \
1271 >  0
1272 >
1273 >  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1274 >     STATE-NUM.  */
1275 > static const yytype_int16 yypact[] =
1276   {
1277 <       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1278 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1279 <       1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1280 <       3,     3,     3,     3,     0,     1,     2,     3,     3,     3,
1281 <       5,     2,     1,     1,     1,     2,     4,     4,     5,     2,
1282 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1283 <       1,     1,     1,     1,     1,     1,     2,     4,     4,     3,
1284 <       1,     1,     1,     3,     1,     1,     1,     4,     4,     4,
1285 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1286 <       5,     2,     1,     1,     1,     1,     2,     4,     4,     4,
1287 <       5,     2,     1,     1,     1,     2,     4,     0,     6,     2,
1288 <       1,     1,     1,     1,     2,     4,     4,     4,     0,     5,
1289 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1290 <       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1291 <       1,     2,     4,     4,     4,     4,     4,     4,     0,     5,
1292 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1293 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1294 <       1,     1,     0,     5,     3,     1,     1,     1,     1,     1,
1295 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1296 <       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1297 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1298 <       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
1299 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     6,
1300 <       0,     5,     3,     1,     1,     1,     1,     2,     1,     1,
1301 <       1,     1,     1,     2,     0,     5,     3,     1,     1,     3,
1302 <       4,     4,     0,     6,     2,     1,     1,     1,     1,     1,
1303 <       1,     1,     1,     1,     2,     4,     4,     4,     4,     0,
1304 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1305 <       1,     1,     4,     4,     4,     0,     6,     2,     1,     1,
1306 <       1,     1,     2,     4,     4,     4,     5,     2,     1,     1,
1307 <       1,     4,     0,     6,     2,     1,     1,     1,     1,     2,
1308 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1309 <       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
1310 <       1,     1,     2,     4,     0,     5,     3,     1,     1,     1,
1311 <       1,     1,     1,     1,     1,     1,     1,     1,     0,     6,
1312 <       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1313 <       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
1314 <       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1315 <       4,     4,     4,     4,     4,     0,     6,     0,     5,     3,
1316 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1317 <       0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
1318 <       2,     1,     1,     1,     4,     0,     6,     0,     5,     3,
1319 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1320 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1321 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1322 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1323 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1324 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1325 <       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
1326 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1327 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1328 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1329 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     0,
1330 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1331 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1332 <       1,     1,     1,     0,     5,     3,     1,     1,     1,     1,
1333 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1334 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1335 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1336 <       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
1337 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1338 <       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
1339 <       1,     1,     4,     4,     4,     4,     4,     4
1277 >    -755,   716,  -755,  -198,  -223,  -208,  -755,  -755,  -755,  -186,
1278 >    -755,  -184,  -755,  -755,  -755,  -179,  -755,  -755,  -755,  -168,
1279 >    -154,  -755,  -146,  -123,  -755,  -755,  -755,  -755,  -755,  -755,
1280 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1281 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,   282,
1282 >     923,   -84,   -59,   -46,   130,   -45,   414,   -39,   -26,   -19,
1283 >      79,   -18,   -11,    21,   503,   408,    40,    39,    53,    41,
1284 >     -14,    -1,    64,    66,     7,  -755,  -755,  -755,  -755,  -755,
1285 >      81,    82,    96,   100,   102,   104,   105,   117,   119,   121,
1286 >     127,   128,    13,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1287 >    -755,  -755,  -755,  -755,  -755,  -755,   706,   577,    61,  -755,
1288 >     131,    10,  -755,  -755,    36,  -755,   132,   133,   135,   139,
1289 >     141,   142,   143,   144,   146,   148,   151,   153,   157,   158,
1290 >     160,   162,   164,   165,   166,   168,   170,   180,   182,   183,
1291 >     187,   188,   189,  -755,   192,  -755,   193,   195,   197,   199,
1292 >     200,   201,   202,   206,   207,   208,   209,   212,   213,   216,
1293 >     217,   219,   221,   222,   223,   108,  -755,  -755,  -755,  -755,
1294 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1295 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1296 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1297 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1298 >    -755,  -755,  -755,  -755,  -755,  -755,   353,     8,   292,    29,
1299 >     227,   231,    24,  -755,  -755,  -755,    22,   546,    47,  -755,
1300 >     236,   237,   240,   246,   248,   251,   253,   254,    15,  -755,
1301 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,    60,   255,
1302 >     257,   259,   260,   262,   263,   265,   266,   272,   288,   291,
1303 >     294,   303,   305,   306,   307,   308,     9,  -755,  -755,  -755,
1304 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1305 >    -755,  -755,  -755,  -755,  -755,     4,    65,   309,    19,  -755,
1306 >    -755,  -755,   155,  -755,   313,    23,  -755,  -755,    62,  -755,
1307 >     215,   352,   365,   270,  -755,   252,   436,   335,   438,   440,
1308 >     440,   440,   443,   451,   454,   355,   356,   340,  -755,   347,
1309 >     346,   351,   354,  -755,   357,   359,   360,   362,   366,   367,
1310 >     368,   369,   370,   372,   373,   377,   258,  -755,  -755,  -755,
1311 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1312 >    -755,  -755,  -755,  -755,   358,   378,   381,   382,   383,   384,
1313 >     385,  -755,   386,   387,   388,   390,   391,   392,   393,   326,
1314 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1315 >    -755,  -755,  -755,  -755,  -755,  -755,   394,   397,    69,  -755,
1316 >    -755,  -755,   460,   409,  -755,  -755,   407,   411,    48,  -755,
1317 >    -755,  -755,   428,   440,   440,   432,   487,   433,   537,   523,
1318 >     437,   440,   439,   540,   543,   440,   545,   445,   446,   447,
1319 >     440,   550,   551,   440,   552,   553,   554,   555,   455,   441,
1320 >     456,   442,   457,   440,   440,   458,   459,   464,    58,    95,
1321 >     466,   467,   468,   547,   440,   469,   471,   440,   440,   472,
1322 >     473,   461,  -755,   462,   463,   465,  -755,   474,   476,   480,
1323 >     481,   482,   163,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1324 >    -755,  -755,  -755,   484,   485,    50,  -755,  -755,  -755,   475,
1325 >     488,   493,  -755,   494,  -755,    25,  -755,  -755,  -755,  -755,
1326 >    -755,   561,   562,   499,  -755,   502,   501,   505,    18,  -755,
1327 >    -755,  -755,   509,   507,   508,  -755,   511,   512,   514,   515,
1328 >     516,  -755,   518,    14,  -755,  -755,  -755,  -755,  -755,  -755,
1329 >    -755,  -755,  -755,  -755,  -755,   522,   526,   527,   528,    11,
1330 >    -755,  -755,  -755,  -755,   477,   529,   549,   563,   556,   557,
1331 >     560,   440,   533,  -755,  -755,   567,   564,   569,   586,   595,
1332 >     630,   638,   639,   641,   642,   648,   664,   652,   -99,   -42,
1333 >     653,   654,   558,  -755,   559,   566,  -755,    73,  -755,  -755,
1334 >    -755,  -755,   570,   574,  -755,   568,   656,   575,  -755,   576,
1335 >     579,  -755,   580,    27,  -755,  -755,  -755,  -755,   578,   584,
1336 >     587,  -755,   590,   591,   592,   593,   267,   597,   605,   607,
1337 >     615,   617,   618,   619,   623,  -755,  -755,   673,   674,   440,
1338 >     625,   676,   685,   440,   698,   699,   440,   734,   751,   755,
1339 >     440,   762,   762,   646,  -755,  -755,   752,   129,   754,   668,
1340 >     758,   764,   655,   766,   767,   784,   771,   775,   776,   777,
1341 >     677,  -755,   778,   780,   686,  -755,   689,  -755,   797,   798,
1342 >     696,  -755,   701,   704,   705,   708,   709,   710,   714,   715,
1343 >     717,   722,   723,   725,   728,   729,   730,   731,   732,   733,
1344 >     735,   737,   738,   739,   740,   741,   742,   743,   744,   660,
1345 >     745,   703,   747,   748,   749,   750,   753,   756,   757,   759,
1346 >     760,   769,   770,   772,   773,   781,   782,   783,   785,   788,
1347 >     789,   790,   791,  -755,  -755,   807,   763,   713,   810,   853,
1348 >     855,   856,   858,   792,  -755,   859,   862,   793,  -755,  -755,
1349 >     868,   875,   774,   897,   794,  -755,   795,   796,  -755,  -755,
1350 >     884,   888,   799,  -755,  -755,   891,   814,   800,   902,   906,
1351 >     908,   909,   823,   804,   912,   809,  -755,  -755,   914,   915,
1352 >     916,   813,  -755,   815,   816,   817,   818,   819,   820,   821,
1353 >     822,  -755,   824,   825,   826,   827,   828,   829,   830,   831,
1354 >     832,   833,   834,   835,   836,  -755,  -755,  -209,  -755,  -755,
1355 >    -755,  -189,  -755,   837,   838,  -755,  -755,   918,   839,   840,
1356 >    -755,   841,  -755,    26,   843,  -755,  -755,   927,   842,   943,
1357 >     844,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,   440,
1358 >     440,   440,   440,   440,   440,   440,  -755,  -755,  -755,  -755,
1359 >    -755,  -755,  -755,  -755,  -755,  -755,   846,   847,   848,   -34,
1360 >     849,   850,   851,   852,   854,   857,   860,   861,   863,   864,
1361 >     289,   865,   866,  -755,   867,   869,   870,   871,   872,   873,
1362 >     874,     5,   876,   877,   878,   879,   880,   881,   882,  -755,
1363 >     883,   885,  -755,  -755,   886,   887,  -755,  -755,  -755,  -755,
1364 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1365 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1366 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1367 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1368 >    -755,  -755,  -755,  -755,  -755,  -174,  -755,  -755,  -755,  -755,
1369 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1370 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -172,
1371 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1372 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1373 >    -755,  -755,   889,   890,   245,   892,   893,   894,   895,   896,
1374 >    -755,   898,   899,  -755,   900,   901,   -16,   907,   903,  -755,
1375 >    -755,  -755,  -755,   904,   905,  -755,   910,   911,   524,   913,
1376 >     917,   919,   920,   921,   746,   922,  -755,   924,   925,   926,
1377 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1378 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1379 >    -755,  -755,  -755,   -99,  -755,   -42,  -755,  -755,   928,   632,
1380 >    -755,  -755,   929,   930,   931,  -755,    57,  -755,  -755,  -755,
1381 >    -755,  -755,   932,   787,   935,  -755,  -755,  -755,  -755,  -755,
1382 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -171,  -755,
1383 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1384 >     762,   762,   762,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1385 >    -755,  -755,  -755,  -755,  -755,  -755,  -155,  -755,  -755,  -755,
1386 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1387 >     660,  -755,   703,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1388 >    -755,  -755,  -755,  -755,  -755,   -50,  -755,  -755,  -755,  -755,
1389 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,   -49,
1390 >    -755,   972,   897,   936,  -755,  -755,  -755,  -755,  -755,   933,
1391 >    -755,  -755,   934,  -755,  -755,  -755,  -755,   937,  -755,  -755,
1392 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,   -23,  -755,
1393 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1394 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1395 >    -755,  -755,  -755,  -755,  -755,  -755,   -15,  -755,  -755,  -755,
1396 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1397 >    -755,  -755,  -755,  -755,  -755,     0,  -755,  -755,   959,  -101,
1398 >     938,   940,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1399 >    -755,  -755,  -755,  -755,    30,  -755,  -755,  -755,   -34,  -755,
1400 >    -755,  -755,  -755,     5,  -755,  -755,  -755,   245,  -755,   -16,
1401 >    -755,  -755,  -755,   954,   956,   957,  -755,   524,  -755,   746,
1402 >    -755,   632,   944,   945,   946,   297,  -755,  -755,   787,  -755,
1403 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1404 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1405 >    -755,    55,  -755,  -755,  -755,   297,  -755
1406   };
1407  
1408 < /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
1409 <   Performed when YYTABLE doesn't specify something else to do.  Zero
1410 <   means the default is an error.  */
1408 >  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1409 >     Performed when YYTABLE does not specify something else to do.  Zero
1410 >     means the default is an error.  */
1411   static const yytype_uint16 yydefact[] =
1412   {
1413 <       2,     0,     1,     0,     0,     0,   195,   348,   400,     0,
1414 <     415,     0,   252,   385,   228,     0,     0,   129,   285,     0,
1415 <       0,   302,   326,     0,     3,    23,    11,     4,     5,     6,
1416 <       8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1417 <      20,    22,    21,     7,    12,    24,    25,     0,     0,     0,
1413 >       2,     0,     1,     0,     0,     0,   222,   385,   433,     0,
1414 >     448,     0,   288,   424,   264,     0,   107,   147,   322,     0,
1415 >       0,   363,     0,     0,   339,     3,    23,    11,     4,    24,
1416 >       5,     6,     8,     9,    10,    13,    14,    15,    16,    17,
1417 >      18,    19,    20,    22,    21,     7,    12,    25,    26,     0,
1418         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1419         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1420 <       0,     0,    92,    93,    95,    94,   597,     0,     0,     0,
1420 >       0,     0,     0,     0,     0,    99,   100,   102,   101,   624,
1421         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1422 <       0,     0,   582,   596,   592,   584,   585,   586,   587,   588,
1423 <     583,   589,   590,   591,   593,   594,   595,     0,     0,     0,
1424 <     413,     0,     0,   411,   412,     0,   482,     0,     0,     0,
1422 >       0,     0,     0,   611,   623,   613,   614,   615,   616,   612,
1423 >     617,   618,   619,   620,   621,   622,     0,     0,     0,   446,
1424 >       0,     0,   444,   445,     0,   509,     0,     0,     0,     0,
1425         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1426         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1427 <       0,     0,     0,     0,     0,     0,   553,     0,   529,     0,
1427 >       0,     0,     0,   581,     0,   556,     0,     0,     0,     0,
1428         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1429 <       0,     0,     0,     0,     0,     0,     0,   432,   480,   474,
1430 <     475,   476,   477,   478,   473,   443,   433,   434,   468,   435,
1431 <     436,   437,   438,   439,   440,   441,   442,   470,   444,   445,
1432 <     479,   447,   452,   448,   450,   449,   463,   464,   451,   453,
1433 <     454,   455,   456,   457,   446,   459,   460,   461,   481,   471,
1434 <     472,   469,   462,   458,   466,   467,   465,     0,     0,     0,
1435 <       0,     0,     0,   102,   103,   104,     0,     0,     0,     0,
1436 <       0,    42,    43,    44,     0,     0,   621,     0,     0,     0,
1437 <       0,     0,     0,     0,   614,   615,   616,   619,   617,   618,
1621 <     620,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1622 <       0,     0,     0,     0,     0,     0,     0,     0,    50,    63,
1623 <      64,    62,    59,    58,    65,    51,    61,    54,    55,    56,
1624 <      52,    60,    57,    53,     0,     0,   300,     0,     0,   298,
1625 <     299,    96,     0,     0,     0,     0,    91,     0,     0,     0,
1429 >       0,     0,     0,     0,     0,     0,   459,   506,   508,   500,
1430 >     501,   502,   503,   504,   499,   470,   460,   461,   462,   463,
1431 >     464,   465,   466,   467,   468,   469,   496,   471,   472,   505,
1432 >     474,   479,   480,   475,   477,   476,   490,   491,   478,   481,
1433 >     482,   483,   484,   473,   486,   487,   488,   507,   497,   498,
1434 >     495,   489,   485,   493,   494,   492,     0,     0,     0,     0,
1435 >       0,     0,     0,    45,    46,    47,     0,     0,     0,   648,
1436 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   639,
1437 >     640,   641,   642,   643,   646,   644,   645,   647,     0,     0,
1438         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1439 <       0,     0,   581,     0,     0,     0,     0,     0,     0,     0,
1440 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   198,
1441 <     199,   202,   203,   205,   206,   207,   208,   209,   210,   211,
1442 <     212,   200,   201,   204,     0,     0,     0,     0,     0,   374,
1443 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   351,
1444 <     352,   353,   354,   355,   356,   358,   357,   360,   364,   361,
1445 <     362,   363,   359,   406,     0,     0,     0,   403,   404,   405,
1446 <       0,     0,   410,   427,     0,     0,   417,   426,     0,   423,
1447 <     424,   425,     0,     0,     0,     0,     0,     0,     0,     0,
1439 >       0,     0,     0,     0,     0,     0,     0,    53,    68,    69,
1440 >      67,    64,    63,    70,    54,    66,    57,    58,    59,    55,
1441 >      65,    60,    61,    62,    56,     0,     0,     0,     0,   118,
1442 >     119,   120,     0,   337,     0,     0,   335,   336,     0,   103,
1443 >       0,     0,     0,     0,    98,     0,     0,     0,     0,     0,
1444 >       0,     0,     0,     0,     0,     0,     0,     0,   610,     0,
1445 >       0,     0,     0,   258,     0,     0,     0,     0,     0,     0,
1446 >       0,     0,     0,     0,     0,     0,     0,   225,   226,   229,
1447 >     231,   232,   233,   234,   235,   236,   237,   238,   227,   228,
1448 >     230,   239,   240,   241,     0,     0,     0,     0,     0,     0,
1449 >       0,   413,     0,     0,     0,     0,     0,     0,     0,     0,
1450 >     388,   389,   390,   391,   392,   393,   394,   396,   395,   398,
1451 >     402,   399,   400,   401,   397,   439,     0,     0,     0,   436,
1452 >     437,   438,     0,     0,   443,   454,     0,     0,     0,   451,
1453 >     452,   453,     0,     0,     0,     0,     0,     0,     0,     0,
1454         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1455         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1456         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1457         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1458 <       0,     0,   431,     0,     0,     0,   269,     0,     0,     0,
1459 <       0,     0,     0,   255,   256,   257,   258,   263,   259,   260,
1460 <     261,   262,   397,     0,   387,     0,   396,     0,   393,   394,
1461 <     395,     0,   230,     0,     0,     0,   240,     0,   238,   239,
1462 <     241,   242,   105,     0,     0,   101,     0,    45,     0,     0,
1463 <       0,    41,     0,     0,     0,   172,     0,     0,     0,   148,
1464 <       0,     0,   132,   133,   134,   135,   138,   139,   137,   136,
1465 <     140,     0,     0,     0,     0,     0,   288,   289,   290,   291,
1466 <       0,     0,     0,     0,     0,     0,     0,   613,    66,     0,
1458 >       0,     0,   458,     0,     0,     0,   305,     0,     0,     0,
1459 >       0,     0,     0,   291,   292,   293,   294,   299,   295,   296,
1460 >     297,   298,   430,     0,     0,     0,   427,   428,   429,     0,
1461 >       0,     0,   266,     0,   276,     0,   274,   275,   277,   278,
1462 >      48,     0,     0,     0,    44,     0,     0,     0,     0,   110,
1463 >     111,   112,     0,     0,     0,   195,     0,     0,     0,     0,
1464 >       0,   170,     0,     0,   150,   151,   152,   153,   156,   157,
1465 >     158,   159,   155,   154,   160,     0,     0,     0,     0,     0,
1466 >     325,   326,   327,   328,     0,     0,     0,     0,     0,     0,
1467 >       0,     0,     0,   638,    71,     0,     0,     0,     0,     0,
1468         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1469 <       0,     0,     0,     0,     0,    49,     0,     0,   312,     0,
1470 <       0,   305,   306,   307,   308,     0,     0,   334,     0,   329,
1471 <     330,   331,     0,     0,   297,     0,     0,     0,    90,     0,
1472 <       0,     0,    26,     0,     0,     0,     0,     0,     0,     0,
1473 <       0,     0,     0,     0,   580,   213,     0,     0,     0,     0,
1469 >       0,     0,     0,    52,     0,     0,   371,     0,   366,   367,
1470 >     368,   121,     0,     0,   117,     0,     0,     0,   334,     0,
1471 >       0,   349,     0,     0,   342,   343,   344,   345,     0,     0,
1472 >       0,    97,     0,     0,     0,     0,    27,     0,     0,     0,
1473 >       0,     0,     0,     0,     0,   609,   242,     0,     0,     0,
1474         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1475 <       0,   197,   365,     0,     0,     0,     0,     0,     0,     0,
1657 <       0,     0,     0,     0,     0,     0,     0,   350,     0,     0,
1658 <       0,   402,     0,   409,     0,     0,     0,     0,   422,     0,
1475 >       0,     0,     0,     0,   224,   403,     0,     0,     0,     0,
1476         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1477 +       0,   387,     0,     0,     0,   435,     0,   442,     0,     0,
1478 +       0,   450,     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,     0,     0,     0,     0,     0,
1481         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1482         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1483 <     430,   264,     0,     0,     0,     0,     0,     0,     0,     0,
1484 <       0,   254,     0,     0,     0,     0,   392,   243,     0,     0,
1485 <       0,     0,     0,   237,     0,   100,     0,     0,     0,    40,
1486 <     141,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1487 <     131,   292,     0,     0,     0,     0,   287,     0,     0,     0,
1488 <       0,     0,     0,   612,     0,     0,     0,     0,     0,     0,
1489 <       0,     0,    71,    72,     0,    70,    75,    76,     0,    74,
1490 <       0,     0,     0,     0,     0,    48,   309,     0,     0,     0,
1491 <       0,   304,   332,     0,     0,     0,   328,     0,   296,    99,
1492 <      98,    97,   607,   606,   598,    26,    26,    26,    26,    26,
1493 <      28,    27,   600,   601,   605,   603,   602,   608,   609,   610,
1494 <     611,   604,   599,     0,     0,     0,     0,     0,     0,     0,
1495 <       0,     0,     0,     0,     0,    34,     0,     0,   196,     0,
1483 >       0,     0,     0,   457,   300,     0,     0,     0,     0,     0,
1484 >       0,     0,     0,     0,   290,     0,     0,     0,   426,   279,
1485 >       0,     0,     0,     0,     0,   273,     0,     0,    43,   113,
1486 >       0,     0,     0,   109,   161,     0,     0,     0,     0,     0,
1487 >       0,     0,     0,     0,     0,     0,   149,   329,     0,     0,
1488 >       0,     0,   324,     0,     0,     0,     0,     0,     0,     0,
1489 >       0,   637,     0,     0,     0,     0,     0,     0,     0,     0,
1490 >       0,     0,     0,     0,     0,    76,    77,     0,    75,    80,
1491 >      81,     0,    79,     0,     0,    51,   369,     0,     0,     0,
1492 >     365,     0,   116,     0,     0,   333,   346,     0,     0,     0,
1493 >       0,   341,   106,   105,   104,   632,   631,   625,   635,    27,
1494 >      27,    27,    27,    27,    27,    27,    29,    28,   636,   626,
1495 >     627,   630,   629,   628,   633,   634,     0,     0,     0,     0,
1496         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1497 <       0,     0,     0,   349,     0,     0,   401,   414,     0,     0,
1498 <       0,   416,   495,   499,   513,   579,   527,   493,   521,   524,
1499 <     494,   485,   484,   486,   487,   488,   502,   491,   492,   503,
1500 <     490,   498,   497,   496,   522,   483,   520,   577,   578,   517,
1501 <     514,   564,   557,   574,   575,   558,   559,   560,   561,   569,
1502 <     562,   572,   576,   565,   570,   566,   571,   563,   568,   567,
1503 <     573,     0,   556,   519,   539,   533,   550,   551,   534,   535,
1504 <     536,   537,   545,   538,   548,   552,   541,   546,   542,   547,
1505 <     540,   544,   543,   549,     0,   532,   512,   515,   526,   489,
1506 <     516,   505,   510,   511,   508,   509,   506,   507,   501,   500,
1507 <     525,   528,   518,   523,   504,     0,     0,     0,     0,     0,
1508 <       0,     0,     0,   253,     0,     0,     0,   386,     0,     0,
1509 <       0,   248,   244,   247,   229,   106,     0,     0,   118,     0,
1510 <       0,   110,   111,   113,   112,    46,    47,     0,     0,     0,
1511 <       0,     0,     0,     0,     0,   130,     0,     0,     0,   286,
1512 <     622,   626,   624,   627,   623,   625,    83,    89,    81,    85,
1513 <      84,    78,    77,    79,    67,     0,    68,     0,    82,    80,
1514 <      88,    86,    87,     0,     0,     0,   303,     0,     0,   327,
1515 <     301,    29,    30,    31,    32,    33,   225,   226,   218,   220,
1516 <     222,   221,   219,   214,   227,   217,   215,   216,    34,    34,
1517 <      34,    36,    35,   223,   224,   370,   372,   373,   383,   380,
1518 <     378,   379,     0,   377,   367,   381,   382,   366,   371,   369,
1519 <     384,   368,   407,   408,   428,   429,   421,     0,   420,   554,
1520 <       0,   530,     0,   267,   268,   277,   274,   279,   276,   275,
1521 <     281,   278,   280,   273,     0,   272,   266,   284,   283,   282,
1522 <     265,   399,   391,     0,   390,   398,   235,   236,   234,     0,
1523 <     233,   251,   250,     0,     0,     0,   114,     0,     0,     0,
1524 <       0,   109,   147,   145,   187,   184,   183,   176,   178,   194,
1525 <     188,   191,   186,   177,   192,   180,   189,   193,   181,   190,
1526 <     185,   179,   182,     0,   175,   142,   144,   146,   158,   152,
1527 <     169,   170,   153,   154,   155,   156,   164,   157,   167,   171,
1528 <     160,   165,   161,   166,   159,   163,   162,   168,     0,   151,
1529 <     143,   294,   295,   293,    69,    73,   310,   316,   322,   325,
1530 <     318,   324,   319,   323,   321,   317,   320,     0,   315,   311,
1531 <     333,   338,   344,   347,   340,   346,   341,   345,   343,   339,
1532 <     342,     0,   337,    37,    38,    39,   375,     0,   418,     0,
1533 <     555,   531,   270,     0,   388,     0,   231,     0,   249,   246,
1534 <     245,     0,     0,     0,     0,   108,   173,     0,   149,     0,
1535 <     313,     0,   335,     0,   376,   419,   271,   389,   232,   115,
1536 <     124,   127,   126,   123,   128,   125,   122,     0,   121,   117,
1537 <     116,   174,   150,   314,   336,   119,     0,   120
1497 >      37,     0,     0,   223,     0,     0,     0,     0,     0,     0,
1498 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   386,
1499 >       0,     0,   434,   447,     0,     0,   449,   522,   526,   541,
1500 >     511,   608,   554,   548,   551,   521,   513,   512,   515,   516,
1501 >     514,   529,   519,   520,   530,   518,   525,   524,   523,   549,
1502 >     510,   606,   607,   545,   591,   585,   602,   586,   587,   588,
1503 >     596,   605,   589,   599,   603,   592,   604,   597,   593,   598,
1504 >     590,   601,   595,   594,   600,     0,   584,   547,   565,   560,
1505 >     577,   561,   562,   563,   571,   580,   564,   574,   578,   567,
1506 >     579,   572,   568,   573,   566,   576,   570,   569,   575,     0,
1507 >     559,   542,   540,   543,   553,   544,   532,   538,   539,   536,
1508 >     537,   533,   534,   535,   552,   555,   517,   546,   528,   527,
1509 >     550,   531,     0,     0,     0,     0,     0,     0,     0,     0,
1510 >     289,     0,     0,   425,     0,     0,     0,   284,   280,   283,
1511 >     265,    49,    50,     0,     0,   108,     0,     0,     0,     0,
1512 >       0,     0,     0,     0,     0,     0,   148,     0,     0,     0,
1513 >     323,   650,   649,   655,   653,   656,   651,   652,   654,    88,
1514 >      96,    87,    94,    95,    86,    90,    89,    83,    82,    84,
1515 >      93,    85,    72,     0,    73,     0,    91,    92,     0,     0,
1516 >     364,   122,     0,     0,     0,   134,     0,   126,   127,   129,
1517 >     128,   338,     0,     0,     0,   340,    30,    31,    32,    33,
1518 >      34,    35,    36,   253,   254,   246,   263,   262,     0,   261,
1519 >     248,   250,   257,   249,   247,   256,   243,   255,   245,   244,
1520 >      37,    37,    37,    39,    38,   251,   252,   408,   411,   412,
1521 >     422,   419,   405,   420,   417,   418,     0,   416,   421,   404,
1522 >     410,   407,   409,   423,   406,   440,   441,   455,   456,   582,
1523 >       0,   557,     0,   303,   304,   313,   310,   315,   311,   312,
1524 >     318,   314,   316,   309,   317,     0,   308,   302,   321,   320,
1525 >     319,   301,   432,   431,   287,   286,   271,   272,   270,     0,
1526 >     269,     0,     0,     0,   114,   115,   169,   165,   214,   202,
1527 >     211,   210,   200,   205,   221,   213,   219,   204,   207,   216,
1528 >     218,   215,   212,   220,   208,   217,   206,   209,     0,   198,
1529 >     162,   164,   166,   167,   168,   179,   174,   191,   175,   176,
1530 >     177,   185,   194,   178,   188,   192,   181,   193,   186,   182,
1531 >     187,   180,   190,   184,   183,   189,     0,   173,   163,   332,
1532 >     330,   331,    74,    78,   370,   375,   381,   384,   377,   383,
1533 >     378,   382,   380,   376,   379,     0,   374,   130,     0,     0,
1534 >       0,     0,   125,   347,   353,   359,   362,   355,   361,   356,
1535 >     360,   358,   354,   357,     0,   352,   348,   259,     0,    40,
1536 >      41,    42,   414,     0,   583,   558,   306,     0,   267,     0,
1537 >     285,   282,   281,     0,     0,     0,   196,     0,   171,     0,
1538 >     372,     0,     0,     0,     0,     0,   124,   350,     0,   260,
1539 >     415,   307,   268,   201,   199,   203,   197,   172,   373,   131,
1540 >     133,   132,   140,   145,   144,   139,   142,   146,   143,   138,
1541 >     141,     0,   137,   351,   135,     0,   136
1542   };
1543  
1544 < /* YYDEFGOTO[NTERM-NUM].  */
1545 < static const yytype_int16 yydefgoto[] =
1723 < {
1724 <      -1,     1,    24,   780,   781,  1021,  1022,    25,   230,   231,
1725 <     232,   233,    26,   267,   268,   269,   270,   744,   745,   748,
1726 <     749,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1727 <     280,   281,   282,   283,    27,    71,    72,    73,    74,    75,
1728 <      28,   222,   223,   224,   225,   226,   950,   951,   952,   953,
1729 <     954,  1088,  1217,  1218,    29,    60,   501,   502,   503,   504,
1730 <     505,   506,   507,   508,   509,   717,  1138,  1139,   510,   713,
1731 <    1113,  1114,    30,    49,   328,   329,   330,   331,   332,   333,
1732 <     334,   335,   336,   337,   338,   339,   340,   341,   342,   343,
1733 <      31,    57,   476,   698,  1079,  1080,   477,   478,   479,  1085,
1734 <     942,   943,   480,   481,    32,    55,   452,   453,   454,   455,
1735 <     456,   457,   458,   684,  1064,  1065,   459,   460,   461,    33,
1736 <      61,   515,   516,   517,   518,   519,    34,   288,   289,   290,
1737 <      35,    64,   550,   551,   552,   553,   554,   758,  1157,  1158,
1738 <      36,    65,   558,   559,   560,   561,   764,  1171,  1172,    37,
1739 <      50,   358,   359,   360,   361,   362,   363,   364,   365,   366,
1740 <     367,   607,  1032,  1033,   368,   369,   370,   371,   372,    38,
1741 <      56,   466,   693,  1073,  1074,   467,   468,   469,   470,    39,
1742 <      51,   376,   377,   378,   379,    40,   112,   113,   114,    41,
1743 <      53,   387,   626,  1047,  1048,   388,   389,   390,   391,    42,
1744 <     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1745 <     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1746 <     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1747 <     196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1748 <     206,   207,   208,   209,   210,   211,   212,   423,   904,   905,
1749 <     213,   421,   881,   882,   214,   215,   216,    43,    91,    92,
1750 <      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1751 <     103,   104,   105,   106,    44,   243,   244,   245,   246,   247,
1752 <     248,   249,   250
1753 < };
1754 <
1755 < /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1756 <   STATE-NUM.  */
1757 < #define YYPACT_NINF -744
1758 < static const yytype_int16 yypact[] =
1544 >  /* YYPGOTO[NTERM-NUM].  */
1545 > static const yytype_int16 yypgoto[] =
1546   {
1547 <    -744,   610,  -744,  -209,  -187,  -179,  -744,  -744,  -744,  -176,
1548 <    -744,  -171,  -744,  -744,  -744,  -166,  -164,  -744,  -744,  -139,
1549 <    -136,  -744,  -744,  -131,  -744,  -744,  -744,  -744,  -744,  -744,
1550 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1551 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,    61,   807,  -126,
1552 <    -104,   -84,    16,   -79,   382,   -77,   -63,   -60,     7,    21,
1553 <     -49,   -40,   638,   381,   -26,    52,    25,  -152,    62,    85,
1554 <      86,    18,  -744,  -744,  -744,  -744,  -744,    88,    89,    93,
1555 <      94,    96,   101,   108,   112,   118,   119,   125,   127,   132,
1556 <     133,   162,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1557 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,   531,   499,   266,
1558 <    -744,   135,    28,  -744,  -744,    11,  -744,   142,   143,   145,
1559 <     147,   148,   150,   153,   163,   166,   167,   169,   173,   174,
1560 <     175,   177,   178,   180,   182,   183,   185,   191,   197,   200,
1561 <     201,   202,   204,   211,   212,   215,  -744,   216,  -744,   217,
1562 <     218,   221,   222,   225,   226,   229,   234,   235,   237,   238,
1563 <     239,   242,   253,   256,   257,   262,    38,  -744,  -744,  -744,
1564 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1565 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1566 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1567 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1568 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,   337,    24,   259,
1569 <      73,   263,     4,  -744,  -744,  -744,   126,   131,   264,   270,
1570 <      59,  -744,  -744,  -744,   389,   209,  -744,   276,   279,   280,
1571 <     281,   285,   287,     3,  -744,  -744,  -744,  -744,  -744,  -744,
1572 <    -744,   149,   288,   289,   290,   292,   299,   301,   302,   303,
1573 <     304,   305,   307,   308,   315,   324,   330,    75,  -744,  -744,
1574 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1575 <    -744,  -744,  -744,  -744,   208,    30,  -744,   331,    15,  -744,
1576 <    -744,  -744,   107,   254,   359,   165,  -744,   385,   396,   367,
1790 <     454,   454,   455,   457,   461,   399,   401,   464,   454,   404,
1791 <     405,   351,  -744,   358,   356,   360,   361,   362,   364,   365,
1792 <     369,   374,   375,   379,   383,   386,   388,   395,   232,  -744,
1793 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1794 <    -744,  -744,  -744,  -744,   384,   397,   400,   403,   408,  -744,
1795 <     411,   412,   420,   423,   424,   427,   433,   434,   260,  -744,
1796 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1797 <    -744,  -744,  -744,  -744,   435,   437,     8,  -744,  -744,  -744,
1798 <     458,   407,  -744,  -744,   441,   442,  -744,  -744,    36,  -744,
1799 <    -744,  -744,   417,   454,   454,   501,   443,   459,   524,   543,
1800 <     502,   454,   503,   454,   565,   567,   568,   508,   509,   513,
1801 <     454,   577,   578,   454,   580,   583,   566,   584,   587,   527,
1802 <     528,   475,   535,   478,   454,   454,   537,   540,   541,   542,
1803 <    -146,  -133,   544,   546,   454,   454,   585,   454,   550,   553,
1804 <     554,   510,  -744,   515,   514,   517,  -744,   519,   521,   525,
1805 <     529,   530,    58,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1806 <    -744,  -744,  -744,   533,  -744,   534,  -744,    10,  -744,  -744,
1807 <    -744,   538,  -744,   536,   539,   545,  -744,   115,  -744,  -744,
1808 <    -744,  -744,  -744,   582,   547,  -744,   532,  -744,   640,   643,
1809 <     549,  -744,   555,   559,   560,  -744,   562,   569,   572,  -744,
1810 <     573,    70,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1811 <    -744,   558,   588,   595,   597,   146,  -744,  -744,  -744,  -744,
1812 <     623,   625,   687,   658,   659,   454,   606,  -744,  -744,   704,
1813 <     663,   706,   707,   709,   713,   714,   715,    79,   159,   717,
1814 <     718,   646,   719,   720,   626,  -744,   628,   622,  -744,   624,
1815 <     128,  -744,  -744,  -744,  -744,   629,   630,  -744,    22,  -744,
1816 <    -744,  -744,   728,   632,  -744,   634,   635,   636,  -744,   637,
1817 <     639,   641,   430,   642,   645,   648,   649,   650,   651,   652,
1818 <     653,   654,   656,   657,  -744,  -744,   754,   756,   454,   759,
1819 <     776,   778,   779,   761,   784,   785,   454,   454,   786,   786,
1820 <     671,  -744,  -744,   769,   122,   770,   729,   672,   773,   774,
1821 <     775,   777,   795,   780,   781,   782,   681,  -744,   783,   787,
1822 <     682,  -744,   689,  -744,   788,   789,   690,   694,  -744,   695,
1823 <     696,   697,   698,   699,   702,   703,   705,   708,   710,   712,
1824 <     716,   721,   722,   723,   724,   725,   726,   727,   730,   731,
1825 <     732,   733,   734,   735,   736,   737,   738,   739,   551,   740,
1826 <     599,   741,   742,   743,   744,   745,   746,   747,   748,   749,
1827 <     750,   751,   752,   753,   755,   757,   758,   760,   762,   763,
1828 <    -744,  -744,   801,   764,   711,   803,   823,   810,   812,   814,
1829 <     765,  -744,   815,   766,   817,   767,  -744,  -744,   768,   825,
1830 <     826,   870,   772,  -744,   790,  -744,   184,   791,   792,  -744,
1831 <    -744,   853,   816,   771,   856,   861,   863,   793,   865,   794,
1832 <    -744,  -744,   867,   872,   873,   797,  -744,   798,   799,   800,
1833 <     802,   804,   805,  -744,   806,   808,   809,   811,   813,   818,
1834 <     819,   820,  -744,  -744,  -195,  -744,  -744,  -744,  -172,  -744,
1835 <     821,   822,   824,   827,   828,  -744,  -744,   874,   829,   875,
1836 <     830,  -744,  -744,   876,   831,   833,  -744,   835,  -744,  -744,
1837 <    -744,  -744,  -744,  -744,  -744,   454,   454,   454,   454,   454,
1838 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1839 <    -744,  -744,  -744,   836,   837,   838,   839,   840,   841,   842,
1840 <     843,   844,   845,   846,   847,   314,   848,   849,  -744,   850,
1841 <     851,   852,   854,   855,    13,   857,   858,   859,   860,   862,
1842 <     864,   866,   868,  -744,   869,   871,  -744,  -744,   877,   878,
1843 <     879,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1844 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1845 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1846 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1847 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1848 <    -744,  -167,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1849 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1850 <    -744,  -744,  -744,  -744,  -154,  -744,  -744,  -744,  -744,  -744,
1851 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1852 <    -744,  -744,  -744,  -744,  -744,   880,   881,   309,   882,   883,
1853 <     884,   885,   886,  -744,   887,   893,   888,  -744,   -33,   889,
1854 <     890,   832,   891,  -744,  -744,  -744,   892,   894,  -744,   895,
1855 <     154,  -744,  -744,  -744,  -744,  -744,  -744,   896,   899,   511,
1856 <     900,   901,   902,   627,   903,  -744,   904,   905,   906,  -744,
1857 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1858 <    -744,  -744,  -744,  -744,  -744,    79,  -744,   159,  -744,  -744,
1859 <    -744,  -744,  -744,   907,   460,   908,  -744,   909,   665,  -744,
1860 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1861 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,   786,   786,
1862 <     786,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1863 <    -744,  -744,  -145,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1864 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,   -50,  -744,  -744,
1865 <     551,  -744,   599,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1866 <    -744,  -744,  -744,  -744,   -41,  -744,  -744,  -744,  -744,  -744,
1867 <    -744,  -744,  -744,   -27,  -744,  -744,  -744,  -744,  -744,   -17,
1868 <    -744,  -744,  -744,   898,   870,   910,  -744,   911,   912,   -86,
1869 <     913,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1870 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1871 <    -744,  -744,  -744,    34,  -744,  -744,  -744,  -744,  -744,  -744,
1872 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1873 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,    40,  -744,
1874 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1875 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,    53,  -744,  -744,
1876 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1877 <    -744,    63,  -744,  -744,  -744,  -744,  -744,    13,  -744,   879,
1878 <    -744,  -744,  -744,   309,  -744,   893,  -744,   -33,  -744,  -744,
1879 <    -744,   914,   277,   916,   917,  -744,  -744,   511,  -744,   627,
1880 <    -744,   460,  -744,   665,  -744,  -744,  -744,  -744,  -744,  -744,
1881 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,    68,  -744,  -744,
1882 <    -744,  -744,  -744,  -744,  -744,  -744,   277,  -744
1547 >    -755,  -755,  -755,  -298,  -307,  -754,  -621,  -755,  -755,   942,
1548 >    -755,  -755,  -755,  -755,   845,  -755,  -755,  -755,    72,  -755,
1549 >      77,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1550 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  1015,  -755,
1551 >    -755,  -755,  -755,  -755,  -755,   620,  -755,  -755,  -755,  -755,
1552 >     939,  -755,  -755,  -755,  -755,    93,  -755,  -755,  -755,  -755,
1553 >    -755,  -170,  -755,  -755,  -755,   622,  -755,  -755,  -755,  -755,
1554 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -119,  -755,  -755,
1555 >    -755,  -114,  -755,  -755,  -755,   803,  -755,  -755,  -755,  -755,
1556 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1557 >    -755,  -755,  -755,  -755,   -92,  -755,  -755,  -755,  -755,  -755,
1558 >     -98,  -755,   657,  -755,  -755,  -755,    38,  -755,  -755,  -755,
1559 >    -755,  -755,   681,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1560 >     -87,  -755,  -755,  -755,  -755,  -755,  -755,   616,  -755,  -755,
1561 >    -755,  -755,  -755,   941,  -755,  -755,  -755,  -755,   571,  -755,
1562 >    -755,  -755,  -755,  -755,  -100,  -755,  -755,  -755,   608,  -755,
1563 >    -755,  -755,  -755,   -94,  -755,  -755,  -755,   805,  -755,  -755,
1564 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,   -57,
1565 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,   702,  -755,
1566 >    -755,  -755,  -755,  -755,   801,  -755,  -755,  -755,  -755,  1067,
1567 >    -755,  -755,  -755,  -755,   786,  -755,  -755,  -755,  -755,  1014,
1568 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1569 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1570 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1571 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1572 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,    78,  -755,  -755,
1573 >    -755,    83,  -755,  -755,  -755,  -755,  -755,  1089,  -755,  -755,
1574 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1575 >    -755,  -755,   947,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1576 >    -755
1577   };
1578  
1579 < /* YYPGOTO[NTERM-NUM].  */
1580 < static const yytype_int16 yypgoto[] =
1579 >  /* YYDEFGOTO[NTERM-NUM].  */
1580 > static const yytype_int16 yydefgoto[] =
1581   {
1582 <    -744,  -744,  -744,  -743,  -298,  -663,  -598,  -744,  -744,   897,
1583 <    -744,  -744,  -744,  -744,   915,  -744,  -744,  -744,    14,  -744,
1584 <       1,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1585 <    -744,  -744,  -744,  -744,  -744,  -744,   924,  -744,  -744,  -744,
1586 <    -744,  -744,   796,  -744,  -744,  -744,  -744,    48,  -744,  -744,
1587 <    -744,  -744,  -744,  -226,  -744,  -744,  -744,   500,  -744,  -744,
1588 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -196,  -744,  -744,
1589 <    -744,  -193,  -744,  -744,  -744,   680,  -744,  -744,  -744,  -744,
1590 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1591 <    -744,  -744,  -744,  -744,  -744,  -177,  -744,   548,  -744,  -744,
1592 <    -744,   -62,  -744,  -744,  -744,  -744,  -744,   575,  -744,  -744,
1593 <    -744,  -744,  -744,  -744,  -744,  -153,  -744,  -744,  -744,  -744,
1594 <    -744,  -744,   516,  -744,  -744,  -744,  -744,  -744,   918,  -744,
1595 <    -744,  -744,  -744,   482,  -744,  -744,  -744,  -744,  -744,  -163,
1596 <    -744,  -744,  -744,   483,  -744,  -744,  -744,  -744,  -159,  -744,
1597 <    -744,  -744,   688,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1598 <    -744,  -744,  -744,  -137,  -744,  -744,  -744,  -744,  -744,  -744,
1599 <    -744,  -744,  -744,  -744,  -117,  -744,   604,  -744,  -744,  -744,
1600 <    -744,  -744,   700,  -744,  -744,  -744,  -744,   966,  -744,  -744,
1601 <    -744,  -744,  -744,  -744,   -99,  -744,   701,  -744,  -744,  -744,
1602 <    -744,   919,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1603 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1604 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1605 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1606 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,    35,
1607 <    -744,  -744,  -744,    32,  -744,  -744,  -744,  -744,  -744,   997,
1608 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1609 <    -744,  -744,  -744,  -744,  -744,  -744,   920,  -744,  -744,  -744,
1610 <    -744,  -744,  -744
1582 >      -1,     1,    25,   816,   817,  1073,  1074,    26,   222,   223,
1583 >     224,   225,    27,   266,   267,   268,   269,   777,   778,   781,
1584 >     782,   270,   271,   272,   273,   274,   275,   276,   277,   278,
1585 >     279,   280,   281,   282,   283,   284,    28,    74,    75,    76,
1586 >      77,    78,    29,    61,   498,   499,   500,   501,    30,   288,
1587 >     289,   290,   291,   292,  1036,  1037,  1038,  1039,  1040,  1210,
1588 >    1281,  1282,    31,    62,   513,   514,   515,   516,   517,   518,
1589 >     519,   520,   521,   522,   523,   743,  1186,  1187,   524,   737,
1590 >    1158,  1159,    32,    51,   336,   337,   338,   339,   340,   341,
1591 >     342,   343,   344,   345,   346,   347,   348,   349,   350,   351,
1592 >     352,   353,   610,  1058,  1059,    33,    59,   484,   722,  1129,
1593 >    1130,   485,   486,   487,  1133,   978,   979,   488,   489,    34,
1594 >      57,   462,   463,   464,   465,   466,   467,   468,   707,  1115,
1595 >    1116,   469,   470,   471,    35,    63,   529,   530,   531,   532,
1596 >     533,    36,   295,   296,   297,    37,    69,   583,   584,   585,
1597 >     586,   587,   798,  1224,  1225,    38,    66,   567,   568,   569,
1598 >     570,   788,  1205,  1206,    39,    52,   369,   370,   371,   372,
1599 >     373,   374,   375,   376,   377,   378,   379,   632,  1086,  1087,
1600 >     380,   381,   382,   383,   384,    40,    58,   475,   476,   477,
1601 >     478,    41,    53,   388,   389,   390,   391,    42,   111,   112,
1602 >     113,    43,    55,   398,   399,   400,   401,    44,   165,   166,
1603 >     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1604 >     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1605 >     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1606 >     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1607 >     207,   208,   209,   210,   211,   431,   939,   940,   212,   429,
1608 >     915,   916,   213,   214,   215,    45,    92,    93,    94,    95,
1609 >      96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1610 >      46,   238,   239,   240,   241,   242,   243,   244,   245,   246,
1611 >     247
1612   };
1613  
1614 < /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1615 <   positive, shift that token.  If negative, reduce the rule which
1616 <   number is the opposite.  If YYTABLE_NINF, syntax error.  */
1922 < #define YYTABLE_NINF -108
1614 >  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1615 >     positive, shift that token.  If negative, reduce the rule whose
1616 >     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1617   static const yytype_int16 yytable[] =
1618   {
1619 <     806,   807,   573,   574,   236,   220,    45,    46,   220,   373,
1620 <     581,   462,   383,   805,   667,   668,   286,   110,  1076,    67,
1621 <     984,  1030,   227,   555,   985,   462,   286,   669,   670,   110,
1622 <      47,   555,  1001,  1002,  1003,  1004,  1005,   383,    48,   116,
1623 <     237,    52,    68,   986,   117,   118,    54,   987,  1049,    69,
1624 <     119,    58,  1050,    59,   238,   239,   240,   241,   120,   443,
1625 <     227,  1051,    67,   291,   121,  1052,   122,   123,   124,   374,
1626 <    1176,   492,   242,   125,  1177,   444,   251,   111,    62,   126,
1627 <     127,    63,   128,   129,   130,    68,    66,   493,   131,   111,
1628 <     445,   107,    69,   132,   446,   630,   631,   133,   134,   252,
1629 <     384,   135,   494,   638,   287,   640,   495,    70,   228,  1193,
1630 <     136,   556,   647,   108,   287,   650,   471,   137,   138,   556,
1631 <     139,   140,   141,   142,   143,   384,   661,   662,   375,   546,
1632 <     463,   385,   253,   109,   229,   144,   673,   674,   115,   676,
1633 <     217,   145,   146,   147,   463,   148,   228,   511,   149,   150,
1634 <      70,   472,   151,  1077,   218,   946,   385,   219,  1078,   496,
1635 <     512,   464,   386,    76,   254,  1178,   255,   256,   234,  1179,
1636 <     447,   473,   229,   557,  1182,   464,   474,   235,  1183,   448,
1637 <     449,   557,   497,    77,    78,   946,   152,   386,  1184,    79,
1638 <     153,   284,  1185,   154,   155,   156,   157,   158,  1186,   498,
1639 <     159,   160,  1187,   257,  1031,   258,   259,   260,   261,   546,
1640 <     511,   450,   221,   742,   743,   221,   465,   547,  -107,   526,
1641 <     484,  -107,   262,   512,   620,   565,   695,   732,    80,    81,
1642 <     465,   563,   475,   313,   295,    82,    83,    84,   765,   513,
1643 <     161,   162,   163,   947,   381,   164,   263,   314,   315,  1196,
1644 <     165,   316,   627,  1197,   441,  1198,   264,    85,    86,  1199,
1645 <     471,   344,   499,   345,   451,   346,   514,   373,  1200,   285,
1646 <      87,    88,  1201,   947,   690,   490,   500,   347,  1202,   548,
1647 <     292,    89,  1203,  1225,   265,   266,   719,  1226,   482,    90,
1648 <     795,   544,   348,   746,   747,   472,   349,   547,   803,   804,
1649 <     810,   811,   513,   293,   294,   948,   297,   298,   317,   318,
1650 <     319,   299,   300,   320,   301,   473,   350,  1210,   351,   302,
1651 <     474,   321,  1055,  1018,  1019,  1020,   303,   374,   352,   514,
1652 <     304,   702,   322,   323,   549,   948,   305,   306,   443,  1211,
1653 <     486,  1212,  1056,   307,   760,   308,   487,   324,   325,   353,
1654 <     309,   310,  1057,   380,   444,  1173,  1174,  1175,  1058,   548,
1655 <     392,   393,   725,   394,   528,   395,   396,   949,   397,   445,
1656 <    1090,   398,   566,   446,  1059,   326,   475,   354,   311,  1213,
1657 <     568,   399,   251,   116,   400,   401,   375,   402,   117,   118,
1658 <     492,   403,   404,   405,   119,   406,   407,   949,   408,  1060,
1659 <     409,   410,   120,   411,   355,   252,   493,  1061,   121,   412,
1660 <     122,   123,   124,   805,   549,   413,   327,   125,   414,   415,
1661 <     416,   494,   417,   126,   127,   495,   128,   129,   130,   418,
1662 <     419,   356,   131,   420,   422,   424,   425,   132,   253,   426,
1663 <     427,   133,   134,   428,   429,   135,  1062,   430,   600,   447,
1664 <    1214,  1215,   431,   432,   136,   433,   434,   435,   448,   449,
1665 <     436,   137,   138,  1063,   139,   140,   141,   142,   143,   357,
1666 <     254,   437,   255,   256,   438,   439,   616,   567,   496,   144,
1667 <     440,   483,   488,  1216,   569,   145,   146,   147,   489,   148,
1668 <     450,  1194,   149,   150,   520,   570,   151,   521,   522,   523,
1669 <     344,   497,   345,   524,   346,   525,   529,   530,   531,   257,
1670 <     532,   258,   259,   260,   261,  1094,   347,   533,   498,   534,
1671 <     535,   536,   537,   538,  1147,   539,   540,   571,   262,   572,
1672 <     152,   348,   313,   541,   153,   349,  1095,   154,   155,   156,
1673 <     157,   158,   542,   451,   159,   160,   314,   315,   543,   562,
1674 <     316,  1096,   263,   572,   575,   350,   576,   351,  1097,   578,
1675 <     577,   579,   264,   580,   582,   583,   584,   352,   775,   776,
1676 <     777,   778,   779,   585,   586,  1098,   622,   629,   587,   588,
1677 <     589,   499,   590,   591,   161,   162,   163,   592,   353,   164,
1678 <     265,   266,   593,   594,   165,   500,  1148,   595,  1099,   602,
1679 <     632,   596,   861,   633,   597,  1100,   598,   317,   318,   319,
1680 <       2,     3,   320,   599,     4,   603,   354,  1101,   604,   634,
1681 <     321,   605,   623,   635,     5,  1149,   606,     6,     7,   608,
1682 <     609,   322,   323,     8,  1150,  1102,  1103,  1104,   610,   236,
1683 <    1151,   611,   612,   355,     9,   613,   324,   325,    10,    11,
1684 <     884,   614,   615,   618,  1152,   619,  1153,  1154,    12,   624,
1685 <     625,   636,   637,   639,   641,  1155,   642,   643,   644,   645,
1686 <     356,  1156,    13,   646,   326,   237,   648,   649,  1118,   651,
1687 <      14,    15,   652,   654,   653,  1105,   655,   656,   657,   238,
1688 <     239,   240,   241,   658,  1106,   659,   660,   663,    16,  1107,
1689 <     664,   665,   666,   675,   671,  1108,   672,   242,   357,  1109,
1690 <     677,  1110,    17,   678,   679,   327,  1111,   862,   863,   864,
1691 <     865,   866,  1112,   867,   868,   680,   869,   870,   871,  1161,
1692 <     681,   872,   682,   873,   874,   683,   875,   685,   876,   686,
1693 <     877,   878,   704,   687,   879,   752,    18,   688,   689,   706,
1694 <     880,   692,   694,   697,   699,    19,    20,   700,   707,    21,
1695 <      22,   708,   705,   701,   709,   885,   886,   887,   888,   889,
1696 <     710,   890,   891,   721,   892,   893,   894,   711,   712,   895,
1697 <     714,   896,   897,   727,   898,   728,   899,   715,   900,   901,
1698 <     716,   718,   902,  1119,  1120,  1121,  1122,  1123,   903,  1124,
1699 <    1125,  1162,  1126,  1127,  1128,   729,   722,  1129,    76,  1130,
1700 <    1131,    23,  1132,   723,  1133,   724,  1134,  1135,   730,   731,
1701 <    1136,   733,   734,   735,   736,   737,  1137,   738,    77,    78,
1702 <    1163,   739,   740,   741,    79,   750,   751,   753,   754,  1164,
1703 <     757,   755,   759,   756,   762,  1165,   767,   768,   763,   769,
1704 <     770,   771,   772,   793,   773,   794,   774,   782,   796,  1166,
1705 <     783,  1167,  1168,   784,   785,   786,   787,   788,   789,   790,
1706 <    1169,   791,   792,    80,    81,   797,  1170,   798,   799,   800,
1707 <      82,    83,    84,   801,   802,   805,   808,   809,   812,   813,
1708 <     814,   815,   816,   817,   819,   818,   823,   826,   820,   821,
1709 <     822,   824,    85,    86,   827,   825,   828,   829,   830,   831,
1710 <     832,   833,   834,   835,   836,    87,    88,   837,   838,   925,
1711 <     839,   928,   929,   840,   926,   841,    89,   842,   930,   927,
1712 <     931,   843,   932,   934,    90,   936,   844,   845,   846,   847,
1713 <     848,   849,   850,   939,   940,   851,   852,   853,   854,   855,
1714 <     856,   857,   858,   859,   860,   883,   906,   907,   908,   909,
1715 <     910,   911,   912,   913,   914,   915,   916,   917,   918,   941,
1716 <     919,   957,   920,   921,   960,   922,   958,   923,   924,   961,
1717 <     933,   962,   937,   964,   935,   966,   938,   944,  1145,   959,
1718 <     967,   968,   993,   995,   997,   296,  1083,  1188,  1091,  1144,
1719 <    1227,   720,  1046,  1222,  1221,   945,   955,   956,   601,   965,
1720 <    1208,   963,   969,   970,   971,   972,  1072,   973,   485,   974,
1721 <     975,   976,  1189,   977,   978,   703,   979,   691,   980,  1191,
1722 <    1206,   726,   761,   981,   982,   983,   988,   989,  1223,   990,
1723 <    1204,   766,   991,   992,  1224,   996,   617,   994,   999,   998,
1724 <    1000,  1006,  1007,  1008,  1009,  1010,  1011,  1012,  1013,  1014,
1725 <    1015,  1016,  1017,  1023,  1024,  1025,  1026,  1027,  1207,  1028,
1726 <    1029,   696,  1034,  1035,  1036,  1037,   621,  1038,   382,  1039,
1727 <    1205,  1040,  1180,  1041,  1042,   442,  1043,  1181,   312,   628,
1728 <       0,     0,  1044,  1045,     0,  1053,  1054,  1066,  1067,  1068,
1729 <    1069,  1070,  1071,  1075,  1081,  1082,     0,  1086,     0,     0,
1730 <    1084,  1092,  1087,  1089,  1093,  1115,  1116,  1117,  1140,  1141,
1731 <    1142,  1143,  1146,  1159,  1160,  1190,     0,   491,  1195,  1209,
1732 <    1192,  1219,  1220,     0,     0,     0,     0,     0,     0,     0,
1619 >     841,   842,   597,   598,   599,   564,    49,   840,    70,   472,
1620 >     248,   109,   525,  1084,    79,   502,   229,  1056,  1022,   495,
1621 >     286,    50,  1023,   495,   293,   219,   479,  1032,   579,    47,
1622 >      48,   503,    71,  1126,   249,    80,    81,   395,  1024,    72,
1623 >     286,    82,  1025,    54,   230,    56,   526,   504,   525,   395,
1624 >      60,   472,   231,  1099,   293,  1101,  1227,  1100,  1032,  1102,
1625 >    1228,    64,   385,   579,   232,   233,   250,   234,   235,   236,
1626 >     385,   110,  1232,   251,   564,    65,  1233,   505,    83,    84,
1627 >     219,   480,   526,    67,    85,    86,   481,   527,   482,   237,
1628 >    1057,    87,    88,    89,   496,   252,   653,   654,   496,   253,
1629 >     775,   776,   565,  1253,   661,    73,    68,   254,   665,   115,
1630 >     255,   256,   506,   670,   116,   117,   673,    90,    91,   220,
1631 >     118,   294,   386,   527,  1033,   580,   683,   684,   119,   120,
1632 >     386,   109,   507,   473,   396,   121,   528,   696,   122,   123,
1633 >     699,   700,   257,   221,   124,   106,   396,   483,   508,   125,
1634 >     126,   294,   127,   128,   129,  1033,   130,   779,   780,   258,
1635 >     580,   397,   259,   131,   453,   509,   510,   132,   133,  1127,
1636 >     107,   565,   528,   397,   220,   473,   134,  1236,  1238,  1128,
1637 >     454,  1237,  1239,   108,   114,   135,   387,   260,   497,  -123,
1638 >     216,   110,   497,   136,   387,   137,   455,   138,   221,   139,
1639 >    1085,   140,   141,   217,  1246,   261,   262,   263,  1247,  -123,
1640 >     218,   226,  1248,   299,   142,   511,  1249,  1034,   227,   143,
1641 >     144,   145,   566,   146,   147,   148,   456,  1250,   149,   300,
1642 >     474,  1251,   264,   265,   760,   303,   512,   562,   393,   751,
1643 >     287,   317,   745,   542,  1035,   581,   732,   573,  1034,   582,
1644 >     228,   577,   493,   724,   150,   800,   490,  1257,  1105,   319,
1645 >     287,  1258,   151,   152,   153,   154,   155,   156,   688,   285,
1646 >     298,   689,   474,   320,   321,  1035,   650,   322,   717,  1106,
1647 >     581,   457,  1284,    70,   582,  1211,  1285,   544,  1107,   458,
1648 >     459,   566,   571,   479,   301,   157,   302,   644,  1070,  1071,
1649 >    1072,   789,   828,   845,   846,   690,   832,    71,   691,   835,
1650 >     460,   305,   306,   839,    72,  1108,  1229,  1230,  1231,   158,
1651 >     159,   323,   160,   161,   162,   575,   307,   354,   163,   355,
1652 >     308,   356,   309,   164,   310,   311,   451,  1272,   588,   324,
1653 >     325,   326,   327,   357,  1109,  1110,   328,   312,   480,   313,
1654 >     329,   314,  1111,   481,   453,   482,   330,   315,   316,   358,
1655 >     592,   392,   402,   403,  1273,   404,  1274,   331,   332,   405,
1656 >     454,   406,   407,   408,   409,   596,   410,  1112,   411,   333,
1657 >      73,   412,   359,   413,   360,   461,   455,   414,   415,   361,
1658 >     416,   713,   417,  1113,   418,   419,   420,   840,   421,   362,
1659 >     422,   334,   809,   810,   811,   812,   813,   814,   815,   248,
1660 >     423,  1275,   424,   425,   483,   115,   456,   426,   427,   428,
1661 >     116,   117,   430,   432,   363,   433,   118,   434,  1276,   435,
1662 >     436,   437,   438,   249,   119,   120,   439,   440,   441,   442,
1663 >     335,   121,   443,   444,   122,   123,   445,   446,   364,   447,
1664 >     124,   448,   449,   450,  1114,   125,   126,   491,   127,   128,
1665 >     129,   492,   130,  1277,  1278,   250,   534,   535,   365,   131,
1666 >     536,   457,   251,   132,   133,   589,   537,   366,   538,   458,
1667 >     459,   539,   134,   540,   541,   545,   623,   546,   590,   547,
1668 >     548,   135,   549,   550,   252,   551,   552,   591,   253,   136,
1669 >     460,   137,   553,   138,   229,   139,   254,   140,   141,   255,
1670 >     256,  1046,  1047,  1048,  1049,  1050,  1051,  1052,   554,  1279,
1671 >     142,   555,   367,  1280,   556,   143,   144,   145,  1138,   146,
1672 >     147,   148,   230,   557,   149,   558,   559,   560,   561,   572,
1673 >     231,   257,  1139,   576,   593,   594,   595,   502,   596,   368,
1674 >    1140,   600,   232,   233,   640,   234,   235,   236,   258,   601,
1675 >     150,   259,   602,   503,  1141,   603,   604,   605,   151,   152,
1676 >     153,   154,   155,   156,   606,   461,   607,   237,   354,   504,
1677 >     355,   608,   356,   646,   609,   625,   260,   611,  1254,   612,
1678 >     613,  1142,   614,  1143,   357,   656,   615,   616,   617,   618,
1679 >     619,   157,   620,   621,   261,   262,   263,   622,   626,   505,
1680 >     358,   627,   628,   629,   630,   631,   633,   634,   635,  1144,
1681 >     636,   637,   638,   639,   642,   158,   159,   643,   160,   161,
1682 >     162,   264,   265,   359,   163,   360,   647,   648,   652,   164,
1683 >     361,   649,   655,   657,   506,   658,   659,   660,   663,   662,
1684 >     362,   664,  1145,   666,  1146,   667,   668,   669,   671,   672,
1685 >     674,   675,   676,   677,   507,   678,   680,   682,   685,   686,
1686 >     695,   679,   681,  1147,   687,   363,   692,   693,   694,   697,
1687 >     508,   698,   701,   702,   726,   727,   756,   753,   703,   704,
1688 >     762,  1148,   764,   705,   765,   706,  1149,   509,   510,   364,
1689 >    1150,  1195,   719,   766,   708,  1151,   709,   319,  1152,   894,
1690 >     710,   711,   712,  1153,   715,   716,     2,     3,   720,   365,
1691 >       4,   320,   321,   721,   723,   322,   728,  1154,   366,   729,
1692 >       5,   730,  1155,     6,     7,   731,   734,   735,   736,   754,
1693 >       8,   738,   739,  1156,   740,   741,   742,   511,   744,   747,
1694 >    1157,     9,   918,   767,    10,    11,   748,   749,   750,   755,
1695 >     761,   768,   769,  1196,   770,   771,   757,   758,   512,   323,
1696 >     759,   772,   773,   367,   763,   774,   783,   784,    12,   794,
1697 >     791,   826,   827,    13,   830,   785,   786,   324,   325,   326,
1698 >     327,    14,  1197,   831,   328,  1165,   787,   793,   329,  1198,
1699 >     368,   792,   795,   796,   330,   802,   833,   834,  1199,   797,
1700 >     799,   803,    15,    16,   804,   331,   332,   805,   806,   807,
1701 >     808,   895,   896,   897,   818,   898,   899,   333,   900,   901,
1702 >      17,   902,   819,   903,   820,  1200,   904,  1201,  1202,   905,
1703 >     906,   907,   821,   908,   822,   823,   824,    18,   909,   334,
1704 >     825,  1203,   910,   911,   912,   829,  1214,   836,  1204,   837,
1705 >      19,    20,   913,   838,   919,   920,   921,   914,   922,   923,
1706 >     840,   924,   925,   843,   926,   844,   927,   847,   848,   928,
1707 >      21,   849,   929,   930,   931,   851,   932,   850,   335,   852,
1708 >     853,   933,   854,    22,   855,   934,   935,   936,   856,   857,
1709 >     858,   860,    23,   861,   859,   937,    24,  1166,  1167,  1168,
1710 >     938,  1169,  1170,   862,  1171,  1172,   863,  1173,  1215,  1174,
1711 >     864,   865,  1175,   866,    79,  1176,  1177,  1178,   867,  1179,
1712 >     962,   868,   869,   965,  1180,   870,   871,   872,  1181,  1182,
1713 >    1183,   873,   874,   964,   875,    80,    81,  1216,  1184,   876,
1714 >     877,    82,   878,  1185,  1217,   879,   880,   881,   882,   883,
1715 >     884,   966,   885,  1218,   886,   887,   888,   889,   890,   891,
1716 >     892,   893,   917,   963,   941,   942,   943,   944,   967,   968,
1717 >     945,   969,   971,   946,   947,   972,   948,   949,    83,    84,
1718 >    1219,   974,  1220,  1221,    85,    86,   950,   951,   975,   952,
1719 >     953,    87,    88,    89,   976,   977,  1222,   983,   954,   955,
1720 >     956,   984,   957,  1223,   986,   958,   959,   960,   961,   970,
1721 >     973,   980,   981,   982,   987,   989,   985,    90,    91,   990,
1722 >     988,   991,   992,   993,   994,   995,   996,   997,   998,   999,
1723 >    1000,  1028,  1001,  1002,  1003,  1004,  1005,  1006,  1007,  1008,
1724 >    1042,  1009,  1010,  1011,  1012,  1013,  1014,  1015,  1016,  1017,
1725 >    1018,  1019,  1020,  1021,  1026,  1027,  1044,  1030,  1031,  1029,
1726 >    1041,  1045,  1043,  1053,  1054,  1055,  1060,  1061,  1062,  1063,
1727 >    1240,  1064,  1252,  1263,  1065,  1264,  1265,  1066,  1067,   304,
1728 >    1068,  1069,  1075,  1076,  1077,  1192,  1078,  1079,  1080,  1081,
1729 >    1082,  1083,  1193,  1088,  1089,  1090,  1091,  1092,  1093,  1094,
1730 >    1095,   563,  1096,  1097,  1098,  1286,  1103,  1104,   733,  1117,
1731 >    1118,  1119,  1120,  1121,  1131,  1122,  1123,  1124,  1125,  1212,
1732 >    1267,  1134,  1135,  1266,  1132,   746,  1259,  1136,  1137,   624,
1733 >    1160,  1262,   725,   714,  1161,   752,  1162,  1163,  1164,  1188,
1734 >    1261,  1189,  1190,  1191,   801,  1194,  1207,  1268,  1283,  1213,
1735 >    1208,  1209,  1226,  1242,   494,  1243,  1244,  1256,  1255,  1245,
1736 >    1241,  1269,  1270,  1271,   641,   790,  1260,   718,   394,   452,
1737 >    1235,   318,     0,  1234,   651,   543,     0,     0,     0,   645,
1738         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1739         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2041       0,     0,     0,   527,     0,     0,     0,     0,     0,     0,
1740         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1741 <       0,     0,   545,     0,     0,     0,     0,     0,     0,     0,
1742 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2045 <       0,     0,     0,     0,     0,     0,   564
1741 >       0,     0,     0,     0,     0,     0,     0,   574,     0,     0,
1742 >       0,     0,     0,     0,     0,     0,   578
1743   };
1744  
2048 #define yypact_value_is_default(yystate) \
2049  ((yystate) == (-744))
2050
2051 #define yytable_value_is_error(yytable_value) \
2052  YYID (0)
2053
1745   static const yytype_int16 yycheck[] =
1746   {
1747 <     598,   599,   300,   301,     1,     1,   215,   216,     1,     1,
1748 <     308,     1,     1,    99,   160,   161,     1,     1,    51,     1,
1749 <     215,     8,     1,     1,   219,     1,     1,   160,   161,     1,
1750 <     217,     1,   775,   776,   777,   778,   779,     1,   217,     1,
1751 <      37,   217,    24,   215,     6,     7,   217,   219,   215,    31,
1752 <      12,   217,   219,   217,    51,    52,    53,    54,    20,     1,
1753 <       1,   215,     1,   215,    26,   219,    28,    29,    30,    61,
1754 <     215,     1,    69,    35,   219,    17,     1,    61,   217,    41,
1755 <      42,   217,    44,    45,    46,    24,   217,    17,    50,    61,
1756 <      32,   217,    31,    55,    36,   393,   394,    59,    60,    24,
1757 <      89,    63,    32,   401,    89,   403,    36,    89,    87,   195,
1758 <      72,    89,   410,   217,    89,   413,     1,    79,    80,    89,
1759 <      82,    83,    84,    85,    86,    89,   424,   425,   120,     1,
1760 <     120,   120,    57,   217,   113,    97,   434,   435,   217,   437,
1761 <     217,   103,   104,   105,   120,   107,    87,     1,   110,   111,
1762 <      89,    36,   114,   186,   217,     1,   120,   217,   191,    89,
1763 <      14,   151,   151,     1,    89,   215,    91,    92,   217,   219,
1764 <     112,    56,   113,   151,   215,   151,    61,   217,   219,   121,
1765 <     122,   151,   112,    21,    22,     1,   148,   151,   215,    27,
1766 <     152,   217,   219,   155,   156,   157,   158,   159,   215,   129,
1767 <     162,   163,   219,   128,   191,   130,   131,   132,   133,     1,
1768 <       1,   153,   208,   134,   135,   208,   206,    89,   214,   216,
1769 <     216,   214,   147,    14,   216,   118,   216,   525,    66,    67,
1770 <     206,   216,   117,     1,   216,    73,    74,    75,   216,    93,
1771 <     202,   203,   204,    89,   216,   207,   171,    15,    16,   215,
1772 <     212,    19,   216,   219,   216,   215,   181,    95,    96,   219,
1773 <       1,     1,   192,     3,   206,     5,   120,     1,   215,   217,
1774 <     108,   109,   219,    89,   216,   216,   206,    17,   215,   151,
1775 <     218,   119,   219,   215,   209,   210,   216,   219,   215,   127,
1776 <     588,   216,    32,   134,   135,    36,    36,    89,   596,   597,
1777 <     178,   179,    93,   218,   218,   151,   218,   218,    76,    77,
1778 <      78,   218,   218,    81,   218,    56,    56,    40,    58,   218,
1779 <      61,    89,    13,     9,    10,    11,   218,    61,    68,   120,
1780 <     218,   216,   100,   101,   206,   151,   218,   218,     1,    62,
1781 <     214,    64,    33,   218,   216,   218,   215,   115,   116,    89,
1782 <     218,   218,    43,   218,    17,  1018,  1019,  1020,    49,   151,
1783 <     218,   218,   216,   218,   215,   218,   218,   213,   218,    32,
1784 <     216,   218,   118,    36,    65,   143,   117,   117,   216,   102,
1785 <     215,   218,     1,     1,   218,   218,   120,   218,     6,     7,
1786 <       1,   218,   218,   218,    12,   218,   218,   213,   218,    90,
1787 <     218,   218,    20,   218,   144,    24,    17,    98,    26,   218,
1788 <      28,    29,    30,    99,   206,   218,   184,    35,   218,   218,
1789 <     218,    32,   218,    41,    42,    36,    44,    45,    46,   218,
1790 <     218,   171,    50,   218,   218,   218,   218,    55,    57,   218,
1791 <     218,    59,    60,   218,   218,    63,   137,   218,   216,   112,
1792 <     173,   174,   218,   218,    72,   218,   218,   218,   121,   122,
1793 <     218,    79,    80,   154,    82,    83,    84,    85,    86,   209,
1794 <      89,   218,    91,    92,   218,   218,   216,   118,    89,    97,
1795 <     218,   218,   218,   206,    99,   103,   104,   105,   218,   107,
1796 <     153,  1089,   110,   111,   218,    99,   114,   218,   218,   218,
1797 <       1,   112,     3,   218,     5,   218,   218,   218,   218,   128,
1798 <     218,   130,   131,   132,   133,     4,    17,   218,   129,   218,
1799 <     218,   218,   218,   218,    64,   218,   218,   160,   147,    99,
1800 <     148,    32,     1,   218,   152,    36,    25,   155,   156,   157,
1801 <     158,   159,   218,   206,   162,   163,    15,    16,   218,   218,
1802 <      19,    40,   171,    99,    99,    56,    99,    58,    47,   160,
1803 <      99,   160,   181,    99,   160,   160,   215,    68,   138,   139,
1804 <     140,   141,   142,   215,   218,    64,   118,   160,   218,   218,
1805 <     218,   192,   218,   218,   202,   203,   204,   218,    89,   207,
1806 <     209,   210,   218,   218,   212,   206,   136,   218,    87,   215,
1807 <      99,   218,    51,   160,   218,    94,   218,    76,    77,    78,
1808 <       0,     1,    81,   218,     4,   218,   117,   106,   218,   160,
1809 <      89,   218,   215,    99,    14,   165,   218,    17,    18,   218,
1810 <     218,   100,   101,    23,   174,   124,   125,   126,   218,     1,
1811 <     180,   218,   218,   144,    34,   218,   115,   116,    38,    39,
1812 <      51,   218,   218,   218,   194,   218,   196,   197,    48,   218,
1813 <     218,   118,   160,   160,    99,   205,    99,    99,   160,   160,
1814 <     171,   211,    62,   160,   143,    37,    99,    99,    51,    99,
1815 <      70,    71,    99,    99,   118,   174,    99,   160,   160,    51,
1816 <      52,    53,    54,   218,   183,   160,   218,   160,    88,   188,
1817 <     160,   160,   160,   118,   160,   194,   160,    69,   209,   198,
1818 <     160,   200,   102,   160,   160,   184,   205,   166,   167,   168,
1819 <     169,   170,   211,   172,   173,   215,   175,   176,   177,    64,
1820 <     215,   180,   218,   182,   183,   218,   185,   218,   187,   218,
1821 <     189,   190,   160,   218,   193,    99,   136,   218,   218,   217,
1822 <     199,   218,   218,   215,   218,   145,   146,   218,   118,   149,
1823 <     150,   118,   215,   218,   215,   166,   167,   168,   169,   170,
1824 <     215,   172,   173,   215,   175,   176,   177,   218,   218,   180,
1825 <     218,   182,   183,   160,   185,   160,   187,   218,   189,   190,
1826 <     218,   218,   193,   166,   167,   168,   169,   170,   199,   172,
1827 <     173,   136,   175,   176,   177,   118,   218,   180,     1,   182,
1828 <     183,   201,   185,   218,   187,   218,   189,   190,   160,   160,
1829 <     193,   215,   118,   160,   118,   118,   199,   118,    21,    22,
1830 <     165,   118,   118,   118,    27,   118,   118,   118,   118,   174,
1831 <     218,   215,   218,   215,   215,   180,   118,   215,   218,   215,
1832 <     215,   215,   215,    99,   215,    99,   215,   215,    99,   194,
1833 <     215,   196,   197,   215,   215,   215,   215,   215,   215,   215,
1834 <     205,   215,   215,    66,    67,    99,   211,    99,    99,   118,
1835 <      73,    74,    75,    99,    99,    99,   215,   118,   118,   160,
1836 <     218,   118,   118,   118,    99,   118,   215,   215,   118,   118,
1837 <     118,   118,    95,    96,   215,   118,   118,   118,   218,   215,
1838 <     215,   215,   215,   215,   215,   108,   109,   215,   215,   118,
1839 <     215,   118,    99,   215,   160,   215,   119,   215,   118,   218,
1840 <     118,   215,   118,   118,   127,   118,   215,   215,   215,   215,
1841 <     215,   215,   215,   118,   118,   215,   215,   215,   215,   215,
1842 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
1843 <     215,   215,   215,   215,   215,   215,   215,   215,   215,    99,
1844 <     215,   118,   215,   215,   118,   215,   160,   215,   215,   118,
1845 <     215,   118,   215,   118,   218,   118,   218,   215,   987,   218,
1846 <     118,   118,   118,   118,   118,    71,   164,    99,   950,   985,
1847 <    1226,   501,   123,  1199,  1197,   215,   215,   215,   328,   215,
1848 <    1187,   218,   215,   215,   215,   215,   123,   215,   222,   215,
1849 <     215,   215,  1084,   215,   215,   477,   215,   452,   215,   118,
1850 <    1183,   515,   550,   215,   215,   215,   215,   215,  1201,   215,
1851 <    1177,   558,   215,   215,  1203,   215,   358,   218,   215,   218,
1852 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
1853 <     215,   215,   215,   215,   215,   215,   215,   215,  1185,   215,
1854 <     215,   467,   215,   215,   215,   215,   376,   215,   112,   215,
1855 <    1179,   215,  1050,   215,   215,   166,   215,  1052,    91,   388,
1856 <      -1,    -1,   215,   215,    -1,   215,   215,   215,   215,   215,
1857 <     215,   215,   215,   215,   215,   215,    -1,   215,    -1,    -1,
1858 <     219,   215,   218,   218,   215,   215,   215,   215,   215,   215,
1859 <     215,   215,   215,   215,   215,   215,    -1,   230,   215,   215,
1860 <     218,   215,   215,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1861 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1747 >     621,   622,   309,   310,   311,     1,   229,   108,     1,     1,
1748 >       1,     1,     1,     8,     1,     1,     1,    51,   227,     1,
1749 >       1,   229,   231,     1,     1,     1,     1,     1,     1,   227,
1750 >     228,    17,    25,    49,    25,    22,    23,     1,   227,    32,
1751 >       1,    28,   231,   229,    29,   229,    35,    33,     1,     1,
1752 >     229,     1,    37,   227,     1,   227,   227,   231,     1,   231,
1753 >     231,   229,     1,     1,    49,    50,    57,    52,    53,    54,
1754 >       1,    61,   227,    64,     1,   229,   231,    63,    65,    66,
1755 >       1,    56,    35,   229,    71,    72,    61,    76,    63,    74,
1756 >     124,    78,    79,    80,    76,    86,   403,   404,    76,    90,
1757 >     199,   200,    98,   204,   411,    98,   229,    98,   415,     1,
1758 >     101,   102,    98,   420,     6,     7,   423,   104,   105,    95,
1759 >      12,    98,    61,    76,    98,    98,   433,   434,    20,    21,
1760 >      61,     1,   118,   125,    98,    27,   125,   444,    30,    31,
1761 >     447,   448,   133,   119,    36,   229,    98,   122,   134,    41,
1762 >      42,    98,    44,    45,    46,    98,    48,   199,   200,   150,
1763 >      98,   125,   153,    55,     1,   151,   152,    59,    60,   185,
1764 >     229,    98,   125,   125,    95,   125,    68,   227,   227,   195,
1765 >      17,   231,   231,   229,   229,    77,   125,   178,   170,   170,
1766 >     229,    61,   170,    85,   125,    87,    33,    89,   119,    91,
1767 >     195,    93,    94,   229,   227,   196,   197,   198,   231,   170,
1768 >     229,   229,   227,   227,   106,   201,   231,   191,   229,   111,
1769 >     112,   113,   218,   115,   116,   117,    63,   227,   120,   230,
1770 >     222,   231,   223,   224,   541,   228,   222,   228,   228,   228,
1771 >     221,   228,   228,   228,   218,   218,   228,   228,   191,   222,
1772 >     229,   228,   228,   228,   146,   228,   227,   227,    13,     1,
1773 >     221,   231,   154,   155,   156,   157,   158,   159,   210,   229,
1774 >     229,   213,   222,    15,    16,   218,   228,    19,   228,    34,
1775 >     218,   118,   227,     1,   222,   228,   231,   227,    43,   126,
1776 >     127,   218,   227,     1,   230,   187,   230,   228,     9,    10,
1777 >      11,   228,   609,   174,   175,   210,   613,    25,   213,   616,
1778 >     147,   230,   230,   620,    32,    70,  1070,  1071,  1072,   211,
1779 >     212,    63,   214,   215,   216,   170,   230,     1,   220,     3,
1780 >     230,     5,   230,   225,   230,   230,   228,    40,   123,    81,
1781 >      82,    83,    84,    17,    99,   100,    88,   230,    56,   230,
1782 >      92,   230,   107,    61,     1,    63,    98,   230,   230,    33,
1783 >     108,   230,   230,   230,    67,   230,    69,   109,   110,   230,
1784 >      17,   230,   230,   230,   230,   108,   230,   132,   230,   121,
1785 >      98,   230,    56,   230,    58,   222,    33,   230,   230,    63,
1786 >     230,   228,   230,   148,   230,   230,   230,   108,   230,    73,
1787 >     230,   143,   135,   136,   137,   138,   139,   140,   141,     1,
1788 >     230,   114,   230,   230,   122,     1,    63,   230,   230,   230,
1789 >       6,     7,   230,   230,    98,   230,    12,   230,   131,   230,
1790 >     230,   230,   230,    25,    20,    21,   230,   230,   230,   230,
1791 >     182,    27,   230,   230,    30,    31,   230,   230,   122,   230,
1792 >      36,   230,   230,   230,   209,    41,    42,   230,    44,    45,
1793 >      46,   230,    48,   166,   167,    57,   230,   230,   142,    55,
1794 >     230,   118,    64,    59,    60,   123,   230,   151,   230,   126,
1795 >     127,   230,    68,   230,   230,   230,   228,   230,   123,   230,
1796 >     230,    77,   230,   230,    86,   230,   230,   227,    90,    85,
1797 >     147,    87,   230,    89,     1,    91,    98,    93,    94,   101,
1798 >     102,   809,   810,   811,   812,   813,   814,   815,   230,   222,
1799 >     106,   230,   196,   226,   230,   111,   112,   113,     4,   115,
1800 >     116,   117,    29,   230,   120,   230,   230,   230,   230,   230,
1801 >      37,   133,    18,   230,   108,   210,   108,     1,   108,   223,
1802 >      26,   108,    49,    50,   228,    52,    53,    54,   150,   108,
1803 >     146,   153,   108,    17,    40,   210,   210,   227,   154,   155,
1804 >     156,   157,   158,   159,   227,   222,   230,    74,     1,    33,
1805 >       3,   230,     5,   123,   230,   227,   178,   230,  1209,   230,
1806 >     230,    67,   230,    69,    17,   108,   230,   230,   230,   230,
1807 >     230,   187,   230,   230,   196,   197,   198,   230,   230,    63,
1808 >      33,   230,   230,   230,   230,   230,   230,   230,   230,    95,
1809 >     230,   230,   230,   230,   230,   211,   212,   230,   214,   215,
1810 >     216,   223,   224,    56,   220,    58,   227,   230,   210,   225,
1811 >      63,   230,   210,   210,    98,   108,   123,   210,   108,   210,
1812 >      73,   108,   128,   108,   130,   210,   210,   210,   108,   108,
1813 >     108,   108,   108,   108,   118,   210,   210,   210,   210,   210,
1814 >     123,   230,   230,   149,   210,    98,   210,   210,   210,   210,
1815 >     134,   210,   210,   210,   123,   123,   123,   210,   227,   227,
1816 >     123,   167,   123,   230,   108,   230,   172,   151,   152,   122,
1817 >     176,    69,   227,   108,   230,   181,   230,     1,   184,    49,
1818 >     230,   230,   230,   189,   230,   230,     0,     1,   230,   142,
1819 >       4,    15,    16,   230,   230,    19,   227,   203,   151,   227,
1820 >      14,   230,   208,    17,    18,   230,   227,   230,   230,   210,
1821 >      24,   230,   230,   219,   230,   230,   230,   201,   230,   227,
1822 >     226,    35,    49,   123,    38,    39,   230,   230,   230,   210,
1823 >     227,   123,   123,   131,   123,   123,   210,   210,   222,    63,
1824 >     210,   123,   108,   196,   210,   123,   123,   123,    62,   123,
1825 >     210,   108,   108,    67,   108,   227,   227,    81,    82,    83,
1826 >      84,    75,   160,   108,    88,    49,   230,   229,    92,   167,
1827 >     223,   227,   227,   227,    98,   227,   108,   108,   176,   230,
1828 >     230,   227,    96,    97,   227,   109,   110,   227,   227,   227,
1829 >     227,   161,   162,   163,   227,   165,   166,   121,   168,   169,
1830 >     114,   171,   227,   173,   227,   203,   176,   205,   206,   179,
1831 >     180,   181,   227,   183,   227,   227,   227,   131,   188,   143,
1832 >     227,   219,   192,   193,   194,   230,    69,   123,   226,   108,
1833 >     144,   145,   202,   108,   161,   162,   163,   207,   165,   166,
1834 >     108,   168,   169,   227,   171,   123,   173,   123,   210,   176,
1835 >     164,   123,   179,   180,   181,   230,   183,   123,   182,   123,
1836 >     123,   188,   108,   177,   123,   192,   193,   194,   123,   123,
1837 >     123,   123,   186,   123,   227,   202,   190,   161,   162,   163,
1838 >     207,   165,   166,   227,   168,   169,   227,   171,   131,   173,
1839 >     123,   123,   176,   227,     1,   179,   180,   181,   227,   183,
1840 >     123,   227,   227,   123,   188,   227,   227,   227,   192,   193,
1841 >     194,   227,   227,   230,   227,    22,    23,   160,   202,   227,
1842 >     227,    28,   227,   207,   167,   227,   227,   227,   227,   227,
1843 >     227,   108,   227,   176,   227,   227,   227,   227,   227,   227,
1844 >     227,   227,   227,   210,   227,   227,   227,   227,   123,   123,
1845 >     227,   123,   123,   227,   227,   123,   227,   227,    65,    66,
1846 >     203,   123,   205,   206,    71,    72,   227,   227,   123,   227,
1847 >     227,    78,    79,    80,   230,   108,   219,   123,   227,   227,
1848 >     227,   123,   227,   226,   123,   227,   227,   227,   227,   227,
1849 >     227,   227,   227,   227,   210,   123,   227,   104,   105,   123,
1850 >     230,   123,   123,   210,   230,   123,   227,   123,   123,   123,
1851 >     227,   123,   227,   227,   227,   227,   227,   227,   227,   227,
1852 >     123,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1853 >     227,   227,   227,   227,   227,   227,   123,   227,   227,   230,
1854 >     227,   227,   230,   227,   227,   227,   227,   227,   227,   227,
1855 >     108,   227,   123,   129,   227,   129,   129,   227,   227,    74,
1856 >     227,   227,   227,   227,   227,  1023,   227,   227,   227,   227,
1857 >     227,   227,  1025,   227,   227,   227,   227,   227,   227,   227,
1858 >     227,   266,   227,   227,   227,  1285,   227,   227,   498,   227,
1859 >     227,   227,   227,   227,   217,   227,   227,   227,   227,  1036,
1860 >    1249,   227,   227,  1247,   231,   513,  1228,   227,   227,   336,
1861 >     227,  1239,   485,   462,   227,   529,   227,   227,   227,   227,
1862 >    1237,   227,   227,   227,   583,   227,   227,  1251,  1258,   227,
1863 >     230,   230,   227,   227,   222,   232,   232,   227,   230,   232,
1864 >    1132,   227,   227,   227,   369,   567,  1233,   475,   111,   165,
1865 >    1102,    92,    -1,  1100,   398,   238,    -1,    -1,    -1,   388,
1866        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2172      -1,    -1,    -1,   243,    -1,    -1,    -1,    -1,    -1,    -1,
1867        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2174      -1,    -1,   267,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1868        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1869 <      -1,    -1,    -1,    -1,    -1,    -1,   288
1869 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,   288,    -1,    -1,
1870 >      -1,    -1,    -1,    -1,    -1,    -1,   295
1871   };
1872  
1873 < /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1874 <   symbol of state STATE-NUM.  */
1873 >  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1874 >     symbol of state STATE-NUM.  */
1875   static const yytype_uint16 yystos[] =
1876   {
1877 <       0,   221,     0,     1,     4,    14,    17,    18,    23,    34,
1878 <      38,    39,    48,    62,    70,    71,    88,   102,   136,   145,
1879 <     146,   149,   150,   201,   222,   227,   232,   254,   260,   274,
1880 <     292,   310,   324,   339,   346,   350,   360,   369,   389,   399,
1881 <     405,   409,   419,   477,   494,   215,   216,   217,   217,   293,
1882 <     370,   400,   217,   410,   217,   325,   390,   311,   217,   217,
1883 <     275,   340,   217,   217,   351,   361,   217,     1,    24,    31,
1884 <      89,   255,   256,   257,   258,   259,     1,    21,    22,    27,
1885 <      66,    67,    73,    74,    75,    95,    96,   108,   109,   119,
1886 <     127,   478,   479,   480,   481,   482,   483,   484,   485,   486,
1887 <     487,   488,   489,   490,   491,   492,   493,   217,   217,   217,
1888 <       1,    61,   406,   407,   408,   217,     1,     6,     7,    12,
1889 <      20,    26,    28,    29,    30,    35,    41,    42,    44,    45,
1890 <      46,    50,    55,    59,    60,    63,    72,    79,    80,    82,
1891 <      83,    84,    85,    86,    97,   103,   104,   105,   107,   110,
1892 <     111,   114,   148,   152,   155,   156,   157,   158,   159,   162,
1893 <     163,   202,   203,   204,   207,   212,   420,   421,   422,   423,
1894 <     424,   425,   426,   427,   428,   429,   430,   431,   432,   433,
1895 <     434,   435,   436,   437,   438,   439,   440,   441,   442,   443,
1896 <     444,   445,   446,   447,   448,   449,   450,   451,   452,   453,
1897 <     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
1898 <     464,   465,   466,   470,   474,   475,   476,   217,   217,   217,
1899 <       1,   208,   261,   262,   263,   264,   265,     1,    87,   113,
1900 <     228,   229,   230,   231,   217,   217,     1,    37,    51,    52,
1901 <      53,    54,    69,   495,   496,   497,   498,   499,   500,   501,
1902 <     502,     1,    24,    57,    89,    91,    92,   128,   130,   131,
1903 <     132,   133,   147,   171,   181,   209,   210,   233,   234,   235,
1904 <     236,   241,   242,   243,   244,   245,   246,   247,   248,   249,
1905 <     250,   251,   252,   253,   217,   217,     1,    89,   347,   348,
1906 <     349,   215,   218,   218,   218,   216,   256,   218,   218,   218,
1907 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
1908 <     218,   216,   479,     1,    15,    16,    19,    76,    77,    78,
1909 <      81,    89,   100,   101,   115,   116,   143,   184,   294,   295,
1910 <     296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
1911 <     306,   307,   308,   309,     1,     3,     5,    17,    32,    36,
1912 <      56,    58,    68,    89,   117,   144,   171,   209,   371,   372,
1913 <     373,   374,   375,   376,   377,   378,   379,   380,   384,   385,
1914 <     386,   387,   388,     1,    61,   120,   401,   402,   403,   404,
1915 <     218,   216,   407,     1,    89,   120,   151,   411,   415,   416,
1916 <     417,   418,   218,   218,   218,   218,   218,   218,   218,   218,
1917 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
1918 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
1919 <     218,   471,   218,   467,   218,   218,   218,   218,   218,   218,
1920 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
1921 <     218,   216,   421,     1,    17,    32,    36,   112,   121,   122,
1922 <     153,   206,   326,   327,   328,   329,   330,   331,   332,   336,
1923 <     337,   338,     1,   120,   151,   206,   391,   395,   396,   397,
1924 <     398,     1,    36,    56,    61,   117,   312,   316,   317,   318,
1925 <     322,   323,   215,   218,   216,   262,   214,   215,   218,   218,
1926 <     216,   229,     1,    17,    32,    36,    89,   112,   129,   192,
1927 <     206,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1928 <     288,     1,    14,    93,   120,   341,   342,   343,   344,   345,
1929 <     218,   218,   218,   218,   218,   218,   216,   496,   215,   218,
1930 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
1931 <     218,   218,   218,   218,   216,   234,     1,    89,   151,   206,
1932 <     352,   353,   354,   355,   356,     1,    89,   151,   362,   363,
1933 <     364,   365,   218,   216,   348,   118,   118,   118,   215,    99,
1934 <      99,   160,    99,   224,   224,    99,    99,    99,   160,   160,
1935 <      99,   224,   160,   160,   215,   215,   218,   218,   218,   218,
1936 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
1937 <     216,   295,   215,   218,   218,   218,   218,   381,   218,   218,
1938 <     218,   218,   218,   218,   218,   218,   216,   372,   218,   218,
1939 <     216,   402,   118,   215,   218,   218,   412,   216,   416,   160,
1940 <     224,   224,    99,   160,   160,    99,   118,   160,   224,   160,
1941 <     224,    99,    99,    99,   160,   160,   160,   224,    99,    99,
1942 <     224,    99,    99,   118,    99,    99,   160,   160,   218,   160,
1943 <     218,   224,   224,   160,   160,   160,   160,   160,   161,   160,
1944 <     161,   160,   160,   224,   224,   118,   224,   160,   160,   160,
1945 <     215,   215,   218,   218,   333,   218,   218,   218,   218,   218,
1946 <     216,   327,   218,   392,   218,   216,   396,   215,   313,   218,
1947 <     218,   218,   216,   317,   160,   215,   217,   118,   118,   215,
1948 <     215,   218,   218,   289,   218,   218,   218,   285,   218,   216,
1949 <     277,   215,   218,   218,   218,   216,   342,   160,   160,   118,
1950 <     160,   160,   224,   215,   118,   160,   118,   118,   118,   118,
1951 <     118,   118,   134,   135,   237,   238,   134,   135,   239,   240,
1952 <     118,   118,    99,   118,   118,   215,   215,   218,   357,   218,
1953 <     216,   353,   215,   218,   366,   216,   363,   118,   215,   215,
1954 <     215,   215,   215,   215,   215,   138,   139,   140,   141,   142,
1955 <     223,   224,   215,   215,   215,   215,   215,   215,   215,   215,
1956 <     215,   215,   215,    99,    99,   224,    99,    99,    99,    99,
1957 <     118,    99,    99,   224,   224,    99,   226,   226,   215,   118,
1958 <     178,   179,   118,   160,   218,   118,   118,   118,   118,    99,
1959 <     118,   118,   118,   215,   118,   118,   215,   215,   118,   118,
1960 <     218,   215,   215,   215,   215,   215,   215,   215,   215,   215,
1961 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
1962 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
1963 <     215,    51,   166,   167,   168,   169,   170,   172,   173,   175,
1964 <     176,   177,   180,   182,   183,   185,   187,   189,   190,   193,
1965 <     199,   472,   473,   215,    51,   166,   167,   168,   169,   170,
1966 <     172,   173,   175,   176,   177,   180,   182,   183,   185,   187,
1967 <     189,   190,   193,   199,   468,   469,   215,   215,   215,   215,
1968 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
1969 <     215,   215,   215,   215,   215,   118,   160,   218,   118,    99,
1970 <     118,   118,   118,   215,   118,   218,   118,   215,   218,   118,
1971 <     118,    99,   320,   321,   215,   215,     1,    89,   151,   213,
1972 <     266,   267,   268,   269,   270,   215,   215,   118,   160,   218,
1973 <     118,   118,   118,   218,   118,   215,   118,   118,   118,   215,
1974 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
1975 <     215,   215,   215,   215,   215,   219,   215,   219,   215,   215,
1976 <     215,   215,   215,   118,   218,   118,   215,   118,   218,   215,
1977 <     215,   223,   223,   223,   223,   223,   215,   215,   215,   215,
1978 <     215,   215,   215,   215,   215,   215,   215,   215,     9,    10,
1979 <      11,   225,   226,   215,   215,   215,   215,   215,   215,   215,
1980 <       8,   191,   382,   383,   215,   215,   215,   215,   215,   215,
1981 <     215,   215,   215,   215,   215,   215,   123,   413,   414,   215,
1982 <     219,   215,   219,   215,   215,    13,    33,    43,    49,    65,
1983 <      90,    98,   137,   154,   334,   335,   215,   215,   215,   215,
1984 <     215,   215,   123,   393,   394,   215,    51,   186,   191,   314,
1985 <     315,   215,   215,   164,   219,   319,   215,   218,   271,   218,
1986 <     216,   267,   215,   215,     4,    25,    40,    47,    64,    87,
1987 <      94,   106,   124,   125,   126,   174,   183,   188,   194,   198,
1988 <     200,   205,   211,   290,   291,   215,   215,   215,    51,   166,
1989 <     167,   168,   169,   170,   172,   173,   175,   176,   177,   180,
1990 <     182,   183,   185,   187,   189,   190,   193,   199,   286,   287,
1991 <     215,   215,   215,   215,   238,   240,   215,    64,   136,   165,
1992 <     174,   180,   194,   196,   197,   205,   211,   358,   359,   215,
1993 <     215,    64,   136,   165,   174,   180,   194,   196,   197,   205,
1994 <     211,   367,   368,   225,   225,   225,   215,   219,   215,   219,
1995 <     473,   469,   215,   219,   215,   219,   215,   219,    99,   321,
1996 <     215,   118,   218,   195,   226,   215,   215,   219,   215,   219,
1997 <     215,   219,   215,   219,   383,   414,   335,   394,   315,   215,
1998 <      40,    62,    64,   102,   173,   174,   206,   272,   273,   215,
1999 <     215,   291,   287,   359,   368,   215,   219,   273
1877 >       0,   234,     0,     1,     4,    14,    17,    18,    24,    35,
1878 >      38,    39,    62,    67,    75,    96,    97,   114,   131,   144,
1879 >     145,   164,   177,   186,   190,   235,   240,   245,   269,   275,
1880 >     281,   295,   315,   338,   352,   367,   374,   378,   388,   397,
1881 >     418,   424,   430,   434,   440,   498,   513,   227,   228,   229,
1882 >     229,   316,   398,   425,   229,   435,   229,   353,   419,   339,
1883 >     229,   276,   296,   368,   229,   229,   389,   229,   229,   379,
1884 >       1,    25,    32,    98,   270,   271,   272,   273,   274,     1,
1885 >      22,    23,    28,    65,    66,    71,    72,    78,    79,    80,
1886 >     104,   105,   499,   500,   501,   502,   503,   504,   505,   506,
1887 >     507,   508,   509,   510,   511,   512,   229,   229,   229,     1,
1888 >      61,   431,   432,   433,   229,     1,     6,     7,    12,    20,
1889 >      21,    27,    30,    31,    36,    41,    42,    44,    45,    46,
1890 >      48,    55,    59,    60,    68,    77,    85,    87,    89,    91,
1891 >      93,    94,   106,   111,   112,   113,   115,   116,   117,   120,
1892 >     146,   154,   155,   156,   157,   158,   159,   187,   211,   212,
1893 >     214,   215,   216,   220,   225,   441,   442,   443,   444,   445,
1894 >     446,   447,   448,   449,   450,   451,   452,   453,   454,   455,
1895 >     456,   457,   458,   459,   460,   461,   462,   463,   464,   465,
1896 >     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
1897 >     476,   477,   478,   479,   480,   481,   482,   483,   484,   485,
1898 >     486,   487,   491,   495,   496,   497,   229,   229,   229,     1,
1899 >      95,   119,   241,   242,   243,   244,   229,   229,   229,     1,
1900 >      29,    37,    49,    50,    52,    53,    54,    74,   514,   515,
1901 >     516,   517,   518,   519,   520,   521,   522,   523,     1,    25,
1902 >      57,    64,    86,    90,    98,   101,   102,   133,   150,   153,
1903 >     178,   196,   197,   198,   223,   224,   246,   247,   248,   249,
1904 >     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
1905 >     264,   265,   266,   267,   268,   229,     1,   221,   282,   283,
1906 >     284,   285,   286,     1,    98,   375,   376,   377,   229,   227,
1907 >     230,   230,   230,   228,   271,   230,   230,   230,   230,   230,
1908 >     230,   230,   230,   230,   230,   230,   230,   228,   500,     1,
1909 >      15,    16,    19,    63,    81,    82,    83,    84,    88,    92,
1910 >      98,   109,   110,   121,   143,   182,   317,   318,   319,   320,
1911 >     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
1912 >     331,   332,   333,   334,     1,     3,     5,    17,    33,    56,
1913 >      58,    63,    73,    98,   122,   142,   151,   196,   223,   399,
1914 >     400,   401,   402,   403,   404,   405,   406,   407,   408,   409,
1915 >     413,   414,   415,   416,   417,     1,    61,   125,   426,   427,
1916 >     428,   429,   230,   228,   432,     1,    98,   125,   436,   437,
1917 >     438,   439,   230,   230,   230,   230,   230,   230,   230,   230,
1918 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
1919 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   492,
1920 >     230,   488,   230,   230,   230,   230,   230,   230,   230,   230,
1921 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
1922 >     230,   228,   442,     1,    17,    33,    63,   118,   126,   127,
1923 >     147,   222,   354,   355,   356,   357,   358,   359,   360,   364,
1924 >     365,   366,     1,   125,   222,   420,   421,   422,   423,     1,
1925 >      56,    61,    63,   122,   340,   344,   345,   346,   350,   351,
1926 >     227,   230,   230,   228,   242,     1,    76,   170,   277,   278,
1927 >     279,   280,     1,    17,    33,    63,    98,   118,   134,   151,
1928 >     152,   201,   222,   297,   298,   299,   300,   301,   302,   303,
1929 >     304,   305,   306,   307,   311,     1,    35,    76,   125,   369,
1930 >     370,   371,   372,   373,   230,   230,   230,   230,   230,   230,
1931 >     230,   230,   228,   515,   227,   230,   230,   230,   230,   230,
1932 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
1933 >     230,   230,   228,   247,     1,    98,   218,   390,   391,   392,
1934 >     393,   227,   230,   228,   283,   170,   230,   228,   376,     1,
1935 >      98,   218,   222,   380,   381,   382,   383,   384,   123,   123,
1936 >     123,   227,   108,   108,   210,   108,   108,   237,   237,   237,
1937 >     108,   108,   108,   210,   210,   227,   227,   230,   230,   230,
1938 >     335,   230,   230,   230,   230,   230,   230,   230,   230,   230,
1939 >     230,   230,   230,   228,   318,   227,   230,   230,   230,   230,
1940 >     230,   230,   410,   230,   230,   230,   230,   230,   230,   230,
1941 >     228,   400,   230,   230,   228,   427,   123,   227,   230,   230,
1942 >     228,   437,   210,   237,   237,   210,   108,   210,   108,   123,
1943 >     210,   237,   210,   108,   108,   237,   108,   210,   210,   210,
1944 >     237,   108,   108,   237,   108,   108,   108,   108,   210,   230,
1945 >     210,   230,   210,   237,   237,   210,   210,   210,   210,   213,
1946 >     210,   213,   210,   210,   210,   123,   237,   210,   210,   237,
1947 >     237,   210,   210,   227,   227,   230,   230,   361,   230,   230,
1948 >     230,   230,   230,   228,   355,   230,   230,   228,   421,   227,
1949 >     230,   230,   341,   230,   228,   345,   123,   123,   227,   227,
1950 >     230,   230,   228,   278,   227,   230,   230,   312,   230,   230,
1951 >     230,   230,   230,   308,   230,   228,   298,   227,   230,   230,
1952 >     230,   228,   370,   210,   210,   210,   123,   210,   210,   210,
1953 >     237,   227,   123,   210,   123,   108,   108,   123,   123,   123,
1954 >     123,   123,   123,   108,   123,   199,   200,   250,   251,   199,
1955 >     200,   252,   253,   123,   123,   227,   227,   230,   394,   228,
1956 >     391,   210,   227,   229,   123,   227,   227,   230,   385,   230,
1957 >     228,   381,   227,   227,   227,   227,   227,   227,   227,   135,
1958 >     136,   137,   138,   139,   140,   141,   236,   237,   227,   227,
1959 >     227,   227,   227,   227,   227,   227,   108,   108,   237,   230,
1960 >     108,   108,   237,   108,   108,   237,   123,   108,   108,   237,
1961 >     108,   239,   239,   227,   123,   174,   175,   123,   210,   123,
1962 >     123,   230,   123,   123,   108,   123,   123,   123,   123,   227,
1963 >     123,   123,   227,   227,   123,   123,   227,   227,   227,   227,
1964 >     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1965 >     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1966 >     227,   227,   227,   227,    49,   161,   162,   163,   165,   166,
1967 >     168,   169,   171,   173,   176,   179,   180,   181,   183,   188,
1968 >     192,   193,   194,   202,   207,   493,   494,   227,    49,   161,
1969 >     162,   163,   165,   166,   168,   169,   171,   173,   176,   179,
1970 >     180,   181,   183,   188,   192,   193,   194,   202,   207,   489,
1971 >     490,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1972 >     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1973 >     227,   227,   123,   210,   230,   123,   108,   123,   123,   123,
1974 >     227,   123,   123,   227,   123,   123,   230,   108,   348,   349,
1975 >     227,   227,   227,   123,   123,   227,   123,   210,   230,   123,
1976 >     123,   123,   123,   210,   230,   123,   227,   123,   123,   123,
1977 >     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1978 >     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1979 >     227,   227,   227,   231,   227,   231,   227,   227,   123,   230,
1980 >     227,   227,     1,    98,   191,   218,   287,   288,   289,   290,
1981 >     291,   227,   123,   230,   123,   227,   236,   236,   236,   236,
1982 >     236,   236,   236,   227,   227,   227,    51,   124,   336,   337,
1983 >     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1984 >       9,    10,    11,   238,   239,   227,   227,   227,   227,   227,
1985 >     227,   227,   227,   227,     8,   195,   411,   412,   227,   227,
1986 >     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1987 >     231,   227,   231,   227,   227,    13,    34,    43,    70,    99,
1988 >     100,   107,   132,   148,   209,   362,   363,   227,   227,   227,
1989 >     227,   227,   227,   227,   227,   227,    49,   185,   195,   342,
1990 >     343,   217,   231,   347,   227,   227,   227,   227,     4,    18,
1991 >      26,    40,    67,    69,    95,   128,   130,   149,   167,   172,
1992 >     176,   181,   184,   189,   203,   208,   219,   226,   313,   314,
1993 >     227,   227,   227,   227,   227,    49,   161,   162,   163,   165,
1994 >     166,   168,   169,   171,   173,   176,   179,   180,   181,   183,
1995 >     188,   192,   193,   194,   202,   207,   309,   310,   227,   227,
1996 >     227,   227,   251,   253,   227,    69,   131,   160,   167,   176,
1997 >     203,   205,   206,   219,   226,   395,   396,   227,   230,   230,
1998 >     292,   228,   288,   227,    69,   131,   160,   167,   176,   203,
1999 >     205,   206,   219,   226,   386,   387,   227,   227,   231,   238,
2000 >     238,   238,   227,   231,   494,   490,   227,   231,   227,   231,
2001 >     108,   349,   227,   232,   232,   232,   227,   231,   227,   231,
2002 >     227,   231,   123,   204,   239,   230,   227,   227,   231,   337,
2003 >     412,   363,   343,   129,   129,   129,   314,   310,   396,   227,
2004 >     227,   227,    40,    67,    69,   114,   131,   166,   167,   222,
2005 >     226,   293,   294,   387,   227,   231,   294
2006   };
2007  
2008 < #define yyerrok         (yyerrstatus = 0)
2009 < #define yyclearin       (yychar = YYEMPTY)
2010 < #define YYEMPTY         (-2)
2011 < #define YYEOF           0
2012 <
2013 < #define YYACCEPT        goto yyacceptlab
2014 < #define YYABORT         goto yyabortlab
2015 < #define YYERROR         goto yyerrorlab
2016 <
2017 <
2018 < /* Like YYERROR except do call yyerror.  This remains here temporarily
2019 <   to ease the transition to the new meaning of YYERROR, for GCC.
2020 <   Once GCC version 2 has supplanted version 1, this can go.  However,
2021 <   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
2022 <   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2023 <   discussed.  */
2024 <
2025 < #define YYFAIL          goto yyerrlab
2026 < #if defined YYFAIL
2027 <  /* This is here to suppress warnings from the GCC cpp's
2028 <     -Wunused-macros.  Normally we don't worry about that warning, but
2029 <     some users do, and we want to make it easy for users to remove
2030 <     YYFAIL uses, which will produce warnings from Bison 2.5.  */
2031 < #endif
2008 >  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
2009 > static const yytype_uint16 yyr1[] =
2010 > {
2011 >       0,   233,   234,   234,   235,   235,   235,   235,   235,   235,
2012 >     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
2013 >     235,   235,   235,   235,   235,   235,   235,   236,   236,   237,
2014 >     237,   237,   237,   237,   237,   237,   237,   238,   238,   239,
2015 >     239,   239,   239,   240,   241,   241,   242,   242,   242,   243,
2016 >     244,   245,   246,   246,   247,   247,   247,   247,   247,   247,
2017 >     247,   247,   247,   247,   247,   247,   247,   247,   247,   247,
2018 >     247,   247,   248,   249,   250,   250,   251,   251,   252,   252,
2019 >     253,   253,   254,   255,   256,   257,   258,   259,   260,   261,
2020 >     262,   263,   264,   265,   266,   267,   268,   269,   270,   270,
2021 >     271,   271,   271,   271,   272,   273,   274,   276,   275,   277,
2022 >     277,   278,   278,   278,   279,   280,   281,   282,   282,   283,
2023 >     283,   283,   284,   286,   285,   287,   287,   288,   288,   288,
2024 >     288,   289,   290,   290,   292,   291,   293,   293,   294,   294,
2025 >     294,   294,   294,   294,   294,   294,   294,   296,   295,   297,
2026 >     297,   298,   298,   298,   298,   298,   298,   298,   298,   298,
2027 >     298,   298,   299,   300,   301,   302,   303,   304,   305,   306,
2028 >     308,   307,   309,   309,   310,   310,   310,   310,   310,   310,
2029 >     310,   310,   310,   310,   310,   310,   310,   310,   310,   310,
2030 >     310,   310,   310,   310,   310,   312,   311,   313,   313,   314,
2031 >     314,   314,   314,   314,   314,   314,   314,   314,   314,   314,
2032 >     314,   314,   314,   314,   314,   314,   314,   314,   314,   314,
2033 >     314,   314,   316,   315,   317,   317,   318,   318,   318,   318,
2034 >     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
2035 >     318,   318,   318,   319,   320,   321,   322,   323,   324,   325,
2036 >     326,   327,   328,   329,   330,   331,   332,   333,   335,   334,
2037 >     336,   336,   337,   337,   339,   338,   341,   340,   342,   342,
2038 >     343,   343,   343,   344,   344,   345,   345,   345,   345,   345,
2039 >     347,   346,   348,   348,   349,   349,   350,   351,   353,   352,
2040 >     354,   354,   355,   355,   355,   355,   355,   355,   355,   355,
2041 >     355,   356,   357,   358,   359,   361,   360,   362,   362,   363,
2042 >     363,   363,   363,   363,   363,   363,   363,   363,   363,   364,
2043 >     365,   366,   368,   367,   369,   369,   370,   370,   370,   370,
2044 >     371,   372,   373,   374,   375,   375,   376,   376,   377,   379,
2045 >     378,   380,   380,   381,   381,   381,   381,   382,   383,   385,
2046 >     384,   386,   386,   387,   387,   387,   387,   387,   387,   387,
2047 >     387,   387,   387,   389,   388,   390,   390,   391,   391,   391,
2048 >     392,   394,   393,   395,   395,   396,   396,   396,   396,   396,
2049 >     396,   396,   396,   396,   396,   398,   397,   399,   399,   400,
2050 >     400,   400,   400,   400,   400,   400,   400,   400,   400,   400,
2051 >     400,   400,   400,   400,   401,   402,   403,   404,   405,   406,
2052 >     407,   408,   408,   410,   409,   411,   411,   412,   412,   413,
2053 >     414,   415,   416,   417,   419,   418,   420,   420,   421,   421,
2054 >     421,   422,   423,   425,   424,   426,   426,   427,   427,   427,
2055 >     428,   429,   430,   431,   431,   432,   432,   433,   435,   434,
2056 >     436,   436,   437,   437,   437,   438,   439,   440,   441,   441,
2057 >     442,   442,   442,   442,   442,   442,   442,   442,   442,   442,
2058 >     442,   442,   442,   442,   442,   442,   442,   442,   442,   442,
2059 >     442,   442,   442,   442,   442,   442,   442,   442,   442,   442,
2060 >     442,   442,   442,   442,   442,   442,   442,   442,   442,   442,
2061 >     442,   442,   442,   442,   442,   442,   442,   442,   442,   442,
2062 >     443,   444,   445,   446,   447,   448,   449,   450,   451,   452,
2063 >     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
2064 >     463,   464,   465,   466,   467,   468,   469,   469,   470,   470,
2065 >     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
2066 >     481,   482,   483,   484,   485,   486,   488,   487,   489,   489,
2067 >     490,   490,   490,   490,   490,   490,   490,   490,   490,   490,
2068 >     490,   490,   490,   490,   490,   490,   490,   490,   490,   490,
2069 >     490,   492,   491,   493,   493,   494,   494,   494,   494,   494,
2070 >     494,   494,   494,   494,   494,   494,   494,   494,   494,   494,
2071 >     494,   494,   494,   494,   494,   494,   495,   496,   497,   498,
2072 >     499,   499,   500,   500,   500,   500,   500,   500,   500,   500,
2073 >     500,   500,   500,   500,   500,   501,   502,   503,   504,   505,
2074 >     506,   507,   508,   509,   510,   511,   512,   513,   514,   514,
2075 >     515,   515,   515,   515,   515,   515,   515,   515,   515,   516,
2076 >     517,   518,   519,   520,   521,   522,   523
2077 > };
2078 >
2079 >  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
2080 > static const yytype_uint8 yyr2[] =
2081 > {
2082 >       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
2083 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2084 >       1,     1,     1,     1,     1,     2,     2,     0,     1,     2,
2085 >       3,     3,     3,     3,     3,     3,     3,     0,     1,     2,
2086 >       3,     3,     3,     5,     2,     1,     1,     1,     2,     4,
2087 >       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
2088 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2089 >       1,     2,     4,     4,     3,     1,     1,     1,     3,     1,
2090 >       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
2091 >       4,     4,     4,     4,     4,     4,     4,     5,     2,     1,
2092 >       1,     1,     1,     2,     4,     4,     4,     0,     6,     2,
2093 >       1,     1,     1,     2,     4,     4,     5,     2,     1,     1,
2094 >       1,     2,     4,     0,     6,     2,     1,     1,     1,     1,
2095 >       2,     4,     4,     4,     0,     5,     3,     1,     1,     1,
2096 >       1,     1,     1,     1,     1,     1,     1,     0,     6,     2,
2097 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2098 >       1,     2,     4,     4,     4,     4,     4,     4,     4,     4,
2099 >       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
2100 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2101 >       1,     1,     1,     1,     1,     0,     5,     3,     1,     3,
2102 >       1,     3,     1,     3,     1,     1,     1,     1,     1,     1,
2103 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2104 >       1,     1,     0,     6,     2,     1,     1,     1,     1,     1,
2105 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2106 >       1,     1,     2,     4,     4,     4,     4,     4,     4,     4,
2107 >       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
2108 >       3,     1,     1,     1,     0,     6,     0,     5,     3,     1,
2109 >       1,     1,     1,     2,     1,     1,     1,     1,     1,     2,
2110 >       0,     5,     3,     1,     1,     3,     4,     4,     0,     6,
2111 >       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2112 >       2,     4,     4,     4,     4,     0,     5,     3,     1,     1,
2113 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
2114 >       4,     4,     0,     6,     2,     1,     1,     1,     1,     2,
2115 >       4,     4,     4,     5,     2,     1,     1,     1,     4,     0,
2116 >       6,     2,     1,     1,     1,     1,     2,     4,     4,     0,
2117 >       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
2118 >       1,     1,     1,     0,     6,     2,     1,     1,     1,     2,
2119 >       4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
2120 >       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
2121 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2122 >       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
2123 >       4,     4,     4,     0,     5,     3,     1,     1,     1,     4,
2124 >       4,     4,     4,     4,     0,     6,     2,     1,     1,     1,
2125 >       1,     4,     4,     0,     6,     2,     1,     1,     1,     1,
2126 >       4,     4,     5,     2,     1,     1,     1,     4,     0,     6,
2127 >       2,     1,     1,     1,     1,     4,     4,     5,     2,     1,
2128 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2129 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2130 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2131 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2132 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2133 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2134 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2135 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2136 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2137 >       4,     4,     4,     4,     4,     4,     0,     5,     3,     1,
2138 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2139 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2140 >       1,     0,     5,     3,     1,     1,     1,     1,     1,     1,
2141 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2142 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     5,
2143 >       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2144 >       1,     1,     1,     1,     1,     4,     4,     4,     4,     4,
2145 >       4,     4,     4,     4,     4,     4,     4,     5,     2,     1,
2146 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
2147 >       4,     4,     4,     4,     4,     4,     4
2148 > };
2149 >
2150 >
2151 > #define yyerrok         (yyerrstatus = 0)
2152 > #define yyclearin       (yychar = YYEMPTY)
2153 > #define YYEMPTY         (-2)
2154 > #define YYEOF           0
2155 >
2156 > #define YYACCEPT        goto yyacceptlab
2157 > #define YYABORT         goto yyabortlab
2158 > #define YYERROR         goto yyerrorlab
2159 >
2160  
2161   #define YYRECOVERING()  (!!yyerrstatus)
2162  
# Line 2345 | Line 2173 | do
2173    else                                                          \
2174      {                                                           \
2175        yyerror (YY_("syntax error: cannot back up")); \
2176 <      YYERROR;                                                  \
2177 <    }                                                           \
2178 < while (YYID (0))
2351 <
2176 >      YYERROR;                                                  \
2177 >    }                                                           \
2178 > while (0)
2179  
2180 < #define YYTERROR        1
2181 < #define YYERRCODE       256
2180 > /* Error token number */
2181 > #define YYTERROR        1
2182 > #define YYERRCODE       256
2183  
2356 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2357   If N is 0, then set CURRENT to the empty location which ends
2358   the previous symbol: RHS[0] (always defined).  */
2184  
2360 #ifndef YYLLOC_DEFAULT
2361 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2362    do                                                                  \
2363      if (YYID (N))                                                     \
2364        {                                                               \
2365          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2366          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2367          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2368          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2369        }                                                               \
2370      else                                                              \
2371        {                                                               \
2372          (Current).first_line   = (Current).last_line   =              \
2373            YYRHSLOC (Rhs, 0).last_line;                                \
2374          (Current).first_column = (Current).last_column =              \
2375            YYRHSLOC (Rhs, 0).last_column;                              \
2376        }                                                               \
2377    while (YYID (0))
2378 #endif
2185  
2186 < #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2186 > /* Enable debugging if requested.  */
2187 > #if YYDEBUG
2188  
2189 + # ifndef YYFPRINTF
2190 + #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2191 + #  define YYFPRINTF fprintf
2192 + # endif
2193  
2194 + # define YYDPRINTF(Args)                        \
2195 + do {                                            \
2196 +  if (yydebug)                                  \
2197 +    YYFPRINTF Args;                             \
2198 + } while (0)
2199  
2200   /* This macro is provided for backward compatibility. */
2385
2201   #ifndef YY_LOCATION_PRINT
2202   # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2203   #endif
2204  
2205  
2206 < /* YYLEX -- calling `yylex' with the right arguments.  */
2206 > # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2207 > do {                                                                      \
2208 >  if (yydebug)                                                            \
2209 >    {                                                                     \
2210 >      YYFPRINTF (stderr, "%s ", Title);                                   \
2211 >      yy_symbol_print (stderr,                                            \
2212 >                  Type, Value); \
2213 >      YYFPRINTF (stderr, "\n");                                           \
2214 >    }                                                                     \
2215 > } while (0)
2216  
2393 #ifdef YYLEX_PARAM
2394 # define YYLEX yylex (YYLEX_PARAM)
2395 #else
2396 # define YYLEX yylex ()
2397 #endif
2398
2399 /* Enable debugging if requested.  */
2400 #if YYDEBUG
2217  
2218 < # ifndef YYFPRINTF
2219 < #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2220 < #  define YYFPRINTF fprintf
2405 < # endif
2218 > /*----------------------------------------.
2219 > | Print this symbol's value on YYOUTPUT.  |
2220 > `----------------------------------------*/
2221  
2407 # define YYDPRINTF(Args)                        \
2408 do {                                            \
2409  if (yydebug)                                  \
2410    YYFPRINTF Args;                             \
2411 } while (YYID (0))
2412
2413 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2414 do {                                                                      \
2415  if (yydebug)                                                            \
2416    {                                                                     \
2417      YYFPRINTF (stderr, "%s ", Title);                                   \
2418      yy_symbol_print (stderr,                                            \
2419                  Type, Value); \
2420      YYFPRINTF (stderr, "\n");                                           \
2421    }                                                                     \
2422 } while (YYID (0))
2423
2424
2425 /*--------------------------------.
2426 | Print this symbol on YYOUTPUT.  |
2427 `--------------------------------*/
2428
2429 /*ARGSUSED*/
2430 #if (defined __STDC__ || defined __C99__FUNC__ \
2431     || defined __cplusplus || defined _MSC_VER)
2222   static void
2223   yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2434 #else
2435 static void
2436 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
2437    FILE *yyoutput;
2438    int yytype;
2439    YYSTYPE const * const yyvaluep;
2440 #endif
2224   {
2225    FILE *yyo = yyoutput;
2226    YYUSE (yyo);
# Line 2446 | Line 2229 | yy_symbol_value_print (yyoutput, yytype,
2229   # ifdef YYPRINT
2230    if (yytype < YYNTOKENS)
2231      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2449 # else
2450  YYUSE (yyoutput);
2232   # endif
2233 <  switch (yytype)
2453 <    {
2454 <      default:
2455 <        break;
2456 <    }
2233 >  YYUSE (yytype);
2234   }
2235  
2236  
# Line 2461 | Line 2238 | yy_symbol_value_print (yyoutput, yytype,
2238   | Print this symbol on YYOUTPUT.  |
2239   `--------------------------------*/
2240  
2464 #if (defined __STDC__ || defined __C99__FUNC__ \
2465     || defined __cplusplus || defined _MSC_VER)
2241   static void
2242   yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2468 #else
2469 static void
2470 yy_symbol_print (yyoutput, yytype, yyvaluep)
2471    FILE *yyoutput;
2472    int yytype;
2473    YYSTYPE const * const yyvaluep;
2474 #endif
2243   {
2244 <  if (yytype < YYNTOKENS)
2245 <    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2478 <  else
2479 <    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2244 >  YYFPRINTF (yyoutput, "%s %s (",
2245 >             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2246  
2247    yy_symbol_value_print (yyoutput, yytype, yyvaluep);
2248    YYFPRINTF (yyoutput, ")");
# Line 2487 | Line 2253 | yy_symbol_print (yyoutput, yytype, yyval
2253   | TOP (included).                                                   |
2254   `------------------------------------------------------------------*/
2255  
2490 #if (defined __STDC__ || defined __C99__FUNC__ \
2491     || defined __cplusplus || defined _MSC_VER)
2256   static void
2257   yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2494 #else
2495 static void
2496 yy_stack_print (yybottom, yytop)
2497    yytype_int16 *yybottom;
2498    yytype_int16 *yytop;
2499 #endif
2258   {
2259    YYFPRINTF (stderr, "Stack now");
2260    for (; yybottom <= yytop; yybottom++)
# Line 2507 | Line 2265 | yy_stack_print (yybottom, yytop)
2265    YYFPRINTF (stderr, "\n");
2266   }
2267  
2268 < # define YY_STACK_PRINT(Bottom, Top)                            \
2269 < do {                                                            \
2270 <  if (yydebug)                                                  \
2271 <    yy_stack_print ((Bottom), (Top));                           \
2272 < } while (YYID (0))
2268 > # define YY_STACK_PRINT(Bottom, Top)                            \
2269 > do {                                                            \
2270 >  if (yydebug)                                                  \
2271 >    yy_stack_print ((Bottom), (Top));                           \
2272 > } while (0)
2273  
2274  
2275   /*------------------------------------------------.
2276   | Report that the YYRULE is going to be reduced.  |
2277   `------------------------------------------------*/
2278  
2521 #if (defined __STDC__ || defined __C99__FUNC__ \
2522     || defined __cplusplus || defined _MSC_VER)
2523 static void
2524 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
2525 #else
2279   static void
2280 < yy_reduce_print (yyvsp, yyrule)
2528 <    YYSTYPE *yyvsp;
2529 <    int yyrule;
2530 < #endif
2280 > yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
2281   {
2282 +  unsigned long int yylno = yyrline[yyrule];
2283    int yynrhs = yyr2[yyrule];
2284    int yyi;
2534  unsigned long int yylno = yyrline[yyrule];
2285    YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2286 <             yyrule - 1, yylno);
2286 >             yyrule - 1, yylno);
2287    /* The symbols being reduced.  */
2288    for (yyi = 0; yyi < yynrhs; yyi++)
2289      {
2290        YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2291 <      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
2292 <                       &(yyvsp[(yyi + 1) - (yynrhs)])
2293 <                                       );
2291 >      yy_symbol_print (stderr,
2292 >                       yystos[yyssp[yyi + 1 - yynrhs]],
2293 >                       &(yyvsp[(yyi + 1) - (yynrhs)])
2294 >                                              );
2295        YYFPRINTF (stderr, "\n");
2296      }
2297   }
2298  
2299 < # define YY_REDUCE_PRINT(Rule)          \
2300 < do {                                    \
2301 <  if (yydebug)                          \
2302 <    yy_reduce_print (yyvsp, Rule); \
2303 < } while (YYID (0))
2299 > # define YY_REDUCE_PRINT(Rule)          \
2300 > do {                                    \
2301 >  if (yydebug)                          \
2302 >    yy_reduce_print (yyssp, yyvsp, Rule); \
2303 > } while (0)
2304  
2305   /* Nonzero means print parse trace.  It is left uninitialized so that
2306     multiple parsers can coexist.  */
# Line 2563 | Line 2314 | int yydebug;
2314  
2315  
2316   /* YYINITDEPTH -- initial size of the parser's stacks.  */
2317 < #ifndef YYINITDEPTH
2317 > #ifndef YYINITDEPTH
2318   # define YYINITDEPTH 200
2319   #endif
2320  
# Line 2586 | Line 2337 | int yydebug;
2337   #   define yystrlen strlen
2338   #  else
2339   /* Return the length of YYSTR.  */
2589 #if (defined __STDC__ || defined __C99__FUNC__ \
2590     || defined __cplusplus || defined _MSC_VER)
2340   static YYSIZE_T
2341   yystrlen (const char *yystr)
2593 #else
2594 static YYSIZE_T
2595 yystrlen (yystr)
2596    const char *yystr;
2597 #endif
2342   {
2343    YYSIZE_T yylen;
2344    for (yylen = 0; yystr[yylen]; yylen++)
# Line 2610 | Line 2354 | yystrlen (yystr)
2354   #  else
2355   /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2356     YYDEST.  */
2613 #if (defined __STDC__ || defined __C99__FUNC__ \
2614     || defined __cplusplus || defined _MSC_VER)
2357   static char *
2358   yystpcpy (char *yydest, const char *yysrc)
2617 #else
2618 static char *
2619 yystpcpy (yydest, yysrc)
2620    char *yydest;
2621    const char *yysrc;
2622 #endif
2359   {
2360    char *yyd = yydest;
2361    const char *yys = yysrc;
# Line 2649 | Line 2385 | yytnamerr (char *yyres, const char *yyst
2385        char const *yyp = yystr;
2386  
2387        for (;;)
2388 <        switch (*++yyp)
2389 <          {
2390 <          case '\'':
2391 <          case ',':
2392 <            goto do_not_strip_quotes;
2393 <
2394 <          case '\\':
2395 <            if (*++yyp != '\\')
2396 <              goto do_not_strip_quotes;
2397 <            /* Fall through.  */
2398 <          default:
2399 <            if (yyres)
2400 <              yyres[yyn] = *yyp;
2401 <            yyn++;
2402 <            break;
2403 <
2404 <          case '"':
2405 <            if (yyres)
2406 <              yyres[yyn] = '\0';
2407 <            return yyn;
2408 <          }
2388 >        switch (*++yyp)
2389 >          {
2390 >          case '\'':
2391 >          case ',':
2392 >            goto do_not_strip_quotes;
2393 >
2394 >          case '\\':
2395 >            if (*++yyp != '\\')
2396 >              goto do_not_strip_quotes;
2397 >            /* Fall through.  */
2398 >          default:
2399 >            if (yyres)
2400 >              yyres[yyn] = *yyp;
2401 >            yyn++;
2402 >            break;
2403 >
2404 >          case '"':
2405 >            if (yyres)
2406 >              yyres[yyn] = '\0';
2407 >            return yyn;
2408 >          }
2409      do_not_strip_quotes: ;
2410      }
2411  
# Line 2692 | Line 2428 | static int
2428   yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2429                  yytype_int16 *yyssp, int yytoken)
2430   {
2431 <  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
2431 >  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
2432    YYSIZE_T yysize = yysize0;
2697  YYSIZE_T yysize1;
2433    enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2434    /* Internationalized format string. */
2435 <  const char *yyformat = YY_NULL;
2435 >  const char *yyformat = YY_NULLPTR;
2436    /* Arguments of yyformat. */
2437    char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2438    /* Number of reported tokens (one for the "unexpected", one per
# Line 2705 | Line 2440 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2440    int yycount = 0;
2441  
2442    /* There are many possibilities here to consider:
2708     - Assume YYFAIL is not used.  It's too flawed to consider.  See
2709       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
2710       for details.  YYERROR is fine as it does not invoke this
2711       function.
2443       - If this state is a consistent state with a default action, then
2444         the only way this function was invoked is if the default action
2445         is an error action.  In that case, don't check for expected
# Line 2757 | Line 2488 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2488                      break;
2489                    }
2490                  yyarg[yycount++] = yytname[yyx];
2491 <                yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2492 <                if (! (yysize <= yysize1
2493 <                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2494 <                  return 2;
2495 <                yysize = yysize1;
2491 >                {
2492 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2493 >                  if (! (yysize <= yysize1
2494 >                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2495 >                    return 2;
2496 >                  yysize = yysize1;
2497 >                }
2498                }
2499          }
2500      }
# Line 2781 | Line 2514 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2514   # undef YYCASE_
2515      }
2516  
2517 <  yysize1 = yysize + yystrlen (yyformat);
2518 <  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2519 <    return 2;
2520 <  yysize = yysize1;
2517 >  {
2518 >    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2519 >    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2520 >      return 2;
2521 >    yysize = yysize1;
2522 >  }
2523  
2524    if (*yymsg_alloc < yysize)
2525      {
# Line 2821 | Line 2556 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2556   | Release the memory associated to this symbol.  |
2557   `-----------------------------------------------*/
2558  
2824 /*ARGSUSED*/
2825 #if (defined __STDC__ || defined __C99__FUNC__ \
2826     || defined __cplusplus || defined _MSC_VER)
2559   static void
2560   yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
2829 #else
2830 static void
2831 yydestruct (yymsg, yytype, yyvaluep)
2832    const char *yymsg;
2833    int yytype;
2834    YYSTYPE *yyvaluep;
2835 #endif
2561   {
2562    YYUSE (yyvaluep);
2838
2563    if (!yymsg)
2564      yymsg = "Deleting";
2565    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2566  
2567 <  switch (yytype)
2568 <    {
2569 <
2846 <      default:
2847 <        break;
2848 <    }
2567 >  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2568 >  YYUSE (yytype);
2569 >  YY_IGNORE_MAYBE_UNINITIALIZED_END
2570   }
2571  
2572  
# Line 2856 | Line 2577 | int yychar;
2577  
2578   /* The semantic value of the lookahead symbol.  */
2579   YYSTYPE yylval;
2859
2580   /* Number of syntax errors so far.  */
2581   int yynerrs;
2582  
# Line 2865 | Line 2585 | int yynerrs;
2585   | yyparse.  |
2586   `----------*/
2587  
2868 #ifdef YYPARSE_PARAM
2869 #if (defined __STDC__ || defined __C99__FUNC__ \
2870     || defined __cplusplus || defined _MSC_VER)
2871 int
2872 yyparse (void *YYPARSE_PARAM)
2873 #else
2874 int
2875 yyparse (YYPARSE_PARAM)
2876    void *YYPARSE_PARAM;
2877 #endif
2878 #else /* ! YYPARSE_PARAM */
2879 #if (defined __STDC__ || defined __C99__FUNC__ \
2880     || defined __cplusplus || defined _MSC_VER)
2588   int
2589   yyparse (void)
2883 #else
2884 int
2885 yyparse ()
2886
2887 #endif
2888 #endif
2590   {
2591      int yystate;
2592      /* Number of tokens to shift before error messages enabled.  */
2593      int yyerrstatus;
2594  
2595      /* The stacks and their tools:
2596 <       `yyss': related to states.
2597 <       `yyvs': related to semantic values.
2596 >       'yyss': related to states.
2597 >       'yyvs': related to semantic values.
2598  
2599         Refer to the stacks through separate pointers, to allow yyoverflow
2600         to reallocate them elsewhere.  */
# Line 2913 | Line 2614 | yyparse ()
2614    int yyn;
2615    int yyresult;
2616    /* Lookahead token as an internal (translated) token number.  */
2617 <  int yytoken;
2617 >  int yytoken = 0;
2618    /* The variables used to return semantic value and location from the
2619       action routines.  */
2620    YYSTYPE yyval;
# Line 2931 | Line 2632 | yyparse ()
2632       Keep to zero when no symbol should be popped.  */
2633    int yylen = 0;
2634  
2635 <  yytoken = 0;
2636 <  yyss = yyssa;
2936 <  yyvs = yyvsa;
2635 >  yyssp = yyss = yyssa;
2636 >  yyvsp = yyvs = yyvsa;
2637    yystacksize = YYINITDEPTH;
2638  
2639    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 2942 | Line 2642 | yyparse ()
2642    yyerrstatus = 0;
2643    yynerrs = 0;
2644    yychar = YYEMPTY; /* Cause a token to be read.  */
2945
2946  /* Initialize stack pointers.
2947     Waste one element of value and location stack
2948     so that they stay on the same level as the state stack.
2949     The wasted elements are never initialized.  */
2950  yyssp = yyss;
2951  yyvsp = yyvs;
2645    goto yysetstate;
2646  
2647   /*------------------------------------------------------------.
# Line 2969 | Line 2662 | yyparse ()
2662  
2663   #ifdef yyoverflow
2664        {
2665 <        /* Give user a chance to reallocate the stack.  Use copies of
2666 <           these so that the &'s don't force the real ones into
2667 <           memory.  */
2668 <        YYSTYPE *yyvs1 = yyvs;
2669 <        yytype_int16 *yyss1 = yyss;
2670 <
2671 <        /* Each stack pointer address is followed by the size of the
2672 <           data in use in that stack, in bytes.  This used to be a
2673 <           conditional around just the two extra args, but that might
2674 <           be undefined if yyoverflow is a macro.  */
2675 <        yyoverflow (YY_("memory exhausted"),
2676 <                    &yyss1, yysize * sizeof (*yyssp),
2677 <                    &yyvs1, yysize * sizeof (*yyvsp),
2678 <                    &yystacksize);
2665 >        /* Give user a chance to reallocate the stack.  Use copies of
2666 >           these so that the &'s don't force the real ones into
2667 >           memory.  */
2668 >        YYSTYPE *yyvs1 = yyvs;
2669 >        yytype_int16 *yyss1 = yyss;
2670 >
2671 >        /* Each stack pointer address is followed by the size of the
2672 >           data in use in that stack, in bytes.  This used to be a
2673 >           conditional around just the two extra args, but that might
2674 >           be undefined if yyoverflow is a macro.  */
2675 >        yyoverflow (YY_("memory exhausted"),
2676 >                    &yyss1, yysize * sizeof (*yyssp),
2677 >                    &yyvs1, yysize * sizeof (*yyvsp),
2678 >                    &yystacksize);
2679  
2680 <        yyss = yyss1;
2681 <        yyvs = yyvs1;
2680 >        yyss = yyss1;
2681 >        yyvs = yyvs1;
2682        }
2683   #else /* no yyoverflow */
2684   # ifndef YYSTACK_RELOCATE
# Line 2993 | Line 2686 | yyparse ()
2686   # else
2687        /* Extend the stack our own way.  */
2688        if (YYMAXDEPTH <= yystacksize)
2689 <        goto yyexhaustedlab;
2689 >        goto yyexhaustedlab;
2690        yystacksize *= 2;
2691        if (YYMAXDEPTH < yystacksize)
2692 <        yystacksize = YYMAXDEPTH;
2692 >        yystacksize = YYMAXDEPTH;
2693  
2694        {
2695 <        yytype_int16 *yyss1 = yyss;
2696 <        union yyalloc *yyptr =
2697 <          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2698 <        if (! yyptr)
2699 <          goto yyexhaustedlab;
2700 <        YYSTACK_RELOCATE (yyss_alloc, yyss);
2701 <        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2695 >        yytype_int16 *yyss1 = yyss;
2696 >        union yyalloc *yyptr =
2697 >          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2698 >        if (! yyptr)
2699 >          goto yyexhaustedlab;
2700 >        YYSTACK_RELOCATE (yyss_alloc, yyss);
2701 >        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2702   #  undef YYSTACK_RELOCATE
2703 <        if (yyss1 != yyssa)
2704 <          YYSTACK_FREE (yyss1);
2703 >        if (yyss1 != yyssa)
2704 >          YYSTACK_FREE (yyss1);
2705        }
2706   # endif
2707   #endif /* no yyoverflow */
# Line 3017 | Line 2710 | yyparse ()
2710        yyvsp = yyvs + yysize - 1;
2711  
2712        YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2713 <                  (unsigned long int) yystacksize));
2713 >                  (unsigned long int) yystacksize));
2714  
2715        if (yyss + yystacksize - 1 <= yyssp)
2716 <        YYABORT;
2716 >        YYABORT;
2717      }
2718  
2719    YYDPRINTF ((stderr, "Entering state %d\n", yystate));
# Line 3049 | Line 2742 | yybackup:
2742    if (yychar == YYEMPTY)
2743      {
2744        YYDPRINTF ((stderr, "Reading a token: "));
2745 <      yychar = YYLEX;
2745 >      yychar = yylex ();
2746      }
2747  
2748    if (yychar <= YYEOF)
# Line 3089 | Line 2782 | yybackup:
2782    yychar = YYEMPTY;
2783  
2784    yystate = yyn;
2785 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2786    *++yyvsp = yylval;
2787 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
2788  
2789    goto yynewstate;
2790  
# Line 3112 | Line 2807 | yyreduce:
2807    yylen = yyr2[yyn];
2808  
2809    /* If YYLEN is nonzero, implement the default value of the action:
2810 <     `$$ = $1'.
2810 >     '$$ = $1'.
2811  
2812       Otherwise, the following line sets YYVAL to garbage.
2813       This behavior is undocumented and Bison
# Line 3125 | Line 2820 | yyreduce:
2820    YY_REDUCE_PRINT (yyn);
2821    switch (yyn)
2822      {
2823 <        case 26:
2824 < /* Line 1787 of yacc.c  */
3130 < #line 359 "conf_parser.y"
2823 >        case 27:
2824 > #line 400 "conf_parser.y" /* yacc.c:1646  */
2825      { (yyval.number) = 0; }
2826 <    break;
3133 <
3134 <  case 28:
3135 < /* Line 1787 of yacc.c  */
3136 < #line 361 "conf_parser.y"
3137 <    {
3138 <                        (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3139 <                }
2826 > #line 2827 "conf_parser.c" /* yacc.c:1646  */
2827      break;
2828  
2829    case 29:
2830 < /* Line 1787 of yacc.c  */
3144 < #line 365 "conf_parser.y"
2830 > #line 402 "conf_parser.y" /* yacc.c:1646  */
2831      {
2832 <                        (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
2832 >                        (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number);
2833                  }
2834 + #line 2835 "conf_parser.c" /* yacc.c:1646  */
2835      break;
2836  
2837    case 30:
2838 < /* Line 1787 of yacc.c  */
3152 < #line 369 "conf_parser.y"
2838 > #line 406 "conf_parser.y" /* yacc.c:1646  */
2839      {
2840 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
2840 >                        (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number);
2841                  }
2842 + #line 2843 "conf_parser.c" /* yacc.c:1646  */
2843      break;
2844  
2845    case 31:
2846 < /* Line 1787 of yacc.c  */
3160 < #line 373 "conf_parser.y"
2846 > #line 410 "conf_parser.y" /* yacc.c:1646  */
2847      {
2848 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
2848 >                        (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number);
2849                  }
2850 + #line 2851 "conf_parser.c" /* yacc.c:1646  */
2851      break;
2852  
2853    case 32:
2854 < /* Line 1787 of yacc.c  */
3168 < #line 377 "conf_parser.y"
2854 > #line 414 "conf_parser.y" /* yacc.c:1646  */
2855      {
2856 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
2856 >                        (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number);
2857                  }
2858 + #line 2859 "conf_parser.c" /* yacc.c:1646  */
2859      break;
2860  
2861    case 33:
2862 < /* Line 1787 of yacc.c  */
3176 < #line 381 "conf_parser.y"
2862 > #line 418 "conf_parser.y" /* yacc.c:1646  */
2863      {
2864 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
2864 >                        (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number);
2865                  }
2866 + #line 2867 "conf_parser.c" /* yacc.c:1646  */
2867      break;
2868  
2869    case 34:
2870 < /* Line 1787 of yacc.c  */
2871 < #line 386 "conf_parser.y"
2872 <    { (yyval.number) = 0; }
2870 > #line 422 "conf_parser.y" /* yacc.c:1646  */
2871 >    {
2872 >                        (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number);
2873 >                }
2874 > #line 2875 "conf_parser.c" /* yacc.c:1646  */
2875 >    break;
2876 >
2877 >  case 35:
2878 > #line 426 "conf_parser.y" /* yacc.c:1646  */
2879 >    {
2880 >                        (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number);
2881 >                }
2882 > #line 2883 "conf_parser.c" /* yacc.c:1646  */
2883      break;
2884  
2885    case 36:
2886 < /* Line 1787 of yacc.c  */
2887 < #line 387 "conf_parser.y"
2888 <    { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
2886 > #line 430 "conf_parser.y" /* yacc.c:1646  */
2887 >    {
2888 >                        (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number);
2889 >                }
2890 > #line 2891 "conf_parser.c" /* yacc.c:1646  */
2891      break;
2892  
2893    case 37:
2894 < /* Line 1787 of yacc.c  */
2895 < #line 388 "conf_parser.y"
2896 <    { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
2894 > #line 435 "conf_parser.y" /* yacc.c:1646  */
2895 >    { (yyval.number) = 0; }
2896 > #line 2897 "conf_parser.c" /* yacc.c:1646  */
2897      break;
2898  
2899 <  case 38:
2900 < /* Line 1787 of yacc.c  */
2901 < #line 389 "conf_parser.y"
2902 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
2899 >  case 39:
2900 > #line 436 "conf_parser.y" /* yacc.c:1646  */
2901 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2902 > #line 2903 "conf_parser.c" /* yacc.c:1646  */
2903      break;
2904  
2905 <  case 39:
2906 < /* Line 1787 of yacc.c  */
2907 < #line 390 "conf_parser.y"
2908 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
2905 >  case 40:
2906 > #line 437 "conf_parser.y" /* yacc.c:1646  */
2907 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2908 > #line 2909 "conf_parser.c" /* yacc.c:1646  */
2909      break;
2910  
2911 <  case 46:
2912 < /* Line 1787 of yacc.c  */
2913 < #line 404 "conf_parser.y"
2911 >  case 41:
2912 > #line 438 "conf_parser.y" /* yacc.c:1646  */
2913 >    { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); }
2914 > #line 2915 "conf_parser.c" /* yacc.c:1646  */
2915 >    break;
2916 >
2917 >  case 42:
2918 > #line 439 "conf_parser.y" /* yacc.c:1646  */
2919 >    { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); }
2920 > #line 2921 "conf_parser.c" /* yacc.c:1646  */
2921 >    break;
2922 >
2923 >  case 49:
2924 > #line 453 "conf_parser.y" /* yacc.c:1646  */
2925      {
2926    if (conf_parser_ctx.pass == 2)
2927      add_conf_module(libio_basename(yylval.string));
2928   }
2929 + #line 2930 "conf_parser.c" /* yacc.c:1646  */
2930      break;
2931  
2932 <  case 47:
2933 < /* Line 1787 of yacc.c  */
3223 < #line 410 "conf_parser.y"
2932 >  case 50:
2933 > #line 459 "conf_parser.y" /* yacc.c:1646  */
2934      {
2935    if (conf_parser_ctx.pass == 2)
2936      mod_add_path(yylval.string);
2937   }
2938 + #line 2939 "conf_parser.c" /* yacc.c:1646  */
2939      break;
2940  
2941 <  case 71:
2942 < /* Line 1787 of yacc.c  */
3232 < #line 435 "conf_parser.y"
2941 >  case 76:
2942 > #line 485 "conf_parser.y" /* yacc.c:1646  */
2943      {
2944   #ifdef HAVE_LIBCRYPTO
2945    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
2946      SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
2947   #endif
2948   }
2949 + #line 2950 "conf_parser.c" /* yacc.c:1646  */
2950      break;
2951  
2952 <  case 72:
2953 < /* Line 1787 of yacc.c  */
3243 < #line 441 "conf_parser.y"
2952 >  case 77:
2953 > #line 491 "conf_parser.y" /* yacc.c:1646  */
2954      {
2955   #ifdef HAVE_LIBCRYPTO
2956    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
2957      SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
2958   #endif
2959   }
2960 + #line 2961 "conf_parser.c" /* yacc.c:1646  */
2961      break;
2962  
2963 <  case 75:
2964 < /* Line 1787 of yacc.c  */
3254 < #line 450 "conf_parser.y"
2963 >  case 80:
2964 > #line 500 "conf_parser.y" /* yacc.c:1646  */
2965      {
2966   #ifdef HAVE_LIBCRYPTO
2967    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2968      SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
2969   #endif
2970   }
2971 + #line 2972 "conf_parser.c" /* yacc.c:1646  */
2972      break;
2973  
2974 <  case 76:
2975 < /* Line 1787 of yacc.c  */
3265 < #line 456 "conf_parser.y"
2974 >  case 81:
2975 > #line 506 "conf_parser.y" /* yacc.c:1646  */
2976      {
2977   #ifdef HAVE_LIBCRYPTO
2978    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2979      SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
2980   #endif
2981   }
2982 + #line 2983 "conf_parser.c" /* yacc.c:1646  */
2983      break;
2984  
2985 <  case 77:
2986 < /* Line 1787 of yacc.c  */
3276 < #line 464 "conf_parser.y"
2985 >  case 82:
2986 > #line 514 "conf_parser.y" /* yacc.c:1646  */
2987      {
2988   #ifdef HAVE_LIBCRYPTO
2989    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2990    {
2991      if (!ServerInfo.rsa_private_key_file)
2992      {
2993 <      yyerror("No rsa_private_key_file specified, SSL disabled");
2993 >      conf_error_report("No rsa_private_key_file specified, SSL disabled");
2994        break;
2995      }
2996  
# Line 3289 | Line 2999 | yyreduce:
2999          SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3000                                       SSL_FILETYPE_PEM) <= 0)
3001      {
3002 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3002 >      report_crypto_errors();
3003 >      conf_error_report("Could not open/read certificate file");
3004        break;
3005      }
3006  
# Line 3298 | Line 3009 | yyreduce:
3009          SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3010                                      SSL_FILETYPE_PEM) <= 0)
3011      {
3012 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3012 >      report_crypto_errors();
3013 >      conf_error_report("Could not read RSA private key");
3014        break;
3015      }
3016  
3017      if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3018          !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3019      {
3020 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3020 >      report_crypto_errors();
3021 >      conf_error_report("Could not read RSA private key");
3022        break;
3023      }
3024    }
3025   #endif
3026   }
3027 + #line 3028 "conf_parser.c" /* yacc.c:1646  */
3028      break;
3029  
3030 <  case 78:
3031 < /* Line 1787 of yacc.c  */
3318 < #line 503 "conf_parser.y"
3030 >  case 83:
3031 > #line 556 "conf_parser.y" /* yacc.c:1646  */
3032      {
3033   #ifdef HAVE_LIBCRYPTO
3034 <  if (conf_parser_ctx.pass == 1)
3322 <  {
3323 <    BIO *file;
3034 >  BIO *file = NULL;
3035  
3036 <    if (ServerInfo.rsa_private_key)
3037 <    {
3327 <      RSA_free(ServerInfo.rsa_private_key);
3328 <      ServerInfo.rsa_private_key = NULL;
3329 <    }
3036 >  if (conf_parser_ctx.pass != 1)
3037 >    break;
3038  
3039 <    if (ServerInfo.rsa_private_key_file)
3040 <    {
3041 <      MyFree(ServerInfo.rsa_private_key_file);
3042 <      ServerInfo.rsa_private_key_file = NULL;
3043 <    }
3039 >  if (ServerInfo.rsa_private_key)
3040 >  {
3041 >    RSA_free(ServerInfo.rsa_private_key);
3042 >    ServerInfo.rsa_private_key = NULL;
3043 >  }
3044  
3045 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3045 >  if (ServerInfo.rsa_private_key_file)
3046 >  {
3047 >    MyFree(ServerInfo.rsa_private_key_file);
3048 >    ServerInfo.rsa_private_key_file = NULL;
3049 >  }
3050  
3051 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3340 <    {
3341 <      yyerror("File open failed, ignoring");
3342 <      break;
3343 <    }
3051 >  ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3052  
3053 <    ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3053 >  if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3054 >  {
3055 >    conf_error_report("File open failed, ignoring");
3056 >    break;
3057 >  }
3058  
3059 <    BIO_set_close(file, BIO_CLOSE);
3348 <    BIO_free(file);
3059 >  ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3060  
3061 <    if (ServerInfo.rsa_private_key == NULL)
3062 <    {
3352 <      yyerror("Couldn't extract key, ignoring");
3353 <      break;
3354 <    }
3061 >  BIO_set_close(file, BIO_CLOSE);
3062 >  BIO_free(file);
3063  
3064 <    if (!RSA_check_key(ServerInfo.rsa_private_key))
3065 <    {
3066 <      RSA_free(ServerInfo.rsa_private_key);
3067 <      ServerInfo.rsa_private_key = NULL;
3064 >  if (ServerInfo.rsa_private_key == NULL)
3065 >  {
3066 >    conf_error_report("Couldn't extract key, ignoring");
3067 >    break;
3068 >  }
3069  
3070 <      yyerror("Invalid key, ignoring");
3071 <      break;
3072 <    }
3070 >  if (!RSA_check_key(ServerInfo.rsa_private_key))
3071 >  {
3072 >    RSA_free(ServerInfo.rsa_private_key);
3073 >    ServerInfo.rsa_private_key = NULL;
3074  
3075 <    /* require 2048 bit (256 byte) key */
3076 <    if (RSA_size(ServerInfo.rsa_private_key) != 256)
3077 <    {
3368 <      RSA_free(ServerInfo.rsa_private_key);
3369 <      ServerInfo.rsa_private_key = NULL;
3075 >    conf_error_report("Invalid key, ignoring");
3076 >    break;
3077 >  }
3078  
3079 <      yyerror("Not a 2048 bit key, ignoring");
3080 <    }
3079 >  /* require 2048 bit (256 byte) key */
3080 >  if (RSA_size(ServerInfo.rsa_private_key) != 256)
3081 >  {
3082 >    RSA_free(ServerInfo.rsa_private_key);
3083 >    ServerInfo.rsa_private_key = NULL;
3084 >
3085 >    conf_error_report("Not a 2048 bit key, ignoring");
3086    }
3087   #endif
3088   }
3089 + #line 3090 "conf_parser.c" /* yacc.c:1646  */
3090      break;
3091  
3092 <  case 79:
3093 < /* Line 1787 of yacc.c  */
3380 < #line 562 "conf_parser.y"
3092 >  case 84:
3093 > #line 615 "conf_parser.y" /* yacc.c:1646  */
3094      {
3095   /* TBD - XXX: error reporting */
3096   #ifdef HAVE_LIBCRYPTO
# Line 3394 | Line 3107 | yyreduce:
3107        if (dh)
3108        {
3109          if (DH_size(dh) < 128)
3110 <          ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3110 >          conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3111          else
3112            SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3113  
# Line 3404 | Line 3117 | yyreduce:
3117    }
3118   #endif
3119   }
3120 + #line 3121 "conf_parser.c" /* yacc.c:1646  */
3121      break;
3122  
3123 <  case 80:
3124 < /* Line 1787 of yacc.c  */
3411 < #line 590 "conf_parser.y"
3123 >  case 85:
3124 > #line 643 "conf_parser.y" /* yacc.c:1646  */
3125      {
3126   #ifdef HAVE_LIBCRYPTO
3127    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3128      SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3129   #endif
3130   }
3131 + #line 3132 "conf_parser.c" /* yacc.c:1646  */
3132      break;
3133  
3134 <  case 81:
3135 < /* Line 1787 of yacc.c  */
3422 < #line 598 "conf_parser.y"
3134 >  case 86:
3135 > #line 651 "conf_parser.y" /* yacc.c:1646  */
3136      {
3137    /* this isn't rehashable */
3138    if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3139    {
3140      if (valid_servname(yylval.string))
3141 <      DupString(ServerInfo.name, yylval.string);
3141 >      ServerInfo.name = xstrdup(yylval.string);
3142      else
3143      {
3144 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::name -- invalid name. Aborting.");
3144 >      conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3145        exit(0);
3146      }
3147    }
3148   }
3149 + #line 3150 "conf_parser.c" /* yacc.c:1646  */
3150      break;
3151  
3152 <  case 82:
3153 < /* Line 1787 of yacc.c  */
3440 < #line 613 "conf_parser.y"
3152 >  case 87:
3153 > #line 666 "conf_parser.y" /* yacc.c:1646  */
3154      {
3155    /* this isn't rehashable */
3156    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3157    {
3158      if (valid_sid(yylval.string))
3159 <      DupString(ServerInfo.sid, yylval.string);
3159 >      ServerInfo.sid = xstrdup(yylval.string);
3160      else
3161      {
3162 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
3162 >      conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3163        exit(0);
3164      }
3165    }
3166   }
3167 + #line 3168 "conf_parser.c" /* yacc.c:1646  */
3168      break;
3169  
3170 <  case 83:
3171 < /* Line 1787 of yacc.c  */
3458 < #line 628 "conf_parser.y"
3170 >  case 88:
3171 > #line 681 "conf_parser.y" /* yacc.c:1646  */
3172      {
3173    if (conf_parser_ctx.pass == 2)
3174    {
3175      MyFree(ServerInfo.description);
3176 <    DupString(ServerInfo.description,yylval.string);
3176 >    ServerInfo.description = xstrdup(yylval.string);
3177    }
3178   }
3179 + #line 3180 "conf_parser.c" /* yacc.c:1646  */
3180      break;
3181  
3182 <  case 84:
3183 < /* Line 1787 of yacc.c  */
3470 < #line 637 "conf_parser.y"
3182 >  case 89:
3183 > #line 690 "conf_parser.y" /* yacc.c:1646  */
3184      {
3185    if (conf_parser_ctx.pass == 2)
3186    {
# Line 3477 | Line 3190 | yyreduce:
3190        p = '\0';
3191  
3192      MyFree(ServerInfo.network_name);
3193 <    DupString(ServerInfo.network_name, yylval.string);
3193 >    ServerInfo.network_name = xstrdup(yylval.string);
3194    }
3195   }
3196 + #line 3197 "conf_parser.c" /* yacc.c:1646  */
3197      break;
3198  
3199 <  case 85:
3200 < /* Line 1787 of yacc.c  */
3487 < #line 651 "conf_parser.y"
3199 >  case 90:
3200 > #line 704 "conf_parser.y" /* yacc.c:1646  */
3201      {
3202 <  if (conf_parser_ctx.pass == 2)
3203 <  {
3204 <    MyFree(ServerInfo.network_desc);
3205 <    DupString(ServerInfo.network_desc, yylval.string);
3206 <  }
3202 >  if (conf_parser_ctx.pass != 2)
3203 >    break;
3204 >
3205 >  MyFree(ServerInfo.network_desc);
3206 >  ServerInfo.network_desc = xstrdup(yylval.string);
3207   }
3208 + #line 3209 "conf_parser.c" /* yacc.c:1646  */
3209      break;
3210  
3211 <  case 86:
3212 < /* Line 1787 of yacc.c  */
3499 < #line 660 "conf_parser.y"
3211 >  case 91:
3212 > #line 713 "conf_parser.y" /* yacc.c:1646  */
3213      {
3214    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3215    {
# Line 3523 | Line 3236 | yyreduce:
3236      }
3237    }
3238   }
3239 + #line 3240 "conf_parser.c" /* yacc.c:1646  */
3240      break;
3241  
3242 <  case 87:
3243 < /* Line 1787 of yacc.c  */
3530 < #line 688 "conf_parser.y"
3242 >  case 92:
3243 > #line 741 "conf_parser.y" /* yacc.c:1646  */
3244      {
3245   #ifdef IPV6
3246    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3556 | Line 3269 | yyreduce:
3269    }
3270   #endif
3271   }
3272 + #line 3273 "conf_parser.c" /* yacc.c:1646  */
3273      break;
3274  
3275 <  case 88:
3276 < /* Line 1787 of yacc.c  */
3563 < #line 718 "conf_parser.y"
3275 >  case 93:
3276 > #line 771 "conf_parser.y" /* yacc.c:1646  */
3277      {
3278 <  if (conf_parser_ctx.pass == 2)
3278 >  if (conf_parser_ctx.pass != 2)
3279 >    break;
3280 >
3281 >  if ((yyvsp[-1].number) < MAXCLIENTS_MIN)
3282    {
3283 <    recalc_fdlimit(NULL);
3283 >    char buf[IRCD_BUFSIZE];
3284 >
3285 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3286 >    conf_error_report(buf);
3287 >    ServerInfo.max_clients = MAXCLIENTS_MIN;
3288 >  }
3289 >  else if ((yyvsp[-1].number) > MAXCLIENTS_MAX)
3290 >  {
3291 >    char buf[IRCD_BUFSIZE];
3292 >
3293 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3294 >    conf_error_report(buf);
3295 >    ServerInfo.max_clients = MAXCLIENTS_MAX;
3296 >  }
3297 >  else
3298 >    ServerInfo.max_clients = (yyvsp[-1].number);
3299 > }
3300 > #line 3301 "conf_parser.c" /* yacc.c:1646  */
3301 >    break;
3302  
3303 <    if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3303 >  case 94:
3304 > #line 796 "conf_parser.y" /* yacc.c:1646  */
3305      {
3306 <      char buf[IRCD_BUFSIZE];
3307 <      ircsprintf(buf, "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3308 <      yyerror(buf);
3309 <    }
3310 <    else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3306 >  if (conf_parser_ctx.pass != 2)
3307 >    break;
3308 >
3309 >  if ((yyvsp[-1].number) < 9)
3310 >  {
3311 >    conf_error_report("max_nick_length too low, setting to 9");
3312 >    ServerInfo.max_nick_length = 9;
3313 >  }
3314 >  else if ((yyvsp[-1].number) > NICKLEN)
3315 >  {
3316 >    char buf[IRCD_BUFSIZE];
3317 >
3318 >    snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3319 >    conf_error_report(buf);
3320 >    ServerInfo.max_nick_length = NICKLEN;
3321 >  }
3322 >  else
3323 >    ServerInfo.max_nick_length = (yyvsp[-1].number);
3324 > }
3325 > #line 3326 "conf_parser.c" /* yacc.c:1646  */
3326 >    break;
3327 >
3328 >  case 95:
3329 > #line 818 "conf_parser.y" /* yacc.c:1646  */
3330      {
3331 <      char buf[IRCD_BUFSIZE];
3332 <      ircsprintf(buf, "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3333 <      yyerror(buf);
3334 <    }
3335 <    else
3336 <      ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3331 >  if (conf_parser_ctx.pass != 2)
3332 >    break;
3333 >
3334 >  if ((yyvsp[-1].number) < 80)
3335 >  {
3336 >    conf_error_report("max_topic_length too low, setting to 80");
3337 >    ServerInfo.max_topic_length = 80;
3338 >  }
3339 >  else if ((yyvsp[-1].number) > TOPICLEN)
3340 >  {
3341 >    char buf[IRCD_BUFSIZE];
3342 >
3343 >    snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3344 >    conf_error_report(buf);
3345 >    ServerInfo.max_topic_length = TOPICLEN;
3346    }
3347 +  else
3348 +    ServerInfo.max_topic_length = (yyvsp[-1].number);
3349   }
3350 + #line 3351 "conf_parser.c" /* yacc.c:1646  */
3351      break;
3352  
3353 <  case 89:
3354 < /* Line 1787 of yacc.c  */
3589 < #line 741 "conf_parser.y"
3353 >  case 96:
3354 > #line 840 "conf_parser.y" /* yacc.c:1646  */
3355      {
3356    if (conf_parser_ctx.pass == 2)
3357      ServerInfo.hub = yylval.number;
3358   }
3359 + #line 3360 "conf_parser.c" /* yacc.c:1646  */
3360      break;
3361  
3362 <  case 97:
3363 < /* Line 1787 of yacc.c  */
3364 < #line 756 "conf_parser.y"
3362 >  case 104:
3363 > #line 855 "conf_parser.y" /* yacc.c:1646  */
3364 >    {
3365 >  if (conf_parser_ctx.pass != 2)
3366 >    break;
3367 >
3368 >  MyFree(AdminInfo.name);
3369 >  AdminInfo.name = xstrdup(yylval.string);
3370 > }
3371 > #line 3372 "conf_parser.c" /* yacc.c:1646  */
3372 >    break;
3373 >
3374 >  case 105:
3375 > #line 864 "conf_parser.y" /* yacc.c:1646  */
3376 >    {
3377 >  if (conf_parser_ctx.pass != 2)
3378 >    break;
3379 >
3380 >  MyFree(AdminInfo.email);
3381 >  AdminInfo.email = xstrdup(yylval.string);
3382 > }
3383 > #line 3384 "conf_parser.c" /* yacc.c:1646  */
3384 >    break;
3385 >
3386 >  case 106:
3387 > #line 873 "conf_parser.y" /* yacc.c:1646  */
3388 >    {
3389 >  if (conf_parser_ctx.pass != 2)
3390 >    break;
3391 >
3392 >  MyFree(AdminInfo.description);
3393 >  AdminInfo.description = xstrdup(yylval.string);
3394 > }
3395 > #line 3396 "conf_parser.c" /* yacc.c:1646  */
3396 >    break;
3397 >
3398 >  case 107:
3399 > #line 885 "conf_parser.y" /* yacc.c:1646  */
3400      {
3401    if (conf_parser_ctx.pass == 2)
3402 <  {
3602 <    MyFree(AdminInfo.name);
3603 <    DupString(AdminInfo.name, yylval.string);
3604 <  }
3402 >    reset_block_state();
3403   }
3404 + #line 3405 "conf_parser.c" /* yacc.c:1646  */
3405      break;
3406  
3407 <  case 98:
3408 < /* Line 1787 of yacc.c  */
3409 < #line 765 "conf_parser.y"
3407 >  case 108:
3408 > #line 889 "conf_parser.y" /* yacc.c:1646  */
3409 >    {
3410 >  dlink_node *ptr = NULL;
3411 >
3412 >  if (conf_parser_ctx.pass != 2)
3413 >    break;
3414 >
3415 >  if (!block_state.file.buf[0])
3416 >    break;
3417 >
3418 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3419 >    motd_add(ptr->data, block_state.file.buf);
3420 > }
3421 > #line 3422 "conf_parser.c" /* yacc.c:1646  */
3422 >    break;
3423 >
3424 >  case 114:
3425 > #line 906 "conf_parser.y" /* yacc.c:1646  */
3426      {
3427    if (conf_parser_ctx.pass == 2)
3428 <  {
3614 <    MyFree(AdminInfo.email);
3615 <    DupString(AdminInfo.email, yylval.string);
3616 <  }
3428 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3429   }
3430 + #line 3431 "conf_parser.c" /* yacc.c:1646  */
3431      break;
3432  
3433 <  case 99:
3434 < /* Line 1787 of yacc.c  */
3622 < #line 774 "conf_parser.y"
3433 >  case 115:
3434 > #line 912 "conf_parser.y" /* yacc.c:1646  */
3435      {
3436    if (conf_parser_ctx.pass == 2)
3437 <  {
3626 <    MyFree(AdminInfo.description);
3627 <    DupString(AdminInfo.description, yylval.string);
3628 <  }
3437 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3438   }
3439 + #line 3440 "conf_parser.c" /* yacc.c:1646  */
3440      break;
3441  
3442 <  case 106:
3443 < /* Line 1787 of yacc.c  */
3634 < #line 792 "conf_parser.y"
3442 >  case 122:
3443 > #line 927 "conf_parser.y" /* yacc.c:1646  */
3444      {
3445    if (conf_parser_ctx.pass == 2)
3446      ConfigLoggingEntry.use_logging = yylval.number;
3447   }
3448 + #line 3449 "conf_parser.c" /* yacc.c:1646  */
3449      break;
3450  
3451 <  case 107:
3452 < /* Line 1787 of yacc.c  */
3643 < #line 798 "conf_parser.y"
3451 >  case 123:
3452 > #line 933 "conf_parser.y" /* yacc.c:1646  */
3453      {
3454 <  lfile[0] = '\0';
3455 <  ltype = 0;
3647 <  lsize = 0;
3454 >  if (conf_parser_ctx.pass == 2)
3455 >    reset_block_state();
3456   }
3457 + #line 3458 "conf_parser.c" /* yacc.c:1646  */
3458      break;
3459  
3460 <  case 108:
3461 < /* Line 1787 of yacc.c  */
3653 < #line 803 "conf_parser.y"
3460 >  case 124:
3461 > #line 937 "conf_parser.y" /* yacc.c:1646  */
3462      {
3463 <  if (conf_parser_ctx.pass == 2 && ltype > 0)
3464 <    log_add_file(ltype, lsize, lfile);
3463 >  if (conf_parser_ctx.pass != 2)
3464 >    break;
3465 >
3466 >  if (block_state.type.value && block_state.file.buf[0])
3467 >    log_set_file(block_state.type.value, block_state.size.value,
3468 >                 block_state.file.buf);
3469   }
3470 + #line 3471 "conf_parser.c" /* yacc.c:1646  */
3471      break;
3472  
3473 <  case 115:
3474 < /* Line 1787 of yacc.c  */
3662 < #line 815 "conf_parser.y"
3473 >  case 131:
3474 > #line 953 "conf_parser.y" /* yacc.c:1646  */
3475      {
3476 <  strlcpy(lfile, yylval.string, sizeof(lfile));
3476 >  if (conf_parser_ctx.pass != 2)
3477 >    break;
3478 >
3479 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3480   }
3481 + #line 3482 "conf_parser.c" /* yacc.c:1646  */
3482      break;
3483  
3484 <  case 116:
3485 < /* Line 1787 of yacc.c  */
3670 < #line 820 "conf_parser.y"
3484 >  case 132:
3485 > #line 961 "conf_parser.y" /* yacc.c:1646  */
3486      {
3487 <  lsize = (yyvsp[(3) - (4)].number);
3487 >  block_state.size.value = (yyvsp[-1].number);
3488   }
3489 + #line 3490 "conf_parser.c" /* yacc.c:1646  */
3490      break;
3491  
3492 <  case 117:
3493 < /* Line 1787 of yacc.c  */
3678 < #line 823 "conf_parser.y"
3492 >  case 133:
3493 > #line 964 "conf_parser.y" /* yacc.c:1646  */
3494      {
3495 <  lsize = 0;
3495 >  block_state.size.value = 0;
3496   }
3497 + #line 3498 "conf_parser.c" /* yacc.c:1646  */
3498      break;
3499  
3500 <  case 118:
3501 < /* Line 1787 of yacc.c  */
3686 < #line 828 "conf_parser.y"
3500 >  case 134:
3501 > #line 969 "conf_parser.y" /* yacc.c:1646  */
3502      {
3503    if (conf_parser_ctx.pass == 2)
3504 <    ltype = 0;
3504 >    block_state.type.value = 0;
3505   }
3506 + #line 3507 "conf_parser.c" /* yacc.c:1646  */
3507      break;
3508  
3509 <  case 122:
3510 < /* Line 1787 of yacc.c  */
3695 < #line 835 "conf_parser.y"
3509 >  case 138:
3510 > #line 976 "conf_parser.y" /* yacc.c:1646  */
3511      {
3512    if (conf_parser_ctx.pass == 2)
3513 <    ltype = LOG_TYPE_USER;
3513 >    block_state.type.value = LOG_TYPE_USER;
3514   }
3515 + #line 3516 "conf_parser.c" /* yacc.c:1646  */
3516      break;
3517  
3518 <  case 123:
3519 < /* Line 1787 of yacc.c  */
3704 < #line 839 "conf_parser.y"
3518 >  case 139:
3519 > #line 980 "conf_parser.y" /* yacc.c:1646  */
3520      {
3521    if (conf_parser_ctx.pass == 2)
3522 <    ltype = LOG_TYPE_OPER;
3522 >    block_state.type.value = LOG_TYPE_OPER;
3523   }
3524 + #line 3525 "conf_parser.c" /* yacc.c:1646  */
3525      break;
3526  
3527 <  case 124:
3528 < /* Line 1787 of yacc.c  */
3713 < #line 843 "conf_parser.y"
3527 >  case 140:
3528 > #line 984 "conf_parser.y" /* yacc.c:1646  */
3529      {
3530    if (conf_parser_ctx.pass == 2)
3531 <    ltype = LOG_TYPE_GLINE;
3531 >    block_state.type.value = LOG_TYPE_GLINE;
3532   }
3533 + #line 3534 "conf_parser.c" /* yacc.c:1646  */
3534      break;
3535  
3536 <  case 125:
3537 < /* Line 1787 of yacc.c  */
3722 < #line 847 "conf_parser.y"
3536 >  case 141:
3537 > #line 988 "conf_parser.y" /* yacc.c:1646  */
3538      {
3539    if (conf_parser_ctx.pass == 2)
3540 <    ltype = LOG_TYPE_DLINE;
3540 >    block_state.type.value = LOG_TYPE_XLINE;
3541   }
3542 + #line 3543 "conf_parser.c" /* yacc.c:1646  */
3543      break;
3544  
3545 <  case 126:
3546 < /* Line 1787 of yacc.c  */
3731 < #line 851 "conf_parser.y"
3545 >  case 142:
3546 > #line 992 "conf_parser.y" /* yacc.c:1646  */
3547      {
3548    if (conf_parser_ctx.pass == 2)
3549 <    ltype = LOG_TYPE_KLINE;
3549 >    block_state.type.value = LOG_TYPE_RESV;
3550   }
3551 + #line 3552 "conf_parser.c" /* yacc.c:1646  */
3552      break;
3553  
3554 <  case 127:
3555 < /* Line 1787 of yacc.c  */
3740 < #line 855 "conf_parser.y"
3554 >  case 143:
3555 > #line 996 "conf_parser.y" /* yacc.c:1646  */
3556      {
3557    if (conf_parser_ctx.pass == 2)
3558 <    ltype = LOG_TYPE_KILL;
3558 >    block_state.type.value = LOG_TYPE_DLINE;
3559   }
3560 + #line 3561 "conf_parser.c" /* yacc.c:1646  */
3561      break;
3562  
3563 <  case 128:
3564 < /* Line 1787 of yacc.c  */
3749 < #line 859 "conf_parser.y"
3563 >  case 144:
3564 > #line 1000 "conf_parser.y" /* yacc.c:1646  */
3565      {
3566    if (conf_parser_ctx.pass == 2)
3567 <    ltype = LOG_TYPE_DEBUG;
3567 >    block_state.type.value = LOG_TYPE_KLINE;
3568   }
3569 + #line 3570 "conf_parser.c" /* yacc.c:1646  */
3570      break;
3571  
3572 <  case 129:
3573 < /* Line 1787 of yacc.c  */
3758 < #line 869 "conf_parser.y"
3572 >  case 145:
3573 > #line 1004 "conf_parser.y" /* yacc.c:1646  */
3574      {
3575    if (conf_parser_ctx.pass == 2)
3576 <  {
3762 <    yy_conf = make_conf_item(OPER_TYPE);
3763 <    yy_aconf = map_to_conf(yy_conf);
3764 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
3765 <  }
3766 <  else
3767 <  {
3768 <    MyFree(class_name);
3769 <    class_name = NULL;
3770 <  }
3576 >    block_state.type.value = LOG_TYPE_KILL;
3577   }
3578 + #line 3579 "conf_parser.c" /* yacc.c:1646  */
3579      break;
3580  
3581 <  case 130:
3582 < /* Line 1787 of yacc.c  */
3776 < #line 882 "conf_parser.y"
3581 >  case 146:
3582 > #line 1008 "conf_parser.y" /* yacc.c:1646  */
3583      {
3584    if (conf_parser_ctx.pass == 2)
3585 <  {
3586 <    struct CollectItem *yy_tmp;
3587 <    dlink_node *ptr;
3588 <    dlink_node *next_ptr;
3783 <
3784 <    conf_add_class_to_conf(yy_conf, class_name);
3785 <
3786 <    /* Now, make sure there is a copy of the "base" given oper
3787 <     * block in each of the collected copies
3788 <     */
3585 >    block_state.type.value = LOG_TYPE_DEBUG;
3586 > }
3587 > #line 3588 "conf_parser.c" /* yacc.c:1646  */
3588 >    break;
3589  
3590 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3590 >  case 147:
3591 > #line 1018 "conf_parser.y" /* yacc.c:1646  */
3592      {
3593 <      struct AccessItem *new_aconf;
3594 <      struct ConfItem *new_conf;
3794 <      yy_tmp = ptr->data;
3593 >  if (conf_parser_ctx.pass != 2)
3594 >    break;
3595  
3596 <      new_conf = make_conf_item(OPER_TYPE);
3597 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
3596 >  reset_block_state();
3597 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3598 > }
3599 > #line 3600 "conf_parser.c" /* yacc.c:1646  */
3600 >    break;
3601  
3602 <      new_aconf->flags = yy_aconf->flags;
3602 >  case 148:
3603 > #line 1025 "conf_parser.y" /* yacc.c:1646  */
3604 >    {
3605 >  dlink_node *ptr = NULL;
3606  
3607 <      if (yy_conf->name != NULL)
3608 <        DupString(new_conf->name, yy_conf->name);
3803 <      if (yy_tmp->user != NULL)
3804 <        DupString(new_aconf->user, yy_tmp->user);
3805 <      else
3806 <        DupString(new_aconf->user, "*");
3807 <      if (yy_tmp->host != NULL)
3808 <        DupString(new_aconf->host, yy_tmp->host);
3809 <      else
3810 <        DupString(new_aconf->host, "*");
3607 >  if (conf_parser_ctx.pass != 2)
3608 >    break;
3609  
3610 <      new_aconf->type = parse_netmask(new_aconf->host, &new_aconf->addr,
3611 <                                     &new_aconf->bits);
3610 >  if (!block_state.name.buf[0])
3611 >    break;
3612 > #ifdef HAVE_LIBCRYPTO
3613 >  if (!block_state.file.buf[0] &&
3614 >      !block_state.rpass.buf[0])
3615 >    break;
3616 > #else
3617 >  if (!block_state.rpass.buf[0])
3618 >    break;
3619 > #endif
3620  
3621 <      conf_add_class_to_conf(new_conf, class_name);
3622 <      if (yy_aconf->passwd != NULL)
3623 <        DupString(new_aconf->passwd, yy_aconf->passwd);
3621 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3622 >  {
3623 >    struct MaskItem *conf = NULL;
3624 >    struct split_nuh_item nuh;
3625  
3626 <      new_aconf->port = yy_aconf->port;
3627 < #ifdef HAVE_LIBCRYPTO
3628 <      if (yy_aconf->rsa_public_key_file != NULL)
3629 <      {
3630 <        BIO *file;
3626 >    nuh.nuhmask  = ptr->data;
3627 >    nuh.nickptr  = NULL;
3628 >    nuh.userptr  = block_state.user.buf;
3629 >    nuh.hostptr  = block_state.host.buf;
3630 >    nuh.nicksize = 0;
3631 >    nuh.usersize = sizeof(block_state.user.buf);
3632 >    nuh.hostsize = sizeof(block_state.host.buf);
3633 >    split_nuh(&nuh);
3634  
3635 <        DupString(new_aconf->rsa_public_key_file,
3636 <                  yy_aconf->rsa_public_key_file);
3635 >    conf         = conf_make(CONF_OPER);
3636 >    conf->name   = xstrdup(block_state.name.buf);
3637 >    conf->user   = xstrdup(block_state.user.buf);
3638 >    conf->host   = xstrdup(block_state.host.buf);
3639 >
3640 >    if (block_state.cert.buf[0])
3641 >      conf->certfp = xstrdup(block_state.cert.buf);
3642 >
3643 >    if (block_state.rpass.buf[0])
3644 >      conf->passwd = xstrdup(block_state.rpass.buf);
3645 >
3646 >    conf->flags = block_state.flags.value;
3647 >    conf->modes = block_state.modes.value;
3648 >    conf->port  = block_state.port.value;
3649 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3650  
3651 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
3829 <        new_aconf->rsa_public_key = PEM_read_bio_RSA_PUBKEY(file,
3830 <                                                           NULL, 0, NULL);
3831 <        BIO_set_close(file, BIO_CLOSE);
3832 <        BIO_free(file);
3833 <      }
3834 < #endif
3651 >    conf_add_class_to_conf(conf, block_state.class.buf);
3652  
3653   #ifdef HAVE_LIBCRYPTO
3654 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
3655 <          && yy_tmp->host)
3656 < #else
3657 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
3658 < #endif
3654 >    if (block_state.file.buf[0])
3655 >    {
3656 >      BIO *file = NULL;
3657 >      RSA *pkey = NULL;
3658 >
3659 >      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3660        {
3661 <        conf_add_class_to_conf(new_conf, class_name);
3662 <        if (yy_tmp->name != NULL)
3845 <          DupString(new_conf->name, yy_tmp->name);
3661 >        conf_error_report("Ignoring rsa_public_key_file -- file doesn't exist");
3662 >        break;
3663        }
3664  
3665 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
3666 <      free_collect_item(yy_tmp);
3850 <    }
3851 <
3852 <    yy_conf = NULL;
3853 <    yy_aconf = NULL;
3665 >      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3666 >        conf_error_report("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3667  
3668 <
3669 <    MyFree(class_name);
3670 <    class_name = NULL;
3668 >      conf->rsa_public_key = pkey;
3669 >      BIO_set_close(file, BIO_CLOSE);
3670 >      BIO_free(file);
3671 >    }
3672 > #endif /* HAVE_LIBCRYPTO */
3673    }
3674   }
3675 + #line 3676 "conf_parser.c" /* yacc.c:1646  */
3676      break;
3677  
3678 <  case 142:
3679 < /* Line 1787 of yacc.c  */
3864 < #line 972 "conf_parser.y"
3678 >  case 162:
3679 > #line 1105 "conf_parser.y" /* yacc.c:1646  */
3680      {
3681    if (conf_parser_ctx.pass == 2)
3682 <  {
3868 <    MyFree(yy_conf->name);
3869 <    DupString(yy_conf->name, yylval.string);
3870 <  }
3682 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3683   }
3684 + #line 3685 "conf_parser.c" /* yacc.c:1646  */
3685      break;
3686  
3687 <  case 143:
3688 < /* Line 1787 of yacc.c  */
3876 < #line 981 "conf_parser.y"
3687 >  case 163:
3688 > #line 1111 "conf_parser.y" /* yacc.c:1646  */
3689      {
3690    if (conf_parser_ctx.pass == 2)
3691 <  {
3692 <    struct split_nuh_item nuh;
3693 <
3694 <    nuh.nuhmask  = yylval.string;
3883 <    nuh.nickptr  = NULL;
3884 <    nuh.userptr  = userbuf;
3885 <    nuh.hostptr  = hostbuf;
3886 <
3887 <    nuh.nicksize = 0;
3888 <    nuh.usersize = sizeof(userbuf);
3889 <    nuh.hostsize = sizeof(hostbuf);
3890 <
3891 <    split_nuh(&nuh);
3691 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3692 > }
3693 > #line 3694 "conf_parser.c" /* yacc.c:1646  */
3694 >    break;
3695  
3696 <    if (yy_aconf->user == NULL)
3696 >  case 164:
3697 > #line 1117 "conf_parser.y" /* yacc.c:1646  */
3698      {
3699 <      DupString(yy_aconf->user, userbuf);
3700 <      DupString(yy_aconf->host, hostbuf);
3699 >  if (conf_parser_ctx.pass == 2)
3700 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3701 > }
3702 > #line 3703 "conf_parser.c" /* yacc.c:1646  */
3703 >    break;
3704  
3705 <      yy_aconf->type = parse_netmask(yy_aconf->host, &yy_aconf->addr,
3706 <                                    &yy_aconf->bits);
3900 <    }
3901 <    else
3705 >  case 165:
3706 > #line 1123 "conf_parser.y" /* yacc.c:1646  */
3707      {
3708 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
3709 <
3905 <      DupString(yy_tmp->user, userbuf);
3906 <      DupString(yy_tmp->host, hostbuf);
3708 >  if (conf_parser_ctx.pass != 2)
3709 >    break;
3710  
3711 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
3712 <    }
3713 <  }
3711 >  if (yylval.number)
3712 >    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3713 >  else
3714 >    block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3715   }
3716 + #line 3717 "conf_parser.c" /* yacc.c:1646  */
3717      break;
3718  
3719 <  case 144:
3720 < /* Line 1787 of yacc.c  */
3916 < #line 1018 "conf_parser.y"
3719 >  case 166:
3720 > #line 1134 "conf_parser.y" /* yacc.c:1646  */
3721      {
3722    if (conf_parser_ctx.pass == 2)
3723 <  {
3920 <    if (yy_aconf->passwd != NULL)
3921 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
3922 <
3923 <    MyFree(yy_aconf->passwd);
3924 <    DupString(yy_aconf->passwd, yylval.string);
3925 <  }
3723 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3724   }
3725 + #line 3726 "conf_parser.c" /* yacc.c:1646  */
3726      break;
3727  
3728 <  case 145:
3729 < /* Line 1787 of yacc.c  */
3931 < #line 1030 "conf_parser.y"
3728 >  case 167:
3729 > #line 1140 "conf_parser.y" /* yacc.c:1646  */
3730      {
3731    if (conf_parser_ctx.pass == 2)
3732 <  {
3935 <    if (yylval.number)
3936 <      SetConfEncrypted(yy_aconf);
3937 <    else
3938 <      ClearConfEncrypted(yy_aconf);
3939 <  }
3732 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
3733   }
3734 + #line 3735 "conf_parser.c" /* yacc.c:1646  */
3735      break;
3736  
3737 <  case 146:
3738 < /* Line 1787 of yacc.c  */
3945 < #line 1041 "conf_parser.y"
3737 >  case 168:
3738 > #line 1146 "conf_parser.y" /* yacc.c:1646  */
3739      {
3740 < #ifdef HAVE_LIBCRYPTO
3741 <  if (conf_parser_ctx.pass == 2)
3949 <  {
3950 <    BIO *file;
3740 >  if (conf_parser_ctx.pass != 2)
3741 >    break;
3742  
3743 <    if (yy_aconf->rsa_public_key != NULL)
3744 <    {
3745 <      RSA_free(yy_aconf->rsa_public_key);
3746 <      yy_aconf->rsa_public_key = NULL;
3747 <    }
3743 >  if (yylval.number)
3744 >    block_state.flags.value |= CONF_FLAGS_SSL;
3745 >  else
3746 >    block_state.flags.value &= ~CONF_FLAGS_SSL;
3747 > }
3748 > #line 3749 "conf_parser.c" /* yacc.c:1646  */
3749 >    break;
3750  
3751 <    if (yy_aconf->rsa_public_key_file != NULL)
3751 >  case 169:
3752 > #line 1157 "conf_parser.y" /* yacc.c:1646  */
3753      {
3754 <      MyFree(yy_aconf->rsa_public_key_file);
3755 <      yy_aconf->rsa_public_key_file = NULL;
3756 <    }
3757 <
3758 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
3965 <    file = BIO_new_file(yylval.string, "r");
3754 >  if (conf_parser_ctx.pass == 2)
3755 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3756 > }
3757 > #line 3758 "conf_parser.c" /* yacc.c:1646  */
3758 >    break;
3759  
3760 <    if (file == NULL)
3760 >  case 170:
3761 > #line 1163 "conf_parser.y" /* yacc.c:1646  */
3762      {
3763 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
3764 <      break;
3765 <    }
3766 <
3767 <    yy_aconf->rsa_public_key = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
3763 >  if (conf_parser_ctx.pass == 2)
3764 >    block_state.modes.value = 0;
3765 > }
3766 > #line 3767 "conf_parser.c" /* yacc.c:1646  */
3767 >    break;
3768  
3769 <    if (yy_aconf->rsa_public_key == NULL)
3769 >  case 174:
3770 > #line 1170 "conf_parser.y" /* yacc.c:1646  */
3771      {
3772 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3773 <      break;
3979 <    }
3980 <
3981 <    BIO_set_close(file, BIO_CLOSE);
3982 <    BIO_free(file);
3983 <  }
3984 < #endif /* HAVE_LIBCRYPTO */
3772 >  if (conf_parser_ctx.pass == 2)
3773 >    block_state.modes.value |= UMODE_BOTS;
3774   }
3775 + #line 3776 "conf_parser.c" /* yacc.c:1646  */
3776      break;
3777  
3778 <  case 147:
3779 < /* Line 1787 of yacc.c  */
3990 < #line 1083 "conf_parser.y"
3778 >  case 175:
3779 > #line 1174 "conf_parser.y" /* yacc.c:1646  */
3780      {
3781    if (conf_parser_ctx.pass == 2)
3782 <  {
3994 <    MyFree(class_name);
3995 <    DupString(class_name, yylval.string);
3996 <  }
3782 >    block_state.modes.value |= UMODE_CCONN;
3783   }
3784 + #line 3785 "conf_parser.c" /* yacc.c:1646  */
3785      break;
3786  
3787 <  case 148:
3788 < /* Line 1787 of yacc.c  */
4002 < #line 1092 "conf_parser.y"
3787 >  case 176:
3788 > #line 1178 "conf_parser.y" /* yacc.c:1646  */
3789      {
3790    if (conf_parser_ctx.pass == 2)
3791 <    yy_aconf->modes = 0;
3791 >    block_state.modes.value |= UMODE_DEAF;
3792   }
3793 + #line 3794 "conf_parser.c" /* yacc.c:1646  */
3794      break;
3795  
3796 <  case 152:
3797 < /* Line 1787 of yacc.c  */
4011 < #line 1099 "conf_parser.y"
3796 >  case 177:
3797 > #line 1182 "conf_parser.y" /* yacc.c:1646  */
3798      {
3799    if (conf_parser_ctx.pass == 2)
3800 <    yy_aconf->modes |= UMODE_BOTS;
3800 >    block_state.modes.value |= UMODE_DEBUG;
3801   }
3802 + #line 3803 "conf_parser.c" /* yacc.c:1646  */
3803      break;
3804  
3805 <  case 153:
3806 < /* Line 1787 of yacc.c  */
4020 < #line 1103 "conf_parser.y"
3805 >  case 178:
3806 > #line 1186 "conf_parser.y" /* yacc.c:1646  */
3807      {
3808    if (conf_parser_ctx.pass == 2)
3809 <    yy_aconf->modes |= UMODE_CCONN;
3809 >    block_state.modes.value |= UMODE_FULL;
3810   }
3811 + #line 3812 "conf_parser.c" /* yacc.c:1646  */
3812      break;
3813  
3814 <  case 154:
3815 < /* Line 1787 of yacc.c  */
4029 < #line 1107 "conf_parser.y"
3814 >  case 179:
3815 > #line 1190 "conf_parser.y" /* yacc.c:1646  */
3816      {
3817    if (conf_parser_ctx.pass == 2)
3818 <    yy_aconf->modes |= UMODE_CCONN_FULL;
3818 >    block_state.modes.value |= UMODE_HIDDEN;
3819   }
3820 + #line 3821 "conf_parser.c" /* yacc.c:1646  */
3821      break;
3822  
3823 <  case 155:
3824 < /* Line 1787 of yacc.c  */
4038 < #line 1111 "conf_parser.y"
3823 >  case 180:
3824 > #line 1194 "conf_parser.y" /* yacc.c:1646  */
3825      {
3826    if (conf_parser_ctx.pass == 2)
3827 <    yy_aconf->modes |= UMODE_DEAF;
3827 >    block_state.modes.value |= UMODE_SKILL;
3828   }
3829 + #line 3830 "conf_parser.c" /* yacc.c:1646  */
3830      break;
3831  
3832 <  case 156:
3833 < /* Line 1787 of yacc.c  */
4047 < #line 1115 "conf_parser.y"
3832 >  case 181:
3833 > #line 1198 "conf_parser.y" /* yacc.c:1646  */
3834      {
3835    if (conf_parser_ctx.pass == 2)
3836 <    yy_aconf->modes |= UMODE_DEBUG;
3836 >    block_state.modes.value |= UMODE_NCHANGE;
3837   }
3838 + #line 3839 "conf_parser.c" /* yacc.c:1646  */
3839      break;
3840  
3841 <  case 157:
3842 < /* Line 1787 of yacc.c  */
4056 < #line 1119 "conf_parser.y"
3841 >  case 182:
3842 > #line 1202 "conf_parser.y" /* yacc.c:1646  */
3843      {
3844    if (conf_parser_ctx.pass == 2)
3845 <    yy_aconf->modes |= UMODE_FULL;
3845 >    block_state.modes.value |= UMODE_REJ;
3846   }
3847 + #line 3848 "conf_parser.c" /* yacc.c:1646  */
3848      break;
3849  
3850 <  case 158:
3851 < /* Line 1787 of yacc.c  */
4065 < #line 1123 "conf_parser.y"
3850 >  case 183:
3851 > #line 1206 "conf_parser.y" /* yacc.c:1646  */
3852      {
3853    if (conf_parser_ctx.pass == 2)
3854 <    yy_aconf->modes |= UMODE_HIDDEN;
3854 >    block_state.modes.value |= UMODE_UNAUTH;
3855   }
3856 + #line 3857 "conf_parser.c" /* yacc.c:1646  */
3857      break;
3858  
3859 <  case 159:
3860 < /* Line 1787 of yacc.c  */
4074 < #line 1127 "conf_parser.y"
3859 >  case 184:
3860 > #line 1210 "conf_parser.y" /* yacc.c:1646  */
3861      {
3862    if (conf_parser_ctx.pass == 2)
3863 <    yy_aconf->modes |= UMODE_SKILL;
3863 >    block_state.modes.value |= UMODE_SPY;
3864   }
3865 + #line 3866 "conf_parser.c" /* yacc.c:1646  */
3866      break;
3867  
3868 <  case 160:
3869 < /* Line 1787 of yacc.c  */
4083 < #line 1131 "conf_parser.y"
3868 >  case 185:
3869 > #line 1214 "conf_parser.y" /* yacc.c:1646  */
3870      {
3871    if (conf_parser_ctx.pass == 2)
3872 <    yy_aconf->modes |= UMODE_NCHANGE;
3872 >    block_state.modes.value |= UMODE_EXTERNAL;
3873   }
3874 + #line 3875 "conf_parser.c" /* yacc.c:1646  */
3875      break;
3876  
3877 <  case 161:
3878 < /* Line 1787 of yacc.c  */
4092 < #line 1135 "conf_parser.y"
3877 >  case 186:
3878 > #line 1218 "conf_parser.y" /* yacc.c:1646  */
3879      {
3880    if (conf_parser_ctx.pass == 2)
3881 <    yy_aconf->modes |= UMODE_REJ;
3881 >    block_state.modes.value |= UMODE_OPERWALL;
3882   }
3883 + #line 3884 "conf_parser.c" /* yacc.c:1646  */
3884      break;
3885  
3886 <  case 162:
3887 < /* Line 1787 of yacc.c  */
4101 < #line 1139 "conf_parser.y"
3886 >  case 187:
3887 > #line 1222 "conf_parser.y" /* yacc.c:1646  */
3888      {
3889    if (conf_parser_ctx.pass == 2)
3890 <    yy_aconf->modes |= UMODE_UNAUTH;
3890 >    block_state.modes.value |= UMODE_SERVNOTICE;
3891   }
3892 + #line 3893 "conf_parser.c" /* yacc.c:1646  */
3893      break;
3894  
3895 <  case 163:
3896 < /* Line 1787 of yacc.c  */
4110 < #line 1143 "conf_parser.y"
3895 >  case 188:
3896 > #line 1226 "conf_parser.y" /* yacc.c:1646  */
3897      {
3898    if (conf_parser_ctx.pass == 2)
3899 <    yy_aconf->modes |= UMODE_SPY;
3899 >    block_state.modes.value |= UMODE_INVISIBLE;
3900   }
3901 + #line 3902 "conf_parser.c" /* yacc.c:1646  */
3902      break;
3903  
3904 <  case 164:
3905 < /* Line 1787 of yacc.c  */
4119 < #line 1147 "conf_parser.y"
3904 >  case 189:
3905 > #line 1230 "conf_parser.y" /* yacc.c:1646  */
3906      {
3907    if (conf_parser_ctx.pass == 2)
3908 <    yy_aconf->modes |= UMODE_EXTERNAL;
3908 >    block_state.modes.value |= UMODE_WALLOP;
3909   }
3910 + #line 3911 "conf_parser.c" /* yacc.c:1646  */
3911      break;
3912  
3913 <  case 165:
3914 < /* Line 1787 of yacc.c  */
4128 < #line 1151 "conf_parser.y"
3913 >  case 190:
3914 > #line 1234 "conf_parser.y" /* yacc.c:1646  */
3915      {
3916    if (conf_parser_ctx.pass == 2)
3917 <    yy_aconf->modes |= UMODE_OPERWALL;
3917 >    block_state.modes.value |= UMODE_SOFTCALLERID;
3918   }
3919 + #line 3920 "conf_parser.c" /* yacc.c:1646  */
3920      break;
3921  
3922 <  case 166:
3923 < /* Line 1787 of yacc.c  */
4137 < #line 1155 "conf_parser.y"
3922 >  case 191:
3923 > #line 1238 "conf_parser.y" /* yacc.c:1646  */
3924      {
3925    if (conf_parser_ctx.pass == 2)
3926 <    yy_aconf->modes |= UMODE_SERVNOTICE;
3926 >    block_state.modes.value |= UMODE_CALLERID;
3927   }
3928 + #line 3929 "conf_parser.c" /* yacc.c:1646  */
3929      break;
3930  
3931 <  case 167:
3932 < /* Line 1787 of yacc.c  */
4146 < #line 1159 "conf_parser.y"
3931 >  case 192:
3932 > #line 1242 "conf_parser.y" /* yacc.c:1646  */
3933      {
3934    if (conf_parser_ctx.pass == 2)
3935 <    yy_aconf->modes |= UMODE_INVISIBLE;
3935 >    block_state.modes.value |= UMODE_LOCOPS;
3936   }
3937 + #line 3938 "conf_parser.c" /* yacc.c:1646  */
3938      break;
3939  
3940 <  case 168:
3941 < /* Line 1787 of yacc.c  */
4155 < #line 1163 "conf_parser.y"
3940 >  case 193:
3941 > #line 1246 "conf_parser.y" /* yacc.c:1646  */
3942      {
3943    if (conf_parser_ctx.pass == 2)
3944 <    yy_aconf->modes |= UMODE_WALLOP;
3944 >    block_state.modes.value |= UMODE_REGONLY;
3945   }
3946 + #line 3947 "conf_parser.c" /* yacc.c:1646  */
3947      break;
3948  
3949 <  case 169:
3950 < /* Line 1787 of yacc.c  */
4164 < #line 1167 "conf_parser.y"
3949 >  case 194:
3950 > #line 1250 "conf_parser.y" /* yacc.c:1646  */
3951      {
3952    if (conf_parser_ctx.pass == 2)
3953 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
3953 >    block_state.modes.value |= UMODE_FARCONNECT;
3954   }
3955 + #line 3956 "conf_parser.c" /* yacc.c:1646  */
3956      break;
3957  
3958 <  case 170:
3959 < /* Line 1787 of yacc.c  */
4173 < #line 1171 "conf_parser.y"
3958 >  case 195:
3959 > #line 1256 "conf_parser.y" /* yacc.c:1646  */
3960      {
3961    if (conf_parser_ctx.pass == 2)
3962 <    yy_aconf->modes |= UMODE_CALLERID;
3962 >    block_state.port.value = 0;
3963   }
3964 + #line 3965 "conf_parser.c" /* yacc.c:1646  */
3965      break;
3966  
3967 <  case 171:
3968 < /* Line 1787 of yacc.c  */
4182 < #line 1175 "conf_parser.y"
3967 >  case 199:
3968 > #line 1263 "conf_parser.y" /* yacc.c:1646  */
3969      {
3970    if (conf_parser_ctx.pass == 2)
3971 <    yy_aconf->modes |= UMODE_LOCOPS;
3971 >    block_state.port.value |= OPER_FLAG_KILL_REMOTE;
3972   }
3973 + #line 3974 "conf_parser.c" /* yacc.c:1646  */
3974      break;
3975  
3976 <  case 172:
3977 < /* Line 1787 of yacc.c  */
4191 < #line 1181 "conf_parser.y"
3976 >  case 200:
3977 > #line 1267 "conf_parser.y" /* yacc.c:1646  */
3978      {
3979    if (conf_parser_ctx.pass == 2)
3980 <    yy_aconf->port = 0;
3980 >    block_state.port.value |= OPER_FLAG_KILL;
3981   }
3982 + #line 3983 "conf_parser.c" /* yacc.c:1646  */
3983      break;
3984  
3985 <  case 176:
3986 < /* Line 1787 of yacc.c  */
4200 < #line 1188 "conf_parser.y"
3985 >  case 201:
3986 > #line 1271 "conf_parser.y" /* yacc.c:1646  */
3987      {
3988    if (conf_parser_ctx.pass == 2)
3989 <    yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
3989 >    block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
3990   }
3991 + #line 3992 "conf_parser.c" /* yacc.c:1646  */
3992      break;
3993  
3994 <  case 177:
3995 < /* Line 1787 of yacc.c  */
4209 < #line 1192 "conf_parser.y"
3994 >  case 202:
3995 > #line 1275 "conf_parser.y" /* yacc.c:1646  */
3996      {
3997    if (conf_parser_ctx.pass == 2)
3998 <    yy_aconf->port |= OPER_FLAG_REMOTE;
3998 >    block_state.port.value |= OPER_FLAG_CONNECT;
3999   }
4000 + #line 4001 "conf_parser.c" /* yacc.c:1646  */
4001      break;
4002  
4003 <  case 178:
4004 < /* Line 1787 of yacc.c  */
4218 < #line 1196 "conf_parser.y"
4003 >  case 203:
4004 > #line 1279 "conf_parser.y" /* yacc.c:1646  */
4005      {
4006    if (conf_parser_ctx.pass == 2)
4007 <    yy_aconf->port |= OPER_FLAG_K;
4007 >    block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
4008   }
4009 + #line 4010 "conf_parser.c" /* yacc.c:1646  */
4010      break;
4011  
4012 <  case 179:
4013 < /* Line 1787 of yacc.c  */
4227 < #line 1200 "conf_parser.y"
4012 >  case 204:
4013 > #line 1283 "conf_parser.y" /* yacc.c:1646  */
4014      {
4015    if (conf_parser_ctx.pass == 2)
4016 <    yy_aconf->port |= OPER_FLAG_UNKLINE;
4016 >    block_state.port.value |= OPER_FLAG_SQUIT;
4017   }
4018 + #line 4019 "conf_parser.c" /* yacc.c:1646  */
4019      break;
4020  
4021 <  case 180:
4022 < /* Line 1787 of yacc.c  */
4236 < #line 1204 "conf_parser.y"
4021 >  case 205:
4022 > #line 1287 "conf_parser.y" /* yacc.c:1646  */
4023      {
4024    if (conf_parser_ctx.pass == 2)
4025 <    yy_aconf->port |= OPER_FLAG_DLINE;
4025 >    block_state.port.value |= OPER_FLAG_K;
4026   }
4027 + #line 4028 "conf_parser.c" /* yacc.c:1646  */
4028      break;
4029  
4030 <  case 181:
4031 < /* Line 1787 of yacc.c  */
4245 < #line 1208 "conf_parser.y"
4030 >  case 206:
4031 > #line 1291 "conf_parser.y" /* yacc.c:1646  */
4032      {
4033    if (conf_parser_ctx.pass == 2)
4034 <    yy_aconf->port |= OPER_FLAG_UNDLINE;
4034 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4035   }
4036 + #line 4037 "conf_parser.c" /* yacc.c:1646  */
4037      break;
4038  
4039 <  case 182:
4040 < /* Line 1787 of yacc.c  */
4254 < #line 1212 "conf_parser.y"
4039 >  case 207:
4040 > #line 1295 "conf_parser.y" /* yacc.c:1646  */
4041      {
4042    if (conf_parser_ctx.pass == 2)
4043 <    yy_aconf->port |= OPER_FLAG_X;
4043 >    block_state.port.value |= OPER_FLAG_DLINE;
4044   }
4045 + #line 4046 "conf_parser.c" /* yacc.c:1646  */
4046      break;
4047  
4048 <  case 183:
4049 < /* Line 1787 of yacc.c  */
4263 < #line 1216 "conf_parser.y"
4048 >  case 208:
4049 > #line 1299 "conf_parser.y" /* yacc.c:1646  */
4050      {
4051    if (conf_parser_ctx.pass == 2)
4052 <    yy_aconf->port |= OPER_FLAG_GLINE;
4052 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4053   }
4054 + #line 4055 "conf_parser.c" /* yacc.c:1646  */
4055      break;
4056  
4057 <  case 184:
4058 < /* Line 1787 of yacc.c  */
4272 < #line 1220 "conf_parser.y"
4057 >  case 209:
4058 > #line 1303 "conf_parser.y" /* yacc.c:1646  */
4059      {
4060    if (conf_parser_ctx.pass == 2)
4061 <    yy_aconf->port |= OPER_FLAG_DIE;
4061 >    block_state.port.value |= OPER_FLAG_X;
4062   }
4063 + #line 4064 "conf_parser.c" /* yacc.c:1646  */
4064      break;
4065  
4066 <  case 185:
4067 < /* Line 1787 of yacc.c  */
4281 < #line 1224 "conf_parser.y"
4066 >  case 210:
4067 > #line 1307 "conf_parser.y" /* yacc.c:1646  */
4068      {
4069    if (conf_parser_ctx.pass == 2)
4070 <    yy_aconf->port |= OPER_FLAG_RESTART;
4070 >    block_state.port.value |= OPER_FLAG_GLINE;
4071   }
4072 + #line 4073 "conf_parser.c" /* yacc.c:1646  */
4073      break;
4074  
4075 <  case 186:
4076 < /* Line 1787 of yacc.c  */
4290 < #line 1228 "conf_parser.y"
4075 >  case 211:
4076 > #line 1311 "conf_parser.y" /* yacc.c:1646  */
4077      {
4078    if (conf_parser_ctx.pass == 2)
4079 <    yy_aconf->port |= OPER_FLAG_REHASH;
4079 >    block_state.port.value |= OPER_FLAG_DIE;
4080   }
4081 + #line 4082 "conf_parser.c" /* yacc.c:1646  */
4082      break;
4083  
4084 <  case 187:
4085 < /* Line 1787 of yacc.c  */
4299 < #line 1232 "conf_parser.y"
4084 >  case 212:
4085 > #line 1315 "conf_parser.y" /* yacc.c:1646  */
4086      {
4087    if (conf_parser_ctx.pass == 2)
4088 <    yy_aconf->port |= OPER_FLAG_ADMIN;
4088 >    block_state.port.value |= OPER_FLAG_RESTART;
4089   }
4090 + #line 4091 "conf_parser.c" /* yacc.c:1646  */
4091      break;
4092  
4093 <  case 188:
4094 < /* Line 1787 of yacc.c  */
4308 < #line 1236 "conf_parser.y"
4093 >  case 213:
4094 > #line 1319 "conf_parser.y" /* yacc.c:1646  */
4095      {
4096    if (conf_parser_ctx.pass == 2)
4097 <    yy_aconf->port |= OPER_FLAG_N;
4097 >    block_state.port.value |= OPER_FLAG_REHASH;
4098   }
4099 + #line 4100 "conf_parser.c" /* yacc.c:1646  */
4100      break;
4101  
4102 <  case 189:
4103 < /* Line 1787 of yacc.c  */
4317 < #line 1240 "conf_parser.y"
4102 >  case 214:
4103 > #line 1323 "conf_parser.y" /* yacc.c:1646  */
4104      {
4105    if (conf_parser_ctx.pass == 2)
4106 <    yy_aconf->port |= OPER_FLAG_OPERWALL;
4106 >    block_state.port.value |= OPER_FLAG_ADMIN;
4107   }
4108 + #line 4109 "conf_parser.c" /* yacc.c:1646  */
4109      break;
4110  
4111 <  case 190:
4112 < /* Line 1787 of yacc.c  */
4326 < #line 1244 "conf_parser.y"
4111 >  case 215:
4112 > #line 1327 "conf_parser.y" /* yacc.c:1646  */
4113      {
4114    if (conf_parser_ctx.pass == 2)
4115 <    yy_aconf->port |= OPER_FLAG_GLOBOPS;
4115 >    block_state.port.value |= OPER_FLAG_OPERWALL;
4116   }
4117 + #line 4118 "conf_parser.c" /* yacc.c:1646  */
4118      break;
4119  
4120 <  case 191:
4121 < /* Line 1787 of yacc.c  */
4335 < #line 1248 "conf_parser.y"
4120 >  case 216:
4121 > #line 1331 "conf_parser.y" /* yacc.c:1646  */
4122      {
4123    if (conf_parser_ctx.pass == 2)
4124 <    yy_aconf->port |= OPER_FLAG_OPER_SPY;
4124 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4125   }
4126 + #line 4127 "conf_parser.c" /* yacc.c:1646  */
4127      break;
4128  
4129 <  case 192:
4130 < /* Line 1787 of yacc.c  */
4344 < #line 1252 "conf_parser.y"
4129 >  case 217:
4130 > #line 1335 "conf_parser.y" /* yacc.c:1646  */
4131      {
4132    if (conf_parser_ctx.pass == 2)
4133 <    yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4133 >    block_state.port.value |= OPER_FLAG_WALLOPS;
4134   }
4135 + #line 4136 "conf_parser.c" /* yacc.c:1646  */
4136      break;
4137  
4138 <  case 193:
4139 < /* Line 1787 of yacc.c  */
4353 < #line 1256 "conf_parser.y"
4138 >  case 218:
4139 > #line 1339 "conf_parser.y" /* yacc.c:1646  */
4140      {
4141    if (conf_parser_ctx.pass == 2)
4142 <    yy_aconf->port |= OPER_FLAG_SET;
4142 >    block_state.port.value |= OPER_FLAG_LOCOPS;
4143   }
4144 + #line 4145 "conf_parser.c" /* yacc.c:1646  */
4145      break;
4146  
4147 <  case 194:
4148 < /* Line 1787 of yacc.c  */
4362 < #line 1260 "conf_parser.y"
4147 >  case 219:
4148 > #line 1343 "conf_parser.y" /* yacc.c:1646  */
4149      {
4150    if (conf_parser_ctx.pass == 2)
4151 <    yy_aconf->port |= OPER_FLAG_MODULE;
4151 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4152   }
4153 + #line 4154 "conf_parser.c" /* yacc.c:1646  */
4154      break;
4155  
4156 <  case 195:
4157 < /* Line 1787 of yacc.c  */
4371 < #line 1270 "conf_parser.y"
4156 >  case 220:
4157 > #line 1347 "conf_parser.y" /* yacc.c:1646  */
4158      {
4159 <  if (conf_parser_ctx.pass == 1)
4160 <  {
4375 <    yy_conf = make_conf_item(CLASS_TYPE);
4376 <    yy_class = map_to_conf(yy_conf);
4377 <  }
4159 >  if (conf_parser_ctx.pass == 2)
4160 >    block_state.port.value |= OPER_FLAG_SET;
4161   }
4162 + #line 4163 "conf_parser.c" /* yacc.c:1646  */
4163      break;
4164  
4165 <  case 196:
4166 < /* Line 1787 of yacc.c  */
4383 < #line 1277 "conf_parser.y"
4165 >  case 221:
4166 > #line 1351 "conf_parser.y" /* yacc.c:1646  */
4167      {
4168 <  if (conf_parser_ctx.pass == 1)
4169 <  {
4170 <    struct ConfItem *cconf = NULL;
4171 <    struct ClassItem *class = NULL;
4168 >  if (conf_parser_ctx.pass == 2)
4169 >    block_state.port.value |= OPER_FLAG_MODULE;
4170 > }
4171 > #line 4172 "conf_parser.c" /* yacc.c:1646  */
4172 >    break;
4173  
4174 <    if (yy_class_name == NULL)
4175 <      delete_conf_item(yy_conf);
4392 <    else
4174 >  case 222:
4175 > #line 1361 "conf_parser.y" /* yacc.c:1646  */
4176      {
4177 <      cconf = find_exact_name_conf(CLASS_TYPE, NULL, yy_class_name, NULL, NULL);
4177 >  if (conf_parser_ctx.pass != 1)
4178 >    break;
4179  
4180 <      if (cconf != NULL)                /* The class existed already */
4397 <      {
4398 <        int user_count = 0;
4180 >  reset_block_state();
4181  
4182 <        rebuild_cidr_class(cconf, yy_class);
4182 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4183 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4184 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4185 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4186 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4187 > }
4188 > #line 4189 "conf_parser.c" /* yacc.c:1646  */
4189 >    break;
4190  
4191 <        class = map_to_conf(cconf);
4191 >  case 223:
4192 > #line 1373 "conf_parser.y" /* yacc.c:1646  */
4193 >    {
4194 >  struct ClassItem *class = NULL;
4195  
4196 <        user_count = class->curr_user_count;
4197 <        memcpy(class, yy_class, sizeof(*class));
4406 <        class->curr_user_count = user_count;
4407 <        class->active = 1;
4196 >  if (conf_parser_ctx.pass != 1)
4197 >    break;
4198  
4199 <        delete_conf_item(yy_conf);
4199 >  if (!block_state.class.buf[0])
4200 >    break;
4201  
4202 <        MyFree(cconf->name);            /* Allows case change of class name */
4203 <        cconf->name = yy_class_name;
4204 <      }
4205 <      else      /* Brand new class */
4206 <      {
4207 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4208 <        yy_conf->name = yy_class_name;
4209 <        yy_class->active = 1;
4210 <      }
4211 <    }
4202 >  if (!(class = class_find(block_state.class.buf, 0)))
4203 >    class = class_make();
4204 >
4205 >  class->active = 1;
4206 >  MyFree(class->name);
4207 >  class->name = xstrdup(block_state.class.buf);
4208 >  class->ping_freq = block_state.ping_freq.value;
4209 >  class->max_perip = block_state.max_perip.value;
4210 >  class->con_freq = block_state.con_freq.value;
4211 >  class->max_total = block_state.max_total.value;
4212 >  class->max_global = block_state.max_global.value;
4213 >  class->max_local = block_state.max_local.value;
4214 >  class->max_ident = block_state.max_ident.value;
4215 >  class->max_sendq = block_state.max_sendq.value;
4216 >  class->max_recvq = block_state.max_recvq.value;
4217  
4218 <    yy_class_name = NULL;
4218 >  if (block_state.min_idle.value > block_state.max_idle.value)
4219 >  {
4220 >    block_state.min_idle.value = 0;
4221 >    block_state.max_idle.value = 0;
4222 >    block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4223    }
4224 +
4225 +  class->flags = block_state.flags.value;
4226 +  class->min_idle = block_state.min_idle.value;
4227 +  class->max_idle = block_state.max_idle.value;
4228 +
4229 +  if (class->number_per_cidr && block_state.number_per_cidr.value)
4230 +    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4231 +        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4232 +      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4233 +          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4234 +        rebuild_cidr_list(class);
4235 +
4236 +  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4237 +  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4238 +  class->number_per_cidr = block_state.number_per_cidr.value;
4239   }
4240 + #line 4241 "conf_parser.c" /* yacc.c:1646  */
4241      break;
4242  
4243 <  case 214:
4244 < /* Line 1787 of yacc.c  */
4429 < #line 1335 "conf_parser.y"
4243 >  case 243:
4244 > #line 1439 "conf_parser.y" /* yacc.c:1646  */
4245      {
4246    if (conf_parser_ctx.pass == 1)
4247 <  {
4433 <    MyFree(yy_class_name);
4434 <    DupString(yy_class_name, yylval.string);
4435 <  }
4247 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4248   }
4249 + #line 4250 "conf_parser.c" /* yacc.c:1646  */
4250      break;
4251  
4252 <  case 215:
4253 < /* Line 1787 of yacc.c  */
4441 < #line 1344 "conf_parser.y"
4252 >  case 244:
4253 > #line 1445 "conf_parser.y" /* yacc.c:1646  */
4254      {
4255    if (conf_parser_ctx.pass == 1)
4256 <    yy_class->ping_freq = (yyvsp[(3) - (4)].number);
4256 >    block_state.ping_freq.value = (yyvsp[-1].number);
4257   }
4258 + #line 4259 "conf_parser.c" /* yacc.c:1646  */
4259      break;
4260  
4261 <  case 216:
4262 < /* Line 1787 of yacc.c  */
4450 < #line 1350 "conf_parser.y"
4261 >  case 245:
4262 > #line 1451 "conf_parser.y" /* yacc.c:1646  */
4263      {
4264    if (conf_parser_ctx.pass == 1)
4265 <    yy_class->ping_warning = (yyvsp[(3) - (4)].number);
4265 >    block_state.max_perip.value = (yyvsp[-1].number);
4266   }
4267 + #line 4268 "conf_parser.c" /* yacc.c:1646  */
4268      break;
4269  
4270 <  case 217:
4271 < /* Line 1787 of yacc.c  */
4459 < #line 1356 "conf_parser.y"
4270 >  case 246:
4271 > #line 1457 "conf_parser.y" /* yacc.c:1646  */
4272      {
4273    if (conf_parser_ctx.pass == 1)
4274 <    yy_class->max_perip = (yyvsp[(3) - (4)].number);
4274 >    block_state.con_freq.value = (yyvsp[-1].number);
4275   }
4276 + #line 4277 "conf_parser.c" /* yacc.c:1646  */
4277      break;
4278  
4279 <  case 218:
4280 < /* Line 1787 of yacc.c  */
4468 < #line 1362 "conf_parser.y"
4279 >  case 247:
4280 > #line 1463 "conf_parser.y" /* yacc.c:1646  */
4281      {
4282    if (conf_parser_ctx.pass == 1)
4283 <    yy_class->con_freq = (yyvsp[(3) - (4)].number);
4283 >    block_state.max_total.value = (yyvsp[-1].number);
4284   }
4285 + #line 4286 "conf_parser.c" /* yacc.c:1646  */
4286      break;
4287  
4288 <  case 219:
4289 < /* Line 1787 of yacc.c  */
4477 < #line 1368 "conf_parser.y"
4288 >  case 248:
4289 > #line 1469 "conf_parser.y" /* yacc.c:1646  */
4290      {
4291    if (conf_parser_ctx.pass == 1)
4292 <    yy_class->max_total = (yyvsp[(3) - (4)].number);
4292 >    block_state.max_global.value = (yyvsp[-1].number);
4293   }
4294 + #line 4295 "conf_parser.c" /* yacc.c:1646  */
4295      break;
4296  
4297 <  case 220:
4298 < /* Line 1787 of yacc.c  */
4486 < #line 1374 "conf_parser.y"
4297 >  case 249:
4298 > #line 1475 "conf_parser.y" /* yacc.c:1646  */
4299      {
4300    if (conf_parser_ctx.pass == 1)
4301 <    yy_class->max_global = (yyvsp[(3) - (4)].number);
4301 >    block_state.max_local.value = (yyvsp[-1].number);
4302   }
4303 + #line 4304 "conf_parser.c" /* yacc.c:1646  */
4304      break;
4305  
4306 <  case 221:
4307 < /* Line 1787 of yacc.c  */
4495 < #line 1380 "conf_parser.y"
4306 >  case 250:
4307 > #line 1481 "conf_parser.y" /* yacc.c:1646  */
4308      {
4309    if (conf_parser_ctx.pass == 1)
4310 <    yy_class->max_local = (yyvsp[(3) - (4)].number);
4310 >    block_state.max_ident.value = (yyvsp[-1].number);
4311   }
4312 + #line 4313 "conf_parser.c" /* yacc.c:1646  */
4313      break;
4314  
4315 <  case 222:
4316 < /* Line 1787 of yacc.c  */
4504 < #line 1386 "conf_parser.y"
4315 >  case 251:
4316 > #line 1487 "conf_parser.y" /* yacc.c:1646  */
4317      {
4318    if (conf_parser_ctx.pass == 1)
4319 <    yy_class->max_ident = (yyvsp[(3) - (4)].number);
4319 >    block_state.max_sendq.value = (yyvsp[-1].number);
4320   }
4321 + #line 4322 "conf_parser.c" /* yacc.c:1646  */
4322      break;
4323  
4324 <  case 223:
4325 < /* Line 1787 of yacc.c  */
4326 < #line 1392 "conf_parser.y"
4324 >  case 252:
4325 > #line 1493 "conf_parser.y" /* yacc.c:1646  */
4326 >    {
4327 >  if (conf_parser_ctx.pass == 1)
4328 >    if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX)
4329 >      block_state.max_recvq.value = (yyvsp[-1].number);
4330 > }
4331 > #line 4332 "conf_parser.c" /* yacc.c:1646  */
4332 >    break;
4333 >
4334 >  case 253:
4335 > #line 1500 "conf_parser.y" /* yacc.c:1646  */
4336      {
4337    if (conf_parser_ctx.pass == 1)
4338 <    yy_class->max_sendq = (yyvsp[(3) - (4)].number);
4338 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number);
4339   }
4340 + #line 4341 "conf_parser.c" /* yacc.c:1646  */
4341      break;
4342  
4343 <  case 224:
4344 < /* Line 1787 of yacc.c  */
4522 < #line 1398 "conf_parser.y"
4343 >  case 254:
4344 > #line 1506 "conf_parser.y" /* yacc.c:1646  */
4345      {
4346    if (conf_parser_ctx.pass == 1)
4347 <    if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4526 <      yy_class->max_recvq = (yyvsp[(3) - (4)].number);
4347 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number);
4348   }
4349 + #line 4350 "conf_parser.c" /* yacc.c:1646  */
4350      break;
4351  
4352 <  case 225:
4353 < /* Line 1787 of yacc.c  */
4532 < #line 1405 "conf_parser.y"
4352 >  case 255:
4353 > #line 1512 "conf_parser.y" /* yacc.c:1646  */
4354      {
4355    if (conf_parser_ctx.pass == 1)
4356 <    yy_class->cidr_bitlen_ipv4 = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4356 >    block_state.number_per_cidr.value = (yyvsp[-1].number);
4357   }
4358 + #line 4359 "conf_parser.c" /* yacc.c:1646  */
4359      break;
4360  
4361 <  case 226:
4362 < /* Line 1787 of yacc.c  */
4363 < #line 1411 "conf_parser.y"
4361 >  case 256:
4362 > #line 1518 "conf_parser.y" /* yacc.c:1646  */
4363 >    {
4364 >  if (conf_parser_ctx.pass != 1)
4365 >    break;
4366 >
4367 >  block_state.min_idle.value = (yyvsp[-1].number);
4368 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4369 > }
4370 > #line 4371 "conf_parser.c" /* yacc.c:1646  */
4371 >    break;
4372 >
4373 >  case 257:
4374 > #line 1527 "conf_parser.y" /* yacc.c:1646  */
4375 >    {
4376 >  if (conf_parser_ctx.pass != 1)
4377 >    break;
4378 >
4379 >  block_state.max_idle.value = (yyvsp[-1].number);
4380 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4381 > }
4382 > #line 4383 "conf_parser.c" /* yacc.c:1646  */
4383 >    break;
4384 >
4385 >  case 258:
4386 > #line 1536 "conf_parser.y" /* yacc.c:1646  */
4387      {
4388    if (conf_parser_ctx.pass == 1)
4389 <    yy_class->cidr_bitlen_ipv6 = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4389 >    block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4390   }
4391 + #line 4392 "conf_parser.c" /* yacc.c:1646  */
4392      break;
4393  
4394 <  case 227:
4395 < /* Line 1787 of yacc.c  */
4550 < #line 1417 "conf_parser.y"
4394 >  case 262:
4395 > #line 1543 "conf_parser.y" /* yacc.c:1646  */
4396      {
4397    if (conf_parser_ctx.pass == 1)
4398 <    yy_class->number_per_cidr = (yyvsp[(3) - (4)].number);
4398 >    block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4399   }
4400 + #line 4401 "conf_parser.c" /* yacc.c:1646  */
4401      break;
4402  
4403 <  case 228:
4404 < /* Line 1787 of yacc.c  */
4559 < #line 1426 "conf_parser.y"
4403 >  case 263:
4404 > #line 1547 "conf_parser.y" /* yacc.c:1646  */
4405      {
4406 <  if (conf_parser_ctx.pass == 2)
4407 <  {
4563 <    listener_address = NULL;
4564 <    listener_flags = 0;
4565 <  }
4406 >  if (conf_parser_ctx.pass == 1)
4407 >    block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4408   }
4409 + #line 4410 "conf_parser.c" /* yacc.c:1646  */
4410      break;
4411  
4412 <  case 229:
4413 < /* Line 1787 of yacc.c  */
4571 < #line 1433 "conf_parser.y"
4412 >  case 264:
4413 > #line 1557 "conf_parser.y" /* yacc.c:1646  */
4414      {
4415    if (conf_parser_ctx.pass == 2)
4416 <  {
4575 <    MyFree(listener_address);
4576 <    listener_address = NULL;
4577 <  }
4416 >    reset_block_state();
4417   }
4418 + #line 4419 "conf_parser.c" /* yacc.c:1646  */
4419      break;
4420  
4421 <  case 230:
4422 < /* Line 1787 of yacc.c  */
4583 < #line 1442 "conf_parser.y"
4421 >  case 266:
4422 > #line 1563 "conf_parser.y" /* yacc.c:1646  */
4423      {
4424 <  listener_flags = 0;
4424 >  block_state.flags.value = 0;
4425   }
4426 + #line 4427 "conf_parser.c" /* yacc.c:1646  */
4427      break;
4428  
4429 <  case 234:
4430 < /* Line 1787 of yacc.c  */
4591 < #line 1448 "conf_parser.y"
4429 >  case 270:
4430 > #line 1569 "conf_parser.y" /* yacc.c:1646  */
4431      {
4432    if (conf_parser_ctx.pass == 2)
4433 <    listener_flags |= LISTENER_SSL;
4433 >    block_state.flags.value |= LISTENER_SSL;
4434   }
4435 + #line 4436 "conf_parser.c" /* yacc.c:1646  */
4436      break;
4437  
4438 <  case 235:
4439 < /* Line 1787 of yacc.c  */
4600 < #line 1452 "conf_parser.y"
4438 >  case 271:
4439 > #line 1573 "conf_parser.y" /* yacc.c:1646  */
4440      {
4441    if (conf_parser_ctx.pass == 2)
4442 <    listener_flags |= LISTENER_HIDDEN;
4442 >    block_state.flags.value |= LISTENER_HIDDEN;
4443   }
4444 + #line 4445 "conf_parser.c" /* yacc.c:1646  */
4445      break;
4446  
4447 <  case 236:
4448 < /* Line 1787 of yacc.c  */
4609 < #line 1456 "conf_parser.y"
4447 >  case 272:
4448 > #line 1577 "conf_parser.y" /* yacc.c:1646  */
4449      {
4450    if (conf_parser_ctx.pass == 2)
4451 <    listener_flags |= LISTENER_SERVER;
4451 >   block_state.flags.value |= LISTENER_SERVER;
4452   }
4453 + #line 4454 "conf_parser.c" /* yacc.c:1646  */
4454      break;
4455  
4456 <  case 244:
4457 < /* Line 1787 of yacc.c  */
4458 < #line 1466 "conf_parser.y"
4459 <    { listener_flags = 0; }
4456 >  case 280:
4457 > #line 1585 "conf_parser.y" /* yacc.c:1646  */
4458 >    { block_state.flags.value = 0; }
4459 > #line 4460 "conf_parser.c" /* yacc.c:1646  */
4460      break;
4461  
4462 <  case 248:
4463 < /* Line 1787 of yacc.c  */
4624 < #line 1471 "conf_parser.y"
4462 >  case 284:
4463 > #line 1590 "conf_parser.y" /* yacc.c:1646  */
4464      {
4465    if (conf_parser_ctx.pass == 2)
4466    {
4467 <    if ((listener_flags & LISTENER_SSL))
4467 >    if (block_state.flags.value & LISTENER_SSL)
4468   #ifdef HAVE_LIBCRYPTO
4469        if (!ServerInfo.server_ctx)
4470   #endif
4471        {
4472 <        yyerror("SSL not available - port closed");
4472 >        conf_error_report("SSL not available - port closed");
4473          break;
4474        }
4475 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4475 >    add_listener((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4476    }
4477   }
4478 + #line 4479 "conf_parser.c" /* yacc.c:1646  */
4479      break;
4480  
4481 <  case 249:
4482 < /* Line 1787 of yacc.c  */
4643 < #line 1485 "conf_parser.y"
4481 >  case 285:
4482 > #line 1604 "conf_parser.y" /* yacc.c:1646  */
4483      {
4484    if (conf_parser_ctx.pass == 2)
4485    {
4486      int i;
4487  
4488 <    if ((listener_flags & LISTENER_SSL))
4488 >    if (block_state.flags.value & LISTENER_SSL)
4489   #ifdef HAVE_LIBCRYPTO
4490        if (!ServerInfo.server_ctx)
4491   #endif
4492        {
4493 <        yyerror("SSL not available - port closed");
4493 >        conf_error_report("SSL not available - port closed");
4494          break;
4495        }
4496  
4497 <    for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4498 <      add_listener(i, listener_address, listener_flags);
4497 >    for (i = (yyvsp[-2].number); i <= (yyvsp[0].number); ++i)
4498 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4499    }
4500   }
4501 + #line 4502 "conf_parser.c" /* yacc.c:1646  */
4502      break;
4503  
4504 <  case 250:
4505 < /* Line 1787 of yacc.c  */
4666 < #line 1505 "conf_parser.y"
4504 >  case 286:
4505 > #line 1624 "conf_parser.y" /* yacc.c:1646  */
4506      {
4507    if (conf_parser_ctx.pass == 2)
4508 <  {
4670 <    MyFree(listener_address);
4671 <    DupString(listener_address, yylval.string);
4672 <  }
4508 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4509   }
4510 + #line 4511 "conf_parser.c" /* yacc.c:1646  */
4511      break;
4512  
4513 <  case 251:
4514 < /* Line 1787 of yacc.c  */
4678 < #line 1514 "conf_parser.y"
4513 >  case 287:
4514 > #line 1630 "conf_parser.y" /* yacc.c:1646  */
4515      {
4516    if (conf_parser_ctx.pass == 2)
4517 <  {
4682 <    MyFree(listener_address);
4683 <    DupString(listener_address, yylval.string);
4684 <  }
4517 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4518   }
4519 + #line 4520 "conf_parser.c" /* yacc.c:1646  */
4520      break;
4521  
4522 <  case 252:
4523 < /* Line 1787 of yacc.c  */
4690 < #line 1526 "conf_parser.y"
4522 >  case 288:
4523 > #line 1639 "conf_parser.y" /* yacc.c:1646  */
4524      {
4525    if (conf_parser_ctx.pass == 2)
4526 <  {
4694 <    yy_conf = make_conf_item(CLIENT_TYPE);
4695 <    yy_aconf = map_to_conf(yy_conf);
4696 <  }
4697 <  else
4698 <  {
4699 <    MyFree(class_name);
4700 <    class_name = NULL;
4701 <  }
4526 >    reset_block_state();
4527   }
4528 + #line 4529 "conf_parser.c" /* yacc.c:1646  */
4529      break;
4530  
4531 <  case 253:
4532 < /* Line 1787 of yacc.c  */
4707 < #line 1538 "conf_parser.y"
4708 <    {
4709 <  if (conf_parser_ctx.pass == 2)
4710 <  {
4711 <    struct CollectItem *yy_tmp = NULL;
4712 <    dlink_node *ptr = NULL, *next_ptr = NULL;
4713 <
4714 <    if (yy_aconf->user && yy_aconf->host)
4715 <    {
4716 <      conf_add_class_to_conf(yy_conf, class_name);
4717 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
4718 <    }
4719 <    else
4720 <      delete_conf_item(yy_conf);
4721 <
4722 <    /* copy over settings from first struct */
4723 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4531 >  case 289:
4532 > #line 1643 "conf_parser.y" /* yacc.c:1646  */
4533      {
4534 <      struct AccessItem *new_aconf;
4726 <      struct ConfItem *new_conf;
4727 <
4728 <      new_conf = make_conf_item(CLIENT_TYPE);
4729 <      new_aconf = map_to_conf(new_conf);
4730 <
4731 <      yy_tmp = ptr->data;
4732 <
4733 <      assert(yy_tmp->user && yy_tmp->host);
4734 <
4735 <      if (yy_aconf->passwd != NULL)
4736 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4737 <      if (yy_conf->name != NULL)
4738 <        DupString(new_conf->name, yy_conf->name);
4739 <      if (yy_aconf->passwd != NULL)
4740 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4741 <
4742 <      new_aconf->flags = yy_aconf->flags;
4743 <      new_aconf->port  = yy_aconf->port;
4744 <
4745 <      DupString(new_aconf->user, yy_tmp->user);
4746 <      collapse(new_aconf->user);
4747 <
4748 <      DupString(new_aconf->host, yy_tmp->host);
4749 <      collapse(new_aconf->host);
4750 <
4751 <      conf_add_class_to_conf(new_conf, class_name);
4752 <      add_conf_by_address(CONF_CLIENT, new_aconf);
4753 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4754 <      free_collect_item(yy_tmp);
4755 <    }
4534 >  dlink_node *ptr = NULL;
4535  
4536 <    MyFree(class_name);
4758 <    class_name = NULL;
4759 <    yy_conf = NULL;
4760 <    yy_aconf = NULL;
4761 <  }
4762 < }
4536 >  if (conf_parser_ctx.pass != 2)
4537      break;
4538  
4539 <  case 265:
4766 < /* Line 1787 of yacc.c  */
4767 < #line 1600 "conf_parser.y"
4768 <    {
4769 <  if (conf_parser_ctx.pass == 2)
4539 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4540    {
4541 <    struct CollectItem *yy_tmp = NULL;
4541 >    struct MaskItem *conf = NULL;
4542      struct split_nuh_item nuh;
4543  
4544 <    nuh.nuhmask  = yylval.string;
4544 >    nuh.nuhmask  = ptr->data;
4545      nuh.nickptr  = NULL;
4546 <    nuh.userptr  = userbuf;
4547 <    nuh.hostptr  = hostbuf;
4778 <
4546 >    nuh.userptr  = block_state.user.buf;
4547 >    nuh.hostptr  = block_state.host.buf;
4548      nuh.nicksize = 0;
4549 <    nuh.usersize = sizeof(userbuf);
4550 <    nuh.hostsize = sizeof(hostbuf);
4782 <
4549 >    nuh.usersize = sizeof(block_state.user.buf);
4550 >    nuh.hostsize = sizeof(block_state.host.buf);
4551      split_nuh(&nuh);
4552  
4553 <    if (yy_aconf->user == NULL)
4554 <    {
4555 <      DupString(yy_aconf->user, userbuf);
4788 <      DupString(yy_aconf->host, hostbuf);
4789 <    }
4790 <    else
4791 <    {
4792 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4553 >    conf        = conf_make(CONF_CLIENT);
4554 >    conf->user  = xstrdup(block_state.user.buf);
4555 >    conf->host  = xstrdup(block_state.host.buf);
4556  
4557 <      DupString(yy_tmp->user, userbuf);
4558 <      DupString(yy_tmp->host, hostbuf);
4557 >    if (block_state.rpass.buf[0])
4558 >      conf->passwd = xstrdup(block_state.rpass.buf);
4559 >    if (block_state.name.buf[0])
4560 >      conf->name = xstrdup(block_state.name.buf);
4561  
4562 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4563 <    }
4562 >    conf->flags = block_state.flags.value;
4563 >    conf->port  = block_state.port.value;
4564 >
4565 >    conf_add_class_to_conf(conf, block_state.class.buf);
4566 >    add_conf_by_address(CONF_CLIENT, conf);
4567    }
4568   }
4569 + #line 4570 "conf_parser.c" /* yacc.c:1646  */
4570      break;
4571  
4572 <  case 266:
4573 < /* Line 1787 of yacc.c  */
4805 < #line 1635 "conf_parser.y"
4572 >  case 301:
4573 > #line 1686 "conf_parser.y" /* yacc.c:1646  */
4574      {
4575    if (conf_parser_ctx.pass == 2)
4576 <  {
4577 <    /* be paranoid */
4578 <    if (yy_aconf->passwd != NULL)
4579 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4576 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4577 > }
4578 > #line 4579 "conf_parser.c" /* yacc.c:1646  */
4579 >    break;
4580  
4581 <    MyFree(yy_aconf->passwd);
4582 <    DupString(yy_aconf->passwd, yylval.string);
4583 <  }
4581 >  case 302:
4582 > #line 1692 "conf_parser.y" /* yacc.c:1646  */
4583 >    {
4584 >  if (conf_parser_ctx.pass == 2)
4585 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4586   }
4587 + #line 4588 "conf_parser.c" /* yacc.c:1646  */
4588      break;
4589  
4590 <  case 267:
4591 < /* Line 1787 of yacc.c  */
4821 < #line 1648 "conf_parser.y"
4590 >  case 303:
4591 > #line 1698 "conf_parser.y" /* yacc.c:1646  */
4592      {
4593    if (conf_parser_ctx.pass == 2)
4594 <  {
4825 <    MyFree(class_name);
4826 <    DupString(class_name, yylval.string);
4827 <  }
4594 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4595   }
4596 + #line 4597 "conf_parser.c" /* yacc.c:1646  */
4597      break;
4598  
4599 <  case 268:
4600 < /* Line 1787 of yacc.c  */
4833 < #line 1657 "conf_parser.y"
4599 >  case 304:
4600 > #line 1704 "conf_parser.y" /* yacc.c:1646  */
4601      {
4602    if (conf_parser_ctx.pass == 2)
4603    {
4604      if (yylval.number)
4605 <      SetConfEncrypted(yy_aconf);
4605 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4606      else
4607 <      ClearConfEncrypted(yy_aconf);
4607 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4608    }
4609   }
4610 + #line 4611 "conf_parser.c" /* yacc.c:1646  */
4611      break;
4612  
4613 <  case 269:
4614 < /* Line 1787 of yacc.c  */
4847 < #line 1668 "conf_parser.y"
4613 >  case 305:
4614 > #line 1715 "conf_parser.y" /* yacc.c:1646  */
4615      {
4616 +  if (conf_parser_ctx.pass == 2)
4617 +    block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4618   }
4619 + #line 4620 "conf_parser.c" /* yacc.c:1646  */
4620      break;
4621  
4622 <  case 273:
4623 < /* Line 1787 of yacc.c  */
4854 < #line 1673 "conf_parser.y"
4622 >  case 309:
4623 > #line 1722 "conf_parser.y" /* yacc.c:1646  */
4624      {
4625    if (conf_parser_ctx.pass == 2)
4626 <    yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
4626 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4627   }
4628 + #line 4629 "conf_parser.c" /* yacc.c:1646  */
4629      break;
4630  
4631 <  case 274:
4632 < /* Line 1787 of yacc.c  */
4863 < #line 1677 "conf_parser.y"
4631 >  case 310:
4632 > #line 1726 "conf_parser.y" /* yacc.c:1646  */
4633      {
4634    if (conf_parser_ctx.pass == 2)
4635 <    yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
4635 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4636   }
4637 + #line 4638 "conf_parser.c" /* yacc.c:1646  */
4638      break;
4639  
4640 <  case 275:
4641 < /* Line 1787 of yacc.c  */
4872 < #line 1681 "conf_parser.y"
4640 >  case 311:
4641 > #line 1730 "conf_parser.y" /* yacc.c:1646  */
4642      {
4643    if (conf_parser_ctx.pass == 2)
4644 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
4644 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4645   }
4646 + #line 4647 "conf_parser.c" /* yacc.c:1646  */
4647      break;
4648  
4649 <  case 276:
4650 < /* Line 1787 of yacc.c  */
4881 < #line 1685 "conf_parser.y"
4649 >  case 312:
4650 > #line 1734 "conf_parser.y" /* yacc.c:1646  */
4651      {
4652    if (conf_parser_ctx.pass == 2)
4653 <    yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
4653 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4654   }
4655 + #line 4656 "conf_parser.c" /* yacc.c:1646  */
4656      break;
4657  
4658 <  case 277:
4659 < /* Line 1787 of yacc.c  */
4890 < #line 1689 "conf_parser.y"
4658 >  case 313:
4659 > #line 1738 "conf_parser.y" /* yacc.c:1646  */
4660      {
4661    if (conf_parser_ctx.pass == 2)
4662 <    yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
4662 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4663   }
4664 + #line 4665 "conf_parser.c" /* yacc.c:1646  */
4665      break;
4666  
4667 <  case 278:
4668 < /* Line 1787 of yacc.c  */
4899 < #line 1693 "conf_parser.y"
4667 >  case 314:
4668 > #line 1742 "conf_parser.y" /* yacc.c:1646  */
4669      {
4670    if (conf_parser_ctx.pass == 2)
4671 <    yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
4671 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4672   }
4673 + #line 4674 "conf_parser.c" /* yacc.c:1646  */
4674      break;
4675  
4676 <  case 279:
4677 < /* Line 1787 of yacc.c  */
4908 < #line 1697 "conf_parser.y"
4676 >  case 315:
4677 > #line 1746 "conf_parser.y" /* yacc.c:1646  */
4678      {
4679    if (conf_parser_ctx.pass == 2)
4680 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
4680 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4681   }
4682 + #line 4683 "conf_parser.c" /* yacc.c:1646  */
4683      break;
4684  
4685 <  case 280:
4686 < /* Line 1787 of yacc.c  */
4917 < #line 1701 "conf_parser.y"
4685 >  case 316:
4686 > #line 1750 "conf_parser.y" /* yacc.c:1646  */
4687      {
4688    if (conf_parser_ctx.pass == 2)
4689 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
4689 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4690   }
4691 + #line 4692 "conf_parser.c" /* yacc.c:1646  */
4692      break;
4693  
4694 <  case 281:
4695 < /* Line 1787 of yacc.c  */
4926 < #line 1705 "conf_parser.y"
4694 >  case 317:
4695 > #line 1754 "conf_parser.y" /* yacc.c:1646  */
4696      {
4697    if (conf_parser_ctx.pass == 2)
4698 <    yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
4698 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
4699   }
4700 + #line 4701 "conf_parser.c" /* yacc.c:1646  */
4701      break;
4702  
4703 <  case 282:
4704 < /* Line 1787 of yacc.c  */
4935 < #line 1711 "conf_parser.y"
4703 >  case 318:
4704 > #line 1758 "conf_parser.y" /* yacc.c:1646  */
4705      {
4706    if (conf_parser_ctx.pass == 2)
4707 <  {
4708 <    MyFree(yy_conf->name);
4707 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4708 > }
4709 > #line 4710 "conf_parser.c" /* yacc.c:1646  */
4710 >    break;
4711  
4712 <    if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4713 <    {    
4943 <      DupString(yy_conf->name, yylval.string);
4944 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
4945 <    }
4946 <    else
4712 >  case 319:
4713 > #line 1764 "conf_parser.y" /* yacc.c:1646  */
4714      {
4715 <      ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4716 <      yy_conf->name = NULL;
4717 <    }
4715 >  if (conf_parser_ctx.pass != 2)
4716 >    break;
4717 >
4718 >  if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4719 >  {
4720 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4721 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4722    }
4723 +  else
4724 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4725   }
4726 + #line 4727 "conf_parser.c" /* yacc.c:1646  */
4727      break;
4728  
4729 <  case 283:
4730 < /* Line 1787 of yacc.c  */
4957 < #line 1730 "conf_parser.y"
4729 >  case 320:
4730 > #line 1778 "conf_parser.y" /* yacc.c:1646  */
4731      {
4732 <  if (conf_parser_ctx.pass == 2)
4733 <  {
4734 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4735 <    MyFree(yy_conf->name);
4736 <    DupString(yy_conf->name, yylval.string);
4964 <  }
4732 >  if (conf_parser_ctx.pass != 2)
4733 >    break;
4734 >
4735 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4736 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4737   }
4738 + #line 4739 "conf_parser.c" /* yacc.c:1646  */
4739      break;
4740  
4741 <  case 284:
4742 < /* Line 1787 of yacc.c  */
4970 < #line 1740 "conf_parser.y"
4741 >  case 321:
4742 > #line 1787 "conf_parser.y" /* yacc.c:1646  */
4743      {
4744 <  if (conf_parser_ctx.pass == 2)
4745 <  {
4746 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4747 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
4748 <  }
4744 >  if (conf_parser_ctx.pass != 2)
4745 >    break;
4746 >
4747 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4748 >  block_state.port.value = (yyvsp[-1].number);
4749   }
4750 + #line 4751 "conf_parser.c" /* yacc.c:1646  */
4751      break;
4752  
4753 <  case 285:
4754 < /* Line 1787 of yacc.c  */
4982 < #line 1753 "conf_parser.y"
4753 >  case 322:
4754 > #line 1800 "conf_parser.y" /* yacc.c:1646  */
4755      {
4756 <  if (conf_parser_ctx.pass == 2)
4757 <  {
4758 <    MyFree(resv_reason);
4759 <    resv_reason = NULL;
4760 <  }
4756 >  if (conf_parser_ctx.pass != 2)
4757 >    break;
4758 >
4759 >  reset_block_state();
4760 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4761   }
4762 + #line 4763 "conf_parser.c" /* yacc.c:1646  */
4763      break;
4764  
4765 <  case 286:
4766 < /* Line 1787 of yacc.c  */
4994 < #line 1760 "conf_parser.y"
4765 >  case 323:
4766 > #line 1807 "conf_parser.y" /* yacc.c:1646  */
4767      {
4768 <  if (conf_parser_ctx.pass == 2)
4769 <  {
4770 <    MyFree(resv_reason);
4771 <    resv_reason = NULL;
5000 <  }
4768 >  if (conf_parser_ctx.pass != 2)
4769 >    break;
4770 >
4771 >  create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4772   }
4773 + #line 4774 "conf_parser.c" /* yacc.c:1646  */
4774      break;
4775  
4776 <  case 293:
4777 < /* Line 1787 of yacc.c  */
5006 < #line 1772 "conf_parser.y"
4776 >  case 330:
4777 > #line 1818 "conf_parser.y" /* yacc.c:1646  */
4778      {
4779    if (conf_parser_ctx.pass == 2)
4780 <  {
5010 <    MyFree(resv_reason);
5011 <    DupString(resv_reason, yylval.string);
5012 <  }
4780 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4781   }
4782 + #line 4783 "conf_parser.c" /* yacc.c:1646  */
4783      break;
4784  
4785 <  case 294:
4786 < /* Line 1787 of yacc.c  */
5018 < #line 1781 "conf_parser.y"
4785 >  case 331:
4786 > #line 1824 "conf_parser.y" /* yacc.c:1646  */
4787      {
4788    if (conf_parser_ctx.pass == 2)
4789 <  {
5022 <    if (IsChanPrefix(*yylval.string))
5023 <    {
5024 <      char def_reason[] = "No reason";
5025 <
5026 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5027 <    }
5028 <  }
5029 <  /* ignore it for now.. but we really should make a warning if
5030 <   * its an erroneous name --fl_ */
4789 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4790   }
4791 + #line 4792 "conf_parser.c" /* yacc.c:1646  */
4792      break;
4793  
4794 <  case 295:
4795 < /* Line 1787 of yacc.c  */
5036 < #line 1796 "conf_parser.y"
4794 >  case 332:
4795 > #line 1830 "conf_parser.y" /* yacc.c:1646  */
4796      {
4797    if (conf_parser_ctx.pass == 2)
4798 <  {
5040 <    char def_reason[] = "No reason";
5041 <
5042 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5043 <  }
4798 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4799   }
4800 + #line 4801 "conf_parser.c" /* yacc.c:1646  */
4801      break;
4802  
4803 <  case 301:
4804 < /* Line 1787 of yacc.c  */
5049 < #line 1814 "conf_parser.y"
4803 >  case 338:
4804 > #line 1845 "conf_parser.y" /* yacc.c:1646  */
4805      {
4806 <  if (conf_parser_ctx.pass == 2)
4806 >  if (conf_parser_ctx.pass != 2)
4807 >    break;
4808 >
4809 >  if (valid_servname(yylval.string))
4810    {
4811 <    if (valid_servname(yylval.string))
4812 <    {
5055 <      yy_conf = make_conf_item(SERVICE_TYPE);
5056 <      DupString(yy_conf->name, yylval.string);
5057 <    }
4811 >    struct MaskItem *conf = conf_make(CONF_SERVICE);
4812 >    conf->name = xstrdup(yylval.string);
4813    }
4814   }
4815 + #line 4816 "conf_parser.c" /* yacc.c:1646  */
4816      break;
4817  
4818 <  case 302:
4819 < /* Line 1787 of yacc.c  */
5064 < #line 1829 "conf_parser.y"
4818 >  case 339:
4819 > #line 1860 "conf_parser.y" /* yacc.c:1646  */
4820      {
4821 <  if (conf_parser_ctx.pass == 2)
4822 <  {
4823 <    yy_conf = make_conf_item(ULINE_TYPE);
4824 <    yy_match_item = map_to_conf(yy_conf);
4825 <    yy_match_item->action = SHARED_ALL;
4826 <  }
4821 >  if (conf_parser_ctx.pass != 2)
4822 >    break;
4823 >
4824 >  reset_block_state();
4825 >
4826 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4827 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
4828 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4829 >  block_state.flags.value = SHARED_ALL;
4830   }
4831 + #line 4832 "conf_parser.c" /* yacc.c:1646  */
4832      break;
4833  
4834 <  case 303:
4835 < /* Line 1787 of yacc.c  */
5077 < #line 1837 "conf_parser.y"
4834 >  case 340:
4835 > #line 1871 "conf_parser.y" /* yacc.c:1646  */
4836      {
4837 <  if (conf_parser_ctx.pass == 2)
4838 <  {
4839 <    yy_conf = NULL;
4840 <  }
4837 >  struct MaskItem *conf = NULL;
4838 >
4839 >  if (conf_parser_ctx.pass != 2)
4840 >    break;
4841 >
4842 >  conf = conf_make(CONF_ULINE);
4843 >  conf->flags = block_state.flags.value;
4844 >  conf->name = xstrdup(block_state.name.buf);
4845 >  conf->user = xstrdup(block_state.user.buf);
4846 >  conf->host = xstrdup(block_state.host.buf);
4847   }
4848 + #line 4849 "conf_parser.c" /* yacc.c:1646  */
4849      break;
4850  
4851 <  case 310:
4852 < /* Line 1787 of yacc.c  */
5088 < #line 1848 "conf_parser.y"
4851 >  case 347:
4852 > #line 1888 "conf_parser.y" /* yacc.c:1646  */
4853      {
4854    if (conf_parser_ctx.pass == 2)
4855 <  {
5092 <    MyFree(yy_conf->name);
5093 <    DupString(yy_conf->name, yylval.string);
5094 <  }
4855 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4856   }
4857 + #line 4858 "conf_parser.c" /* yacc.c:1646  */
4858      break;
4859  
4860 <  case 311:
4861 < /* Line 1787 of yacc.c  */
5100 < #line 1857 "conf_parser.y"
4860 >  case 348:
4861 > #line 1894 "conf_parser.y" /* yacc.c:1646  */
4862      {
4863    if (conf_parser_ctx.pass == 2)
4864    {
# Line 5105 | Line 4866 | yyreduce:
4866  
4867      nuh.nuhmask  = yylval.string;
4868      nuh.nickptr  = NULL;
4869 <    nuh.userptr  = userbuf;
4870 <    nuh.hostptr  = hostbuf;
4869 >    nuh.userptr  = block_state.user.buf;
4870 >    nuh.hostptr  = block_state.host.buf;
4871  
4872      nuh.nicksize = 0;
4873 <    nuh.usersize = sizeof(userbuf);
4874 <    nuh.hostsize = sizeof(hostbuf);
4873 >    nuh.usersize = sizeof(block_state.user.buf);
4874 >    nuh.hostsize = sizeof(block_state.host.buf);
4875  
4876      split_nuh(&nuh);
5116
5117    DupString(yy_match_item->user, userbuf);
5118    DupString(yy_match_item->host, hostbuf);
4877    }
4878   }
4879 + #line 4880 "conf_parser.c" /* yacc.c:1646  */
4880      break;
4881  
4882 <  case 312:
4883 < /* Line 1787 of yacc.c  */
5125 < #line 1879 "conf_parser.y"
4882 >  case 349:
4883 > #line 1913 "conf_parser.y" /* yacc.c:1646  */
4884      {
4885    if (conf_parser_ctx.pass == 2)
4886 <    yy_match_item->action = 0;
4886 >    block_state.flags.value = 0;
4887   }
4888 + #line 4889 "conf_parser.c" /* yacc.c:1646  */
4889      break;
4890  
4891 <  case 316:
4892 < /* Line 1787 of yacc.c  */
5134 < #line 1886 "conf_parser.y"
4891 >  case 353:
4892 > #line 1920 "conf_parser.y" /* yacc.c:1646  */
4893      {
4894    if (conf_parser_ctx.pass == 2)
4895 <    yy_match_item->action |= SHARED_KLINE;
4895 >    block_state.flags.value |= SHARED_KLINE;
4896   }
4897 + #line 4898 "conf_parser.c" /* yacc.c:1646  */
4898      break;
4899  
4900 <  case 317:
4901 < /* Line 1787 of yacc.c  */
5143 < #line 1890 "conf_parser.y"
4900 >  case 354:
4901 > #line 1924 "conf_parser.y" /* yacc.c:1646  */
4902      {
4903    if (conf_parser_ctx.pass == 2)
4904 <    yy_match_item->action |= SHARED_UNKLINE;
4904 >    block_state.flags.value |= SHARED_UNKLINE;
4905   }
4906 + #line 4907 "conf_parser.c" /* yacc.c:1646  */
4907      break;
4908  
4909 <  case 318:
4910 < /* Line 1787 of yacc.c  */
5152 < #line 1894 "conf_parser.y"
4909 >  case 355:
4910 > #line 1928 "conf_parser.y" /* yacc.c:1646  */
4911      {
4912    if (conf_parser_ctx.pass == 2)
4913 <    yy_match_item->action |= SHARED_DLINE;
4913 >    block_state.flags.value |= SHARED_DLINE;
4914   }
4915 + #line 4916 "conf_parser.c" /* yacc.c:1646  */
4916      break;
4917  
4918 <  case 319:
4919 < /* Line 1787 of yacc.c  */
5161 < #line 1898 "conf_parser.y"
4918 >  case 356:
4919 > #line 1932 "conf_parser.y" /* yacc.c:1646  */
4920      {
4921    if (conf_parser_ctx.pass == 2)
4922 <    yy_match_item->action |= SHARED_UNDLINE;
4922 >    block_state.flags.value |= SHARED_UNDLINE;
4923   }
4924 + #line 4925 "conf_parser.c" /* yacc.c:1646  */
4925      break;
4926  
4927 <  case 320:
4928 < /* Line 1787 of yacc.c  */
5170 < #line 1902 "conf_parser.y"
4927 >  case 357:
4928 > #line 1936 "conf_parser.y" /* yacc.c:1646  */
4929      {
4930    if (conf_parser_ctx.pass == 2)
4931 <    yy_match_item->action |= SHARED_XLINE;
4931 >    block_state.flags.value |= SHARED_XLINE;
4932   }
4933 + #line 4934 "conf_parser.c" /* yacc.c:1646  */
4934      break;
4935  
4936 <  case 321:
4937 < /* Line 1787 of yacc.c  */
5179 < #line 1906 "conf_parser.y"
4936 >  case 358:
4937 > #line 1940 "conf_parser.y" /* yacc.c:1646  */
4938      {
4939    if (conf_parser_ctx.pass == 2)
4940 <    yy_match_item->action |= SHARED_UNXLINE;
4940 >    block_state.flags.value |= SHARED_UNXLINE;
4941   }
4942 + #line 4943 "conf_parser.c" /* yacc.c:1646  */
4943      break;
4944  
4945 <  case 322:
4946 < /* Line 1787 of yacc.c  */
5188 < #line 1910 "conf_parser.y"
4945 >  case 359:
4946 > #line 1944 "conf_parser.y" /* yacc.c:1646  */
4947      {
4948    if (conf_parser_ctx.pass == 2)
4949 <    yy_match_item->action |= SHARED_RESV;
4949 >    block_state.flags.value |= SHARED_RESV;
4950   }
4951 + #line 4952 "conf_parser.c" /* yacc.c:1646  */
4952      break;
4953  
4954 <  case 323:
4955 < /* Line 1787 of yacc.c  */
5197 < #line 1914 "conf_parser.y"
4954 >  case 360:
4955 > #line 1948 "conf_parser.y" /* yacc.c:1646  */
4956      {
4957    if (conf_parser_ctx.pass == 2)
4958 <    yy_match_item->action |= SHARED_UNRESV;
4958 >    block_state.flags.value |= SHARED_UNRESV;
4959   }
4960 + #line 4961 "conf_parser.c" /* yacc.c:1646  */
4961      break;
4962  
4963 <  case 324:
4964 < /* Line 1787 of yacc.c  */
5206 < #line 1918 "conf_parser.y"
4963 >  case 361:
4964 > #line 1952 "conf_parser.y" /* yacc.c:1646  */
4965      {
4966    if (conf_parser_ctx.pass == 2)
4967 <    yy_match_item->action |= SHARED_LOCOPS;
4967 >    block_state.flags.value |= SHARED_LOCOPS;
4968   }
4969 + #line 4970 "conf_parser.c" /* yacc.c:1646  */
4970      break;
4971  
4972 <  case 325:
4973 < /* Line 1787 of yacc.c  */
5215 < #line 1922 "conf_parser.y"
4972 >  case 362:
4973 > #line 1956 "conf_parser.y" /* yacc.c:1646  */
4974      {
4975    if (conf_parser_ctx.pass == 2)
4976 <    yy_match_item->action = SHARED_ALL;
4976 >    block_state.flags.value = SHARED_ALL;
4977   }
4978 + #line 4979 "conf_parser.c" /* yacc.c:1646  */
4979      break;
4980  
4981 <  case 326:
4982 < /* Line 1787 of yacc.c  */
5224 < #line 1931 "conf_parser.y"
4981 >  case 363:
4982 > #line 1965 "conf_parser.y" /* yacc.c:1646  */
4983      {
4984 <  if (conf_parser_ctx.pass == 2)
4985 <  {
4986 <    yy_conf = make_conf_item(CLUSTER_TYPE);
4987 <    yy_conf->flags = SHARED_ALL;
4988 <  }
4984 >  if (conf_parser_ctx.pass != 2)
4985 >    break;
4986 >
4987 >  reset_block_state();
4988 >
4989 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4990 >  block_state.flags.value = SHARED_ALL;
4991   }
4992 + #line 4993 "conf_parser.c" /* yacc.c:1646  */
4993      break;
4994  
4995 <  case 327:
4996 < /* Line 1787 of yacc.c  */
5236 < #line 1938 "conf_parser.y"
4995 >  case 364:
4996 > #line 1974 "conf_parser.y" /* yacc.c:1646  */
4997      {
4998 <  if (conf_parser_ctx.pass == 2)
4999 <  {
5000 <    if (yy_conf->name == NULL)
5001 <      DupString(yy_conf->name, "*");
5002 <    yy_conf = NULL;
5003 <  }
4998 >  struct MaskItem *conf = NULL;
4999 >
5000 >  if (conf_parser_ctx.pass != 2)
5001 >    break;
5002 >
5003 >  conf = conf_make(CONF_CLUSTER);
5004 >  conf->flags = block_state.flags.value;
5005 >  conf->name = xstrdup(block_state.name.buf);
5006   }
5007 + #line 5008 "conf_parser.c" /* yacc.c:1646  */
5008      break;
5009  
5010 <  case 333:
5011 < /* Line 1787 of yacc.c  */
5249 < #line 1951 "conf_parser.y"
5010 >  case 370:
5011 > #line 1989 "conf_parser.y" /* yacc.c:1646  */
5012      {
5013    if (conf_parser_ctx.pass == 2)
5014 <    DupString(yy_conf->name, yylval.string);
5014 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5015   }
5016 + #line 5017 "conf_parser.c" /* yacc.c:1646  */
5017      break;
5018  
5019 <  case 334:
5020 < /* Line 1787 of yacc.c  */
5258 < #line 1957 "conf_parser.y"
5019 >  case 371:
5020 > #line 1995 "conf_parser.y" /* yacc.c:1646  */
5021      {
5022    if (conf_parser_ctx.pass == 2)
5023 <    yy_conf->flags = 0;
5023 >    block_state.flags.value = 0;
5024   }
5025 + #line 5026 "conf_parser.c" /* yacc.c:1646  */
5026      break;
5027  
5028 <  case 338:
5029 < /* Line 1787 of yacc.c  */
5267 < #line 1964 "conf_parser.y"
5028 >  case 375:
5029 > #line 2002 "conf_parser.y" /* yacc.c:1646  */
5030      {
5031    if (conf_parser_ctx.pass == 2)
5032 <    yy_conf->flags |= SHARED_KLINE;
5032 >    block_state.flags.value |= SHARED_KLINE;
5033   }
5034 + #line 5035 "conf_parser.c" /* yacc.c:1646  */
5035      break;
5036  
5037 <  case 339:
5038 < /* Line 1787 of yacc.c  */
5276 < #line 1968 "conf_parser.y"
5037 >  case 376:
5038 > #line 2006 "conf_parser.y" /* yacc.c:1646  */
5039      {
5040    if (conf_parser_ctx.pass == 2)
5041 <    yy_conf->flags |= SHARED_UNKLINE;
5041 >    block_state.flags.value |= SHARED_UNKLINE;
5042   }
5043 + #line 5044 "conf_parser.c" /* yacc.c:1646  */
5044      break;
5045  
5046 <  case 340:
5047 < /* Line 1787 of yacc.c  */
5285 < #line 1972 "conf_parser.y"
5046 >  case 377:
5047 > #line 2010 "conf_parser.y" /* yacc.c:1646  */
5048      {
5049    if (conf_parser_ctx.pass == 2)
5050 <    yy_conf->flags |= SHARED_DLINE;
5050 >    block_state.flags.value |= SHARED_DLINE;
5051   }
5052 + #line 5053 "conf_parser.c" /* yacc.c:1646  */
5053      break;
5054  
5055 <  case 341:
5056 < /* Line 1787 of yacc.c  */
5294 < #line 1976 "conf_parser.y"
5055 >  case 378:
5056 > #line 2014 "conf_parser.y" /* yacc.c:1646  */
5057      {
5058    if (conf_parser_ctx.pass == 2)
5059 <    yy_conf->flags |= SHARED_UNDLINE;
5059 >    block_state.flags.value |= SHARED_UNDLINE;
5060   }
5061 + #line 5062 "conf_parser.c" /* yacc.c:1646  */
5062      break;
5063  
5064 <  case 342:
5065 < /* Line 1787 of yacc.c  */
5303 < #line 1980 "conf_parser.y"
5064 >  case 379:
5065 > #line 2018 "conf_parser.y" /* yacc.c:1646  */
5066      {
5067    if (conf_parser_ctx.pass == 2)
5068 <    yy_conf->flags |= SHARED_XLINE;
5068 >    block_state.flags.value |= SHARED_XLINE;
5069   }
5070 + #line 5071 "conf_parser.c" /* yacc.c:1646  */
5071      break;
5072  
5073 <  case 343:
5074 < /* Line 1787 of yacc.c  */
5312 < #line 1984 "conf_parser.y"
5073 >  case 380:
5074 > #line 2022 "conf_parser.y" /* yacc.c:1646  */
5075      {
5076    if (conf_parser_ctx.pass == 2)
5077 <    yy_conf->flags |= SHARED_UNXLINE;
5077 >    block_state.flags.value |= SHARED_UNXLINE;
5078   }
5079 + #line 5080 "conf_parser.c" /* yacc.c:1646  */
5080      break;
5081  
5082 <  case 344:
5083 < /* Line 1787 of yacc.c  */
5321 < #line 1988 "conf_parser.y"
5082 >  case 381:
5083 > #line 2026 "conf_parser.y" /* yacc.c:1646  */
5084      {
5085    if (conf_parser_ctx.pass == 2)
5086 <    yy_conf->flags |= SHARED_RESV;
5086 >    block_state.flags.value |= SHARED_RESV;
5087   }
5088 + #line 5089 "conf_parser.c" /* yacc.c:1646  */
5089      break;
5090  
5091 <  case 345:
5092 < /* Line 1787 of yacc.c  */
5330 < #line 1992 "conf_parser.y"
5091 >  case 382:
5092 > #line 2030 "conf_parser.y" /* yacc.c:1646  */
5093      {
5094    if (conf_parser_ctx.pass == 2)
5095 <    yy_conf->flags |= SHARED_UNRESV;
5095 >    block_state.flags.value |= SHARED_UNRESV;
5096   }
5097 + #line 5098 "conf_parser.c" /* yacc.c:1646  */
5098      break;
5099  
5100 <  case 346:
5101 < /* Line 1787 of yacc.c  */
5339 < #line 1996 "conf_parser.y"
5100 >  case 383:
5101 > #line 2034 "conf_parser.y" /* yacc.c:1646  */
5102      {
5103    if (conf_parser_ctx.pass == 2)
5104 <    yy_conf->flags |= SHARED_LOCOPS;
5104 >    block_state.flags.value |= SHARED_LOCOPS;
5105   }
5106 + #line 5107 "conf_parser.c" /* yacc.c:1646  */
5107      break;
5108  
5109 <  case 347:
5110 < /* Line 1787 of yacc.c  */
5348 < #line 2000 "conf_parser.y"
5109 >  case 384:
5110 > #line 2038 "conf_parser.y" /* yacc.c:1646  */
5111      {
5112    if (conf_parser_ctx.pass == 2)
5113 <    yy_conf->flags = SHARED_ALL;
5113 >    block_state.flags.value = SHARED_ALL;
5114   }
5115 + #line 5116 "conf_parser.c" /* yacc.c:1646  */
5116      break;
5117  
5118 <  case 348:
5119 < /* Line 1787 of yacc.c  */
5357 < #line 2009 "conf_parser.y"
5118 >  case 385:
5119 > #line 2047 "conf_parser.y" /* yacc.c:1646  */
5120      {
5359  if (conf_parser_ctx.pass == 2)
5360  {
5361    yy_conf = make_conf_item(SERVER_TYPE);
5362    yy_aconf = map_to_conf(yy_conf);
5121  
5122 <    /* defaults */
5123 <    yy_aconf->port = PORTNUM;
5124 <  }
5125 <  else
5126 <  {
5127 <    MyFree(class_name);
5370 <    class_name = NULL;
5371 <  }
5122 >  if (conf_parser_ctx.pass != 2)
5123 >    break;
5124 >
5125 >  reset_block_state();
5126 >  block_state.aftype.value = AF_INET;
5127 >  block_state.port.value = PORTNUM;
5128   }
5129 + #line 5130 "conf_parser.c" /* yacc.c:1646  */
5130      break;
5131  
5132 <  case 349:
5133 < /* Line 1787 of yacc.c  */
5377 < #line 2024 "conf_parser.y"
5378 <    {
5379 <  if (conf_parser_ctx.pass == 2)
5380 <  {
5381 <    if (yy_aconf->host && yy_aconf->passwd && yy_aconf->spasswd)
5382 <    {
5383 <      if (conf_add_server(yy_conf, class_name) == -1)
5384 <        delete_conf_item(yy_conf);
5385 <    }
5386 <    else
5132 >  case 386:
5133 > #line 2056 "conf_parser.y" /* yacc.c:1646  */
5134      {
5135 <      if (yy_conf->name != NULL)
5136 <      {
5390 <        if (yy_aconf->host == NULL)
5391 <          yyerror("Ignoring connect block -- missing host");
5392 <        else if (!yy_aconf->passwd || !yy_aconf->spasswd)
5393 <          yyerror("Ignoring connect block -- missing password");
5394 <      }
5135 >  struct MaskItem *conf = NULL;
5136 >  struct addrinfo hints, *res;
5137  
5138 <      /* XXX
5139 <       * This fixes a try_connections() core (caused by invalid class_ptr
5398 <       * pointers) reported by metalrock. That's an ugly fix, but there
5399 <       * is currently no better way. The entire config subsystem needs an
5400 <       * rewrite ASAP. make_conf_item() shouldn't really add things onto
5401 <       * a doubly linked list immediately without any sanity checks!  -Michael
5402 <       */
5403 <      delete_conf_item(yy_conf);
5404 <    }
5138 >  if (conf_parser_ctx.pass != 2)
5139 >    break;
5140  
5141 <    MyFree(class_name);
5142 <    class_name = NULL;
5408 <    yy_conf = NULL;
5409 <    yy_aconf = NULL;
5410 <  }
5411 < }
5141 >  if (!block_state.name.buf[0] ||
5142 >      !block_state.host.buf[0])
5143      break;
5144  
5145 <  case 366:
5146 < /* Line 1787 of yacc.c  */
5416 < #line 2068 "conf_parser.y"
5417 <    {
5418 <  if (conf_parser_ctx.pass == 2)
5419 <  {
5420 <    MyFree(yy_conf->name);
5421 <    DupString(yy_conf->name, yylval.string);
5422 <  }
5423 < }
5145 >  if (!block_state.rpass.buf[0] ||
5146 >      !block_state.spass.buf[0])
5147      break;
5148  
5149 <  case 367:
5150 < /* Line 1787 of yacc.c  */
5428 < #line 2077 "conf_parser.y"
5429 <    {
5430 <  if (conf_parser_ctx.pass == 2)
5431 <  {
5432 <    MyFree(yy_aconf->host);
5433 <    DupString(yy_aconf->host, yylval.string);
5434 <  }
5435 < }
5149 >  if (has_wildcards(block_state.name.buf) ||
5150 >      has_wildcards(block_state.host.buf))
5151      break;
5152  
5153 <  case 368:
5154 < /* Line 1787 of yacc.c  */
5155 < #line 2086 "conf_parser.y"
5156 <    {
5157 <  if (conf_parser_ctx.pass == 2)
5158 <  {
5159 <    struct addrinfo hints, *res;
5153 >  conf = conf_make(CONF_SERVER);
5154 >  conf->port = block_state.port.value;
5155 >  conf->flags = block_state.flags.value;
5156 >  conf->aftype = block_state.aftype.value;
5157 >  conf->host = xstrdup(block_state.host.buf);
5158 >  conf->name = xstrdup(block_state.name.buf);
5159 >  conf->passwd = xstrdup(block_state.rpass.buf);
5160 >  conf->spasswd = xstrdup(block_state.spass.buf);
5161  
5162 +  if (block_state.cert.buf[0])
5163 +    conf->certfp = xstrdup(block_state.cert.buf);
5164 +
5165 +  if (block_state.ciph.buf[0])
5166 +    conf->cipher_list = xstrdup(block_state.ciph.buf);
5167 +
5168 +  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5169 +  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5170 +
5171 +  if (block_state.bind.buf[0])
5172 +  {
5173      memset(&hints, 0, sizeof(hints));
5174  
5175      hints.ai_family   = AF_UNSPEC;
5176      hints.ai_socktype = SOCK_STREAM;
5177      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5178  
5179 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
5180 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
5179 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5180 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5181      else
5182      {
5183        assert(res != NULL);
5184  
5185 <      memcpy(&yy_aconf->bind, res->ai_addr, res->ai_addrlen);
5186 <      yy_aconf->bind.ss.ss_family = res->ai_family;
5187 <      yy_aconf->bind.ss_len = res->ai_addrlen;
5185 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5186 >      conf->bind.ss.ss_family = res->ai_family;
5187 >      conf->bind.ss_len = res->ai_addrlen;
5188        freeaddrinfo(res);
5189      }
5190    }
5191 +
5192 +  conf_add_class_to_conf(conf, block_state.class.buf);
5193 +  lookup_confhost(conf);
5194   }
5195 + #line 5196 "conf_parser.c" /* yacc.c:1646  */
5196      break;
5197  
5198 <  case 369:
5199 < /* Line 1787 of yacc.c  */
5469 < #line 2112 "conf_parser.y"
5198 >  case 404:
5199 > #line 2128 "conf_parser.y" /* yacc.c:1646  */
5200      {
5201    if (conf_parser_ctx.pass == 2)
5202 <  {
5203 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5204 <      yyerror("Server passwords cannot begin with a colon");
5205 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5476 <      yyerror("Server passwords cannot contain spaces");
5477 <    else {
5478 <      if (yy_aconf->spasswd != NULL)
5479 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
5202 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5203 > }
5204 > #line 5205 "conf_parser.c" /* yacc.c:1646  */
5205 >    break;
5206  
5207 <      MyFree(yy_aconf->spasswd);
5208 <      DupString(yy_aconf->spasswd, yylval.string);
5209 <    }
5210 <  }
5207 >  case 405:
5208 > #line 2134 "conf_parser.y" /* yacc.c:1646  */
5209 >    {
5210 >  if (conf_parser_ctx.pass == 2)
5211 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5212   }
5213 + #line 5214 "conf_parser.c" /* yacc.c:1646  */
5214      break;
5215  
5216 <  case 370:
5217 < /* Line 1787 of yacc.c  */
5490 < #line 2130 "conf_parser.y"
5216 >  case 406:
5217 > #line 2140 "conf_parser.y" /* yacc.c:1646  */
5218      {
5219    if (conf_parser_ctx.pass == 2)
5220 <  {
5221 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5222 <      yyerror("Server passwords cannot begin with a colon");
5223 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5497 <      yyerror("Server passwords cannot contain spaces");
5498 <    else {
5499 <      if (yy_aconf->passwd != NULL)
5500 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5220 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5221 > }
5222 > #line 5223 "conf_parser.c" /* yacc.c:1646  */
5223 >    break;
5224  
5225 <      MyFree(yy_aconf->passwd);
5226 <      DupString(yy_aconf->passwd, yylval.string);
5227 <    }
5228 <  }
5225 >  case 407:
5226 > #line 2146 "conf_parser.y" /* yacc.c:1646  */
5227 >    {
5228 >  if (conf_parser_ctx.pass != 2)
5229 >    break;
5230 >
5231 >  if ((yyvsp[-1].string)[0] == ':')
5232 >    conf_error_report("Server passwords cannot begin with a colon");
5233 >  else if (strchr((yyvsp[-1].string), ' ') != NULL)
5234 >    conf_error_report("Server passwords cannot contain spaces");
5235 >  else
5236 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5237   }
5238 + #line 5239 "conf_parser.c" /* yacc.c:1646  */
5239      break;
5240  
5241 <  case 371:
5242 < /* Line 1787 of yacc.c  */
5243 < #line 2148 "conf_parser.y"
5241 >  case 408:
5242 > #line 2159 "conf_parser.y" /* yacc.c:1646  */
5243 >    {
5244 >  if (conf_parser_ctx.pass != 2)
5245 >    break;
5246 >
5247 >  if ((yyvsp[-1].string)[0] == ':')
5248 >    conf_error_report("Server passwords cannot begin with a colon");
5249 >  else if (strchr((yyvsp[-1].string), ' ') != NULL)
5250 >    conf_error_report("Server passwords cannot contain spaces");
5251 >  else
5252 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5253 > }
5254 > #line 5255 "conf_parser.c" /* yacc.c:1646  */
5255 >    break;
5256 >
5257 >  case 409:
5258 > #line 2172 "conf_parser.y" /* yacc.c:1646  */
5259 >    {
5260 >  if (conf_parser_ctx.pass == 2)
5261 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5262 > }
5263 > #line 5264 "conf_parser.c" /* yacc.c:1646  */
5264 >    break;
5265 >
5266 >  case 410:
5267 > #line 2178 "conf_parser.y" /* yacc.c:1646  */
5268      {
5269    if (conf_parser_ctx.pass == 2)
5270 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5270 >    block_state.port.value = (yyvsp[-1].number);
5271   }
5272 + #line 5273 "conf_parser.c" /* yacc.c:1646  */
5273      break;
5274  
5275 <  case 372:
5276 < /* Line 1787 of yacc.c  */
5520 < #line 2154 "conf_parser.y"
5275 >  case 411:
5276 > #line 2184 "conf_parser.y" /* yacc.c:1646  */
5277      {
5278    if (conf_parser_ctx.pass == 2)
5279 <    yy_aconf->aftype = AF_INET;
5279 >    block_state.aftype.value = AF_INET;
5280   }
5281 + #line 5282 "conf_parser.c" /* yacc.c:1646  */
5282      break;
5283  
5284 <  case 373:
5285 < /* Line 1787 of yacc.c  */
5529 < #line 2158 "conf_parser.y"
5284 >  case 412:
5285 > #line 2188 "conf_parser.y" /* yacc.c:1646  */
5286      {
5287   #ifdef IPV6
5288    if (conf_parser_ctx.pass == 2)
5289 <    yy_aconf->aftype = AF_INET6;
5289 >    block_state.aftype.value = AF_INET6;
5290   #endif
5291   }
5292 + #line 5293 "conf_parser.c" /* yacc.c:1646  */
5293      break;
5294  
5295 <  case 374:
5296 < /* Line 1787 of yacc.c  */
5540 < #line 2166 "conf_parser.y"
5295 >  case 413:
5296 > #line 2196 "conf_parser.y" /* yacc.c:1646  */
5297      {
5298 +  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5299   }
5300 + #line 5301 "conf_parser.c" /* yacc.c:1646  */
5301      break;
5302  
5303 <  case 378:
5304 < /* Line 1787 of yacc.c  */
5547 < #line 2171 "conf_parser.y"
5303 >  case 417:
5304 > #line 2202 "conf_parser.y" /* yacc.c:1646  */
5305      {
5306    if (conf_parser_ctx.pass == 2)
5307 <    SetConfAllowAutoConn(yy_aconf);
5307 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5308   }
5309 + #line 5310 "conf_parser.c" /* yacc.c:1646  */
5310      break;
5311  
5312 <  case 379:
5313 < /* Line 1787 of yacc.c  */
5556 < #line 2175 "conf_parser.y"
5312 >  case 418:
5313 > #line 2206 "conf_parser.y" /* yacc.c:1646  */
5314      {
5315    if (conf_parser_ctx.pass == 2)
5316 <    SetConfSSL(yy_aconf);
5316 >    block_state.flags.value |= CONF_FLAGS_SSL;
5317   }
5318 + #line 5319 "conf_parser.c" /* yacc.c:1646  */
5319      break;
5320  
5321 <  case 380:
5322 < /* Line 1787 of yacc.c  */
5565 < #line 2181 "conf_parser.y"
5321 >  case 419:
5322 > #line 2212 "conf_parser.y" /* yacc.c:1646  */
5323      {
5324    if (conf_parser_ctx.pass == 2)
5325    {
5326      if (yylval.number)
5327 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
5327 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5328      else
5329 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
5329 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5330    }
5331   }
5332 + #line 5333 "conf_parser.c" /* yacc.c:1646  */
5333      break;
5334  
5335 <  case 381:
5336 < /* Line 1787 of yacc.c  */
5579 < #line 2192 "conf_parser.y"
5335 >  case 420:
5336 > #line 2223 "conf_parser.y" /* yacc.c:1646  */
5337      {
5338    if (conf_parser_ctx.pass == 2)
5339 <  {
5583 <    char *mask;
5584 <
5585 <    DupString(mask, yylval.string);
5586 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->hub_list);
5587 <  }
5339 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5340   }
5341 + #line 5342 "conf_parser.c" /* yacc.c:1646  */
5342      break;
5343  
5344 <  case 382:
5345 < /* Line 1787 of yacc.c  */
5593 < #line 2203 "conf_parser.y"
5344 >  case 421:
5345 > #line 2229 "conf_parser.y" /* yacc.c:1646  */
5346      {
5347    if (conf_parser_ctx.pass == 2)
5348 <  {
5597 <    char *mask;
5598 <
5599 <    DupString(mask, yylval.string);
5600 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->leaf_list);
5601 <  }
5348 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5349   }
5350 + #line 5351 "conf_parser.c" /* yacc.c:1646  */
5351      break;
5352  
5353 <  case 383:
5354 < /* Line 1787 of yacc.c  */
5607 < #line 2214 "conf_parser.y"
5353 >  case 422:
5354 > #line 2235 "conf_parser.y" /* yacc.c:1646  */
5355      {
5356    if (conf_parser_ctx.pass == 2)
5357 <  {
5611 <    MyFree(class_name);
5612 <    DupString(class_name, yylval.string);
5613 <  }
5357 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5358   }
5359 + #line 5360 "conf_parser.c" /* yacc.c:1646  */
5360      break;
5361  
5362 <  case 384:
5363 < /* Line 1787 of yacc.c  */
5619 < #line 2223 "conf_parser.y"
5362 >  case 423:
5363 > #line 2241 "conf_parser.y" /* yacc.c:1646  */
5364      {
5365   #ifdef HAVE_LIBCRYPTO
5366    if (conf_parser_ctx.pass == 2)
5367 <  {
5624 <    MyFree(yy_aconf->cipher_list);
5625 <    DupString(yy_aconf->cipher_list, yylval.string);
5626 <  }
5367 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5368   #else
5369    if (conf_parser_ctx.pass == 2)
5370 <    yyerror("Ignoring connect::ciphers -- no OpenSSL support");
5370 >    conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5371   #endif
5372   }
5373 + #line 5374 "conf_parser.c" /* yacc.c:1646  */
5374      break;
5375  
5376 <  case 385:
5377 < /* Line 1787 of yacc.c  */
5636 < #line 2241 "conf_parser.y"
5376 >  case 424:
5377 > #line 2256 "conf_parser.y" /* yacc.c:1646  */
5378      {
5379    if (conf_parser_ctx.pass == 2)
5380 <  {
5640 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
5641 <    regex_ban = 0;
5642 <  }
5380 >    reset_block_state();
5381   }
5382 + #line 5383 "conf_parser.c" /* yacc.c:1646  */
5383      break;
5384  
5385 <  case 386:
5386 < /* Line 1787 of yacc.c  */
5648 < #line 2248 "conf_parser.y"
5385 >  case 425:
5386 > #line 2260 "conf_parser.y" /* yacc.c:1646  */
5387      {
5388 <  if (conf_parser_ctx.pass == 2)
5651 <  {
5652 <    if (userbuf[0] && hostbuf[0])
5653 <    {
5654 <      if (regex_ban)
5655 <      {
5656 < #ifdef HAVE_LIBPCRE
5657 <        void *exp_user = NULL;
5658 <        void *exp_host = NULL;
5659 <        const char *errptr = NULL;
5388 >  struct MaskItem *conf = NULL;
5389  
5390 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
5662 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
5663 <        {
5664 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
5665 <               errptr);
5666 <          break;
5667 <        }
5668 <
5669 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
5670 <        yy_aconf->regexuser = exp_user;
5671 <        yy_aconf->regexhost = exp_host;
5672 <
5673 <        DupString(yy_aconf->user, userbuf);
5674 <        DupString(yy_aconf->host, hostbuf);
5675 <
5676 <        if (reasonbuf[0])
5677 <          DupString(yy_aconf->reason, reasonbuf);
5678 <        else
5679 <          DupString(yy_aconf->reason, "No reason");
5680 < #else
5681 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
5682 <        break;
5683 < #endif
5684 <      }
5685 <      else
5686 <      {
5687 <        find_and_delete_temporary(userbuf, hostbuf, CONF_KLINE);
5688 <
5689 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
5690 <
5691 <        DupString(yy_aconf->user, userbuf);
5692 <        DupString(yy_aconf->host, hostbuf);
5693 <
5694 <        if (reasonbuf[0])
5695 <          DupString(yy_aconf->reason, reasonbuf);
5696 <        else
5697 <          DupString(yy_aconf->reason, "No reason");
5698 <        add_conf_by_address(CONF_KLINE, yy_aconf);
5699 <      }
5700 <    }
5701 <
5702 <    yy_aconf = NULL;
5703 <  }
5704 < }
5390 >  if (conf_parser_ctx.pass != 2)
5391      break;
5392  
5393 <  case 387:
5394 < /* Line 1787 of yacc.c  */
5709 < #line 2306 "conf_parser.y"
5710 <    {
5711 < }
5393 >  if (!block_state.user.buf[0] ||
5394 >      !block_state.host.buf[0])
5395      break;
5396  
5397 <  case 391:
5398 < /* Line 1787 of yacc.c  */
5399 < #line 2311 "conf_parser.y"
5400 <    {
5401 <  if (conf_parser_ctx.pass == 2)
5402 <    regex_ban = 1;
5397 >  conf = conf_make(CONF_KLINE);
5398 >  conf->user = xstrdup(block_state.user.buf);
5399 >  conf->host = xstrdup(block_state.host.buf);
5400 >
5401 >  if (block_state.rpass.buf[0])
5402 >    conf->reason = xstrdup(block_state.rpass.buf);
5403 >  else
5404 >    conf->reason = xstrdup(CONF_NOREASON);
5405 >  add_conf_by_address(CONF_KLINE, conf);
5406   }
5407 + #line 5408 "conf_parser.c" /* yacc.c:1646  */
5408      break;
5409  
5410 <  case 398:
5411 < /* Line 1787 of yacc.c  */
5725 < #line 2320 "conf_parser.y"
5410 >  case 431:
5411 > #line 2285 "conf_parser.y" /* yacc.c:1646  */
5412      {
5413 +
5414    if (conf_parser_ctx.pass == 2)
5415    {
5416      struct split_nuh_item nuh;
5417  
5418      nuh.nuhmask  = yylval.string;
5419      nuh.nickptr  = NULL;
5420 <    nuh.userptr  = userbuf;
5421 <    nuh.hostptr  = hostbuf;
5420 >    nuh.userptr  = block_state.user.buf;
5421 >    nuh.hostptr  = block_state.host.buf;
5422  
5423      nuh.nicksize = 0;
5424 <    nuh.usersize = sizeof(userbuf);
5425 <    nuh.hostsize = sizeof(hostbuf);
5424 >    nuh.usersize = sizeof(block_state.user.buf);
5425 >    nuh.hostsize = sizeof(block_state.host.buf);
5426  
5427      split_nuh(&nuh);
5428    }
5429   }
5430 + #line 5431 "conf_parser.c" /* yacc.c:1646  */
5431      break;
5432  
5433 <  case 399:
5434 < /* Line 1787 of yacc.c  */
5747 < #line 2339 "conf_parser.y"
5433 >  case 432:
5434 > #line 2305 "conf_parser.y" /* yacc.c:1646  */
5435      {
5436    if (conf_parser_ctx.pass == 2)
5437 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5437 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5438   }
5439 + #line 5440 "conf_parser.c" /* yacc.c:1646  */
5440      break;
5441  
5442 <  case 400:
5443 < /* Line 1787 of yacc.c  */
5756 < #line 2348 "conf_parser.y"
5442 >  case 433:
5443 > #line 2314 "conf_parser.y" /* yacc.c:1646  */
5444      {
5445    if (conf_parser_ctx.pass == 2)
5446 <    hostbuf[0] = reasonbuf[0] = '\0';
5446 >    reset_block_state();
5447   }
5448 + #line 5449 "conf_parser.c" /* yacc.c:1646  */
5449      break;
5450  
5451 <  case 401:
5452 < /* Line 1787 of yacc.c  */
5765 < #line 2352 "conf_parser.y"
5451 >  case 434:
5452 > #line 2318 "conf_parser.y" /* yacc.c:1646  */
5453      {
5454 <  if (conf_parser_ctx.pass == 2)
5768 <  {
5769 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
5770 <    {
5771 <      find_and_delete_temporary(NULL, hostbuf, CONF_DLINE);
5454 >  struct MaskItem *conf = NULL;
5455  
5456 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
5457 <      DupString(yy_aconf->host, hostbuf);
5456 >  if (conf_parser_ctx.pass != 2)
5457 >    break;
5458  
5459 <      if (reasonbuf[0])
5460 <        DupString(yy_aconf->reason, reasonbuf);
5461 <      else
5462 <        DupString(yy_aconf->reason, "No reason");
5463 <      add_conf_by_address(CONF_DLINE, yy_aconf);
5464 <      yy_aconf = NULL;
5465 <    }
5459 >  if (!block_state.addr.buf[0])
5460 >    break;
5461 >
5462 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5463 >  {
5464 >    conf = conf_make(CONF_DLINE);
5465 >    conf->host = xstrdup(block_state.addr.buf);
5466 >
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_DLINE, conf);
5472    }
5473   }
5474 + #line 5475 "conf_parser.c" /* yacc.c:1646  */
5475      break;
5476  
5477 <  case 407:
5478 < /* Line 1787 of yacc.c  */
5789 < #line 2376 "conf_parser.y"
5477 >  case 440:
5478 > #line 2344 "conf_parser.y" /* yacc.c:1646  */
5479      {
5480    if (conf_parser_ctx.pass == 2)
5481 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5481 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5482   }
5483 + #line 5484 "conf_parser.c" /* yacc.c:1646  */
5484      break;
5485  
5486 <  case 408:
5487 < /* Line 1787 of yacc.c  */
5798 < #line 2382 "conf_parser.y"
5486 >  case 441:
5487 > #line 2350 "conf_parser.y" /* yacc.c:1646  */
5488      {
5489    if (conf_parser_ctx.pass == 2)
5490 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5490 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5491   }
5492 + #line 5493 "conf_parser.c" /* yacc.c:1646  */
5493      break;
5494  
5495 <  case 414:
5496 < /* Line 1787 of yacc.c  */
5807 < #line 2396 "conf_parser.y"
5495 >  case 447:
5496 > #line 2364 "conf_parser.y" /* yacc.c:1646  */
5497      {
5498    if (conf_parser_ctx.pass == 2)
5499    {
5500      if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5501      {
5502 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5503 <      DupString(yy_aconf->host, yylval.string);
5502 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5503 >      conf->host = xstrdup(yylval.string);
5504  
5505 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
5817 <      yy_aconf = NULL;
5505 >      add_conf_by_address(CONF_EXEMPT, conf);
5506      }
5507    }
5508   }
5509 + #line 5510 "conf_parser.c" /* yacc.c:1646  */
5510      break;
5511  
5512 <  case 415:
5513 < /* Line 1787 of yacc.c  */
5825 < #line 2414 "conf_parser.y"
5512 >  case 448:
5513 > #line 2381 "conf_parser.y" /* yacc.c:1646  */
5514      {
5515    if (conf_parser_ctx.pass == 2)
5516 <  {
5829 <    regex_ban = 0;
5830 <    reasonbuf[0] = gecos_name[0] = '\0';
5831 <  }
5516 >    reset_block_state();
5517   }
5518 + #line 5519 "conf_parser.c" /* yacc.c:1646  */
5519      break;
5520  
5521 <  case 416:
5522 < /* Line 1787 of yacc.c  */
5837 < #line 2421 "conf_parser.y"
5838 <    {
5839 <  if (conf_parser_ctx.pass == 2)
5840 <  {
5841 <    if (gecos_name[0])
5521 >  case 449:
5522 > #line 2385 "conf_parser.y" /* yacc.c:1646  */
5523      {
5524 <      if (regex_ban)
5844 <      {
5845 < #ifdef HAVE_LIBPCRE
5846 <        void *exp_p = NULL;
5847 <        const char *errptr = NULL;
5524 >  struct MaskItem *conf = NULL;
5525  
5526 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
5527 <        {
5851 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
5852 <               errptr);
5853 <          break;
5854 <        }
5526 >  if (conf_parser_ctx.pass != 2)
5527 >    break;
5528  
5529 <        yy_conf = make_conf_item(RXLINE_TYPE);
5530 <        yy_conf->regexpname = exp_p;
5858 < #else
5859 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
5860 <        break;
5861 < #endif
5862 <      }
5863 <      else
5864 <        yy_conf = make_conf_item(XLINE_TYPE);
5529 >  if (!block_state.name.buf[0])
5530 >    break;
5531  
5532 <      yy_match_item = map_to_conf(yy_conf);
5533 <      DupString(yy_conf->name, gecos_name);
5532 >  conf = conf_make(CONF_XLINE);
5533 >  conf->name = xstrdup(block_state.name.buf);
5534  
5535 <      if (reasonbuf[0])
5536 <        DupString(yy_match_item->reason, reasonbuf);
5537 <      else
5538 <        DupString(yy_match_item->reason, "No reason");
5873 <    }
5874 <  }
5535 >  if (block_state.rpass.buf[0])
5536 >    conf->reason = xstrdup(block_state.rpass.buf);
5537 >  else
5538 >    conf->reason = xstrdup(CONF_NOREASON);
5539   }
5540 + #line 5541 "conf_parser.c" /* yacc.c:1646  */
5541      break;
5542  
5543 <  case 417:
5544 < /* Line 1787 of yacc.c  */
5880 < #line 2461 "conf_parser.y"
5881 <    {
5882 < }
5883 <    break;
5884 <
5885 <  case 421:
5886 < /* Line 1787 of yacc.c  */
5887 < #line 2466 "conf_parser.y"
5543 >  case 455:
5544 > #line 2407 "conf_parser.y" /* yacc.c:1646  */
5545      {
5546    if (conf_parser_ctx.pass == 2)
5547 <    regex_ban = 1;
5547 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5548   }
5549 + #line 5550 "conf_parser.c" /* yacc.c:1646  */
5550      break;
5551  
5552 <  case 428:
5553 < /* Line 1787 of yacc.c  */
5896 < #line 2475 "conf_parser.y"
5552 >  case 456:
5553 > #line 2413 "conf_parser.y" /* yacc.c:1646  */
5554      {
5555    if (conf_parser_ctx.pass == 2)
5556 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
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 429:
5562 < /* Line 1787 of yacc.c  */
5905 < #line 2481 "conf_parser.y"
5561 >  case 510:
5562 > #line 2458 "conf_parser.y" /* yacc.c:1646  */
5563      {
5564 <  if (conf_parser_ctx.pass == 2)
5908 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5564 >  ConfigFileEntry.max_watch = (yyvsp[-1].number);
5565   }
5566 + #line 5567 "conf_parser.c" /* yacc.c:1646  */
5567      break;
5568  
5569 <  case 483:
5570 < /* Line 1787 of yacc.c  */
5914 < #line 2526 "conf_parser.y"
5569 >  case 511:
5570 > #line 2463 "conf_parser.y" /* yacc.c:1646  */
5571      {
5572 <  ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5572 >  if (conf_parser_ctx.pass == 2)
5573 >    ConfigFileEntry.cycle_on_host_change = yylval.number;
5574   }
5575 + #line 5576 "conf_parser.c" /* yacc.c:1646  */
5576      break;
5577  
5578 <  case 484:
5579 < /* Line 1787 of yacc.c  */
5922 < #line 2531 "conf_parser.y"
5578 >  case 512:
5579 > #line 2469 "conf_parser.y" /* yacc.c:1646  */
5580      {
5581    if (conf_parser_ctx.pass == 2)
5582      ConfigFileEntry.glines = yylval.number;
5583   }
5584 + #line 5585 "conf_parser.c" /* yacc.c:1646  */
5585      break;
5586  
5587 <  case 485:
5588 < /* Line 1787 of yacc.c  */
5931 < #line 2537 "conf_parser.y"
5587 >  case 513:
5588 > #line 2475 "conf_parser.y" /* yacc.c:1646  */
5589      {
5590    if (conf_parser_ctx.pass == 2)
5591 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5591 >    ConfigFileEntry.gline_time = (yyvsp[-1].number);
5592   }
5593 + #line 5594 "conf_parser.c" /* yacc.c:1646  */
5594      break;
5595  
5596 <  case 486:
5597 < /* Line 1787 of yacc.c  */
5940 < #line 2543 "conf_parser.y"
5596 >  case 514:
5597 > #line 2481 "conf_parser.y" /* yacc.c:1646  */
5598      {
5599    if (conf_parser_ctx.pass == 2)
5600 <    ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5600 >    ConfigFileEntry.gline_request_time = (yyvsp[-1].number);
5601   }
5602 + #line 5603 "conf_parser.c" /* yacc.c:1646  */
5603      break;
5604  
5605 <  case 487:
5606 < /* Line 1787 of yacc.c  */
5949 < #line 2549 "conf_parser.y"
5605 >  case 515:
5606 > #line 2487 "conf_parser.y" /* yacc.c:1646  */
5607      {
5608 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5608 >  ConfigFileEntry.gline_min_cidr = (yyvsp[-1].number);
5609   }
5610 + #line 5611 "conf_parser.c" /* yacc.c:1646  */
5611      break;
5612  
5613 <  case 488:
5614 < /* Line 1787 of yacc.c  */
5957 < #line 2554 "conf_parser.y"
5613 >  case 516:
5614 > #line 2492 "conf_parser.y" /* yacc.c:1646  */
5615      {
5616 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5616 >  ConfigFileEntry.gline_min_cidr6 = (yyvsp[-1].number);
5617   }
5618 + #line 5619 "conf_parser.c" /* yacc.c:1646  */
5619      break;
5620  
5621 <  case 489:
5622 < /* Line 1787 of yacc.c  */
5965 < #line 2559 "conf_parser.y"
5621 >  case 517:
5622 > #line 2497 "conf_parser.y" /* yacc.c:1646  */
5623      {
5624    ConfigFileEntry.tkline_expire_notices = yylval.number;
5625   }
5626 + #line 5627 "conf_parser.c" /* yacc.c:1646  */
5627      break;
5628  
5629 <  case 490:
5630 < /* Line 1787 of yacc.c  */
5973 < #line 2564 "conf_parser.y"
5629 >  case 518:
5630 > #line 2502 "conf_parser.y" /* yacc.c:1646  */
5631      {
5632 <  ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5632 >  ConfigFileEntry.kill_chase_time_limit = (yyvsp[-1].number);
5633   }
5634 + #line 5635 "conf_parser.c" /* yacc.c:1646  */
5635      break;
5636  
5637 <  case 491:
5638 < /* Line 1787 of yacc.c  */
5981 < #line 2569 "conf_parser.y"
5637 >  case 519:
5638 > #line 2507 "conf_parser.y" /* yacc.c:1646  */
5639      {
5640    ConfigFileEntry.hide_spoof_ips = yylval.number;
5641   }
5642 + #line 5643 "conf_parser.c" /* yacc.c:1646  */
5643      break;
5644  
5645 <  case 492:
5646 < /* Line 1787 of yacc.c  */
5989 < #line 2574 "conf_parser.y"
5645 >  case 520:
5646 > #line 2512 "conf_parser.y" /* yacc.c:1646  */
5647      {
5648    ConfigFileEntry.ignore_bogus_ts = yylval.number;
5649   }
5650 + #line 5651 "conf_parser.c" /* yacc.c:1646  */
5651      break;
5652  
5653 <  case 493:
5654 < /* Line 1787 of yacc.c  */
5997 < #line 2579 "conf_parser.y"
5998 <    {
5999 <  ConfigFileEntry.disable_remote = yylval.number;
6000 < }
6001 <    break;
6002 <
6003 <  case 494:
6004 < /* Line 1787 of yacc.c  */
6005 < #line 2584 "conf_parser.y"
5653 >  case 521:
5654 > #line 2517 "conf_parser.y" /* yacc.c:1646  */
5655      {
5656    ConfigFileEntry.failed_oper_notice = yylval.number;
5657   }
5658 + #line 5659 "conf_parser.c" /* yacc.c:1646  */
5659      break;
5660  
5661 <  case 495:
5662 < /* Line 1787 of yacc.c  */
6013 < #line 2589 "conf_parser.y"
5661 >  case 522:
5662 > #line 2522 "conf_parser.y" /* yacc.c:1646  */
5663      {
5664    ConfigFileEntry.anti_nick_flood = yylval.number;
5665   }
5666 + #line 5667 "conf_parser.c" /* yacc.c:1646  */
5667      break;
5668  
5669 <  case 496:
5670 < /* Line 1787 of yacc.c  */
6021 < #line 2594 "conf_parser.y"
5669 >  case 523:
5670 > #line 2527 "conf_parser.y" /* yacc.c:1646  */
5671      {
5672 <  ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5672 >  ConfigFileEntry.max_nick_time = (yyvsp[-1].number);
5673   }
5674 + #line 5675 "conf_parser.c" /* yacc.c:1646  */
5675      break;
5676  
5677 <  case 497:
5678 < /* Line 1787 of yacc.c  */
6029 < #line 2599 "conf_parser.y"
5677 >  case 524:
5678 > #line 2532 "conf_parser.y" /* yacc.c:1646  */
5679      {
5680 <  ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5680 >  ConfigFileEntry.max_nick_changes = (yyvsp[-1].number);
5681   }
5682 + #line 5683 "conf_parser.c" /* yacc.c:1646  */
5683      break;
5684  
5685 <  case 498:
5686 < /* Line 1787 of yacc.c  */
6037 < #line 2604 "conf_parser.y"
5685 >  case 525:
5686 > #line 2537 "conf_parser.y" /* yacc.c:1646  */
5687      {
5688 <  ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5688 >  ConfigFileEntry.max_accept = (yyvsp[-1].number);
5689   }
5690 + #line 5691 "conf_parser.c" /* yacc.c:1646  */
5691      break;
5692  
5693 <  case 499:
5694 < /* Line 1787 of yacc.c  */
6045 < #line 2609 "conf_parser.y"
5693 >  case 526:
5694 > #line 2542 "conf_parser.y" /* yacc.c:1646  */
5695      {
5696 <  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5696 >  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[-1].number);
5697   }
5698 + #line 5699 "conf_parser.c" /* yacc.c:1646  */
5699      break;
5700  
5701 <  case 500:
5702 < /* Line 1787 of yacc.c  */
6053 < #line 2614 "conf_parser.y"
5701 >  case 527:
5702 > #line 2547 "conf_parser.y" /* yacc.c:1646  */
5703      {
5704 <  ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5704 >  ConfigFileEntry.ts_warn_delta = (yyvsp[-1].number);
5705   }
5706 + #line 5707 "conf_parser.c" /* yacc.c:1646  */
5707      break;
5708  
5709 <  case 501:
5710 < /* Line 1787 of yacc.c  */
6061 < #line 2619 "conf_parser.y"
5709 >  case 528:
5710 > #line 2552 "conf_parser.y" /* yacc.c:1646  */
5711      {
5712    if (conf_parser_ctx.pass == 2)
5713 <    ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5713 >    ConfigFileEntry.ts_max_delta = (yyvsp[-1].number);
5714   }
5715 + #line 5716 "conf_parser.c" /* yacc.c:1646  */
5716      break;
5717  
5718 <  case 502:
5719 < /* Line 1787 of yacc.c  */
6070 < #line 2625 "conf_parser.y"
5718 >  case 529:
5719 > #line 2558 "conf_parser.y" /* yacc.c:1646  */
5720      {
5721 <  if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
5721 >  if (((yyvsp[-1].number) > 0) && conf_parser_ctx.pass == 1)
5722    {
5723      ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
5724      ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
# Line 6077 | Line 5726 | yyreduce:
5726      exit(0);
5727    }
5728   }
5729 + #line 5730 "conf_parser.c" /* yacc.c:1646  */
5730      break;
5731  
5732 <  case 503:
5733 < /* Line 1787 of yacc.c  */
6084 < #line 2636 "conf_parser.y"
5732 >  case 530:
5733 > #line 2569 "conf_parser.y" /* yacc.c:1646  */
5734      {
5735    ConfigFileEntry.invisible_on_connect = yylval.number;
5736   }
5737 + #line 5738 "conf_parser.c" /* yacc.c:1646  */
5738      break;
5739  
5740 <  case 504:
5741 < /* Line 1787 of yacc.c  */
6092 < #line 2641 "conf_parser.y"
5740 >  case 531:
5741 > #line 2574 "conf_parser.y" /* yacc.c:1646  */
5742      {
5743    ConfigFileEntry.warn_no_nline = yylval.number;
5744   }
5745 + #line 5746 "conf_parser.c" /* yacc.c:1646  */
5746      break;
5747  
5748 <  case 505:
5749 < /* Line 1787 of yacc.c  */
6100 < #line 2646 "conf_parser.y"
5748 >  case 532:
5749 > #line 2579 "conf_parser.y" /* yacc.c:1646  */
5750      {
5751    ConfigFileEntry.stats_e_disabled = yylval.number;
5752   }
5753 + #line 5754 "conf_parser.c" /* yacc.c:1646  */
5754      break;
5755  
5756 <  case 506:
5757 < /* Line 1787 of yacc.c  */
6108 < #line 2651 "conf_parser.y"
5756 >  case 533:
5757 > #line 2584 "conf_parser.y" /* yacc.c:1646  */
5758      {
5759    ConfigFileEntry.stats_o_oper_only = yylval.number;
5760   }
5761 + #line 5762 "conf_parser.c" /* yacc.c:1646  */
5762      break;
5763  
5764 <  case 507:
5765 < /* Line 1787 of yacc.c  */
6116 < #line 2656 "conf_parser.y"
5764 >  case 534:
5765 > #line 2589 "conf_parser.y" /* yacc.c:1646  */
5766      {
5767    ConfigFileEntry.stats_P_oper_only = yylval.number;
5768   }
5769 + #line 5770 "conf_parser.c" /* yacc.c:1646  */
5770      break;
5771  
5772 <  case 508:
5773 < /* Line 1787 of yacc.c  */
5774 < #line 2661 "conf_parser.y"
5772 >  case 535:
5773 > #line 2594 "conf_parser.y" /* yacc.c:1646  */
5774 >    {
5775 >  ConfigFileEntry.stats_u_oper_only = yylval.number;
5776 > }
5777 > #line 5778 "conf_parser.c" /* yacc.c:1646  */
5778 >    break;
5779 >
5780 >  case 536:
5781 > #line 2599 "conf_parser.y" /* yacc.c:1646  */
5782      {
5783    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5784   }
5785 + #line 5786 "conf_parser.c" /* yacc.c:1646  */
5786      break;
5787  
5788 <  case 509:
5789 < /* Line 1787 of yacc.c  */
6132 < #line 2664 "conf_parser.y"
5788 >  case 537:
5789 > #line 2602 "conf_parser.y" /* yacc.c:1646  */
5790      {
5791    ConfigFileEntry.stats_k_oper_only = 1;
5792   }
5793 + #line 5794 "conf_parser.c" /* yacc.c:1646  */
5794      break;
5795  
5796 <  case 510:
5797 < /* Line 1787 of yacc.c  */
6140 < #line 2669 "conf_parser.y"
5796 >  case 538:
5797 > #line 2607 "conf_parser.y" /* yacc.c:1646  */
5798      {
5799    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5800   }
5801 + #line 5802 "conf_parser.c" /* yacc.c:1646  */
5802      break;
5803  
5804 <  case 511:
5805 < /* Line 1787 of yacc.c  */
6148 < #line 2672 "conf_parser.y"
5804 >  case 539:
5805 > #line 2610 "conf_parser.y" /* yacc.c:1646  */
5806      {
5807    ConfigFileEntry.stats_i_oper_only = 1;
5808   }
5809 + #line 5810 "conf_parser.c" /* yacc.c:1646  */
5810      break;
5811  
5812 <  case 512:
5813 < /* Line 1787 of yacc.c  */
6156 < #line 2677 "conf_parser.y"
5812 >  case 540:
5813 > #line 2615 "conf_parser.y" /* yacc.c:1646  */
5814      {
5815 <  ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5815 >  ConfigFileEntry.pace_wait = (yyvsp[-1].number);
5816   }
5817 + #line 5818 "conf_parser.c" /* yacc.c:1646  */
5818      break;
5819  
5820 <  case 513:
5821 < /* Line 1787 of yacc.c  */
6164 < #line 2682 "conf_parser.y"
5820 >  case 541:
5821 > #line 2620 "conf_parser.y" /* yacc.c:1646  */
5822      {
5823 <  ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5823 >  ConfigFileEntry.caller_id_wait = (yyvsp[-1].number);
5824   }
5825 + #line 5826 "conf_parser.c" /* yacc.c:1646  */
5826      break;
5827  
5828 <  case 514:
5829 < /* Line 1787 of yacc.c  */
6172 < #line 2687 "conf_parser.y"
5828 >  case 542:
5829 > #line 2625 "conf_parser.y" /* yacc.c:1646  */
5830      {
5831    ConfigFileEntry.opers_bypass_callerid = yylval.number;
5832   }
5833 + #line 5834 "conf_parser.c" /* yacc.c:1646  */
5834      break;
5835  
5836 <  case 515:
5837 < /* Line 1787 of yacc.c  */
6180 < #line 2692 "conf_parser.y"
5836 >  case 543:
5837 > #line 2630 "conf_parser.y" /* yacc.c:1646  */
5838      {
5839 <  ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
5839 >  ConfigFileEntry.pace_wait_simple = (yyvsp[-1].number);
5840   }
5841 + #line 5842 "conf_parser.c" /* yacc.c:1646  */
5842      break;
5843  
5844 <  case 516:
5845 < /* Line 1787 of yacc.c  */
6188 < #line 2697 "conf_parser.y"
5844 >  case 544:
5845 > #line 2635 "conf_parser.y" /* yacc.c:1646  */
5846      {
5847    ConfigFileEntry.short_motd = yylval.number;
5848   }
5849 + #line 5850 "conf_parser.c" /* yacc.c:1646  */
5850      break;
5851  
5852 <  case 517:
5853 < /* Line 1787 of yacc.c  */
6196 < #line 2702 "conf_parser.y"
5852 >  case 545:
5853 > #line 2640 "conf_parser.y" /* yacc.c:1646  */
5854      {
5855    ConfigFileEntry.no_oper_flood = yylval.number;
5856   }
5857 + #line 5858 "conf_parser.c" /* yacc.c:1646  */
5858      break;
5859  
5860 <  case 518:
5861 < /* Line 1787 of yacc.c  */
6204 < #line 2707 "conf_parser.y"
5860 >  case 546:
5861 > #line 2645 "conf_parser.y" /* yacc.c:1646  */
5862      {
5863    ConfigFileEntry.true_no_oper_flood = yylval.number;
5864   }
5865 + #line 5866 "conf_parser.c" /* yacc.c:1646  */
5866      break;
5867  
5868 <  case 519:
5869 < /* Line 1787 of yacc.c  */
6212 < #line 2712 "conf_parser.y"
5868 >  case 547:
5869 > #line 2650 "conf_parser.y" /* yacc.c:1646  */
5870      {
5871    ConfigFileEntry.oper_pass_resv = yylval.number;
5872   }
5873 + #line 5874 "conf_parser.c" /* yacc.c:1646  */
5874      break;
5875  
5876 <  case 520:
5877 < /* Line 1787 of yacc.c  */
6220 < #line 2717 "conf_parser.y"
6221 <    {
6222 <  if (conf_parser_ctx.pass == 2)
6223 <  {
6224 <    if (strlen(yylval.string) > LOCALE_LENGTH-2)
6225 <      yylval.string[LOCALE_LENGTH-1] = '\0';
6226 <
6227 <    set_locale(yylval.string);
6228 <  }
6229 < }
6230 <    break;
6231 <
6232 <  case 521:
6233 < /* Line 1787 of yacc.c  */
6234 < #line 2728 "conf_parser.y"
5876 >  case 548:
5877 > #line 2655 "conf_parser.y" /* yacc.c:1646  */
5878      {
5879 <  ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
5879 >  ConfigFileEntry.dots_in_ident = (yyvsp[-1].number);
5880   }
5881 + #line 5882 "conf_parser.c" /* yacc.c:1646  */
5882      break;
5883  
5884 <  case 522:
5885 < /* Line 1787 of yacc.c  */
6242 < #line 2733 "conf_parser.y"
5884 >  case 549:
5885 > #line 2660 "conf_parser.y" /* yacc.c:1646  */
5886      {
5887 <  ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
5887 >  ConfigFileEntry.max_targets = (yyvsp[-1].number);
5888   }
5889 + #line 5890 "conf_parser.c" /* yacc.c:1646  */
5890      break;
5891  
5892 <  case 523:
5893 < /* Line 1787 of yacc.c  */
6250 < #line 2738 "conf_parser.y"
5892 >  case 550:
5893 > #line 2665 "conf_parser.y" /* yacc.c:1646  */
5894      {
5895    ConfigFileEntry.use_egd = yylval.number;
5896   }
5897 + #line 5898 "conf_parser.c" /* yacc.c:1646  */
5898      break;
5899  
5900 <  case 524:
5901 < /* Line 1787 of yacc.c  */
6258 < #line 2743 "conf_parser.y"
5900 >  case 551:
5901 > #line 2670 "conf_parser.y" /* yacc.c:1646  */
5902      {
5903    if (conf_parser_ctx.pass == 2)
5904    {
5905      MyFree(ConfigFileEntry.egdpool_path);
5906 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
5906 >    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
5907    }
5908   }
5909 + #line 5910 "conf_parser.c" /* yacc.c:1646  */
5910      break;
5911  
5912 <  case 525:
5913 < /* Line 1787 of yacc.c  */
6270 < #line 2752 "conf_parser.y"
5912 >  case 552:
5913 > #line 2679 "conf_parser.y" /* yacc.c:1646  */
5914      {
5915    if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
5916    {
5917      MyFree(ConfigFileEntry.service_name);
5918 <    DupString(ConfigFileEntry.service_name, yylval.string);
5918 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
5919    }
5920   }
5921 + #line 5922 "conf_parser.c" /* yacc.c:1646  */
5922      break;
5923  
5924 <  case 526:
5925 < /* Line 1787 of yacc.c  */
6282 < #line 2761 "conf_parser.y"
5924 >  case 553:
5925 > #line 2688 "conf_parser.y" /* yacc.c:1646  */
5926      {
5927    ConfigFileEntry.ping_cookie = yylval.number;
5928   }
5929 + #line 5930 "conf_parser.c" /* yacc.c:1646  */
5930      break;
5931  
5932 <  case 527:
5933 < /* Line 1787 of yacc.c  */
6290 < #line 2766 "conf_parser.y"
5932 >  case 554:
5933 > #line 2693 "conf_parser.y" /* yacc.c:1646  */
5934      {
5935    ConfigFileEntry.disable_auth = yylval.number;
5936   }
5937 + #line 5938 "conf_parser.c" /* yacc.c:1646  */
5938      break;
5939  
5940 <  case 528:
5941 < /* Line 1787 of yacc.c  */
6298 < #line 2771 "conf_parser.y"
5940 >  case 555:
5941 > #line 2698 "conf_parser.y" /* yacc.c:1646  */
5942      {
5943    ConfigFileEntry.throttle_time = yylval.number;
5944   }
5945 + #line 5946 "conf_parser.c" /* yacc.c:1646  */
5946      break;
5947  
5948 <  case 529:
5949 < /* Line 1787 of yacc.c  */
6306 < #line 2776 "conf_parser.y"
5948 >  case 556:
5949 > #line 2703 "conf_parser.y" /* yacc.c:1646  */
5950      {
5951    ConfigFileEntry.oper_umodes = 0;
5952   }
5953 + #line 5954 "conf_parser.c" /* yacc.c:1646  */
5954      break;
5955  
5956 <  case 533:
5957 < /* Line 1787 of yacc.c  */
6314 < #line 2782 "conf_parser.y"
5956 >  case 560:
5957 > #line 2709 "conf_parser.y" /* yacc.c:1646  */
5958      {
5959    ConfigFileEntry.oper_umodes |= UMODE_BOTS;
5960   }
5961 + #line 5962 "conf_parser.c" /* yacc.c:1646  */
5962      break;
5963  
5964 <  case 534:
5965 < /* Line 1787 of yacc.c  */
6322 < #line 2785 "conf_parser.y"
5964 >  case 561:
5965 > #line 2712 "conf_parser.y" /* yacc.c:1646  */
5966      {
5967    ConfigFileEntry.oper_umodes |= UMODE_CCONN;
5968   }
5969 + #line 5970 "conf_parser.c" /* yacc.c:1646  */
5970      break;
5971  
5972 <  case 535:
5973 < /* Line 1787 of yacc.c  */
6330 < #line 2788 "conf_parser.y"
6331 <    {
6332 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6333 < }
6334 <    break;
6335 <
6336 <  case 536:
6337 < /* Line 1787 of yacc.c  */
6338 < #line 2791 "conf_parser.y"
5972 >  case 562:
5973 > #line 2715 "conf_parser.y" /* yacc.c:1646  */
5974      {
5975    ConfigFileEntry.oper_umodes |= UMODE_DEAF;
5976   }
5977 + #line 5978 "conf_parser.c" /* yacc.c:1646  */
5978      break;
5979  
5980 <  case 537:
5981 < /* Line 1787 of yacc.c  */
6346 < #line 2794 "conf_parser.y"
5980 >  case 563:
5981 > #line 2718 "conf_parser.y" /* yacc.c:1646  */
5982      {
5983    ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
5984   }
5985 + #line 5986 "conf_parser.c" /* yacc.c:1646  */
5986      break;
5987  
5988 <  case 538:
5989 < /* Line 1787 of yacc.c  */
6354 < #line 2797 "conf_parser.y"
5988 >  case 564:
5989 > #line 2721 "conf_parser.y" /* yacc.c:1646  */
5990      {
5991    ConfigFileEntry.oper_umodes |= UMODE_FULL;
5992   }
5993 + #line 5994 "conf_parser.c" /* yacc.c:1646  */
5994      break;
5995  
5996 <  case 539:
5997 < /* Line 1787 of yacc.c  */
6362 < #line 2800 "conf_parser.y"
5996 >  case 565:
5997 > #line 2724 "conf_parser.y" /* yacc.c:1646  */
5998      {
5999    ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6000   }
6001 + #line 6002 "conf_parser.c" /* yacc.c:1646  */
6002      break;
6003  
6004 <  case 540:
6005 < /* Line 1787 of yacc.c  */
6370 < #line 2803 "conf_parser.y"
6004 >  case 566:
6005 > #line 2727 "conf_parser.y" /* yacc.c:1646  */
6006      {
6007    ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6008   }
6009 + #line 6010 "conf_parser.c" /* yacc.c:1646  */
6010      break;
6011  
6012 <  case 541:
6013 < /* Line 1787 of yacc.c  */
6378 < #line 2806 "conf_parser.y"
6012 >  case 567:
6013 > #line 2730 "conf_parser.y" /* yacc.c:1646  */
6014      {
6015    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6016   }
6017 + #line 6018 "conf_parser.c" /* yacc.c:1646  */
6018      break;
6019  
6020 <  case 542:
6021 < /* Line 1787 of yacc.c  */
6386 < #line 2809 "conf_parser.y"
6020 >  case 568:
6021 > #line 2733 "conf_parser.y" /* yacc.c:1646  */
6022      {
6023    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6024   }
6025 + #line 6026 "conf_parser.c" /* yacc.c:1646  */
6026      break;
6027  
6028 <  case 543:
6029 < /* Line 1787 of yacc.c  */
6394 < #line 2812 "conf_parser.y"
6028 >  case 569:
6029 > #line 2736 "conf_parser.y" /* yacc.c:1646  */
6030      {
6031    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6032   }
6033 + #line 6034 "conf_parser.c" /* yacc.c:1646  */
6034      break;
6035  
6036 <  case 544:
6037 < /* Line 1787 of yacc.c  */
6402 < #line 2815 "conf_parser.y"
6036 >  case 570:
6037 > #line 2739 "conf_parser.y" /* yacc.c:1646  */
6038      {
6039    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6040   }
6041 + #line 6042 "conf_parser.c" /* yacc.c:1646  */
6042      break;
6043  
6044 <  case 545:
6045 < /* Line 1787 of yacc.c  */
6410 < #line 2818 "conf_parser.y"
6044 >  case 571:
6045 > #line 2742 "conf_parser.y" /* yacc.c:1646  */
6046      {
6047    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6048   }
6049 + #line 6050 "conf_parser.c" /* yacc.c:1646  */
6050      break;
6051  
6052 <  case 546:
6053 < /* Line 1787 of yacc.c  */
6418 < #line 2821 "conf_parser.y"
6052 >  case 572:
6053 > #line 2745 "conf_parser.y" /* yacc.c:1646  */
6054      {
6055    ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6056   }
6057 + #line 6058 "conf_parser.c" /* yacc.c:1646  */
6058      break;
6059  
6060 <  case 547:
6061 < /* Line 1787 of yacc.c  */
6426 < #line 2824 "conf_parser.y"
6060 >  case 573:
6061 > #line 2748 "conf_parser.y" /* yacc.c:1646  */
6062      {
6063    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6064   }
6065 + #line 6066 "conf_parser.c" /* yacc.c:1646  */
6066      break;
6067  
6068 <  case 548:
6069 < /* Line 1787 of yacc.c  */
6434 < #line 2827 "conf_parser.y"
6068 >  case 574:
6069 > #line 2751 "conf_parser.y" /* yacc.c:1646  */
6070      {
6071    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6072   }
6073 + #line 6074 "conf_parser.c" /* yacc.c:1646  */
6074      break;
6075  
6076 <  case 549:
6077 < /* Line 1787 of yacc.c  */
6442 < #line 2830 "conf_parser.y"
6076 >  case 575:
6077 > #line 2754 "conf_parser.y" /* yacc.c:1646  */
6078      {
6079    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6080   }
6081 + #line 6082 "conf_parser.c" /* yacc.c:1646  */
6082      break;
6083  
6084 <  case 550:
6085 < /* Line 1787 of yacc.c  */
6450 < #line 2833 "conf_parser.y"
6084 >  case 576:
6085 > #line 2757 "conf_parser.y" /* yacc.c:1646  */
6086      {
6087    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6088   }
6089 + #line 6090 "conf_parser.c" /* yacc.c:1646  */
6090      break;
6091  
6092 <  case 551:
6093 < /* Line 1787 of yacc.c  */
6458 < #line 2836 "conf_parser.y"
6092 >  case 577:
6093 > #line 2760 "conf_parser.y" /* yacc.c:1646  */
6094      {
6095    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6096   }
6097 + #line 6098 "conf_parser.c" /* yacc.c:1646  */
6098      break;
6099  
6100 <  case 552:
6101 < /* Line 1787 of yacc.c  */
6466 < #line 2839 "conf_parser.y"
6100 >  case 578:
6101 > #line 2763 "conf_parser.y" /* yacc.c:1646  */
6102      {
6103    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6104   }
6105 + #line 6106 "conf_parser.c" /* yacc.c:1646  */
6106      break;
6107  
6108 <  case 553:
6109 < /* Line 1787 of yacc.c  */
6474 < #line 2844 "conf_parser.y"
6108 >  case 579:
6109 > #line 2766 "conf_parser.y" /* yacc.c:1646  */
6110      {
6111 <  ConfigFileEntry.oper_only_umodes = 0;
6111 >  ConfigFileEntry.oper_umodes |= UMODE_REGONLY;
6112   }
6113 + #line 6114 "conf_parser.c" /* yacc.c:1646  */
6114      break;
6115  
6116 <  case 557:
6117 < /* Line 1787 of yacc.c  */
6482 < #line 2850 "conf_parser.y"
6116 >  case 580:
6117 > #line 2769 "conf_parser.y" /* yacc.c:1646  */
6118      {
6119 <  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6119 >  ConfigFileEntry.oper_umodes |= UMODE_FARCONNECT;
6120   }
6121 + #line 6122 "conf_parser.c" /* yacc.c:1646  */
6122      break;
6123  
6124 <  case 558:
6125 < /* Line 1787 of yacc.c  */
6490 < #line 2853 "conf_parser.y"
6124 >  case 581:
6125 > #line 2774 "conf_parser.y" /* yacc.c:1646  */
6126      {
6127 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6127 >  ConfigFileEntry.oper_only_umodes = 0;
6128   }
6129 + #line 6130 "conf_parser.c" /* yacc.c:1646  */
6130      break;
6131  
6132 <  case 559:
6133 < /* Line 1787 of yacc.c  */
6498 < #line 2856 "conf_parser.y"
6132 >  case 585:
6133 > #line 2780 "conf_parser.y" /* yacc.c:1646  */
6134      {
6135 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6135 >  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6136   }
6137 + #line 6138 "conf_parser.c" /* yacc.c:1646  */
6138      break;
6139  
6140 <  case 560:
6141 < /* Line 1787 of yacc.c  */
6142 < #line 2859 "conf_parser.y"
6140 >  case 586:
6141 > #line 2783 "conf_parser.y" /* yacc.c:1646  */
6142 >    {
6143 >  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6144 > }
6145 > #line 6146 "conf_parser.c" /* yacc.c:1646  */
6146 >    break;
6147 >
6148 >  case 587:
6149 > #line 2786 "conf_parser.y" /* yacc.c:1646  */
6150      {
6151    ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6152   }
6153 + #line 6154 "conf_parser.c" /* yacc.c:1646  */
6154      break;
6155  
6156 <  case 561:
6157 < /* Line 1787 of yacc.c  */
6514 < #line 2862 "conf_parser.y"
6156 >  case 588:
6157 > #line 2789 "conf_parser.y" /* yacc.c:1646  */
6158      {
6159    ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6160   }
6161 + #line 6162 "conf_parser.c" /* yacc.c:1646  */
6162      break;
6163  
6164 <  case 562:
6165 < /* Line 1787 of yacc.c  */
6522 < #line 2865 "conf_parser.y"
6164 >  case 589:
6165 > #line 2792 "conf_parser.y" /* yacc.c:1646  */
6166      {
6167    ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6168   }
6169 + #line 6170 "conf_parser.c" /* yacc.c:1646  */
6170      break;
6171  
6172 <  case 563:
6173 < /* Line 1787 of yacc.c  */
6530 < #line 2868 "conf_parser.y"
6172 >  case 590:
6173 > #line 2795 "conf_parser.y" /* yacc.c:1646  */
6174      {
6175    ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6176   }
6177 + #line 6178 "conf_parser.c" /* yacc.c:1646  */
6178      break;
6179  
6180 <  case 564:
6181 < /* Line 1787 of yacc.c  */
6538 < #line 2871 "conf_parser.y"
6180 >  case 591:
6181 > #line 2798 "conf_parser.y" /* yacc.c:1646  */
6182      {
6183    ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6184   }
6185 + #line 6186 "conf_parser.c" /* yacc.c:1646  */
6186      break;
6187  
6188 <  case 565:
6189 < /* Line 1787 of yacc.c  */
6546 < #line 2874 "conf_parser.y"
6188 >  case 592:
6189 > #line 2801 "conf_parser.y" /* yacc.c:1646  */
6190      {
6191    ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6192   }
6193 + #line 6194 "conf_parser.c" /* yacc.c:1646  */
6194      break;
6195  
6196 <  case 566:
6197 < /* Line 1787 of yacc.c  */
6554 < #line 2877 "conf_parser.y"
6196 >  case 593:
6197 > #line 2804 "conf_parser.y" /* yacc.c:1646  */
6198      {
6199    ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6200   }
6201 + #line 6202 "conf_parser.c" /* yacc.c:1646  */
6202      break;
6203  
6204 <  case 567:
6205 < /* Line 1787 of yacc.c  */
6562 < #line 2880 "conf_parser.y"
6204 >  case 594:
6205 > #line 2807 "conf_parser.y" /* yacc.c:1646  */
6206      {
6207    ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6208   }
6209 + #line 6210 "conf_parser.c" /* yacc.c:1646  */
6210      break;
6211  
6212 <  case 568:
6213 < /* Line 1787 of yacc.c  */
6570 < #line 2883 "conf_parser.y"
6212 >  case 595:
6213 > #line 2810 "conf_parser.y" /* yacc.c:1646  */
6214      {
6215    ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6216   }
6217 + #line 6218 "conf_parser.c" /* yacc.c:1646  */
6218      break;
6219  
6220 <  case 569:
6221 < /* Line 1787 of yacc.c  */
6578 < #line 2886 "conf_parser.y"
6220 >  case 596:
6221 > #line 2813 "conf_parser.y" /* yacc.c:1646  */
6222      {
6223    ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6224   }
6225 + #line 6226 "conf_parser.c" /* yacc.c:1646  */
6226      break;
6227  
6228 <  case 570:
6229 < /* Line 1787 of yacc.c  */
6586 < #line 2889 "conf_parser.y"
6228 >  case 597:
6229 > #line 2816 "conf_parser.y" /* yacc.c:1646  */
6230      {
6231    ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6232   }
6233 + #line 6234 "conf_parser.c" /* yacc.c:1646  */
6234      break;
6235  
6236 <  case 571:
6237 < /* Line 1787 of yacc.c  */
6594 < #line 2892 "conf_parser.y"
6236 >  case 598:
6237 > #line 2819 "conf_parser.y" /* yacc.c:1646  */
6238      {
6239    ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6240   }
6241 + #line 6242 "conf_parser.c" /* yacc.c:1646  */
6242      break;
6243  
6244 <  case 572:
6245 < /* Line 1787 of yacc.c  */
6602 < #line 2895 "conf_parser.y"
6244 >  case 599:
6245 > #line 2822 "conf_parser.y" /* yacc.c:1646  */
6246      {
6247    ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6248   }
6249 + #line 6250 "conf_parser.c" /* yacc.c:1646  */
6250      break;
6251  
6252 <  case 573:
6253 < /* Line 1787 of yacc.c  */
6610 < #line 2898 "conf_parser.y"
6252 >  case 600:
6253 > #line 2825 "conf_parser.y" /* yacc.c:1646  */
6254      {
6255    ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6256   }
6257 + #line 6258 "conf_parser.c" /* yacc.c:1646  */
6258      break;
6259  
6260 <  case 574:
6261 < /* Line 1787 of yacc.c  */
6618 < #line 2901 "conf_parser.y"
6260 >  case 601:
6261 > #line 2828 "conf_parser.y" /* yacc.c:1646  */
6262      {
6263    ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6264   }
6265 + #line 6266 "conf_parser.c" /* yacc.c:1646  */
6266      break;
6267  
6268 <  case 575:
6269 < /* Line 1787 of yacc.c  */
6626 < #line 2904 "conf_parser.y"
6268 >  case 602:
6269 > #line 2831 "conf_parser.y" /* yacc.c:1646  */
6270      {
6271    ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6272   }
6273 + #line 6274 "conf_parser.c" /* yacc.c:1646  */
6274      break;
6275  
6276 <  case 576:
6277 < /* Line 1787 of yacc.c  */
6634 < #line 2907 "conf_parser.y"
6276 >  case 603:
6277 > #line 2834 "conf_parser.y" /* yacc.c:1646  */
6278      {
6279    ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6280   }
6281 + #line 6282 "conf_parser.c" /* yacc.c:1646  */
6282      break;
6283  
6284 <  case 577:
6285 < /* Line 1787 of yacc.c  */
6642 < #line 2912 "conf_parser.y"
6284 >  case 604:
6285 > #line 2837 "conf_parser.y" /* yacc.c:1646  */
6286      {
6287 <  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6287 >  ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6288   }
6289 + #line 6290 "conf_parser.c" /* yacc.c:1646  */
6290      break;
6291  
6292 <  case 578:
6293 < /* Line 1787 of yacc.c  */
6650 < #line 2917 "conf_parser.y"
6292 >  case 605:
6293 > #line 2840 "conf_parser.y" /* yacc.c:1646  */
6294      {
6295 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6295 >  ConfigFileEntry.oper_only_umodes |= UMODE_FARCONNECT;
6296   }
6297 + #line 6298 "conf_parser.c" /* yacc.c:1646  */
6298      break;
6299  
6300 <  case 579:
6301 < /* Line 1787 of yacc.c  */
6658 < #line 2922 "conf_parser.y"
6300 >  case 606:
6301 > #line 2845 "conf_parser.y" /* yacc.c:1646  */
6302      {
6303 <  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6303 >  ConfigFileEntry.min_nonwildcard = (yyvsp[-1].number);
6304   }
6305 + #line 6306 "conf_parser.c" /* yacc.c:1646  */
6306      break;
6307  
6308 <  case 598:
6309 < /* Line 1787 of yacc.c  */
6666 < #line 2945 "conf_parser.y"
6308 >  case 607:
6309 > #line 2850 "conf_parser.y" /* yacc.c:1646  */
6310      {
6311 <  ConfigChannel.disable_fake_channels = yylval.number;
6311 >  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[-1].number);
6312   }
6313 + #line 6314 "conf_parser.c" /* yacc.c:1646  */
6314      break;
6315  
6316 <  case 599:
6317 < /* Line 1787 of yacc.c  */
6674 < #line 2950 "conf_parser.y"
6316 >  case 608:
6317 > #line 2855 "conf_parser.y" /* yacc.c:1646  */
6318      {
6319 <  ConfigChannel.restrict_channels = yylval.number;
6319 >  ConfigFileEntry.default_floodcount = (yyvsp[-1].number);
6320   }
6321 + #line 6322 "conf_parser.c" /* yacc.c:1646  */
6322      break;
6323  
6324 <  case 600:
6325 < /* Line 1787 of yacc.c  */
6682 < #line 2955 "conf_parser.y"
6324 >  case 625:
6325 > #line 2878 "conf_parser.y" /* yacc.c:1646  */
6326      {
6327 <  ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6327 >  ConfigChannel.disable_fake_channels = yylval.number;
6328   }
6329 + #line 6330 "conf_parser.c" /* yacc.c:1646  */
6330      break;
6331  
6332 <  case 601:
6333 < /* Line 1787 of yacc.c  */
6690 < #line 2960 "conf_parser.y"
6332 >  case 626:
6333 > #line 2883 "conf_parser.y" /* yacc.c:1646  */
6334      {
6335 <  ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6335 >  ConfigChannel.knock_delay = (yyvsp[-1].number);
6336   }
6337 + #line 6338 "conf_parser.c" /* yacc.c:1646  */
6338      break;
6339  
6340 <  case 602:
6341 < /* Line 1787 of yacc.c  */
6698 < #line 2965 "conf_parser.y"
6340 >  case 627:
6341 > #line 2888 "conf_parser.y" /* yacc.c:1646  */
6342      {
6343 <  ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6343 >  ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6344   }
6345 + #line 6346 "conf_parser.c" /* yacc.c:1646  */
6346      break;
6347  
6348 <  case 603:
6349 < /* Line 1787 of yacc.c  */
6706 < #line 2970 "conf_parser.y"
6348 >  case 628:
6349 > #line 2893 "conf_parser.y" /* yacc.c:1646  */
6350      {
6351 <  ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6351 >  ConfigChannel.max_chans_per_user = (yyvsp[-1].number);
6352   }
6353 + #line 6354 "conf_parser.c" /* yacc.c:1646  */
6354      break;
6355  
6356 <  case 604:
6357 < /* Line 1787 of yacc.c  */
6714 < #line 2975 "conf_parser.y"
6356 >  case 629:
6357 > #line 2898 "conf_parser.y" /* yacc.c:1646  */
6358      {
6359 <  ConfigChannel.quiet_on_ban = yylval.number;
6359 >  ConfigChannel.max_chans_per_oper = (yyvsp[-1].number);
6360   }
6361 + #line 6362 "conf_parser.c" /* yacc.c:1646  */
6362      break;
6363  
6364 <  case 605:
6365 < /* Line 1787 of yacc.c  */
6722 < #line 2980 "conf_parser.y"
6364 >  case 630:
6365 > #line 2903 "conf_parser.y" /* yacc.c:1646  */
6366      {
6367 <  ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6367 >  ConfigChannel.max_bans = (yyvsp[-1].number);
6368   }
6369 + #line 6370 "conf_parser.c" /* yacc.c:1646  */
6370      break;
6371  
6372 <  case 606:
6373 < /* Line 1787 of yacc.c  */
6730 < #line 2985 "conf_parser.y"
6372 >  case 631:
6373 > #line 2908 "conf_parser.y" /* yacc.c:1646  */
6374      {
6375 <  ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6375 >  ConfigChannel.default_split_user_count = (yyvsp[-1].number);
6376   }
6377 + #line 6378 "conf_parser.c" /* yacc.c:1646  */
6378      break;
6379  
6380 <  case 607:
6381 < /* Line 1787 of yacc.c  */
6738 < #line 2990 "conf_parser.y"
6380 >  case 632:
6381 > #line 2913 "conf_parser.y" /* yacc.c:1646  */
6382      {
6383 <  ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6383 >  ConfigChannel.default_split_server_count = (yyvsp[-1].number);
6384   }
6385 + #line 6386 "conf_parser.c" /* yacc.c:1646  */
6386      break;
6387  
6388 <  case 608:
6389 < /* Line 1787 of yacc.c  */
6746 < #line 2995 "conf_parser.y"
6388 >  case 633:
6389 > #line 2918 "conf_parser.y" /* yacc.c:1646  */
6390      {
6391    ConfigChannel.no_create_on_split = yylval.number;
6392   }
6393 + #line 6394 "conf_parser.c" /* yacc.c:1646  */
6394      break;
6395  
6396 <  case 609:
6397 < /* Line 1787 of yacc.c  */
6754 < #line 3000 "conf_parser.y"
6396 >  case 634:
6397 > #line 2923 "conf_parser.y" /* yacc.c:1646  */
6398      {
6399    ConfigChannel.no_join_on_split = yylval.number;
6400   }
6401 + #line 6402 "conf_parser.c" /* yacc.c:1646  */
6402      break;
6403  
6404 <  case 610:
6405 < /* Line 1787 of yacc.c  */
6762 < #line 3005 "conf_parser.y"
6404 >  case 635:
6405 > #line 2928 "conf_parser.y" /* yacc.c:1646  */
6406      {
6407    GlobalSetOptions.joinfloodcount = yylval.number;
6408   }
6409 + #line 6410 "conf_parser.c" /* yacc.c:1646  */
6410      break;
6411  
6412 <  case 611:
6413 < /* Line 1787 of yacc.c  */
6770 < #line 3010 "conf_parser.y"
6412 >  case 636:
6413 > #line 2933 "conf_parser.y" /* yacc.c:1646  */
6414      {
6415    GlobalSetOptions.joinfloodtime = yylval.number;
6416   }
6417 + #line 6418 "conf_parser.c" /* yacc.c:1646  */
6418      break;
6419  
6420 <  case 622:
6421 < /* Line 1787 of yacc.c  */
6778 < #line 3028 "conf_parser.y"
6420 >  case 649:
6421 > #line 2953 "conf_parser.y" /* yacc.c:1646  */
6422      {
6423    if (conf_parser_ctx.pass == 2)
6424      ConfigServerHide.flatten_links = yylval.number;
6425   }
6426 + #line 6427 "conf_parser.c" /* yacc.c:1646  */
6427      break;
6428  
6429 <  case 623:
6430 < /* Line 1787 of yacc.c  */
6431 < #line 3034 "conf_parser.y"
6429 >  case 650:
6430 > #line 2959 "conf_parser.y" /* yacc.c:1646  */
6431 >    {
6432 >  if (conf_parser_ctx.pass == 2)
6433 >    ConfigServerHide.disable_remote_commands = yylval.number;
6434 > }
6435 > #line 6436 "conf_parser.c" /* yacc.c:1646  */
6436 >    break;
6437 >
6438 >  case 651:
6439 > #line 2965 "conf_parser.y" /* yacc.c:1646  */
6440      {
6441    if (conf_parser_ctx.pass == 2)
6442      ConfigServerHide.hide_servers = yylval.number;
6443   }
6444 + #line 6445 "conf_parser.c" /* yacc.c:1646  */
6445      break;
6446  
6447 <  case 624:
6448 < /* Line 1787 of yacc.c  */
6449 < #line 3040 "conf_parser.y"
6447 >  case 652:
6448 > #line 2971 "conf_parser.y" /* yacc.c:1646  */
6449 >    {
6450 >  if (conf_parser_ctx.pass == 2)
6451 >    ConfigServerHide.hide_services = yylval.number;
6452 > }
6453 > #line 6454 "conf_parser.c" /* yacc.c:1646  */
6454 >    break;
6455 >
6456 >  case 653:
6457 > #line 2977 "conf_parser.y" /* yacc.c:1646  */
6458      {
6459    if (conf_parser_ctx.pass == 2)
6460    {
6461      MyFree(ConfigServerHide.hidden_name);
6462 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6462 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6463    }
6464   }
6465 + #line 6466 "conf_parser.c" /* yacc.c:1646  */
6466      break;
6467  
6468 <  case 625:
6469 < /* Line 1787 of yacc.c  */
6808 < #line 3049 "conf_parser.y"
6468 >  case 654:
6469 > #line 2986 "conf_parser.y" /* yacc.c:1646  */
6470      {
6471    if (conf_parser_ctx.pass == 2)
6472    {
6473 <    if (((yyvsp[(3) - (4)].number) > 0) && ConfigServerHide.links_disabled == 1)
6473 >    if (((yyvsp[-1].number) > 0) && ConfigServerHide.links_disabled == 1)
6474      {
6475 <      eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[(3) - (4)].number));
6475 >      eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[-1].number));
6476        ConfigServerHide.links_disabled = 0;
6477      }
6478  
6479 <    ConfigServerHide.links_delay = (yyvsp[(3) - (4)].number);
6479 >    ConfigServerHide.links_delay = (yyvsp[-1].number);
6480    }
6481   }
6482 + #line 6483 "conf_parser.c" /* yacc.c:1646  */
6483      break;
6484  
6485 <  case 626:
6486 < /* Line 1787 of yacc.c  */
6825 < #line 3063 "conf_parser.y"
6485 >  case 655:
6486 > #line 3000 "conf_parser.y" /* yacc.c:1646  */
6487      {
6488    if (conf_parser_ctx.pass == 2)
6489      ConfigServerHide.hidden = yylval.number;
6490   }
6491 + #line 6492 "conf_parser.c" /* yacc.c:1646  */
6492      break;
6493  
6494 <  case 627:
6495 < /* Line 1787 of yacc.c  */
6834 < #line 3069 "conf_parser.y"
6494 >  case 656:
6495 > #line 3006 "conf_parser.y" /* yacc.c:1646  */
6496      {
6497    if (conf_parser_ctx.pass == 2)
6498      ConfigServerHide.hide_server_ips = yylval.number;
6499   }
6500 + #line 6501 "conf_parser.c" /* yacc.c:1646  */
6501      break;
6502  
6503  
6504 < /* Line 1787 of yacc.c  */
6843 < #line 6844 "conf_parser.c"
6504 > #line 6505 "conf_parser.c" /* yacc.c:1646  */
6505        default: break;
6506      }
6507    /* User semantic actions sometimes alter yychar, and that requires
# Line 6862 | Line 6523 | yyreduce:
6523  
6524    *++yyvsp = yyval;
6525  
6526 <  /* Now `shift' the result of the reduction.  Determine what state
6526 >  /* Now 'shift' the result of the reduction.  Determine what state
6527       that goes to, based on the state we popped back to and the rule
6528       number reduced by.  */
6529  
# Line 6877 | Line 6538 | yyreduce:
6538    goto yynewstate;
6539  
6540  
6541 < /*------------------------------------.
6542 < | yyerrlab -- here on detecting error |
6543 < `------------------------------------*/
6541 > /*--------------------------------------.
6542 > | yyerrlab -- here on detecting error.  |
6543 > `--------------------------------------*/
6544   yyerrlab:
6545    /* Make sure we have latest lookahead translation.  See comments at
6546       user semantic actions for why this is necessary.  */
# Line 6930 | Line 6591 | yyerrlab:
6591    if (yyerrstatus == 3)
6592      {
6593        /* If just tried and failed to reuse lookahead token after an
6594 <         error, discard it.  */
6594 >         error, discard it.  */
6595  
6596        if (yychar <= YYEOF)
6597 <        {
6598 <          /* Return failure if at end of input.  */
6599 <          if (yychar == YYEOF)
6600 <            YYABORT;
6601 <        }
6597 >        {
6598 >          /* Return failure if at end of input.  */
6599 >          if (yychar == YYEOF)
6600 >            YYABORT;
6601 >        }
6602        else
6603 <        {
6604 <          yydestruct ("Error: discarding",
6605 <                      yytoken, &yylval);
6606 <          yychar = YYEMPTY;
6607 <        }
6603 >        {
6604 >          yydestruct ("Error: discarding",
6605 >                      yytoken, &yylval);
6606 >          yychar = YYEMPTY;
6607 >        }
6608      }
6609  
6610    /* Else will try to reuse lookahead token after shifting the error
# Line 6962 | Line 6623 | yyerrorlab:
6623    if (/*CONSTCOND*/ 0)
6624       goto yyerrorlab;
6625  
6626 <  /* Do not reclaim the symbols of the rule which action triggered
6626 >  /* Do not reclaim the symbols of the rule whose action triggered
6627       this YYERROR.  */
6628    YYPOPSTACK (yylen);
6629    yylen = 0;
# Line 6975 | Line 6636 | yyerrorlab:
6636   | yyerrlab1 -- common code for both syntax error and YYERROR.  |
6637   `-------------------------------------------------------------*/
6638   yyerrlab1:
6639 <  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6639 >  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6640  
6641    for (;;)
6642      {
6643        yyn = yypact[yystate];
6644        if (!yypact_value_is_default (yyn))
6645 <        {
6646 <          yyn += YYTERROR;
6647 <          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6648 <            {
6649 <              yyn = yytable[yyn];
6650 <              if (0 < yyn)
6651 <                break;
6652 <            }
6653 <        }
6645 >        {
6646 >          yyn += YYTERROR;
6647 >          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6648 >            {
6649 >              yyn = yytable[yyn];
6650 >              if (0 < yyn)
6651 >                break;
6652 >            }
6653 >        }
6654  
6655        /* Pop the current state because it cannot handle the error token.  */
6656        if (yyssp == yyss)
6657 <        YYABORT;
6657 >        YYABORT;
6658  
6659  
6660        yydestruct ("Error: popping",
6661 <                  yystos[yystate], yyvsp);
6661 >                  yystos[yystate], yyvsp);
6662        YYPOPSTACK (1);
6663        yystate = *yyssp;
6664        YY_STACK_PRINT (yyss, yyssp);
6665      }
6666  
6667 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6668    *++yyvsp = yylval;
6669 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6670  
6671  
6672    /* Shift the error token.  */
# Line 7046 | Line 6709 | yyreturn:
6709        yydestruct ("Cleanup: discarding lookahead",
6710                    yytoken, &yylval);
6711      }
6712 <  /* Do not reclaim the symbols of the rule which action triggered
6712 >  /* Do not reclaim the symbols of the rule whose action triggered
6713       this YYABORT or YYACCEPT.  */
6714    YYPOPSTACK (yylen);
6715    YY_STACK_PRINT (yyss, yyssp);
6716    while (yyssp != yyss)
6717      {
6718        yydestruct ("Cleanup: popping",
6719 <                  yystos[*yyssp], yyvsp);
6719 >                  yystos[*yyssp], yyvsp);
6720        YYPOPSTACK (1);
6721      }
6722   #ifndef yyoverflow
# Line 7064 | Line 6727 | yyreturn:
6727    if (yymsg != yymsgbuf)
6728      YYSTACK_FREE (yymsg);
6729   #endif
6730 <  /* Make sure YYID is used.  */
7068 <  return YYID (yyresult);
6730 >  return yyresult;
6731   }
7070
7071

Comparing ircd-hybrid/trunk/src/conf_parser.c (property svn:keywords):
Revision 1592 by michael, Sat Oct 27 21:02:32 2012 UTC vs.
Revision 2570 by michael, Mon Nov 18 19:14:02 2013 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

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