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

Comparing ircd-hybrid/trunk/src/conf_parser.c (file contents):
Revision 1622 by michael, Thu Nov 1 13:16:37 2012 UTC vs.
Revision 3762 by michael, Sun Jun 1 19:35:16 2014 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 2.6.2.33-cc5a9.  */
1 > /* A Bison parser, made by GNU Bison 3.0.2.  */
2  
3   /* Bison implementation for Yacc-like parsers in C
4 <  
5 <      Copyright (C) 1984, 1989-1990, 2000-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.33-cc5a9"
47 > #define YYBISON_VERSION "3.0.2"
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 358 of yacc.c  */
66 < #line 25 "conf_parser.y"
65 > #line 28 "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"
84 > #include "server.h"
85   #include "hostmask.h"
86   #include "send.h"
87   #include "listener.h"
88   #include "resv.h"
89   #include "numeric.h"
90 < #include "s_user.h"
90 > #include "user.h"
91 > #include "motd.h"
92  
93   #ifdef HAVE_LIBCRYPTO
94   #include <openssl/rsa.h>
# Line 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 >  {
108 >    dlink_list list;
109 >  } mask,
110 >    leaf,
111 >    hub;
112 >
113 >  struct
114 >  {
115 >    char buf[IRCD_BUFSIZE];
116 >  } name,
117 >    user,
118 >    host,
119 >    addr,
120 >    bind,
121 >    file,
122 >    ciph,
123 >    cert,
124 >    rpass,
125 >    spass,
126 >    class;
127 >
128 >  struct
129 >  {
130 >    unsigned int value;
131 >  } flags,
132 >    modes,
133 >    size,
134 >    type,
135 >    port,
136 >    aftype,
137 >    ping_freq,
138 >    max_perip,
139 >    con_freq,
140 >    min_idle,
141 >    max_idle,
142 >    max_total,
143 >    max_global,
144 >    max_local,
145 >    max_ident,
146 >    max_sendq,
147 >    max_recvq,
148 >    cidr_bitlen_ipv4,
149 >    cidr_bitlen_ipv6,
150 >    number_per_cidr;
151 > } block_state;
152  
153   static void
154 < free_collect_item(struct CollectItem *item)
154 > reset_block_state(void)
155   {
156 <  MyFree(item->name);
157 <  MyFree(item->user);
158 <  MyFree(item->host);
159 <  MyFree(item->passwd);
160 < #ifdef HAVE_LIBCRYPTO
161 <  MyFree(item->rsa_public_key_file);
162 < #endif
163 <  MyFree(item);
156 >  dlink_node *ptr = NULL, *ptr_next = NULL;
157 >
158 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
159 >  {
160 >    MyFree(ptr->data);
161 >    dlinkDelete(ptr, &block_state.mask.list);
162 >    free_dlink_node(ptr);
163 >  }
164 >
165 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
166 >  {
167 >    MyFree(ptr->data);
168 >    dlinkDelete(ptr, &block_state.leaf.list);
169 >    free_dlink_node(ptr);
170 >  }
171 >
172 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
173 >  {
174 >    MyFree(ptr->data);
175 >    dlinkDelete(ptr, &block_state.hub.list);
176 >    free_dlink_node(ptr);
177 >  }
178 >
179 >  memset(&block_state, 0, sizeof(block_state));
180   }
181  
182  
183 < /* Line 358 of yacc.c  */
152 < #line 153 "conf_parser.c"
183 > #line 184 "conf_parser.c" /* yacc.c:339  */
184  
185 < # ifndef YY_NULL
185 > # ifndef YY_NULLPTR
186   #  if defined __cplusplus && 201103L <= __cplusplus
187 < #   define YY_NULL nullptr
187 > #   define YY_NULLPTR nullptr
188   #  else
189 < #   define YY_NULL 0
189 > #   define YY_NULLPTR 0
190   #  endif
191   # endif
192  
# Line 169 | Line 200 | free_collect_item(struct CollectItem *it
200  
201   /* In a future release of Bison, this section will be replaced
202     by #include "y.tab.h".  */
203 < #ifndef YY_YY_Y_TAB_H_INCLUDED
204 < # define YY_YY_Y_TAB_H_INCLUDED
205 < /* Enabling traces.  */
203 > #ifndef YY_YY_CONF_PARSER_H_INCLUDED
204 > # define YY_YY_CONF_PARSER_H_INCLUDED
205 > /* Debug traces.  */
206   #ifndef YYDEBUG
207   # define YYDEBUG 0
208   #endif
# Line 179 | Line 210 | free_collect_item(struct CollectItem *it
210   extern int yydebug;
211   #endif
212  
213 < /* Tokens.  */
213 > /* Token type.  */
214   #ifndef YYTOKENTYPE
215   # define YYTOKENTYPE
216 <   /* Put the tokens into the symbol table, so that GDB and other debuggers
217 <      know about them.  */
218 <   enum yytokentype {
219 <     ACCEPT_PASSWORD = 258,
220 <     ADMIN = 259,
221 <     AFTYPE = 260,
222 <     ANTI_NICK_FLOOD = 261,
223 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
224 <     AUTOCONN = 263,
225 <     BYTES = 264,
226 <     KBYTES = 265,
227 <     MBYTES = 266,
228 <     CALLER_ID_WAIT = 267,
229 <     CAN_FLOOD = 268,
230 <     CHANNEL = 269,
231 <     CIDR_BITLEN_IPV4 = 270,
232 <     CIDR_BITLEN_IPV6 = 271,
233 <     CLASS = 272,
234 <     CONNECT = 273,
235 <     CONNECTFREQ = 274,
236 <     DEFAULT_FLOODCOUNT = 275,
237 <     DEFAULT_SPLIT_SERVER_COUNT = 276,
238 <     DEFAULT_SPLIT_USER_COUNT = 277,
239 <     DENY = 278,
240 <     DESCRIPTION = 279,
241 <     DIE = 280,
242 <     DISABLE_AUTH = 281,
243 <     DISABLE_FAKE_CHANNELS = 282,
244 <     DISABLE_REMOTE_COMMANDS = 283,
245 <     DOTS_IN_IDENT = 284,
246 <     EGDPOOL_PATH = 285,
247 <     EMAIL = 286,
248 <     ENCRYPTED = 287,
249 <     EXCEED_LIMIT = 288,
250 <     EXEMPT = 289,
251 <     FAILED_OPER_NOTICE = 290,
252 <     IRCD_FLAGS = 291,
253 <     FLATTEN_LINKS = 292,
254 <     GECOS = 293,
255 <     GENERAL = 294,
256 <     GLINE = 295,
257 <     GLINE_DURATION = 296,
258 <     GLINE_ENABLE = 297,
259 <     GLINE_EXEMPT = 298,
260 <     GLINE_REQUEST_DURATION = 299,
261 <     GLINE_MIN_CIDR = 300,
262 <     GLINE_MIN_CIDR6 = 301,
263 <     GLOBAL_KILL = 302,
264 <     IRCD_AUTH = 303,
265 <     NEED_IDENT = 304,
266 <     HAVENT_READ_CONF = 305,
267 <     HIDDEN = 306,
268 <     HIDDEN_NAME = 307,
269 <     HIDE_SERVER_IPS = 308,
270 <     HIDE_SERVERS = 309,
271 <     HIDE_SPOOF_IPS = 310,
272 <     HOST = 311,
273 <     HUB = 312,
274 <     HUB_MASK = 313,
275 <     IGNORE_BOGUS_TS = 314,
276 <     INVISIBLE_ON_CONNECT = 315,
277 <     IP = 316,
278 <     KILL = 317,
279 <     KILL_CHASE_TIME_LIMIT = 318,
280 <     KLINE = 319,
281 <     KLINE_EXEMPT = 320,
282 <     KNOCK_DELAY = 321,
283 <     KNOCK_DELAY_CHANNEL = 322,
284 <     LEAF_MASK = 323,
285 <     LINKS_DELAY = 324,
286 <     LISTEN = 325,
287 <     T_LOG = 326,
288 <     MAX_ACCEPT = 327,
289 <     MAX_BANS = 328,
290 <     MAX_CHANS_PER_OPER = 329,
291 <     MAX_CHANS_PER_USER = 330,
292 <     MAX_GLOBAL = 331,
293 <     MAX_IDENT = 332,
294 <     MAX_LOCAL = 333,
295 <     MAX_NICK_CHANGES = 334,
296 <     MAX_NICK_TIME = 335,
297 <     MAX_NUMBER = 336,
298 <     MAX_TARGETS = 337,
299 <     MAX_WATCH = 338,
300 <     MESSAGE_LOCALE = 339,
301 <     MIN_NONWILDCARD = 340,
302 <     MIN_NONWILDCARD_SIMPLE = 341,
303 <     MODULE = 342,
304 <     MODULES = 343,
305 <     NAME = 344,
306 <     NEED_PASSWORD = 345,
307 <     NETWORK_DESC = 346,
308 <     NETWORK_NAME = 347,
309 <     NICK = 348,
310 <     NICK_CHANGES = 349,
311 <     NO_CREATE_ON_SPLIT = 350,
312 <     NO_JOIN_ON_SPLIT = 351,
313 <     NO_OPER_FLOOD = 352,
314 <     NO_TILDE = 353,
315 <     NUMBER = 354,
316 <     NUMBER_PER_CIDR = 355,
317 <     NUMBER_PER_IP = 356,
318 <     OPERATOR = 357,
319 <     OPERS_BYPASS_CALLERID = 358,
320 <     OPER_ONLY_UMODES = 359,
321 <     OPER_PASS_RESV = 360,
322 <     OPER_SPY_T = 361,
323 <     OPER_UMODES = 362,
324 <     JOIN_FLOOD_COUNT = 363,
325 <     JOIN_FLOOD_TIME = 364,
326 <     PACE_WAIT = 365,
327 <     PACE_WAIT_SIMPLE = 366,
328 <     PASSWORD = 367,
329 <     PATH = 368,
330 <     PING_COOKIE = 369,
331 <     PING_TIME = 370,
332 <     PING_WARNING = 371,
333 <     PORT = 372,
334 <     QSTRING = 373,
335 <     QUIET_ON_BAN = 374,
336 <     REASON = 375,
337 <     REDIRPORT = 376,
338 <     REDIRSERV = 377,
339 <     REGEX_T = 378,
340 <     REHASH = 379,
341 <     REMOTE = 380,
342 <     REMOTEBAN = 381,
343 <     RESTRICT_CHANNELS = 382,
344 <     RSA_PRIVATE_KEY_FILE = 383,
345 <     RSA_PUBLIC_KEY_FILE = 384,
346 <     SSL_CERTIFICATE_FILE = 385,
347 <     SSL_DH_PARAM_FILE = 386,
348 <     T_SSL_CLIENT_METHOD = 387,
349 <     T_SSL_SERVER_METHOD = 388,
350 <     T_SSLV3 = 389,
351 <     T_TLSV1 = 390,
352 <     RESV = 391,
353 <     RESV_EXEMPT = 392,
354 <     SECONDS = 393,
355 <     MINUTES = 394,
356 <     HOURS = 395,
357 <     DAYS = 396,
358 <     WEEKS = 397,
359 <     SENDQ = 398,
360 <     SEND_PASSWORD = 399,
361 <     SERVERHIDE = 400,
362 <     SERVERINFO = 401,
363 <     IRCD_SID = 402,
364 <     TKLINE_EXPIRE_NOTICES = 403,
365 <     T_SHARED = 404,
366 <     T_CLUSTER = 405,
367 <     TYPE = 406,
368 <     SHORT_MOTD = 407,
369 <     SPOOF = 408,
370 <     SPOOF_NOTICE = 409,
371 <     STATS_E_DISABLED = 410,
372 <     STATS_I_OPER_ONLY = 411,
373 <     STATS_K_OPER_ONLY = 412,
374 <     STATS_O_OPER_ONLY = 413,
375 <     STATS_P_OPER_ONLY = 414,
376 <     TBOOL = 415,
377 <     TMASKED = 416,
378 <     TS_MAX_DELTA = 417,
379 <     TS_WARN_DELTA = 418,
380 <     TWODOTS = 419,
381 <     T_ALL = 420,
382 <     T_BOTS = 421,
383 <     T_SOFTCALLERID = 422,
384 <     T_CALLERID = 423,
385 <     T_CCONN = 424,
386 <     T_CCONN_FULL = 425,
387 <     T_SSL_CIPHER_LIST = 426,
388 <     T_DEAF = 427,
389 <     T_DEBUG = 428,
390 <     T_DLINE = 429,
391 <     T_EXTERNAL = 430,
392 <     T_FULL = 431,
393 <     T_INVISIBLE = 432,
394 <     T_IPV4 = 433,
395 <     T_IPV6 = 434,
396 <     T_LOCOPS = 435,
397 <     T_MAX_CLIENTS = 436,
398 <     T_NCHANGE = 437,
399 <     T_OPERWALL = 438,
400 <     T_RECVQ = 439,
401 <     T_REJ = 440,
402 <     T_SERVER = 441,
403 <     T_SERVNOTICE = 442,
404 <     T_SET = 443,
405 <     T_SKILL = 444,
406 <     T_SPY = 445,
407 <     T_SSL = 446,
408 <     T_UMODES = 447,
409 <     T_UNAUTH = 448,
410 <     T_UNDLINE = 449,
411 <     T_UNLIMITED = 450,
412 <     T_UNRESV = 451,
413 <     T_UNXLINE = 452,
414 <     T_GLOBOPS = 453,
415 <     T_WALLOP = 454,
416 <     T_RESTART = 455,
417 <     T_SERVICE = 456,
418 <     T_SERVICES_NAME = 457,
419 <     THROTTLE_TIME = 458,
420 <     TRUE_NO_OPER_FLOOD = 459,
421 <     UNKLINE = 460,
422 <     USER = 461,
423 <     USE_EGD = 462,
424 <     USE_LOGGING = 463,
425 <     VHOST = 464,
426 <     VHOST6 = 465,
427 <     XLINE = 466,
428 <     WARN_NO_NLINE = 467,
429 <     T_SIZE = 468,
430 <     T_FILE = 469
431 <   };
216 >  enum yytokentype
217 >  {
218 >    ACCEPT_PASSWORD = 258,
219 >    ADMIN = 259,
220 >    AFTYPE = 260,
221 >    ANTI_NICK_FLOOD = 261,
222 >    ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
223 >    AUTOCONN = 263,
224 >    BYTES = 264,
225 >    KBYTES = 265,
226 >    MBYTES = 266,
227 >    CALLER_ID_WAIT = 267,
228 >    CAN_FLOOD = 268,
229 >    CHANNEL = 269,
230 >    CIDR_BITLEN_IPV4 = 270,
231 >    CIDR_BITLEN_IPV6 = 271,
232 >    CLASS = 272,
233 >    CONNECT = 273,
234 >    CONNECTFREQ = 274,
235 >    CYCLE_ON_HOST_CHANGE = 275,
236 >    DEFAULT_FLOODCOUNT = 276,
237 >    DEFAULT_SPLIT_SERVER_COUNT = 277,
238 >    DEFAULT_SPLIT_USER_COUNT = 278,
239 >    DENY = 279,
240 >    DESCRIPTION = 280,
241 >    DIE = 281,
242 >    DISABLE_AUTH = 282,
243 >    DISABLE_FAKE_CHANNELS = 283,
244 >    DISABLE_REMOTE_COMMANDS = 284,
245 >    DOTS_IN_IDENT = 285,
246 >    EGDPOOL_PATH = 286,
247 >    EMAIL = 287,
248 >    ENCRYPTED = 288,
249 >    EXCEED_LIMIT = 289,
250 >    EXEMPT = 290,
251 >    FAILED_OPER_NOTICE = 291,
252 >    FLATTEN_LINKS = 292,
253 >    GECOS = 293,
254 >    GENERAL = 294,
255 >    GLINE = 295,
256 >    GLINE_DURATION = 296,
257 >    GLINE_ENABLE = 297,
258 >    GLINE_EXEMPT = 298,
259 >    GLINE_MIN_CIDR = 299,
260 >    GLINE_MIN_CIDR6 = 300,
261 >    GLINE_REQUEST_DURATION = 301,
262 >    GLOBAL_KILL = 302,
263 >    HAVENT_READ_CONF = 303,
264 >    HIDDEN = 304,
265 >    HIDDEN_NAME = 305,
266 >    HIDE_CHANS = 306,
267 >    HIDE_IDLE = 307,
268 >    HIDE_IDLE_FROM_OPERS = 308,
269 >    HIDE_SERVER_IPS = 309,
270 >    HIDE_SERVERS = 310,
271 >    HIDE_SERVICES = 311,
272 >    HIDE_SPOOF_IPS = 312,
273 >    HOST = 313,
274 >    HUB = 314,
275 >    HUB_MASK = 315,
276 >    IGNORE_BOGUS_TS = 316,
277 >    INVISIBLE_ON_CONNECT = 317,
278 >    INVITE_DELAY = 318,
279 >    INVITE_DELAY_CHANNEL = 319,
280 >    IP = 320,
281 >    IRCD_AUTH = 321,
282 >    IRCD_FLAGS = 322,
283 >    IRCD_SID = 323,
284 >    JOIN_FLOOD_COUNT = 324,
285 >    JOIN_FLOOD_TIME = 325,
286 >    KILL = 326,
287 >    KILL_CHASE_TIME_LIMIT = 327,
288 >    KLINE = 328,
289 >    KLINE_EXEMPT = 329,
290 >    KNOCK_DELAY = 330,
291 >    KNOCK_DELAY_CHANNEL = 331,
292 >    LEAF_MASK = 332,
293 >    LINKS_DELAY = 333,
294 >    LISTEN = 334,
295 >    MASK = 335,
296 >    MAX_ACCEPT = 336,
297 >    MAX_BANS = 337,
298 >    MAX_CHANS_PER_OPER = 338,
299 >    MAX_CHANS_PER_USER = 339,
300 >    MAX_GLOBAL = 340,
301 >    MAX_IDENT = 341,
302 >    MAX_IDLE = 342,
303 >    MAX_LOCAL = 343,
304 >    MAX_NICK_CHANGES = 344,
305 >    MAX_NICK_LENGTH = 345,
306 >    MAX_NICK_TIME = 346,
307 >    MAX_NUMBER = 347,
308 >    MAX_TARGETS = 348,
309 >    MAX_TOPIC_LENGTH = 349,
310 >    MAX_WATCH = 350,
311 >    MIN_IDLE = 351,
312 >    MIN_NONWILDCARD = 352,
313 >    MIN_NONWILDCARD_SIMPLE = 353,
314 >    MODULE = 354,
315 >    MODULES = 355,
316 >    MOTD = 356,
317 >    NAME = 357,
318 >    NEED_IDENT = 358,
319 >    NEED_PASSWORD = 359,
320 >    NETWORK_DESC = 360,
321 >    NETWORK_NAME = 361,
322 >    NICK = 362,
323 >    NO_CREATE_ON_SPLIT = 363,
324 >    NO_JOIN_ON_SPLIT = 364,
325 >    NO_OPER_FLOOD = 365,
326 >    NO_TILDE = 366,
327 >    NUMBER = 367,
328 >    NUMBER_PER_CIDR = 368,
329 >    NUMBER_PER_IP = 369,
330 >    OPER_ONLY_UMODES = 370,
331 >    OPER_PASS_RESV = 371,
332 >    OPER_UMODES = 372,
333 >    OPERATOR = 373,
334 >    OPERS_BYPASS_CALLERID = 374,
335 >    PACE_WAIT = 375,
336 >    PACE_WAIT_SIMPLE = 376,
337 >    PASSWORD = 377,
338 >    PATH = 378,
339 >    PING_COOKIE = 379,
340 >    PING_TIME = 380,
341 >    PORT = 381,
342 >    QSTRING = 382,
343 >    RANDOM_IDLE = 383,
344 >    REASON = 384,
345 >    REDIRPORT = 385,
346 >    REDIRSERV = 386,
347 >    REHASH = 387,
348 >    REMOTE = 388,
349 >    REMOTEBAN = 389,
350 >    RESV = 390,
351 >    RESV_EXEMPT = 391,
352 >    RSA_PRIVATE_KEY_FILE = 392,
353 >    RSA_PUBLIC_KEY_FILE = 393,
354 >    SECONDS = 394,
355 >    MINUTES = 395,
356 >    HOURS = 396,
357 >    DAYS = 397,
358 >    WEEKS = 398,
359 >    MONTHS = 399,
360 >    YEARS = 400,
361 >    SEND_PASSWORD = 401,
362 >    SENDQ = 402,
363 >    SERVERHIDE = 403,
364 >    SERVERINFO = 404,
365 >    SHORT_MOTD = 405,
366 >    SPOOF = 406,
367 >    SPOOF_NOTICE = 407,
368 >    SQUIT = 408,
369 >    SSL_CERTIFICATE_FILE = 409,
370 >    SSL_CERTIFICATE_FINGERPRINT = 410,
371 >    SSL_CONNECTION_REQUIRED = 411,
372 >    SSL_DH_PARAM_FILE = 412,
373 >    STATS_E_DISABLED = 413,
374 >    STATS_I_OPER_ONLY = 414,
375 >    STATS_K_OPER_ONLY = 415,
376 >    STATS_O_OPER_ONLY = 416,
377 >    STATS_P_OPER_ONLY = 417,
378 >    STATS_U_OPER_ONLY = 418,
379 >    T_ALL = 419,
380 >    T_BOTS = 420,
381 >    T_CALLERID = 421,
382 >    T_CCONN = 422,
383 >    T_CLUSTER = 423,
384 >    T_DEAF = 424,
385 >    T_DEBUG = 425,
386 >    T_DLINE = 426,
387 >    T_EXTERNAL = 427,
388 >    T_FARCONNECT = 428,
389 >    T_FILE = 429,
390 >    T_FULL = 430,
391 >    T_GLOBOPS = 431,
392 >    T_INVISIBLE = 432,
393 >    T_IPV4 = 433,
394 >    T_IPV6 = 434,
395 >    T_LOCOPS = 435,
396 >    T_LOG = 436,
397 >    T_MAX_CLIENTS = 437,
398 >    T_NCHANGE = 438,
399 >    T_NONONREG = 439,
400 >    T_OPERWALL = 440,
401 >    T_RECVQ = 441,
402 >    T_REJ = 442,
403 >    T_RESTART = 443,
404 >    T_SERVER = 444,
405 >    T_SERVICE = 445,
406 >    T_SERVICES_NAME = 446,
407 >    T_SERVNOTICE = 447,
408 >    T_SET = 448,
409 >    T_SHARED = 449,
410 >    T_SIZE = 450,
411 >    T_SKILL = 451,
412 >    T_SOFTCALLERID = 452,
413 >    T_SPY = 453,
414 >    T_SSL = 454,
415 >    T_SSL_CIPHER_LIST = 455,
416 >    T_SSL_CLIENT_METHOD = 456,
417 >    T_SSL_SERVER_METHOD = 457,
418 >    T_SSLV3 = 458,
419 >    T_TLSV1 = 459,
420 >    T_UMODES = 460,
421 >    T_UNAUTH = 461,
422 >    T_UNDLINE = 462,
423 >    T_UNLIMITED = 463,
424 >    T_UNRESV = 464,
425 >    T_UNXLINE = 465,
426 >    T_WALLOP = 466,
427 >    T_WALLOPS = 467,
428 >    T_WEBIRC = 468,
429 >    TBOOL = 469,
430 >    THROTTLE_TIME = 470,
431 >    TKLINE_EXPIRE_NOTICES = 471,
432 >    TMASKED = 472,
433 >    TRUE_NO_OPER_FLOOD = 473,
434 >    TS_MAX_DELTA = 474,
435 >    TS_WARN_DELTA = 475,
436 >    TWODOTS = 476,
437 >    TYPE = 477,
438 >    UNKLINE = 478,
439 >    USE_EGD = 479,
440 >    USE_LOGGING = 480,
441 >    USER = 481,
442 >    VHOST = 482,
443 >    VHOST6 = 483,
444 >    WARN_NO_CONNECT_BLOCK = 484,
445 >    XLINE = 485
446 >  };
447   #endif
448   /* Tokens.  */
449   #define ACCEPT_PASSWORD 258
# Line 417 | Line 463 | extern int yydebug;
463   #define CLASS 272
464   #define CONNECT 273
465   #define CONNECTFREQ 274
466 < #define DEFAULT_FLOODCOUNT 275
467 < #define DEFAULT_SPLIT_SERVER_COUNT 276
468 < #define DEFAULT_SPLIT_USER_COUNT 277
469 < #define DENY 278
470 < #define DESCRIPTION 279
471 < #define DIE 280
472 < #define DISABLE_AUTH 281
473 < #define DISABLE_FAKE_CHANNELS 282
474 < #define DISABLE_REMOTE_COMMANDS 283
475 < #define DOTS_IN_IDENT 284
476 < #define EGDPOOL_PATH 285
477 < #define EMAIL 286
478 < #define ENCRYPTED 287
479 < #define EXCEED_LIMIT 288
480 < #define EXEMPT 289
481 < #define FAILED_OPER_NOTICE 290
482 < #define IRCD_FLAGS 291
466 > #define CYCLE_ON_HOST_CHANGE 275
467 > #define DEFAULT_FLOODCOUNT 276
468 > #define DEFAULT_SPLIT_SERVER_COUNT 277
469 > #define DEFAULT_SPLIT_USER_COUNT 278
470 > #define DENY 279
471 > #define DESCRIPTION 280
472 > #define DIE 281
473 > #define DISABLE_AUTH 282
474 > #define DISABLE_FAKE_CHANNELS 283
475 > #define DISABLE_REMOTE_COMMANDS 284
476 > #define DOTS_IN_IDENT 285
477 > #define EGDPOOL_PATH 286
478 > #define EMAIL 287
479 > #define ENCRYPTED 288
480 > #define EXCEED_LIMIT 289
481 > #define EXEMPT 290
482 > #define FAILED_OPER_NOTICE 291
483   #define FLATTEN_LINKS 292
484   #define GECOS 293
485   #define GENERAL 294
# Line 441 | Line 487 | extern int yydebug;
487   #define GLINE_DURATION 296
488   #define GLINE_ENABLE 297
489   #define GLINE_EXEMPT 298
490 < #define GLINE_REQUEST_DURATION 299
491 < #define GLINE_MIN_CIDR 300
492 < #define GLINE_MIN_CIDR6 301
490 > #define GLINE_MIN_CIDR 299
491 > #define GLINE_MIN_CIDR6 300
492 > #define GLINE_REQUEST_DURATION 301
493   #define GLOBAL_KILL 302
494 < #define IRCD_AUTH 303
495 < #define NEED_IDENT 304
496 < #define HAVENT_READ_CONF 305
497 < #define HIDDEN 306
498 < #define HIDDEN_NAME 307
499 < #define HIDE_SERVER_IPS 308
500 < #define HIDE_SERVERS 309
501 < #define HIDE_SPOOF_IPS 310
502 < #define HOST 311
503 < #define HUB 312
504 < #define HUB_MASK 313
505 < #define IGNORE_BOGUS_TS 314
506 < #define INVISIBLE_ON_CONNECT 315
507 < #define IP 316
508 < #define KILL 317
509 < #define KILL_CHASE_TIME_LIMIT 318
510 < #define KLINE 319
511 < #define KLINE_EXEMPT 320
512 < #define KNOCK_DELAY 321
513 < #define KNOCK_DELAY_CHANNEL 322
514 < #define LEAF_MASK 323
515 < #define LINKS_DELAY 324
516 < #define LISTEN 325
517 < #define T_LOG 326
518 < #define MAX_ACCEPT 327
519 < #define MAX_BANS 328
520 < #define MAX_CHANS_PER_OPER 329
521 < #define MAX_CHANS_PER_USER 330
522 < #define MAX_GLOBAL 331
523 < #define MAX_IDENT 332
524 < #define MAX_LOCAL 333
525 < #define MAX_NICK_CHANGES 334
526 < #define MAX_NICK_TIME 335
527 < #define MAX_NUMBER 336
528 < #define MAX_TARGETS 337
529 < #define MAX_WATCH 338
530 < #define MESSAGE_LOCALE 339
531 < #define MIN_NONWILDCARD 340
532 < #define MIN_NONWILDCARD_SIMPLE 341
533 < #define MODULE 342
534 < #define MODULES 343
535 < #define NAME 344
536 < #define NEED_PASSWORD 345
537 < #define NETWORK_DESC 346
538 < #define NETWORK_NAME 347
539 < #define NICK 348
540 < #define NICK_CHANGES 349
541 < #define NO_CREATE_ON_SPLIT 350
542 < #define NO_JOIN_ON_SPLIT 351
543 < #define NO_OPER_FLOOD 352
544 < #define NO_TILDE 353
545 < #define NUMBER 354
546 < #define NUMBER_PER_CIDR 355
547 < #define NUMBER_PER_IP 356
548 < #define OPERATOR 357
549 < #define OPERS_BYPASS_CALLERID 358
550 < #define OPER_ONLY_UMODES 359
551 < #define OPER_PASS_RESV 360
552 < #define OPER_SPY_T 361
553 < #define OPER_UMODES 362
554 < #define JOIN_FLOOD_COUNT 363
555 < #define JOIN_FLOOD_TIME 364
556 < #define PACE_WAIT 365
557 < #define PACE_WAIT_SIMPLE 366
558 < #define PASSWORD 367
559 < #define PATH 368
560 < #define PING_COOKIE 369
561 < #define PING_TIME 370
562 < #define PING_WARNING 371
563 < #define PORT 372
564 < #define QSTRING 373
565 < #define QUIET_ON_BAN 374
566 < #define REASON 375
567 < #define REDIRPORT 376
568 < #define REDIRSERV 377
569 < #define REGEX_T 378
570 < #define REHASH 379
571 < #define REMOTE 380
572 < #define REMOTEBAN 381
573 < #define RESTRICT_CHANNELS 382
574 < #define RSA_PRIVATE_KEY_FILE 383
575 < #define RSA_PUBLIC_KEY_FILE 384
576 < #define SSL_CERTIFICATE_FILE 385
577 < #define SSL_DH_PARAM_FILE 386
578 < #define T_SSL_CLIENT_METHOD 387
579 < #define T_SSL_SERVER_METHOD 388
580 < #define T_SSLV3 389
581 < #define T_TLSV1 390
582 < #define RESV 391
583 < #define RESV_EXEMPT 392
584 < #define SECONDS 393
585 < #define MINUTES 394
586 < #define HOURS 395
587 < #define DAYS 396
588 < #define WEEKS 397
589 < #define SENDQ 398
590 < #define SEND_PASSWORD 399
591 < #define SERVERHIDE 400
592 < #define SERVERINFO 401
593 < #define IRCD_SID 402
594 < #define TKLINE_EXPIRE_NOTICES 403
595 < #define T_SHARED 404
596 < #define T_CLUSTER 405
597 < #define TYPE 406
598 < #define SHORT_MOTD 407
599 < #define SPOOF 408
600 < #define SPOOF_NOTICE 409
601 < #define STATS_E_DISABLED 410
602 < #define STATS_I_OPER_ONLY 411
603 < #define STATS_K_OPER_ONLY 412
604 < #define STATS_O_OPER_ONLY 413
605 < #define STATS_P_OPER_ONLY 414
606 < #define TBOOL 415
607 < #define TMASKED 416
608 < #define TS_MAX_DELTA 417
609 < #define TS_WARN_DELTA 418
610 < #define TWODOTS 419
611 < #define T_ALL 420
612 < #define T_BOTS 421
613 < #define T_SOFTCALLERID 422
614 < #define T_CALLERID 423
615 < #define T_CCONN 424
616 < #define T_CCONN_FULL 425
617 < #define T_SSL_CIPHER_LIST 426
618 < #define T_DEAF 427
619 < #define T_DEBUG 428
620 < #define T_DLINE 429
621 < #define T_EXTERNAL 430
622 < #define T_FULL 431
494 > #define HAVENT_READ_CONF 303
495 > #define HIDDEN 304
496 > #define HIDDEN_NAME 305
497 > #define HIDE_CHANS 306
498 > #define HIDE_IDLE 307
499 > #define HIDE_IDLE_FROM_OPERS 308
500 > #define HIDE_SERVER_IPS 309
501 > #define HIDE_SERVERS 310
502 > #define HIDE_SERVICES 311
503 > #define HIDE_SPOOF_IPS 312
504 > #define HOST 313
505 > #define HUB 314
506 > #define HUB_MASK 315
507 > #define IGNORE_BOGUS_TS 316
508 > #define INVISIBLE_ON_CONNECT 317
509 > #define INVITE_DELAY 318
510 > #define INVITE_DELAY_CHANNEL 319
511 > #define IP 320
512 > #define IRCD_AUTH 321
513 > #define IRCD_FLAGS 322
514 > #define IRCD_SID 323
515 > #define JOIN_FLOOD_COUNT 324
516 > #define JOIN_FLOOD_TIME 325
517 > #define KILL 326
518 > #define KILL_CHASE_TIME_LIMIT 327
519 > #define KLINE 328
520 > #define KLINE_EXEMPT 329
521 > #define KNOCK_DELAY 330
522 > #define KNOCK_DELAY_CHANNEL 331
523 > #define LEAF_MASK 332
524 > #define LINKS_DELAY 333
525 > #define LISTEN 334
526 > #define MASK 335
527 > #define MAX_ACCEPT 336
528 > #define MAX_BANS 337
529 > #define MAX_CHANS_PER_OPER 338
530 > #define MAX_CHANS_PER_USER 339
531 > #define MAX_GLOBAL 340
532 > #define MAX_IDENT 341
533 > #define MAX_IDLE 342
534 > #define MAX_LOCAL 343
535 > #define MAX_NICK_CHANGES 344
536 > #define MAX_NICK_LENGTH 345
537 > #define MAX_NICK_TIME 346
538 > #define MAX_NUMBER 347
539 > #define MAX_TARGETS 348
540 > #define MAX_TOPIC_LENGTH 349
541 > #define MAX_WATCH 350
542 > #define MIN_IDLE 351
543 > #define MIN_NONWILDCARD 352
544 > #define MIN_NONWILDCARD_SIMPLE 353
545 > #define MODULE 354
546 > #define MODULES 355
547 > #define MOTD 356
548 > #define NAME 357
549 > #define NEED_IDENT 358
550 > #define NEED_PASSWORD 359
551 > #define NETWORK_DESC 360
552 > #define NETWORK_NAME 361
553 > #define NICK 362
554 > #define NO_CREATE_ON_SPLIT 363
555 > #define NO_JOIN_ON_SPLIT 364
556 > #define NO_OPER_FLOOD 365
557 > #define NO_TILDE 366
558 > #define NUMBER 367
559 > #define NUMBER_PER_CIDR 368
560 > #define NUMBER_PER_IP 369
561 > #define OPER_ONLY_UMODES 370
562 > #define OPER_PASS_RESV 371
563 > #define OPER_UMODES 372
564 > #define OPERATOR 373
565 > #define OPERS_BYPASS_CALLERID 374
566 > #define PACE_WAIT 375
567 > #define PACE_WAIT_SIMPLE 376
568 > #define PASSWORD 377
569 > #define PATH 378
570 > #define PING_COOKIE 379
571 > #define PING_TIME 380
572 > #define PORT 381
573 > #define QSTRING 382
574 > #define RANDOM_IDLE 383
575 > #define REASON 384
576 > #define REDIRPORT 385
577 > #define REDIRSERV 386
578 > #define REHASH 387
579 > #define REMOTE 388
580 > #define REMOTEBAN 389
581 > #define RESV 390
582 > #define RESV_EXEMPT 391
583 > #define RSA_PRIVATE_KEY_FILE 392
584 > #define RSA_PUBLIC_KEY_FILE 393
585 > #define SECONDS 394
586 > #define MINUTES 395
587 > #define HOURS 396
588 > #define DAYS 397
589 > #define WEEKS 398
590 > #define MONTHS 399
591 > #define YEARS 400
592 > #define SEND_PASSWORD 401
593 > #define SENDQ 402
594 > #define SERVERHIDE 403
595 > #define SERVERINFO 404
596 > #define SHORT_MOTD 405
597 > #define SPOOF 406
598 > #define SPOOF_NOTICE 407
599 > #define SQUIT 408
600 > #define SSL_CERTIFICATE_FILE 409
601 > #define SSL_CERTIFICATE_FINGERPRINT 410
602 > #define SSL_CONNECTION_REQUIRED 411
603 > #define SSL_DH_PARAM_FILE 412
604 > #define STATS_E_DISABLED 413
605 > #define STATS_I_OPER_ONLY 414
606 > #define STATS_K_OPER_ONLY 415
607 > #define STATS_O_OPER_ONLY 416
608 > #define STATS_P_OPER_ONLY 417
609 > #define STATS_U_OPER_ONLY 418
610 > #define T_ALL 419
611 > #define T_BOTS 420
612 > #define T_CALLERID 421
613 > #define T_CCONN 422
614 > #define T_CLUSTER 423
615 > #define T_DEAF 424
616 > #define T_DEBUG 425
617 > #define T_DLINE 426
618 > #define T_EXTERNAL 427
619 > #define T_FARCONNECT 428
620 > #define T_FILE 429
621 > #define T_FULL 430
622 > #define T_GLOBOPS 431
623   #define T_INVISIBLE 432
624   #define T_IPV4 433
625   #define T_IPV6 434
626   #define T_LOCOPS 435
627 < #define T_MAX_CLIENTS 436
628 < #define T_NCHANGE 437
629 < #define T_OPERWALL 438
630 < #define T_RECVQ 439
631 < #define T_REJ 440
632 < #define T_SERVER 441
633 < #define T_SERVNOTICE 442
634 < #define T_SET 443
635 < #define T_SKILL 444
636 < #define T_SPY 445
637 < #define T_SSL 446
638 < #define T_UMODES 447
639 < #define T_UNAUTH 448
640 < #define T_UNDLINE 449
641 < #define T_UNLIMITED 450
642 < #define T_UNRESV 451
643 < #define T_UNXLINE 452
644 < #define T_GLOBOPS 453
645 < #define T_WALLOP 454
646 < #define T_RESTART 455
647 < #define T_SERVICE 456
648 < #define T_SERVICES_NAME 457
649 < #define THROTTLE_TIME 458
650 < #define TRUE_NO_OPER_FLOOD 459
651 < #define UNKLINE 460
652 < #define USER 461
653 < #define USE_EGD 462
654 < #define USE_LOGGING 463
655 < #define VHOST 464
656 < #define VHOST6 465
657 < #define XLINE 466
658 < #define WARN_NO_NLINE 467
659 < #define T_SIZE 468
660 < #define T_FILE 469
661 <
662 <
627 > #define T_LOG 436
628 > #define T_MAX_CLIENTS 437
629 > #define T_NCHANGE 438
630 > #define T_NONONREG 439
631 > #define T_OPERWALL 440
632 > #define T_RECVQ 441
633 > #define T_REJ 442
634 > #define T_RESTART 443
635 > #define T_SERVER 444
636 > #define T_SERVICE 445
637 > #define T_SERVICES_NAME 446
638 > #define T_SERVNOTICE 447
639 > #define T_SET 448
640 > #define T_SHARED 449
641 > #define T_SIZE 450
642 > #define T_SKILL 451
643 > #define T_SOFTCALLERID 452
644 > #define T_SPY 453
645 > #define T_SSL 454
646 > #define T_SSL_CIPHER_LIST 455
647 > #define T_SSL_CLIENT_METHOD 456
648 > #define T_SSL_SERVER_METHOD 457
649 > #define T_SSLV3 458
650 > #define T_TLSV1 459
651 > #define T_UMODES 460
652 > #define T_UNAUTH 461
653 > #define T_UNDLINE 462
654 > #define T_UNLIMITED 463
655 > #define T_UNRESV 464
656 > #define T_UNXLINE 465
657 > #define T_WALLOP 466
658 > #define T_WALLOPS 467
659 > #define T_WEBIRC 468
660 > #define TBOOL 469
661 > #define THROTTLE_TIME 470
662 > #define TKLINE_EXPIRE_NOTICES 471
663 > #define TMASKED 472
664 > #define TRUE_NO_OPER_FLOOD 473
665 > #define TS_MAX_DELTA 474
666 > #define TS_WARN_DELTA 475
667 > #define TWODOTS 476
668 > #define TYPE 477
669 > #define UNKLINE 478
670 > #define USE_EGD 479
671 > #define USE_LOGGING 480
672 > #define USER 481
673 > #define VHOST 482
674 > #define VHOST6 483
675 > #define WARN_NO_CONNECT_BLOCK 484
676 > #define XLINE 485
677  
678 + /* Value type.  */
679   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
680 < typedef union YYSTYPE
680 > typedef union YYSTYPE YYSTYPE;
681 > union YYSTYPE
682   {
683 < /* Line 374 of yacc.c  */
622 < #line 110 "conf_parser.y"
683 > #line 146 "conf_parser.y" /* yacc.c:355  */
684  
685    int number;
686    char *string;
687  
688 <
689 < /* Line 374 of yacc.c  */
629 < #line 630 "conf_parser.c"
630 < } YYSTYPE;
688 > #line 689 "conf_parser.c" /* yacc.c:355  */
689 > };
690   # define YYSTYPE_IS_TRIVIAL 1
632 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
691   # define YYSTYPE_IS_DECLARED 1
692   #endif
693  
694 +
695   extern YYSTYPE yylval;
696  
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
697   int yyparse (void);
647 #else
648 int yyparse ();
649 #endif
650 #endif /* ! YYPARSE_PARAM */
698  
699 < #endif /* !YY_YY_Y_TAB_H_INCLUDED  */
699 > #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
700  
701   /* Copy the second part of user declarations.  */
702  
703 < /* Line 377 of yacc.c  */
657 < #line 658 "conf_parser.c"
703 > #line 704 "conf_parser.c" /* yacc.c:358  */
704  
705   #ifdef short
706   # undef short
# Line 668 | Line 714 | typedef unsigned char yytype_uint8;
714  
715   #ifdef YYTYPE_INT8
716   typedef YYTYPE_INT8 yytype_int8;
671 #elif (defined __STDC__ || defined __C99__FUNC__ \
672     || defined __cplusplus || defined _MSC_VER)
673 typedef signed char yytype_int8;
717   #else
718 < typedef short int yytype_int8;
718 > typedef signed char yytype_int8;
719   #endif
720  
721   #ifdef YYTYPE_UINT16
# Line 692 | Line 735 | typedef short int yytype_int16;
735   #  define YYSIZE_T __SIZE_TYPE__
736   # elif defined size_t
737   #  define YYSIZE_T size_t
738 < # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
696 <     || defined __cplusplus || defined _MSC_VER)
738 > # elif ! defined YYSIZE_T
739   #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
740   #  define YYSIZE_T size_t
741   # else
# Line 715 | Line 757 | typedef short int yytype_int16;
757   # endif
758   #endif
759  
760 + #ifndef YY_ATTRIBUTE
761 + # if (defined __GNUC__                                               \
762 +      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
763 +     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
764 + #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
765 + # else
766 + #  define YY_ATTRIBUTE(Spec) /* empty */
767 + # endif
768 + #endif
769 +
770 + #ifndef YY_ATTRIBUTE_PURE
771 + # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
772 + #endif
773 +
774 + #ifndef YY_ATTRIBUTE_UNUSED
775 + # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
776 + #endif
777 +
778 + #if !defined _Noreturn \
779 +     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
780 + # if defined _MSC_VER && 1200 <= _MSC_VER
781 + #  define _Noreturn __declspec (noreturn)
782 + # else
783 + #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
784 + # endif
785 + #endif
786 +
787   /* Suppress unused-variable warnings by "using" E.  */
788   #if ! defined lint || defined __GNUC__
789   # define YYUSE(E) ((void) (E))
# Line 722 | Line 791 | typedef short int yytype_int16;
791   # define YYUSE(E) /* empty */
792   #endif
793  
794 < /* Identity function, used to suppress warnings about constant conditions.  */
795 < #ifndef lint
796 < # define YYID(N) (N)
797 < #else
798 < #if (defined __STDC__ || defined __C99__FUNC__ \
799 <     || defined __cplusplus || defined _MSC_VER)
800 < static int
801 < YYID (int yyi)
794 > #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
795 > /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
796 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
797 >    _Pragma ("GCC diagnostic push") \
798 >    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
799 >    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
800 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
801 >    _Pragma ("GCC diagnostic pop")
802   #else
803 < static int
735 < YYID (yyi)
736 <    int yyi;
803 > # define YY_INITIAL_VALUE(Value) Value
804   #endif
805 < {
806 <  return yyi;
807 < }
805 > #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
806 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
807 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END
808 > #endif
809 > #ifndef YY_INITIAL_VALUE
810 > # define YY_INITIAL_VALUE(Value) /* Nothing. */
811   #endif
812  
813 +
814   #if ! defined yyoverflow || YYERROR_VERBOSE
815  
816   /* The parser invokes alloca or malloc; define the necessary symbols.  */
# Line 757 | Line 828 | YYID (yyi)
828   #    define alloca _alloca
829   #   else
830   #    define YYSTACK_ALLOC alloca
831 < #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
761 <     || defined __cplusplus || defined _MSC_VER)
831 > #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
832   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
833        /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
834   #     ifndef EXIT_SUCCESS
# Line 770 | Line 840 | YYID (yyi)
840   # endif
841  
842   # ifdef YYSTACK_ALLOC
843 <   /* Pacify GCC's `empty if-body' warning.  */
844 < #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
843 >   /* Pacify GCC's 'empty if-body' warning.  */
844 > #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
845   #  ifndef YYSTACK_ALLOC_MAXIMUM
846      /* The OS might guarantee only one guard page at the bottom of the stack,
847         and a page size can be as small as 4096 bytes.  So we cannot safely
# Line 787 | Line 857 | YYID (yyi)
857   #  endif
858   #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
859         && ! ((defined YYMALLOC || defined malloc) \
860 <             && (defined YYFREE || defined free)))
860 >             && (defined YYFREE || defined free)))
861   #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
862   #   ifndef EXIT_SUCCESS
863   #    define EXIT_SUCCESS 0
# Line 795 | Line 865 | YYID (yyi)
865   #  endif
866   #  ifndef YYMALLOC
867   #   define YYMALLOC malloc
868 < #   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
799 <     || defined __cplusplus || defined _MSC_VER)
868 > #   if ! defined malloc && ! defined EXIT_SUCCESS
869   void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
870   #   endif
871   #  endif
872   #  ifndef YYFREE
873   #   define YYFREE free
874 < #   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
806 <     || defined __cplusplus || defined _MSC_VER)
874 > #   if ! defined free && ! defined EXIT_SUCCESS
875   void free (void *); /* INFRINGES ON USER NAME SPACE */
876   #   endif
877   #  endif
# Line 813 | Line 881 | void free (void *); /* INFRINGES ON USER
881  
882   #if (! defined yyoverflow \
883       && (! defined __cplusplus \
884 <         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
884 >         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
885  
886   /* A type that is properly aligned for any stack member.  */
887   union yyalloc
# Line 838 | Line 906 | union yyalloc
906     elements in the stack, and YYPTR gives the new location of the
907     stack.  Advance YYPTR to a properly aligned location for the next
908     stack.  */
909 < # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
910 <    do                                                                  \
911 <      {                                                                 \
912 <        YYSIZE_T yynewbytes;                                            \
913 <        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
914 <        Stack = &yyptr->Stack_alloc;                                    \
915 <        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
916 <        yyptr += yynewbytes / sizeof (*yyptr);                          \
917 <      }                                                                 \
918 <    while (YYID (0))
909 > # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
910 >    do                                                                  \
911 >      {                                                                 \
912 >        YYSIZE_T yynewbytes;                                            \
913 >        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
914 >        Stack = &yyptr->Stack_alloc;                                    \
915 >        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
916 >        yyptr += yynewbytes / sizeof (*yyptr);                          \
917 >      }                                                                 \
918 >    while (0)
919  
920   #endif
921  
# Line 866 | Line 934 | union yyalloc
934            for (yyi = 0; yyi < (Count); yyi++)   \
935              (Dst)[yyi] = (Src)[yyi];            \
936          }                                       \
937 <      while (YYID (0))
937 >      while (0)
938   #  endif
939   # endif
940   #endif /* !YYCOPY_NEEDED */
# Line 874 | Line 942 | union yyalloc
942   /* YYFINAL -- State number of the termination state.  */
943   #define YYFINAL  2
944   /* YYLAST -- Last index in YYTABLE.  */
945 < #define YYLAST   1206
945 > #define YYLAST   1264
946  
947   /* YYNTOKENS -- Number of terminals.  */
948 < #define YYNTOKENS  220
948 > #define YYNTOKENS  237
949   /* YYNNTS -- Number of nonterminals.  */
950 < #define YYNNTS  283
950 > #define YYNNTS  293
951   /* YYNRULES -- Number of rules.  */
952 < #define YYNRULES  627
953 < /* YYNRULES -- Number of states.  */
954 < #define YYNSTATES  1228
952 > #define YYNRULES  665
953 > /* YYNSTATES -- Number of states.  */
954 > #define YYNSTATES  1302
955  
956 < /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
956 > /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
957 >   by yylex, with out-of-bounds checking.  */
958   #define YYUNDEFTOK  2
959 < #define YYMAXUTOK   469
959 > #define YYMAXUTOK   485
960  
961 < #define YYTRANSLATE(YYX)                                                \
961 > #define YYTRANSLATE(YYX)                                                \
962    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
963  
964 < /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
964 > /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
965 >   as returned by yylex, without out-of-bounds checking.  */
966   static const yytype_uint8 yytranslate[] =
967   {
968         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
969         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
970         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
971         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
972 <       2,     2,     2,     2,   219,     2,     2,     2,     2,     2,
973 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   215,
974 <       2,   218,     2,     2,     2,     2,     2,     2,     2,     2,
972 >       2,     2,     2,     2,   235,     2,     2,     2,     2,     2,
973 >       2,     2,     2,     2,     2,     2,     2,     2,   236,   231,
974 >       2,   234,     2,     2,     2,     2,     2,     2,     2,     2,
975         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
976         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
977         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
978         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
979         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
980 <       2,     2,     2,   217,     2,   216,     2,     2,     2,     2,
980 >       2,     2,     2,   233,     2,   232,     2,     2,     2,     2,
981         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
982         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
983         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 941 | Line 1011 | static const yytype_uint8 yytranslate[]
1011       175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1012       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1013       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1014 <     205,   206,   207,   208,   209,   210,   211,   212,   213,   214
1014 >     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1015 >     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1016 >     225,   226,   227,   228,   229,   230
1017   };
1018  
1019   #if YYDEBUG
1020 < /* 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.  */
1020 >  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1021   static const yytype_uint16 yyrline[] =
1022   {
1023 <       0,   330,   330,   331,   334,   335,   336,   337,   338,   339,
1024 <     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
1025 <     350,   351,   352,   353,   354,   355,   359,   359,   360,   364,
1026 <     368,   372,   376,   380,   386,   386,   387,   388,   389,   390,
1027 <     397,   400,   400,   401,   401,   401,   403,   409,   416,   418,
1028 <     418,   419,   419,   420,   420,   421,   421,   422,   422,   423,
1029 <     423,   424,   424,   425,   425,   426,   427,   430,   431,   433,
1030 <     433,   434,   440,   448,   448,   449,   455,   463,   502,   561,
1031 <     589,   597,   612,   627,   636,   650,   659,   687,   717,   740,
1032 <     749,   751,   751,   752,   752,   753,   753,   755,   764,   773,
1033 <     785,   786,   786,   788,   788,   789,   791,   798,   798,   808,
1034 <     809,   811,   811,   812,   812,   814,   819,   822,   828,   827,
1035 <     833,   833,   834,   838,   842,   846,   850,   854,   858,   869,
1036 <     868,   966,   966,   967,   967,   967,   968,   968,   968,   969,
1037 <     969,   969,   971,   980,  1017,  1029,  1040,  1082,  1092,  1091,
1038 <    1097,  1097,  1098,  1102,  1106,  1110,  1114,  1118,  1122,  1126,
1039 <    1130,  1134,  1138,  1142,  1146,  1150,  1154,  1158,  1162,  1166,
1040 <    1170,  1174,  1181,  1180,  1186,  1186,  1187,  1191,  1195,  1199,
1041 <    1203,  1207,  1211,  1215,  1219,  1223,  1227,  1231,  1235,  1239,
1042 <    1243,  1247,  1251,  1255,  1259,  1270,  1269,  1319,  1319,  1320,
1043 <    1321,  1321,  1322,  1323,  1324,  1325,  1326,  1327,  1328,  1329,
1044 <    1330,  1331,  1331,  1332,  1334,  1343,  1349,  1355,  1361,  1367,
1045 <    1373,  1379,  1385,  1391,  1397,  1404,  1410,  1416,  1426,  1425,
1046 <    1442,  1441,  1446,  1446,  1447,  1451,  1455,  1463,  1463,  1464,
1047 <    1464,  1464,  1464,  1464,  1466,  1466,  1468,  1468,  1470,  1484,
1048 <    1504,  1513,  1526,  1525,  1594,  1594,  1595,  1595,  1595,  1595,
1049 <    1596,  1596,  1596,  1597,  1597,  1599,  1634,  1647,  1656,  1668,
1050 <    1667,  1671,  1671,  1672,  1676,  1680,  1684,  1688,  1692,  1696,
1051 <    1700,  1704,  1710,  1729,  1739,  1753,  1752,  1768,  1768,  1769,
1052 <    1769,  1769,  1769,  1771,  1780,  1795,  1808,  1810,  1810,  1811,
1053 <    1811,  1813,  1829,  1828,  1844,  1844,  1845,  1845,  1845,  1845,
1054 <    1847,  1856,  1879,  1878,  1884,  1884,  1885,  1889,  1893,  1897,
1055 <    1901,  1905,  1909,  1913,  1917,  1921,  1931,  1930,  1947,  1947,
1056 <    1948,  1948,  1948,  1950,  1957,  1956,  1962,  1962,  1963,  1967,
1057 <    1971,  1975,  1979,  1983,  1987,  1991,  1995,  1999,  2009,  2008,
1058 <    2059,  2059,  2060,  2060,  2060,  2061,  2061,  2062,  2062,  2062,
1059 <    2063,  2063,  2063,  2064,  2064,  2065,  2067,  2076,  2085,  2111,
1060 <    2129,  2147,  2153,  2157,  2166,  2165,  2169,  2169,  2170,  2174,
1061 <    2180,  2191,  2202,  2213,  2222,  2241,  2240,  2308,  2307,  2311,
1062 <    2311,  2312,  2318,  2318,  2319,  2319,  2319,  2319,  2321,  2340,
1063 <    2350,  2349,  2373,  2373,  2374,  2374,  2374,  2376,  2382,  2391,
1064 <    2393,  2393,  2394,  2394,  2396,  2415,  2414,  2463,  2462,  2466,
1065 <    2466,  2467,  2473,  2473,  2474,  2474,  2474,  2474,  2476,  2482,
1066 <    2491,  2494,  2494,  2495,  2495,  2496,  2496,  2497,  2497,  2498,
1067 <    2498,  2499,  2499,  2500,  2501,  2502,  2502,  2503,  2503,  2504,
1068 <    2504,  2505,  2505,  2506,  2506,  2507,  2507,  2508,  2509,  2509,
1069 <    2510,  2510,  2511,  2511,  2512,  2512,  2513,  2513,  2514,  2515,
1070 <    2515,  2516,  2517,  2518,  2518,  2519,  2519,  2520,  2521,  2522,
1071 <    2523,  2523,  2524,  2527,  2532,  2538,  2544,  2550,  2555,  2560,
1072 <    2565,  2570,  2575,  2580,  2585,  2590,  2595,  2600,  2605,  2610,
1073 <    2615,  2620,  2626,  2637,  2642,  2647,  2652,  2657,  2662,  2665,
1074 <    2670,  2673,  2678,  2683,  2688,  2693,  2698,  2703,  2708,  2713,
1075 <    2718,  2729,  2734,  2739,  2744,  2753,  2762,  2767,  2772,  2778,
1076 <    2777,  2782,  2782,  2783,  2786,  2789,  2792,  2795,  2798,  2801,
1077 <    2804,  2807,  2810,  2813,  2816,  2819,  2822,  2825,  2828,  2831,
1078 <    2834,  2837,  2840,  2846,  2845,  2850,  2850,  2851,  2854,  2857,
1079 <    2860,  2863,  2866,  2869,  2872,  2875,  2878,  2881,  2884,  2887,
1080 <    2890,  2893,  2896,  2899,  2902,  2905,  2908,  2913,  2918,  2923,
1081 <    2932,  2935,  2935,  2936,  2937,  2937,  2938,  2938,  2939,  2939,
1082 <    2940,  2941,  2941,  2942,  2943,  2943,  2944,  2944,  2946,  2951,
1083 <    2956,  2961,  2966,  2971,  2976,  2981,  2986,  2991,  2996,  3001,
1084 <    3006,  3011,  3019,  3022,  3022,  3023,  3023,  3024,  3025,  3025,
1085 <    3026,  3027,  3029,  3035,  3041,  3050,  3064,  3070
1023 >       0,   380,   380,   381,   384,   385,   386,   387,   388,   389,
1024 >     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
1025 >     400,   401,   402,   403,   404,   405,   406,   410,   410,   411,
1026 >     412,   413,   414,   415,   416,   417,   418,   421,   421,   422,
1027 >     423,   424,   425,   432,   435,   435,   436,   436,   436,   438,
1028 >     444,   451,   453,   453,   454,   455,   456,   457,   458,   459,
1029 >     460,   461,   462,   463,   464,   465,   466,   467,   468,   469,
1030 >     470,   471,   474,   475,   477,   477,   478,   484,   492,   492,
1031 >     493,   499,   507,   549,   607,   635,   643,   658,   673,   682,
1032 >     696,   705,   733,   763,   788,   810,   832,   841,   843,   843,
1033 >     844,   845,   846,   847,   849,   858,   867,   880,   879,   897,
1034 >     897,   898,   898,   898,   900,   906,   915,   916,   916,   918,
1035 >     918,   919,   921,   928,   928,   941,   942,   944,   944,   945,
1036 >     945,   947,   955,   958,   964,   963,   969,   969,   970,   974,
1037 >     978,   982,   986,   990,   994,   998,  1002,  1013,  1012,  1092,
1038 >    1092,  1093,  1094,  1095,  1096,  1097,  1098,  1099,  1100,  1101,
1039 >    1102,  1103,  1105,  1111,  1117,  1123,  1134,  1140,  1146,  1157,
1040 >    1164,  1163,  1169,  1169,  1170,  1174,  1178,  1182,  1186,  1190,
1041 >    1194,  1198,  1202,  1206,  1210,  1214,  1218,  1222,  1226,  1230,
1042 >    1234,  1238,  1242,  1246,  1250,  1254,  1258,  1265,  1264,  1270,
1043 >    1270,  1271,  1275,  1279,  1283,  1287,  1291,  1295,  1299,  1303,
1044 >    1307,  1311,  1315,  1319,  1323,  1327,  1331,  1335,  1339,  1343,
1045 >    1347,  1351,  1355,  1359,  1363,  1374,  1373,  1434,  1434,  1435,
1046 >    1436,  1437,  1438,  1439,  1440,  1441,  1442,  1443,  1444,  1445,
1047 >    1446,  1446,  1447,  1448,  1449,  1450,  1452,  1458,  1464,  1470,
1048 >    1476,  1482,  1488,  1494,  1500,  1506,  1513,  1519,  1525,  1531,
1049 >    1540,  1550,  1549,  1555,  1555,  1556,  1560,  1571,  1570,  1577,
1050 >    1576,  1581,  1581,  1582,  1586,  1590,  1596,  1596,  1597,  1597,
1051 >    1597,  1597,  1597,  1599,  1599,  1601,  1601,  1603,  1617,  1635,
1052 >    1641,  1651,  1650,  1692,  1692,  1693,  1694,  1695,  1696,  1697,
1053 >    1698,  1699,  1700,  1701,  1703,  1709,  1715,  1721,  1733,  1732,
1054 >    1738,  1738,  1739,  1743,  1747,  1751,  1755,  1759,  1763,  1767,
1055 >    1771,  1775,  1781,  1795,  1804,  1818,  1817,  1832,  1832,  1833,
1056 >    1833,  1833,  1833,  1835,  1841,  1847,  1857,  1859,  1859,  1860,
1057 >    1860,  1862,  1878,  1877,  1902,  1902,  1903,  1903,  1903,  1903,
1058 >    1905,  1911,  1931,  1930,  1936,  1936,  1937,  1941,  1945,  1949,
1059 >    1953,  1957,  1961,  1965,  1969,  1973,  1983,  1982,  2003,  2003,
1060 >    2004,  2004,  2004,  2006,  2013,  2012,  2018,  2018,  2019,  2023,
1061 >    2027,  2031,  2035,  2039,  2043,  2047,  2051,  2055,  2065,  2064,
1062 >    2136,  2136,  2137,  2138,  2139,  2140,  2141,  2142,  2143,  2144,
1063 >    2145,  2146,  2147,  2148,  2149,  2150,  2151,  2153,  2159,  2165,
1064 >    2171,  2184,  2197,  2203,  2209,  2213,  2222,  2221,  2226,  2226,
1065 >    2227,  2231,  2237,  2248,  2254,  2260,  2266,  2282,  2281,  2307,
1066 >    2307,  2308,  2308,  2308,  2310,  2330,  2340,  2339,  2366,  2366,
1067 >    2367,  2367,  2367,  2369,  2375,  2384,  2386,  2386,  2387,  2387,
1068 >    2389,  2407,  2406,  2429,  2429,  2430,  2430,  2430,  2432,  2438,
1069 >    2447,  2450,  2450,  2451,  2452,  2453,  2454,  2455,  2456,  2457,
1070 >    2458,  2459,  2460,  2461,  2462,  2463,  2464,  2465,  2466,  2467,
1071 >    2468,  2469,  2470,  2471,  2472,  2473,  2474,  2475,  2476,  2477,
1072 >    2478,  2479,  2480,  2481,  2482,  2483,  2484,  2485,  2486,  2487,
1073 >    2488,  2489,  2490,  2491,  2492,  2493,  2494,  2495,  2496,  2497,
1074 >    2498,  2499,  2500,  2503,  2508,  2514,  2520,  2526,  2532,  2537,
1075 >    2542,  2547,  2552,  2557,  2562,  2567,  2572,  2577,  2582,  2587,
1076 >    2592,  2597,  2603,  2614,  2619,  2624,  2629,  2634,  2639,  2644,
1077 >    2647,  2652,  2655,  2660,  2665,  2670,  2675,  2680,  2685,  2690,
1078 >    2695,  2700,  2705,  2710,  2715,  2724,  2733,  2738,  2743,  2749,
1079 >    2748,  2753,  2753,  2754,  2757,  2760,  2763,  2766,  2769,  2772,
1080 >    2775,  2778,  2781,  2784,  2787,  2790,  2793,  2796,  2799,  2802,
1081 >    2805,  2808,  2811,  2814,  2817,  2820,  2826,  2825,  2830,  2830,
1082 >    2831,  2834,  2837,  2840,  2843,  2846,  2849,  2852,  2855,  2858,
1083 >    2861,  2864,  2867,  2870,  2873,  2876,  2879,  2882,  2885,  2888,
1084 >    2891,  2896,  2901,  2906,  2915,  2918,  2918,  2919,  2920,  2921,
1085 >    2922,  2923,  2924,  2925,  2926,  2927,  2928,  2929,  2930,  2931,
1086 >    2932,  2933,  2935,  2940,  2945,  2950,  2955,  2960,  2965,  2970,
1087 >    2975,  2980,  2985,  2990,  2995,  3000,  3008,  3011,  3011,  3012,
1088 >    3013,  3014,  3015,  3016,  3017,  3018,  3019,  3020,  3022,  3028,
1089 >    3034,  3040,  3046,  3055,  3069,  3075
1090   };
1091   #endif
1092  
# Line 1288 | Line 1099 | static const char *const yytname[] =
1099    "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1100    "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1101    "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1102 <  "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1103 <  "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1104 <  "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1105 <  "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1106 <  "FAILED_OPER_NOTICE", "IRCD_FLAGS", "FLATTEN_LINKS", "GECOS", "GENERAL",
1107 <  "GLINE", "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT",
1108 <  "GLINE_REQUEST_DURATION", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1109 <  "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1110 <  "HIDDEN_NAME", "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SPOOF_IPS",
1102 >  "CONNECTFREQ", "CYCLE_ON_HOST_CHANGE", "DEFAULT_FLOODCOUNT",
1103 >  "DEFAULT_SPLIT_SERVER_COUNT", "DEFAULT_SPLIT_USER_COUNT", "DENY",
1104 >  "DESCRIPTION", "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1105 >  "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT", "EGDPOOL_PATH", "EMAIL",
1106 >  "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT", "FAILED_OPER_NOTICE",
1107 >  "FLATTEN_LINKS", "GECOS", "GENERAL", "GLINE", "GLINE_DURATION",
1108 >  "GLINE_ENABLE", "GLINE_EXEMPT", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1109 >  "GLINE_REQUEST_DURATION", "GLOBAL_KILL", "HAVENT_READ_CONF", "HIDDEN",
1110 >  "HIDDEN_NAME", "HIDE_CHANS", "HIDE_IDLE", "HIDE_IDLE_FROM_OPERS",
1111 >  "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SERVICES", "HIDE_SPOOF_IPS",
1112    "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1113 <  "IP", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT",
1114 <  "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY",
1115 <  "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_OPER",
1116 <  "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1117 <  "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1118 <  "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1119 <  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1120 <  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1113 >  "INVITE_DELAY", "INVITE_DELAY_CHANNEL", "IP", "IRCD_AUTH", "IRCD_FLAGS",
1114 >  "IRCD_SID", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "KILL",
1115 >  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KNOCK_DELAY",
1116 >  "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY", "LISTEN", "MASK",
1117 >  "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_OPER", "MAX_CHANS_PER_USER",
1118 >  "MAX_GLOBAL", "MAX_IDENT", "MAX_IDLE", "MAX_LOCAL", "MAX_NICK_CHANGES",
1119 >  "MAX_NICK_LENGTH", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1120 >  "MAX_TOPIC_LENGTH", "MAX_WATCH", "MIN_IDLE", "MIN_NONWILDCARD",
1121 >  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "MOTD", "NAME",
1122 >  "NEED_IDENT", "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME", "NICK",
1123    "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1124 <  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPERATOR",
1125 <  "OPERS_BYPASS_CALLERID", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1312 <  "OPER_SPY_T", "OPER_UMODES", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME",
1124 >  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPER_ONLY_UMODES",
1125 >  "OPER_PASS_RESV", "OPER_UMODES", "OPERATOR", "OPERS_BYPASS_CALLERID",
1126    "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1127 <  "PING_TIME", "PING_WARNING", "PORT", "QSTRING", "QUIET_ON_BAN", "REASON",
1128 <  "REDIRPORT", "REDIRSERV", "REGEX_T", "REHASH", "REMOTE", "REMOTEBAN",
1129 <  "RESTRICT_CHANNELS", "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE",
1130 <  "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE", "T_SSL_CLIENT_METHOD",
1131 <  "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT",
1132 <  "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD",
1133 <  "SERVERHIDE", "SERVERINFO", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1134 <  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1135 <  "STATS_E_DISABLED", "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY",
1136 <  "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL", "TMASKED",
1137 <  "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS",
1138 <  "T_SOFTCALLERID", "T_CALLERID", "T_CCONN", "T_CCONN_FULL",
1139 <  "T_SSL_CIPHER_LIST", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1140 <  "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_MAX_CLIENTS",
1141 <  "T_NCHANGE", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_SERVER",
1142 <  "T_SERVNOTICE", "T_SET", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES",
1143 <  "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV", "T_UNXLINE",
1144 <  "T_GLOBOPS", "T_WALLOP", "T_RESTART", "T_SERVICE", "T_SERVICES_NAME",
1145 <  "THROTTLE_TIME", "TRUE_NO_OPER_FLOOD", "UNKLINE", "USER", "USE_EGD",
1146 <  "USE_LOGGING", "VHOST", "VHOST6", "XLINE", "WARN_NO_NLINE", "T_SIZE",
1147 <  "T_FILE", "';'", "'}'", "'{'", "'='", "','", "$accept", "conf",
1148 <  "conf_item", "timespec_", "timespec", "sizespec_", "sizespec",
1149 <  "modules_entry", "modules_items", "modules_item", "modules_module",
1150 <  "modules_path", "serverinfo_entry", "serverinfo_items",
1151 <  "serverinfo_item", "serverinfo_ssl_client_method",
1127 >  "PING_TIME", "PORT", "QSTRING", "RANDOM_IDLE", "REASON", "REDIRPORT",
1128 >  "REDIRSERV", "REHASH", "REMOTE", "REMOTEBAN", "RESV", "RESV_EXEMPT",
1129 >  "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE", "SECONDS", "MINUTES",
1130 >  "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ",
1131 >  "SERVERHIDE", "SERVERINFO", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1132 >  "SQUIT", "SSL_CERTIFICATE_FILE", "SSL_CERTIFICATE_FINGERPRINT",
1133 >  "SSL_CONNECTION_REQUIRED", "SSL_DH_PARAM_FILE", "STATS_E_DISABLED",
1134 >  "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY",
1135 >  "STATS_P_OPER_ONLY", "STATS_U_OPER_ONLY", "T_ALL", "T_BOTS",
1136 >  "T_CALLERID", "T_CCONN", "T_CLUSTER", "T_DEAF", "T_DEBUG", "T_DLINE",
1137 >  "T_EXTERNAL", "T_FARCONNECT", "T_FILE", "T_FULL", "T_GLOBOPS",
1138 >  "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_LOG", "T_MAX_CLIENTS",
1139 >  "T_NCHANGE", "T_NONONREG", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_RESTART",
1140 >  "T_SERVER", "T_SERVICE", "T_SERVICES_NAME", "T_SERVNOTICE", "T_SET",
1141 >  "T_SHARED", "T_SIZE", "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL",
1142 >  "T_SSL_CIPHER_LIST", "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD",
1143 >  "T_SSLV3", "T_TLSV1", "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED",
1144 >  "T_UNRESV", "T_UNXLINE", "T_WALLOP", "T_WALLOPS", "T_WEBIRC", "TBOOL",
1145 >  "THROTTLE_TIME", "TKLINE_EXPIRE_NOTICES", "TMASKED",
1146 >  "TRUE_NO_OPER_FLOOD", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "TYPE",
1147 >  "UNKLINE", "USE_EGD", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1148 >  "WARN_NO_CONNECT_BLOCK", "XLINE", "';'", "'}'", "'{'", "'='", "','",
1149 >  "':'", "$accept", "conf", "conf_item", "timespec_", "timespec",
1150 >  "sizespec_", "sizespec", "modules_entry", "modules_items",
1151 >  "modules_item", "modules_module", "modules_path", "serverinfo_entry",
1152 >  "serverinfo_items", "serverinfo_item", "serverinfo_ssl_client_method",
1153    "serverinfo_ssl_server_method", "client_method_types",
1154    "client_method_type_item", "server_method_types",
1155    "server_method_type_item", "serverinfo_ssl_certificate_file",
# Line 1343 | Line 1157 | static const char *const yytname[] =
1157    "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1158    "serverinfo_description", "serverinfo_network_name",
1159    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1160 <  "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1161 <  "admin_item", "admin_name", "admin_email", "admin_description",
1162 <  "logging_entry", "logging_items", "logging_item", "logging_use_logging",
1163 <  "logging_file_entry", "$@1", "logging_file_items", "logging_file_item",
1164 <  "logging_file_name", "logging_file_size", "logging_file_type", "$@2",
1165 <  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@3",
1160 >  "serverinfo_max_clients", "serverinfo_max_nick_length",
1161 >  "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1162 >  "admin_items", "admin_item", "admin_name", "admin_email",
1163 >  "admin_description", "motd_entry", "$@1", "motd_items", "motd_item",
1164 >  "motd_mask", "motd_file", "logging_entry", "logging_items",
1165 >  "logging_item", "logging_use_logging", "logging_file_entry", "$@2",
1166 >  "logging_file_items", "logging_file_item", "logging_file_name",
1167 >  "logging_file_size", "logging_file_type", "$@3",
1168 >  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@4",
1169    "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1170 <  "oper_encrypted", "oper_rsa_public_key_file", "oper_class",
1171 <  "oper_umodes", "$@4", "oper_umodes_items", "oper_umodes_item",
1172 <  "oper_flags", "$@5", "oper_flags_items", "oper_flags_item",
1173 <  "class_entry", "$@6", "class_items", "class_item", "class_name",
1174 <  "class_ping_time", "class_ping_warning", "class_number_per_ip",
1170 >  "oper_encrypted", "oper_rsa_public_key_file",
1171 >  "oper_ssl_certificate_fingerprint", "oper_ssl_connection_required",
1172 >  "oper_class", "oper_umodes", "$@5", "oper_umodes_items",
1173 >  "oper_umodes_item", "oper_flags", "$@6", "oper_flags_items",
1174 >  "oper_flags_item", "class_entry", "$@7", "class_items", "class_item",
1175 >  "class_name", "class_ping_time", "class_number_per_ip",
1176    "class_connectfreq", "class_max_number", "class_max_global",
1177    "class_max_local", "class_max_ident", "class_sendq", "class_recvq",
1178    "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1179 <  "class_number_per_cidr", "listen_entry", "$@7", "listen_flags", "$@8",
1180 <  "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1181 <  "listen_port", "$@9", "port_items", "port_item", "listen_address",
1182 <  "listen_host", "auth_entry", "$@10", "auth_items", "auth_item",
1183 <  "auth_user", "auth_passwd", "auth_class", "auth_encrypted", "auth_flags",
1184 <  "$@11", "auth_flags_items", "auth_flags_item", "auth_spoof",
1185 <  "auth_redir_serv", "auth_redir_port", "resv_entry", "$@12", "resv_items",
1186 <  "resv_item", "resv_creason", "resv_channel", "resv_nick",
1187 <  "service_entry", "service_items", "service_item", "service_name",
1188 <  "shared_entry", "$@13", "shared_items", "shared_item", "shared_name",
1189 <  "shared_user", "shared_type", "$@14", "shared_types", "shared_type_item",
1190 <  "cluster_entry", "$@15", "cluster_items", "cluster_item", "cluster_name",
1191 <  "cluster_type", "$@16", "cluster_types", "cluster_type_item",
1192 <  "connect_entry", "$@17", "connect_items", "connect_item", "connect_name",
1179 >  "class_number_per_cidr", "class_min_idle", "class_max_idle",
1180 >  "class_flags", "$@8", "class_flags_items", "class_flags_item",
1181 >  "listen_entry", "$@9", "listen_flags", "$@10", "listen_flags_items",
1182 >  "listen_flags_item", "listen_items", "listen_item", "listen_port",
1183 >  "$@11", "port_items", "port_item", "listen_address", "listen_host",
1184 >  "auth_entry", "$@12", "auth_items", "auth_item", "auth_user",
1185 >  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@13",
1186 >  "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1187 >  "auth_redir_port", "resv_entry", "$@14", "resv_items", "resv_item",
1188 >  "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1189 >  "service_items", "service_item", "service_name", "shared_entry", "$@15",
1190 >  "shared_items", "shared_item", "shared_name", "shared_user",
1191 >  "shared_type", "$@16", "shared_types", "shared_type_item",
1192 >  "cluster_entry", "$@17", "cluster_items", "cluster_item", "cluster_name",
1193 >  "cluster_type", "$@18", "cluster_types", "cluster_type_item",
1194 >  "connect_entry", "$@19", "connect_items", "connect_item", "connect_name",
1195    "connect_host", "connect_vhost", "connect_send_password",
1196 <  "connect_accept_password", "connect_port", "connect_aftype",
1197 <  "connect_flags", "$@18", "connect_flags_items", "connect_flags_item",
1198 <  "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1199 <  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@19",
1200 <  "kill_type", "$@20", "kill_type_items", "kill_type_item", "kill_items",
1201 <  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@21",
1196 >  "connect_accept_password", "connect_ssl_certificate_fingerprint",
1197 >  "connect_port", "connect_aftype", "connect_flags", "$@20",
1198 >  "connect_flags_items", "connect_flags_item", "connect_encrypted",
1199 >  "connect_hub_mask", "connect_leaf_mask", "connect_class",
1200 >  "connect_ssl_cipher_list", "kill_entry", "$@21", "kill_items",
1201 >  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@22",
1202    "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1203 <  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@22",
1384 <  "gecos_flags", "$@23", "gecos_flags_items", "gecos_flags_item",
1203 >  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@23",
1204    "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1205    "general_entry", "general_items", "general_item", "general_max_watch",
1206 <  "general_gline_enable", "general_gline_duration",
1207 <  "general_gline_request_duration", "general_gline_min_cidr",
1208 <  "general_gline_min_cidr6", "general_tkline_expire_notices",
1209 <  "general_kill_chase_time_limit", "general_hide_spoof_ips",
1210 <  "general_ignore_bogus_ts", "general_disable_remote_commands",
1206 >  "general_cycle_on_host_change", "general_gline_enable",
1207 >  "general_gline_duration", "general_gline_request_duration",
1208 >  "general_gline_min_cidr", "general_gline_min_cidr6",
1209 >  "general_tkline_expire_notices", "general_kill_chase_time_limit",
1210 >  "general_hide_spoof_ips", "general_ignore_bogus_ts",
1211    "general_failed_oper_notice", "general_anti_nick_flood",
1212    "general_max_nick_time", "general_max_nick_changes",
1213    "general_max_accept", "general_anti_spam_exit_message_time",
1214    "general_ts_warn_delta", "general_ts_max_delta",
1215    "general_havent_read_conf", "general_invisible_on_connect",
1216 <  "general_warn_no_nline", "general_stats_e_disabled",
1216 >  "general_warn_no_connect_block", "general_stats_e_disabled",
1217    "general_stats_o_oper_only", "general_stats_P_oper_only",
1218 <  "general_stats_k_oper_only", "general_stats_i_oper_only",
1219 <  "general_pace_wait", "general_caller_id_wait",
1220 <  "general_opers_bypass_callerid", "general_pace_wait_simple",
1221 <  "general_short_motd", "general_no_oper_flood",
1222 <  "general_true_no_oper_flood", "general_oper_pass_resv",
1223 <  "general_message_locale", "general_dots_in_ident", "general_max_targets",
1218 >  "general_stats_u_oper_only", "general_stats_k_oper_only",
1219 >  "general_stats_i_oper_only", "general_pace_wait",
1220 >  "general_caller_id_wait", "general_opers_bypass_callerid",
1221 >  "general_pace_wait_simple", "general_short_motd",
1222 >  "general_no_oper_flood", "general_true_no_oper_flood",
1223 >  "general_oper_pass_resv", "general_dots_in_ident", "general_max_targets",
1224    "general_use_egd", "general_egdpool_path", "general_services_name",
1225    "general_ping_cookie", "general_disable_auth", "general_throttle_time",
1226    "general_oper_umodes", "$@24", "umode_oitems", "umode_oitem",
1227    "general_oper_only_umodes", "$@25", "umode_items", "umode_item",
1228    "general_min_nonwildcard", "general_min_nonwildcard_simple",
1229    "general_default_floodcount", "channel_entry", "channel_items",
1230 <  "channel_item", "channel_disable_fake_channels",
1231 <  "channel_restrict_channels", "channel_knock_delay",
1232 <  "channel_knock_delay_channel", "channel_max_chans_per_user",
1233 <  "channel_max_chans_per_oper", "channel_quiet_on_ban", "channel_max_bans",
1230 >  "channel_item", "channel_disable_fake_channels", "channel_knock_delay",
1231 >  "channel_knock_delay_channel", "channel_invite_delay",
1232 >  "channel_invite_delay_channel", "channel_max_chans_per_user",
1233 >  "channel_max_chans_per_oper", "channel_max_bans",
1234    "channel_default_split_user_count", "channel_default_split_server_count",
1235    "channel_no_create_on_split", "channel_no_join_on_split",
1236    "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1237    "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1238 <  "serverhide_hide_servers", "serverhide_hidden_name",
1238 >  "serverhide_disable_remote_commands", "serverhide_hide_servers",
1239 >  "serverhide_hide_services", "serverhide_hidden_name",
1240    "serverhide_links_delay", "serverhide_hidden",
1241 <  "serverhide_hide_server_ips", YY_NULL
1241 >  "serverhide_hide_server_ips", YY_NULLPTR
1242   };
1243   #endif
1244  
1245   # ifdef YYPRINT
1246 < /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1247 <   token YYLEX-NUM.  */
1246 > /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1247 >   (internal) symbol number NUM (which must be that of a token).  */
1248   static const yytype_uint16 yytoknum[] =
1249   {
1250         0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
# Line 1448 | Line 1268 | static const yytype_uint16 yytoknum[] =
1268       435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1269       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1270       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1271 <     465,   466,   467,   468,   469,    59,   125,   123,    61,    44
1271 >     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1272 >     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1273 >     485,    59,   125,   123,    61,    44,    58
1274   };
1275   # endif
1276  
1277 < /* 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 < };
1277 > #define YYPACT_NINF -1009
1278  
1279 < /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1280 < static const yytype_uint8 yyr2[] =
1279 > #define yypact_value_is_default(Yystate) \
1280 >  (!!((Yystate) == (-1009)))
1281 >
1282 > #define YYTABLE_NINF -124
1283 >
1284 > #define yytable_value_is_error(Yytable_value) \
1285 >  0
1286 >
1287 >  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1288 >     STATE-NUM.  */
1289 > static const yytype_int16 yypact[] =
1290   {
1291 <       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1292 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1293 <       1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1294 <       3,     3,     3,     3,     0,     1,     2,     3,     3,     3,
1295 <       5,     2,     1,     1,     1,     2,     4,     4,     5,     2,
1296 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1297 <       1,     1,     1,     1,     1,     1,     2,     4,     4,     3,
1298 <       1,     1,     1,     3,     1,     1,     1,     4,     4,     4,
1299 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1300 <       5,     2,     1,     1,     1,     1,     2,     4,     4,     4,
1301 <       5,     2,     1,     1,     1,     2,     4,     0,     6,     2,
1302 <       1,     1,     1,     1,     2,     4,     4,     4,     0,     5,
1303 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1304 <       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1305 <       1,     2,     4,     4,     4,     4,     4,     4,     0,     5,
1306 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1307 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1308 <       1,     1,     0,     5,     3,     1,     1,     1,     1,     1,
1309 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1310 <       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1311 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1312 <       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
1313 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     6,
1314 <       0,     5,     3,     1,     1,     1,     1,     2,     1,     1,
1315 <       1,     1,     1,     2,     0,     5,     3,     1,     1,     3,
1316 <       4,     4,     0,     6,     2,     1,     1,     1,     1,     1,
1317 <       1,     1,     1,     1,     2,     4,     4,     4,     4,     0,
1318 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1319 <       1,     1,     4,     4,     4,     0,     6,     2,     1,     1,
1320 <       1,     1,     2,     4,     4,     4,     5,     2,     1,     1,
1321 <       1,     4,     0,     6,     2,     1,     1,     1,     1,     2,
1322 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1323 <       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
1324 <       1,     1,     2,     4,     0,     5,     3,     1,     1,     1,
1325 <       1,     1,     1,     1,     1,     1,     1,     1,     0,     6,
1326 <       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1327 <       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
1328 <       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1329 <       4,     4,     4,     4,     4,     0,     6,     0,     5,     3,
1330 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1331 <       0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
1332 <       2,     1,     1,     1,     4,     0,     6,     0,     5,     3,
1333 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1334 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1335 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1336 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1337 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1338 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1339 <       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
1340 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1341 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1342 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1343 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     0,
1344 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1345 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1346 <       1,     1,     1,     0,     5,     3,     1,     1,     1,     1,
1347 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1348 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1349 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1350 <       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
1351 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1352 <       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
1353 <       1,     1,     4,     4,     4,     4,     4,     4
1291 >   -1009,   647, -1009,   -18,  -215,  -213, -1009, -1009, -1009,  -194,
1292 >   -1009,  -186, -1009, -1009, -1009,  -184, -1009, -1009, -1009,  -178,
1293 >    -176, -1009,  -168,  -115, -1009, -1009, -1009, -1009, -1009, -1009,
1294 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1295 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,   351,
1296 >     903,  -113,  -106,   -97,    20,   -81,   400,   -71,   -62,   -60,
1297 >      16,   -25,    -7,    -6,   707,   369,    -1,    35,    72,    53,
1298 >     -43,   -36,   -29,    79,    10, -1009, -1009, -1009, -1009, -1009,
1299 >      91,   103,   106,   107,   109,   112,   114,   115,   119,   120,
1300 >     121,   124,   126,   137,   281, -1009, -1009, -1009, -1009, -1009,
1301 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1302 >     653,   532,   164, -1009,   141,    21, -1009, -1009,    70, -1009,
1303 >     143,   144,   145,   146,   148,   150,   151,   152,   153,   158,
1304 >     159,   161,   162,   163,   165,   166,   170,   171,   174,   175,
1305 >     177,   180,   183,   184,   185,   188,   189, -1009,   191, -1009,
1306 >     192,   195,   198,   199,   200,   204,   205,   209,   213,   215,
1307 >     216,   220,   221,   222,   224,   231,   232,   233,   236,    60,
1308 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1309 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1310 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1311 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1312 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1313 >      61,     9,   262,    68,   239,   243,    25, -1009, -1009, -1009,
1314 >      51,   451,   230, -1009,   244,   245,   246,   248,   249,   251,
1315 >     252,   253,    14, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1316 >   -1009, -1009,   101,   254,   256,   258,   260,   273,   277,   291,
1317 >     293,   294,   295,   297,   298,   300,   302,   305,   309,   311,
1318 >     134, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1319 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,    83,
1320 >     138,   313,    27, -1009, -1009, -1009,    80, -1009,   318,    24,
1321 >   -1009, -1009,     8, -1009,   241,   271,   288,   265, -1009,   352,
1322 >     436,   340,   443,   443,   444,   443,   443,   443,   445,   452,
1323 >     454,   354,   358,   345, -1009,   347,   346,   348,   350, -1009,
1324 >     359,   360,   364,   366,   367,   368,   371,   374,   377,   380,
1325 >     383,   387,   181, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1326 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1327 >     355,   388,   389,   391,   393,   394,   396, -1009,   397,   398,
1328 >     401,   407,   408,   409,   410,   314, -1009, -1009, -1009, -1009,
1329 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1330 >   -1009, -1009,   411,   412,    58, -1009, -1009, -1009,   458,   357,
1331 >   -1009, -1009,   415,   416,    40, -1009, -1009, -1009,   365,   443,
1332 >     443,   423,   540,   439,   543,   533,   448,   443,   453,   547,
1333 >     554,   443,   558,   460,   462,   465,   443,   569,   571,   443,
1334 >     576,   578,   579,   581,   480,   464,   482,   473,   495,   443,
1335 >     443,   496,   498,   501,   -54,   -28,   503,   505,   507,   595,
1336 >     443,   509,   510,   443,   443,   511,   515,   502, -1009,   506,
1337 >     508,   512, -1009,   516,   517,   518,   519,   520,    15, -1009,
1338 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,   524,
1339 >     526,    32, -1009, -1009, -1009,   537,   530,   535, -1009,   536,
1340 >   -1009,    30, -1009, -1009, -1009, -1009, -1009,   608,   616,   541,
1341 >   -1009,   544,   542,   556,    29, -1009, -1009, -1009,   546,   559,
1342 >     568, -1009,   570,   573,   574,   575,   580, -1009,   582,    12,
1343 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1344 >   -1009,   557,   583,   584,   585,    18, -1009, -1009, -1009, -1009,
1345 >     589,   599,   607,   665,   609,   610,   612,   443,   591, -1009,
1346 >   -1009,   700,   615,   703,   719,   720,   706,   708,   709,   711,
1347 >     713,   715,   731,   723,    98,   135,   726,   728,   603, -1009,
1348 >     626,   613, -1009,    76, -1009, -1009, -1009, -1009,   644,   629,
1349 >   -1009,   628,   738,   637, -1009,   638,   636, -1009,   639,    23,
1350 >   -1009, -1009, -1009, -1009,   641,   643,   648, -1009,   649,   650,
1351 >     651,   561,   652,   655,   662,   667,   669,   670,   677,   680,
1352 >     682,   684,   685, -1009, -1009,   766,   772,   443,   676,   805,
1353 >     809,   443,   810,   811,   443,   797,   815,   817,   443,   818,
1354 >     818,   701, -1009, -1009,   807,    37,   808,   724,   813,   816,
1355 >     702,   819,   820,   825,   821,   822,   823,   824,   714, -1009,
1356 >     826,   827,   721, -1009,   725, -1009,   830,   831,   729, -1009,
1357 >     730,   733,   734,   737,   739,   740,   743,   744,   745,   746,
1358 >     749,   750,   751,   752,   753,   757,   758,   759,   760,   761,
1359 >     762,   763,   764,   765,   767,   768,   769,   614,   770,   679,
1360 >     771,   773,   774,   775,   776,   777,   778,   779,   782,   783,
1361 >     784,   785,   786,   787,   788,   789,   790,   791,   792,   793,
1362 >     794, -1009, -1009,   832,   755,   710,   836,   885,   876,   899,
1363 >     900,   798, -1009,   901,   904,   799, -1009, -1009,   905,   906,
1364 >     800,   923,   806, -1009,   812,   814, -1009, -1009,   909,   911,
1365 >     828, -1009, -1009,   912,   833,   829,   913,   914,   915,   917,
1366 >     834,   835,   919,   837, -1009, -1009,   922,   924,   925,   839,
1367 >   -1009,   840,   841,   842,   843,   844,   845,   846,   847, -1009,
1368 >     848,   849,   850,   851,   852,   853,   854,   855,   856,   857,
1369 >     858,   859,   860, -1009, -1009,  -208, -1009, -1009, -1009,  -197,
1370 >   -1009,   861,   862, -1009, -1009,   926,   863,   864, -1009,   865,
1371 >   -1009,   102,   867, -1009, -1009,   927,   866,   928,   868, -1009,
1372 >   -1009, -1009, -1009, -1009, -1009, -1009,   443,   443,   443,   443,
1373 >     443,   443,   443, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1374 >   -1009, -1009, -1009, -1009, -1009, -1009,   870,   871,   872,   -45,
1375 >     873,   874,   875,   877,   878,   879,   880,   881,   882,   883,
1376 >     312,   884,   886, -1009,   887,   888,   889,   890,   891,   892,
1377 >     893,    -4,   894,   895,   896,   897,   898,   902,   907, -1009,
1378 >     908,   910, -1009, -1009,   916,   918, -1009, -1009, -1009, -1009,
1379 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1380 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1381 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1382 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1383 >   -1009, -1009, -1009, -1009, -1009,  -191, -1009, -1009, -1009, -1009,
1384 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1385 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1386 >   -1009,  -185, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1387 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1388 >   -1009, -1009, -1009, -1009,   920,   921,   299,   929,   930,   931,
1389 >     932,   933, -1009,   934,   935, -1009,   936,   937,   -35,   938,
1390 >     939, -1009, -1009, -1009, -1009,   940,   941, -1009,   942,   944,
1391 >     504,   945,   946,   947,   948,   949,   722,   950, -1009,   951,
1392 >     952,   953, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1393 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1394 >   -1009, -1009, -1009, -1009, -1009,    98, -1009,   135, -1009, -1009,
1395 >     954,   403, -1009, -1009,   955,   956,   957, -1009,    11, -1009,
1396 >   -1009, -1009, -1009, -1009,   958,   732,   961, -1009, -1009, -1009,
1397 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1398 >    -177, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1399 >   -1009, -1009,   818,   818,   818, -1009, -1009, -1009, -1009, -1009,
1400 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,  -175, -1009,
1401 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1402 >   -1009, -1009,   614, -1009,   679, -1009, -1009, -1009, -1009, -1009,
1403 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009,  -142, -1009, -1009,
1404 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1405 >   -1009,   -41, -1009,   982,   923,   962, -1009, -1009, -1009, -1009,
1406 >   -1009,   959, -1009, -1009,   960, -1009, -1009, -1009, -1009,   963,
1407 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1408 >   -1009,   -24, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1409 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1410 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1411 >   -1009,    39, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1412 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1413 >      50, -1009, -1009,   980,   -75,   964,   966, -1009, -1009, -1009,
1414 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,    65,
1415 >   -1009, -1009, -1009,   -45, -1009, -1009, -1009, -1009,    -4, -1009,
1416 >   -1009, -1009,   299, -1009,   -35, -1009, -1009, -1009,   983,   997,
1417 >     998, -1009,   504, -1009,   722, -1009,   403,   969,   970,   971,
1418 >     469, -1009, -1009,   732, -1009, -1009, -1009, -1009, -1009, -1009,
1419 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1420 >   -1009, -1009, -1009, -1009, -1009, -1009,    95, -1009, -1009, -1009,
1421 >     469, -1009
1422   };
1423  
1424 < /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
1425 <   Performed when YYTABLE doesn't specify something else to do.  Zero
1426 <   means the default is an error.  */
1424 >  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1425 >     Performed when YYTABLE does not specify something else to do.  Zero
1426 >     means the default is an error.  */
1427   static const yytype_uint16 yydefact[] =
1428   {
1429 <       2,     0,     1,     0,     0,     0,   195,   348,   400,     0,
1430 <     415,     0,   252,   385,   228,     0,     0,   129,   285,     0,
1431 <       0,   302,   326,     0,     3,    23,    11,     4,     5,     6,
1432 <       8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1433 <      20,    22,    21,     7,    12,    24,    25,     0,     0,     0,
1429 >       2,     0,     1,     0,     0,     0,   225,   388,   436,     0,
1430 >     451,     0,   291,   427,   267,     0,   107,   147,   325,     0,
1431 >       0,   366,     0,     0,   342,     3,    23,    11,     4,    24,
1432 >       5,     6,     8,     9,    10,    13,    14,    15,    16,    17,
1433 >      18,    19,    20,    22,    21,     7,    12,    25,    26,     0,
1434         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1435         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1436 <       0,     0,    92,    93,    95,    94,   597,     0,     0,     0,
1436 >       0,     0,     0,     0,     0,    99,   100,   102,   101,   631,
1437         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1438 <       0,     0,   582,   596,   592,   584,   585,   586,   587,   588,
1439 <     583,   589,   590,   591,   593,   594,   595,     0,     0,     0,
1440 <     413,     0,     0,   411,   412,     0,   482,     0,     0,     0,
1438 >       0,     0,     0,     0,     0,   616,   630,   620,   621,   618,
1439 >     619,   622,   623,   617,   624,   625,   626,   627,   628,   629,
1440 >       0,     0,     0,   449,     0,     0,   447,   448,     0,   512,
1441         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1442         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1443 <       0,     0,     0,     0,     0,     0,   553,     0,   529,     0,
1443 >       0,     0,     0,     0,     0,     0,     0,   586,     0,   559,
1444         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1612       0,     0,     0,     0,     0,     0,     0,   432,   480,   474,
1613     475,   476,   477,   478,   473,   443,   433,   434,   468,   435,
1614     436,   437,   438,   439,   440,   441,   442,   470,   444,   445,
1615     479,   447,   452,   448,   450,   449,   463,   464,   451,   453,
1616     454,   455,   456,   457,   446,   459,   460,   461,   481,   471,
1617     472,   469,   462,   458,   466,   467,   465,     0,     0,     0,
1618       0,     0,     0,   102,   103,   104,     0,     0,     0,     0,
1619       0,    42,    43,    44,     0,     0,   621,     0,     0,     0,
1620       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,
1445         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1446 <       0,     0,   581,     0,     0,     0,     0,     0,     0,     0,
1447 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   198,
1448 <     199,   202,   203,   205,   206,   207,   208,   209,   210,   211,
1449 <     212,   200,   201,   204,     0,     0,     0,     0,     0,   374,
1450 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   351,
1451 <     352,   353,   354,   355,   356,   358,   357,   360,   364,   361,
1452 <     362,   363,   359,   406,     0,     0,     0,   403,   404,   405,
1453 <       0,     0,   410,   427,     0,     0,   417,   426,     0,   423,
1454 <     424,   425,     0,     0,     0,     0,     0,     0,     0,     0,
1446 >     462,   509,   511,   503,   504,   505,   506,   507,   502,   473,
1447 >     463,   464,   465,   466,   467,   468,   469,   470,   471,   472,
1448 >     499,   474,   475,   508,   477,   482,   483,   478,   480,   479,
1449 >     493,   494,   481,   484,   485,   486,   487,   476,   489,   490,
1450 >     491,   510,   500,   501,   498,   492,   488,   496,   497,   495,
1451 >       0,     0,     0,     0,     0,     0,     0,    45,    46,    47,
1452 >       0,     0,     0,   657,     0,     0,     0,     0,     0,     0,
1453 >       0,     0,     0,   648,   649,   650,   651,   652,   655,   653,
1454 >     654,   656,     0,     0,     0,     0,     0,     0,     0,     0,
1455         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1456 +       0,    53,    68,    69,    67,    64,    63,    70,    54,    66,
1457 +      57,    58,    59,    55,    65,    60,    61,    62,    56,     0,
1458 +       0,     0,     0,   118,   119,   120,     0,   340,     0,     0,
1459 +     338,   339,     0,   103,     0,     0,     0,     0,    98,     0,
1460         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1461 +       0,     0,     0,     0,   615,     0,     0,     0,     0,   261,
1462         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1463 +       0,     0,     0,   228,   229,   232,   234,   235,   236,   237,
1464 +     238,   239,   240,   241,   230,   231,   233,   242,   243,   244,
1465 +       0,     0,     0,     0,     0,     0,     0,   416,     0,     0,
1466 +       0,     0,     0,     0,     0,     0,   391,   392,   393,   394,
1467 +     395,   396,   397,   399,   398,   401,   405,   402,   403,   404,
1468 +     400,   442,     0,     0,     0,   439,   440,   441,     0,     0,
1469 +     446,   457,     0,     0,     0,   454,   455,   456,     0,     0,
1470         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1640       0,     0,   431,     0,     0,     0,   269,     0,     0,     0,
1641       0,     0,     0,   255,   256,   257,   258,   263,   259,   260,
1642     261,   262,   397,     0,   387,     0,   396,     0,   393,   394,
1643     395,     0,   230,     0,     0,     0,   240,     0,   238,   239,
1644     241,   242,   105,     0,     0,   101,     0,    45,     0,     0,
1645       0,    41,     0,     0,     0,   172,     0,     0,     0,   148,
1646       0,     0,   132,   133,   134,   135,   138,   139,   137,   136,
1647     140,     0,     0,     0,     0,     0,   288,   289,   290,   291,
1648       0,     0,     0,     0,     0,     0,     0,   613,    66,     0,
1471         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1650       0,     0,     0,     0,     0,    49,     0,     0,   312,     0,
1651       0,   305,   306,   307,   308,     0,     0,   334,     0,   329,
1652     330,   331,     0,     0,   297,     0,     0,     0,    90,     0,
1653       0,     0,    26,     0,     0,     0,     0,     0,     0,     0,
1654       0,     0,     0,     0,   580,   213,     0,     0,     0,     0,
1472         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1656       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,
1473         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1474 +       0,     0,     0,     0,     0,     0,     0,     0,   461,     0,
1475 +       0,     0,   308,     0,     0,     0,     0,     0,     0,   294,
1476 +     295,   296,   297,   302,   298,   299,   300,   301,   433,     0,
1477 +       0,     0,   430,   431,   432,     0,     0,     0,   269,     0,
1478 +     279,     0,   277,   278,   280,   281,    48,     0,     0,     0,
1479 +      44,     0,     0,     0,     0,   110,   111,   112,     0,     0,
1480 +       0,   197,     0,     0,     0,     0,     0,   170,     0,     0,
1481 +     150,   151,   152,   153,   156,   157,   158,   159,   155,   154,
1482 +     160,     0,     0,     0,     0,     0,   328,   329,   330,   331,
1483 +       0,     0,     0,     0,     0,     0,     0,     0,     0,   647,
1484 +      71,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1485 +       0,     0,     0,     0,     0,     0,     0,     0,     0,    52,
1486 +       0,     0,   374,     0,   369,   370,   371,   121,     0,     0,
1487 +     117,     0,     0,     0,   337,     0,     0,   352,     0,     0,
1488 +     345,   346,   347,   348,     0,     0,     0,    97,     0,     0,
1489 +       0,    27,     0,     0,     0,     0,     0,     0,     0,     0,
1490 +       0,     0,     0,   614,   245,     0,     0,     0,     0,     0,
1491         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1492 +       0,     0,   227,   406,     0,     0,     0,     0,     0,     0,
1493 +       0,     0,     0,     0,     0,     0,     0,     0,     0,   390,
1494 +       0,     0,     0,   438,     0,   445,     0,     0,     0,   453,
1495         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1496         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1497         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1664     430,   264,     0,     0,     0,     0,     0,     0,     0,     0,
1665       0,   254,     0,     0,     0,     0,   392,   243,     0,     0,
1666       0,     0,     0,   237,     0,   100,     0,     0,     0,    40,
1667     141,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1668     131,   292,     0,     0,     0,     0,   287,     0,     0,     0,
1669       0,     0,     0,   612,     0,     0,     0,     0,     0,     0,
1670       0,     0,    71,    72,     0,    70,    75,    76,     0,    74,
1671       0,     0,     0,     0,     0,    48,   309,     0,     0,     0,
1672       0,   304,   332,     0,     0,     0,   328,     0,   296,    99,
1673      98,    97,   607,   606,   598,    26,    26,    26,    26,    26,
1674      28,    27,   600,   601,   605,   603,   602,   608,   609,   610,
1675     611,   604,   599,     0,     0,     0,     0,     0,     0,     0,
1676       0,     0,     0,     0,     0,    34,     0,     0,   196,     0,
1498         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1499 <       0,     0,     0,   349,     0,     0,   401,   414,     0,     0,
1500 <       0,   416,   495,   499,   513,   579,   527,   493,   521,   524,
1501 <     494,   485,   484,   486,   487,   488,   502,   491,   492,   503,
1502 <     490,   498,   497,   496,   522,   483,   520,   577,   578,   517,
1503 <     514,   564,   557,   574,   575,   558,   559,   560,   561,   569,
1504 <     562,   572,   576,   565,   570,   566,   571,   563,   568,   567,
1505 <     573,     0,   556,   519,   539,   533,   550,   551,   534,   535,
1506 <     536,   537,   545,   538,   548,   552,   541,   546,   542,   547,
1507 <     540,   544,   543,   549,     0,   532,   512,   515,   526,   489,
1508 <     516,   505,   510,   511,   508,   509,   506,   507,   501,   500,
1509 <     525,   528,   518,   523,   504,     0,     0,     0,     0,     0,
1510 <       0,     0,     0,   253,     0,     0,     0,   386,     0,     0,
1511 <       0,   248,   244,   247,   229,   106,     0,     0,   118,     0,
1512 <       0,   110,   111,   113,   112,    46,    47,     0,     0,     0,
1513 <       0,     0,     0,     0,     0,   130,     0,     0,     0,   286,
1514 <     622,   626,   624,   627,   623,   625,    83,    89,    81,    85,
1515 <      84,    78,    77,    79,    67,     0,    68,     0,    82,    80,
1516 <      88,    86,    87,     0,     0,     0,   303,     0,     0,   327,
1517 <     301,    29,    30,    31,    32,    33,   225,   226,   218,   220,
1518 <     222,   221,   219,   214,   227,   217,   215,   216,    34,    34,
1519 <      34,    36,    35,   223,   224,   370,   372,   373,   383,   380,
1520 <     378,   379,     0,   377,   367,   381,   382,   366,   371,   369,
1521 <     384,   368,   407,   408,   428,   429,   421,     0,   420,   554,
1522 <       0,   530,     0,   267,   268,   277,   274,   279,   276,   275,
1523 <     281,   278,   280,   273,     0,   272,   266,   284,   283,   282,
1524 <     265,   399,   391,     0,   390,   398,   235,   236,   234,     0,
1525 <     233,   251,   250,     0,     0,     0,   114,     0,     0,     0,
1526 <       0,   109,   147,   145,   187,   184,   183,   176,   178,   194,
1527 <     188,   191,   186,   177,   192,   180,   189,   193,   181,   190,
1528 <     185,   179,   182,     0,   175,   142,   144,   146,   158,   152,
1529 <     169,   170,   153,   154,   155,   156,   164,   157,   167,   171,
1530 <     160,   165,   161,   166,   159,   163,   162,   168,     0,   151,
1531 <     143,   294,   295,   293,    69,    73,   310,   316,   322,   325,
1532 <     318,   324,   319,   323,   321,   317,   320,     0,   315,   311,
1533 <     333,   338,   344,   347,   340,   346,   341,   345,   343,   339,
1534 <     342,     0,   337,    37,    38,    39,   375,     0,   418,     0,
1535 <     555,   531,   270,     0,   388,     0,   231,     0,   249,   246,
1536 <     245,     0,     0,     0,     0,   108,   173,     0,   149,     0,
1537 <     313,     0,   335,     0,   376,   419,   271,   389,   232,   115,
1538 <     124,   127,   126,   123,   128,   125,   122,     0,   121,   117,
1539 <     116,   174,   150,   314,   336,   119,     0,   120
1540 < };
1541 <
1542 < /* YYDEFGOTO[NTERM-NUM].  */
1543 < static const yytype_int16 yydefgoto[] =
1544 < {
1545 <      -1,     1,    24,   780,   781,  1021,  1022,    25,   230,   231,
1546 <     232,   233,    26,   267,   268,   269,   270,   744,   745,   748,
1547 <     749,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1548 <     280,   281,   282,   283,    27,    71,    72,    73,    74,    75,
1549 <      28,   222,   223,   224,   225,   226,   950,   951,   952,   953,
1550 <     954,  1088,  1217,  1218,    29,    60,   501,   502,   503,   504,
1551 <     505,   506,   507,   508,   509,   717,  1138,  1139,   510,   713,
1552 <    1113,  1114,    30,    49,   328,   329,   330,   331,   332,   333,
1553 <     334,   335,   336,   337,   338,   339,   340,   341,   342,   343,
1554 <      31,    57,   476,   698,  1079,  1080,   477,   478,   479,  1085,
1555 <     942,   943,   480,   481,    32,    55,   452,   453,   454,   455,
1556 <     456,   457,   458,   684,  1064,  1065,   459,   460,   461,    33,
1557 <      61,   515,   516,   517,   518,   519,    34,   288,   289,   290,
1558 <      35,    64,   550,   551,   552,   553,   554,   758,  1157,  1158,
1559 <      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
1499 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1500 >       0,   460,   303,     0,     0,     0,     0,     0,     0,     0,
1501 >       0,     0,   293,     0,     0,     0,   429,   282,     0,     0,
1502 >       0,     0,     0,   276,     0,     0,    43,   113,     0,     0,
1503 >       0,   109,   161,     0,     0,     0,     0,     0,     0,     0,
1504 >       0,     0,     0,     0,   149,   332,     0,     0,     0,     0,
1505 >     327,     0,     0,     0,     0,     0,     0,     0,     0,   646,
1506 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1507 >       0,     0,     0,    76,    77,     0,    75,    80,    81,     0,
1508 >      79,     0,     0,    51,   372,     0,     0,     0,   368,     0,
1509 >     116,     0,     0,   336,   349,     0,     0,     0,     0,   344,
1510 >     106,   105,   104,   641,   640,   632,    27,    27,    27,    27,
1511 >      27,    27,    27,    29,    28,   635,   636,   644,   645,   633,
1512 >     634,   639,   638,   637,   642,   643,     0,     0,     0,     0,
1513 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1514 >      37,     0,     0,   226,     0,     0,     0,     0,     0,     0,
1515 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   389,
1516 >       0,     0,   437,   450,     0,     0,   452,   525,   529,   544,
1517 >     514,   613,   557,   551,   554,   524,   516,   515,   518,   519,
1518 >     517,   532,   522,   523,   533,   521,   528,   527,   526,   552,
1519 >     513,   611,   612,   548,   596,   590,   607,   591,   592,   593,
1520 >     601,   610,   594,   604,   608,   597,   609,   602,   598,   603,
1521 >     595,   606,   600,   599,   605,     0,   589,   550,   568,   569,
1522 >     570,   563,   582,   564,   565,   566,   576,   585,   567,   579,
1523 >     583,   572,   584,   577,   573,   578,   571,   581,   575,   574,
1524 >     580,     0,   562,   545,   543,   546,   556,   547,   535,   541,
1525 >     542,   539,   540,   536,   537,   538,   555,   558,   520,   549,
1526 >     531,   530,   553,   534,     0,     0,     0,     0,     0,     0,
1527 >       0,     0,   292,     0,     0,   428,     0,     0,     0,   287,
1528 >     283,   286,   268,    49,    50,     0,     0,   108,     0,     0,
1529 >       0,     0,     0,     0,     0,     0,     0,     0,   148,     0,
1530 >       0,     0,   326,   659,   658,   664,   662,   665,   660,   661,
1531 >     663,    88,    96,    87,    94,    95,    86,    90,    89,    83,
1532 >      82,    84,    93,    85,    72,     0,    73,     0,    91,    92,
1533 >       0,     0,   367,   122,     0,     0,     0,   134,     0,   126,
1534 >     127,   129,   128,   341,     0,     0,     0,   343,    30,    31,
1535 >      32,    33,    34,    35,    36,   256,   257,   249,   266,   265,
1536 >       0,   264,   251,   253,   260,   252,   250,   259,   246,   258,
1537 >     248,   247,    37,    37,    37,    39,    38,   254,   255,   411,
1538 >     414,   415,   425,   422,   408,   423,   420,   421,     0,   419,
1539 >     424,   407,   413,   410,   412,   426,   409,   443,   444,   458,
1540 >     459,   587,     0,   560,     0,   306,   307,   316,   313,   318,
1541 >     314,   315,   321,   317,   319,   312,   320,     0,   311,   305,
1542 >     324,   323,   322,   304,   435,   434,   290,   289,   274,   275,
1543 >     273,     0,   272,     0,     0,     0,   114,   115,   169,   165,
1544 >     217,   204,   214,   213,   202,   207,   224,   216,   222,   206,
1545 >     209,   219,   221,   218,   215,   223,   210,   212,   220,   208,
1546 >     211,     0,   200,   162,   164,   166,   167,   168,   179,   180,
1547 >     181,   174,   193,   175,   176,   177,   187,   196,   178,   190,
1548 >     194,   183,   195,   188,   184,   189,   182,   192,   186,   185,
1549 >     191,     0,   173,   163,   335,   333,   334,    74,    78,   373,
1550 >     378,   384,   387,   380,   386,   381,   385,   383,   379,   382,
1551 >       0,   377,   130,     0,     0,     0,     0,   125,   350,   356,
1552 >     362,   365,   358,   364,   359,   363,   361,   357,   360,     0,
1553 >     355,   351,   262,     0,    40,    41,    42,   417,     0,   588,
1554 >     561,   309,     0,   270,     0,   288,   285,   284,     0,     0,
1555 >       0,   198,     0,   171,     0,   375,     0,     0,     0,     0,
1556 >       0,   124,   353,     0,   263,   418,   310,   271,   203,   201,
1557 >     205,   199,   172,   376,   131,   133,   132,   140,   145,   144,
1558 >     139,   142,   146,   143,   138,   141,     0,   137,   354,   135,
1559 >       0,   136
1560   };
1561  
1562 < /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1563 <   STATE-NUM.  */
1757 < #define YYPACT_NINF -744
1758 < static const yytype_int16 yypact[] =
1562 >  /* YYPGOTO[NTERM-NUM].  */
1563 > static const yytype_int16 yypgoto[] =
1564   {
1565 <    -744,   610,  -744,  -209,  -187,  -179,  -744,  -744,  -744,  -176,
1566 <    -744,  -171,  -744,  -744,  -744,  -166,  -164,  -744,  -744,  -139,
1567 <    -136,  -744,  -744,  -131,  -744,  -744,  -744,  -744,  -744,  -744,
1568 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1569 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,    61,   807,  -126,
1570 <    -104,   -84,    16,   -79,   382,   -77,   -63,   -60,     7,    21,
1571 <     -49,   -40,   638,   381,   -26,    52,    25,  -152,    62,    85,
1572 <      86,    18,  -744,  -744,  -744,  -744,  -744,    88,    89,    93,
1573 <      94,    96,   101,   108,   112,   118,   119,   125,   127,   132,
1574 <     133,   162,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1575 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,   531,   499,   266,
1576 <    -744,   135,    28,  -744,  -744,    11,  -744,   142,   143,   145,
1577 <     147,   148,   150,   153,   163,   166,   167,   169,   173,   174,
1578 <     175,   177,   178,   180,   182,   183,   185,   191,   197,   200,
1579 <     201,   202,   204,   211,   212,   215,  -744,   216,  -744,   217,
1580 <     218,   221,   222,   225,   226,   229,   234,   235,   237,   238,
1581 <     239,   242,   253,   256,   257,   262,    38,  -744,  -744,  -744,
1582 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1583 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1584 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1585 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1586 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,   337,    24,   259,
1587 <      73,   263,     4,  -744,  -744,  -744,   126,   131,   264,   270,
1588 <      59,  -744,  -744,  -744,   389,   209,  -744,   276,   279,   280,
1589 <     281,   285,   287,     3,  -744,  -744,  -744,  -744,  -744,  -744,
1590 <    -744,   149,   288,   289,   290,   292,   299,   301,   302,   303,
1591 <     304,   305,   307,   308,   315,   324,   330,    75,  -744,  -744,
1592 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1593 <    -744,  -744,  -744,  -744,   208,    30,  -744,   331,    15,  -744,
1594 <    -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
1565 >   -1009, -1009, -1009,  -317,  -310, -1008,  -629, -1009, -1009,   838,
1566 >   -1009, -1009, -1009, -1009,   780, -1009, -1009, -1009,  -454, -1009,
1567 >      19, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1568 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,   984, -1009,
1569 >   -1009, -1009, -1009, -1009, -1009,   553, -1009, -1009, -1009, -1009,
1570 >     943, -1009, -1009, -1009, -1009,    13, -1009, -1009, -1009, -1009,
1571 >   -1009,  -240, -1009, -1009, -1009,   548, -1009, -1009, -1009, -1009,
1572 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009,  -202, -1009, -1009,
1573 >   -1009,  -196, -1009, -1009, -1009,   795, -1009, -1009, -1009, -1009,
1574 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1575 >   -1009, -1009, -1009, -1009,  -111, -1009, -1009, -1009, -1009, -1009,
1576 >    -189, -1009,   645, -1009, -1009, -1009,   -10, -1009, -1009, -1009,
1577 >   -1009, -1009,   672, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1578 >    -117, -1009, -1009, -1009, -1009, -1009, -1009,   611, -1009, -1009,
1579 >   -1009, -1009, -1009,   965, -1009, -1009, -1009, -1009,   555, -1009,
1580 >   -1009, -1009, -1009, -1009,  -131, -1009, -1009, -1009,   572, -1009,
1581 >   -1009, -1009, -1009,  -123, -1009, -1009, -1009,   781, -1009, -1009,
1582 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,  -100,
1583 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,   673, -1009,
1584 >   -1009, -1009, -1009, -1009,   756, -1009, -1009, -1009, -1009,  1038,
1585 >   -1009, -1009, -1009, -1009,   754, -1009, -1009, -1009, -1009,   986,
1586 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1587 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1588 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1589 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1590 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009,    43, -1009, -1009,
1591 >   -1009,    57, -1009, -1009, -1009, -1009, -1009,  1076, -1009, -1009,
1592 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1593 >   -1009, -1009, -1009, -1009,   967, -1009, -1009, -1009, -1009, -1009,
1594 >   -1009, -1009, -1009
1595   };
1596  
1597 < /* YYPGOTO[NTERM-NUM].  */
1598 < static const yytype_int16 yypgoto[] =
1597 >  /* YYDEFGOTO[NTERM-NUM].  */
1598 > static const yytype_int16 yydefgoto[] =
1599   {
1600 <    -744,  -744,  -744,  -743,  -298,  -663,  -598,  -744,  -744,   897,
1601 <    -744,  -744,  -744,  -744,   915,  -744,  -744,  -744,    14,  -744,
1602 <       1,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1603 <    -744,  -744,  -744,  -744,  -744,  -744,   924,  -744,  -744,  -744,
1604 <    -744,  -744,   796,  -744,  -744,  -744,  -744,    48,  -744,  -744,
1605 <    -744,  -744,  -744,  -226,  -744,  -744,  -744,   500,  -744,  -744,
1606 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -196,  -744,  -744,
1607 <    -744,  -193,  -744,  -744,  -744,   680,  -744,  -744,  -744,  -744,
1608 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1609 <    -744,  -744,  -744,  -744,  -744,  -177,  -744,   548,  -744,  -744,
1610 <    -744,   -62,  -744,  -744,  -744,  -744,  -744,   575,  -744,  -744,
1611 <    -744,  -744,  -744,  -744,  -744,  -153,  -744,  -744,  -744,  -744,
1612 <    -744,  -744,   516,  -744,  -744,  -744,  -744,  -744,   918,  -744,
1613 <    -744,  -744,  -744,   482,  -744,  -744,  -744,  -744,  -744,  -163,
1614 <    -744,  -744,  -744,   483,  -744,  -744,  -744,  -744,  -159,  -744,
1615 <    -744,  -744,   688,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1616 <    -744,  -744,  -744,  -137,  -744,  -744,  -744,  -744,  -744,  -744,
1617 <    -744,  -744,  -744,  -744,  -117,  -744,   604,  -744,  -744,  -744,
1618 <    -744,  -744,   700,  -744,  -744,  -744,  -744,   966,  -744,  -744,
1619 <    -744,  -744,  -744,  -744,   -99,  -744,   701,  -744,  -744,  -744,
1620 <    -744,   919,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1621 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1622 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1623 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1624 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,    35,
1625 <    -744,  -744,  -744,    32,  -744,  -744,  -744,  -744,  -744,   997,
1626 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1627 <    -744,  -744,  -744,  -744,  -744,  -744,   920,  -744,  -744,  -744,
1628 <    -744,  -744,  -744
1600 >      -1,     1,    25,   823,   824,  1085,  1086,    26,   226,   227,
1601 >     228,   229,    27,   270,   271,   272,   273,   785,   786,   789,
1602 >     790,   274,   275,   276,   277,   278,   279,   280,   281,   282,
1603 >     283,   284,   285,   286,   287,   288,    28,    74,    75,    76,
1604 >      77,    78,    29,    61,   504,   505,   506,   507,    30,   292,
1605 >     293,   294,   295,   296,  1048,  1049,  1050,  1051,  1052,  1225,
1606 >    1296,  1297,    31,    62,   519,   520,   521,   522,   523,   524,
1607 >     525,   526,   527,   528,   529,   751,  1201,  1202,   530,   745,
1608 >    1171,  1172,    32,    51,   342,   343,   344,   345,   346,   347,
1609 >     348,   349,   350,   351,   352,   353,   354,   355,   356,   357,
1610 >     358,   359,   618,  1070,  1071,    33,    59,   490,   730,  1141,
1611 >    1142,   491,   492,   493,  1145,   990,   991,   494,   495,    34,
1612 >      57,   468,   469,   470,   471,   472,   473,   474,   715,  1127,
1613 >    1128,   475,   476,   477,    35,    63,   535,   536,   537,   538,
1614 >     539,    36,   299,   300,   301,    37,    69,   589,   590,   591,
1615 >     592,   593,   806,  1239,  1240,    38,    66,   573,   574,   575,
1616 >     576,   796,  1220,  1221,    39,    52,   375,   376,   377,   378,
1617 >     379,   380,   381,   382,   383,   384,   385,   640,  1098,  1099,
1618 >     386,   387,   388,   389,   390,    40,    58,   481,   482,   483,
1619 >     484,    41,    53,   394,   395,   396,   397,    42,   115,   116,
1620 >     117,    43,    55,   404,   405,   406,   407,    44,   169,   170,
1621 >     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
1622 >     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
1623 >     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
1624 >     201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
1625 >     211,   212,   213,   214,   215,   437,   951,   952,   216,   435,
1626 >     925,   926,   217,   218,   219,    45,    94,    95,    96,    97,
1627 >      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
1628 >     108,   109,    46,   242,   243,   244,   245,   246,   247,   248,
1629 >     249,   250,   251
1630   };
1631  
1632 < /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1633 <   positive, shift that token.  If negative, reduce the rule which
1634 <   number is the opposite.  If YYTABLE_NINF, syntax error.  */
1922 < #define YYTABLE_NINF -108
1632 >  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1633 >     positive, shift that token.  If negative, reduce the rule whose
1634 >     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1635   static const yytype_int16 yytable[] =
1636   {
1637 <     806,   807,   573,   574,   236,   220,    45,    46,   220,   373,
1638 <     581,   462,   383,   805,   667,   668,   286,   110,  1076,    67,
1639 <     984,  1030,   227,   555,   985,   462,   286,   669,   670,   110,
1640 <      47,   555,  1001,  1002,  1003,  1004,  1005,   383,    48,   116,
1641 <     237,    52,    68,   986,   117,   118,    54,   987,  1049,    69,
1642 <     119,    58,  1050,    59,   238,   239,   240,   241,   120,   443,
1643 <     227,  1051,    67,   291,   121,  1052,   122,   123,   124,   374,
1644 <    1176,   492,   242,   125,  1177,   444,   251,   111,    62,   126,
1645 <     127,    63,   128,   129,   130,    68,    66,   493,   131,   111,
1646 <     445,   107,    69,   132,   446,   630,   631,   133,   134,   252,
1647 <     384,   135,   494,   638,   287,   640,   495,    70,   228,  1193,
1648 <     136,   556,   647,   108,   287,   650,   471,   137,   138,   556,
1649 <     139,   140,   141,   142,   143,   384,   661,   662,   375,   546,
1650 <     463,   385,   253,   109,   229,   144,   673,   674,   115,   676,
1651 <     217,   145,   146,   147,   463,   148,   228,   511,   149,   150,
1652 <      70,   472,   151,  1077,   218,   946,   385,   219,  1078,   496,
1653 <     512,   464,   386,    76,   254,  1178,   255,   256,   234,  1179,
1654 <     447,   473,   229,   557,  1182,   464,   474,   235,  1183,   448,
1655 <     449,   557,   497,    77,    78,   946,   152,   386,  1184,    79,
1656 <     153,   284,  1185,   154,   155,   156,   157,   158,  1186,   498,
1657 <     159,   160,  1187,   257,  1031,   258,   259,   260,   261,   546,
1658 <     511,   450,   221,   742,   743,   221,   465,   547,  -107,   526,
1659 <     484,  -107,   262,   512,   620,   565,   695,   732,    80,    81,
1660 <     465,   563,   475,   313,   295,    82,    83,    84,   765,   513,
1661 <     161,   162,   163,   947,   381,   164,   263,   314,   315,  1196,
1662 <     165,   316,   627,  1197,   441,  1198,   264,    85,    86,  1199,
1663 <     471,   344,   499,   345,   451,   346,   514,   373,  1200,   285,
1664 <      87,    88,  1201,   947,   690,   490,   500,   347,  1202,   548,
1665 <     292,    89,  1203,  1225,   265,   266,   719,  1226,   482,    90,
1666 <     795,   544,   348,   746,   747,   472,   349,   547,   803,   804,
1667 <     810,   811,   513,   293,   294,   948,   297,   298,   317,   318,
1668 <     319,   299,   300,   320,   301,   473,   350,  1210,   351,   302,
1669 <     474,   321,  1055,  1018,  1019,  1020,   303,   374,   352,   514,
1670 <     304,   702,   322,   323,   549,   948,   305,   306,   443,  1211,
1671 <     486,  1212,  1056,   307,   760,   308,   487,   324,   325,   353,
1672 <     309,   310,  1057,   380,   444,  1173,  1174,  1175,  1058,   548,
1673 <     392,   393,   725,   394,   528,   395,   396,   949,   397,   445,
1674 <    1090,   398,   566,   446,  1059,   326,   475,   354,   311,  1213,
1675 <     568,   399,   251,   116,   400,   401,   375,   402,   117,   118,
1676 <     492,   403,   404,   405,   119,   406,   407,   949,   408,  1060,
1677 <     409,   410,   120,   411,   355,   252,   493,  1061,   121,   412,
1678 <     122,   123,   124,   805,   549,   413,   327,   125,   414,   415,
1679 <     416,   494,   417,   126,   127,   495,   128,   129,   130,   418,
1680 <     419,   356,   131,   420,   422,   424,   425,   132,   253,   426,
1681 <     427,   133,   134,   428,   429,   135,  1062,   430,   600,   447,
1682 <    1214,  1215,   431,   432,   136,   433,   434,   435,   448,   449,
1683 <     436,   137,   138,  1063,   139,   140,   141,   142,   143,   357,
1684 <     254,   437,   255,   256,   438,   439,   616,   567,   496,   144,
1685 <     440,   483,   488,  1216,   569,   145,   146,   147,   489,   148,
1686 <     450,  1194,   149,   150,   520,   570,   151,   521,   522,   523,
1687 <     344,   497,   345,   524,   346,   525,   529,   530,   531,   257,
1688 <     532,   258,   259,   260,   261,  1094,   347,   533,   498,   534,
1689 <     535,   536,   537,   538,  1147,   539,   540,   571,   262,   572,
1690 <     152,   348,   313,   541,   153,   349,  1095,   154,   155,   156,
1691 <     157,   158,   542,   451,   159,   160,   314,   315,   543,   562,
1692 <     316,  1096,   263,   572,   575,   350,   576,   351,  1097,   578,
1693 <     577,   579,   264,   580,   582,   583,   584,   352,   775,   776,
1694 <     777,   778,   779,   585,   586,  1098,   622,   629,   587,   588,
1695 <     589,   499,   590,   591,   161,   162,   163,   592,   353,   164,
1696 <     265,   266,   593,   594,   165,   500,  1148,   595,  1099,   602,
1697 <     632,   596,   861,   633,   597,  1100,   598,   317,   318,   319,
1698 <       2,     3,   320,   599,     4,   603,   354,  1101,   604,   634,
1699 <     321,   605,   623,   635,     5,  1149,   606,     6,     7,   608,
1700 <     609,   322,   323,     8,  1150,  1102,  1103,  1104,   610,   236,
1701 <    1151,   611,   612,   355,     9,   613,   324,   325,    10,    11,
1702 <     884,   614,   615,   618,  1152,   619,  1153,  1154,    12,   624,
1703 <     625,   636,   637,   639,   641,  1155,   642,   643,   644,   645,
1704 <     356,  1156,    13,   646,   326,   237,   648,   649,  1118,   651,
1705 <      14,    15,   652,   654,   653,  1105,   655,   656,   657,   238,
1706 <     239,   240,   241,   658,  1106,   659,   660,   663,    16,  1107,
1707 <     664,   665,   666,   675,   671,  1108,   672,   242,   357,  1109,
1708 <     677,  1110,    17,   678,   679,   327,  1111,   862,   863,   864,
1709 <     865,   866,  1112,   867,   868,   680,   869,   870,   871,  1161,
1710 <     681,   872,   682,   873,   874,   683,   875,   685,   876,   686,
1711 <     877,   878,   704,   687,   879,   752,    18,   688,   689,   706,
1712 <     880,   692,   694,   697,   699,    19,    20,   700,   707,    21,
1713 <      22,   708,   705,   701,   709,   885,   886,   887,   888,   889,
1714 <     710,   890,   891,   721,   892,   893,   894,   711,   712,   895,
1715 <     714,   896,   897,   727,   898,   728,   899,   715,   900,   901,
1716 <     716,   718,   902,  1119,  1120,  1121,  1122,  1123,   903,  1124,
1717 <    1125,  1162,  1126,  1127,  1128,   729,   722,  1129,    76,  1130,
1718 <    1131,    23,  1132,   723,  1133,   724,  1134,  1135,   730,   731,
1719 <    1136,   733,   734,   735,   736,   737,  1137,   738,    77,    78,
1720 <    1163,   739,   740,   741,    79,   750,   751,   753,   754,  1164,
1721 <     757,   755,   759,   756,   762,  1165,   767,   768,   763,   769,
1722 <     770,   771,   772,   793,   773,   794,   774,   782,   796,  1166,
1723 <     783,  1167,  1168,   784,   785,   786,   787,   788,   789,   790,
1724 <    1169,   791,   792,    80,    81,   797,  1170,   798,   799,   800,
1725 <      82,    83,    84,   801,   802,   805,   808,   809,   812,   813,
1726 <     814,   815,   816,   817,   819,   818,   823,   826,   820,   821,
1727 <     822,   824,    85,    86,   827,   825,   828,   829,   830,   831,
1728 <     832,   833,   834,   835,   836,    87,    88,   837,   838,   925,
1729 <     839,   928,   929,   840,   926,   841,    89,   842,   930,   927,
1730 <     931,   843,   932,   934,    90,   936,   844,   845,   846,   847,
1731 <     848,   849,   850,   939,   940,   851,   852,   853,   854,   855,
1732 <     856,   857,   858,   859,   860,   883,   906,   907,   908,   909,
1733 <     910,   911,   912,   913,   914,   915,   916,   917,   918,   941,
1734 <     919,   957,   920,   921,   960,   922,   958,   923,   924,   961,
1735 <     933,   962,   937,   964,   935,   966,   938,   944,  1145,   959,
1736 <     967,   968,   993,   995,   997,   296,  1083,  1188,  1091,  1144,
1737 <    1227,   720,  1046,  1222,  1221,   945,   955,   956,   601,   965,
1738 <    1208,   963,   969,   970,   971,   972,  1072,   973,   485,   974,
1739 <     975,   976,  1189,   977,   978,   703,   979,   691,   980,  1191,
1740 <    1206,   726,   761,   981,   982,   983,   988,   989,  1223,   990,
1741 <    1204,   766,   991,   992,  1224,   996,   617,   994,   999,   998,
1742 <    1000,  1006,  1007,  1008,  1009,  1010,  1011,  1012,  1013,  1014,
1743 <    1015,  1016,  1017,  1023,  1024,  1025,  1026,  1027,  1207,  1028,
1744 <    1029,   696,  1034,  1035,  1036,  1037,   621,  1038,   382,  1039,
1745 <    1205,  1040,  1180,  1041,  1042,   442,  1043,  1181,   312,   628,
1746 <       0,     0,  1044,  1045,     0,  1053,  1054,  1066,  1067,  1068,
1747 <    1069,  1070,  1071,  1075,  1081,  1082,     0,  1086,     0,     0,
1748 <    1084,  1092,  1087,  1089,  1093,  1115,  1116,  1117,  1140,  1141,
1749 <    1142,  1143,  1146,  1159,  1160,  1190,     0,   491,  1195,  1209,
1750 <    1192,  1219,  1220,     0,     0,     0,     0,     0,     0,     0,
1637 >     851,   852,   602,   603,  1096,   605,   606,   607,  1068,   585,
1638 >     478,    70,  1044,   508,  1138,   233,   459,   223,    49,   531,
1639 >      50,   113,   113,  1034,   585,   297,   223,  1035,   290,   509,
1640 >     501,   485,   460,   478,  1036,    71,   290,   850,  1037,    54,
1641 >    1111,   401,    72,   234,  1112,   510,  1113,    56,   461,    60,
1642 >    1114,   235,   501,   532,  1242,    64,  1247,    65,  1243,   391,
1643 >    1248,   119,   459,   236,   237,    67,   120,   121,   238,   239,
1644 >     240,   401,   122,   297,  1244,  1245,  1246,   570,   460,   511,
1645 >     123,   124,   462,  1069,   570,   114,   114,   125,   486,  1251,
1646 >     126,   127,   241,  1252,   461,   487,   128,   488,   533,   661,
1647 >     662,   129,   130,  1044,   131,   132,   133,   669,   134,   502,
1648 >     586,   673,    73,  1045,   512,   224,   678,   135,    68,   681,
1649 >     110,   136,   137,   392,   224,   586,   298,   111,   462,   691,
1650 >     692,   502,   138,  1268,   513,   252,   112,   463,   479,   225,
1651 >     704,   139,   402,   707,   708,   464,   465,   534,   225,   140,
1652 >     514,   141,   118,   142,  1139,   143,   489,   144,   145,   253,
1653 >     696,   479,   220,   697,  1140,   391,   466,   515,   516,   403,
1654 >     146,   221,   402,   222,   298,   147,   148,   149,   571,   150,
1655 >     151,   152,   325,   463,   153,   571,   698,   393,   303,   699,
1656 >    1253,   464,   465,   254,  1254,  1097,   326,   327,   304,   403,
1657 >     328,  -123,   255,   503,  1045,   305,  1046,  1261,   230,  -123,
1658 >     154,  1262,   466,    47,    48,   855,   856,   517,   155,   156,
1659 >     157,   158,   159,   160,   256,   503,   231,   232,   257,   392,
1660 >     587,   531,   289,  1047,   588,   480,   258,   768,   518,   259,
1661 >     260,   467,   307,  1226,   753,   587,   548,   721,   329,   588,
1662 >     759,   161,   291,   399,   581,   808,   583,   499,   480,   579,
1663 >     291,   740,   732,   485,   725,   532,   330,   331,   332,   333,
1664 >    1263,   261,   658,   334,  1264,   162,   163,   335,   164,   165,
1665 >     166,  1265,    79,   336,   167,  1266,   302,   467,   262,   168,
1666 >     652,   263,   457,   393,   337,   338,  1272,  1046,   572,   496,
1667 >    1273,   783,   784,    80,    81,   572,   339,   838,   797,    82,
1668 >     533,   842,  1117,   306,   845,   360,   264,   361,   849,   362,
1669 >     486,  1082,  1083,  1084,  1047,   309,  1299,   487,   340,   488,
1670 >    1300,   363,   550,  1118,   265,   266,   267,   310,   787,   788,
1671 >     311,   312,  1119,   313,    83,    84,   314,   364,   315,   316,
1672 >      85,    86,    70,   317,   318,   319,    87,    88,   320,   534,
1673 >     321,   268,   269,    89,    90,    91,   568,   341,   594,   577,
1674 >     252,   322,   365,  1120,   366,   398,    71,   408,   409,   410,
1675 >     411,   367,   412,    72,   413,   414,   415,   416,   489,    92,
1676 >      93,   368,   417,   418,   253,   419,   420,   421,   595,   422,
1677 >     423,   119,  1121,  1122,   424,   425,   120,   121,   426,   427,
1678 >    1123,   428,   122,   631,   429,   596,   369,   430,   431,   432,
1679 >     123,   124,   433,   434,   850,   436,   438,   125,   254,   439,
1680 >     126,   127,   440,   441,   442,  1124,   128,   255,   443,   444,
1681 >     370,   129,   130,   445,   131,   132,   133,   446,   134,   447,
1682 >     448,  1125,   508,    73,   449,   450,   451,   135,   452,   256,
1683 >     371,   136,   137,   257,   598,   453,   454,   455,   509,   372,
1684 >     456,   258,   138,   497,   259,   260,  1210,   498,   540,   541,
1685 >     542,   139,   543,   544,   510,   545,   546,   547,   551,   140,
1686 >     552,   141,   553,   142,   554,   143,   597,   144,   145,  1058,
1687 >    1059,  1060,  1061,  1062,  1063,  1064,   261,   555,  1150,  1287,
1688 >     146,   556,  1126,   323,   373,   147,   148,   149,   511,   150,
1689 >     151,   152,  1151,   262,   153,   557,   263,   558,   559,   560,
1690 >    1152,   561,   562,   360,   563,   361,   564,   362,  1211,   565,
1691 >    1288,   374,  1289,   566,  1153,   567,   648,   578,   599,   363,
1692 >     154,   264,   582,   512,   600,   601,   604,   608,   155,   156,
1693 >     157,   158,   159,   160,   609,   364,   610,  1212,   611,   265,
1694 >     266,   267,   612,   513,  1213,  1154,   613,  1155,   614,   660,
1695 >     615,  1207,   616,  1214,   617,   654,   633,  1290,   655,   514,
1696 >     365,   161,   366,   619,   620,  1269,   268,   269,   621,   367,
1697 >     622,   623,   624,  1156,  1291,   625,   515,   516,   626,   368,
1698 >    1215,   627,  1216,  1217,   628,   162,   163,   629,   164,   165,
1699 >     166,   630,   634,   635,   167,   636,  1218,   637,   638,   168,
1700 >     639,   641,   642,  1219,   369,   643,  1157,   663,  1158,  1292,
1701 >    1293,   644,   645,   646,   647,   650,   651,     2,     3,   656,
1702 >     657,     4,   664,   665,   325,   666,   517,  1159,   370,   671,
1703 >     667,     5,   668,   904,     6,     7,   672,   670,   326,   327,
1704 >     674,     8,   328,   601,   675,  1160,   676,   518,   371,   677,
1705 >    1161,   679,     9,   680,  1162,    10,    11,   372,   682,  1163,
1706 >     683,   684,  1164,   685,   686,  1294,   688,  1165,   687,  1295,
1707 >     816,   817,   818,   819,   820,   821,   822,   689,   233,   690,
1708 >     693,  1166,   694,    12,  1167,   695,  1168,   700,    13,   701,
1709 >     329,   702,   703,   705,   706,   709,    14,  1169,   928,   710,
1710 >     929,   930,   373,   711,  1170,   734,   234,   712,   330,   331,
1711 >     332,   333,   713,   735,   235,   334,   714,    15,    16,   335,
1712 >     716,   717,   718,   719,   720,   336,   236,   237,   723,   374,
1713 >     724,   238,   239,   240,   728,    17,   337,   338,   727,   729,
1714 >     731,  1178,   736,  1179,  1180,   737,   738,   742,   339,   905,
1715 >     906,   907,    18,   908,   909,   241,   910,   911,   755,   912,
1716 >     739,   913,   764,   743,   914,    19,    20,   915,   916,   917,
1717 >     340,   918,   744,   761,   746,  1229,   919,   747,   748,   749,
1718 >     920,   921,   922,   762,   750,    21,   752,   756,   757,   758,
1719 >     923,   763,   769,   765,   766,   924,   767,   770,    22,   771,
1720 >     772,   773,   774,   775,   793,   776,   777,    23,   778,   341,
1721 >     779,    24,   780,   781,   931,   932,   933,   795,   934,   935,
1722 >     782,   936,   937,   791,   938,   792,   939,   794,   799,   940,
1723 >     800,   801,   941,   942,   943,   802,   944,  1230,   803,   804,
1724 >     805,   945,   810,   807,   811,   946,   947,   948,   836,   812,
1725 >     813,   814,   815,   825,   837,   949,   826,  1181,  1182,  1183,
1726 >     950,  1184,  1185,   827,  1186,  1187,  1231,  1188,   828,  1189,
1727 >     829,   830,  1190,  1232,    79,  1191,  1192,  1193,   831,  1194,
1728 >     839,   832,  1233,   833,  1195,   834,   835,   840,  1196,  1197,
1729 >    1198,   841,   843,   844,   846,    80,    81,   847,  1199,   848,
1730 >     850,    82,   853,  1200,   854,   857,   861,   864,   858,  1234,
1731 >     859,  1235,  1236,   860,   976,   869,   862,   863,   865,   866,
1732 >     867,   868,   872,   870,   871,  1237,   873,   874,   875,   974,
1733 >     876,   877,  1238,   977,   878,   879,    83,    84,   880,   975,
1734 >     881,   882,    85,    86,   883,   884,   885,   886,    87,    88,
1735 >     887,   888,   889,   890,   891,    89,    90,    91,   892,   893,
1736 >     894,   895,   896,   897,   898,   899,   900,   978,   901,   902,
1737 >     903,   927,   953,   979,   954,   955,   956,   957,   958,   959,
1738 >     960,    92,    93,   961,   962,   963,   964,   965,   966,   967,
1739 >     968,   969,   970,   971,   972,   973,   980,   981,   983,   982,
1740 >     985,   984,   986,   987,   988,   989,   995,   992,   996,   998,
1741 >    1001,  1002,  1003,   993,  1004,   994,  1007,   999,  1005,  1009,
1742 >     569,  1010,  1011,  1040,  1054,  1056,  1208,   741,   308,   997,
1743 >    1301,  1227,  1282,  1000,   500,  1277,  1281,   754,  1008,  1006,
1744 >    1012,  1013,  1014,  1015,  1016,  1017,  1018,  1019,  1020,  1021,
1745 >    1022,  1023,  1024,  1025,  1026,  1027,  1028,  1029,  1030,  1031,
1746 >    1032,  1033,  1038,  1039,  1255,  1042,  1043,  1041,  1053,  1057,
1747 >    1055,  1065,  1066,  1067,  1072,  1073,  1074,  1267,  1075,  1076,
1748 >    1077,  1078,  1079,  1080,  1081,  1087,  1278,  1088,  1089,  1090,
1749 >    1091,  1092,  1093,  1094,  1095,  1100,  1101,  1102,  1103,  1104,
1750 >    1279,  1280,  1274,  1105,  1256,  1276,   733,   632,  1106,  1107,
1751 >     722,  1108,  1298,  1283,   809,   798,   760,  1109,  1275,  1110,
1752 >     653,  1115,  1116,   400,   726,   458,   649,  1250,   659,  1143,
1753 >    1129,  1130,  1131,  1132,  1133,  1134,  1135,  1136,  1137,  1249,
1754 >     324,  1146,  1147,  1148,  1144,  1149,  1173,  1174,  1175,  1176,
1755 >    1177,  1203,  1204,  1205,  1206,  1209,  1222,     0,     0,  1228,
1756 >    1223,  1224,  1241,  1257,     0,  1258,  1259,  1271,  1270,  1260,
1757 >    1284,  1285,  1286,     0,     0,     0,     0,     0,     0,   549,
1758         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1759         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1760 <       0,     0,     0,   527,     0,     0,     0,     0,     0,     0,
1760 >       0,     0,     0,     0,     0,   580,     0,     0,     0,     0,
1761         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2043       0,     0,   545,     0,     0,     0,     0,     0,     0,     0,
1762         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1763 <       0,     0,     0,     0,     0,     0,   564
1763 >       0,     0,     0,     0,   584
1764   };
1765  
2048 #define yypact_value_is_default(Yystate) \
2049  (!!((Yystate) == (-744)))
2050
2051 #define yytable_value_is_error(Yytable_value) \
2052  YYID (0)
2053
1766   static const yytype_int16 yycheck[] =
1767   {
1768 <     598,   599,   300,   301,     1,     1,   215,   216,     1,     1,
1769 <     308,     1,     1,    99,   160,   161,     1,     1,    51,     1,
1770 <     215,     8,     1,     1,   219,     1,     1,   160,   161,     1,
1771 <     217,     1,   775,   776,   777,   778,   779,     1,   217,     1,
1772 <      37,   217,    24,   215,     6,     7,   217,   219,   215,    31,
1773 <      12,   217,   219,   217,    51,    52,    53,    54,    20,     1,
1774 <       1,   215,     1,   215,    26,   219,    28,    29,    30,    61,
1775 <     215,     1,    69,    35,   219,    17,     1,    61,   217,    41,
1776 <      42,   217,    44,    45,    46,    24,   217,    17,    50,    61,
1777 <      32,   217,    31,    55,    36,   393,   394,    59,    60,    24,
1778 <      89,    63,    32,   401,    89,   403,    36,    89,    87,   195,
1779 <      72,    89,   410,   217,    89,   413,     1,    79,    80,    89,
1780 <      82,    83,    84,    85,    86,    89,   424,   425,   120,     1,
1781 <     120,   120,    57,   217,   113,    97,   434,   435,   217,   437,
1782 <     217,   103,   104,   105,   120,   107,    87,     1,   110,   111,
1783 <      89,    36,   114,   186,   217,     1,   120,   217,   191,    89,
1784 <      14,   151,   151,     1,    89,   215,    91,    92,   217,   219,
1785 <     112,    56,   113,   151,   215,   151,    61,   217,   219,   121,
1786 <     122,   151,   112,    21,    22,     1,   148,   151,   215,    27,
1787 <     152,   217,   219,   155,   156,   157,   158,   159,   215,   129,
1788 <     162,   163,   219,   128,   191,   130,   131,   132,   133,     1,
1789 <       1,   153,   208,   134,   135,   208,   206,    89,   214,   216,
1790 <     216,   214,   147,    14,   216,   118,   216,   525,    66,    67,
1791 <     206,   216,   117,     1,   216,    73,    74,    75,   216,    93,
1792 <     202,   203,   204,    89,   216,   207,   171,    15,    16,   215,
1793 <     212,    19,   216,   219,   216,   215,   181,    95,    96,   219,
1794 <       1,     1,   192,     3,   206,     5,   120,     1,   215,   217,
1795 <     108,   109,   219,    89,   216,   216,   206,    17,   215,   151,
1796 <     218,   119,   219,   215,   209,   210,   216,   219,   215,   127,
1797 <     588,   216,    32,   134,   135,    36,    36,    89,   596,   597,
1798 <     178,   179,    93,   218,   218,   151,   218,   218,    76,    77,
1799 <      78,   218,   218,    81,   218,    56,    56,    40,    58,   218,
1800 <      61,    89,    13,     9,    10,    11,   218,    61,    68,   120,
1801 <     218,   216,   100,   101,   206,   151,   218,   218,     1,    62,
1802 <     214,    64,    33,   218,   216,   218,   215,   115,   116,    89,
1803 <     218,   218,    43,   218,    17,  1018,  1019,  1020,    49,   151,
1804 <     218,   218,   216,   218,   215,   218,   218,   213,   218,    32,
1805 <     216,   218,   118,    36,    65,   143,   117,   117,   216,   102,
1806 <     215,   218,     1,     1,   218,   218,   120,   218,     6,     7,
1807 <       1,   218,   218,   218,    12,   218,   218,   213,   218,    90,
1808 <     218,   218,    20,   218,   144,    24,    17,    98,    26,   218,
1809 <      28,    29,    30,    99,   206,   218,   184,    35,   218,   218,
1810 <     218,    32,   218,    41,    42,    36,    44,    45,    46,   218,
1811 <     218,   171,    50,   218,   218,   218,   218,    55,    57,   218,
1812 <     218,    59,    60,   218,   218,    63,   137,   218,   216,   112,
1813 <     173,   174,   218,   218,    72,   218,   218,   218,   121,   122,
1814 <     218,    79,    80,   154,    82,    83,    84,    85,    86,   209,
1815 <      89,   218,    91,    92,   218,   218,   216,   118,    89,    97,
1816 <     218,   218,   218,   206,    99,   103,   104,   105,   218,   107,
1817 <     153,  1089,   110,   111,   218,    99,   114,   218,   218,   218,
1818 <       1,   112,     3,   218,     5,   218,   218,   218,   218,   128,
1819 <     218,   130,   131,   132,   133,     4,    17,   218,   129,   218,
1820 <     218,   218,   218,   218,    64,   218,   218,   160,   147,    99,
1821 <     148,    32,     1,   218,   152,    36,    25,   155,   156,   157,
1822 <     158,   159,   218,   206,   162,   163,    15,    16,   218,   218,
1823 <      19,    40,   171,    99,    99,    56,    99,    58,    47,   160,
1824 <      99,   160,   181,    99,   160,   160,   215,    68,   138,   139,
1825 <     140,   141,   142,   215,   218,    64,   118,   160,   218,   218,
1826 <     218,   192,   218,   218,   202,   203,   204,   218,    89,   207,
1827 <     209,   210,   218,   218,   212,   206,   136,   218,    87,   215,
1828 <      99,   218,    51,   160,   218,    94,   218,    76,    77,    78,
1829 <       0,     1,    81,   218,     4,   218,   117,   106,   218,   160,
1830 <      89,   218,   215,    99,    14,   165,   218,    17,    18,   218,
1831 <     218,   100,   101,    23,   174,   124,   125,   126,   218,     1,
1832 <     180,   218,   218,   144,    34,   218,   115,   116,    38,    39,
1833 <      51,   218,   218,   218,   194,   218,   196,   197,    48,   218,
1834 <     218,   118,   160,   160,    99,   205,    99,    99,   160,   160,
1835 <     171,   211,    62,   160,   143,    37,    99,    99,    51,    99,
1836 <      70,    71,    99,    99,   118,   174,    99,   160,   160,    51,
1837 <      52,    53,    54,   218,   183,   160,   218,   160,    88,   188,
1838 <     160,   160,   160,   118,   160,   194,   160,    69,   209,   198,
1839 <     160,   200,   102,   160,   160,   184,   205,   166,   167,   168,
1840 <     169,   170,   211,   172,   173,   215,   175,   176,   177,    64,
1841 <     215,   180,   218,   182,   183,   218,   185,   218,   187,   218,
1842 <     189,   190,   160,   218,   193,    99,   136,   218,   218,   217,
1843 <     199,   218,   218,   215,   218,   145,   146,   218,   118,   149,
1844 <     150,   118,   215,   218,   215,   166,   167,   168,   169,   170,
1845 <     215,   172,   173,   215,   175,   176,   177,   218,   218,   180,
1846 <     218,   182,   183,   160,   185,   160,   187,   218,   189,   190,
1847 <     218,   218,   193,   166,   167,   168,   169,   170,   199,   172,
1848 <     173,   136,   175,   176,   177,   118,   218,   180,     1,   182,
1849 <     183,   201,   185,   218,   187,   218,   189,   190,   160,   160,
1850 <     193,   215,   118,   160,   118,   118,   199,   118,    21,    22,
1851 <     165,   118,   118,   118,    27,   118,   118,   118,   118,   174,
1852 <     218,   215,   218,   215,   215,   180,   118,   215,   218,   215,
1853 <     215,   215,   215,    99,   215,    99,   215,   215,    99,   194,
1854 <     215,   196,   197,   215,   215,   215,   215,   215,   215,   215,
1855 <     205,   215,   215,    66,    67,    99,   211,    99,    99,   118,
1856 <      73,    74,    75,    99,    99,    99,   215,   118,   118,   160,
1857 <     218,   118,   118,   118,    99,   118,   215,   215,   118,   118,
1858 <     118,   118,    95,    96,   215,   118,   118,   118,   218,   215,
1859 <     215,   215,   215,   215,   215,   108,   109,   215,   215,   118,
1860 <     215,   118,    99,   215,   160,   215,   119,   215,   118,   218,
1861 <     118,   215,   118,   118,   127,   118,   215,   215,   215,   215,
1862 <     215,   215,   215,   118,   118,   215,   215,   215,   215,   215,
1863 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
1864 <     215,   215,   215,   215,   215,   215,   215,   215,   215,    99,
1865 <     215,   118,   215,   215,   118,   215,   160,   215,   215,   118,
1866 <     215,   118,   215,   118,   218,   118,   218,   215,   987,   218,
1867 <     118,   118,   118,   118,   118,    71,   164,    99,   950,   985,
1868 <    1226,   501,   123,  1199,  1197,   215,   215,   215,   328,   215,
1869 <    1187,   218,   215,   215,   215,   215,   123,   215,   222,   215,
1870 <     215,   215,  1084,   215,   215,   477,   215,   452,   215,   118,
1871 <    1183,   515,   550,   215,   215,   215,   215,   215,  1201,   215,
1872 <    1177,   558,   215,   215,  1203,   215,   358,   218,   215,   218,
1873 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
1874 <     215,   215,   215,   215,   215,   215,   215,   215,  1185,   215,
1875 <     215,   467,   215,   215,   215,   215,   376,   215,   112,   215,
1876 <    1179,   215,  1050,   215,   215,   166,   215,  1052,    91,   388,
1877 <      -1,    -1,   215,   215,    -1,   215,   215,   215,   215,   215,
1878 <     215,   215,   215,   215,   215,   215,    -1,   215,    -1,    -1,
1879 <     219,   215,   218,   218,   215,   215,   215,   215,   215,   215,
1880 <     215,   215,   215,   215,   215,   215,    -1,   230,   215,   215,
1881 <     218,   215,   215,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1768 >     629,   630,   312,   313,     8,   315,   316,   317,    53,     1,
1769 >       1,     1,     1,     1,    49,     1,     1,     1,   233,     1,
1770 >     233,     1,     1,   231,     1,     1,     1,   235,     1,    17,
1771 >       1,     1,    17,     1,   231,    25,     1,   112,   235,   233,
1772 >     231,     1,    32,    29,   235,    33,   231,   233,    33,   233,
1773 >     235,    37,     1,    35,   231,   233,   231,   233,   235,     1,
1774 >     235,     1,     1,    49,    50,   233,     6,     7,    54,    55,
1775 >      56,     1,    12,     1,  1082,  1083,  1084,     1,    17,    67,
1776 >      20,    21,    67,   128,     1,    65,    65,    27,    58,   231,
1777 >      30,    31,    78,   235,    33,    65,    36,    67,    80,   409,
1778 >     410,    41,    42,     1,    44,    45,    46,   417,    48,    80,
1779 >     102,   421,   102,   102,   102,    99,   426,    57,   233,   429,
1780 >     233,    61,    62,    65,    99,   102,   102,   233,    67,   439,
1781 >     440,    80,    72,   208,   122,     1,   233,   122,   129,   123,
1782 >     450,    81,   102,   453,   454,   130,   131,   129,   123,    89,
1783 >     138,    91,   233,    93,   189,    95,   126,    97,    98,    25,
1784 >     214,   129,   233,   217,   199,     1,   151,   155,   156,   129,
1785 >     110,   233,   102,   233,   102,   115,   116,   117,   102,   119,
1786 >     120,   121,     1,   122,   124,   102,   214,   129,   231,   217,
1787 >     231,   130,   131,    59,   235,   199,    15,    16,   234,   129,
1788 >      19,   174,    68,   174,   102,   234,   195,   231,   233,   174,
1789 >     150,   235,   151,   231,   232,   178,   179,   205,   158,   159,
1790 >     160,   161,   162,   163,    90,   174,   233,   233,    94,    65,
1791 >     222,     1,   233,   222,   226,   226,   102,   547,   226,   105,
1792 >     106,   226,   232,   232,   232,   222,   232,   232,    67,   226,
1793 >     232,   191,   225,   232,   174,   232,   232,   232,   226,   232,
1794 >     225,   232,   232,     1,   232,    35,    85,    86,    87,    88,
1795 >     231,   137,   232,    92,   235,   215,   216,    96,   218,   219,
1796 >     220,   231,     1,   102,   224,   235,   233,   226,   154,   229,
1797 >     232,   157,   232,   129,   113,   114,   231,   195,   222,   231,
1798 >     235,   203,   204,    22,    23,   222,   125,   617,   232,    28,
1799 >      80,   621,    13,   234,   624,     1,   182,     3,   628,     5,
1800 >      58,     9,    10,    11,   222,   234,   231,    65,   147,    67,
1801 >     235,    17,   231,    34,   200,   201,   202,   234,   203,   204,
1802 >     234,   234,    43,   234,    63,    64,   234,    33,   234,   234,
1803 >      69,    70,     1,   234,   234,   234,    75,    76,   234,   129,
1804 >     234,   227,   228,    82,    83,    84,   232,   186,   127,   231,
1805 >       1,   234,    58,    74,    60,   234,    25,   234,   234,   234,
1806 >     234,    67,   234,    32,   234,   234,   234,   234,   126,   108,
1807 >     109,    77,   234,   234,    25,   234,   234,   234,   127,   234,
1808 >     234,     1,   103,   104,   234,   234,     6,     7,   234,   234,
1809 >     111,   234,    12,   232,   234,   127,   102,   234,   234,   234,
1810 >      20,    21,   234,   234,   112,   234,   234,    27,    59,   234,
1811 >      30,    31,   234,   234,   234,   136,    36,    68,   234,   234,
1812 >     126,    41,    42,   234,    44,    45,    46,   234,    48,   234,
1813 >     234,   152,     1,   102,   234,   234,   234,    57,   234,    90,
1814 >     146,    61,    62,    94,   112,   234,   234,   234,    17,   155,
1815 >     234,   102,    72,   234,   105,   106,    73,   234,   234,   234,
1816 >     234,    81,   234,   234,    33,   234,   234,   234,   234,    89,
1817 >     234,    91,   234,    93,   234,    95,   231,    97,    98,   816,
1818 >     817,   818,   819,   820,   821,   822,   137,   234,     4,    40,
1819 >     110,   234,   213,   232,   200,   115,   116,   117,    67,   119,
1820 >     120,   121,    18,   154,   124,   234,   157,   234,   234,   234,
1821 >      26,   234,   234,     1,   234,     3,   234,     5,   135,   234,
1822 >      71,   227,    73,   234,    40,   234,   232,   234,   112,    17,
1823 >     150,   182,   234,   102,   214,   112,   112,   112,   158,   159,
1824 >     160,   161,   162,   163,   112,    33,   112,   164,   214,   200,
1825 >     201,   202,   214,   122,   171,    71,   231,    73,   231,   214,
1826 >     234,  1035,   234,   180,   234,   127,   231,   118,   231,   138,
1827 >      58,   191,    60,   234,   234,  1224,   227,   228,   234,    67,
1828 >     234,   234,   234,    99,   135,   234,   155,   156,   234,    77,
1829 >     207,   234,   209,   210,   234,   215,   216,   234,   218,   219,
1830 >     220,   234,   234,   234,   224,   234,   223,   234,   234,   229,
1831 >     234,   234,   234,   230,   102,   234,   132,   214,   134,   170,
1832 >     171,   234,   234,   234,   234,   234,   234,     0,     1,   234,
1833 >     234,     4,   112,   214,     1,   112,   205,   153,   126,   112,
1834 >     127,    14,   214,    49,    17,    18,   112,   214,    15,    16,
1835 >     112,    24,    19,   112,   214,   171,   214,   226,   146,   214,
1836 >     176,   112,    35,   112,   180,    38,    39,   155,   112,   185,
1837 >     112,   112,   188,   112,   214,   226,   214,   193,   234,   230,
1838 >     139,   140,   141,   142,   143,   144,   145,   234,     1,   214,
1839 >     214,   207,   214,    66,   210,   214,   212,   214,    71,   214,
1840 >      67,   214,   127,   214,   214,   214,    79,   223,    49,   214,
1841 >      51,    52,   200,   231,   230,   127,    29,   231,    85,    86,
1842 >      87,    88,   234,   127,    37,    92,   234,   100,   101,    96,
1843 >     234,   234,   234,   234,   234,   102,    49,    50,   234,   227,
1844 >     234,    54,    55,    56,   234,   118,   113,   114,   231,   234,
1845 >     234,    49,   231,    51,    52,   231,   234,   231,   125,   165,
1846 >     166,   167,   135,   169,   170,    78,   172,   173,   231,   175,
1847 >     234,   177,   127,   234,   180,   148,   149,   183,   184,   185,
1848 >     147,   187,   234,   214,   234,    73,   192,   234,   234,   234,
1849 >     196,   197,   198,   214,   234,   168,   234,   234,   234,   234,
1850 >     206,   214,   231,   214,   214,   211,   214,   127,   181,   214,
1851 >     127,   112,   112,   127,   231,   127,   127,   190,   127,   186,
1852 >     127,   194,   127,   112,   165,   166,   167,   234,   169,   170,
1853 >     127,   172,   173,   127,   175,   127,   177,   231,   214,   180,
1854 >     231,   233,   183,   184,   185,   127,   187,   135,   231,   231,
1855 >     234,   192,   231,   234,   231,   196,   197,   198,   112,   231,
1856 >     231,   231,   231,   231,   112,   206,   231,   165,   166,   167,
1857 >     211,   169,   170,   231,   172,   173,   164,   175,   231,   177,
1858 >     231,   231,   180,   171,     1,   183,   184,   185,   231,   187,
1859 >     234,   231,   180,   231,   192,   231,   231,   112,   196,   197,
1860 >     198,   112,   112,   112,   127,    22,    23,   112,   206,   112,
1861 >     112,    28,   231,   211,   127,   127,   234,   112,   214,   207,
1862 >     127,   209,   210,   127,   234,   231,   127,   127,   127,   127,
1863 >     127,   127,   231,   127,   127,   223,   231,   127,   127,   127,
1864 >     231,   231,   230,   127,   231,   231,    63,    64,   231,   214,
1865 >     231,   231,    69,    70,   231,   231,   231,   231,    75,    76,
1866 >     231,   231,   231,   231,   231,    82,    83,    84,   231,   231,
1867 >     231,   231,   231,   231,   231,   231,   231,   112,   231,   231,
1868 >     231,   231,   231,   127,   231,   231,   231,   231,   231,   231,
1869 >     231,   108,   109,   231,   231,   231,   231,   231,   231,   231,
1870 >     231,   231,   231,   231,   231,   231,   127,   127,   127,   231,
1871 >     231,   127,   127,   127,   234,   112,   127,   231,   127,   127,
1872 >     127,   127,   127,   231,   127,   231,   127,   214,   214,   127,
1873 >     270,   127,   127,   127,   127,   127,  1037,   504,    74,   231,
1874 >    1300,  1048,  1264,   234,   226,  1254,  1262,   519,   231,   234,
1875 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1876 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1877 >     231,   231,   231,   231,   112,   231,   231,   234,   231,   231,
1878 >     234,   231,   231,   231,   231,   231,   231,   127,   231,   231,
1879 >     231,   231,   231,   231,   231,   231,   133,   231,   231,   231,
1880 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1881 >     133,   133,  1243,   231,  1144,  1252,   491,   342,   231,   231,
1882 >     468,   231,  1273,  1266,   589,   573,   535,   231,  1248,   231,
1883 >     394,   231,   231,   115,   481,   169,   375,  1114,   404,   221,
1884 >     231,   231,   231,   231,   231,   231,   231,   231,   231,  1112,
1885 >      94,   231,   231,   231,   235,   231,   231,   231,   231,   231,
1886 >     231,   231,   231,   231,   231,   231,   231,    -1,    -1,   231,
1887 >     234,   234,   231,   231,    -1,   236,   236,   231,   234,   236,
1888 >     231,   231,   231,    -1,    -1,    -1,    -1,    -1,    -1,   242,
1889        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1890        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1891 <      -1,    -1,    -1,   243,    -1,    -1,    -1,    -1,    -1,    -1,
1891 >      -1,    -1,    -1,    -1,    -1,   292,    -1,    -1,    -1,    -1,
1892        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2174      -1,    -1,   267,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1893        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1894 <      -1,    -1,    -1,    -1,    -1,    -1,   288
1894 >      -1,    -1,    -1,    -1,   299
1895   };
1896  
1897 < /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1898 <   symbol of state STATE-NUM.  */
1897 >  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1898 >     symbol of state STATE-NUM.  */
1899   static const yytype_uint16 yystos[] =
1900   {
1901 <       0,   221,     0,     1,     4,    14,    17,    18,    23,    34,
1902 <      38,    39,    48,    62,    70,    71,    88,   102,   136,   145,
1903 <     146,   149,   150,   201,   222,   227,   232,   254,   260,   274,
1904 <     292,   310,   324,   339,   346,   350,   360,   369,   389,   399,
1905 <     405,   409,   419,   477,   494,   215,   216,   217,   217,   293,
1906 <     370,   400,   217,   410,   217,   325,   390,   311,   217,   217,
1907 <     275,   340,   217,   217,   351,   361,   217,     1,    24,    31,
1908 <      89,   255,   256,   257,   258,   259,     1,    21,    22,    27,
1909 <      66,    67,    73,    74,    75,    95,    96,   108,   109,   119,
1910 <     127,   478,   479,   480,   481,   482,   483,   484,   485,   486,
1911 <     487,   488,   489,   490,   491,   492,   493,   217,   217,   217,
1912 <       1,    61,   406,   407,   408,   217,     1,     6,     7,    12,
1913 <      20,    26,    28,    29,    30,    35,    41,    42,    44,    45,
1914 <      46,    50,    55,    59,    60,    63,    72,    79,    80,    82,
1915 <      83,    84,    85,    86,    97,   103,   104,   105,   107,   110,
1916 <     111,   114,   148,   152,   155,   156,   157,   158,   159,   162,
1917 <     163,   202,   203,   204,   207,   212,   420,   421,   422,   423,
1918 <     424,   425,   426,   427,   428,   429,   430,   431,   432,   433,
1919 <     434,   435,   436,   437,   438,   439,   440,   441,   442,   443,
1920 <     444,   445,   446,   447,   448,   449,   450,   451,   452,   453,
1901 >       0,   238,     0,     1,     4,    14,    17,    18,    24,    35,
1902 >      38,    39,    66,    71,    79,   100,   101,   118,   135,   148,
1903 >     149,   168,   181,   190,   194,   239,   244,   249,   273,   279,
1904 >     285,   299,   319,   342,   356,   371,   378,   382,   392,   401,
1905 >     422,   428,   434,   438,   444,   502,   519,   231,   232,   233,
1906 >     233,   320,   402,   429,   233,   439,   233,   357,   423,   343,
1907 >     233,   280,   300,   372,   233,   233,   393,   233,   233,   383,
1908 >       1,    25,    32,   102,   274,   275,   276,   277,   278,     1,
1909 >      22,    23,    28,    63,    64,    69,    70,    75,    76,    82,
1910 >      83,    84,   108,   109,   503,   504,   505,   506,   507,   508,
1911 >     509,   510,   511,   512,   513,   514,   515,   516,   517,   518,
1912 >     233,   233,   233,     1,    65,   435,   436,   437,   233,     1,
1913 >       6,     7,    12,    20,    21,    27,    30,    31,    36,    41,
1914 >      42,    44,    45,    46,    48,    57,    61,    62,    72,    81,
1915 >      89,    91,    93,    95,    97,    98,   110,   115,   116,   117,
1916 >     119,   120,   121,   124,   150,   158,   159,   160,   161,   162,
1917 >     163,   191,   215,   216,   218,   219,   220,   224,   229,   445,
1918 >     446,   447,   448,   449,   450,   451,   452,   453,   454,   455,
1919 >     456,   457,   458,   459,   460,   461,   462,   463,   464,   465,
1920 >     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
1921 >     476,   477,   478,   479,   480,   481,   482,   483,   484,   485,
1922 >     486,   487,   488,   489,   490,   491,   495,   499,   500,   501,
1923 >     233,   233,   233,     1,    99,   123,   245,   246,   247,   248,
1924 >     233,   233,   233,     1,    29,    37,    49,    50,    54,    55,
1925 >      56,    78,   520,   521,   522,   523,   524,   525,   526,   527,
1926 >     528,   529,     1,    25,    59,    68,    90,    94,   102,   105,
1927 >     106,   137,   154,   157,   182,   200,   201,   202,   227,   228,
1928 >     250,   251,   252,   253,   258,   259,   260,   261,   262,   263,
1929 >     264,   265,   266,   267,   268,   269,   270,   271,   272,   233,
1930 >       1,   225,   286,   287,   288,   289,   290,     1,   102,   379,
1931 >     380,   381,   233,   231,   234,   234,   234,   232,   275,   234,
1932 >     234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1933 >     234,   234,   234,   232,   504,     1,    15,    16,    19,    67,
1934 >      85,    86,    87,    88,    92,    96,   102,   113,   114,   125,
1935 >     147,   186,   321,   322,   323,   324,   325,   326,   327,   328,
1936 >     329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
1937 >       1,     3,     5,    17,    33,    58,    60,    67,    77,   102,
1938 >     126,   146,   155,   200,   227,   403,   404,   405,   406,   407,
1939 >     408,   409,   410,   411,   412,   413,   417,   418,   419,   420,
1940 >     421,     1,    65,   129,   430,   431,   432,   433,   234,   232,
1941 >     436,     1,   102,   129,   440,   441,   442,   443,   234,   234,
1942 >     234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1943 >     234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1944 >     234,   234,   234,   234,   234,   496,   234,   492,   234,   234,
1945 >     234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1946 >     234,   234,   234,   234,   234,   234,   234,   232,   446,     1,
1947 >      17,    33,    67,   122,   130,   131,   151,   226,   358,   359,
1948 >     360,   361,   362,   363,   364,   368,   369,   370,     1,   129,
1949 >     226,   424,   425,   426,   427,     1,    58,    65,    67,   126,
1950 >     344,   348,   349,   350,   354,   355,   231,   234,   234,   232,
1951 >     246,     1,    80,   174,   281,   282,   283,   284,     1,    17,
1952 >      33,    67,   102,   122,   138,   155,   156,   205,   226,   301,
1953 >     302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
1954 >     315,     1,    35,    80,   129,   373,   374,   375,   376,   377,
1955 >     234,   234,   234,   234,   234,   234,   234,   234,   232,   521,
1956 >     231,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1957 >     234,   234,   234,   234,   234,   234,   234,   234,   232,   251,
1958 >       1,   102,   222,   394,   395,   396,   397,   231,   234,   232,
1959 >     287,   174,   234,   232,   380,     1,   102,   222,   226,   384,
1960 >     385,   386,   387,   388,   127,   127,   127,   231,   112,   112,
1961 >     214,   112,   241,   241,   112,   241,   241,   241,   112,   112,
1962 >     112,   214,   214,   231,   231,   234,   234,   234,   339,   234,
1963 >     234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1964 >     234,   232,   322,   231,   234,   234,   234,   234,   234,   234,
1965 >     414,   234,   234,   234,   234,   234,   234,   234,   232,   404,
1966 >     234,   234,   232,   431,   127,   231,   234,   234,   232,   441,
1967 >     214,   241,   241,   214,   112,   214,   112,   127,   214,   241,
1968 >     214,   112,   112,   241,   112,   214,   214,   214,   241,   112,
1969 >     112,   241,   112,   112,   112,   112,   214,   234,   214,   234,
1970 >     214,   241,   241,   214,   214,   214,   214,   217,   214,   217,
1971 >     214,   214,   214,   127,   241,   214,   214,   241,   241,   214,
1972 >     214,   231,   231,   234,   234,   365,   234,   234,   234,   234,
1973 >     234,   232,   359,   234,   234,   232,   425,   231,   234,   234,
1974 >     345,   234,   232,   349,   127,   127,   231,   231,   234,   234,
1975 >     232,   282,   231,   234,   234,   316,   234,   234,   234,   234,
1976 >     234,   312,   234,   232,   302,   231,   234,   234,   234,   232,
1977 >     374,   214,   214,   214,   127,   214,   214,   214,   241,   231,
1978 >     127,   214,   127,   112,   112,   127,   127,   127,   127,   127,
1979 >     127,   112,   127,   203,   204,   254,   255,   203,   204,   256,
1980 >     257,   127,   127,   231,   231,   234,   398,   232,   395,   214,
1981 >     231,   233,   127,   231,   231,   234,   389,   234,   232,   385,
1982 >     231,   231,   231,   231,   231,   231,   139,   140,   141,   142,
1983 >     143,   144,   145,   240,   241,   231,   231,   231,   231,   231,
1984 >     231,   231,   231,   231,   231,   231,   112,   112,   241,   234,
1985 >     112,   112,   241,   112,   112,   241,   127,   112,   112,   241,
1986 >     112,   243,   243,   231,   127,   178,   179,   127,   214,   127,
1987 >     127,   234,   127,   127,   112,   127,   127,   127,   127,   231,
1988 >     127,   127,   231,   231,   127,   127,   231,   231,   231,   231,
1989 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1990 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1991 >     231,   231,   231,   231,    49,   165,   166,   167,   169,   170,
1992 >     172,   173,   175,   177,   180,   183,   184,   185,   187,   192,
1993 >     196,   197,   198,   206,   211,   497,   498,   231,    49,    51,
1994 >      52,   165,   166,   167,   169,   170,   172,   173,   175,   177,
1995 >     180,   183,   184,   185,   187,   192,   196,   197,   198,   206,
1996 >     211,   493,   494,   231,   231,   231,   231,   231,   231,   231,
1997 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1998 >     231,   231,   231,   231,   127,   214,   234,   127,   112,   127,
1999 >     127,   127,   231,   127,   127,   231,   127,   127,   234,   112,
2000 >     352,   353,   231,   231,   231,   127,   127,   231,   127,   214,
2001 >     234,   127,   127,   127,   127,   214,   234,   127,   231,   127,
2002 >     127,   127,   231,   231,   231,   231,   231,   231,   231,   231,
2003 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
2004 >     231,   231,   231,   231,   231,   235,   231,   235,   231,   231,
2005 >     127,   234,   231,   231,     1,   102,   195,   222,   291,   292,
2006 >     293,   294,   295,   231,   127,   234,   127,   231,   240,   240,
2007 >     240,   240,   240,   240,   240,   231,   231,   231,    53,   128,
2008 >     340,   341,   231,   231,   231,   231,   231,   231,   231,   231,
2009 >     231,   231,     9,    10,    11,   242,   243,   231,   231,   231,
2010 >     231,   231,   231,   231,   231,   231,     8,   199,   415,   416,
2011 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
2012 >     231,   231,   235,   231,   235,   231,   231,    13,    34,    43,
2013 >      74,   103,   104,   111,   136,   152,   213,   366,   367,   231,
2014 >     231,   231,   231,   231,   231,   231,   231,   231,    49,   189,
2015 >     199,   346,   347,   221,   235,   351,   231,   231,   231,   231,
2016 >       4,    18,    26,    40,    71,    73,    99,   132,   134,   153,
2017 >     171,   176,   180,   185,   188,   193,   207,   210,   212,   223,
2018 >     230,   317,   318,   231,   231,   231,   231,   231,    49,    51,
2019 >      52,   165,   166,   167,   169,   170,   172,   173,   175,   177,
2020 >     180,   183,   184,   185,   187,   192,   196,   197,   198,   206,
2021 >     211,   313,   314,   231,   231,   231,   231,   255,   257,   231,
2022 >      73,   135,   164,   171,   180,   207,   209,   210,   223,   230,
2023 >     399,   400,   231,   234,   234,   296,   232,   292,   231,    73,
2024 >     135,   164,   171,   180,   207,   209,   210,   223,   230,   390,
2025 >     391,   231,   231,   235,   242,   242,   242,   231,   235,   498,
2026 >     494,   231,   235,   231,   235,   112,   353,   231,   236,   236,
2027 >     236,   231,   235,   231,   235,   231,   235,   127,   208,   243,
2028 >     234,   231,   231,   235,   341,   416,   367,   347,   133,   133,
2029 >     133,   318,   314,   400,   231,   231,   231,    40,    71,    73,
2030 >     118,   135,   170,   171,   226,   230,   297,   298,   391,   231,
2031 >     235,   298
2032 > };
2033 >
2034 >  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
2035 > static const yytype_uint16 yyr1[] =
2036 > {
2037 >       0,   237,   238,   238,   239,   239,   239,   239,   239,   239,
2038 >     239,   239,   239,   239,   239,   239,   239,   239,   239,   239,
2039 >     239,   239,   239,   239,   239,   239,   239,   240,   240,   241,
2040 >     241,   241,   241,   241,   241,   241,   241,   242,   242,   243,
2041 >     243,   243,   243,   244,   245,   245,   246,   246,   246,   247,
2042 >     248,   249,   250,   250,   251,   251,   251,   251,   251,   251,
2043 >     251,   251,   251,   251,   251,   251,   251,   251,   251,   251,
2044 >     251,   251,   252,   253,   254,   254,   255,   255,   256,   256,
2045 >     257,   257,   258,   259,   260,   261,   262,   263,   264,   265,
2046 >     266,   267,   268,   269,   270,   271,   272,   273,   274,   274,
2047 >     275,   275,   275,   275,   276,   277,   278,   280,   279,   281,
2048 >     281,   282,   282,   282,   283,   284,   285,   286,   286,   287,
2049 >     287,   287,   288,   290,   289,   291,   291,   292,   292,   292,
2050 >     292,   293,   294,   294,   296,   295,   297,   297,   298,   298,
2051 >     298,   298,   298,   298,   298,   298,   298,   300,   299,   301,
2052 >     301,   302,   302,   302,   302,   302,   302,   302,   302,   302,
2053 >     302,   302,   303,   304,   305,   306,   307,   308,   309,   310,
2054 >     312,   311,   313,   313,   314,   314,   314,   314,   314,   314,
2055 >     314,   314,   314,   314,   314,   314,   314,   314,   314,   314,
2056 >     314,   314,   314,   314,   314,   314,   314,   316,   315,   317,
2057 >     317,   318,   318,   318,   318,   318,   318,   318,   318,   318,
2058 >     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
2059 >     318,   318,   318,   318,   318,   320,   319,   321,   321,   322,
2060 >     322,   322,   322,   322,   322,   322,   322,   322,   322,   322,
2061 >     322,   322,   322,   322,   322,   322,   323,   324,   325,   326,
2062 >     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
2063 >     337,   339,   338,   340,   340,   341,   341,   343,   342,   345,
2064 >     344,   346,   346,   347,   347,   347,   348,   348,   349,   349,
2065 >     349,   349,   349,   351,   350,   352,   352,   353,   353,   354,
2066 >     355,   357,   356,   358,   358,   359,   359,   359,   359,   359,
2067 >     359,   359,   359,   359,   360,   361,   362,   363,   365,   364,
2068 >     366,   366,   367,   367,   367,   367,   367,   367,   367,   367,
2069 >     367,   367,   368,   369,   370,   372,   371,   373,   373,   374,
2070 >     374,   374,   374,   375,   376,   377,   378,   379,   379,   380,
2071 >     380,   381,   383,   382,   384,   384,   385,   385,   385,   385,
2072 >     386,   387,   389,   388,   390,   390,   391,   391,   391,   391,
2073 >     391,   391,   391,   391,   391,   391,   393,   392,   394,   394,
2074 >     395,   395,   395,   396,   398,   397,   399,   399,   400,   400,
2075 >     400,   400,   400,   400,   400,   400,   400,   400,   402,   401,
2076 >     403,   403,   404,   404,   404,   404,   404,   404,   404,   404,
2077 >     404,   404,   404,   404,   404,   404,   404,   405,   406,   407,
2078 >     408,   409,   410,   411,   412,   412,   414,   413,   415,   415,
2079 >     416,   416,   417,   418,   419,   420,   421,   423,   422,   424,
2080 >     424,   425,   425,   425,   426,   427,   429,   428,   430,   430,
2081 >     431,   431,   431,   432,   433,   434,   435,   435,   436,   436,
2082 >     437,   439,   438,   440,   440,   441,   441,   441,   442,   443,
2083 >     444,   445,   445,   446,   446,   446,   446,   446,   446,   446,
2084 >     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
2085 >     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
2086 >     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
2087 >     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
2088 >     446,   446,   446,   447,   448,   449,   450,   451,   452,   453,
2089       454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
2090 <     464,   465,   466,   470,   474,   475,   476,   217,   217,   217,
2091 <       1,   208,   261,   262,   263,   264,   265,     1,    87,   113,
2092 <     228,   229,   230,   231,   217,   217,     1,    37,    51,    52,
2093 <      53,    54,    69,   495,   496,   497,   498,   499,   500,   501,
2094 <     502,     1,    24,    57,    89,    91,    92,   128,   130,   131,
2095 <     132,   133,   147,   171,   181,   209,   210,   233,   234,   235,
2096 <     236,   241,   242,   243,   244,   245,   246,   247,   248,   249,
2097 <     250,   251,   252,   253,   217,   217,     1,    89,   347,   348,
2098 <     349,   215,   218,   218,   218,   216,   256,   218,   218,   218,
2099 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2100 <     218,   216,   479,     1,    15,    16,    19,    76,    77,    78,
2101 <      81,    89,   100,   101,   115,   116,   143,   184,   294,   295,
2102 <     296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
2103 <     306,   307,   308,   309,     1,     3,     5,    17,    32,    36,
2218 <      56,    58,    68,    89,   117,   144,   171,   209,   371,   372,
2219 <     373,   374,   375,   376,   377,   378,   379,   380,   384,   385,
2220 <     386,   387,   388,     1,    61,   120,   401,   402,   403,   404,
2221 <     218,   216,   407,     1,    89,   120,   151,   411,   415,   416,
2222 <     417,   418,   218,   218,   218,   218,   218,   218,   218,   218,
2223 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2224 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2225 <     218,   471,   218,   467,   218,   218,   218,   218,   218,   218,
2226 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2227 <     218,   216,   421,     1,    17,    32,    36,   112,   121,   122,
2228 <     153,   206,   326,   327,   328,   329,   330,   331,   332,   336,
2229 <     337,   338,     1,   120,   151,   206,   391,   395,   396,   397,
2230 <     398,     1,    36,    56,    61,   117,   312,   316,   317,   318,
2231 <     322,   323,   215,   218,   216,   262,   214,   215,   218,   218,
2232 <     216,   229,     1,    17,    32,    36,    89,   112,   129,   192,
2233 <     206,   276,   277,   278,   279,   280,   281,   282,   283,   284,
2234 <     288,     1,    14,    93,   120,   341,   342,   343,   344,   345,
2235 <     218,   218,   218,   218,   218,   218,   216,   496,   215,   218,
2236 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2237 <     218,   218,   218,   218,   216,   234,     1,    89,   151,   206,
2238 <     352,   353,   354,   355,   356,     1,    89,   151,   362,   363,
2239 <     364,   365,   218,   216,   348,   118,   118,   118,   215,    99,
2240 <      99,   160,    99,   224,   224,    99,    99,    99,   160,   160,
2241 <      99,   224,   160,   160,   215,   215,   218,   218,   218,   218,
2242 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2243 <     216,   295,   215,   218,   218,   218,   218,   381,   218,   218,
2244 <     218,   218,   218,   218,   218,   218,   216,   372,   218,   218,
2245 <     216,   402,   118,   215,   218,   218,   412,   216,   416,   160,
2246 <     224,   224,    99,   160,   160,    99,   118,   160,   224,   160,
2247 <     224,    99,    99,    99,   160,   160,   160,   224,    99,    99,
2248 <     224,    99,    99,   118,    99,    99,   160,   160,   218,   160,
2249 <     218,   224,   224,   160,   160,   160,   160,   160,   161,   160,
2250 <     161,   160,   160,   224,   224,   118,   224,   160,   160,   160,
2251 <     215,   215,   218,   218,   333,   218,   218,   218,   218,   218,
2252 <     216,   327,   218,   392,   218,   216,   396,   215,   313,   218,
2253 <     218,   218,   216,   317,   160,   215,   217,   118,   118,   215,
2254 <     215,   218,   218,   289,   218,   218,   218,   285,   218,   216,
2255 <     277,   215,   218,   218,   218,   216,   342,   160,   160,   118,
2256 <     160,   160,   224,   215,   118,   160,   118,   118,   118,   118,
2257 <     118,   118,   134,   135,   237,   238,   134,   135,   239,   240,
2258 <     118,   118,    99,   118,   118,   215,   215,   218,   357,   218,
2259 <     216,   353,   215,   218,   366,   216,   363,   118,   215,   215,
2260 <     215,   215,   215,   215,   215,   138,   139,   140,   141,   142,
2261 <     223,   224,   215,   215,   215,   215,   215,   215,   215,   215,
2262 <     215,   215,   215,    99,    99,   224,    99,    99,    99,    99,
2263 <     118,    99,    99,   224,   224,    99,   226,   226,   215,   118,
2264 <     178,   179,   118,   160,   218,   118,   118,   118,   118,    99,
2265 <     118,   118,   118,   215,   118,   118,   215,   215,   118,   118,
2266 <     218,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2267 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2268 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2269 <     215,    51,   166,   167,   168,   169,   170,   172,   173,   175,
2270 <     176,   177,   180,   182,   183,   185,   187,   189,   190,   193,
2271 <     199,   472,   473,   215,    51,   166,   167,   168,   169,   170,
2272 <     172,   173,   175,   176,   177,   180,   182,   183,   185,   187,
2273 <     189,   190,   193,   199,   468,   469,   215,   215,   215,   215,
2274 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2275 <     215,   215,   215,   215,   215,   118,   160,   218,   118,    99,
2276 <     118,   118,   118,   215,   118,   218,   118,   215,   218,   118,
2277 <     118,    99,   320,   321,   215,   215,     1,    89,   151,   213,
2278 <     266,   267,   268,   269,   270,   215,   215,   118,   160,   218,
2279 <     118,   118,   118,   218,   118,   215,   118,   118,   118,   215,
2280 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2281 <     215,   215,   215,   215,   215,   219,   215,   219,   215,   215,
2282 <     215,   215,   215,   118,   218,   118,   215,   118,   218,   215,
2283 <     215,   223,   223,   223,   223,   223,   215,   215,   215,   215,
2284 <     215,   215,   215,   215,   215,   215,   215,   215,     9,    10,
2285 <      11,   225,   226,   215,   215,   215,   215,   215,   215,   215,
2286 <       8,   191,   382,   383,   215,   215,   215,   215,   215,   215,
2287 <     215,   215,   215,   215,   215,   215,   123,   413,   414,   215,
2288 <     219,   215,   219,   215,   215,    13,    33,    43,    49,    65,
2289 <      90,    98,   137,   154,   334,   335,   215,   215,   215,   215,
2290 <     215,   215,   123,   393,   394,   215,    51,   186,   191,   314,
2291 <     315,   215,   215,   164,   219,   319,   215,   218,   271,   218,
2292 <     216,   267,   215,   215,     4,    25,    40,    47,    64,    87,
2293 <      94,   106,   124,   125,   126,   174,   183,   188,   194,   198,
2294 <     200,   205,   211,   290,   291,   215,   215,   215,    51,   166,
2295 <     167,   168,   169,   170,   172,   173,   175,   176,   177,   180,
2296 <     182,   183,   185,   187,   189,   190,   193,   199,   286,   287,
2297 <     215,   215,   215,   215,   238,   240,   215,    64,   136,   165,
2298 <     174,   180,   194,   196,   197,   205,   211,   358,   359,   215,
2299 <     215,    64,   136,   165,   174,   180,   194,   196,   197,   205,
2300 <     211,   367,   368,   225,   225,   225,   215,   219,   215,   219,
2301 <     473,   469,   215,   219,   215,   219,   215,   219,    99,   321,
2302 <     215,   118,   218,   195,   226,   215,   215,   219,   215,   219,
2303 <     215,   219,   215,   219,   383,   414,   335,   394,   315,   215,
2304 <      40,    62,    64,   102,   173,   174,   206,   272,   273,   215,
2305 <     215,   291,   287,   359,   368,   215,   219,   273
2090 >     464,   465,   466,   467,   468,   469,   470,   471,   472,   473,
2091 >     473,   474,   474,   475,   476,   477,   478,   479,   480,   481,
2092 >     482,   483,   484,   485,   486,   487,   488,   489,   490,   492,
2093 >     491,   493,   493,   494,   494,   494,   494,   494,   494,   494,
2094 >     494,   494,   494,   494,   494,   494,   494,   494,   494,   494,
2095 >     494,   494,   494,   494,   494,   494,   496,   495,   497,   497,
2096 >     498,   498,   498,   498,   498,   498,   498,   498,   498,   498,
2097 >     498,   498,   498,   498,   498,   498,   498,   498,   498,   498,
2098 >     498,   499,   500,   501,   502,   503,   503,   504,   504,   504,
2099 >     504,   504,   504,   504,   504,   504,   504,   504,   504,   504,
2100 >     504,   504,   505,   506,   507,   508,   509,   510,   511,   512,
2101 >     513,   514,   515,   516,   517,   518,   519,   520,   520,   521,
2102 >     521,   521,   521,   521,   521,   521,   521,   521,   522,   523,
2103 >     524,   525,   526,   527,   528,   529
2104   };
2105  
2106 < #define yyerrok         (yyerrstatus = 0)
2107 < #define yyclearin       (yychar = YYEMPTY)
2108 < #define YYEMPTY         (-2)
2109 < #define YYEOF           0
2110 <
2111 < #define YYACCEPT        goto yyacceptlab
2112 < #define YYABORT         goto yyabortlab
2113 < #define YYERROR         goto yyerrorlab
2114 <
2115 <
2116 < /* Like YYERROR except do call yyerror.  This remains here temporarily
2117 <   to ease the transition to the new meaning of YYERROR, for GCC.
2118 <   Once GCC version 2 has supplanted version 1, this can go.  However,
2119 <   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
2120 <   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2121 <   discussed.  */
2122 <
2123 < #define YYFAIL          goto yyerrlab
2124 < #if defined YYFAIL
2125 <  /* This is here to suppress warnings from the GCC cpp's
2126 <     -Wunused-macros.  Normally we don't worry about that warning, but
2127 <     some users do, and we want to make it easy for users to remove
2128 <     YYFAIL uses, which will produce warnings from Bison 2.5.  */
2129 < #endif
2106 >  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
2107 > static const yytype_uint8 yyr2[] =
2108 > {
2109 >       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
2110 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2111 >       1,     1,     1,     1,     1,     2,     2,     0,     1,     2,
2112 >       3,     3,     3,     3,     3,     3,     3,     0,     1,     2,
2113 >       3,     3,     3,     5,     2,     1,     1,     1,     2,     4,
2114 >       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
2115 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2116 >       1,     2,     4,     4,     3,     1,     1,     1,     3,     1,
2117 >       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
2118 >       4,     4,     4,     4,     4,     4,     4,     5,     2,     1,
2119 >       1,     1,     1,     2,     4,     4,     4,     0,     6,     2,
2120 >       1,     1,     1,     2,     4,     4,     5,     2,     1,     1,
2121 >       1,     2,     4,     0,     6,     2,     1,     1,     1,     1,
2122 >       2,     4,     4,     4,     0,     5,     3,     1,     1,     1,
2123 >       1,     1,     1,     1,     1,     1,     1,     0,     6,     2,
2124 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2125 >       1,     2,     4,     4,     4,     4,     4,     4,     4,     4,
2126 >       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
2127 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2128 >       1,     1,     1,     1,     1,     1,     1,     0,     5,     3,
2129 >       1,     3,     1,     3,     1,     3,     1,     1,     1,     1,
2130 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2131 >       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
2132 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2133 >       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
2134 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2135 >       4,     0,     5,     3,     1,     1,     1,     0,     6,     0,
2136 >       5,     3,     1,     1,     1,     1,     2,     1,     1,     1,
2137 >       1,     1,     2,     0,     5,     3,     1,     1,     3,     4,
2138 >       4,     0,     6,     2,     1,     1,     1,     1,     1,     1,
2139 >       1,     1,     1,     2,     4,     4,     4,     4,     0,     5,
2140 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2141 >       1,     1,     4,     4,     4,     0,     6,     2,     1,     1,
2142 >       1,     1,     2,     4,     4,     4,     5,     2,     1,     1,
2143 >       1,     4,     0,     6,     2,     1,     1,     1,     1,     2,
2144 >       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
2145 >       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
2146 >       1,     1,     2,     4,     0,     5,     3,     1,     1,     1,
2147 >       1,     1,     1,     1,     1,     1,     1,     1,     0,     6,
2148 >       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2149 >       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
2150 >       4,     4,     4,     4,     4,     4,     0,     5,     3,     1,
2151 >       1,     1,     4,     4,     4,     4,     4,     0,     6,     2,
2152 >       1,     1,     1,     1,     4,     4,     0,     6,     2,     1,
2153 >       1,     1,     1,     4,     4,     5,     2,     1,     1,     1,
2154 >       4,     0,     6,     2,     1,     1,     1,     1,     4,     4,
2155 >       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
2156 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2157 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2158 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2159 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2160 >       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
2161 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2162 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2163 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2164 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     0,
2165 >       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
2166 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2167 >       1,     1,     1,     1,     1,     1,     0,     5,     3,     1,
2168 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2169 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2170 >       1,     4,     4,     4,     5,     2,     1,     1,     1,     1,
2171 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2172 >       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
2173 >       4,     4,     4,     4,     4,     4,     5,     2,     1,     1,
2174 >       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
2175 >       4,     4,     4,     4,     4,     4
2176 > };
2177 >
2178 >
2179 > #define yyerrok         (yyerrstatus = 0)
2180 > #define yyclearin       (yychar = YYEMPTY)
2181 > #define YYEMPTY         (-2)
2182 > #define YYEOF           0
2183 >
2184 > #define YYACCEPT        goto yyacceptlab
2185 > #define YYABORT         goto yyabortlab
2186 > #define YYERROR         goto yyerrorlab
2187 >
2188  
2189   #define YYRECOVERING()  (!!yyerrstatus)
2190  
# Line 2345 | Line 2201 | do
2201    else                                                          \
2202      {                                                           \
2203        yyerror (YY_("syntax error: cannot back up")); \
2204 <      YYERROR;                                                  \
2205 <    }                                                           \
2206 < while (YYID (0))
2351 <
2204 >      YYERROR;                                                  \
2205 >    }                                                           \
2206 > while (0)
2207  
2208 < #define YYTERROR        1
2209 < #define YYERRCODE       256
2208 > /* Error token number */
2209 > #define YYTERROR        1
2210 > #define YYERRCODE       256
2211  
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).  */
2212  
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
2213  
2214 < #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2214 > /* Enable debugging if requested.  */
2215 > #if YYDEBUG
2216  
2217 + # ifndef YYFPRINTF
2218 + #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2219 + #  define YYFPRINTF fprintf
2220 + # endif
2221  
2222 + # define YYDPRINTF(Args)                        \
2223 + do {                                            \
2224 +  if (yydebug)                                  \
2225 +    YYFPRINTF Args;                             \
2226 + } while (0)
2227  
2228   /* This macro is provided for backward compatibility. */
2385
2229   #ifndef YY_LOCATION_PRINT
2230   # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2231   #endif
2232  
2233  
2234 < /* YYLEX -- calling `yylex' with the right arguments.  */
2235 <
2236 < #ifdef YYLEX_PARAM
2237 < # define YYLEX yylex (YYLEX_PARAM)
2238 < #else
2239 < # define YYLEX yylex ()
2240 < #endif
2241 <
2242 < /* Enable debugging if requested.  */
2243 < #if YYDEBUG
2401 <
2402 < # ifndef YYFPRINTF
2403 < #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2404 < #  define YYFPRINTF fprintf
2405 < # endif
2406 <
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))
2234 > # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2235 > do {                                                                      \
2236 >  if (yydebug)                                                            \
2237 >    {                                                                     \
2238 >      YYFPRINTF (stderr, "%s ", Title);                                   \
2239 >      yy_symbol_print (stderr,                                            \
2240 >                  Type, Value); \
2241 >      YYFPRINTF (stderr, "\n");                                           \
2242 >    }                                                                     \
2243 > } while (0)
2244  
2245  
2246 < /*--------------------------------.
2247 < | Print this symbol on YYOUTPUT.  |
2248 < `--------------------------------*/
2246 > /*----------------------------------------.
2247 > | Print this symbol's value on YYOUTPUT.  |
2248 > `----------------------------------------*/
2249  
2429 /*ARGSUSED*/
2430 #if (defined __STDC__ || defined __C99__FUNC__ \
2431     || defined __cplusplus || defined _MSC_VER)
2250   static void
2251   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
2252   {
2253    FILE *yyo = yyoutput;
2254    YYUSE (yyo);
# Line 2446 | Line 2257 | yy_symbol_value_print (yyoutput, yytype,
2257   # ifdef YYPRINT
2258    if (yytype < YYNTOKENS)
2259      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2449 # else
2450  YYUSE (yyoutput);
2260   # endif
2261 <  switch (yytype)
2453 <    {
2454 <      default:
2455 <        break;
2456 <    }
2261 >  YYUSE (yytype);
2262   }
2263  
2264  
# Line 2461 | Line 2266 | yy_symbol_value_print (yyoutput, yytype,
2266   | Print this symbol on YYOUTPUT.  |
2267   `--------------------------------*/
2268  
2464 #if (defined __STDC__ || defined __C99__FUNC__ \
2465     || defined __cplusplus || defined _MSC_VER)
2269   static void
2270   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
2271   {
2272 <  if (yytype < YYNTOKENS)
2273 <    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2478 <  else
2479 <    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2272 >  YYFPRINTF (yyoutput, "%s %s (",
2273 >             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2274  
2275    yy_symbol_value_print (yyoutput, yytype, yyvaluep);
2276    YYFPRINTF (yyoutput, ")");
# Line 2487 | Line 2281 | yy_symbol_print (yyoutput, yytype, yyval
2281   | TOP (included).                                                   |
2282   `------------------------------------------------------------------*/
2283  
2490 #if (defined __STDC__ || defined __C99__FUNC__ \
2491     || defined __cplusplus || defined _MSC_VER)
2284   static void
2285   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
2286   {
2287    YYFPRINTF (stderr, "Stack now");
2288    for (; yybottom <= yytop; yybottom++)
# Line 2507 | Line 2293 | yy_stack_print (yybottom, yytop)
2293    YYFPRINTF (stderr, "\n");
2294   }
2295  
2296 < # define YY_STACK_PRINT(Bottom, Top)                            \
2297 < do {                                                            \
2298 <  if (yydebug)                                                  \
2299 <    yy_stack_print ((Bottom), (Top));                           \
2300 < } while (YYID (0))
2296 > # define YY_STACK_PRINT(Bottom, Top)                            \
2297 > do {                                                            \
2298 >  if (yydebug)                                                  \
2299 >    yy_stack_print ((Bottom), (Top));                           \
2300 > } while (0)
2301  
2302  
2303   /*------------------------------------------------.
2304   | Report that the YYRULE is going to be reduced.  |
2305   `------------------------------------------------*/
2306  
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
2307   static void
2308 < yy_reduce_print (yyvsp, yyrule)
2528 <    YYSTYPE *yyvsp;
2529 <    int yyrule;
2530 < #endif
2308 > yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
2309   {
2310 +  unsigned long int yylno = yyrline[yyrule];
2311    int yynrhs = yyr2[yyrule];
2312    int yyi;
2534  unsigned long int yylno = yyrline[yyrule];
2313    YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2314 <             yyrule - 1, yylno);
2314 >             yyrule - 1, yylno);
2315    /* The symbols being reduced.  */
2316    for (yyi = 0; yyi < yynrhs; yyi++)
2317      {
2318        YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2319 <      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
2320 <                       &(yyvsp[(yyi + 1) - (yynrhs)])
2321 <                                       );
2319 >      yy_symbol_print (stderr,
2320 >                       yystos[yyssp[yyi + 1 - yynrhs]],
2321 >                       &(yyvsp[(yyi + 1) - (yynrhs)])
2322 >                                              );
2323        YYFPRINTF (stderr, "\n");
2324      }
2325   }
2326  
2327 < # define YY_REDUCE_PRINT(Rule)          \
2328 < do {                                    \
2329 <  if (yydebug)                          \
2330 <    yy_reduce_print (yyvsp, Rule); \
2331 < } while (YYID (0))
2327 > # define YY_REDUCE_PRINT(Rule)          \
2328 > do {                                    \
2329 >  if (yydebug)                          \
2330 >    yy_reduce_print (yyssp, yyvsp, Rule); \
2331 > } while (0)
2332  
2333   /* Nonzero means print parse trace.  It is left uninitialized so that
2334     multiple parsers can coexist.  */
# Line 2563 | Line 2342 | int yydebug;
2342  
2343  
2344   /* YYINITDEPTH -- initial size of the parser's stacks.  */
2345 < #ifndef YYINITDEPTH
2345 > #ifndef YYINITDEPTH
2346   # define YYINITDEPTH 200
2347   #endif
2348  
# Line 2586 | Line 2365 | int yydebug;
2365   #   define yystrlen strlen
2366   #  else
2367   /* Return the length of YYSTR.  */
2589 #if (defined __STDC__ || defined __C99__FUNC__ \
2590     || defined __cplusplus || defined _MSC_VER)
2368   static YYSIZE_T
2369   yystrlen (const char *yystr)
2593 #else
2594 static YYSIZE_T
2595 yystrlen (yystr)
2596    const char *yystr;
2597 #endif
2370   {
2371    YYSIZE_T yylen;
2372    for (yylen = 0; yystr[yylen]; yylen++)
# Line 2610 | Line 2382 | yystrlen (yystr)
2382   #  else
2383   /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2384     YYDEST.  */
2613 #if (defined __STDC__ || defined __C99__FUNC__ \
2614     || defined __cplusplus || defined _MSC_VER)
2385   static char *
2386   yystpcpy (char *yydest, const char *yysrc)
2617 #else
2618 static char *
2619 yystpcpy (yydest, yysrc)
2620    char *yydest;
2621    const char *yysrc;
2622 #endif
2387   {
2388    char *yyd = yydest;
2389    const char *yys = yysrc;
# Line 2649 | Line 2413 | yytnamerr (char *yyres, const char *yyst
2413        char const *yyp = yystr;
2414  
2415        for (;;)
2416 <        switch (*++yyp)
2417 <          {
2418 <          case '\'':
2419 <          case ',':
2420 <            goto do_not_strip_quotes;
2421 <
2422 <          case '\\':
2423 <            if (*++yyp != '\\')
2424 <              goto do_not_strip_quotes;
2425 <            /* Fall through.  */
2426 <          default:
2427 <            if (yyres)
2428 <              yyres[yyn] = *yyp;
2429 <            yyn++;
2430 <            break;
2431 <
2432 <          case '"':
2433 <            if (yyres)
2434 <              yyres[yyn] = '\0';
2435 <            return yyn;
2436 <          }
2416 >        switch (*++yyp)
2417 >          {
2418 >          case '\'':
2419 >          case ',':
2420 >            goto do_not_strip_quotes;
2421 >
2422 >          case '\\':
2423 >            if (*++yyp != '\\')
2424 >              goto do_not_strip_quotes;
2425 >            /* Fall through.  */
2426 >          default:
2427 >            if (yyres)
2428 >              yyres[yyn] = *yyp;
2429 >            yyn++;
2430 >            break;
2431 >
2432 >          case '"':
2433 >            if (yyres)
2434 >              yyres[yyn] = '\0';
2435 >            return yyn;
2436 >          }
2437      do_not_strip_quotes: ;
2438      }
2439  
# Line 2692 | Line 2456 | static int
2456   yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2457                  yytype_int16 *yyssp, int yytoken)
2458   {
2459 <  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
2459 >  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
2460    YYSIZE_T yysize = yysize0;
2697  YYSIZE_T yysize1;
2461    enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2462    /* Internationalized format string. */
2463 <  const char *yyformat = YY_NULL;
2463 >  const char *yyformat = YY_NULLPTR;
2464    /* Arguments of yyformat. */
2465    char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2466    /* Number of reported tokens (one for the "unexpected", one per
# Line 2705 | Line 2468 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2468    int yycount = 0;
2469  
2470    /* 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.
2471       - If this state is a consistent state with a default action, then
2472         the only way this function was invoked is if the default action
2473         is an error action.  In that case, don't check for expected
# Line 2757 | Line 2516 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2516                      break;
2517                    }
2518                  yyarg[yycount++] = yytname[yyx];
2519 <                yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2520 <                if (! (yysize <= yysize1
2521 <                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2522 <                  return 2;
2523 <                yysize = yysize1;
2519 >                {
2520 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2521 >                  if (! (yysize <= yysize1
2522 >                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2523 >                    return 2;
2524 >                  yysize = yysize1;
2525 >                }
2526                }
2527          }
2528      }
# Line 2781 | Line 2542 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2542   # undef YYCASE_
2543      }
2544  
2545 <  yysize1 = yysize + yystrlen (yyformat);
2546 <  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2547 <    return 2;
2548 <  yysize = yysize1;
2545 >  {
2546 >    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2547 >    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2548 >      return 2;
2549 >    yysize = yysize1;
2550 >  }
2551  
2552    if (*yymsg_alloc < yysize)
2553      {
# Line 2821 | Line 2584 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2584   | Release the memory associated to this symbol.  |
2585   `-----------------------------------------------*/
2586  
2824 /*ARGSUSED*/
2825 #if (defined __STDC__ || defined __C99__FUNC__ \
2826     || defined __cplusplus || defined _MSC_VER)
2587   static void
2588   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
2589   {
2590    YYUSE (yyvaluep);
2838
2591    if (!yymsg)
2592      yymsg = "Deleting";
2593    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2594  
2595 <  switch (yytype)
2596 <    {
2597 <
2846 <      default:
2847 <        break;
2848 <    }
2595 >  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2596 >  YYUSE (yytype);
2597 >  YY_IGNORE_MAYBE_UNINITIALIZED_END
2598   }
2599  
2600  
# Line 2854 | Line 2603 | yydestruct (yymsg, yytype, yyvaluep)
2603   /* The lookahead symbol.  */
2604   int yychar;
2605  
2857
2858 #ifndef YYLVAL_INITIALIZE
2859 # define YYLVAL_INITIALIZE()
2860 #endif
2861 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2862 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2863 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
2864 #endif
2865
2606   /* The semantic value of the lookahead symbol.  */
2607   YYSTYPE yylval;
2868
2608   /* Number of syntax errors so far.  */
2609   int yynerrs;
2610  
# Line 2874 | Line 2613 | int yynerrs;
2613   | yyparse.  |
2614   `----------*/
2615  
2877 #ifdef YYPARSE_PARAM
2878 #if (defined __STDC__ || defined __C99__FUNC__ \
2879     || defined __cplusplus || defined _MSC_VER)
2880 int
2881 yyparse (void *YYPARSE_PARAM)
2882 #else
2883 int
2884 yyparse (YYPARSE_PARAM)
2885    void *YYPARSE_PARAM;
2886 #endif
2887 #else /* ! YYPARSE_PARAM */
2888 #if (defined __STDC__ || defined __C99__FUNC__ \
2889     || defined __cplusplus || defined _MSC_VER)
2616   int
2617   yyparse (void)
2892 #else
2893 int
2894 yyparse ()
2895
2896 #endif
2897 #endif
2618   {
2619      int yystate;
2620      /* Number of tokens to shift before error messages enabled.  */
2621      int yyerrstatus;
2622  
2623      /* The stacks and their tools:
2624 <       `yyss': related to states.
2625 <       `yyvs': related to semantic values.
2624 >       'yyss': related to states.
2625 >       'yyvs': related to semantic values.
2626  
2627         Refer to the stacks through separate pointers, to allow yyoverflow
2628         to reallocate them elsewhere.  */
# Line 2940 | Line 2660 | yyparse ()
2660       Keep to zero when no symbol should be popped.  */
2661    int yylen = 0;
2662  
2663 <  yyss = yyssa;
2664 <  yyvs = yyvsa;
2663 >  yyssp = yyss = yyssa;
2664 >  yyvsp = yyvs = yyvsa;
2665    yystacksize = YYINITDEPTH;
2666  
2667    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 2950 | Line 2670 | yyparse ()
2670    yyerrstatus = 0;
2671    yynerrs = 0;
2672    yychar = YYEMPTY; /* Cause a token to be read.  */
2953
2954  /* Initialize stack pointers.
2955     Waste one element of value and location stack
2956     so that they stay on the same level as the state stack.
2957     The wasted elements are never initialized.  */
2958  yyssp = yyss;
2959  yyvsp = yyvs;
2960
2961  YYLVAL_INITIALIZE ();
2673    goto yysetstate;
2674  
2675   /*------------------------------------------------------------.
# Line 2979 | Line 2690 | yyparse ()
2690  
2691   #ifdef yyoverflow
2692        {
2693 <        /* Give user a chance to reallocate the stack.  Use copies of
2694 <           these so that the &'s don't force the real ones into
2695 <           memory.  */
2696 <        YYSTYPE *yyvs1 = yyvs;
2697 <        yytype_int16 *yyss1 = yyss;
2698 <
2699 <        /* Each stack pointer address is followed by the size of the
2700 <           data in use in that stack, in bytes.  This used to be a
2701 <           conditional around just the two extra args, but that might
2702 <           be undefined if yyoverflow is a macro.  */
2703 <        yyoverflow (YY_("memory exhausted"),
2704 <                    &yyss1, yysize * sizeof (*yyssp),
2705 <                    &yyvs1, yysize * sizeof (*yyvsp),
2706 <                    &yystacksize);
2693 >        /* Give user a chance to reallocate the stack.  Use copies of
2694 >           these so that the &'s don't force the real ones into
2695 >           memory.  */
2696 >        YYSTYPE *yyvs1 = yyvs;
2697 >        yytype_int16 *yyss1 = yyss;
2698 >
2699 >        /* Each stack pointer address is followed by the size of the
2700 >           data in use in that stack, in bytes.  This used to be a
2701 >           conditional around just the two extra args, but that might
2702 >           be undefined if yyoverflow is a macro.  */
2703 >        yyoverflow (YY_("memory exhausted"),
2704 >                    &yyss1, yysize * sizeof (*yyssp),
2705 >                    &yyvs1, yysize * sizeof (*yyvsp),
2706 >                    &yystacksize);
2707  
2708 <        yyss = yyss1;
2709 <        yyvs = yyvs1;
2708 >        yyss = yyss1;
2709 >        yyvs = yyvs1;
2710        }
2711   #else /* no yyoverflow */
2712   # ifndef YYSTACK_RELOCATE
# Line 3003 | Line 2714 | yyparse ()
2714   # else
2715        /* Extend the stack our own way.  */
2716        if (YYMAXDEPTH <= yystacksize)
2717 <        goto yyexhaustedlab;
2717 >        goto yyexhaustedlab;
2718        yystacksize *= 2;
2719        if (YYMAXDEPTH < yystacksize)
2720 <        yystacksize = YYMAXDEPTH;
2720 >        yystacksize = YYMAXDEPTH;
2721  
2722        {
2723 <        yytype_int16 *yyss1 = yyss;
2724 <        union yyalloc *yyptr =
2725 <          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2726 <        if (! yyptr)
2727 <          goto yyexhaustedlab;
2728 <        YYSTACK_RELOCATE (yyss_alloc, yyss);
2729 <        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2723 >        yytype_int16 *yyss1 = yyss;
2724 >        union yyalloc *yyptr =
2725 >          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2726 >        if (! yyptr)
2727 >          goto yyexhaustedlab;
2728 >        YYSTACK_RELOCATE (yyss_alloc, yyss);
2729 >        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2730   #  undef YYSTACK_RELOCATE
2731 <        if (yyss1 != yyssa)
2732 <          YYSTACK_FREE (yyss1);
2731 >        if (yyss1 != yyssa)
2732 >          YYSTACK_FREE (yyss1);
2733        }
2734   # endif
2735   #endif /* no yyoverflow */
# Line 3027 | Line 2738 | yyparse ()
2738        yyvsp = yyvs + yysize - 1;
2739  
2740        YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2741 <                  (unsigned long int) yystacksize));
2741 >                  (unsigned long int) yystacksize));
2742  
2743        if (yyss + yystacksize - 1 <= yyssp)
2744 <        YYABORT;
2744 >        YYABORT;
2745      }
2746  
2747    YYDPRINTF ((stderr, "Entering state %d\n", yystate));
# Line 3059 | Line 2770 | yybackup:
2770    if (yychar == YYEMPTY)
2771      {
2772        YYDPRINTF ((stderr, "Reading a token: "));
2773 <      yychar = YYLEX;
2773 >      yychar = yylex ();
2774      }
2775  
2776    if (yychar <= YYEOF)
# Line 3124 | Line 2835 | yyreduce:
2835    yylen = yyr2[yyn];
2836  
2837    /* If YYLEN is nonzero, implement the default value of the action:
2838 <     `$$ = $1'.
2838 >     '$$ = $1'.
2839  
2840       Otherwise, the following line sets YYVAL to garbage.
2841       This behavior is undocumented and Bison
# Line 3137 | Line 2848 | yyreduce:
2848    YY_REDUCE_PRINT (yyn);
2849    switch (yyn)
2850      {
2851 <        case 26:
2852 < /* Line 1813 of yacc.c  */
3142 < #line 359 "conf_parser.y"
2851 >        case 27:
2852 > #line 410 "conf_parser.y" /* yacc.c:1646  */
2853      { (yyval.number) = 0; }
2854 <    break;
3145 <
3146 <  case 28:
3147 < /* Line 1813 of yacc.c  */
3148 < #line 361 "conf_parser.y"
3149 <    {
3150 <                        (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3151 <                }
2854 > #line 2855 "conf_parser.c" /* yacc.c:1646  */
2855      break;
2856  
2857    case 29:
2858 < /* Line 1813 of yacc.c  */
2859 < #line 365 "conf_parser.y"
2860 <    {
3158 <                        (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3159 <                }
2858 > #line 411 "conf_parser.y" /* yacc.c:1646  */
2859 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2860 > #line 2861 "conf_parser.c" /* yacc.c:1646  */
2861      break;
2862  
2863    case 30:
2864 < /* Line 1813 of yacc.c  */
2865 < #line 369 "conf_parser.y"
2866 <    {
3166 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3167 <                }
2864 > #line 412 "conf_parser.y" /* yacc.c:1646  */
2865 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2866 > #line 2867 "conf_parser.c" /* yacc.c:1646  */
2867      break;
2868  
2869    case 31:
2870 < /* Line 1813 of yacc.c  */
2871 < #line 373 "conf_parser.y"
2872 <    {
3174 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3175 <                }
2870 > #line 413 "conf_parser.y" /* yacc.c:1646  */
2871 >    { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); }
2872 > #line 2873 "conf_parser.c" /* yacc.c:1646  */
2873      break;
2874  
2875    case 32:
2876 < /* Line 1813 of yacc.c  */
2877 < #line 377 "conf_parser.y"
2878 <    {
3182 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3183 <                }
2876 > #line 414 "conf_parser.y" /* yacc.c:1646  */
2877 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); }
2878 > #line 2879 "conf_parser.c" /* yacc.c:1646  */
2879      break;
2880  
2881    case 33:
2882 < /* Line 1813 of yacc.c  */
2883 < #line 381 "conf_parser.y"
2884 <    {
3190 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3191 <                }
2882 > #line 415 "conf_parser.y" /* yacc.c:1646  */
2883 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); }
2884 > #line 2885 "conf_parser.c" /* yacc.c:1646  */
2885      break;
2886  
2887    case 34:
2888 < /* Line 1813 of yacc.c  */
2889 < #line 386 "conf_parser.y"
2890 <    { (yyval.number) = 0; }
2888 > #line 416 "conf_parser.y" /* yacc.c:1646  */
2889 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); }
2890 > #line 2891 "conf_parser.c" /* yacc.c:1646  */
2891 >    break;
2892 >
2893 >  case 35:
2894 > #line 417 "conf_parser.y" /* yacc.c:1646  */
2895 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); }
2896 > #line 2897 "conf_parser.c" /* yacc.c:1646  */
2897      break;
2898  
2899    case 36:
2900 < /* Line 1813 of yacc.c  */
2901 < #line 387 "conf_parser.y"
2902 <    { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
2900 > #line 418 "conf_parser.y" /* yacc.c:1646  */
2901 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); }
2902 > #line 2903 "conf_parser.c" /* yacc.c:1646  */
2903      break;
2904  
2905    case 37:
2906 < /* Line 1813 of yacc.c  */
2907 < #line 388 "conf_parser.y"
2908 <    { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
2906 > #line 421 "conf_parser.y" /* yacc.c:1646  */
2907 >    { (yyval.number) = 0; }
2908 > #line 2909 "conf_parser.c" /* yacc.c:1646  */
2909      break;
2910  
2911 <  case 38:
2912 < /* Line 1813 of yacc.c  */
2913 < #line 389 "conf_parser.y"
2914 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
2911 >  case 39:
2912 > #line 422 "conf_parser.y" /* yacc.c:1646  */
2913 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2914 > #line 2915 "conf_parser.c" /* yacc.c:1646  */
2915      break;
2916  
2917 <  case 39:
2918 < /* Line 1813 of yacc.c  */
2919 < #line 390 "conf_parser.y"
2920 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
2917 >  case 40:
2918 > #line 423 "conf_parser.y" /* yacc.c:1646  */
2919 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2920 > #line 2921 "conf_parser.c" /* yacc.c:1646  */
2921 >    break;
2922 >
2923 >  case 41:
2924 > #line 424 "conf_parser.y" /* yacc.c:1646  */
2925 >    { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); }
2926 > #line 2927 "conf_parser.c" /* yacc.c:1646  */
2927      break;
2928  
2929 <  case 46:
2930 < /* Line 1813 of yacc.c  */
2931 < #line 404 "conf_parser.y"
2929 >  case 42:
2930 > #line 425 "conf_parser.y" /* yacc.c:1646  */
2931 >    { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); }
2932 > #line 2933 "conf_parser.c" /* yacc.c:1646  */
2933 >    break;
2934 >
2935 >  case 49:
2936 > #line 439 "conf_parser.y" /* yacc.c:1646  */
2937      {
2938    if (conf_parser_ctx.pass == 2)
2939      add_conf_module(libio_basename(yylval.string));
2940   }
2941 + #line 2942 "conf_parser.c" /* yacc.c:1646  */
2942      break;
2943  
2944 <  case 47:
2945 < /* Line 1813 of yacc.c  */
3235 < #line 410 "conf_parser.y"
2944 >  case 50:
2945 > #line 445 "conf_parser.y" /* yacc.c:1646  */
2946      {
2947    if (conf_parser_ctx.pass == 2)
2948      mod_add_path(yylval.string);
2949   }
2950 + #line 2951 "conf_parser.c" /* yacc.c:1646  */
2951      break;
2952  
2953 <  case 71:
2954 < /* Line 1813 of yacc.c  */
3244 < #line 435 "conf_parser.y"
2953 >  case 76:
2954 > #line 479 "conf_parser.y" /* yacc.c:1646  */
2955      {
2956   #ifdef HAVE_LIBCRYPTO
2957    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
2958      SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
2959   #endif
2960   }
2961 + #line 2962 "conf_parser.c" /* yacc.c:1646  */
2962      break;
2963  
2964 <  case 72:
2965 < /* Line 1813 of yacc.c  */
3255 < #line 441 "conf_parser.y"
2964 >  case 77:
2965 > #line 485 "conf_parser.y" /* yacc.c:1646  */
2966      {
2967   #ifdef HAVE_LIBCRYPTO
2968    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
2969      SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
2970   #endif
2971   }
2972 + #line 2973 "conf_parser.c" /* yacc.c:1646  */
2973      break;
2974  
2975 <  case 75:
2976 < /* Line 1813 of yacc.c  */
3266 < #line 450 "conf_parser.y"
2975 >  case 80:
2976 > #line 494 "conf_parser.y" /* yacc.c:1646  */
2977      {
2978   #ifdef HAVE_LIBCRYPTO
2979    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2980      SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
2981   #endif
2982   }
2983 + #line 2984 "conf_parser.c" /* yacc.c:1646  */
2984      break;
2985  
2986 <  case 76:
2987 < /* Line 1813 of yacc.c  */
3277 < #line 456 "conf_parser.y"
2986 >  case 81:
2987 > #line 500 "conf_parser.y" /* yacc.c:1646  */
2988      {
2989   #ifdef HAVE_LIBCRYPTO
2990    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2991      SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
2992   #endif
2993   }
2994 + #line 2995 "conf_parser.c" /* yacc.c:1646  */
2995      break;
2996  
2997 <  case 77:
2998 < /* Line 1813 of yacc.c  */
3288 < #line 464 "conf_parser.y"
2997 >  case 82:
2998 > #line 508 "conf_parser.y" /* yacc.c:1646  */
2999      {
3000   #ifdef HAVE_LIBCRYPTO
3001 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3001 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3002    {
3003      if (!ServerInfo.rsa_private_key_file)
3004      {
3005 <      yyerror("No rsa_private_key_file specified, SSL disabled");
3005 >      conf_error_report("No rsa_private_key_file specified, SSL disabled");
3006        break;
3007      }
3008  
# Line 3301 | Line 3011 | yyreduce:
3011          SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3012                                       SSL_FILETYPE_PEM) <= 0)
3013      {
3014 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3014 >      report_crypto_errors();
3015 >      conf_error_report("Could not open/read certificate file");
3016        break;
3017      }
3018  
# Line 3310 | Line 3021 | yyreduce:
3021          SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3022                                      SSL_FILETYPE_PEM) <= 0)
3023      {
3024 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3024 >      report_crypto_errors();
3025 >      conf_error_report("Could not read RSA private key");
3026        break;
3027      }
3028  
3029      if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3030          !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3031      {
3032 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3032 >      report_crypto_errors();
3033 >      conf_error_report("Could not read RSA private key");
3034        break;
3035      }
3036    }
3037   #endif
3038   }
3039 + #line 3040 "conf_parser.c" /* yacc.c:1646  */
3040      break;
3041  
3042 <  case 78:
3043 < /* Line 1813 of yacc.c  */
3330 < #line 503 "conf_parser.y"
3042 >  case 83:
3043 > #line 550 "conf_parser.y" /* yacc.c:1646  */
3044      {
3045   #ifdef HAVE_LIBCRYPTO
3046 <  if (conf_parser_ctx.pass == 1)
3334 <  {
3335 <    BIO *file;
3046 >  BIO *file = NULL;
3047  
3048 <    if (ServerInfo.rsa_private_key)
3049 <    {
3339 <      RSA_free(ServerInfo.rsa_private_key);
3340 <      ServerInfo.rsa_private_key = NULL;
3341 <    }
3048 >  if (conf_parser_ctx.pass != 1)
3049 >    break;
3050  
3051 <    if (ServerInfo.rsa_private_key_file)
3052 <    {
3053 <      MyFree(ServerInfo.rsa_private_key_file);
3054 <      ServerInfo.rsa_private_key_file = NULL;
3055 <    }
3051 >  if (ServerInfo.rsa_private_key)
3052 >  {
3053 >    RSA_free(ServerInfo.rsa_private_key);
3054 >    ServerInfo.rsa_private_key = NULL;
3055 >  }
3056  
3057 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3057 >  if (ServerInfo.rsa_private_key_file)
3058 >  {
3059 >    MyFree(ServerInfo.rsa_private_key_file);
3060 >    ServerInfo.rsa_private_key_file = NULL;
3061 >  }
3062  
3063 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3352 <    {
3353 <      yyerror("File open failed, ignoring");
3354 <      break;
3355 <    }
3063 >  ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3064  
3065 <    ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3065 >  if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3066 >  {
3067 >    conf_error_report("File open failed, ignoring");
3068 >    break;
3069 >  }
3070  
3071 <    BIO_set_close(file, BIO_CLOSE);
3360 <    BIO_free(file);
3071 >  ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3072  
3073 <    if (ServerInfo.rsa_private_key == NULL)
3074 <    {
3364 <      yyerror("Couldn't extract key, ignoring");
3365 <      break;
3366 <    }
3073 >  BIO_set_close(file, BIO_CLOSE);
3074 >  BIO_free(file);
3075  
3076 <    if (!RSA_check_key(ServerInfo.rsa_private_key))
3077 <    {
3078 <      RSA_free(ServerInfo.rsa_private_key);
3079 <      ServerInfo.rsa_private_key = NULL;
3076 >  if (ServerInfo.rsa_private_key == NULL)
3077 >  {
3078 >    conf_error_report("Couldn't extract key, ignoring");
3079 >    break;
3080 >  }
3081  
3082 <      yyerror("Invalid key, ignoring");
3083 <      break;
3084 <    }
3082 >  if (!RSA_check_key(ServerInfo.rsa_private_key))
3083 >  {
3084 >    RSA_free(ServerInfo.rsa_private_key);
3085 >    ServerInfo.rsa_private_key = NULL;
3086  
3087 <    /* require 2048 bit (256 byte) key */
3088 <    if (RSA_size(ServerInfo.rsa_private_key) != 256)
3089 <    {
3380 <      RSA_free(ServerInfo.rsa_private_key);
3381 <      ServerInfo.rsa_private_key = NULL;
3087 >    conf_error_report("Invalid key, ignoring");
3088 >    break;
3089 >  }
3090  
3091 <      yyerror("Not a 2048 bit key, ignoring");
3092 <    }
3091 >  if (RSA_size(ServerInfo.rsa_private_key) < 128)
3092 >  {
3093 >    RSA_free(ServerInfo.rsa_private_key);
3094 >    ServerInfo.rsa_private_key = NULL;
3095 >
3096 >    conf_error_report("Ignoring serverinfo::rsa_private_key_file -- need at least a 1024 bit key size");
3097    }
3098   #endif
3099   }
3100 + #line 3101 "conf_parser.c" /* yacc.c:1646  */
3101      break;
3102  
3103 <  case 79:
3104 < /* Line 1813 of yacc.c  */
3392 < #line 562 "conf_parser.y"
3103 >  case 84:
3104 > #line 608 "conf_parser.y" /* yacc.c:1646  */
3105      {
3106   /* TBD - XXX: error reporting */
3107   #ifdef HAVE_LIBCRYPTO
# Line 3406 | Line 3118 | yyreduce:
3118        if (dh)
3119        {
3120          if (DH_size(dh) < 128)
3121 <          ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3121 >          conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3122          else
3123            SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3124  
# Line 3416 | Line 3128 | yyreduce:
3128    }
3129   #endif
3130   }
3131 + #line 3132 "conf_parser.c" /* yacc.c:1646  */
3132      break;
3133  
3134 <  case 80:
3135 < /* Line 1813 of yacc.c  */
3423 < #line 590 "conf_parser.y"
3134 >  case 85:
3135 > #line 636 "conf_parser.y" /* yacc.c:1646  */
3136      {
3137   #ifdef HAVE_LIBCRYPTO
3138    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3139      SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3140   #endif
3141   }
3142 + #line 3143 "conf_parser.c" /* yacc.c:1646  */
3143      break;
3144  
3145 <  case 81:
3146 < /* Line 1813 of yacc.c  */
3434 < #line 598 "conf_parser.y"
3145 >  case 86:
3146 > #line 644 "conf_parser.y" /* yacc.c:1646  */
3147      {
3148    /* this isn't rehashable */
3149    if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3150    {
3151      if (valid_servname(yylval.string))
3152 <      DupString(ServerInfo.name, yylval.string);
3152 >      ServerInfo.name = xstrdup(yylval.string);
3153      else
3154      {
3155 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::name -- invalid name. Aborting.");
3155 >      conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3156        exit(0);
3157      }
3158    }
3159   }
3160 + #line 3161 "conf_parser.c" /* yacc.c:1646  */
3161      break;
3162  
3163 <  case 82:
3164 < /* Line 1813 of yacc.c  */
3452 < #line 613 "conf_parser.y"
3163 >  case 87:
3164 > #line 659 "conf_parser.y" /* yacc.c:1646  */
3165      {
3166    /* this isn't rehashable */
3167    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3168    {
3169      if (valid_sid(yylval.string))
3170 <      DupString(ServerInfo.sid, yylval.string);
3170 >      ServerInfo.sid = xstrdup(yylval.string);
3171      else
3172      {
3173 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
3173 >      conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3174        exit(0);
3175      }
3176    }
3177   }
3178 + #line 3179 "conf_parser.c" /* yacc.c:1646  */
3179      break;
3180  
3181 <  case 83:
3182 < /* Line 1813 of yacc.c  */
3470 < #line 628 "conf_parser.y"
3181 >  case 88:
3182 > #line 674 "conf_parser.y" /* yacc.c:1646  */
3183      {
3184    if (conf_parser_ctx.pass == 2)
3185    {
3186      MyFree(ServerInfo.description);
3187 <    DupString(ServerInfo.description,yylval.string);
3187 >    ServerInfo.description = xstrdup(yylval.string);
3188    }
3189   }
3190 + #line 3191 "conf_parser.c" /* yacc.c:1646  */
3191      break;
3192  
3193 <  case 84:
3194 < /* Line 1813 of yacc.c  */
3482 < #line 637 "conf_parser.y"
3193 >  case 89:
3194 > #line 683 "conf_parser.y" /* yacc.c:1646  */
3195      {
3196    if (conf_parser_ctx.pass == 2)
3197    {
3198      char *p;
3199  
3200 <    if ((p = strchr(yylval.string, ' ')) != NULL)
3200 >    if ((p = strchr(yylval.string, ' ')))
3201        p = '\0';
3202  
3203      MyFree(ServerInfo.network_name);
3204 <    DupString(ServerInfo.network_name, yylval.string);
3204 >    ServerInfo.network_name = xstrdup(yylval.string);
3205    }
3206   }
3207 + #line 3208 "conf_parser.c" /* yacc.c:1646  */
3208      break;
3209  
3210 <  case 85:
3211 < /* Line 1813 of yacc.c  */
3499 < #line 651 "conf_parser.y"
3210 >  case 90:
3211 > #line 697 "conf_parser.y" /* yacc.c:1646  */
3212      {
3213 <  if (conf_parser_ctx.pass == 2)
3214 <  {
3215 <    MyFree(ServerInfo.network_desc);
3216 <    DupString(ServerInfo.network_desc, yylval.string);
3217 <  }
3213 >  if (conf_parser_ctx.pass != 2)
3214 >    break;
3215 >
3216 >  MyFree(ServerInfo.network_desc);
3217 >  ServerInfo.network_desc = xstrdup(yylval.string);
3218   }
3219 + #line 3220 "conf_parser.c" /* yacc.c:1646  */
3220      break;
3221  
3222 <  case 86:
3223 < /* Line 1813 of yacc.c  */
3511 < #line 660 "conf_parser.y"
3222 >  case 91:
3223 > #line 706 "conf_parser.y" /* yacc.c:1646  */
3224      {
3225    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3226    {
# Line 3524 | Line 3236 | yyreduce:
3236        ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3237      else
3238      {
3239 <      assert(res != NULL);
3239 >      assert(res);
3240  
3241        memcpy(&ServerInfo.ip, res->ai_addr, res->ai_addrlen);
3242        ServerInfo.ip.ss.ss_family = res->ai_family;
# Line 3535 | Line 3247 | yyreduce:
3247      }
3248    }
3249   }
3250 + #line 3251 "conf_parser.c" /* yacc.c:1646  */
3251      break;
3252  
3253 <  case 87:
3254 < /* Line 1813 of yacc.c  */
3542 < #line 688 "conf_parser.y"
3253 >  case 92:
3254 > #line 734 "conf_parser.y" /* yacc.c:1646  */
3255      {
3256   #ifdef IPV6
3257    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3556 | Line 3268 | yyreduce:
3268        ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3269      else
3270      {
3271 <      assert(res != NULL);
3271 >      assert(res);
3272  
3273        memcpy(&ServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3274        ServerInfo.ip6.ss.ss_family = res->ai_family;
# Line 3568 | Line 3280 | yyreduce:
3280    }
3281   #endif
3282   }
3283 + #line 3284 "conf_parser.c" /* yacc.c:1646  */
3284      break;
3285  
3286 <  case 88:
3287 < /* Line 1813 of yacc.c  */
3575 < #line 718 "conf_parser.y"
3286 >  case 93:
3287 > #line 764 "conf_parser.y" /* yacc.c:1646  */
3288      {
3289 <  if (conf_parser_ctx.pass == 2)
3289 >  if (conf_parser_ctx.pass != 2)
3290 >    break;
3291 >
3292 >  if ((yyvsp[-1].number) < MAXCLIENTS_MIN)
3293 >  {
3294 >    char buf[IRCD_BUFSIZE] = "";
3295 >
3296 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3297 >    conf_error_report(buf);
3298 >    ServerInfo.max_clients = MAXCLIENTS_MIN;
3299 >  }
3300 >  else if ((yyvsp[-1].number) > MAXCLIENTS_MAX)
3301    {
3302 <    recalc_fdlimit(NULL);
3302 >    char buf[IRCD_BUFSIZE] = "";
3303 >
3304 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3305 >    conf_error_report(buf);
3306 >    ServerInfo.max_clients = MAXCLIENTS_MAX;
3307 >  }
3308 >  else
3309 >    ServerInfo.max_clients = (yyvsp[-1].number);
3310 > }
3311 > #line 3312 "conf_parser.c" /* yacc.c:1646  */
3312 >    break;
3313  
3314 <    if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3314 >  case 94:
3315 > #line 789 "conf_parser.y" /* yacc.c:1646  */
3316      {
3317 <      char buf[IRCD_BUFSIZE];
3318 <      ircsprintf(buf, "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3319 <      yyerror(buf);
3320 <    }
3321 <    else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3317 >  if (conf_parser_ctx.pass != 2)
3318 >    break;
3319 >
3320 >  if ((yyvsp[-1].number) < 9)
3321 >  {
3322 >    conf_error_report("max_nick_length too low, setting to 9");
3323 >    ServerInfo.max_nick_length = 9;
3324 >  }
3325 >  else if ((yyvsp[-1].number) > NICKLEN)
3326 >  {
3327 >    char buf[IRCD_BUFSIZE] = "";
3328 >
3329 >    snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3330 >    conf_error_report(buf);
3331 >    ServerInfo.max_nick_length = NICKLEN;
3332 >  }
3333 >  else
3334 >    ServerInfo.max_nick_length = (yyvsp[-1].number);
3335 > }
3336 > #line 3337 "conf_parser.c" /* yacc.c:1646  */
3337 >    break;
3338 >
3339 >  case 95:
3340 > #line 811 "conf_parser.y" /* yacc.c:1646  */
3341      {
3342 <      char buf[IRCD_BUFSIZE];
3343 <      ircsprintf(buf, "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3344 <      yyerror(buf);
3345 <    }
3346 <    else
3347 <      ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3342 >  if (conf_parser_ctx.pass != 2)
3343 >    break;
3344 >
3345 >  if ((yyvsp[-1].number) < 80)
3346 >  {
3347 >    conf_error_report("max_topic_length too low, setting to 80");
3348 >    ServerInfo.max_topic_length = 80;
3349 >  }
3350 >  else if ((yyvsp[-1].number) > TOPICLEN)
3351 >  {
3352 >    char buf[IRCD_BUFSIZE] = "";
3353 >
3354 >    snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3355 >    conf_error_report(buf);
3356 >    ServerInfo.max_topic_length = TOPICLEN;
3357    }
3358 +  else
3359 +    ServerInfo.max_topic_length = (yyvsp[-1].number);
3360   }
3361 + #line 3362 "conf_parser.c" /* yacc.c:1646  */
3362      break;
3363  
3364 <  case 89:
3365 < /* Line 1813 of yacc.c  */
3601 < #line 741 "conf_parser.y"
3364 >  case 96:
3365 > #line 833 "conf_parser.y" /* yacc.c:1646  */
3366      {
3367    if (conf_parser_ctx.pass == 2)
3368      ServerInfo.hub = yylval.number;
3369   }
3370 + #line 3371 "conf_parser.c" /* yacc.c:1646  */
3371 +    break;
3372 +
3373 +  case 104:
3374 + #line 850 "conf_parser.y" /* yacc.c:1646  */
3375 +    {
3376 +  if (conf_parser_ctx.pass != 2)
3377 +    break;
3378 +
3379 +  MyFree(AdminInfo.name);
3380 +  AdminInfo.name = xstrdup(yylval.string);
3381 + }
3382 + #line 3383 "conf_parser.c" /* yacc.c:1646  */
3383      break;
3384  
3385 <  case 97:
3386 < /* Line 1813 of yacc.c  */
3387 < #line 756 "conf_parser.y"
3385 >  case 105:
3386 > #line 859 "conf_parser.y" /* yacc.c:1646  */
3387 >    {
3388 >  if (conf_parser_ctx.pass != 2)
3389 >    break;
3390 >
3391 >  MyFree(AdminInfo.email);
3392 >  AdminInfo.email = xstrdup(yylval.string);
3393 > }
3394 > #line 3395 "conf_parser.c" /* yacc.c:1646  */
3395 >    break;
3396 >
3397 >  case 106:
3398 > #line 868 "conf_parser.y" /* yacc.c:1646  */
3399 >    {
3400 >  if (conf_parser_ctx.pass != 2)
3401 >    break;
3402 >
3403 >  MyFree(AdminInfo.description);
3404 >  AdminInfo.description = xstrdup(yylval.string);
3405 > }
3406 > #line 3407 "conf_parser.c" /* yacc.c:1646  */
3407 >    break;
3408 >
3409 >  case 107:
3410 > #line 880 "conf_parser.y" /* yacc.c:1646  */
3411      {
3412    if (conf_parser_ctx.pass == 2)
3413 <  {
3414 <    MyFree(AdminInfo.name);
3415 <    DupString(AdminInfo.name, yylval.string);
3416 <  }
3413 >    reset_block_state();
3414 > }
3415 > #line 3416 "conf_parser.c" /* yacc.c:1646  */
3416 >    break;
3417 >
3418 >  case 108:
3419 > #line 884 "conf_parser.y" /* yacc.c:1646  */
3420 >    {
3421 >  dlink_node *ptr = NULL;
3422 >
3423 >  if (conf_parser_ctx.pass != 2)
3424 >    break;
3425 >
3426 >  if (!block_state.file.buf[0])
3427 >    break;
3428 >
3429 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3430 >    motd_add(ptr->data, block_state.file.buf);
3431   }
3432 + #line 3433 "conf_parser.c" /* yacc.c:1646  */
3433      break;
3434  
3435 <  case 98:
3436 < /* Line 1813 of yacc.c  */
3622 < #line 765 "conf_parser.y"
3435 >  case 114:
3436 > #line 901 "conf_parser.y" /* yacc.c:1646  */
3437      {
3438    if (conf_parser_ctx.pass == 2)
3439 <  {
3626 <    MyFree(AdminInfo.email);
3627 <    DupString(AdminInfo.email, yylval.string);
3628 <  }
3439 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3440   }
3441 + #line 3442 "conf_parser.c" /* yacc.c:1646  */
3442      break;
3443  
3444 <  case 99:
3445 < /* Line 1813 of yacc.c  */
3634 < #line 774 "conf_parser.y"
3444 >  case 115:
3445 > #line 907 "conf_parser.y" /* yacc.c:1646  */
3446      {
3447    if (conf_parser_ctx.pass == 2)
3448 <  {
3638 <    MyFree(AdminInfo.description);
3639 <    DupString(AdminInfo.description, yylval.string);
3640 <  }
3448 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3449   }
3450 + #line 3451 "conf_parser.c" /* yacc.c:1646  */
3451      break;
3452  
3453 <  case 106:
3454 < /* Line 1813 of yacc.c  */
3646 < #line 792 "conf_parser.y"
3453 >  case 122:
3454 > #line 922 "conf_parser.y" /* yacc.c:1646  */
3455      {
3456    if (conf_parser_ctx.pass == 2)
3457      ConfigLoggingEntry.use_logging = yylval.number;
3458   }
3459 + #line 3460 "conf_parser.c" /* yacc.c:1646  */
3460      break;
3461  
3462 <  case 107:
3463 < /* Line 1813 of yacc.c  */
3655 < #line 798 "conf_parser.y"
3462 >  case 123:
3463 > #line 928 "conf_parser.y" /* yacc.c:1646  */
3464      {
3465 <  lfile[0] = '\0';
3466 <  ltype = 0;
3659 <  lsize = 0;
3465 >  if (conf_parser_ctx.pass == 2)
3466 >    reset_block_state();
3467   }
3468 + #line 3469 "conf_parser.c" /* yacc.c:1646  */
3469      break;
3470  
3471 <  case 108:
3472 < /* Line 1813 of yacc.c  */
3665 < #line 803 "conf_parser.y"
3471 >  case 124:
3472 > #line 932 "conf_parser.y" /* yacc.c:1646  */
3473      {
3474 <  if (conf_parser_ctx.pass == 2 && ltype > 0)
3475 <    log_add_file(ltype, lsize, lfile);
3474 >  if (conf_parser_ctx.pass != 2)
3475 >    break;
3476 >
3477 >  if (block_state.type.value && block_state.file.buf[0])
3478 >    log_set_file(block_state.type.value, block_state.size.value,
3479 >                 block_state.file.buf);
3480   }
3481 + #line 3482 "conf_parser.c" /* yacc.c:1646  */
3482      break;
3483  
3484 <  case 115:
3485 < /* Line 1813 of yacc.c  */
3674 < #line 815 "conf_parser.y"
3484 >  case 131:
3485 > #line 948 "conf_parser.y" /* yacc.c:1646  */
3486      {
3487 <  strlcpy(lfile, yylval.string, sizeof(lfile));
3487 >  if (conf_parser_ctx.pass != 2)
3488 >    break;
3489 >
3490 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3491   }
3492 + #line 3493 "conf_parser.c" /* yacc.c:1646  */
3493      break;
3494  
3495 <  case 116:
3496 < /* Line 1813 of yacc.c  */
3682 < #line 820 "conf_parser.y"
3495 >  case 132:
3496 > #line 956 "conf_parser.y" /* yacc.c:1646  */
3497      {
3498 <  lsize = (yyvsp[(3) - (4)].number);
3498 >  block_state.size.value = (yyvsp[-1].number);
3499   }
3500 + #line 3501 "conf_parser.c" /* yacc.c:1646  */
3501      break;
3502  
3503 <  case 117:
3504 < /* Line 1813 of yacc.c  */
3690 < #line 823 "conf_parser.y"
3503 >  case 133:
3504 > #line 959 "conf_parser.y" /* yacc.c:1646  */
3505      {
3506 <  lsize = 0;
3506 >  block_state.size.value = 0;
3507   }
3508 + #line 3509 "conf_parser.c" /* yacc.c:1646  */
3509      break;
3510  
3511 <  case 118:
3512 < /* Line 1813 of yacc.c  */
3698 < #line 828 "conf_parser.y"
3511 >  case 134:
3512 > #line 964 "conf_parser.y" /* yacc.c:1646  */
3513      {
3514    if (conf_parser_ctx.pass == 2)
3515 <    ltype = 0;
3515 >    block_state.type.value = 0;
3516   }
3517 + #line 3518 "conf_parser.c" /* yacc.c:1646  */
3518      break;
3519  
3520 <  case 122:
3521 < /* Line 1813 of yacc.c  */
3707 < #line 835 "conf_parser.y"
3520 >  case 138:
3521 > #line 971 "conf_parser.y" /* yacc.c:1646  */
3522      {
3523    if (conf_parser_ctx.pass == 2)
3524 <    ltype = LOG_TYPE_USER;
3524 >    block_state.type.value = LOG_TYPE_USER;
3525   }
3526 + #line 3527 "conf_parser.c" /* yacc.c:1646  */
3527      break;
3528  
3529 <  case 123:
3530 < /* Line 1813 of yacc.c  */
3716 < #line 839 "conf_parser.y"
3529 >  case 139:
3530 > #line 975 "conf_parser.y" /* yacc.c:1646  */
3531      {
3532    if (conf_parser_ctx.pass == 2)
3533 <    ltype = LOG_TYPE_OPER;
3533 >    block_state.type.value = LOG_TYPE_OPER;
3534   }
3535 + #line 3536 "conf_parser.c" /* yacc.c:1646  */
3536      break;
3537  
3538 <  case 124:
3539 < /* Line 1813 of yacc.c  */
3725 < #line 843 "conf_parser.y"
3538 >  case 140:
3539 > #line 979 "conf_parser.y" /* yacc.c:1646  */
3540      {
3541    if (conf_parser_ctx.pass == 2)
3542 <    ltype = LOG_TYPE_GLINE;
3542 >    block_state.type.value = LOG_TYPE_GLINE;
3543   }
3544 + #line 3545 "conf_parser.c" /* yacc.c:1646  */
3545      break;
3546  
3547 <  case 125:
3548 < /* Line 1813 of yacc.c  */
3734 < #line 847 "conf_parser.y"
3547 >  case 141:
3548 > #line 983 "conf_parser.y" /* yacc.c:1646  */
3549      {
3550    if (conf_parser_ctx.pass == 2)
3551 <    ltype = LOG_TYPE_DLINE;
3551 >    block_state.type.value = LOG_TYPE_XLINE;
3552   }
3553 + #line 3554 "conf_parser.c" /* yacc.c:1646  */
3554      break;
3555  
3556 <  case 126:
3557 < /* Line 1813 of yacc.c  */
3743 < #line 851 "conf_parser.y"
3556 >  case 142:
3557 > #line 987 "conf_parser.y" /* yacc.c:1646  */
3558      {
3559    if (conf_parser_ctx.pass == 2)
3560 <    ltype = LOG_TYPE_KLINE;
3560 >    block_state.type.value = LOG_TYPE_RESV;
3561   }
3562 + #line 3563 "conf_parser.c" /* yacc.c:1646  */
3563      break;
3564  
3565 <  case 127:
3566 < /* Line 1813 of yacc.c  */
3752 < #line 855 "conf_parser.y"
3565 >  case 143:
3566 > #line 991 "conf_parser.y" /* yacc.c:1646  */
3567      {
3568    if (conf_parser_ctx.pass == 2)
3569 <    ltype = LOG_TYPE_KILL;
3569 >    block_state.type.value = LOG_TYPE_DLINE;
3570   }
3571 + #line 3572 "conf_parser.c" /* yacc.c:1646  */
3572      break;
3573  
3574 <  case 128:
3575 < /* Line 1813 of yacc.c  */
3761 < #line 859 "conf_parser.y"
3574 >  case 144:
3575 > #line 995 "conf_parser.y" /* yacc.c:1646  */
3576      {
3577    if (conf_parser_ctx.pass == 2)
3578 <    ltype = LOG_TYPE_DEBUG;
3578 >    block_state.type.value = LOG_TYPE_KLINE;
3579   }
3580 + #line 3581 "conf_parser.c" /* yacc.c:1646  */
3581      break;
3582  
3583 <  case 129:
3584 < /* Line 1813 of yacc.c  */
3770 < #line 869 "conf_parser.y"
3583 >  case 145:
3584 > #line 999 "conf_parser.y" /* yacc.c:1646  */
3585      {
3586    if (conf_parser_ctx.pass == 2)
3587 <  {
3774 <    yy_conf = make_conf_item(OPER_TYPE);
3775 <    yy_aconf = map_to_conf(yy_conf);
3776 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
3777 <  }
3778 <  else
3779 <  {
3780 <    MyFree(class_name);
3781 <    class_name = NULL;
3782 <  }
3587 >    block_state.type.value = LOG_TYPE_KILL;
3588   }
3589 + #line 3590 "conf_parser.c" /* yacc.c:1646  */
3590      break;
3591  
3592 <  case 130:
3593 < /* Line 1813 of yacc.c  */
3788 < #line 882 "conf_parser.y"
3592 >  case 146:
3593 > #line 1003 "conf_parser.y" /* yacc.c:1646  */
3594      {
3595    if (conf_parser_ctx.pass == 2)
3596 <  {
3597 <    struct CollectItem *yy_tmp;
3598 <    dlink_node *ptr;
3599 <    dlink_node *next_ptr;
3795 <
3796 <    conf_add_class_to_conf(yy_conf, class_name);
3797 <
3798 <    /* Now, make sure there is a copy of the "base" given oper
3799 <     * block in each of the collected copies
3800 <     */
3596 >    block_state.type.value = LOG_TYPE_DEBUG;
3597 > }
3598 > #line 3599 "conf_parser.c" /* yacc.c:1646  */
3599 >    break;
3600  
3601 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3601 >  case 147:
3602 > #line 1013 "conf_parser.y" /* yacc.c:1646  */
3603      {
3604 <      struct AccessItem *new_aconf;
3605 <      struct ConfItem *new_conf;
3806 <      yy_tmp = ptr->data;
3604 >  if (conf_parser_ctx.pass != 2)
3605 >    break;
3606  
3607 <      new_conf = make_conf_item(OPER_TYPE);
3608 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
3607 >  reset_block_state();
3608 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3609 > }
3610 > #line 3611 "conf_parser.c" /* yacc.c:1646  */
3611 >    break;
3612  
3613 <      new_aconf->flags = yy_aconf->flags;
3613 >  case 148:
3614 > #line 1020 "conf_parser.y" /* yacc.c:1646  */
3615 >    {
3616 >  dlink_node *ptr = NULL;
3617  
3618 <      if (yy_conf->name != NULL)
3619 <        DupString(new_conf->name, yy_conf->name);
3815 <      if (yy_tmp->user != NULL)
3816 <        DupString(new_aconf->user, yy_tmp->user);
3817 <      else
3818 <        DupString(new_aconf->user, "*");
3819 <      if (yy_tmp->host != NULL)
3820 <        DupString(new_aconf->host, yy_tmp->host);
3821 <      else
3822 <        DupString(new_aconf->host, "*");
3618 >  if (conf_parser_ctx.pass != 2)
3619 >    break;
3620  
3621 <      new_aconf->type = parse_netmask(new_aconf->host, &new_aconf->addr,
3622 <                                     &new_aconf->bits);
3621 >  if (!block_state.name.buf[0])
3622 >    break;
3623 > #ifdef HAVE_LIBCRYPTO
3624 >  if (!block_state.file.buf[0] &&
3625 >      !block_state.rpass.buf[0])
3626 >    break;
3627 > #else
3628 >  if (!block_state.rpass.buf[0])
3629 >    break;
3630 > #endif
3631  
3632 <      conf_add_class_to_conf(new_conf, class_name);
3633 <      if (yy_aconf->passwd != NULL)
3634 <        DupString(new_aconf->passwd, yy_aconf->passwd);
3632 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3633 >  {
3634 >    struct MaskItem *conf = NULL;
3635 >    struct split_nuh_item nuh;
3636  
3637 <      new_aconf->port = yy_aconf->port;
3638 < #ifdef HAVE_LIBCRYPTO
3639 <      if (yy_aconf->rsa_public_key_file != NULL)
3640 <      {
3641 <        BIO *file;
3637 >    nuh.nuhmask  = ptr->data;
3638 >    nuh.nickptr  = NULL;
3639 >    nuh.userptr  = block_state.user.buf;
3640 >    nuh.hostptr  = block_state.host.buf;
3641 >    nuh.nicksize = 0;
3642 >    nuh.usersize = sizeof(block_state.user.buf);
3643 >    nuh.hostsize = sizeof(block_state.host.buf);
3644 >    split_nuh(&nuh);
3645  
3646 <        DupString(new_aconf->rsa_public_key_file,
3647 <                  yy_aconf->rsa_public_key_file);
3646 >    conf         = conf_make(CONF_OPER);
3647 >    conf->name   = xstrdup(block_state.name.buf);
3648 >    conf->user   = xstrdup(block_state.user.buf);
3649 >    conf->host   = xstrdup(block_state.host.buf);
3650 >
3651 >    if (block_state.cert.buf[0])
3652 >      conf->certfp = xstrdup(block_state.cert.buf);
3653 >
3654 >    if (block_state.rpass.buf[0])
3655 >      conf->passwd = xstrdup(block_state.rpass.buf);
3656 >
3657 >    conf->flags = block_state.flags.value;
3658 >    conf->modes = block_state.modes.value;
3659 >    conf->port  = block_state.port.value;
3660 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3661  
3662 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
3841 <        new_aconf->rsa_public_key = PEM_read_bio_RSA_PUBKEY(file,
3842 <                                                           NULL, 0, NULL);
3843 <        BIO_set_close(file, BIO_CLOSE);
3844 <        BIO_free(file);
3845 <      }
3846 < #endif
3662 >    conf_add_class_to_conf(conf, block_state.class.buf);
3663  
3664   #ifdef HAVE_LIBCRYPTO
3665 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
3666 <          && yy_tmp->host)
3667 < #else
3668 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
3669 < #endif
3665 >    if (block_state.file.buf[0])
3666 >    {
3667 >      BIO *file = NULL;
3668 >      RSA *pkey = NULL;
3669 >
3670 >      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3671        {
3672 <        conf_add_class_to_conf(new_conf, class_name);
3673 <        if (yy_tmp->name != NULL)
3857 <          DupString(new_conf->name, yy_tmp->name);
3672 >        conf_error_report("Ignoring rsa_public_key_file -- file doesn't exist");
3673 >        break;
3674        }
3675  
3676 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
3677 <      free_collect_item(yy_tmp);
3862 <    }
3863 <
3864 <    yy_conf = NULL;
3865 <    yy_aconf = NULL;
3866 <
3676 >      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3677 >        conf_error_report("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3678  
3679 <    MyFree(class_name);
3680 <    class_name = NULL;
3679 >      conf->rsa_public_key = pkey;
3680 >      BIO_set_close(file, BIO_CLOSE);
3681 >      BIO_free(file);
3682 >    }
3683 > #endif /* HAVE_LIBCRYPTO */
3684    }
3685   }
3686 + #line 3687 "conf_parser.c" /* yacc.c:1646  */
3687      break;
3688  
3689 <  case 142:
3690 < /* Line 1813 of yacc.c  */
3876 < #line 972 "conf_parser.y"
3689 >  case 162:
3690 > #line 1106 "conf_parser.y" /* yacc.c:1646  */
3691      {
3692    if (conf_parser_ctx.pass == 2)
3693 <  {
3880 <    MyFree(yy_conf->name);
3881 <    DupString(yy_conf->name, yylval.string);
3882 <  }
3693 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3694   }
3695 + #line 3696 "conf_parser.c" /* yacc.c:1646  */
3696      break;
3697  
3698 <  case 143:
3699 < /* Line 1813 of yacc.c  */
3888 < #line 981 "conf_parser.y"
3698 >  case 163:
3699 > #line 1112 "conf_parser.y" /* yacc.c:1646  */
3700      {
3701    if (conf_parser_ctx.pass == 2)
3702 <  {
3703 <    struct split_nuh_item nuh;
3702 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3703 > }
3704 > #line 3705 "conf_parser.c" /* yacc.c:1646  */
3705 >    break;
3706  
3707 <    nuh.nuhmask  = yylval.string;
3708 <    nuh.nickptr  = NULL;
3709 <    nuh.userptr  = userbuf;
3710 <    nuh.hostptr  = hostbuf;
3707 >  case 164:
3708 > #line 1118 "conf_parser.y" /* yacc.c:1646  */
3709 >    {
3710 >  if (conf_parser_ctx.pass == 2)
3711 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3712 > }
3713 > #line 3714 "conf_parser.c" /* yacc.c:1646  */
3714 >    break;
3715  
3716 <    nuh.nicksize = 0;
3717 <    nuh.usersize = sizeof(userbuf);
3718 <    nuh.hostsize = sizeof(hostbuf);
3716 >  case 165:
3717 > #line 1124 "conf_parser.y" /* yacc.c:1646  */
3718 >    {
3719 >  if (conf_parser_ctx.pass != 2)
3720 >    break;
3721  
3722 <    split_nuh(&nuh);
3722 >  if (yylval.number)
3723 >    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3724 >  else
3725 >    block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3726 > }
3727 > #line 3728 "conf_parser.c" /* yacc.c:1646  */
3728 >    break;
3729  
3730 <    if (yy_aconf->user == NULL)
3730 >  case 166:
3731 > #line 1135 "conf_parser.y" /* yacc.c:1646  */
3732      {
3733 <      DupString(yy_aconf->user, userbuf);
3734 <      DupString(yy_aconf->host, hostbuf);
3733 >  if (conf_parser_ctx.pass == 2)
3734 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3735 > }
3736 > #line 3737 "conf_parser.c" /* yacc.c:1646  */
3737 >    break;
3738  
3739 <      yy_aconf->type = parse_netmask(yy_aconf->host, &yy_aconf->addr,
3740 <                                    &yy_aconf->bits);
3912 <    }
3913 <    else
3739 >  case 167:
3740 > #line 1141 "conf_parser.y" /* yacc.c:1646  */
3741      {
3742 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
3742 >  if (conf_parser_ctx.pass == 2)
3743 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
3744 > }
3745 > #line 3746 "conf_parser.c" /* yacc.c:1646  */
3746 >    break;
3747  
3748 <      DupString(yy_tmp->user, userbuf);
3749 <      DupString(yy_tmp->host, hostbuf);
3748 >  case 168:
3749 > #line 1147 "conf_parser.y" /* yacc.c:1646  */
3750 >    {
3751 >  if (conf_parser_ctx.pass != 2)
3752 >    break;
3753  
3754 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
3755 <    }
3756 <  }
3754 >  if (yylval.number)
3755 >    block_state.flags.value |= CONF_FLAGS_SSL;
3756 >  else
3757 >    block_state.flags.value &= ~CONF_FLAGS_SSL;
3758   }
3759 + #line 3760 "conf_parser.c" /* yacc.c:1646  */
3760      break;
3761  
3762 <  case 144:
3763 < /* Line 1813 of yacc.c  */
3928 < #line 1018 "conf_parser.y"
3762 >  case 169:
3763 > #line 1158 "conf_parser.y" /* yacc.c:1646  */
3764      {
3765    if (conf_parser_ctx.pass == 2)
3766 <  {
3932 <    if (yy_aconf->passwd != NULL)
3933 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
3934 <
3935 <    MyFree(yy_aconf->passwd);
3936 <    DupString(yy_aconf->passwd, yylval.string);
3937 <  }
3766 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3767   }
3768 + #line 3769 "conf_parser.c" /* yacc.c:1646  */
3769      break;
3770  
3771 <  case 145:
3772 < /* Line 1813 of yacc.c  */
3943 < #line 1030 "conf_parser.y"
3771 >  case 170:
3772 > #line 1164 "conf_parser.y" /* yacc.c:1646  */
3773      {
3774    if (conf_parser_ctx.pass == 2)
3775 <  {
3947 <    if (yylval.number)
3948 <      SetConfEncrypted(yy_aconf);
3949 <    else
3950 <      ClearConfEncrypted(yy_aconf);
3951 <  }
3775 >    block_state.modes.value = 0;
3776   }
3777 + #line 3778 "conf_parser.c" /* yacc.c:1646  */
3778      break;
3779  
3780 <  case 146:
3781 < /* Line 1813 of yacc.c  */
3957 < #line 1041 "conf_parser.y"
3780 >  case 174:
3781 > #line 1171 "conf_parser.y" /* yacc.c:1646  */
3782      {
3959 #ifdef HAVE_LIBCRYPTO
3783    if (conf_parser_ctx.pass == 2)
3784 <  {
3785 <    BIO *file;
3784 >    block_state.modes.value |= UMODE_BOTS;
3785 > }
3786 > #line 3787 "conf_parser.c" /* yacc.c:1646  */
3787 >    break;
3788  
3789 <    if (yy_aconf->rsa_public_key != NULL)
3789 >  case 175:
3790 > #line 1175 "conf_parser.y" /* yacc.c:1646  */
3791      {
3792 <      RSA_free(yy_aconf->rsa_public_key);
3793 <      yy_aconf->rsa_public_key = NULL;
3794 <    }
3792 >  if (conf_parser_ctx.pass == 2)
3793 >    block_state.modes.value |= UMODE_CCONN;
3794 > }
3795 > #line 3796 "conf_parser.c" /* yacc.c:1646  */
3796 >    break;
3797  
3798 <    if (yy_aconf->rsa_public_key_file != NULL)
3798 >  case 176:
3799 > #line 1179 "conf_parser.y" /* yacc.c:1646  */
3800      {
3801 <      MyFree(yy_aconf->rsa_public_key_file);
3802 <      yy_aconf->rsa_public_key_file = NULL;
3803 <    }
3804 <
3805 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
3977 <    file = BIO_new_file(yylval.string, "r");
3801 >  if (conf_parser_ctx.pass == 2)
3802 >    block_state.modes.value |= UMODE_DEAF;
3803 > }
3804 > #line 3805 "conf_parser.c" /* yacc.c:1646  */
3805 >    break;
3806  
3807 <    if (file == NULL)
3807 >  case 177:
3808 > #line 1183 "conf_parser.y" /* yacc.c:1646  */
3809      {
3810 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
3811 <      break;
3812 <    }
3813 <
3814 <    yy_aconf->rsa_public_key = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
3810 >  if (conf_parser_ctx.pass == 2)
3811 >    block_state.modes.value |= UMODE_DEBUG;
3812 > }
3813 > #line 3814 "conf_parser.c" /* yacc.c:1646  */
3814 >    break;
3815  
3816 <    if (yy_aconf->rsa_public_key == NULL)
3816 >  case 178:
3817 > #line 1187 "conf_parser.y" /* yacc.c:1646  */
3818      {
3819 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3820 <      break;
3991 <    }
3992 <
3993 <    BIO_set_close(file, BIO_CLOSE);
3994 <    BIO_free(file);
3995 <  }
3996 < #endif /* HAVE_LIBCRYPTO */
3819 >  if (conf_parser_ctx.pass == 2)
3820 >    block_state.modes.value |= UMODE_FULL;
3821   }
3822 + #line 3823 "conf_parser.c" /* yacc.c:1646  */
3823      break;
3824  
3825 <  case 147:
3826 < /* Line 1813 of yacc.c  */
4002 < #line 1083 "conf_parser.y"
3825 >  case 179:
3826 > #line 1191 "conf_parser.y" /* yacc.c:1646  */
3827      {
3828    if (conf_parser_ctx.pass == 2)
3829 <  {
4006 <    MyFree(class_name);
4007 <    DupString(class_name, yylval.string);
4008 <  }
3829 >    block_state.modes.value |= UMODE_HIDDEN;
3830   }
3831 + #line 3832 "conf_parser.c" /* yacc.c:1646  */
3832      break;
3833  
3834 <  case 148:
3835 < /* Line 1813 of yacc.c  */
4014 < #line 1092 "conf_parser.y"
3834 >  case 180:
3835 > #line 1195 "conf_parser.y" /* yacc.c:1646  */
3836      {
3837    if (conf_parser_ctx.pass == 2)
3838 <    yy_aconf->modes = 0;
3838 >    block_state.modes.value |= UMODE_HIDECHANS;
3839   }
3840 + #line 3841 "conf_parser.c" /* yacc.c:1646  */
3841      break;
3842  
3843 <  case 152:
3844 < /* Line 1813 of yacc.c  */
4023 < #line 1099 "conf_parser.y"
3843 >  case 181:
3844 > #line 1199 "conf_parser.y" /* yacc.c:1646  */
3845      {
3846    if (conf_parser_ctx.pass == 2)
3847 <    yy_aconf->modes |= UMODE_BOTS;
3847 >    block_state.modes.value |= UMODE_HIDEIDLE;
3848   }
3849 + #line 3850 "conf_parser.c" /* yacc.c:1646  */
3850      break;
3851  
3852 <  case 153:
3853 < /* Line 1813 of yacc.c  */
4032 < #line 1103 "conf_parser.y"
3852 >  case 182:
3853 > #line 1203 "conf_parser.y" /* yacc.c:1646  */
3854      {
3855    if (conf_parser_ctx.pass == 2)
3856 <    yy_aconf->modes |= UMODE_CCONN;
3856 >    block_state.modes.value |= UMODE_SKILL;
3857   }
3858 + #line 3859 "conf_parser.c" /* yacc.c:1646  */
3859      break;
3860  
3861 <  case 154:
3862 < /* Line 1813 of yacc.c  */
4041 < #line 1107 "conf_parser.y"
3861 >  case 183:
3862 > #line 1207 "conf_parser.y" /* yacc.c:1646  */
3863      {
3864    if (conf_parser_ctx.pass == 2)
3865 <    yy_aconf->modes |= UMODE_CCONN_FULL;
3865 >    block_state.modes.value |= UMODE_NCHANGE;
3866   }
3867 + #line 3868 "conf_parser.c" /* yacc.c:1646  */
3868      break;
3869  
3870 <  case 155:
3871 < /* Line 1813 of yacc.c  */
4050 < #line 1111 "conf_parser.y"
3870 >  case 184:
3871 > #line 1211 "conf_parser.y" /* yacc.c:1646  */
3872      {
3873    if (conf_parser_ctx.pass == 2)
3874 <    yy_aconf->modes |= UMODE_DEAF;
3874 >    block_state.modes.value |= UMODE_REJ;
3875   }
3876 + #line 3877 "conf_parser.c" /* yacc.c:1646  */
3877      break;
3878  
3879 <  case 156:
3880 < /* Line 1813 of yacc.c  */
4059 < #line 1115 "conf_parser.y"
3879 >  case 185:
3880 > #line 1215 "conf_parser.y" /* yacc.c:1646  */
3881      {
3882    if (conf_parser_ctx.pass == 2)
3883 <    yy_aconf->modes |= UMODE_DEBUG;
3883 >    block_state.modes.value |= UMODE_UNAUTH;
3884   }
3885 + #line 3886 "conf_parser.c" /* yacc.c:1646  */
3886      break;
3887  
3888 <  case 157:
3889 < /* Line 1813 of yacc.c  */
4068 < #line 1119 "conf_parser.y"
3888 >  case 186:
3889 > #line 1219 "conf_parser.y" /* yacc.c:1646  */
3890      {
3891    if (conf_parser_ctx.pass == 2)
3892 <    yy_aconf->modes |= UMODE_FULL;
3892 >    block_state.modes.value |= UMODE_SPY;
3893   }
3894 + #line 3895 "conf_parser.c" /* yacc.c:1646  */
3895      break;
3896  
3897 <  case 158:
3898 < /* Line 1813 of yacc.c  */
4077 < #line 1123 "conf_parser.y"
3897 >  case 187:
3898 > #line 1223 "conf_parser.y" /* yacc.c:1646  */
3899      {
3900    if (conf_parser_ctx.pass == 2)
3901 <    yy_aconf->modes |= UMODE_HIDDEN;
3901 >    block_state.modes.value |= UMODE_EXTERNAL;
3902   }
3903 + #line 3904 "conf_parser.c" /* yacc.c:1646  */
3904      break;
3905  
3906 <  case 159:
3907 < /* Line 1813 of yacc.c  */
4086 < #line 1127 "conf_parser.y"
3906 >  case 188:
3907 > #line 1227 "conf_parser.y" /* yacc.c:1646  */
3908      {
3909    if (conf_parser_ctx.pass == 2)
3910 <    yy_aconf->modes |= UMODE_SKILL;
3910 >    block_state.modes.value |= UMODE_OPERWALL;
3911   }
3912 + #line 3913 "conf_parser.c" /* yacc.c:1646  */
3913      break;
3914  
3915 <  case 160:
3916 < /* Line 1813 of yacc.c  */
4095 < #line 1131 "conf_parser.y"
3915 >  case 189:
3916 > #line 1231 "conf_parser.y" /* yacc.c:1646  */
3917      {
3918    if (conf_parser_ctx.pass == 2)
3919 <    yy_aconf->modes |= UMODE_NCHANGE;
3919 >    block_state.modes.value |= UMODE_SERVNOTICE;
3920   }
3921 + #line 3922 "conf_parser.c" /* yacc.c:1646  */
3922      break;
3923  
3924 <  case 161:
3925 < /* Line 1813 of yacc.c  */
4104 < #line 1135 "conf_parser.y"
3924 >  case 190:
3925 > #line 1235 "conf_parser.y" /* yacc.c:1646  */
3926      {
3927    if (conf_parser_ctx.pass == 2)
3928 <    yy_aconf->modes |= UMODE_REJ;
3928 >    block_state.modes.value |= UMODE_INVISIBLE;
3929   }
3930 + #line 3931 "conf_parser.c" /* yacc.c:1646  */
3931      break;
3932  
3933 <  case 162:
3934 < /* Line 1813 of yacc.c  */
4113 < #line 1139 "conf_parser.y"
3933 >  case 191:
3934 > #line 1239 "conf_parser.y" /* yacc.c:1646  */
3935      {
3936    if (conf_parser_ctx.pass == 2)
3937 <    yy_aconf->modes |= UMODE_UNAUTH;
3937 >    block_state.modes.value |= UMODE_WALLOP;
3938   }
3939 + #line 3940 "conf_parser.c" /* yacc.c:1646  */
3940      break;
3941  
3942 <  case 163:
3943 < /* Line 1813 of yacc.c  */
4122 < #line 1143 "conf_parser.y"
3942 >  case 192:
3943 > #line 1243 "conf_parser.y" /* yacc.c:1646  */
3944      {
3945    if (conf_parser_ctx.pass == 2)
3946 <    yy_aconf->modes |= UMODE_SPY;
3946 >    block_state.modes.value |= UMODE_SOFTCALLERID;
3947   }
3948 + #line 3949 "conf_parser.c" /* yacc.c:1646  */
3949      break;
3950  
3951 <  case 164:
3952 < /* Line 1813 of yacc.c  */
4131 < #line 1147 "conf_parser.y"
3951 >  case 193:
3952 > #line 1247 "conf_parser.y" /* yacc.c:1646  */
3953      {
3954    if (conf_parser_ctx.pass == 2)
3955 <    yy_aconf->modes |= UMODE_EXTERNAL;
3955 >    block_state.modes.value |= UMODE_CALLERID;
3956   }
3957 + #line 3958 "conf_parser.c" /* yacc.c:1646  */
3958      break;
3959  
3960 <  case 165:
3961 < /* Line 1813 of yacc.c  */
4140 < #line 1151 "conf_parser.y"
3960 >  case 194:
3961 > #line 1251 "conf_parser.y" /* yacc.c:1646  */
3962      {
3963    if (conf_parser_ctx.pass == 2)
3964 <    yy_aconf->modes |= UMODE_OPERWALL;
3964 >    block_state.modes.value |= UMODE_LOCOPS;
3965   }
3966 + #line 3967 "conf_parser.c" /* yacc.c:1646  */
3967      break;
3968  
3969 <  case 166:
3970 < /* Line 1813 of yacc.c  */
4149 < #line 1155 "conf_parser.y"
3969 >  case 195:
3970 > #line 1255 "conf_parser.y" /* yacc.c:1646  */
3971      {
3972    if (conf_parser_ctx.pass == 2)
3973 <    yy_aconf->modes |= UMODE_SERVNOTICE;
3973 >    block_state.modes.value |= UMODE_REGONLY;
3974   }
3975 + #line 3976 "conf_parser.c" /* yacc.c:1646  */
3976      break;
3977  
3978 <  case 167:
3979 < /* Line 1813 of yacc.c  */
4158 < #line 1159 "conf_parser.y"
3978 >  case 196:
3979 > #line 1259 "conf_parser.y" /* yacc.c:1646  */
3980      {
3981    if (conf_parser_ctx.pass == 2)
3982 <    yy_aconf->modes |= UMODE_INVISIBLE;
3982 >    block_state.modes.value |= UMODE_FARCONNECT;
3983   }
3984 + #line 3985 "conf_parser.c" /* yacc.c:1646  */
3985      break;
3986  
3987 <  case 168:
3988 < /* Line 1813 of yacc.c  */
4167 < #line 1163 "conf_parser.y"
3987 >  case 197:
3988 > #line 1265 "conf_parser.y" /* yacc.c:1646  */
3989      {
3990    if (conf_parser_ctx.pass == 2)
3991 <    yy_aconf->modes |= UMODE_WALLOP;
3991 >    block_state.port.value = 0;
3992   }
3993 + #line 3994 "conf_parser.c" /* yacc.c:1646  */
3994      break;
3995  
3996 <  case 169:
3997 < /* Line 1813 of yacc.c  */
4176 < #line 1167 "conf_parser.y"
3996 >  case 201:
3997 > #line 1272 "conf_parser.y" /* yacc.c:1646  */
3998      {
3999    if (conf_parser_ctx.pass == 2)
4000 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
4000 >    block_state.port.value |= OPER_FLAG_KILL_REMOTE;
4001   }
4002 + #line 4003 "conf_parser.c" /* yacc.c:1646  */
4003      break;
4004  
4005 <  case 170:
4006 < /* Line 1813 of yacc.c  */
4185 < #line 1171 "conf_parser.y"
4005 >  case 202:
4006 > #line 1276 "conf_parser.y" /* yacc.c:1646  */
4007      {
4008    if (conf_parser_ctx.pass == 2)
4009 <    yy_aconf->modes |= UMODE_CALLERID;
4009 >    block_state.port.value |= OPER_FLAG_KILL;
4010   }
4011 + #line 4012 "conf_parser.c" /* yacc.c:1646  */
4012      break;
4013  
4014 <  case 171:
4015 < /* Line 1813 of yacc.c  */
4194 < #line 1175 "conf_parser.y"
4014 >  case 203:
4015 > #line 1280 "conf_parser.y" /* yacc.c:1646  */
4016      {
4017    if (conf_parser_ctx.pass == 2)
4018 <    yy_aconf->modes |= UMODE_LOCOPS;
4018 >    block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
4019   }
4020 + #line 4021 "conf_parser.c" /* yacc.c:1646  */
4021      break;
4022  
4023 <  case 172:
4024 < /* Line 1813 of yacc.c  */
4203 < #line 1181 "conf_parser.y"
4023 >  case 204:
4024 > #line 1284 "conf_parser.y" /* yacc.c:1646  */
4025      {
4026    if (conf_parser_ctx.pass == 2)
4027 <    yy_aconf->port = 0;
4027 >    block_state.port.value |= OPER_FLAG_CONNECT;
4028   }
4029 + #line 4030 "conf_parser.c" /* yacc.c:1646  */
4030      break;
4031  
4032 <  case 176:
4033 < /* Line 1813 of yacc.c  */
4212 < #line 1188 "conf_parser.y"
4032 >  case 205:
4033 > #line 1288 "conf_parser.y" /* yacc.c:1646  */
4034      {
4035    if (conf_parser_ctx.pass == 2)
4036 <    yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4036 >    block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
4037   }
4038 + #line 4039 "conf_parser.c" /* yacc.c:1646  */
4039      break;
4040  
4041 <  case 177:
4042 < /* Line 1813 of yacc.c  */
4221 < #line 1192 "conf_parser.y"
4041 >  case 206:
4042 > #line 1292 "conf_parser.y" /* yacc.c:1646  */
4043      {
4044    if (conf_parser_ctx.pass == 2)
4045 <    yy_aconf->port |= OPER_FLAG_REMOTE;
4045 >    block_state.port.value |= OPER_FLAG_SQUIT;
4046   }
4047 + #line 4048 "conf_parser.c" /* yacc.c:1646  */
4048      break;
4049  
4050 <  case 178:
4051 < /* Line 1813 of yacc.c  */
4230 < #line 1196 "conf_parser.y"
4050 >  case 207:
4051 > #line 1296 "conf_parser.y" /* yacc.c:1646  */
4052      {
4053    if (conf_parser_ctx.pass == 2)
4054 <    yy_aconf->port |= OPER_FLAG_K;
4054 >    block_state.port.value |= OPER_FLAG_K;
4055   }
4056 + #line 4057 "conf_parser.c" /* yacc.c:1646  */
4057      break;
4058  
4059 <  case 179:
4060 < /* Line 1813 of yacc.c  */
4239 < #line 1200 "conf_parser.y"
4059 >  case 208:
4060 > #line 1300 "conf_parser.y" /* yacc.c:1646  */
4061      {
4062    if (conf_parser_ctx.pass == 2)
4063 <    yy_aconf->port |= OPER_FLAG_UNKLINE;
4063 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4064   }
4065 + #line 4066 "conf_parser.c" /* yacc.c:1646  */
4066      break;
4067  
4068 <  case 180:
4069 < /* Line 1813 of yacc.c  */
4248 < #line 1204 "conf_parser.y"
4068 >  case 209:
4069 > #line 1304 "conf_parser.y" /* yacc.c:1646  */
4070      {
4071    if (conf_parser_ctx.pass == 2)
4072 <    yy_aconf->port |= OPER_FLAG_DLINE;
4072 >    block_state.port.value |= OPER_FLAG_DLINE;
4073   }
4074 + #line 4075 "conf_parser.c" /* yacc.c:1646  */
4075      break;
4076  
4077 <  case 181:
4078 < /* Line 1813 of yacc.c  */
4257 < #line 1208 "conf_parser.y"
4077 >  case 210:
4078 > #line 1308 "conf_parser.y" /* yacc.c:1646  */
4079      {
4080    if (conf_parser_ctx.pass == 2)
4081 <    yy_aconf->port |= OPER_FLAG_UNDLINE;
4081 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4082   }
4083 + #line 4084 "conf_parser.c" /* yacc.c:1646  */
4084      break;
4085  
4086 <  case 182:
4087 < /* Line 1813 of yacc.c  */
4266 < #line 1212 "conf_parser.y"
4086 >  case 211:
4087 > #line 1312 "conf_parser.y" /* yacc.c:1646  */
4088      {
4089    if (conf_parser_ctx.pass == 2)
4090 <    yy_aconf->port |= OPER_FLAG_X;
4090 >    block_state.port.value |= OPER_FLAG_XLINE;
4091   }
4092 + #line 4093 "conf_parser.c" /* yacc.c:1646  */
4093      break;
4094  
4095 <  case 183:
4096 < /* Line 1813 of yacc.c  */
4275 < #line 1216 "conf_parser.y"
4095 >  case 212:
4096 > #line 1316 "conf_parser.y" /* yacc.c:1646  */
4097      {
4098    if (conf_parser_ctx.pass == 2)
4099 <    yy_aconf->port |= OPER_FLAG_GLINE;
4099 >    block_state.port.value |= OPER_FLAG_UNXLINE;
4100   }
4101 + #line 4102 "conf_parser.c" /* yacc.c:1646  */
4102      break;
4103  
4104 <  case 184:
4105 < /* Line 1813 of yacc.c  */
4284 < #line 1220 "conf_parser.y"
4104 >  case 213:
4105 > #line 1320 "conf_parser.y" /* yacc.c:1646  */
4106      {
4107    if (conf_parser_ctx.pass == 2)
4108 <    yy_aconf->port |= OPER_FLAG_DIE;
4108 >    block_state.port.value |= OPER_FLAG_GLINE;
4109   }
4110 + #line 4111 "conf_parser.c" /* yacc.c:1646  */
4111      break;
4112  
4113 <  case 185:
4114 < /* Line 1813 of yacc.c  */
4293 < #line 1224 "conf_parser.y"
4113 >  case 214:
4114 > #line 1324 "conf_parser.y" /* yacc.c:1646  */
4115      {
4116    if (conf_parser_ctx.pass == 2)
4117 <    yy_aconf->port |= OPER_FLAG_RESTART;
4117 >    block_state.port.value |= OPER_FLAG_DIE;
4118   }
4119 + #line 4120 "conf_parser.c" /* yacc.c:1646  */
4120      break;
4121  
4122 <  case 186:
4123 < /* Line 1813 of yacc.c  */
4302 < #line 1228 "conf_parser.y"
4122 >  case 215:
4123 > #line 1328 "conf_parser.y" /* yacc.c:1646  */
4124      {
4125    if (conf_parser_ctx.pass == 2)
4126 <    yy_aconf->port |= OPER_FLAG_REHASH;
4126 >    block_state.port.value |= OPER_FLAG_RESTART;
4127   }
4128 + #line 4129 "conf_parser.c" /* yacc.c:1646  */
4129      break;
4130  
4131 <  case 187:
4132 < /* Line 1813 of yacc.c  */
4311 < #line 1232 "conf_parser.y"
4131 >  case 216:
4132 > #line 1332 "conf_parser.y" /* yacc.c:1646  */
4133      {
4134    if (conf_parser_ctx.pass == 2)
4135 <    yy_aconf->port |= OPER_FLAG_ADMIN;
4135 >    block_state.port.value |= OPER_FLAG_REHASH;
4136   }
4137 + #line 4138 "conf_parser.c" /* yacc.c:1646  */
4138      break;
4139  
4140 <  case 188:
4141 < /* Line 1813 of yacc.c  */
4320 < #line 1236 "conf_parser.y"
4140 >  case 217:
4141 > #line 1336 "conf_parser.y" /* yacc.c:1646  */
4142      {
4143    if (conf_parser_ctx.pass == 2)
4144 <    yy_aconf->port |= OPER_FLAG_N;
4144 >    block_state.port.value |= OPER_FLAG_ADMIN;
4145   }
4146 + #line 4147 "conf_parser.c" /* yacc.c:1646  */
4147      break;
4148  
4149 <  case 189:
4150 < /* Line 1813 of yacc.c  */
4329 < #line 1240 "conf_parser.y"
4149 >  case 218:
4150 > #line 1340 "conf_parser.y" /* yacc.c:1646  */
4151      {
4152    if (conf_parser_ctx.pass == 2)
4153 <    yy_aconf->port |= OPER_FLAG_OPERWALL;
4153 >    block_state.port.value |= OPER_FLAG_OPERWALL;
4154   }
4155 + #line 4156 "conf_parser.c" /* yacc.c:1646  */
4156      break;
4157  
4158 <  case 190:
4159 < /* Line 1813 of yacc.c  */
4338 < #line 1244 "conf_parser.y"
4158 >  case 219:
4159 > #line 1344 "conf_parser.y" /* yacc.c:1646  */
4160      {
4161    if (conf_parser_ctx.pass == 2)
4162 <    yy_aconf->port |= OPER_FLAG_GLOBOPS;
4162 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4163   }
4164 + #line 4165 "conf_parser.c" /* yacc.c:1646  */
4165      break;
4166  
4167 <  case 191:
4168 < /* Line 1813 of yacc.c  */
4347 < #line 1248 "conf_parser.y"
4167 >  case 220:
4168 > #line 1348 "conf_parser.y" /* yacc.c:1646  */
4169      {
4170    if (conf_parser_ctx.pass == 2)
4171 <    yy_aconf->port |= OPER_FLAG_OPER_SPY;
4171 >    block_state.port.value |= OPER_FLAG_WALLOPS;
4172   }
4173 + #line 4174 "conf_parser.c" /* yacc.c:1646  */
4174      break;
4175  
4176 <  case 192:
4177 < /* Line 1813 of yacc.c  */
4356 < #line 1252 "conf_parser.y"
4176 >  case 221:
4177 > #line 1352 "conf_parser.y" /* yacc.c:1646  */
4178      {
4179    if (conf_parser_ctx.pass == 2)
4180 <    yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4180 >    block_state.port.value |= OPER_FLAG_LOCOPS;
4181   }
4182 + #line 4183 "conf_parser.c" /* yacc.c:1646  */
4183      break;
4184  
4185 <  case 193:
4186 < /* Line 1813 of yacc.c  */
4365 < #line 1256 "conf_parser.y"
4185 >  case 222:
4186 > #line 1356 "conf_parser.y" /* yacc.c:1646  */
4187      {
4188    if (conf_parser_ctx.pass == 2)
4189 <    yy_aconf->port |= OPER_FLAG_SET;
4189 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4190   }
4191 + #line 4192 "conf_parser.c" /* yacc.c:1646  */
4192      break;
4193  
4194 <  case 194:
4195 < /* Line 1813 of yacc.c  */
4374 < #line 1260 "conf_parser.y"
4194 >  case 223:
4195 > #line 1360 "conf_parser.y" /* yacc.c:1646  */
4196      {
4197    if (conf_parser_ctx.pass == 2)
4198 <    yy_aconf->port |= OPER_FLAG_MODULE;
4198 >    block_state.port.value |= OPER_FLAG_SET;
4199   }
4200 + #line 4201 "conf_parser.c" /* yacc.c:1646  */
4201      break;
4202  
4203 <  case 195:
4204 < /* Line 1813 of yacc.c  */
4383 < #line 1270 "conf_parser.y"
4203 >  case 224:
4204 > #line 1364 "conf_parser.y" /* yacc.c:1646  */
4205      {
4206 <  if (conf_parser_ctx.pass == 1)
4207 <  {
4387 <    yy_conf = make_conf_item(CLASS_TYPE);
4388 <    yy_class = map_to_conf(yy_conf);
4389 <  }
4206 >  if (conf_parser_ctx.pass == 2)
4207 >    block_state.port.value |= OPER_FLAG_MODULE;
4208   }
4209 + #line 4210 "conf_parser.c" /* yacc.c:1646  */
4210      break;
4211  
4212 <  case 196:
4213 < /* Line 1813 of yacc.c  */
4395 < #line 1277 "conf_parser.y"
4212 >  case 225:
4213 > #line 1374 "conf_parser.y" /* yacc.c:1646  */
4214      {
4215 <  if (conf_parser_ctx.pass == 1)
4216 <  {
4399 <    struct ConfItem *cconf = NULL;
4400 <    struct ClassItem *class = NULL;
4215 >  if (conf_parser_ctx.pass != 1)
4216 >    break;
4217  
4218 <    if (yy_class_name == NULL)
4403 <      delete_conf_item(yy_conf);
4404 <    else
4405 <    {
4406 <      cconf = find_exact_name_conf(CLASS_TYPE, NULL, yy_class_name, NULL, NULL);
4218 >  reset_block_state();
4219  
4220 <      if (cconf != NULL)                /* The class existed already */
4221 <      {
4222 <        int user_count = 0;
4220 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4221 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4222 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4223 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4224 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4225 > }
4226 > #line 4227 "conf_parser.c" /* yacc.c:1646  */
4227 >    break;
4228  
4229 <        rebuild_cidr_class(cconf, yy_class);
4229 >  case 226:
4230 > #line 1386 "conf_parser.y" /* yacc.c:1646  */
4231 >    {
4232 >  struct ClassItem *class = NULL;
4233  
4234 <        class = map_to_conf(cconf);
4234 >  if (conf_parser_ctx.pass != 1)
4235 >    break;
4236  
4237 <        user_count = class->curr_user_count;
4238 <        memcpy(class, yy_class, sizeof(*class));
4418 <        class->curr_user_count = user_count;
4419 <        class->active = 1;
4237 >  if (!block_state.class.buf[0])
4238 >    break;
4239  
4240 <        delete_conf_item(yy_conf);
4240 >  if (!(class = class_find(block_state.class.buf, 0)))
4241 >    class = class_make();
4242  
4243 <        MyFree(cconf->name);            /* Allows case change of class name */
4244 <        cconf->name = yy_class_name;
4245 <      }
4246 <      else      /* Brand new class */
4247 <      {
4248 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4249 <        yy_conf->name = yy_class_name;
4250 <        yy_class->active = 1;
4251 <      }
4252 <    }
4243 >  class->active = 1;
4244 >  MyFree(class->name);
4245 >  class->name = xstrdup(block_state.class.buf);
4246 >  class->ping_freq = block_state.ping_freq.value;
4247 >  class->max_perip = block_state.max_perip.value;
4248 >  class->con_freq = block_state.con_freq.value;
4249 >  class->max_total = block_state.max_total.value;
4250 >  class->max_global = block_state.max_global.value;
4251 >  class->max_local = block_state.max_local.value;
4252 >  class->max_ident = block_state.max_ident.value;
4253 >  class->max_sendq = block_state.max_sendq.value;
4254 >  class->max_recvq = block_state.max_recvq.value;
4255  
4256 <    yy_class_name = NULL;
4256 >  if (block_state.min_idle.value > block_state.max_idle.value)
4257 >  {
4258 >    block_state.min_idle.value = 0;
4259 >    block_state.max_idle.value = 0;
4260 >    block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4261    }
4262 +
4263 +  class->flags = block_state.flags.value;
4264 +  class->min_idle = block_state.min_idle.value;
4265 +  class->max_idle = block_state.max_idle.value;
4266 +
4267 +  if (class->number_per_cidr && block_state.number_per_cidr.value)
4268 +    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4269 +        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4270 +      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4271 +          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4272 +        rebuild_cidr_list(class);
4273 +
4274 +  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4275 +  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4276 +  class->number_per_cidr = block_state.number_per_cidr.value;
4277   }
4278 + #line 4279 "conf_parser.c" /* yacc.c:1646  */
4279      break;
4280  
4281 <  case 214:
4282 < /* Line 1813 of yacc.c  */
4441 < #line 1335 "conf_parser.y"
4281 >  case 246:
4282 > #line 1453 "conf_parser.y" /* yacc.c:1646  */
4283      {
4284    if (conf_parser_ctx.pass == 1)
4285 <  {
4445 <    MyFree(yy_class_name);
4446 <    DupString(yy_class_name, yylval.string);
4447 <  }
4285 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4286   }
4287 + #line 4288 "conf_parser.c" /* yacc.c:1646  */
4288      break;
4289  
4290 <  case 215:
4291 < /* Line 1813 of yacc.c  */
4453 < #line 1344 "conf_parser.y"
4290 >  case 247:
4291 > #line 1459 "conf_parser.y" /* yacc.c:1646  */
4292      {
4293    if (conf_parser_ctx.pass == 1)
4294 <    yy_class->ping_freq = (yyvsp[(3) - (4)].number);
4294 >    block_state.ping_freq.value = (yyvsp[-1].number);
4295   }
4296 + #line 4297 "conf_parser.c" /* yacc.c:1646  */
4297      break;
4298  
4299 <  case 216:
4300 < /* Line 1813 of yacc.c  */
4462 < #line 1350 "conf_parser.y"
4299 >  case 248:
4300 > #line 1465 "conf_parser.y" /* yacc.c:1646  */
4301      {
4302    if (conf_parser_ctx.pass == 1)
4303 <    yy_class->ping_warning = (yyvsp[(3) - (4)].number);
4303 >    block_state.max_perip.value = (yyvsp[-1].number);
4304   }
4305 + #line 4306 "conf_parser.c" /* yacc.c:1646  */
4306      break;
4307  
4308 <  case 217:
4309 < /* Line 1813 of yacc.c  */
4471 < #line 1356 "conf_parser.y"
4308 >  case 249:
4309 > #line 1471 "conf_parser.y" /* yacc.c:1646  */
4310      {
4311    if (conf_parser_ctx.pass == 1)
4312 <    yy_class->max_perip = (yyvsp[(3) - (4)].number);
4312 >    block_state.con_freq.value = (yyvsp[-1].number);
4313   }
4314 + #line 4315 "conf_parser.c" /* yacc.c:1646  */
4315      break;
4316  
4317 <  case 218:
4318 < /* Line 1813 of yacc.c  */
4480 < #line 1362 "conf_parser.y"
4317 >  case 250:
4318 > #line 1477 "conf_parser.y" /* yacc.c:1646  */
4319      {
4320    if (conf_parser_ctx.pass == 1)
4321 <    yy_class->con_freq = (yyvsp[(3) - (4)].number);
4321 >    block_state.max_total.value = (yyvsp[-1].number);
4322   }
4323 + #line 4324 "conf_parser.c" /* yacc.c:1646  */
4324      break;
4325  
4326 <  case 219:
4327 < /* Line 1813 of yacc.c  */
4489 < #line 1368 "conf_parser.y"
4326 >  case 251:
4327 > #line 1483 "conf_parser.y" /* yacc.c:1646  */
4328      {
4329    if (conf_parser_ctx.pass == 1)
4330 <    yy_class->max_total = (yyvsp[(3) - (4)].number);
4330 >    block_state.max_global.value = (yyvsp[-1].number);
4331   }
4332 + #line 4333 "conf_parser.c" /* yacc.c:1646  */
4333      break;
4334  
4335 <  case 220:
4336 < /* Line 1813 of yacc.c  */
4498 < #line 1374 "conf_parser.y"
4335 >  case 252:
4336 > #line 1489 "conf_parser.y" /* yacc.c:1646  */
4337      {
4338    if (conf_parser_ctx.pass == 1)
4339 <    yy_class->max_global = (yyvsp[(3) - (4)].number);
4339 >    block_state.max_local.value = (yyvsp[-1].number);
4340   }
4341 + #line 4342 "conf_parser.c" /* yacc.c:1646  */
4342      break;
4343  
4344 <  case 221:
4345 < /* Line 1813 of yacc.c  */
4507 < #line 1380 "conf_parser.y"
4344 >  case 253:
4345 > #line 1495 "conf_parser.y" /* yacc.c:1646  */
4346      {
4347    if (conf_parser_ctx.pass == 1)
4348 <    yy_class->max_local = (yyvsp[(3) - (4)].number);
4348 >    block_state.max_ident.value = (yyvsp[-1].number);
4349   }
4350 + #line 4351 "conf_parser.c" /* yacc.c:1646  */
4351      break;
4352  
4353 <  case 222:
4354 < /* Line 1813 of yacc.c  */
4516 < #line 1386 "conf_parser.y"
4353 >  case 254:
4354 > #line 1501 "conf_parser.y" /* yacc.c:1646  */
4355      {
4356    if (conf_parser_ctx.pass == 1)
4357 <    yy_class->max_ident = (yyvsp[(3) - (4)].number);
4357 >    block_state.max_sendq.value = (yyvsp[-1].number);
4358   }
4359 + #line 4360 "conf_parser.c" /* yacc.c:1646  */
4360      break;
4361  
4362 <  case 223:
4363 < /* Line 1813 of yacc.c  */
4525 < #line 1392 "conf_parser.y"
4362 >  case 255:
4363 > #line 1507 "conf_parser.y" /* yacc.c:1646  */
4364      {
4365    if (conf_parser_ctx.pass == 1)
4366 <    yy_class->max_sendq = (yyvsp[(3) - (4)].number);
4366 >    if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX)
4367 >      block_state.max_recvq.value = (yyvsp[-1].number);
4368   }
4369 + #line 4370 "conf_parser.c" /* yacc.c:1646  */
4370      break;
4371  
4372 <  case 224:
4373 < /* Line 1813 of yacc.c  */
4534 < #line 1398 "conf_parser.y"
4372 >  case 256:
4373 > #line 1514 "conf_parser.y" /* yacc.c:1646  */
4374      {
4375    if (conf_parser_ctx.pass == 1)
4376 <    if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4538 <      yy_class->max_recvq = (yyvsp[(3) - (4)].number);
4376 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number);
4377   }
4378 + #line 4379 "conf_parser.c" /* yacc.c:1646  */
4379      break;
4380  
4381 <  case 225:
4382 < /* Line 1813 of yacc.c  */
4544 < #line 1405 "conf_parser.y"
4381 >  case 257:
4382 > #line 1520 "conf_parser.y" /* yacc.c:1646  */
4383      {
4384    if (conf_parser_ctx.pass == 1)
4385 <    yy_class->cidr_bitlen_ipv4 = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4385 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number);
4386   }
4387 + #line 4388 "conf_parser.c" /* yacc.c:1646  */
4388      break;
4389  
4390 <  case 226:
4391 < /* Line 1813 of yacc.c  */
4553 < #line 1411 "conf_parser.y"
4390 >  case 258:
4391 > #line 1526 "conf_parser.y" /* yacc.c:1646  */
4392      {
4393    if (conf_parser_ctx.pass == 1)
4394 <    yy_class->cidr_bitlen_ipv6 = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4394 >    block_state.number_per_cidr.value = (yyvsp[-1].number);
4395   }
4396 + #line 4397 "conf_parser.c" /* yacc.c:1646  */
4397      break;
4398  
4399 <  case 227:
4400 < /* Line 1813 of yacc.c  */
4401 < #line 1417 "conf_parser.y"
4399 >  case 259:
4400 > #line 1532 "conf_parser.y" /* yacc.c:1646  */
4401 >    {
4402 >  if (conf_parser_ctx.pass != 1)
4403 >    break;
4404 >
4405 >  block_state.min_idle.value = (yyvsp[-1].number);
4406 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4407 > }
4408 > #line 4409 "conf_parser.c" /* yacc.c:1646  */
4409 >    break;
4410 >
4411 >  case 260:
4412 > #line 1541 "conf_parser.y" /* yacc.c:1646  */
4413 >    {
4414 >  if (conf_parser_ctx.pass != 1)
4415 >    break;
4416 >
4417 >  block_state.max_idle.value = (yyvsp[-1].number);
4418 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4419 > }
4420 > #line 4421 "conf_parser.c" /* yacc.c:1646  */
4421 >    break;
4422 >
4423 >  case 261:
4424 > #line 1550 "conf_parser.y" /* yacc.c:1646  */
4425      {
4426    if (conf_parser_ctx.pass == 1)
4427 <    yy_class->number_per_cidr = (yyvsp[(3) - (4)].number);
4427 >    block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4428   }
4429 + #line 4430 "conf_parser.c" /* yacc.c:1646  */
4430      break;
4431  
4432 <  case 228:
4433 < /* Line 1813 of yacc.c  */
4571 < #line 1426 "conf_parser.y"
4432 >  case 265:
4433 > #line 1557 "conf_parser.y" /* yacc.c:1646  */
4434      {
4435 <  if (conf_parser_ctx.pass == 2)
4436 <  {
4437 <    listener_address = NULL;
4438 <    listener_flags = 0;
4439 <  }
4435 >  if (conf_parser_ctx.pass == 1)
4436 >    block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4437 > }
4438 > #line 4439 "conf_parser.c" /* yacc.c:1646  */
4439 >    break;
4440 >
4441 >  case 266:
4442 > #line 1561 "conf_parser.y" /* yacc.c:1646  */
4443 >    {
4444 >  if (conf_parser_ctx.pass == 1)
4445 >    block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4446   }
4447 + #line 4448 "conf_parser.c" /* yacc.c:1646  */
4448      break;
4449  
4450 <  case 229:
4451 < /* Line 1813 of yacc.c  */
4583 < #line 1433 "conf_parser.y"
4450 >  case 267:
4451 > #line 1571 "conf_parser.y" /* yacc.c:1646  */
4452      {
4453    if (conf_parser_ctx.pass == 2)
4454 <  {
4587 <    MyFree(listener_address);
4588 <    listener_address = NULL;
4589 <  }
4454 >    reset_block_state();
4455   }
4456 + #line 4457 "conf_parser.c" /* yacc.c:1646  */
4457      break;
4458  
4459 <  case 230:
4460 < /* Line 1813 of yacc.c  */
4595 < #line 1442 "conf_parser.y"
4459 >  case 269:
4460 > #line 1577 "conf_parser.y" /* yacc.c:1646  */
4461      {
4462 <  listener_flags = 0;
4462 >  block_state.flags.value = 0;
4463   }
4464 + #line 4465 "conf_parser.c" /* yacc.c:1646  */
4465      break;
4466  
4467 <  case 234:
4468 < /* Line 1813 of yacc.c  */
4603 < #line 1448 "conf_parser.y"
4467 >  case 273:
4468 > #line 1583 "conf_parser.y" /* yacc.c:1646  */
4469      {
4470    if (conf_parser_ctx.pass == 2)
4471 <    listener_flags |= LISTENER_SSL;
4471 >    block_state.flags.value |= LISTENER_SSL;
4472   }
4473 + #line 4474 "conf_parser.c" /* yacc.c:1646  */
4474      break;
4475  
4476 <  case 235:
4477 < /* Line 1813 of yacc.c  */
4612 < #line 1452 "conf_parser.y"
4476 >  case 274:
4477 > #line 1587 "conf_parser.y" /* yacc.c:1646  */
4478      {
4479    if (conf_parser_ctx.pass == 2)
4480 <    listener_flags |= LISTENER_HIDDEN;
4480 >    block_state.flags.value |= LISTENER_HIDDEN;
4481   }
4482 + #line 4483 "conf_parser.c" /* yacc.c:1646  */
4483      break;
4484  
4485 <  case 236:
4486 < /* Line 1813 of yacc.c  */
4621 < #line 1456 "conf_parser.y"
4485 >  case 275:
4486 > #line 1591 "conf_parser.y" /* yacc.c:1646  */
4487      {
4488    if (conf_parser_ctx.pass == 2)
4489 <    listener_flags |= LISTENER_SERVER;
4489 >   block_state.flags.value |= LISTENER_SERVER;
4490   }
4491 + #line 4492 "conf_parser.c" /* yacc.c:1646  */
4492      break;
4493  
4494 <  case 244:
4495 < /* Line 1813 of yacc.c  */
4496 < #line 1466 "conf_parser.y"
4497 <    { listener_flags = 0; }
4494 >  case 283:
4495 > #line 1599 "conf_parser.y" /* yacc.c:1646  */
4496 >    { block_state.flags.value = 0; }
4497 > #line 4498 "conf_parser.c" /* yacc.c:1646  */
4498      break;
4499  
4500 <  case 248:
4501 < /* Line 1813 of yacc.c  */
4636 < #line 1471 "conf_parser.y"
4500 >  case 287:
4501 > #line 1604 "conf_parser.y" /* yacc.c:1646  */
4502      {
4503    if (conf_parser_ctx.pass == 2)
4504    {
4505 <    if ((listener_flags & LISTENER_SSL))
4505 >    if (block_state.flags.value & LISTENER_SSL)
4506   #ifdef HAVE_LIBCRYPTO
4507        if (!ServerInfo.server_ctx)
4508   #endif
4509        {
4510 <        yyerror("SSL not available - port closed");
4511 <        break;
4510 >        conf_error_report("SSL not available - port closed");
4511 >        break;
4512        }
4513 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4513 >    add_listener((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4514    }
4515   }
4516 + #line 4517 "conf_parser.c" /* yacc.c:1646  */
4517      break;
4518  
4519 <  case 249:
4520 < /* Line 1813 of yacc.c  */
4655 < #line 1485 "conf_parser.y"
4519 >  case 288:
4520 > #line 1618 "conf_parser.y" /* yacc.c:1646  */
4521      {
4522    if (conf_parser_ctx.pass == 2)
4523    {
4524 <    int i;
4660 <
4661 <    if ((listener_flags & LISTENER_SSL))
4524 >    if (block_state.flags.value & LISTENER_SSL)
4525   #ifdef HAVE_LIBCRYPTO
4526        if (!ServerInfo.server_ctx)
4527   #endif
4528        {
4529 <        yyerror("SSL not available - port closed");
4530 <        break;
4529 >        conf_error_report("SSL not available - port closed");
4530 >        break;
4531        }
4532  
4533 <    for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4534 <      add_listener(i, listener_address, listener_flags);
4533 >    for (int i = (yyvsp[-2].number); i <= (yyvsp[0].number); ++i)
4534 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4535    }
4536   }
4537 + #line 4538 "conf_parser.c" /* yacc.c:1646  */
4538      break;
4539  
4540 <  case 250:
4541 < /* Line 1813 of yacc.c  */
4678 < #line 1505 "conf_parser.y"
4540 >  case 289:
4541 > #line 1636 "conf_parser.y" /* yacc.c:1646  */
4542      {
4543    if (conf_parser_ctx.pass == 2)
4544 <  {
4682 <    MyFree(listener_address);
4683 <    DupString(listener_address, yylval.string);
4684 <  }
4544 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4545   }
4546 + #line 4547 "conf_parser.c" /* yacc.c:1646  */
4547      break;
4548  
4549 <  case 251:
4550 < /* Line 1813 of yacc.c  */
4690 < #line 1514 "conf_parser.y"
4549 >  case 290:
4550 > #line 1642 "conf_parser.y" /* yacc.c:1646  */
4551      {
4552    if (conf_parser_ctx.pass == 2)
4553 <  {
4694 <    MyFree(listener_address);
4695 <    DupString(listener_address, yylval.string);
4696 <  }
4553 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4554   }
4555 + #line 4556 "conf_parser.c" /* yacc.c:1646  */
4556      break;
4557  
4558 <  case 252:
4559 < /* Line 1813 of yacc.c  */
4702 < #line 1526 "conf_parser.y"
4558 >  case 291:
4559 > #line 1651 "conf_parser.y" /* yacc.c:1646  */
4560      {
4561    if (conf_parser_ctx.pass == 2)
4562 <  {
4706 <    yy_conf = make_conf_item(CLIENT_TYPE);
4707 <    yy_aconf = map_to_conf(yy_conf);
4708 <  }
4709 <  else
4710 <  {
4711 <    MyFree(class_name);
4712 <    class_name = NULL;
4713 <  }
4562 >    reset_block_state();
4563   }
4564 + #line 4565 "conf_parser.c" /* yacc.c:1646  */
4565      break;
4566  
4567 <  case 253:
4568 < /* Line 1813 of yacc.c  */
4719 < #line 1538 "conf_parser.y"
4720 <    {
4721 <  if (conf_parser_ctx.pass == 2)
4722 <  {
4723 <    struct CollectItem *yy_tmp = NULL;
4724 <    dlink_node *ptr = NULL, *next_ptr = NULL;
4725 <
4726 <    if (yy_aconf->user && yy_aconf->host)
4727 <    {
4728 <      conf_add_class_to_conf(yy_conf, class_name);
4729 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
4730 <    }
4731 <    else
4732 <      delete_conf_item(yy_conf);
4733 <
4734 <    /* copy over settings from first struct */
4735 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4567 >  case 292:
4568 > #line 1655 "conf_parser.y" /* yacc.c:1646  */
4569      {
4570 <      struct AccessItem *new_aconf;
4738 <      struct ConfItem *new_conf;
4739 <
4740 <      new_conf = make_conf_item(CLIENT_TYPE);
4741 <      new_aconf = map_to_conf(new_conf);
4742 <
4743 <      yy_tmp = ptr->data;
4570 >  dlink_node *ptr = NULL;
4571  
4572 <      assert(yy_tmp->user && yy_tmp->host);
4746 <
4747 <      if (yy_aconf->passwd != NULL)
4748 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4749 <      if (yy_conf->name != NULL)
4750 <        DupString(new_conf->name, yy_conf->name);
4751 <      if (yy_aconf->passwd != NULL)
4752 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4753 <
4754 <      new_aconf->flags = yy_aconf->flags;
4755 <      new_aconf->port  = yy_aconf->port;
4756 <
4757 <      DupString(new_aconf->user, yy_tmp->user);
4758 <      collapse(new_aconf->user);
4759 <
4760 <      DupString(new_aconf->host, yy_tmp->host);
4761 <      collapse(new_aconf->host);
4762 <
4763 <      conf_add_class_to_conf(new_conf, class_name);
4764 <      add_conf_by_address(CONF_CLIENT, new_aconf);
4765 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4766 <      free_collect_item(yy_tmp);
4767 <    }
4768 <
4769 <    MyFree(class_name);
4770 <    class_name = NULL;
4771 <    yy_conf = NULL;
4772 <    yy_aconf = NULL;
4773 <  }
4774 < }
4572 >  if (conf_parser_ctx.pass != 2)
4573      break;
4574  
4575 <  case 265:
4778 < /* Line 1813 of yacc.c  */
4779 < #line 1600 "conf_parser.y"
4780 <    {
4781 <  if (conf_parser_ctx.pass == 2)
4575 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4576    {
4577 <    struct CollectItem *yy_tmp = NULL;
4577 >    struct MaskItem *conf = NULL;
4578      struct split_nuh_item nuh;
4579  
4580 <    nuh.nuhmask  = yylval.string;
4580 >    nuh.nuhmask  = ptr->data;
4581      nuh.nickptr  = NULL;
4582 <    nuh.userptr  = userbuf;
4583 <    nuh.hostptr  = hostbuf;
4790 <
4582 >    nuh.userptr  = block_state.user.buf;
4583 >    nuh.hostptr  = block_state.host.buf;
4584      nuh.nicksize = 0;
4585 <    nuh.usersize = sizeof(userbuf);
4586 <    nuh.hostsize = sizeof(hostbuf);
4794 <
4585 >    nuh.usersize = sizeof(block_state.user.buf);
4586 >    nuh.hostsize = sizeof(block_state.host.buf);
4587      split_nuh(&nuh);
4588  
4589 <    if (yy_aconf->user == NULL)
4590 <    {
4591 <      DupString(yy_aconf->user, userbuf);
4800 <      DupString(yy_aconf->host, hostbuf);
4801 <    }
4802 <    else
4803 <    {
4804 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4589 >    conf        = conf_make(CONF_CLIENT);
4590 >    conf->user  = xstrdup(block_state.user.buf);
4591 >    conf->host  = xstrdup(block_state.host.buf);
4592  
4593 <      DupString(yy_tmp->user, userbuf);
4594 <      DupString(yy_tmp->host, hostbuf);
4593 >    if (block_state.rpass.buf[0])
4594 >      conf->passwd = xstrdup(block_state.rpass.buf);
4595 >    if (block_state.name.buf[0])
4596 >      conf->name = xstrdup(block_state.name.buf);
4597  
4598 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4599 <    }
4598 >    conf->flags = block_state.flags.value;
4599 >    conf->port  = block_state.port.value;
4600 >
4601 >    conf_add_class_to_conf(conf, block_state.class.buf);
4602 >    add_conf_by_address(CONF_CLIENT, conf);
4603    }
4604   }
4605 + #line 4606 "conf_parser.c" /* yacc.c:1646  */
4606      break;
4607  
4608 <  case 266:
4609 < /* Line 1813 of yacc.c  */
4817 < #line 1635 "conf_parser.y"
4608 >  case 304:
4609 > #line 1704 "conf_parser.y" /* yacc.c:1646  */
4610      {
4611    if (conf_parser_ctx.pass == 2)
4612 <  {
4613 <    /* be paranoid */
4614 <    if (yy_aconf->passwd != NULL)
4615 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4612 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4613 > }
4614 > #line 4615 "conf_parser.c" /* yacc.c:1646  */
4615 >    break;
4616  
4617 <    MyFree(yy_aconf->passwd);
4618 <    DupString(yy_aconf->passwd, yylval.string);
4619 <  }
4617 >  case 305:
4618 > #line 1710 "conf_parser.y" /* yacc.c:1646  */
4619 >    {
4620 >  if (conf_parser_ctx.pass == 2)
4621 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4622   }
4623 + #line 4624 "conf_parser.c" /* yacc.c:1646  */
4624      break;
4625  
4626 <  case 267:
4627 < /* Line 1813 of yacc.c  */
4833 < #line 1648 "conf_parser.y"
4626 >  case 306:
4627 > #line 1716 "conf_parser.y" /* yacc.c:1646  */
4628      {
4629    if (conf_parser_ctx.pass == 2)
4630 <  {
4837 <    MyFree(class_name);
4838 <    DupString(class_name, yylval.string);
4839 <  }
4630 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4631   }
4632 + #line 4633 "conf_parser.c" /* yacc.c:1646  */
4633      break;
4634  
4635 <  case 268:
4636 < /* Line 1813 of yacc.c  */
4845 < #line 1657 "conf_parser.y"
4635 >  case 307:
4636 > #line 1722 "conf_parser.y" /* yacc.c:1646  */
4637      {
4638    if (conf_parser_ctx.pass == 2)
4639    {
4640      if (yylval.number)
4641 <      SetConfEncrypted(yy_aconf);
4641 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4642      else
4643 <      ClearConfEncrypted(yy_aconf);
4643 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4644    }
4645   }
4646 + #line 4647 "conf_parser.c" /* yacc.c:1646  */
4647      break;
4648  
4649 <  case 269:
4650 < /* Line 1813 of yacc.c  */
4859 < #line 1668 "conf_parser.y"
4649 >  case 308:
4650 > #line 1733 "conf_parser.y" /* yacc.c:1646  */
4651      {
4652 +  if (conf_parser_ctx.pass == 2)
4653 +    block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4654   }
4655 + #line 4656 "conf_parser.c" /* yacc.c:1646  */
4656      break;
4657  
4658 <  case 273:
4659 < /* Line 1813 of yacc.c  */
4866 < #line 1673 "conf_parser.y"
4658 >  case 312:
4659 > #line 1740 "conf_parser.y" /* yacc.c:1646  */
4660      {
4661    if (conf_parser_ctx.pass == 2)
4662 <    yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
4662 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4663   }
4664 + #line 4665 "conf_parser.c" /* yacc.c:1646  */
4665      break;
4666  
4667 <  case 274:
4668 < /* Line 1813 of yacc.c  */
4875 < #line 1677 "conf_parser.y"
4667 >  case 313:
4668 > #line 1744 "conf_parser.y" /* yacc.c:1646  */
4669      {
4670    if (conf_parser_ctx.pass == 2)
4671 <    yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
4671 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4672   }
4673 + #line 4674 "conf_parser.c" /* yacc.c:1646  */
4674      break;
4675  
4676 <  case 275:
4677 < /* Line 1813 of yacc.c  */
4884 < #line 1681 "conf_parser.y"
4676 >  case 314:
4677 > #line 1748 "conf_parser.y" /* yacc.c:1646  */
4678      {
4679    if (conf_parser_ctx.pass == 2)
4680 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
4680 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4681   }
4682 + #line 4683 "conf_parser.c" /* yacc.c:1646  */
4683      break;
4684  
4685 <  case 276:
4686 < /* Line 1813 of yacc.c  */
4893 < #line 1685 "conf_parser.y"
4685 >  case 315:
4686 > #line 1752 "conf_parser.y" /* yacc.c:1646  */
4687      {
4688    if (conf_parser_ctx.pass == 2)
4689 <    yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
4689 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4690   }
4691 + #line 4692 "conf_parser.c" /* yacc.c:1646  */
4692      break;
4693  
4694 <  case 277:
4695 < /* Line 1813 of yacc.c  */
4902 < #line 1689 "conf_parser.y"
4694 >  case 316:
4695 > #line 1756 "conf_parser.y" /* yacc.c:1646  */
4696      {
4697    if (conf_parser_ctx.pass == 2)
4698 <    yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
4698 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4699   }
4700 + #line 4701 "conf_parser.c" /* yacc.c:1646  */
4701      break;
4702  
4703 <  case 278:
4704 < /* Line 1813 of yacc.c  */
4911 < #line 1693 "conf_parser.y"
4703 >  case 317:
4704 > #line 1760 "conf_parser.y" /* yacc.c:1646  */
4705      {
4706    if (conf_parser_ctx.pass == 2)
4707 <    yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
4707 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4708   }
4709 + #line 4710 "conf_parser.c" /* yacc.c:1646  */
4710      break;
4711  
4712 <  case 279:
4713 < /* Line 1813 of yacc.c  */
4920 < #line 1697 "conf_parser.y"
4712 >  case 318:
4713 > #line 1764 "conf_parser.y" /* yacc.c:1646  */
4714      {
4715    if (conf_parser_ctx.pass == 2)
4716 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
4716 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4717   }
4718 + #line 4719 "conf_parser.c" /* yacc.c:1646  */
4719      break;
4720  
4721 <  case 280:
4722 < /* Line 1813 of yacc.c  */
4929 < #line 1701 "conf_parser.y"
4721 >  case 319:
4722 > #line 1768 "conf_parser.y" /* yacc.c:1646  */
4723      {
4724    if (conf_parser_ctx.pass == 2)
4725 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
4725 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4726   }
4727 + #line 4728 "conf_parser.c" /* yacc.c:1646  */
4728      break;
4729  
4730 <  case 281:
4731 < /* Line 1813 of yacc.c  */
4938 < #line 1705 "conf_parser.y"
4730 >  case 320:
4731 > #line 1772 "conf_parser.y" /* yacc.c:1646  */
4732      {
4733    if (conf_parser_ctx.pass == 2)
4734 <    yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
4734 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
4735   }
4736 + #line 4737 "conf_parser.c" /* yacc.c:1646  */
4737      break;
4738  
4739 <  case 282:
4740 < /* Line 1813 of yacc.c  */
4947 < #line 1711 "conf_parser.y"
4739 >  case 321:
4740 > #line 1776 "conf_parser.y" /* yacc.c:1646  */
4741      {
4742    if (conf_parser_ctx.pass == 2)
4743 <  {
4744 <    MyFree(yy_conf->name);
4743 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4744 > }
4745 > #line 4746 "conf_parser.c" /* yacc.c:1646  */
4746 >    break;
4747  
4748 <    if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4749 <    {    
4955 <      DupString(yy_conf->name, yylval.string);
4956 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
4957 <    }
4958 <    else
4748 >  case 322:
4749 > #line 1782 "conf_parser.y" /* yacc.c:1646  */
4750      {
4751 <      ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4752 <      yy_conf->name = NULL;
4753 <    }
4751 >  if (conf_parser_ctx.pass != 2)
4752 >    break;
4753 >
4754 >  if (valid_hostname(yylval.string))
4755 >  {
4756 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4757 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4758    }
4759 +  else
4760 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4761   }
4762 + #line 4763 "conf_parser.c" /* yacc.c:1646  */
4763      break;
4764  
4765 <  case 283:
4766 < /* Line 1813 of yacc.c  */
4969 < #line 1730 "conf_parser.y"
4765 >  case 323:
4766 > #line 1796 "conf_parser.y" /* yacc.c:1646  */
4767      {
4768 <  if (conf_parser_ctx.pass == 2)
4769 <  {
4770 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4771 <    MyFree(yy_conf->name);
4772 <    DupString(yy_conf->name, yylval.string);
4976 <  }
4768 >  if (conf_parser_ctx.pass != 2)
4769 >    break;
4770 >
4771 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4772 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4773   }
4774 + #line 4775 "conf_parser.c" /* yacc.c:1646  */
4775      break;
4776  
4777 <  case 284:
4778 < /* Line 1813 of yacc.c  */
4982 < #line 1740 "conf_parser.y"
4777 >  case 324:
4778 > #line 1805 "conf_parser.y" /* yacc.c:1646  */
4779      {
4780 <  if (conf_parser_ctx.pass == 2)
4781 <  {
4782 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4783 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
4784 <  }
4780 >  if (conf_parser_ctx.pass != 2)
4781 >    break;
4782 >
4783 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4784 >  block_state.port.value = (yyvsp[-1].number);
4785   }
4786 + #line 4787 "conf_parser.c" /* yacc.c:1646  */
4787      break;
4788  
4789 <  case 285:
4790 < /* Line 1813 of yacc.c  */
4994 < #line 1753 "conf_parser.y"
4789 >  case 325:
4790 > #line 1818 "conf_parser.y" /* yacc.c:1646  */
4791      {
4792 <  if (conf_parser_ctx.pass == 2)
4793 <  {
4794 <    MyFree(resv_reason);
4795 <    resv_reason = NULL;
4796 <  }
4792 >  if (conf_parser_ctx.pass != 2)
4793 >    break;
4794 >
4795 >  reset_block_state();
4796 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4797   }
4798 + #line 4799 "conf_parser.c" /* yacc.c:1646  */
4799      break;
4800  
4801 <  case 286:
4802 < /* Line 1813 of yacc.c  */
5006 < #line 1760 "conf_parser.y"
4801 >  case 326:
4802 > #line 1825 "conf_parser.y" /* yacc.c:1646  */
4803      {
4804 <  if (conf_parser_ctx.pass == 2)
4805 <  {
4806 <    MyFree(resv_reason);
4807 <    resv_reason = NULL;
5012 <  }
4804 >  if (conf_parser_ctx.pass != 2)
4805 >    break;
4806 >
4807 >  create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4808   }
4809 + #line 4810 "conf_parser.c" /* yacc.c:1646  */
4810      break;
4811  
4812 <  case 293:
4813 < /* Line 1813 of yacc.c  */
5018 < #line 1772 "conf_parser.y"
4812 >  case 333:
4813 > #line 1836 "conf_parser.y" /* yacc.c:1646  */
4814      {
4815    if (conf_parser_ctx.pass == 2)
4816 <  {
5022 <    MyFree(resv_reason);
5023 <    DupString(resv_reason, yylval.string);
5024 <  }
4816 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4817   }
4818 + #line 4819 "conf_parser.c" /* yacc.c:1646  */
4819      break;
4820  
4821 <  case 294:
4822 < /* Line 1813 of yacc.c  */
5030 < #line 1781 "conf_parser.y"
4821 >  case 334:
4822 > #line 1842 "conf_parser.y" /* yacc.c:1646  */
4823      {
4824    if (conf_parser_ctx.pass == 2)
4825 <  {
5034 <    if (IsChanPrefix(*yylval.string))
5035 <    {
5036 <      char def_reason[] = "No reason";
5037 <
5038 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5039 <    }
5040 <  }
5041 <  /* ignore it for now.. but we really should make a warning if
5042 <   * its an erroneous name --fl_ */
4825 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4826   }
4827 + #line 4828 "conf_parser.c" /* yacc.c:1646  */
4828      break;
4829  
4830 <  case 295:
4831 < /* Line 1813 of yacc.c  */
5048 < #line 1796 "conf_parser.y"
4830 >  case 335:
4831 > #line 1848 "conf_parser.y" /* yacc.c:1646  */
4832      {
4833    if (conf_parser_ctx.pass == 2)
4834 <  {
5052 <    char def_reason[] = "No reason";
5053 <
5054 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5055 <  }
4834 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4835   }
4836 + #line 4837 "conf_parser.c" /* yacc.c:1646  */
4837      break;
4838  
4839 <  case 301:
4840 < /* Line 1813 of yacc.c  */
5061 < #line 1814 "conf_parser.y"
4839 >  case 341:
4840 > #line 1863 "conf_parser.y" /* yacc.c:1646  */
4841      {
4842 <  if (conf_parser_ctx.pass == 2)
4842 >  if (conf_parser_ctx.pass != 2)
4843 >    break;
4844 >
4845 >  if (valid_servname(yylval.string))
4846    {
4847 <    if (valid_servname(yylval.string))
4848 <    {
5067 <      yy_conf = make_conf_item(SERVICE_TYPE);
5068 <      DupString(yy_conf->name, yylval.string);
5069 <    }
4847 >    struct MaskItem *conf = conf_make(CONF_SERVICE);
4848 >    conf->name = xstrdup(yylval.string);
4849    }
4850   }
4851 + #line 4852 "conf_parser.c" /* yacc.c:1646  */
4852      break;
4853  
4854 <  case 302:
4855 < /* Line 1813 of yacc.c  */
5076 < #line 1829 "conf_parser.y"
4854 >  case 342:
4855 > #line 1878 "conf_parser.y" /* yacc.c:1646  */
4856      {
4857 <  if (conf_parser_ctx.pass == 2)
4858 <  {
4859 <    yy_conf = make_conf_item(ULINE_TYPE);
4860 <    yy_match_item = map_to_conf(yy_conf);
4861 <    yy_match_item->action = SHARED_ALL;
4862 <  }
4857 >  if (conf_parser_ctx.pass != 2)
4858 >    break;
4859 >
4860 >  reset_block_state();
4861 >
4862 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4863 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
4864 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4865 >  block_state.flags.value = SHARED_ALL;
4866   }
4867 + #line 4868 "conf_parser.c" /* yacc.c:1646  */
4868      break;
4869  
4870 <  case 303:
4871 < /* Line 1813 of yacc.c  */
5089 < #line 1837 "conf_parser.y"
4870 >  case 343:
4871 > #line 1889 "conf_parser.y" /* yacc.c:1646  */
4872      {
4873 <  if (conf_parser_ctx.pass == 2)
4874 <  {
4875 <    yy_conf = NULL;
4876 <  }
4873 >  struct MaskItem *conf = NULL;
4874 >
4875 >  if (conf_parser_ctx.pass != 2)
4876 >    break;
4877 >
4878 >  conf = conf_make(CONF_ULINE);
4879 >  conf->flags = block_state.flags.value;
4880 >  conf->name = xstrdup(block_state.name.buf);
4881 >  conf->user = xstrdup(block_state.user.buf);
4882 >  conf->host = xstrdup(block_state.host.buf);
4883   }
4884 + #line 4885 "conf_parser.c" /* yacc.c:1646  */
4885      break;
4886  
4887 <  case 310:
4888 < /* Line 1813 of yacc.c  */
5100 < #line 1848 "conf_parser.y"
4887 >  case 350:
4888 > #line 1906 "conf_parser.y" /* yacc.c:1646  */
4889      {
4890    if (conf_parser_ctx.pass == 2)
4891 <  {
5104 <    MyFree(yy_conf->name);
5105 <    DupString(yy_conf->name, yylval.string);
5106 <  }
4891 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4892   }
4893 + #line 4894 "conf_parser.c" /* yacc.c:1646  */
4894      break;
4895  
4896 <  case 311:
4897 < /* Line 1813 of yacc.c  */
5112 < #line 1857 "conf_parser.y"
4896 >  case 351:
4897 > #line 1912 "conf_parser.y" /* yacc.c:1646  */
4898      {
4899    if (conf_parser_ctx.pass == 2)
4900    {
# Line 5117 | Line 4902 | yyreduce:
4902  
4903      nuh.nuhmask  = yylval.string;
4904      nuh.nickptr  = NULL;
4905 <    nuh.userptr  = userbuf;
4906 <    nuh.hostptr  = hostbuf;
4905 >    nuh.userptr  = block_state.user.buf;
4906 >    nuh.hostptr  = block_state.host.buf;
4907  
4908      nuh.nicksize = 0;
4909 <    nuh.usersize = sizeof(userbuf);
4910 <    nuh.hostsize = sizeof(hostbuf);
4909 >    nuh.usersize = sizeof(block_state.user.buf);
4910 >    nuh.hostsize = sizeof(block_state.host.buf);
4911  
4912      split_nuh(&nuh);
5128
5129    DupString(yy_match_item->user, userbuf);
5130    DupString(yy_match_item->host, hostbuf);
4913    }
4914   }
4915 + #line 4916 "conf_parser.c" /* yacc.c:1646  */
4916      break;
4917  
4918 <  case 312:
4919 < /* Line 1813 of yacc.c  */
5137 < #line 1879 "conf_parser.y"
4918 >  case 352:
4919 > #line 1931 "conf_parser.y" /* yacc.c:1646  */
4920      {
4921    if (conf_parser_ctx.pass == 2)
4922 <    yy_match_item->action = 0;
4922 >    block_state.flags.value = 0;
4923   }
4924 + #line 4925 "conf_parser.c" /* yacc.c:1646  */
4925      break;
4926  
4927 <  case 316:
4928 < /* Line 1813 of yacc.c  */
5146 < #line 1886 "conf_parser.y"
4927 >  case 356:
4928 > #line 1938 "conf_parser.y" /* yacc.c:1646  */
4929      {
4930    if (conf_parser_ctx.pass == 2)
4931 <    yy_match_item->action |= SHARED_KLINE;
4931 >    block_state.flags.value |= SHARED_KLINE;
4932   }
4933 + #line 4934 "conf_parser.c" /* yacc.c:1646  */
4934      break;
4935  
4936 <  case 317:
4937 < /* Line 1813 of yacc.c  */
5155 < #line 1890 "conf_parser.y"
4936 >  case 357:
4937 > #line 1942 "conf_parser.y" /* yacc.c:1646  */
4938      {
4939    if (conf_parser_ctx.pass == 2)
4940 <    yy_match_item->action |= SHARED_UNKLINE;
4940 >    block_state.flags.value |= SHARED_UNKLINE;
4941   }
4942 + #line 4943 "conf_parser.c" /* yacc.c:1646  */
4943      break;
4944  
4945 <  case 318:
4946 < /* Line 1813 of yacc.c  */
5164 < #line 1894 "conf_parser.y"
4945 >  case 358:
4946 > #line 1946 "conf_parser.y" /* yacc.c:1646  */
4947      {
4948    if (conf_parser_ctx.pass == 2)
4949 <    yy_match_item->action |= SHARED_DLINE;
4949 >    block_state.flags.value |= SHARED_DLINE;
4950   }
4951 + #line 4952 "conf_parser.c" /* yacc.c:1646  */
4952      break;
4953  
4954 <  case 319:
4955 < /* Line 1813 of yacc.c  */
5173 < #line 1898 "conf_parser.y"
4954 >  case 359:
4955 > #line 1950 "conf_parser.y" /* yacc.c:1646  */
4956      {
4957    if (conf_parser_ctx.pass == 2)
4958 <    yy_match_item->action |= SHARED_UNDLINE;
4958 >    block_state.flags.value |= SHARED_UNDLINE;
4959   }
4960 + #line 4961 "conf_parser.c" /* yacc.c:1646  */
4961      break;
4962  
4963 <  case 320:
4964 < /* Line 1813 of yacc.c  */
5182 < #line 1902 "conf_parser.y"
4963 >  case 360:
4964 > #line 1954 "conf_parser.y" /* yacc.c:1646  */
4965      {
4966    if (conf_parser_ctx.pass == 2)
4967 <    yy_match_item->action |= SHARED_XLINE;
4967 >    block_state.flags.value |= SHARED_XLINE;
4968   }
4969 + #line 4970 "conf_parser.c" /* yacc.c:1646  */
4970      break;
4971  
4972 <  case 321:
4973 < /* Line 1813 of yacc.c  */
5191 < #line 1906 "conf_parser.y"
4972 >  case 361:
4973 > #line 1958 "conf_parser.y" /* yacc.c:1646  */
4974      {
4975    if (conf_parser_ctx.pass == 2)
4976 <    yy_match_item->action |= SHARED_UNXLINE;
4976 >    block_state.flags.value |= SHARED_UNXLINE;
4977   }
4978 + #line 4979 "conf_parser.c" /* yacc.c:1646  */
4979      break;
4980  
4981 <  case 322:
4982 < /* Line 1813 of yacc.c  */
5200 < #line 1910 "conf_parser.y"
4981 >  case 362:
4982 > #line 1962 "conf_parser.y" /* yacc.c:1646  */
4983      {
4984    if (conf_parser_ctx.pass == 2)
4985 <    yy_match_item->action |= SHARED_RESV;
4985 >    block_state.flags.value |= SHARED_RESV;
4986   }
4987 + #line 4988 "conf_parser.c" /* yacc.c:1646  */
4988      break;
4989  
4990 <  case 323:
4991 < /* Line 1813 of yacc.c  */
5209 < #line 1914 "conf_parser.y"
4990 >  case 363:
4991 > #line 1966 "conf_parser.y" /* yacc.c:1646  */
4992      {
4993    if (conf_parser_ctx.pass == 2)
4994 <    yy_match_item->action |= SHARED_UNRESV;
4994 >    block_state.flags.value |= SHARED_UNRESV;
4995   }
4996 + #line 4997 "conf_parser.c" /* yacc.c:1646  */
4997      break;
4998  
4999 <  case 324:
5000 < /* Line 1813 of yacc.c  */
5218 < #line 1918 "conf_parser.y"
4999 >  case 364:
5000 > #line 1970 "conf_parser.y" /* yacc.c:1646  */
5001      {
5002    if (conf_parser_ctx.pass == 2)
5003 <    yy_match_item->action |= SHARED_LOCOPS;
5003 >    block_state.flags.value |= SHARED_LOCOPS;
5004   }
5005 + #line 5006 "conf_parser.c" /* yacc.c:1646  */
5006      break;
5007  
5008 <  case 325:
5009 < /* Line 1813 of yacc.c  */
5227 < #line 1922 "conf_parser.y"
5008 >  case 365:
5009 > #line 1974 "conf_parser.y" /* yacc.c:1646  */
5010      {
5011    if (conf_parser_ctx.pass == 2)
5012 <    yy_match_item->action = SHARED_ALL;
5012 >    block_state.flags.value = SHARED_ALL;
5013   }
5014 + #line 5015 "conf_parser.c" /* yacc.c:1646  */
5015      break;
5016  
5017 <  case 326:
5018 < /* Line 1813 of yacc.c  */
5236 < #line 1931 "conf_parser.y"
5017 >  case 366:
5018 > #line 1983 "conf_parser.y" /* yacc.c:1646  */
5019      {
5020 <  if (conf_parser_ctx.pass == 2)
5021 <  {
5022 <    yy_conf = make_conf_item(CLUSTER_TYPE);
5023 <    yy_conf->flags = SHARED_ALL;
5024 <  }
5020 >  if (conf_parser_ctx.pass != 2)
5021 >    break;
5022 >
5023 >  reset_block_state();
5024 >
5025 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5026 >  block_state.flags.value = SHARED_ALL;
5027   }
5028 + #line 5029 "conf_parser.c" /* yacc.c:1646  */
5029      break;
5030  
5031 <  case 327:
5032 < /* Line 1813 of yacc.c  */
5248 < #line 1938 "conf_parser.y"
5031 >  case 367:
5032 > #line 1992 "conf_parser.y" /* yacc.c:1646  */
5033      {
5034 <  if (conf_parser_ctx.pass == 2)
5035 <  {
5036 <    if (yy_conf->name == NULL)
5037 <      DupString(yy_conf->name, "*");
5038 <    yy_conf = NULL;
5039 <  }
5034 >  struct MaskItem *conf = NULL;
5035 >
5036 >  if (conf_parser_ctx.pass != 2)
5037 >    break;
5038 >
5039 >  conf = conf_make(CONF_CLUSTER);
5040 >  conf->flags = block_state.flags.value;
5041 >  conf->name = xstrdup(block_state.name.buf);
5042   }
5043 + #line 5044 "conf_parser.c" /* yacc.c:1646  */
5044      break;
5045  
5046 <  case 333:
5047 < /* Line 1813 of yacc.c  */
5261 < #line 1951 "conf_parser.y"
5046 >  case 373:
5047 > #line 2007 "conf_parser.y" /* yacc.c:1646  */
5048      {
5049    if (conf_parser_ctx.pass == 2)
5050 <    DupString(yy_conf->name, yylval.string);
5050 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5051   }
5052 + #line 5053 "conf_parser.c" /* yacc.c:1646  */
5053      break;
5054  
5055 <  case 334:
5056 < /* Line 1813 of yacc.c  */
5270 < #line 1957 "conf_parser.y"
5055 >  case 374:
5056 > #line 2013 "conf_parser.y" /* yacc.c:1646  */
5057      {
5058    if (conf_parser_ctx.pass == 2)
5059 <    yy_conf->flags = 0;
5059 >    block_state.flags.value = 0;
5060   }
5061 + #line 5062 "conf_parser.c" /* yacc.c:1646  */
5062      break;
5063  
5064 <  case 338:
5065 < /* Line 1813 of yacc.c  */
5279 < #line 1964 "conf_parser.y"
5064 >  case 378:
5065 > #line 2020 "conf_parser.y" /* yacc.c:1646  */
5066      {
5067    if (conf_parser_ctx.pass == 2)
5068 <    yy_conf->flags |= SHARED_KLINE;
5068 >    block_state.flags.value |= SHARED_KLINE;
5069   }
5070 + #line 5071 "conf_parser.c" /* yacc.c:1646  */
5071      break;
5072  
5073 <  case 339:
5074 < /* Line 1813 of yacc.c  */
5288 < #line 1968 "conf_parser.y"
5073 >  case 379:
5074 > #line 2024 "conf_parser.y" /* yacc.c:1646  */
5075      {
5076    if (conf_parser_ctx.pass == 2)
5077 <    yy_conf->flags |= SHARED_UNKLINE;
5077 >    block_state.flags.value |= SHARED_UNKLINE;
5078   }
5079 + #line 5080 "conf_parser.c" /* yacc.c:1646  */
5080      break;
5081  
5082 <  case 340:
5083 < /* Line 1813 of yacc.c  */
5297 < #line 1972 "conf_parser.y"
5082 >  case 380:
5083 > #line 2028 "conf_parser.y" /* yacc.c:1646  */
5084      {
5085    if (conf_parser_ctx.pass == 2)
5086 <    yy_conf->flags |= SHARED_DLINE;
5086 >    block_state.flags.value |= SHARED_DLINE;
5087   }
5088 + #line 5089 "conf_parser.c" /* yacc.c:1646  */
5089      break;
5090  
5091 <  case 341:
5092 < /* Line 1813 of yacc.c  */
5306 < #line 1976 "conf_parser.y"
5091 >  case 381:
5092 > #line 2032 "conf_parser.y" /* yacc.c:1646  */
5093      {
5094    if (conf_parser_ctx.pass == 2)
5095 <    yy_conf->flags |= SHARED_UNDLINE;
5095 >    block_state.flags.value |= SHARED_UNDLINE;
5096   }
5097 + #line 5098 "conf_parser.c" /* yacc.c:1646  */
5098      break;
5099  
5100 <  case 342:
5101 < /* Line 1813 of yacc.c  */
5315 < #line 1980 "conf_parser.y"
5100 >  case 382:
5101 > #line 2036 "conf_parser.y" /* yacc.c:1646  */
5102      {
5103    if (conf_parser_ctx.pass == 2)
5104 <    yy_conf->flags |= SHARED_XLINE;
5104 >    block_state.flags.value |= SHARED_XLINE;
5105   }
5106 + #line 5107 "conf_parser.c" /* yacc.c:1646  */
5107      break;
5108  
5109 <  case 343:
5110 < /* Line 1813 of yacc.c  */
5324 < #line 1984 "conf_parser.y"
5109 >  case 383:
5110 > #line 2040 "conf_parser.y" /* yacc.c:1646  */
5111      {
5112    if (conf_parser_ctx.pass == 2)
5113 <    yy_conf->flags |= SHARED_UNXLINE;
5113 >    block_state.flags.value |= SHARED_UNXLINE;
5114   }
5115 + #line 5116 "conf_parser.c" /* yacc.c:1646  */
5116      break;
5117  
5118 <  case 344:
5119 < /* Line 1813 of yacc.c  */
5333 < #line 1988 "conf_parser.y"
5118 >  case 384:
5119 > #line 2044 "conf_parser.y" /* yacc.c:1646  */
5120      {
5121    if (conf_parser_ctx.pass == 2)
5122 <    yy_conf->flags |= SHARED_RESV;
5122 >    block_state.flags.value |= SHARED_RESV;
5123   }
5124 + #line 5125 "conf_parser.c" /* yacc.c:1646  */
5125      break;
5126  
5127 <  case 345:
5128 < /* Line 1813 of yacc.c  */
5342 < #line 1992 "conf_parser.y"
5127 >  case 385:
5128 > #line 2048 "conf_parser.y" /* yacc.c:1646  */
5129      {
5130    if (conf_parser_ctx.pass == 2)
5131 <    yy_conf->flags |= SHARED_UNRESV;
5131 >    block_state.flags.value |= SHARED_UNRESV;
5132   }
5133 + #line 5134 "conf_parser.c" /* yacc.c:1646  */
5134      break;
5135  
5136 <  case 346:
5137 < /* Line 1813 of yacc.c  */
5351 < #line 1996 "conf_parser.y"
5136 >  case 386:
5137 > #line 2052 "conf_parser.y" /* yacc.c:1646  */
5138      {
5139    if (conf_parser_ctx.pass == 2)
5140 <    yy_conf->flags |= SHARED_LOCOPS;
5140 >    block_state.flags.value |= SHARED_LOCOPS;
5141   }
5142 + #line 5143 "conf_parser.c" /* yacc.c:1646  */
5143      break;
5144  
5145 <  case 347:
5146 < /* Line 1813 of yacc.c  */
5360 < #line 2000 "conf_parser.y"
5145 >  case 387:
5146 > #line 2056 "conf_parser.y" /* yacc.c:1646  */
5147      {
5148    if (conf_parser_ctx.pass == 2)
5149 <    yy_conf->flags = SHARED_ALL;
5149 >    block_state.flags.value = SHARED_ALL;
5150   }
5151 + #line 5152 "conf_parser.c" /* yacc.c:1646  */
5152      break;
5153  
5154 <  case 348:
5155 < /* Line 1813 of yacc.c  */
5369 < #line 2009 "conf_parser.y"
5154 >  case 388:
5155 > #line 2065 "conf_parser.y" /* yacc.c:1646  */
5156      {
5371  if (conf_parser_ctx.pass == 2)
5372  {
5373    yy_conf = make_conf_item(SERVER_TYPE);
5374    yy_aconf = map_to_conf(yy_conf);
5157  
5158 <    /* defaults */
5159 <    yy_aconf->port = PORTNUM;
5160 <  }
5161 <  else
5162 <  {
5163 <    MyFree(class_name);
5382 <    class_name = NULL;
5383 <  }
5158 >  if (conf_parser_ctx.pass != 2)
5159 >    break;
5160 >
5161 >  reset_block_state();
5162 >  block_state.aftype.value = AF_INET;
5163 >  block_state.port.value = PORTNUM;
5164   }
5165 + #line 5166 "conf_parser.c" /* yacc.c:1646  */
5166      break;
5167  
5168 <  case 349:
5169 < /* Line 1813 of yacc.c  */
5389 < #line 2024 "conf_parser.y"
5168 >  case 389:
5169 > #line 2074 "conf_parser.y" /* yacc.c:1646  */
5170      {
5171 <  if (conf_parser_ctx.pass == 2)
5171 >  struct MaskItem *conf = NULL;
5172 >  struct addrinfo hints, *res;
5173 >
5174 >  if (conf_parser_ctx.pass != 2)
5175 >    break;
5176 >
5177 >  if (!block_state.name.buf[0] ||
5178 >      !block_state.host.buf[0])
5179 >    break;
5180 >
5181 >  if (!block_state.rpass.buf[0] ||
5182 >      !block_state.spass.buf[0])
5183 >    break;
5184 >
5185 >  if (has_wildcards(block_state.name.buf) ||
5186 >      has_wildcards(block_state.host.buf))
5187 >    break;
5188 >
5189 >  conf = conf_make(CONF_SERVER);
5190 >  conf->port = block_state.port.value;
5191 >  conf->flags = block_state.flags.value;
5192 >  conf->aftype = block_state.aftype.value;
5193 >  conf->host = xstrdup(block_state.host.buf);
5194 >  conf->name = xstrdup(block_state.name.buf);
5195 >  conf->passwd = xstrdup(block_state.rpass.buf);
5196 >  conf->spasswd = xstrdup(block_state.spass.buf);
5197 >
5198 >  if (block_state.cert.buf[0])
5199 >    conf->certfp = xstrdup(block_state.cert.buf);
5200 >
5201 >  if (block_state.ciph.buf[0])
5202 >    conf->cipher_list = xstrdup(block_state.ciph.buf);
5203 >
5204 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5205 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5206 >
5207 >  if (block_state.bind.buf[0])
5208    {
5209 <    if (yy_aconf->host && yy_aconf->passwd && yy_aconf->spasswd)
5210 <    {
5211 <      if (conf_add_server(yy_conf, class_name) == -1)
5212 <        delete_conf_item(yy_conf);
5213 <    }
5209 >    memset(&hints, 0, sizeof(hints));
5210 >
5211 >    hints.ai_family   = AF_UNSPEC;
5212 >    hints.ai_socktype = SOCK_STREAM;
5213 >    hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5214 >
5215 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5216 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5217      else
5218      {
5219 <      if (yy_conf->name != NULL)
5401 <      {
5402 <        if (yy_aconf->host == NULL)
5403 <          yyerror("Ignoring connect block -- missing host");
5404 <        else if (!yy_aconf->passwd || !yy_aconf->spasswd)
5405 <          yyerror("Ignoring connect block -- missing password");
5406 <      }
5219 >      assert(res);
5220  
5221 <      /* XXX
5222 <       * This fixes a try_connections() core (caused by invalid class_ptr
5223 <       * pointers) reported by metalrock. That's an ugly fix, but there
5224 <       * is currently no better way. The entire config subsystem needs an
5412 <       * rewrite ASAP. make_conf_item() shouldn't really add things onto
5413 <       * a doubly linked list immediately without any sanity checks!  -Michael
5414 <       */
5415 <      delete_conf_item(yy_conf);
5221 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5222 >      conf->bind.ss.ss_family = res->ai_family;
5223 >      conf->bind.ss_len = res->ai_addrlen;
5224 >      freeaddrinfo(res);
5225      }
5417
5418    MyFree(class_name);
5419    class_name = NULL;
5420    yy_conf = NULL;
5421    yy_aconf = NULL;
5226    }
5227 +
5228 +  conf_add_class_to_conf(conf, block_state.class.buf);
5229 +  lookup_confhost(conf);
5230   }
5231 + #line 5232 "conf_parser.c" /* yacc.c:1646  */
5232      break;
5233  
5234 <  case 366:
5235 < /* Line 1813 of yacc.c  */
5428 < #line 2068 "conf_parser.y"
5234 >  case 407:
5235 > #line 2154 "conf_parser.y" /* yacc.c:1646  */
5236      {
5237    if (conf_parser_ctx.pass == 2)
5238 <  {
5432 <    MyFree(yy_conf->name);
5433 <    DupString(yy_conf->name, yylval.string);
5434 <  }
5238 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5239   }
5240 + #line 5241 "conf_parser.c" /* yacc.c:1646  */
5241      break;
5242  
5243 <  case 367:
5244 < /* Line 1813 of yacc.c  */
5440 < #line 2077 "conf_parser.y"
5243 >  case 408:
5244 > #line 2160 "conf_parser.y" /* yacc.c:1646  */
5245      {
5246    if (conf_parser_ctx.pass == 2)
5247 <  {
5444 <    MyFree(yy_aconf->host);
5445 <    DupString(yy_aconf->host, yylval.string);
5446 <  }
5247 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5248   }
5249 + #line 5250 "conf_parser.c" /* yacc.c:1646  */
5250      break;
5251  
5252 <  case 368:
5253 < /* Line 1813 of yacc.c  */
5452 < #line 2086 "conf_parser.y"
5252 >  case 409:
5253 > #line 2166 "conf_parser.y" /* yacc.c:1646  */
5254      {
5255    if (conf_parser_ctx.pass == 2)
5256 <  {
5257 <    struct addrinfo hints, *res;
5258 <
5259 <    memset(&hints, 0, sizeof(hints));
5459 <
5460 <    hints.ai_family   = AF_UNSPEC;
5461 <    hints.ai_socktype = SOCK_STREAM;
5462 <    hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5256 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5257 > }
5258 > #line 5259 "conf_parser.c" /* yacc.c:1646  */
5259 >    break;
5260  
5261 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
5262 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
5466 <    else
5261 >  case 410:
5262 > #line 2172 "conf_parser.y" /* yacc.c:1646  */
5263      {
5264 <      assert(res != NULL);
5264 >  if (conf_parser_ctx.pass != 2)
5265 >    break;
5266  
5267 <      memcpy(&yy_aconf->bind, res->ai_addr, res->ai_addrlen);
5268 <      yy_aconf->bind.ss.ss_family = res->ai_family;
5269 <      yy_aconf->bind.ss_len = res->ai_addrlen;
5270 <      freeaddrinfo(res);
5271 <    }
5272 <  }
5267 >  if ((yyvsp[-1].string)[0] == ':')
5268 >    conf_error_report("Server passwords cannot begin with a colon");
5269 >  else if (strchr((yyvsp[-1].string), ' '))
5270 >    conf_error_report("Server passwords cannot contain spaces");
5271 >  else
5272 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5273   }
5274 + #line 5275 "conf_parser.c" /* yacc.c:1646  */
5275      break;
5276  
5277 <  case 369:
5278 < /* Line 1813 of yacc.c  */
5481 < #line 2112 "conf_parser.y"
5277 >  case 411:
5278 > #line 2185 "conf_parser.y" /* yacc.c:1646  */
5279      {
5280 <  if (conf_parser_ctx.pass == 2)
5281 <  {
5485 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5486 <      yyerror("Server passwords cannot begin with a colon");
5487 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5488 <      yyerror("Server passwords cannot contain spaces");
5489 <    else {
5490 <      if (yy_aconf->spasswd != NULL)
5491 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
5280 >  if (conf_parser_ctx.pass != 2)
5281 >    break;
5282  
5283 <      MyFree(yy_aconf->spasswd);
5284 <      DupString(yy_aconf->spasswd, yylval.string);
5285 <    }
5286 <  }
5283 >  if ((yyvsp[-1].string)[0] == ':')
5284 >    conf_error_report("Server passwords cannot begin with a colon");
5285 >  else if (strchr((yyvsp[-1].string), ' '))
5286 >    conf_error_report("Server passwords cannot contain spaces");
5287 >  else
5288 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5289   }
5290 + #line 5291 "conf_parser.c" /* yacc.c:1646  */
5291      break;
5292  
5293 <  case 370:
5294 < /* Line 1813 of yacc.c  */
5502 < #line 2130 "conf_parser.y"
5293 >  case 412:
5294 > #line 2198 "conf_parser.y" /* yacc.c:1646  */
5295      {
5296    if (conf_parser_ctx.pass == 2)
5297 <  {
5506 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5507 <      yyerror("Server passwords cannot begin with a colon");
5508 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5509 <      yyerror("Server passwords cannot contain spaces");
5510 <    else {
5511 <      if (yy_aconf->passwd != NULL)
5512 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5513 <
5514 <      MyFree(yy_aconf->passwd);
5515 <      DupString(yy_aconf->passwd, yylval.string);
5516 <    }
5517 <  }
5297 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5298   }
5299 + #line 5300 "conf_parser.c" /* yacc.c:1646  */
5300      break;
5301  
5302 <  case 371:
5303 < /* Line 1813 of yacc.c  */
5523 < #line 2148 "conf_parser.y"
5302 >  case 413:
5303 > #line 2204 "conf_parser.y" /* yacc.c:1646  */
5304      {
5305    if (conf_parser_ctx.pass == 2)
5306 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5306 >    block_state.port.value = (yyvsp[-1].number);
5307   }
5308 + #line 5309 "conf_parser.c" /* yacc.c:1646  */
5309      break;
5310  
5311 <  case 372:
5312 < /* Line 1813 of yacc.c  */
5532 < #line 2154 "conf_parser.y"
5311 >  case 414:
5312 > #line 2210 "conf_parser.y" /* yacc.c:1646  */
5313      {
5314    if (conf_parser_ctx.pass == 2)
5315 <    yy_aconf->aftype = AF_INET;
5315 >    block_state.aftype.value = AF_INET;
5316   }
5317 + #line 5318 "conf_parser.c" /* yacc.c:1646  */
5318      break;
5319  
5320 <  case 373:
5321 < /* Line 1813 of yacc.c  */
5541 < #line 2158 "conf_parser.y"
5320 >  case 415:
5321 > #line 2214 "conf_parser.y" /* yacc.c:1646  */
5322      {
5323   #ifdef IPV6
5324    if (conf_parser_ctx.pass == 2)
5325 <    yy_aconf->aftype = AF_INET6;
5325 >    block_state.aftype.value = AF_INET6;
5326   #endif
5327   }
5328 + #line 5329 "conf_parser.c" /* yacc.c:1646  */
5329      break;
5330  
5331 <  case 374:
5332 < /* Line 1813 of yacc.c  */
5552 < #line 2166 "conf_parser.y"
5331 >  case 416:
5332 > #line 2222 "conf_parser.y" /* yacc.c:1646  */
5333      {
5334 +  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5335   }
5336 + #line 5337 "conf_parser.c" /* yacc.c:1646  */
5337      break;
5338  
5339 <  case 378:
5340 < /* Line 1813 of yacc.c  */
5559 < #line 2171 "conf_parser.y"
5339 >  case 420:
5340 > #line 2228 "conf_parser.y" /* yacc.c:1646  */
5341      {
5342    if (conf_parser_ctx.pass == 2)
5343 <    SetConfAllowAutoConn(yy_aconf);
5343 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5344   }
5345 + #line 5346 "conf_parser.c" /* yacc.c:1646  */
5346      break;
5347  
5348 <  case 379:
5349 < /* Line 1813 of yacc.c  */
5568 < #line 2175 "conf_parser.y"
5348 >  case 421:
5349 > #line 2232 "conf_parser.y" /* yacc.c:1646  */
5350      {
5351    if (conf_parser_ctx.pass == 2)
5352 <    SetConfSSL(yy_aconf);
5352 >    block_state.flags.value |= CONF_FLAGS_SSL;
5353   }
5354 + #line 5355 "conf_parser.c" /* yacc.c:1646  */
5355      break;
5356  
5357 <  case 380:
5358 < /* Line 1813 of yacc.c  */
5577 < #line 2181 "conf_parser.y"
5357 >  case 422:
5358 > #line 2238 "conf_parser.y" /* yacc.c:1646  */
5359      {
5360    if (conf_parser_ctx.pass == 2)
5361    {
5362      if (yylval.number)
5363 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
5363 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5364      else
5365 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
5365 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5366    }
5367   }
5368 + #line 5369 "conf_parser.c" /* yacc.c:1646  */
5369      break;
5370  
5371 <  case 381:
5372 < /* Line 1813 of yacc.c  */
5591 < #line 2192 "conf_parser.y"
5371 >  case 423:
5372 > #line 2249 "conf_parser.y" /* yacc.c:1646  */
5373      {
5374    if (conf_parser_ctx.pass == 2)
5375 <  {
5595 <    char *mask;
5596 <
5597 <    DupString(mask, yylval.string);
5598 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->hub_list);
5599 <  }
5375 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5376   }
5377 + #line 5378 "conf_parser.c" /* yacc.c:1646  */
5378      break;
5379  
5380 <  case 382:
5381 < /* Line 1813 of yacc.c  */
5605 < #line 2203 "conf_parser.y"
5380 >  case 424:
5381 > #line 2255 "conf_parser.y" /* yacc.c:1646  */
5382      {
5383    if (conf_parser_ctx.pass == 2)
5384 <  {
5609 <    char *mask;
5610 <
5611 <    DupString(mask, yylval.string);
5612 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->leaf_list);
5613 <  }
5384 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5385   }
5386 + #line 5387 "conf_parser.c" /* yacc.c:1646  */
5387      break;
5388  
5389 <  case 383:
5390 < /* Line 1813 of yacc.c  */
5619 < #line 2214 "conf_parser.y"
5389 >  case 425:
5390 > #line 2261 "conf_parser.y" /* yacc.c:1646  */
5391      {
5392    if (conf_parser_ctx.pass == 2)
5393 <  {
5623 <    MyFree(class_name);
5624 <    DupString(class_name, yylval.string);
5625 <  }
5393 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5394   }
5395 + #line 5396 "conf_parser.c" /* yacc.c:1646  */
5396      break;
5397  
5398 <  case 384:
5399 < /* Line 1813 of yacc.c  */
5631 < #line 2223 "conf_parser.y"
5398 >  case 426:
5399 > #line 2267 "conf_parser.y" /* yacc.c:1646  */
5400      {
5401   #ifdef HAVE_LIBCRYPTO
5402    if (conf_parser_ctx.pass == 2)
5403 <  {
5636 <    MyFree(yy_aconf->cipher_list);
5637 <    DupString(yy_aconf->cipher_list, yylval.string);
5638 <  }
5403 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5404   #else
5405    if (conf_parser_ctx.pass == 2)
5406 <    yyerror("Ignoring connect::ciphers -- no OpenSSL support");
5406 >    conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5407   #endif
5408   }
5409 + #line 5410 "conf_parser.c" /* yacc.c:1646  */
5410      break;
5411  
5412 <  case 385:
5413 < /* Line 1813 of yacc.c  */
5648 < #line 2241 "conf_parser.y"
5412 >  case 427:
5413 > #line 2282 "conf_parser.y" /* yacc.c:1646  */
5414      {
5415    if (conf_parser_ctx.pass == 2)
5416 <  {
5652 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
5653 <    regex_ban = 0;
5654 <  }
5416 >    reset_block_state();
5417   }
5418 + #line 5419 "conf_parser.c" /* yacc.c:1646  */
5419      break;
5420  
5421 <  case 386:
5422 < /* Line 1813 of yacc.c  */
5660 < #line 2248 "conf_parser.y"
5661 <    {
5662 <  if (conf_parser_ctx.pass == 2)
5663 <  {
5664 <    if (userbuf[0] && hostbuf[0])
5421 >  case 428:
5422 > #line 2286 "conf_parser.y" /* yacc.c:1646  */
5423      {
5424 <      if (regex_ban)
5667 <      {
5668 < #ifdef HAVE_LIBPCRE
5669 <        void *exp_user = NULL;
5670 <        void *exp_host = NULL;
5671 <        const char *errptr = NULL;
5672 <
5673 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
5674 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
5675 <        {
5676 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
5677 <               errptr);
5678 <          break;
5679 <        }
5680 <
5681 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
5682 <        yy_aconf->regexuser = exp_user;
5683 <        yy_aconf->regexhost = exp_host;
5684 <
5685 <        SetConfMain(yy_aconf);
5686 <
5687 <        DupString(yy_aconf->user, userbuf);
5688 <        DupString(yy_aconf->host, hostbuf);
5424 >  struct MaskItem *conf = NULL;
5425  
5426 <        if (reasonbuf[0])
5691 <          DupString(yy_aconf->reason, reasonbuf);
5692 <        else
5693 <          DupString(yy_aconf->reason, "No reason");
5694 < #else
5695 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
5696 <        break;
5697 < #endif
5698 <      }
5699 <      else
5700 <      {
5701 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
5702 <
5703 <        SetConfMain(yy_aconf);
5704 <
5705 <        DupString(yy_aconf->user, userbuf);
5706 <        DupString(yy_aconf->host, hostbuf);
5707 <
5708 <        if (reasonbuf[0])
5709 <          DupString(yy_aconf->reason, reasonbuf);
5710 <        else
5711 <          DupString(yy_aconf->reason, "No reason");
5712 <        add_conf_by_address(CONF_KLINE, yy_aconf);
5713 <      }
5714 <    }
5715 <
5716 <    yy_aconf = NULL;
5717 <  }
5718 < }
5426 >  if (conf_parser_ctx.pass != 2)
5427      break;
5428  
5429 <  case 387:
5430 < /* Line 1813 of yacc.c  */
5723 < #line 2308 "conf_parser.y"
5724 <    {
5725 < }
5429 >  if (!block_state.user.buf[0] ||
5430 >      !block_state.host.buf[0])
5431      break;
5432  
5433 <  case 391:
5434 < /* Line 1813 of yacc.c  */
5435 < #line 2313 "conf_parser.y"
5436 <    {
5437 <  if (conf_parser_ctx.pass == 2)
5438 <    regex_ban = 1;
5433 >  conf = conf_make(CONF_KLINE);
5434 >  conf->user = xstrdup(block_state.user.buf);
5435 >  conf->host = xstrdup(block_state.host.buf);
5436 >
5437 >  if (block_state.rpass.buf[0])
5438 >    conf->reason = xstrdup(block_state.rpass.buf);
5439 >  else
5440 >    conf->reason = xstrdup(CONF_NOREASON);
5441 >  add_conf_by_address(CONF_KLINE, conf);
5442   }
5443 + #line 5444 "conf_parser.c" /* yacc.c:1646  */
5444      break;
5445  
5446 <  case 398:
5447 < /* Line 1813 of yacc.c  */
5739 < #line 2322 "conf_parser.y"
5446 >  case 434:
5447 > #line 2311 "conf_parser.y" /* yacc.c:1646  */
5448      {
5449 +
5450    if (conf_parser_ctx.pass == 2)
5451    {
5452      struct split_nuh_item nuh;
5453  
5454      nuh.nuhmask  = yylval.string;
5455      nuh.nickptr  = NULL;
5456 <    nuh.userptr  = userbuf;
5457 <    nuh.hostptr  = hostbuf;
5456 >    nuh.userptr  = block_state.user.buf;
5457 >    nuh.hostptr  = block_state.host.buf;
5458  
5459      nuh.nicksize = 0;
5460 <    nuh.usersize = sizeof(userbuf);
5461 <    nuh.hostsize = sizeof(hostbuf);
5460 >    nuh.usersize = sizeof(block_state.user.buf);
5461 >    nuh.hostsize = sizeof(block_state.host.buf);
5462  
5463      split_nuh(&nuh);
5464    }
5465   }
5466 + #line 5467 "conf_parser.c" /* yacc.c:1646  */
5467      break;
5468  
5469 <  case 399:
5470 < /* Line 1813 of yacc.c  */
5761 < #line 2341 "conf_parser.y"
5469 >  case 435:
5470 > #line 2331 "conf_parser.y" /* yacc.c:1646  */
5471      {
5472    if (conf_parser_ctx.pass == 2)
5473 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5473 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5474   }
5475 + #line 5476 "conf_parser.c" /* yacc.c:1646  */
5476      break;
5477  
5478 <  case 400:
5479 < /* Line 1813 of yacc.c  */
5770 < #line 2350 "conf_parser.y"
5478 >  case 436:
5479 > #line 2340 "conf_parser.y" /* yacc.c:1646  */
5480      {
5481    if (conf_parser_ctx.pass == 2)
5482 <    hostbuf[0] = reasonbuf[0] = '\0';
5482 >    reset_block_state();
5483   }
5484 + #line 5485 "conf_parser.c" /* yacc.c:1646  */
5485      break;
5486  
5487 <  case 401:
5488 < /* Line 1813 of yacc.c  */
5779 < #line 2354 "conf_parser.y"
5487 >  case 437:
5488 > #line 2344 "conf_parser.y" /* yacc.c:1646  */
5489      {
5490 <  if (conf_parser_ctx.pass == 2)
5490 >  struct MaskItem *conf = NULL;
5491 >
5492 >  if (conf_parser_ctx.pass != 2)
5493 >    break;
5494 >
5495 >  if (!block_state.addr.buf[0])
5496 >    break;
5497 >
5498 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5499    {
5500 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
5501 <    {
5785 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
5786 <      DupString(yy_aconf->host, hostbuf);
5787 <      SetConfMain(yy_aconf);
5500 >    conf = conf_make(CONF_DLINE);
5501 >    conf->host = xstrdup(block_state.addr.buf);
5502  
5503 <      if (reasonbuf[0])
5504 <        DupString(yy_aconf->reason, reasonbuf);
5505 <      else
5506 <        DupString(yy_aconf->reason, "No reason");
5507 <      add_conf_by_address(CONF_DLINE, yy_aconf);
5794 <      yy_aconf = NULL;
5795 <    }
5503 >    if (block_state.rpass.buf[0])
5504 >      conf->reason = xstrdup(block_state.rpass.buf);
5505 >    else
5506 >      conf->reason = xstrdup(CONF_NOREASON);
5507 >    add_conf_by_address(CONF_DLINE, conf);
5508    }
5509   }
5510 + #line 5511 "conf_parser.c" /* yacc.c:1646  */
5511      break;
5512  
5513 <  case 407:
5514 < /* Line 1813 of yacc.c  */
5802 < #line 2377 "conf_parser.y"
5513 >  case 443:
5514 > #line 2370 "conf_parser.y" /* yacc.c:1646  */
5515      {
5516    if (conf_parser_ctx.pass == 2)
5517 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5517 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5518   }
5519 + #line 5520 "conf_parser.c" /* yacc.c:1646  */
5520      break;
5521  
5522 <  case 408:
5523 < /* Line 1813 of yacc.c  */
5811 < #line 2383 "conf_parser.y"
5522 >  case 444:
5523 > #line 2376 "conf_parser.y" /* yacc.c:1646  */
5524      {
5525    if (conf_parser_ctx.pass == 2)
5526 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5526 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5527   }
5528 + #line 5529 "conf_parser.c" /* yacc.c:1646  */
5529      break;
5530  
5531 <  case 414:
5532 < /* Line 1813 of yacc.c  */
5820 < #line 2397 "conf_parser.y"
5531 >  case 450:
5532 > #line 2390 "conf_parser.y" /* yacc.c:1646  */
5533      {
5534    if (conf_parser_ctx.pass == 2)
5535    {
5536      if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5537      {
5538 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5539 <      DupString(yy_aconf->host, yylval.string);
5538 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5539 >      conf->host = xstrdup(yylval.string);
5540  
5541 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
5830 <      yy_aconf = NULL;
5541 >      add_conf_by_address(CONF_EXEMPT, conf);
5542      }
5543    }
5544   }
5545 + #line 5546 "conf_parser.c" /* yacc.c:1646  */
5546      break;
5547  
5548 <  case 415:
5549 < /* Line 1813 of yacc.c  */
5838 < #line 2415 "conf_parser.y"
5548 >  case 451:
5549 > #line 2407 "conf_parser.y" /* yacc.c:1646  */
5550      {
5551    if (conf_parser_ctx.pass == 2)
5552 <  {
5842 <    regex_ban = 0;
5843 <    reasonbuf[0] = gecos_name[0] = '\0';
5844 <  }
5552 >    reset_block_state();
5553   }
5554 + #line 5555 "conf_parser.c" /* yacc.c:1646  */
5555      break;
5556  
5557 <  case 416:
5558 < /* Line 1813 of yacc.c  */
5850 < #line 2422 "conf_parser.y"
5851 <    {
5852 <  if (conf_parser_ctx.pass == 2)
5853 <  {
5854 <    if (gecos_name[0])
5557 >  case 452:
5558 > #line 2411 "conf_parser.y" /* yacc.c:1646  */
5559      {
5560 <      if (regex_ban)
5857 <      {
5858 < #ifdef HAVE_LIBPCRE
5859 <        void *exp_p = NULL;
5860 <        const char *errptr = NULL;
5861 <
5862 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
5863 <        {
5864 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
5865 <               errptr);
5866 <          break;
5867 <        }
5868 <
5869 <        yy_conf = make_conf_item(RXLINE_TYPE);
5870 <        yy_conf->regexpname = exp_p;
5871 < #else
5872 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
5873 <        break;
5874 < #endif
5875 <      }
5876 <      else
5877 <        yy_conf = make_conf_item(XLINE_TYPE);
5560 >  struct MaskItem *conf = NULL;
5561  
5562 <      SetConfMain(yy_conf);
5563 <      yy_match_item = map_to_conf(yy_conf);
5881 <      DupString(yy_conf->name, gecos_name);
5562 >  if (conf_parser_ctx.pass != 2)
5563 >    break;
5564  
5565 <      if (reasonbuf[0])
5884 <        DupString(yy_match_item->reason, reasonbuf);
5885 <      else
5886 <        DupString(yy_match_item->reason, "No reason");
5887 <    }
5888 <  }
5889 < }
5565 >  if (!block_state.name.buf[0])
5566      break;
5567  
5568 <  case 417:
5569 < /* Line 1813 of yacc.c  */
5570 < #line 2463 "conf_parser.y"
5571 <    {
5568 >  conf = conf_make(CONF_XLINE);
5569 >  conf->name = xstrdup(block_state.name.buf);
5570 >
5571 >  if (block_state.rpass.buf[0])
5572 >    conf->reason = xstrdup(block_state.rpass.buf);
5573 >  else
5574 >    conf->reason = xstrdup(CONF_NOREASON);
5575   }
5576 + #line 5577 "conf_parser.c" /* yacc.c:1646  */
5577      break;
5578  
5579 <  case 421:
5580 < /* Line 1813 of yacc.c  */
5901 < #line 2468 "conf_parser.y"
5579 >  case 458:
5580 > #line 2433 "conf_parser.y" /* yacc.c:1646  */
5581      {
5582    if (conf_parser_ctx.pass == 2)
5583 <    regex_ban = 1;
5583 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5584   }
5585 + #line 5586 "conf_parser.c" /* yacc.c:1646  */
5586      break;
5587  
5588 <  case 428:
5589 < /* Line 1813 of yacc.c  */
5910 < #line 2477 "conf_parser.y"
5588 >  case 459:
5589 > #line 2439 "conf_parser.y" /* yacc.c:1646  */
5590      {
5591    if (conf_parser_ctx.pass == 2)
5592 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5592 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5593   }
5594 + #line 5595 "conf_parser.c" /* yacc.c:1646  */
5595      break;
5596  
5597 <  case 429:
5598 < /* Line 1813 of yacc.c  */
5919 < #line 2483 "conf_parser.y"
5597 >  case 513:
5598 > #line 2504 "conf_parser.y" /* yacc.c:1646  */
5599      {
5600 <  if (conf_parser_ctx.pass == 2)
5922 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5600 >  ConfigFileEntry.max_watch = (yyvsp[-1].number);
5601   }
5602 + #line 5603 "conf_parser.c" /* yacc.c:1646  */
5603      break;
5604  
5605 <  case 483:
5606 < /* Line 1813 of yacc.c  */
5928 < #line 2528 "conf_parser.y"
5605 >  case 514:
5606 > #line 2509 "conf_parser.y" /* yacc.c:1646  */
5607      {
5608 <  ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5608 >  if (conf_parser_ctx.pass == 2)
5609 >    ConfigFileEntry.cycle_on_host_change = yylval.number;
5610   }
5611 + #line 5612 "conf_parser.c" /* yacc.c:1646  */
5612      break;
5613  
5614 <  case 484:
5615 < /* Line 1813 of yacc.c  */
5936 < #line 2533 "conf_parser.y"
5614 >  case 515:
5615 > #line 2515 "conf_parser.y" /* yacc.c:1646  */
5616      {
5617    if (conf_parser_ctx.pass == 2)
5618      ConfigFileEntry.glines = yylval.number;
5619   }
5620 + #line 5621 "conf_parser.c" /* yacc.c:1646  */
5621      break;
5622  
5623 <  case 485:
5624 < /* Line 1813 of yacc.c  */
5945 < #line 2539 "conf_parser.y"
5623 >  case 516:
5624 > #line 2521 "conf_parser.y" /* yacc.c:1646  */
5625      {
5626    if (conf_parser_ctx.pass == 2)
5627 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5627 >    ConfigFileEntry.gline_time = (yyvsp[-1].number);
5628   }
5629 + #line 5630 "conf_parser.c" /* yacc.c:1646  */
5630      break;
5631  
5632 <  case 486:
5633 < /* Line 1813 of yacc.c  */
5954 < #line 2545 "conf_parser.y"
5632 >  case 517:
5633 > #line 2527 "conf_parser.y" /* yacc.c:1646  */
5634      {
5635    if (conf_parser_ctx.pass == 2)
5636 <    ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5636 >    ConfigFileEntry.gline_request_time = (yyvsp[-1].number);
5637   }
5638 + #line 5639 "conf_parser.c" /* yacc.c:1646  */
5639      break;
5640  
5641 <  case 487:
5642 < /* Line 1813 of yacc.c  */
5963 < #line 2551 "conf_parser.y"
5641 >  case 518:
5642 > #line 2533 "conf_parser.y" /* yacc.c:1646  */
5643      {
5644 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5644 >  ConfigFileEntry.gline_min_cidr = (yyvsp[-1].number);
5645   }
5646 + #line 5647 "conf_parser.c" /* yacc.c:1646  */
5647      break;
5648  
5649 <  case 488:
5650 < /* Line 1813 of yacc.c  */
5971 < #line 2556 "conf_parser.y"
5649 >  case 519:
5650 > #line 2538 "conf_parser.y" /* yacc.c:1646  */
5651      {
5652 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5652 >  ConfigFileEntry.gline_min_cidr6 = (yyvsp[-1].number);
5653   }
5654 + #line 5655 "conf_parser.c" /* yacc.c:1646  */
5655      break;
5656  
5657 <  case 489:
5658 < /* Line 1813 of yacc.c  */
5979 < #line 2561 "conf_parser.y"
5657 >  case 520:
5658 > #line 2543 "conf_parser.y" /* yacc.c:1646  */
5659      {
5660    ConfigFileEntry.tkline_expire_notices = yylval.number;
5661   }
5662 + #line 5663 "conf_parser.c" /* yacc.c:1646  */
5663      break;
5664  
5665 <  case 490:
5666 < /* Line 1813 of yacc.c  */
5987 < #line 2566 "conf_parser.y"
5665 >  case 521:
5666 > #line 2548 "conf_parser.y" /* yacc.c:1646  */
5667      {
5668 <  ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5668 >  ConfigFileEntry.kill_chase_time_limit = (yyvsp[-1].number);
5669   }
5670 + #line 5671 "conf_parser.c" /* yacc.c:1646  */
5671      break;
5672  
5673 <  case 491:
5674 < /* Line 1813 of yacc.c  */
5995 < #line 2571 "conf_parser.y"
5673 >  case 522:
5674 > #line 2553 "conf_parser.y" /* yacc.c:1646  */
5675      {
5676    ConfigFileEntry.hide_spoof_ips = yylval.number;
5677   }
5678 + #line 5679 "conf_parser.c" /* yacc.c:1646  */
5679      break;
5680  
5681 <  case 492:
5682 < /* Line 1813 of yacc.c  */
6003 < #line 2576 "conf_parser.y"
5681 >  case 523:
5682 > #line 2558 "conf_parser.y" /* yacc.c:1646  */
5683      {
5684    ConfigFileEntry.ignore_bogus_ts = yylval.number;
5685   }
5686 + #line 5687 "conf_parser.c" /* yacc.c:1646  */
5687      break;
5688  
5689 <  case 493:
5690 < /* Line 1813 of yacc.c  */
6011 < #line 2581 "conf_parser.y"
6012 <    {
6013 <  ConfigFileEntry.disable_remote = yylval.number;
6014 < }
6015 <    break;
6016 <
6017 <  case 494:
6018 < /* Line 1813 of yacc.c  */
6019 < #line 2586 "conf_parser.y"
5689 >  case 524:
5690 > #line 2563 "conf_parser.y" /* yacc.c:1646  */
5691      {
5692    ConfigFileEntry.failed_oper_notice = yylval.number;
5693   }
5694 + #line 5695 "conf_parser.c" /* yacc.c:1646  */
5695      break;
5696  
5697 <  case 495:
5698 < /* Line 1813 of yacc.c  */
6027 < #line 2591 "conf_parser.y"
5697 >  case 525:
5698 > #line 2568 "conf_parser.y" /* yacc.c:1646  */
5699      {
5700    ConfigFileEntry.anti_nick_flood = yylval.number;
5701   }
5702 + #line 5703 "conf_parser.c" /* yacc.c:1646  */
5703      break;
5704  
5705 <  case 496:
5706 < /* Line 1813 of yacc.c  */
6035 < #line 2596 "conf_parser.y"
5705 >  case 526:
5706 > #line 2573 "conf_parser.y" /* yacc.c:1646  */
5707      {
5708 <  ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5708 >  ConfigFileEntry.max_nick_time = (yyvsp[-1].number);
5709   }
5710 + #line 5711 "conf_parser.c" /* yacc.c:1646  */
5711      break;
5712  
5713 <  case 497:
5714 < /* Line 1813 of yacc.c  */
6043 < #line 2601 "conf_parser.y"
5713 >  case 527:
5714 > #line 2578 "conf_parser.y" /* yacc.c:1646  */
5715      {
5716 <  ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5716 >  ConfigFileEntry.max_nick_changes = (yyvsp[-1].number);
5717   }
5718 + #line 5719 "conf_parser.c" /* yacc.c:1646  */
5719      break;
5720  
5721 <  case 498:
5722 < /* Line 1813 of yacc.c  */
6051 < #line 2606 "conf_parser.y"
5721 >  case 528:
5722 > #line 2583 "conf_parser.y" /* yacc.c:1646  */
5723      {
5724 <  ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5724 >  ConfigFileEntry.max_accept = (yyvsp[-1].number);
5725   }
5726 + #line 5727 "conf_parser.c" /* yacc.c:1646  */
5727      break;
5728  
5729 <  case 499:
5730 < /* Line 1813 of yacc.c  */
6059 < #line 2611 "conf_parser.y"
5729 >  case 529:
5730 > #line 2588 "conf_parser.y" /* yacc.c:1646  */
5731      {
5732 <  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5732 >  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[-1].number);
5733   }
5734 + #line 5735 "conf_parser.c" /* yacc.c:1646  */
5735      break;
5736  
5737 <  case 500:
5738 < /* Line 1813 of yacc.c  */
6067 < #line 2616 "conf_parser.y"
5737 >  case 530:
5738 > #line 2593 "conf_parser.y" /* yacc.c:1646  */
5739      {
5740 <  ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5740 >  ConfigFileEntry.ts_warn_delta = (yyvsp[-1].number);
5741   }
5742 + #line 5743 "conf_parser.c" /* yacc.c:1646  */
5743      break;
5744  
5745 <  case 501:
5746 < /* Line 1813 of yacc.c  */
6075 < #line 2621 "conf_parser.y"
5745 >  case 531:
5746 > #line 2598 "conf_parser.y" /* yacc.c:1646  */
5747      {
5748    if (conf_parser_ctx.pass == 2)
5749 <    ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5749 >    ConfigFileEntry.ts_max_delta = (yyvsp[-1].number);
5750   }
5751 + #line 5752 "conf_parser.c" /* yacc.c:1646  */
5752      break;
5753  
5754 <  case 502:
5755 < /* Line 1813 of yacc.c  */
6084 < #line 2627 "conf_parser.y"
5754 >  case 532:
5755 > #line 2604 "conf_parser.y" /* yacc.c:1646  */
5756      {
5757 <  if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
5757 >  if (((yyvsp[-1].number) > 0) && conf_parser_ctx.pass == 1)
5758    {
5759      ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
5760      ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
# Line 6091 | Line 5762 | yyreduce:
5762      exit(0);
5763    }
5764   }
5765 + #line 5766 "conf_parser.c" /* yacc.c:1646  */
5766      break;
5767  
5768 <  case 503:
5769 < /* Line 1813 of yacc.c  */
6098 < #line 2638 "conf_parser.y"
5768 >  case 533:
5769 > #line 2615 "conf_parser.y" /* yacc.c:1646  */
5770      {
5771    ConfigFileEntry.invisible_on_connect = yylval.number;
5772   }
5773 + #line 5774 "conf_parser.c" /* yacc.c:1646  */
5774      break;
5775  
5776 <  case 504:
5777 < /* Line 1813 of yacc.c  */
6106 < #line 2643 "conf_parser.y"
5776 >  case 534:
5777 > #line 2620 "conf_parser.y" /* yacc.c:1646  */
5778      {
5779 <  ConfigFileEntry.warn_no_nline = yylval.number;
5779 >  ConfigFileEntry.warn_no_connect_block = yylval.number;
5780   }
5781 + #line 5782 "conf_parser.c" /* yacc.c:1646  */
5782      break;
5783  
5784 <  case 505:
5785 < /* Line 1813 of yacc.c  */
6114 < #line 2648 "conf_parser.y"
5784 >  case 535:
5785 > #line 2625 "conf_parser.y" /* yacc.c:1646  */
5786      {
5787    ConfigFileEntry.stats_e_disabled = yylval.number;
5788   }
5789 + #line 5790 "conf_parser.c" /* yacc.c:1646  */
5790      break;
5791  
5792 <  case 506:
5793 < /* Line 1813 of yacc.c  */
6122 < #line 2653 "conf_parser.y"
5792 >  case 536:
5793 > #line 2630 "conf_parser.y" /* yacc.c:1646  */
5794      {
5795    ConfigFileEntry.stats_o_oper_only = yylval.number;
5796   }
5797 + #line 5798 "conf_parser.c" /* yacc.c:1646  */
5798      break;
5799  
5800 <  case 507:
5801 < /* Line 1813 of yacc.c  */
6130 < #line 2658 "conf_parser.y"
5800 >  case 537:
5801 > #line 2635 "conf_parser.y" /* yacc.c:1646  */
5802      {
5803    ConfigFileEntry.stats_P_oper_only = yylval.number;
5804   }
5805 + #line 5806 "conf_parser.c" /* yacc.c:1646  */
5806 +    break;
5807 +
5808 +  case 538:
5809 + #line 2640 "conf_parser.y" /* yacc.c:1646  */
5810 +    {
5811 +  ConfigFileEntry.stats_u_oper_only = yylval.number;
5812 + }
5813 + #line 5814 "conf_parser.c" /* yacc.c:1646  */
5814      break;
5815  
5816 <  case 508:
5817 < /* Line 1813 of yacc.c  */
6138 < #line 2663 "conf_parser.y"
5816 >  case 539:
5817 > #line 2645 "conf_parser.y" /* yacc.c:1646  */
5818      {
5819    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5820   }
5821 + #line 5822 "conf_parser.c" /* yacc.c:1646  */
5822      break;
5823  
5824 <  case 509:
5825 < /* Line 1813 of yacc.c  */
6146 < #line 2666 "conf_parser.y"
5824 >  case 540:
5825 > #line 2648 "conf_parser.y" /* yacc.c:1646  */
5826      {
5827    ConfigFileEntry.stats_k_oper_only = 1;
5828   }
5829 + #line 5830 "conf_parser.c" /* yacc.c:1646  */
5830      break;
5831  
5832 <  case 510:
5833 < /* Line 1813 of yacc.c  */
6154 < #line 2671 "conf_parser.y"
5832 >  case 541:
5833 > #line 2653 "conf_parser.y" /* yacc.c:1646  */
5834      {
5835    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5836   }
5837 + #line 5838 "conf_parser.c" /* yacc.c:1646  */
5838      break;
5839  
5840 <  case 511:
5841 < /* Line 1813 of yacc.c  */
6162 < #line 2674 "conf_parser.y"
5840 >  case 542:
5841 > #line 2656 "conf_parser.y" /* yacc.c:1646  */
5842      {
5843    ConfigFileEntry.stats_i_oper_only = 1;
5844   }
5845 + #line 5846 "conf_parser.c" /* yacc.c:1646  */
5846      break;
5847  
5848 <  case 512:
5849 < /* Line 1813 of yacc.c  */
6170 < #line 2679 "conf_parser.y"
5848 >  case 543:
5849 > #line 2661 "conf_parser.y" /* yacc.c:1646  */
5850      {
5851 <  ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5851 >  ConfigFileEntry.pace_wait = (yyvsp[-1].number);
5852   }
5853 + #line 5854 "conf_parser.c" /* yacc.c:1646  */
5854      break;
5855  
5856 <  case 513:
5857 < /* Line 1813 of yacc.c  */
6178 < #line 2684 "conf_parser.y"
5856 >  case 544:
5857 > #line 2666 "conf_parser.y" /* yacc.c:1646  */
5858      {
5859 <  ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5859 >  ConfigFileEntry.caller_id_wait = (yyvsp[-1].number);
5860   }
5861 + #line 5862 "conf_parser.c" /* yacc.c:1646  */
5862      break;
5863  
5864 <  case 514:
5865 < /* Line 1813 of yacc.c  */
6186 < #line 2689 "conf_parser.y"
5864 >  case 545:
5865 > #line 2671 "conf_parser.y" /* yacc.c:1646  */
5866      {
5867    ConfigFileEntry.opers_bypass_callerid = yylval.number;
5868   }
5869 + #line 5870 "conf_parser.c" /* yacc.c:1646  */
5870      break;
5871  
5872 <  case 515:
5873 < /* Line 1813 of yacc.c  */
6194 < #line 2694 "conf_parser.y"
5872 >  case 546:
5873 > #line 2676 "conf_parser.y" /* yacc.c:1646  */
5874      {
5875 <  ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
5875 >  ConfigFileEntry.pace_wait_simple = (yyvsp[-1].number);
5876   }
5877 + #line 5878 "conf_parser.c" /* yacc.c:1646  */
5878      break;
5879  
5880 <  case 516:
5881 < /* Line 1813 of yacc.c  */
6202 < #line 2699 "conf_parser.y"
5880 >  case 547:
5881 > #line 2681 "conf_parser.y" /* yacc.c:1646  */
5882      {
5883    ConfigFileEntry.short_motd = yylval.number;
5884   }
5885 + #line 5886 "conf_parser.c" /* yacc.c:1646  */
5886      break;
5887  
5888 <  case 517:
5889 < /* Line 1813 of yacc.c  */
6210 < #line 2704 "conf_parser.y"
5888 >  case 548:
5889 > #line 2686 "conf_parser.y" /* yacc.c:1646  */
5890      {
5891    ConfigFileEntry.no_oper_flood = yylval.number;
5892   }
5893 + #line 5894 "conf_parser.c" /* yacc.c:1646  */
5894      break;
5895  
5896 <  case 518:
5897 < /* Line 1813 of yacc.c  */
6218 < #line 2709 "conf_parser.y"
5896 >  case 549:
5897 > #line 2691 "conf_parser.y" /* yacc.c:1646  */
5898      {
5899    ConfigFileEntry.true_no_oper_flood = yylval.number;
5900   }
5901 + #line 5902 "conf_parser.c" /* yacc.c:1646  */
5902      break;
5903  
5904 <  case 519:
5905 < /* Line 1813 of yacc.c  */
6226 < #line 2714 "conf_parser.y"
5904 >  case 550:
5905 > #line 2696 "conf_parser.y" /* yacc.c:1646  */
5906      {
5907    ConfigFileEntry.oper_pass_resv = yylval.number;
5908   }
5909 + #line 5910 "conf_parser.c" /* yacc.c:1646  */
5910      break;
5911  
5912 <  case 520:
5913 < /* Line 1813 of yacc.c  */
6234 < #line 2719 "conf_parser.y"
6235 <    {
6236 <  if (conf_parser_ctx.pass == 2)
6237 <  {
6238 <    if (strlen(yylval.string) > LOCALE_LENGTH-2)
6239 <      yylval.string[LOCALE_LENGTH-1] = '\0';
6240 <
6241 <    set_locale(yylval.string);
6242 <  }
6243 < }
6244 <    break;
6245 <
6246 <  case 521:
6247 < /* Line 1813 of yacc.c  */
6248 < #line 2730 "conf_parser.y"
5912 >  case 551:
5913 > #line 2701 "conf_parser.y" /* yacc.c:1646  */
5914      {
5915 <  ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
5915 >  ConfigFileEntry.dots_in_ident = (yyvsp[-1].number);
5916   }
5917 + #line 5918 "conf_parser.c" /* yacc.c:1646  */
5918      break;
5919  
5920 <  case 522:
5921 < /* Line 1813 of yacc.c  */
6256 < #line 2735 "conf_parser.y"
5920 >  case 552:
5921 > #line 2706 "conf_parser.y" /* yacc.c:1646  */
5922      {
5923 <  ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
5923 >  ConfigFileEntry.max_targets = (yyvsp[-1].number);
5924   }
5925 + #line 5926 "conf_parser.c" /* yacc.c:1646  */
5926      break;
5927  
5928 <  case 523:
5929 < /* Line 1813 of yacc.c  */
6264 < #line 2740 "conf_parser.y"
5928 >  case 553:
5929 > #line 2711 "conf_parser.y" /* yacc.c:1646  */
5930      {
5931    ConfigFileEntry.use_egd = yylval.number;
5932   }
5933 + #line 5934 "conf_parser.c" /* yacc.c:1646  */
5934      break;
5935  
5936 <  case 524:
5937 < /* Line 1813 of yacc.c  */
6272 < #line 2745 "conf_parser.y"
5936 >  case 554:
5937 > #line 2716 "conf_parser.y" /* yacc.c:1646  */
5938      {
5939    if (conf_parser_ctx.pass == 2)
5940    {
5941      MyFree(ConfigFileEntry.egdpool_path);
5942 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
5942 >    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
5943    }
5944   }
5945 + #line 5946 "conf_parser.c" /* yacc.c:1646  */
5946      break;
5947  
5948 <  case 525:
5949 < /* Line 1813 of yacc.c  */
6284 < #line 2754 "conf_parser.y"
5948 >  case 555:
5949 > #line 2725 "conf_parser.y" /* yacc.c:1646  */
5950      {
5951    if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
5952    {
5953      MyFree(ConfigFileEntry.service_name);
5954 <    DupString(ConfigFileEntry.service_name, yylval.string);
5954 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
5955    }
5956   }
5957 + #line 5958 "conf_parser.c" /* yacc.c:1646  */
5958      break;
5959  
5960 <  case 526:
5961 < /* Line 1813 of yacc.c  */
6296 < #line 2763 "conf_parser.y"
5960 >  case 556:
5961 > #line 2734 "conf_parser.y" /* yacc.c:1646  */
5962      {
5963    ConfigFileEntry.ping_cookie = yylval.number;
5964   }
5965 + #line 5966 "conf_parser.c" /* yacc.c:1646  */
5966      break;
5967  
5968 <  case 527:
5969 < /* Line 1813 of yacc.c  */
6304 < #line 2768 "conf_parser.y"
5968 >  case 557:
5969 > #line 2739 "conf_parser.y" /* yacc.c:1646  */
5970      {
5971    ConfigFileEntry.disable_auth = yylval.number;
5972   }
5973 + #line 5974 "conf_parser.c" /* yacc.c:1646  */
5974      break;
5975  
5976 <  case 528:
5977 < /* Line 1813 of yacc.c  */
6312 < #line 2773 "conf_parser.y"
5976 >  case 558:
5977 > #line 2744 "conf_parser.y" /* yacc.c:1646  */
5978      {
5979 <  ConfigFileEntry.throttle_time = yylval.number;
5979 >  ConfigFileEntry.throttle_time = (yyvsp[-1].number);
5980   }
5981 + #line 5982 "conf_parser.c" /* yacc.c:1646  */
5982      break;
5983  
5984 <  case 529:
5985 < /* Line 1813 of yacc.c  */
6320 < #line 2778 "conf_parser.y"
5984 >  case 559:
5985 > #line 2749 "conf_parser.y" /* yacc.c:1646  */
5986      {
5987    ConfigFileEntry.oper_umodes = 0;
5988   }
5989 + #line 5990 "conf_parser.c" /* yacc.c:1646  */
5990      break;
5991  
5992 <  case 533:
5993 < /* Line 1813 of yacc.c  */
6328 < #line 2784 "conf_parser.y"
5992 >  case 563:
5993 > #line 2755 "conf_parser.y" /* yacc.c:1646  */
5994      {
5995    ConfigFileEntry.oper_umodes |= UMODE_BOTS;
5996   }
5997 + #line 5998 "conf_parser.c" /* yacc.c:1646  */
5998      break;
5999  
6000 <  case 534:
6001 < /* Line 1813 of yacc.c  */
6336 < #line 2787 "conf_parser.y"
6000 >  case 564:
6001 > #line 2758 "conf_parser.y" /* yacc.c:1646  */
6002      {
6003    ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6004   }
6005 + #line 6006 "conf_parser.c" /* yacc.c:1646  */
6006      break;
6007  
6008 <  case 535:
6009 < /* Line 1813 of yacc.c  */
6344 < #line 2790 "conf_parser.y"
6345 <    {
6346 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6347 < }
6348 <    break;
6349 <
6350 <  case 536:
6351 < /* Line 1813 of yacc.c  */
6352 < #line 2793 "conf_parser.y"
6008 >  case 565:
6009 > #line 2761 "conf_parser.y" /* yacc.c:1646  */
6010      {
6011    ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6012   }
6013 + #line 6014 "conf_parser.c" /* yacc.c:1646  */
6014      break;
6015  
6016 <  case 537:
6017 < /* Line 1813 of yacc.c  */
6360 < #line 2796 "conf_parser.y"
6016 >  case 566:
6017 > #line 2764 "conf_parser.y" /* yacc.c:1646  */
6018      {
6019    ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6020   }
6021 + #line 6022 "conf_parser.c" /* yacc.c:1646  */
6022      break;
6023  
6024 <  case 538:
6025 < /* Line 1813 of yacc.c  */
6368 < #line 2799 "conf_parser.y"
6024 >  case 567:
6025 > #line 2767 "conf_parser.y" /* yacc.c:1646  */
6026      {
6027    ConfigFileEntry.oper_umodes |= UMODE_FULL;
6028   }
6029 + #line 6030 "conf_parser.c" /* yacc.c:1646  */
6030      break;
6031  
6032 <  case 539:
6033 < /* Line 1813 of yacc.c  */
6376 < #line 2802 "conf_parser.y"
6032 >  case 568:
6033 > #line 2770 "conf_parser.y" /* yacc.c:1646  */
6034      {
6035    ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6036   }
6037 + #line 6038 "conf_parser.c" /* yacc.c:1646  */
6038      break;
6039  
6040 <  case 540:
6041 < /* Line 1813 of yacc.c  */
6042 < #line 2805 "conf_parser.y"
6040 >  case 569:
6041 > #line 2773 "conf_parser.y" /* yacc.c:1646  */
6042 >    {
6043 >  ConfigFileEntry.oper_umodes |= UMODE_HIDECHANS;
6044 > }
6045 > #line 6046 "conf_parser.c" /* yacc.c:1646  */
6046 >    break;
6047 >
6048 >  case 570:
6049 > #line 2776 "conf_parser.y" /* yacc.c:1646  */
6050 >    {
6051 >  ConfigFileEntry.oper_umodes |= UMODE_HIDEIDLE;
6052 > }
6053 > #line 6054 "conf_parser.c" /* yacc.c:1646  */
6054 >    break;
6055 >
6056 >  case 571:
6057 > #line 2779 "conf_parser.y" /* yacc.c:1646  */
6058      {
6059    ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6060   }
6061 + #line 6062 "conf_parser.c" /* yacc.c:1646  */
6062      break;
6063  
6064 <  case 541:
6065 < /* Line 1813 of yacc.c  */
6392 < #line 2808 "conf_parser.y"
6064 >  case 572:
6065 > #line 2782 "conf_parser.y" /* yacc.c:1646  */
6066      {
6067    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6068   }
6069 + #line 6070 "conf_parser.c" /* yacc.c:1646  */
6070      break;
6071  
6072 <  case 542:
6073 < /* Line 1813 of yacc.c  */
6400 < #line 2811 "conf_parser.y"
6072 >  case 573:
6073 > #line 2785 "conf_parser.y" /* yacc.c:1646  */
6074      {
6075    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6076   }
6077 + #line 6078 "conf_parser.c" /* yacc.c:1646  */
6078      break;
6079  
6080 <  case 543:
6081 < /* Line 1813 of yacc.c  */
6408 < #line 2814 "conf_parser.y"
6080 >  case 574:
6081 > #line 2788 "conf_parser.y" /* yacc.c:1646  */
6082      {
6083    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6084   }
6085 + #line 6086 "conf_parser.c" /* yacc.c:1646  */
6086      break;
6087  
6088 <  case 544:
6089 < /* Line 1813 of yacc.c  */
6416 < #line 2817 "conf_parser.y"
6088 >  case 575:
6089 > #line 2791 "conf_parser.y" /* yacc.c:1646  */
6090      {
6091    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6092   }
6093 + #line 6094 "conf_parser.c" /* yacc.c:1646  */
6094      break;
6095  
6096 <  case 545:
6097 < /* Line 1813 of yacc.c  */
6424 < #line 2820 "conf_parser.y"
6096 >  case 576:
6097 > #line 2794 "conf_parser.y" /* yacc.c:1646  */
6098      {
6099    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6100   }
6101 + #line 6102 "conf_parser.c" /* yacc.c:1646  */
6102      break;
6103  
6104 <  case 546:
6105 < /* Line 1813 of yacc.c  */
6432 < #line 2823 "conf_parser.y"
6104 >  case 577:
6105 > #line 2797 "conf_parser.y" /* yacc.c:1646  */
6106      {
6107    ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6108   }
6109 + #line 6110 "conf_parser.c" /* yacc.c:1646  */
6110      break;
6111  
6112 <  case 547:
6113 < /* Line 1813 of yacc.c  */
6440 < #line 2826 "conf_parser.y"
6112 >  case 578:
6113 > #line 2800 "conf_parser.y" /* yacc.c:1646  */
6114      {
6115    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6116   }
6117 + #line 6118 "conf_parser.c" /* yacc.c:1646  */
6118      break;
6119  
6120 <  case 548:
6121 < /* Line 1813 of yacc.c  */
6448 < #line 2829 "conf_parser.y"
6120 >  case 579:
6121 > #line 2803 "conf_parser.y" /* yacc.c:1646  */
6122      {
6123    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6124   }
6125 + #line 6126 "conf_parser.c" /* yacc.c:1646  */
6126      break;
6127  
6128 <  case 549:
6129 < /* Line 1813 of yacc.c  */
6456 < #line 2832 "conf_parser.y"
6128 >  case 580:
6129 > #line 2806 "conf_parser.y" /* yacc.c:1646  */
6130      {
6131    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6132   }
6133 + #line 6134 "conf_parser.c" /* yacc.c:1646  */
6134      break;
6135  
6136 <  case 550:
6137 < /* Line 1813 of yacc.c  */
6464 < #line 2835 "conf_parser.y"
6136 >  case 581:
6137 > #line 2809 "conf_parser.y" /* yacc.c:1646  */
6138      {
6139    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6140   }
6141 + #line 6142 "conf_parser.c" /* yacc.c:1646  */
6142      break;
6143  
6144 <  case 551:
6145 < /* Line 1813 of yacc.c  */
6472 < #line 2838 "conf_parser.y"
6144 >  case 582:
6145 > #line 2812 "conf_parser.y" /* yacc.c:1646  */
6146      {
6147    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6148   }
6149 + #line 6150 "conf_parser.c" /* yacc.c:1646  */
6150      break;
6151  
6152 <  case 552:
6153 < /* Line 1813 of yacc.c  */
6480 < #line 2841 "conf_parser.y"
6152 >  case 583:
6153 > #line 2815 "conf_parser.y" /* yacc.c:1646  */
6154      {
6155    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6156   }
6157 + #line 6158 "conf_parser.c" /* yacc.c:1646  */
6158      break;
6159  
6160 <  case 553:
6161 < /* Line 1813 of yacc.c  */
6488 < #line 2846 "conf_parser.y"
6160 >  case 584:
6161 > #line 2818 "conf_parser.y" /* yacc.c:1646  */
6162      {
6163 <  ConfigFileEntry.oper_only_umodes = 0;
6163 >  ConfigFileEntry.oper_umodes |= UMODE_REGONLY;
6164   }
6165 + #line 6166 "conf_parser.c" /* yacc.c:1646  */
6166      break;
6167  
6168 <  case 557:
6169 < /* Line 1813 of yacc.c  */
6496 < #line 2852 "conf_parser.y"
6168 >  case 585:
6169 > #line 2821 "conf_parser.y" /* yacc.c:1646  */
6170      {
6171 <  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6171 >  ConfigFileEntry.oper_umodes |= UMODE_FARCONNECT;
6172   }
6173 + #line 6174 "conf_parser.c" /* yacc.c:1646  */
6174      break;
6175  
6176 <  case 558:
6177 < /* Line 1813 of yacc.c  */
6504 < #line 2855 "conf_parser.y"
6176 >  case 586:
6177 > #line 2826 "conf_parser.y" /* yacc.c:1646  */
6178      {
6179 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6179 >  ConfigFileEntry.oper_only_umodes = 0;
6180   }
6181 + #line 6182 "conf_parser.c" /* yacc.c:1646  */
6182      break;
6183  
6184 <  case 559:
6185 < /* Line 1813 of yacc.c  */
6512 < #line 2858 "conf_parser.y"
6184 >  case 590:
6185 > #line 2832 "conf_parser.y" /* yacc.c:1646  */
6186      {
6187 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6187 >  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6188 > }
6189 > #line 6190 "conf_parser.c" /* yacc.c:1646  */
6190 >    break;
6191 >
6192 >  case 591:
6193 > #line 2835 "conf_parser.y" /* yacc.c:1646  */
6194 >    {
6195 >  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6196   }
6197 + #line 6198 "conf_parser.c" /* yacc.c:1646  */
6198      break;
6199  
6200 <  case 560:
6201 < /* Line 1813 of yacc.c  */
6520 < #line 2861 "conf_parser.y"
6200 >  case 592:
6201 > #line 2838 "conf_parser.y" /* yacc.c:1646  */
6202      {
6203    ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6204   }
6205 + #line 6206 "conf_parser.c" /* yacc.c:1646  */
6206      break;
6207  
6208 <  case 561:
6209 < /* Line 1813 of yacc.c  */
6528 < #line 2864 "conf_parser.y"
6208 >  case 593:
6209 > #line 2841 "conf_parser.y" /* yacc.c:1646  */
6210      {
6211    ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6212   }
6213 + #line 6214 "conf_parser.c" /* yacc.c:1646  */
6214      break;
6215  
6216 <  case 562:
6217 < /* Line 1813 of yacc.c  */
6218 < #line 2867 "conf_parser.y"
6537 <    {
6216 >  case 594:
6217 > #line 2844 "conf_parser.y" /* yacc.c:1646  */
6218 >    {
6219    ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6220   }
6221 + #line 6222 "conf_parser.c" /* yacc.c:1646  */
6222      break;
6223  
6224 <  case 563:
6225 < /* Line 1813 of yacc.c  */
6544 < #line 2870 "conf_parser.y"
6224 >  case 595:
6225 > #line 2847 "conf_parser.y" /* yacc.c:1646  */
6226      {
6227    ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6228   }
6229 + #line 6230 "conf_parser.c" /* yacc.c:1646  */
6230      break;
6231  
6232 <  case 564:
6233 < /* Line 1813 of yacc.c  */
6552 < #line 2873 "conf_parser.y"
6232 >  case 596:
6233 > #line 2850 "conf_parser.y" /* yacc.c:1646  */
6234      {
6235    ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6236   }
6237 + #line 6238 "conf_parser.c" /* yacc.c:1646  */
6238      break;
6239  
6240 <  case 565:
6241 < /* Line 1813 of yacc.c  */
6560 < #line 2876 "conf_parser.y"
6240 >  case 597:
6241 > #line 2853 "conf_parser.y" /* yacc.c:1646  */
6242      {
6243    ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6244   }
6245 + #line 6246 "conf_parser.c" /* yacc.c:1646  */
6246      break;
6247  
6248 <  case 566:
6249 < /* Line 1813 of yacc.c  */
6568 < #line 2879 "conf_parser.y"
6248 >  case 598:
6249 > #line 2856 "conf_parser.y" /* yacc.c:1646  */
6250      {
6251    ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6252   }
6253 + #line 6254 "conf_parser.c" /* yacc.c:1646  */
6254      break;
6255  
6256 <  case 567:
6257 < /* Line 1813 of yacc.c  */
6576 < #line 2882 "conf_parser.y"
6256 >  case 599:
6257 > #line 2859 "conf_parser.y" /* yacc.c:1646  */
6258      {
6259    ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6260   }
6261 + #line 6262 "conf_parser.c" /* yacc.c:1646  */
6262      break;
6263  
6264 <  case 568:
6265 < /* Line 1813 of yacc.c  */
6584 < #line 2885 "conf_parser.y"
6264 >  case 600:
6265 > #line 2862 "conf_parser.y" /* yacc.c:1646  */
6266      {
6267    ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6268   }
6269 + #line 6270 "conf_parser.c" /* yacc.c:1646  */
6270      break;
6271  
6272 <  case 569:
6273 < /* Line 1813 of yacc.c  */
6592 < #line 2888 "conf_parser.y"
6272 >  case 601:
6273 > #line 2865 "conf_parser.y" /* yacc.c:1646  */
6274      {
6275    ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6276   }
6277 + #line 6278 "conf_parser.c" /* yacc.c:1646  */
6278      break;
6279  
6280 <  case 570:
6281 < /* Line 1813 of yacc.c  */
6600 < #line 2891 "conf_parser.y"
6280 >  case 602:
6281 > #line 2868 "conf_parser.y" /* yacc.c:1646  */
6282      {
6283    ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6284   }
6285 + #line 6286 "conf_parser.c" /* yacc.c:1646  */
6286      break;
6287  
6288 <  case 571:
6289 < /* Line 1813 of yacc.c  */
6608 < #line 2894 "conf_parser.y"
6288 >  case 603:
6289 > #line 2871 "conf_parser.y" /* yacc.c:1646  */
6290      {
6291    ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6292   }
6293 + #line 6294 "conf_parser.c" /* yacc.c:1646  */
6294      break;
6295  
6296 <  case 572:
6297 < /* Line 1813 of yacc.c  */
6616 < #line 2897 "conf_parser.y"
6296 >  case 604:
6297 > #line 2874 "conf_parser.y" /* yacc.c:1646  */
6298      {
6299    ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6300   }
6301 + #line 6302 "conf_parser.c" /* yacc.c:1646  */
6302      break;
6303  
6304 <  case 573:
6305 < /* Line 1813 of yacc.c  */
6624 < #line 2900 "conf_parser.y"
6304 >  case 605:
6305 > #line 2877 "conf_parser.y" /* yacc.c:1646  */
6306      {
6307    ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6308   }
6309 + #line 6310 "conf_parser.c" /* yacc.c:1646  */
6310      break;
6311  
6312 <  case 574:
6313 < /* Line 1813 of yacc.c  */
6632 < #line 2903 "conf_parser.y"
6312 >  case 606:
6313 > #line 2880 "conf_parser.y" /* yacc.c:1646  */
6314      {
6315    ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6316   }
6317 + #line 6318 "conf_parser.c" /* yacc.c:1646  */
6318      break;
6319  
6320 <  case 575:
6321 < /* Line 1813 of yacc.c  */
6640 < #line 2906 "conf_parser.y"
6320 >  case 607:
6321 > #line 2883 "conf_parser.y" /* yacc.c:1646  */
6322      {
6323    ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6324   }
6325 + #line 6326 "conf_parser.c" /* yacc.c:1646  */
6326      break;
6327  
6328 <  case 576:
6329 < /* Line 1813 of yacc.c  */
6648 < #line 2909 "conf_parser.y"
6328 >  case 608:
6329 > #line 2886 "conf_parser.y" /* yacc.c:1646  */
6330      {
6331    ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6332   }
6333 + #line 6334 "conf_parser.c" /* yacc.c:1646  */
6334      break;
6335  
6336 <  case 577:
6337 < /* Line 1813 of yacc.c  */
6656 < #line 2914 "conf_parser.y"
6336 >  case 609:
6337 > #line 2889 "conf_parser.y" /* yacc.c:1646  */
6338      {
6339 <  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6339 >  ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6340   }
6341 + #line 6342 "conf_parser.c" /* yacc.c:1646  */
6342      break;
6343  
6344 <  case 578:
6345 < /* Line 1813 of yacc.c  */
6664 < #line 2919 "conf_parser.y"
6344 >  case 610:
6345 > #line 2892 "conf_parser.y" /* yacc.c:1646  */
6346      {
6347 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6347 >  ConfigFileEntry.oper_only_umodes |= UMODE_FARCONNECT;
6348   }
6349 + #line 6350 "conf_parser.c" /* yacc.c:1646  */
6350      break;
6351  
6352 <  case 579:
6353 < /* Line 1813 of yacc.c  */
6672 < #line 2924 "conf_parser.y"
6352 >  case 611:
6353 > #line 2897 "conf_parser.y" /* yacc.c:1646  */
6354      {
6355 <  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6355 >  ConfigFileEntry.min_nonwildcard = (yyvsp[-1].number);
6356   }
6357 + #line 6358 "conf_parser.c" /* yacc.c:1646  */
6358      break;
6359  
6360 <  case 598:
6361 < /* Line 1813 of yacc.c  */
6362 < #line 2947 "conf_parser.y"
6360 >  case 612:
6361 > #line 2902 "conf_parser.y" /* yacc.c:1646  */
6362 >    {
6363 >  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[-1].number);
6364 > }
6365 > #line 6366 "conf_parser.c" /* yacc.c:1646  */
6366 >    break;
6367 >
6368 >  case 613:
6369 > #line 2907 "conf_parser.y" /* yacc.c:1646  */
6370 >    {
6371 >  ConfigFileEntry.default_floodcount = (yyvsp[-1].number);
6372 > }
6373 > #line 6374 "conf_parser.c" /* yacc.c:1646  */
6374 >    break;
6375 >
6376 >  case 632:
6377 > #line 2936 "conf_parser.y" /* yacc.c:1646  */
6378      {
6379    ConfigChannel.disable_fake_channels = yylval.number;
6380   }
6381 + #line 6382 "conf_parser.c" /* yacc.c:1646  */
6382      break;
6383  
6384 <  case 599:
6385 < /* Line 1813 of yacc.c  */
6688 < #line 2952 "conf_parser.y"
6384 >  case 633:
6385 > #line 2941 "conf_parser.y" /* yacc.c:1646  */
6386      {
6387 <  ConfigChannel.restrict_channels = yylval.number;
6387 >  ConfigChannel.knock_delay = (yyvsp[-1].number);
6388   }
6389 + #line 6390 "conf_parser.c" /* yacc.c:1646  */
6390      break;
6391  
6392 <  case 600:
6393 < /* Line 1813 of yacc.c  */
6696 < #line 2957 "conf_parser.y"
6392 >  case 634:
6393 > #line 2946 "conf_parser.y" /* yacc.c:1646  */
6394      {
6395 <  ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6395 >  ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6396   }
6397 + #line 6398 "conf_parser.c" /* yacc.c:1646  */
6398      break;
6399  
6400 <  case 601:
6401 < /* Line 1813 of yacc.c  */
6704 < #line 2962 "conf_parser.y"
6400 >  case 635:
6401 > #line 2951 "conf_parser.y" /* yacc.c:1646  */
6402      {
6403 <  ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6403 >  ConfigChannel.invite_delay = (yyvsp[-1].number);
6404   }
6405 + #line 6406 "conf_parser.c" /* yacc.c:1646  */
6406      break;
6407  
6408 <  case 602:
6409 < /* Line 1813 of yacc.c  */
6712 < #line 2967 "conf_parser.y"
6408 >  case 636:
6409 > #line 2956 "conf_parser.y" /* yacc.c:1646  */
6410      {
6411 <  ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6411 >  ConfigChannel.invite_delay_channel = (yyvsp[-1].number);
6412   }
6413 + #line 6414 "conf_parser.c" /* yacc.c:1646  */
6414      break;
6415  
6416 <  case 603:
6417 < /* Line 1813 of yacc.c  */
6720 < #line 2972 "conf_parser.y"
6416 >  case 637:
6417 > #line 2961 "conf_parser.y" /* yacc.c:1646  */
6418      {
6419 <  ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6419 >  ConfigChannel.max_chans_per_user = (yyvsp[-1].number);
6420   }
6421 + #line 6422 "conf_parser.c" /* yacc.c:1646  */
6422      break;
6423  
6424 <  case 604:
6425 < /* Line 1813 of yacc.c  */
6728 < #line 2977 "conf_parser.y"
6424 >  case 638:
6425 > #line 2966 "conf_parser.y" /* yacc.c:1646  */
6426      {
6427 <  ConfigChannel.quiet_on_ban = yylval.number;
6427 >  ConfigChannel.max_chans_per_oper = (yyvsp[-1].number);
6428   }
6429 + #line 6430 "conf_parser.c" /* yacc.c:1646  */
6430      break;
6431  
6432 <  case 605:
6433 < /* Line 1813 of yacc.c  */
6736 < #line 2982 "conf_parser.y"
6432 >  case 639:
6433 > #line 2971 "conf_parser.y" /* yacc.c:1646  */
6434      {
6435 <  ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6435 >  ConfigChannel.max_bans = (yyvsp[-1].number);
6436   }
6437 + #line 6438 "conf_parser.c" /* yacc.c:1646  */
6438      break;
6439  
6440 <  case 606:
6441 < /* Line 1813 of yacc.c  */
6744 < #line 2987 "conf_parser.y"
6440 >  case 640:
6441 > #line 2976 "conf_parser.y" /* yacc.c:1646  */
6442      {
6443 <  ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6443 >  ConfigChannel.default_split_user_count = (yyvsp[-1].number);
6444   }
6445 + #line 6446 "conf_parser.c" /* yacc.c:1646  */
6446      break;
6447  
6448 <  case 607:
6449 < /* Line 1813 of yacc.c  */
6752 < #line 2992 "conf_parser.y"
6448 >  case 641:
6449 > #line 2981 "conf_parser.y" /* yacc.c:1646  */
6450      {
6451 <  ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6451 >  ConfigChannel.default_split_server_count = (yyvsp[-1].number);
6452   }
6453 + #line 6454 "conf_parser.c" /* yacc.c:1646  */
6454      break;
6455  
6456 <  case 608:
6457 < /* Line 1813 of yacc.c  */
6760 < #line 2997 "conf_parser.y"
6456 >  case 642:
6457 > #line 2986 "conf_parser.y" /* yacc.c:1646  */
6458      {
6459    ConfigChannel.no_create_on_split = yylval.number;
6460   }
6461 + #line 6462 "conf_parser.c" /* yacc.c:1646  */
6462      break;
6463  
6464 <  case 609:
6465 < /* Line 1813 of yacc.c  */
6768 < #line 3002 "conf_parser.y"
6464 >  case 643:
6465 > #line 2991 "conf_parser.y" /* yacc.c:1646  */
6466      {
6467    ConfigChannel.no_join_on_split = yylval.number;
6468   }
6469 + #line 6470 "conf_parser.c" /* yacc.c:1646  */
6470      break;
6471  
6472 <  case 610:
6473 < /* Line 1813 of yacc.c  */
6776 < #line 3007 "conf_parser.y"
6472 >  case 644:
6473 > #line 2996 "conf_parser.y" /* yacc.c:1646  */
6474      {
6475    GlobalSetOptions.joinfloodcount = yylval.number;
6476   }
6477 + #line 6478 "conf_parser.c" /* yacc.c:1646  */
6478      break;
6479  
6480 <  case 611:
6481 < /* Line 1813 of yacc.c  */
6784 < #line 3012 "conf_parser.y"
6480 >  case 645:
6481 > #line 3001 "conf_parser.y" /* yacc.c:1646  */
6482      {
6483 <  GlobalSetOptions.joinfloodtime = yylval.number;
6483 >  GlobalSetOptions.joinfloodtime = (yyvsp[-1].number);
6484   }
6485 + #line 6486 "conf_parser.c" /* yacc.c:1646  */
6486      break;
6487  
6488 <  case 622:
6489 < /* Line 1813 of yacc.c  */
6792 < #line 3030 "conf_parser.y"
6488 >  case 658:
6489 > #line 3023 "conf_parser.y" /* yacc.c:1646  */
6490      {
6491    if (conf_parser_ctx.pass == 2)
6492      ConfigServerHide.flatten_links = yylval.number;
6493   }
6494 + #line 6495 "conf_parser.c" /* yacc.c:1646  */
6495 +    break;
6496 +
6497 +  case 659:
6498 + #line 3029 "conf_parser.y" /* yacc.c:1646  */
6499 +    {
6500 +  if (conf_parser_ctx.pass == 2)
6501 +    ConfigServerHide.disable_remote_commands = yylval.number;
6502 + }
6503 + #line 6504 "conf_parser.c" /* yacc.c:1646  */
6504      break;
6505  
6506 <  case 623:
6507 < /* Line 1813 of yacc.c  */
6801 < #line 3036 "conf_parser.y"
6506 >  case 660:
6507 > #line 3035 "conf_parser.y" /* yacc.c:1646  */
6508      {
6509    if (conf_parser_ctx.pass == 2)
6510      ConfigServerHide.hide_servers = yylval.number;
6511   }
6512 + #line 6513 "conf_parser.c" /* yacc.c:1646  */
6513      break;
6514  
6515 <  case 624:
6516 < /* Line 1813 of yacc.c  */
6517 < #line 3042 "conf_parser.y"
6515 >  case 661:
6516 > #line 3041 "conf_parser.y" /* yacc.c:1646  */
6517 >    {
6518 >  if (conf_parser_ctx.pass == 2)
6519 >    ConfigServerHide.hide_services = yylval.number;
6520 > }
6521 > #line 6522 "conf_parser.c" /* yacc.c:1646  */
6522 >    break;
6523 >
6524 >  case 662:
6525 > #line 3047 "conf_parser.y" /* yacc.c:1646  */
6526      {
6527    if (conf_parser_ctx.pass == 2)
6528    {
6529      MyFree(ConfigServerHide.hidden_name);
6530 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6530 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6531    }
6532   }
6533 + #line 6534 "conf_parser.c" /* yacc.c:1646  */
6534      break;
6535  
6536 <  case 625:
6537 < /* Line 1813 of yacc.c  */
6822 < #line 3051 "conf_parser.y"
6536 >  case 663:
6537 > #line 3056 "conf_parser.y" /* yacc.c:1646  */
6538      {
6539    if (conf_parser_ctx.pass == 2)
6540    {
6541 <    if (((yyvsp[(3) - (4)].number) > 0) && ConfigServerHide.links_disabled == 1)
6541 >    if (((yyvsp[-1].number) > 0) && ConfigServerHide.links_disabled == 1)
6542      {
6543 <      eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[(3) - (4)].number));
6543 >      eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[-1].number));
6544        ConfigServerHide.links_disabled = 0;
6545      }
6546  
6547 <    ConfigServerHide.links_delay = (yyvsp[(3) - (4)].number);
6547 >    ConfigServerHide.links_delay = (yyvsp[-1].number);
6548    }
6549   }
6550 + #line 6551 "conf_parser.c" /* yacc.c:1646  */
6551      break;
6552  
6553 <  case 626:
6554 < /* Line 1813 of yacc.c  */
6839 < #line 3065 "conf_parser.y"
6553 >  case 664:
6554 > #line 3070 "conf_parser.y" /* yacc.c:1646  */
6555      {
6556    if (conf_parser_ctx.pass == 2)
6557      ConfigServerHide.hidden = yylval.number;
6558   }
6559 + #line 6560 "conf_parser.c" /* yacc.c:1646  */
6560      break;
6561  
6562 <  case 627:
6563 < /* Line 1813 of yacc.c  */
6848 < #line 3071 "conf_parser.y"
6562 >  case 665:
6563 > #line 3076 "conf_parser.y" /* yacc.c:1646  */
6564      {
6565    if (conf_parser_ctx.pass == 2)
6566      ConfigServerHide.hide_server_ips = yylval.number;
6567   }
6568 + #line 6569 "conf_parser.c" /* yacc.c:1646  */
6569      break;
6570  
6571  
6572 < /* Line 1813 of yacc.c  */
6857 < #line 6858 "conf_parser.c"
6572 > #line 6573 "conf_parser.c" /* yacc.c:1646  */
6573        default: break;
6574      }
6575    /* User semantic actions sometimes alter yychar, and that requires
# Line 6876 | Line 6591 | yyreduce:
6591  
6592    *++yyvsp = yyval;
6593  
6594 <  /* Now `shift' the result of the reduction.  Determine what state
6594 >  /* Now 'shift' the result of the reduction.  Determine what state
6595       that goes to, based on the state we popped back to and the rule
6596       number reduced by.  */
6597  
# Line 6891 | Line 6606 | yyreduce:
6606    goto yynewstate;
6607  
6608  
6609 < /*------------------------------------.
6610 < | yyerrlab -- here on detecting error |
6611 < `------------------------------------*/
6609 > /*--------------------------------------.
6610 > | yyerrlab -- here on detecting error.  |
6611 > `--------------------------------------*/
6612   yyerrlab:
6613    /* Make sure we have latest lookahead translation.  See comments at
6614       user semantic actions for why this is necessary.  */
# Line 6944 | Line 6659 | yyerrlab:
6659    if (yyerrstatus == 3)
6660      {
6661        /* If just tried and failed to reuse lookahead token after an
6662 <         error, discard it.  */
6662 >         error, discard it.  */
6663  
6664        if (yychar <= YYEOF)
6665 <        {
6666 <          /* Return failure if at end of input.  */
6667 <          if (yychar == YYEOF)
6668 <            YYABORT;
6669 <        }
6665 >        {
6666 >          /* Return failure if at end of input.  */
6667 >          if (yychar == YYEOF)
6668 >            YYABORT;
6669 >        }
6670        else
6671 <        {
6672 <          yydestruct ("Error: discarding",
6673 <                      yytoken, &yylval);
6674 <          yychar = YYEMPTY;
6675 <        }
6671 >        {
6672 >          yydestruct ("Error: discarding",
6673 >                      yytoken, &yylval);
6674 >          yychar = YYEMPTY;
6675 >        }
6676      }
6677  
6678    /* Else will try to reuse lookahead token after shifting the error
# Line 6976 | Line 6691 | yyerrorlab:
6691    if (/*CONSTCOND*/ 0)
6692       goto yyerrorlab;
6693  
6694 <  /* Do not reclaim the symbols of the rule which action triggered
6694 >  /* Do not reclaim the symbols of the rule whose action triggered
6695       this YYERROR.  */
6696    YYPOPSTACK (yylen);
6697    yylen = 0;
# Line 6989 | Line 6704 | yyerrorlab:
6704   | yyerrlab1 -- common code for both syntax error and YYERROR.  |
6705   `-------------------------------------------------------------*/
6706   yyerrlab1:
6707 <  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6707 >  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6708  
6709    for (;;)
6710      {
6711        yyn = yypact[yystate];
6712        if (!yypact_value_is_default (yyn))
6713 <        {
6714 <          yyn += YYTERROR;
6715 <          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6716 <            {
6717 <              yyn = yytable[yyn];
6718 <              if (0 < yyn)
6719 <                break;
6720 <            }
6721 <        }
6713 >        {
6714 >          yyn += YYTERROR;
6715 >          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6716 >            {
6717 >              yyn = yytable[yyn];
6718 >              if (0 < yyn)
6719 >                break;
6720 >            }
6721 >        }
6722  
6723        /* Pop the current state because it cannot handle the error token.  */
6724        if (yyssp == yyss)
6725 <        YYABORT;
6725 >        YYABORT;
6726  
6727  
6728        yydestruct ("Error: popping",
6729 <                  yystos[yystate], yyvsp);
6729 >                  yystos[yystate], yyvsp);
6730        YYPOPSTACK (1);
6731        yystate = *yyssp;
6732        YY_STACK_PRINT (yyss, yyssp);
# Line 7062 | Line 6777 | yyreturn:
6777        yydestruct ("Cleanup: discarding lookahead",
6778                    yytoken, &yylval);
6779      }
6780 <  /* Do not reclaim the symbols of the rule which action triggered
6780 >  /* Do not reclaim the symbols of the rule whose action triggered
6781       this YYABORT or YYACCEPT.  */
6782    YYPOPSTACK (yylen);
6783    YY_STACK_PRINT (yyss, yyssp);
6784    while (yyssp != yyss)
6785      {
6786        yydestruct ("Cleanup: popping",
6787 <                  yystos[*yyssp], yyvsp);
6787 >                  yystos[*yyssp], yyvsp);
6788        YYPOPSTACK (1);
6789      }
6790   #ifndef yyoverflow
# Line 7080 | Line 6795 | yyreturn:
6795    if (yymsg != yymsgbuf)
6796      YYSTACK_FREE (yymsg);
6797   #endif
6798 <  /* Make sure YYID is used.  */
7084 <  return YYID (yyresult);
6798 >  return yyresult;
6799   }
7086
7087

Comparing ircd-hybrid/trunk/src/conf_parser.c (property svn:keywords):
Revision 1622 by michael, Thu Nov 1 13:16:37 2012 UTC vs.
Revision 3762 by michael, Sun Jun 1 19:35:16 2014 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

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