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

Comparing:
ircd-hybrid-8/src/conf_parser.c (file contents), Revision 1549 by michael, Mon Oct 1 18:11:11 2012 UTC vs.
ircd-hybrid/branches/8.2.x/src/conf_parser.c (file contents), Revision 4259 by michael, Fri Jul 18 20:47:03 2014 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 2.6.2.  */
1 > /* A Bison parser, made by GNU Bison 3.0.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"
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 336 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 >    max_channels,
149 >    cidr_bitlen_ipv4,
150 >    cidr_bitlen_ipv6,
151 >    number_per_cidr;
152 > } block_state;
153  
154   static void
155 < free_collect_item(struct CollectItem *item)
155 > reset_block_state(void)
156   {
157 <  MyFree(item->name);
158 <  MyFree(item->user);
159 <  MyFree(item->host);
160 <  MyFree(item->passwd);
161 < #ifdef HAVE_LIBCRYPTO
162 <  MyFree(item->rsa_public_key_file);
163 < #endif
164 <  MyFree(item);
157 >  dlink_node *ptr = NULL, *ptr_next = NULL;
158 >
159 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
160 >  {
161 >    MyFree(ptr->data);
162 >    dlinkDelete(ptr, &block_state.mask.list);
163 >    free_dlink_node(ptr);
164 >  }
165 >
166 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
167 >  {
168 >    MyFree(ptr->data);
169 >    dlinkDelete(ptr, &block_state.leaf.list);
170 >    free_dlink_node(ptr);
171 >  }
172 >
173 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
174 >  {
175 >    MyFree(ptr->data);
176 >    dlinkDelete(ptr, &block_state.hub.list);
177 >    free_dlink_node(ptr);
178 >  }
179 >
180 >  memset(&block_state, 0, sizeof(block_state));
181   }
182  
183  
184 < /* Line 336 of yacc.c  */
152 < #line 153 "conf_parser.c"
184 > #line 185 "conf_parser.c" /* yacc.c:339  */
185  
186 < # ifndef YY_NULL
186 > # ifndef YY_NULLPTR
187   #  if defined __cplusplus && 201103L <= __cplusplus
188 < #   define YY_NULL nullptr
188 > #   define YY_NULLPTR nullptr
189   #  else
190 < #   define YY_NULL 0
190 > #   define YY_NULLPTR 0
191   #  endif
192   # endif
193  
# Line 169 | Line 201 | free_collect_item(struct CollectItem *it
201  
202   /* In a future release of Bison, this section will be replaced
203     by #include "y.tab.h".  */
204 < #ifndef YY_Y_TAB_H
205 < # define YY_Y_TAB_H
206 < /* Enabling traces.  */
204 > #ifndef YY_YY_CONF_PARSER_H_INCLUDED
205 > # define YY_YY_CONF_PARSER_H_INCLUDED
206 > /* Debug traces.  */
207   #ifndef YYDEBUG
208   # define YYDEBUG 0
209   #endif
# Line 179 | Line 211 | free_collect_item(struct CollectItem *it
211   extern int yydebug;
212   #endif
213  
214 < /* Tokens.  */
214 > /* Token type.  */
215   #ifndef YYTOKENTYPE
216   # define YYTOKENTYPE
217 <   /* Put the tokens into the symbol table, so that GDB and other debuggers
218 <      know about them.  */
219 <   enum yytokentype {
220 <     ACCEPT_PASSWORD = 258,
221 <     ADMIN = 259,
222 <     AFTYPE = 260,
223 <     ANTI_NICK_FLOOD = 261,
224 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
225 <     AUTOCONN = 263,
226 <     BYTES = 264,
227 <     KBYTES = 265,
228 <     MBYTES = 266,
229 <     CALLER_ID_WAIT = 267,
230 <     CAN_FLOOD = 268,
231 <     CHANNEL = 269,
232 <     CIDR_BITLEN_IPV4 = 270,
233 <     CIDR_BITLEN_IPV6 = 271,
234 <     CLASS = 272,
235 <     CONNECT = 273,
236 <     CONNECTFREQ = 274,
237 <     DEFAULT_FLOODCOUNT = 275,
238 <     DEFAULT_SPLIT_SERVER_COUNT = 276,
239 <     DEFAULT_SPLIT_USER_COUNT = 277,
240 <     DENY = 278,
241 <     DESCRIPTION = 279,
242 <     DIE = 280,
243 <     DISABLE_AUTH = 281,
244 <     DISABLE_FAKE_CHANNELS = 282,
245 <     DISABLE_REMOTE_COMMANDS = 283,
246 <     DOTS_IN_IDENT = 284,
247 <     EGDPOOL_PATH = 285,
248 <     EMAIL = 286,
249 <     ENCRYPTED = 287,
250 <     EXCEED_LIMIT = 288,
251 <     EXEMPT = 289,
252 <     FAILED_OPER_NOTICE = 290,
253 <     IRCD_FLAGS = 291,
254 <     FLATTEN_LINKS = 292,
255 <     GECOS = 293,
256 <     GENERAL = 294,
257 <     GLINE = 295,
258 <     GLINE_DURATION = 296,
259 <     GLINE_ENABLE = 297,
260 <     GLINE_EXEMPT = 298,
261 <     GLINE_REQUEST_DURATION = 299,
262 <     GLINE_MIN_CIDR = 300,
263 <     GLINE_MIN_CIDR6 = 301,
264 <     GLOBAL_KILL = 302,
265 <     IRCD_AUTH = 303,
266 <     NEED_IDENT = 304,
267 <     HAVENT_READ_CONF = 305,
268 <     HIDDEN = 306,
269 <     HIDDEN_NAME = 307,
270 <     HIDE_SERVER_IPS = 308,
271 <     HIDE_SERVERS = 309,
272 <     HIDE_SPOOF_IPS = 310,
273 <     HOST = 311,
274 <     HUB = 312,
275 <     HUB_MASK = 313,
276 <     IGNORE_BOGUS_TS = 314,
277 <     INVISIBLE_ON_CONNECT = 315,
278 <     IP = 316,
279 <     KILL = 317,
280 <     KILL_CHASE_TIME_LIMIT = 318,
281 <     KLINE = 319,
282 <     KLINE_EXEMPT = 320,
283 <     KNOCK_DELAY = 321,
284 <     KNOCK_DELAY_CHANNEL = 322,
285 <     LEAF_MASK = 323,
286 <     LINKS_DELAY = 324,
287 <     LISTEN = 325,
288 <     T_LOG = 326,
289 <     MAX_ACCEPT = 327,
290 <     MAX_BANS = 328,
291 <     MAX_CHANS_PER_OPER = 329,
292 <     MAX_CHANS_PER_USER = 330,
293 <     MAX_GLOBAL = 331,
294 <     MAX_IDENT = 332,
295 <     MAX_LOCAL = 333,
296 <     MAX_NICK_CHANGES = 334,
297 <     MAX_NICK_TIME = 335,
298 <     MAX_NUMBER = 336,
299 <     MAX_TARGETS = 337,
300 <     MAX_WATCH = 338,
301 <     MESSAGE_LOCALE = 339,
302 <     MIN_NONWILDCARD = 340,
303 <     MIN_NONWILDCARD_SIMPLE = 341,
304 <     MODULE = 342,
305 <     MODULES = 343,
306 <     NAME = 344,
307 <     NEED_PASSWORD = 345,
308 <     NETWORK_DESC = 346,
309 <     NETWORK_NAME = 347,
310 <     NICK = 348,
311 <     NICK_CHANGES = 349,
312 <     NO_CREATE_ON_SPLIT = 350,
313 <     NO_JOIN_ON_SPLIT = 351,
314 <     NO_OPER_FLOOD = 352,
315 <     NO_TILDE = 353,
316 <     NUMBER = 354,
317 <     NUMBER_PER_CIDR = 355,
318 <     NUMBER_PER_IP = 356,
319 <     OPERATOR = 357,
320 <     OPERS_BYPASS_CALLERID = 358,
321 <     OPER_ONLY_UMODES = 359,
322 <     OPER_PASS_RESV = 360,
323 <     OPER_SPY_T = 361,
324 <     OPER_UMODES = 362,
325 <     JOIN_FLOOD_COUNT = 363,
326 <     JOIN_FLOOD_TIME = 364,
327 <     PACE_WAIT = 365,
328 <     PACE_WAIT_SIMPLE = 366,
329 <     PASSWORD = 367,
330 <     PATH = 368,
331 <     PING_COOKIE = 369,
332 <     PING_TIME = 370,
333 <     PING_WARNING = 371,
334 <     PORT = 372,
335 <     QSTRING = 373,
336 <     QUIET_ON_BAN = 374,
337 <     REASON = 375,
338 <     REDIRPORT = 376,
339 <     REDIRSERV = 377,
340 <     REGEX_T = 378,
341 <     REHASH = 379,
342 <     REMOTE = 380,
343 <     REMOTEBAN = 381,
344 <     RESTRICT_CHANNELS = 382,
345 <     RSA_PRIVATE_KEY_FILE = 383,
346 <     RSA_PUBLIC_KEY_FILE = 384,
347 <     SSL_CERTIFICATE_FILE = 385,
348 <     SSL_DH_PARAM_FILE = 386,
349 <     T_SSL_CLIENT_METHOD = 387,
350 <     T_SSL_SERVER_METHOD = 388,
351 <     T_SSLV3 = 389,
352 <     T_TLSV1 = 390,
353 <     RESV = 391,
354 <     RESV_EXEMPT = 392,
355 <     SECONDS = 393,
356 <     MINUTES = 394,
357 <     HOURS = 395,
358 <     DAYS = 396,
359 <     WEEKS = 397,
360 <     SENDQ = 398,
361 <     SEND_PASSWORD = 399,
362 <     SERVERHIDE = 400,
363 <     SERVERINFO = 401,
364 <     IRCD_SID = 402,
365 <     TKLINE_EXPIRE_NOTICES = 403,
366 <     T_SHARED = 404,
367 <     T_CLUSTER = 405,
368 <     TYPE = 406,
369 <     SHORT_MOTD = 407,
370 <     SPOOF = 408,
371 <     SPOOF_NOTICE = 409,
372 <     STATS_E_DISABLED = 410,
373 <     STATS_I_OPER_ONLY = 411,
374 <     STATS_K_OPER_ONLY = 412,
375 <     STATS_O_OPER_ONLY = 413,
376 <     STATS_P_OPER_ONLY = 414,
377 <     TBOOL = 415,
378 <     TMASKED = 416,
379 <     TS_MAX_DELTA = 417,
380 <     TS_WARN_DELTA = 418,
381 <     TWODOTS = 419,
382 <     T_ALL = 420,
383 <     T_BOTS = 421,
384 <     T_SOFTCALLERID = 422,
385 <     T_CALLERID = 423,
386 <     T_CCONN = 424,
387 <     T_CCONN_FULL = 425,
388 <     T_SSL_CIPHER_LIST = 426,
389 <     T_DEAF = 427,
390 <     T_DEBUG = 428,
391 <     T_DLINE = 429,
392 <     T_EXTERNAL = 430,
393 <     T_FULL = 431,
394 <     T_INVISIBLE = 432,
395 <     T_IPV4 = 433,
396 <     T_IPV6 = 434,
397 <     T_LOCOPS = 435,
398 <     T_MAX_CLIENTS = 436,
399 <     T_NCHANGE = 437,
400 <     T_OPERWALL = 438,
401 <     T_RECVQ = 439,
402 <     T_REJ = 440,
403 <     T_SERVER = 441,
404 <     T_SERVNOTICE = 442,
405 <     T_SET = 443,
406 <     T_SKILL = 444,
407 <     T_SPY = 445,
408 <     T_SSL = 446,
409 <     T_UMODES = 447,
410 <     T_UNAUTH = 448,
411 <     T_UNDLINE = 449,
412 <     T_UNLIMITED = 450,
413 <     T_UNRESV = 451,
414 <     T_UNXLINE = 452,
415 <     T_GLOBOPS = 453,
416 <     T_WALLOP = 454,
417 <     T_RESTART = 455,
418 <     T_SERVICE = 456,
419 <     T_SERVICES_NAME = 457,
420 <     THROTTLE_TIME = 458,
421 <     TRUE_NO_OPER_FLOOD = 459,
422 <     UNKLINE = 460,
423 <     USER = 461,
424 <     USE_EGD = 462,
425 <     USE_LOGGING = 463,
426 <     VHOST = 464,
427 <     VHOST6 = 465,
428 <     XLINE = 466,
429 <     WARN_NO_NLINE = 467,
430 <     T_SIZE = 468,
431 <     T_FILE = 469
432 <   };
217 >  enum yytokentype
218 >  {
219 >    ACCEPT_PASSWORD = 258,
220 >    ADMIN = 259,
221 >    AFTYPE = 260,
222 >    ANTI_NICK_FLOOD = 261,
223 >    ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
224 >    AUTOCONN = 263,
225 >    BYTES = 264,
226 >    KBYTES = 265,
227 >    MBYTES = 266,
228 >    CALLER_ID_WAIT = 267,
229 >    CAN_FLOOD = 268,
230 >    CHANNEL = 269,
231 >    CIDR_BITLEN_IPV4 = 270,
232 >    CIDR_BITLEN_IPV6 = 271,
233 >    CLASS = 272,
234 >    CONNECT = 273,
235 >    CONNECTFREQ = 274,
236 >    CYCLE_ON_HOST_CHANGE = 275,
237 >    DEFAULT_FLOODCOUNT = 276,
238 >    DEFAULT_SPLIT_SERVER_COUNT = 277,
239 >    DEFAULT_SPLIT_USER_COUNT = 278,
240 >    DENY = 279,
241 >    DESCRIPTION = 280,
242 >    DIE = 281,
243 >    DISABLE_AUTH = 282,
244 >    DISABLE_FAKE_CHANNELS = 283,
245 >    DISABLE_REMOTE_COMMANDS = 284,
246 >    DOTS_IN_IDENT = 285,
247 >    EGDPOOL_PATH = 286,
248 >    EMAIL = 287,
249 >    ENCRYPTED = 288,
250 >    EXCEED_LIMIT = 289,
251 >    EXEMPT = 290,
252 >    FAILED_OPER_NOTICE = 291,
253 >    FLATTEN_LINKS = 292,
254 >    GECOS = 293,
255 >    GENERAL = 294,
256 >    GLINE = 295,
257 >    GLINE_DURATION = 296,
258 >    GLINE_ENABLE = 297,
259 >    GLINE_EXEMPT = 298,
260 >    GLINE_MIN_CIDR = 299,
261 >    GLINE_MIN_CIDR6 = 300,
262 >    GLINE_REQUEST_DURATION = 301,
263 >    GLOBAL_KILL = 302,
264 >    HAVENT_READ_CONF = 303,
265 >    HIDDEN = 304,
266 >    HIDDEN_NAME = 305,
267 >    HIDE_CHANS = 306,
268 >    HIDE_IDLE = 307,
269 >    HIDE_IDLE_FROM_OPERS = 308,
270 >    HIDE_SERVER_IPS = 309,
271 >    HIDE_SERVERS = 310,
272 >    HIDE_SERVICES = 311,
273 >    HIDE_SPOOF_IPS = 312,
274 >    HOST = 313,
275 >    HUB = 314,
276 >    HUB_MASK = 315,
277 >    IGNORE_BOGUS_TS = 316,
278 >    INVISIBLE_ON_CONNECT = 317,
279 >    INVITE_CLIENT_COUNT = 318,
280 >    INVITE_CLIENT_TIME = 319,
281 >    IP = 320,
282 >    IRCD_AUTH = 321,
283 >    IRCD_FLAGS = 322,
284 >    IRCD_SID = 323,
285 >    JOIN_FLOOD_COUNT = 324,
286 >    JOIN_FLOOD_TIME = 325,
287 >    KILL = 326,
288 >    KILL_CHASE_TIME_LIMIT = 327,
289 >    KLINE = 328,
290 >    KLINE_EXEMPT = 329,
291 >    KNOCK_CLIENT_COUNT = 330,
292 >    KNOCK_CLIENT_TIME = 331,
293 >    KNOCK_DELAY_CHANNEL = 332,
294 >    LEAF_MASK = 333,
295 >    LINKS_DELAY = 334,
296 >    LISTEN = 335,
297 >    MASK = 336,
298 >    MAX_ACCEPT = 337,
299 >    MAX_BANS = 338,
300 >    MAX_CHANNELS = 339,
301 >    MAX_GLOBAL = 340,
302 >    MAX_IDENT = 341,
303 >    MAX_IDLE = 342,
304 >    MAX_LOCAL = 343,
305 >    MAX_NICK_CHANGES = 344,
306 >    MAX_NICK_LENGTH = 345,
307 >    MAX_NICK_TIME = 346,
308 >    MAX_NUMBER = 347,
309 >    MAX_TARGETS = 348,
310 >    MAX_TOPIC_LENGTH = 349,
311 >    MAX_WATCH = 350,
312 >    MIN_IDLE = 351,
313 >    MIN_NONWILDCARD = 352,
314 >    MIN_NONWILDCARD_SIMPLE = 353,
315 >    MODULE = 354,
316 >    MODULES = 355,
317 >    MOTD = 356,
318 >    NAME = 357,
319 >    NEED_IDENT = 358,
320 >    NEED_PASSWORD = 359,
321 >    NETWORK_DESC = 360,
322 >    NETWORK_NAME = 361,
323 >    NICK = 362,
324 >    NO_CREATE_ON_SPLIT = 363,
325 >    NO_JOIN_ON_SPLIT = 364,
326 >    NO_OPER_FLOOD = 365,
327 >    NO_TILDE = 366,
328 >    NUMBER = 367,
329 >    NUMBER_PER_CIDR = 368,
330 >    NUMBER_PER_IP = 369,
331 >    OPER_ONLY_UMODES = 370,
332 >    OPER_PASS_RESV = 371,
333 >    OPER_UMODES = 372,
334 >    OPERATOR = 373,
335 >    OPERS_BYPASS_CALLERID = 374,
336 >    PACE_WAIT = 375,
337 >    PACE_WAIT_SIMPLE = 376,
338 >    PASSWORD = 377,
339 >    PATH = 378,
340 >    PING_COOKIE = 379,
341 >    PING_TIME = 380,
342 >    PORT = 381,
343 >    QSTRING = 382,
344 >    RANDOM_IDLE = 383,
345 >    REASON = 384,
346 >    REDIRPORT = 385,
347 >    REDIRSERV = 386,
348 >    REHASH = 387,
349 >    REMOTE = 388,
350 >    REMOTEBAN = 389,
351 >    RESV = 390,
352 >    RESV_EXEMPT = 391,
353 >    RSA_PRIVATE_KEY_FILE = 392,
354 >    RSA_PUBLIC_KEY_FILE = 393,
355 >    SECONDS = 394,
356 >    MINUTES = 395,
357 >    HOURS = 396,
358 >    DAYS = 397,
359 >    WEEKS = 398,
360 >    MONTHS = 399,
361 >    YEARS = 400,
362 >    SEND_PASSWORD = 401,
363 >    SENDQ = 402,
364 >    SERVERHIDE = 403,
365 >    SERVERINFO = 404,
366 >    SHORT_MOTD = 405,
367 >    SPOOF = 406,
368 >    SPOOF_NOTICE = 407,
369 >    SQUIT = 408,
370 >    SSL_CERTIFICATE_FILE = 409,
371 >    SSL_CERTIFICATE_FINGERPRINT = 410,
372 >    SSL_CONNECTION_REQUIRED = 411,
373 >    SSL_DH_ELLIPTIC_CURVE = 412,
374 >    SSL_DH_PARAM_FILE = 413,
375 >    SSL_MESSAGE_DIGEST_ALGORITHM = 414,
376 >    STATS_E_DISABLED = 415,
377 >    STATS_I_OPER_ONLY = 416,
378 >    STATS_K_OPER_ONLY = 417,
379 >    STATS_O_OPER_ONLY = 418,
380 >    STATS_P_OPER_ONLY = 419,
381 >    STATS_U_OPER_ONLY = 420,
382 >    T_ALL = 421,
383 >    T_BOTS = 422,
384 >    T_CALLERID = 423,
385 >    T_CCONN = 424,
386 >    T_CLUSTER = 425,
387 >    T_DEAF = 426,
388 >    T_DEBUG = 427,
389 >    T_DLINE = 428,
390 >    T_EXTERNAL = 429,
391 >    T_FARCONNECT = 430,
392 >    T_FILE = 431,
393 >    T_FULL = 432,
394 >    T_GLOBOPS = 433,
395 >    T_INVISIBLE = 434,
396 >    T_IPV4 = 435,
397 >    T_IPV6 = 436,
398 >    T_LOCOPS = 437,
399 >    T_LOG = 438,
400 >    T_MAX_CLIENTS = 439,
401 >    T_NCHANGE = 440,
402 >    T_NONONREG = 441,
403 >    T_RECVQ = 442,
404 >    T_REJ = 443,
405 >    T_RESTART = 444,
406 >    T_SERVER = 445,
407 >    T_SERVICE = 446,
408 >    T_SERVICES_NAME = 447,
409 >    T_SERVNOTICE = 448,
410 >    T_SET = 449,
411 >    T_SHARED = 450,
412 >    T_SIZE = 451,
413 >    T_SKILL = 452,
414 >    T_SOFTCALLERID = 453,
415 >    T_SPY = 454,
416 >    T_SSL = 455,
417 >    T_SSL_CIPHER_LIST = 456,
418 >    T_UMODES = 457,
419 >    T_UNAUTH = 458,
420 >    T_UNDLINE = 459,
421 >    T_UNLIMITED = 460,
422 >    T_UNRESV = 461,
423 >    T_UNXLINE = 462,
424 >    T_WALLOP = 463,
425 >    T_WALLOPS = 464,
426 >    T_WEBIRC = 465,
427 >    TBOOL = 466,
428 >    THROTTLE_COUNT = 467,
429 >    THROTTLE_TIME = 468,
430 >    TKLINE_EXPIRE_NOTICES = 469,
431 >    TMASKED = 470,
432 >    TRUE_NO_OPER_FLOOD = 471,
433 >    TS_MAX_DELTA = 472,
434 >    TS_WARN_DELTA = 473,
435 >    TWODOTS = 474,
436 >    TYPE = 475,
437 >    UNKLINE = 476,
438 >    USE_EGD = 477,
439 >    USE_LOGGING = 478,
440 >    USER = 479,
441 >    VHOST = 480,
442 >    VHOST6 = 481,
443 >    WARN_NO_CONNECT_BLOCK = 482,
444 >    XLINE = 483
445 >  };
446   #endif
447   /* Tokens.  */
448   #define ACCEPT_PASSWORD 258
# Line 417 | Line 462 | extern int yydebug;
462   #define CLASS 272
463   #define CONNECT 273
464   #define CONNECTFREQ 274
465 < #define DEFAULT_FLOODCOUNT 275
466 < #define DEFAULT_SPLIT_SERVER_COUNT 276
467 < #define DEFAULT_SPLIT_USER_COUNT 277
468 < #define DENY 278
469 < #define DESCRIPTION 279
470 < #define DIE 280
471 < #define DISABLE_AUTH 281
472 < #define DISABLE_FAKE_CHANNELS 282
473 < #define DISABLE_REMOTE_COMMANDS 283
474 < #define DOTS_IN_IDENT 284
475 < #define EGDPOOL_PATH 285
476 < #define EMAIL 286
477 < #define ENCRYPTED 287
478 < #define EXCEED_LIMIT 288
479 < #define EXEMPT 289
480 < #define FAILED_OPER_NOTICE 290
481 < #define IRCD_FLAGS 291
465 > #define CYCLE_ON_HOST_CHANGE 275
466 > #define DEFAULT_FLOODCOUNT 276
467 > #define DEFAULT_SPLIT_SERVER_COUNT 277
468 > #define DEFAULT_SPLIT_USER_COUNT 278
469 > #define DENY 279
470 > #define DESCRIPTION 280
471 > #define DIE 281
472 > #define DISABLE_AUTH 282
473 > #define DISABLE_FAKE_CHANNELS 283
474 > #define DISABLE_REMOTE_COMMANDS 284
475 > #define DOTS_IN_IDENT 285
476 > #define EGDPOOL_PATH 286
477 > #define EMAIL 287
478 > #define ENCRYPTED 288
479 > #define EXCEED_LIMIT 289
480 > #define EXEMPT 290
481 > #define FAILED_OPER_NOTICE 291
482   #define FLATTEN_LINKS 292
483   #define GECOS 293
484   #define GENERAL 294
# Line 441 | Line 486 | extern int yydebug;
486   #define GLINE_DURATION 296
487   #define GLINE_ENABLE 297
488   #define GLINE_EXEMPT 298
489 < #define GLINE_REQUEST_DURATION 299
490 < #define GLINE_MIN_CIDR 300
491 < #define GLINE_MIN_CIDR6 301
489 > #define GLINE_MIN_CIDR 299
490 > #define GLINE_MIN_CIDR6 300
491 > #define GLINE_REQUEST_DURATION 301
492   #define GLOBAL_KILL 302
493 < #define IRCD_AUTH 303
494 < #define NEED_IDENT 304
495 < #define HAVENT_READ_CONF 305
496 < #define HIDDEN 306
497 < #define HIDDEN_NAME 307
498 < #define HIDE_SERVER_IPS 308
499 < #define HIDE_SERVERS 309
500 < #define HIDE_SPOOF_IPS 310
501 < #define HOST 311
502 < #define HUB 312
503 < #define HUB_MASK 313
504 < #define IGNORE_BOGUS_TS 314
505 < #define INVISIBLE_ON_CONNECT 315
506 < #define IP 316
507 < #define KILL 317
508 < #define KILL_CHASE_TIME_LIMIT 318
509 < #define KLINE 319
510 < #define KLINE_EXEMPT 320
511 < #define KNOCK_DELAY 321
512 < #define KNOCK_DELAY_CHANNEL 322
513 < #define LEAF_MASK 323
514 < #define LINKS_DELAY 324
515 < #define LISTEN 325
516 < #define T_LOG 326
517 < #define MAX_ACCEPT 327
518 < #define MAX_BANS 328
519 < #define MAX_CHANS_PER_OPER 329
520 < #define MAX_CHANS_PER_USER 330
521 < #define MAX_GLOBAL 331
522 < #define MAX_IDENT 332
523 < #define MAX_LOCAL 333
524 < #define MAX_NICK_CHANGES 334
525 < #define MAX_NICK_TIME 335
526 < #define MAX_NUMBER 336
527 < #define MAX_TARGETS 337
528 < #define MAX_WATCH 338
529 < #define MESSAGE_LOCALE 339
530 < #define MIN_NONWILDCARD 340
531 < #define MIN_NONWILDCARD_SIMPLE 341
532 < #define MODULE 342
533 < #define MODULES 343
534 < #define NAME 344
535 < #define NEED_PASSWORD 345
536 < #define NETWORK_DESC 346
537 < #define NETWORK_NAME 347
538 < #define NICK 348
539 < #define NICK_CHANGES 349
540 < #define NO_CREATE_ON_SPLIT 350
541 < #define NO_JOIN_ON_SPLIT 351
542 < #define NO_OPER_FLOOD 352
543 < #define NO_TILDE 353
544 < #define NUMBER 354
545 < #define NUMBER_PER_CIDR 355
546 < #define NUMBER_PER_IP 356
547 < #define OPERATOR 357
548 < #define OPERS_BYPASS_CALLERID 358
549 < #define OPER_ONLY_UMODES 359
550 < #define OPER_PASS_RESV 360
551 < #define OPER_SPY_T 361
552 < #define OPER_UMODES 362
553 < #define JOIN_FLOOD_COUNT 363
554 < #define JOIN_FLOOD_TIME 364
555 < #define PACE_WAIT 365
556 < #define PACE_WAIT_SIMPLE 366
557 < #define PASSWORD 367
558 < #define PATH 368
559 < #define PING_COOKIE 369
560 < #define PING_TIME 370
561 < #define PING_WARNING 371
562 < #define PORT 372
563 < #define QSTRING 373
564 < #define QUIET_ON_BAN 374
565 < #define REASON 375
566 < #define REDIRPORT 376
567 < #define REDIRSERV 377
568 < #define REGEX_T 378
569 < #define REHASH 379
570 < #define REMOTE 380
571 < #define REMOTEBAN 381
572 < #define RESTRICT_CHANNELS 382
573 < #define RSA_PRIVATE_KEY_FILE 383
574 < #define RSA_PUBLIC_KEY_FILE 384
575 < #define SSL_CERTIFICATE_FILE 385
576 < #define SSL_DH_PARAM_FILE 386
577 < #define T_SSL_CLIENT_METHOD 387
578 < #define T_SSL_SERVER_METHOD 388
579 < #define T_SSLV3 389
580 < #define T_TLSV1 390
581 < #define RESV 391
582 < #define RESV_EXEMPT 392
583 < #define SECONDS 393
584 < #define MINUTES 394
585 < #define HOURS 395
586 < #define DAYS 396
587 < #define WEEKS 397
588 < #define SENDQ 398
589 < #define SEND_PASSWORD 399
590 < #define SERVERHIDE 400
591 < #define SERVERINFO 401
592 < #define IRCD_SID 402
593 < #define TKLINE_EXPIRE_NOTICES 403
594 < #define T_SHARED 404
595 < #define T_CLUSTER 405
596 < #define TYPE 406
597 < #define SHORT_MOTD 407
598 < #define SPOOF 408
599 < #define SPOOF_NOTICE 409
600 < #define STATS_E_DISABLED 410
601 < #define STATS_I_OPER_ONLY 411
602 < #define STATS_K_OPER_ONLY 412
603 < #define STATS_O_OPER_ONLY 413
604 < #define STATS_P_OPER_ONLY 414
605 < #define TBOOL 415
606 < #define TMASKED 416
607 < #define TS_MAX_DELTA 417
608 < #define TS_WARN_DELTA 418
609 < #define TWODOTS 419
610 < #define T_ALL 420
611 < #define T_BOTS 421
612 < #define T_SOFTCALLERID 422
493 > #define HAVENT_READ_CONF 303
494 > #define HIDDEN 304
495 > #define HIDDEN_NAME 305
496 > #define HIDE_CHANS 306
497 > #define HIDE_IDLE 307
498 > #define HIDE_IDLE_FROM_OPERS 308
499 > #define HIDE_SERVER_IPS 309
500 > #define HIDE_SERVERS 310
501 > #define HIDE_SERVICES 311
502 > #define HIDE_SPOOF_IPS 312
503 > #define HOST 313
504 > #define HUB 314
505 > #define HUB_MASK 315
506 > #define IGNORE_BOGUS_TS 316
507 > #define INVISIBLE_ON_CONNECT 317
508 > #define INVITE_CLIENT_COUNT 318
509 > #define INVITE_CLIENT_TIME 319
510 > #define IP 320
511 > #define IRCD_AUTH 321
512 > #define IRCD_FLAGS 322
513 > #define IRCD_SID 323
514 > #define JOIN_FLOOD_COUNT 324
515 > #define JOIN_FLOOD_TIME 325
516 > #define KILL 326
517 > #define KILL_CHASE_TIME_LIMIT 327
518 > #define KLINE 328
519 > #define KLINE_EXEMPT 329
520 > #define KNOCK_CLIENT_COUNT 330
521 > #define KNOCK_CLIENT_TIME 331
522 > #define KNOCK_DELAY_CHANNEL 332
523 > #define LEAF_MASK 333
524 > #define LINKS_DELAY 334
525 > #define LISTEN 335
526 > #define MASK 336
527 > #define MAX_ACCEPT 337
528 > #define MAX_BANS 338
529 > #define MAX_CHANNELS 339
530 > #define MAX_GLOBAL 340
531 > #define MAX_IDENT 341
532 > #define MAX_IDLE 342
533 > #define MAX_LOCAL 343
534 > #define MAX_NICK_CHANGES 344
535 > #define MAX_NICK_LENGTH 345
536 > #define MAX_NICK_TIME 346
537 > #define MAX_NUMBER 347
538 > #define MAX_TARGETS 348
539 > #define MAX_TOPIC_LENGTH 349
540 > #define MAX_WATCH 350
541 > #define MIN_IDLE 351
542 > #define MIN_NONWILDCARD 352
543 > #define MIN_NONWILDCARD_SIMPLE 353
544 > #define MODULE 354
545 > #define MODULES 355
546 > #define MOTD 356
547 > #define NAME 357
548 > #define NEED_IDENT 358
549 > #define NEED_PASSWORD 359
550 > #define NETWORK_DESC 360
551 > #define NETWORK_NAME 361
552 > #define NICK 362
553 > #define NO_CREATE_ON_SPLIT 363
554 > #define NO_JOIN_ON_SPLIT 364
555 > #define NO_OPER_FLOOD 365
556 > #define NO_TILDE 366
557 > #define NUMBER 367
558 > #define NUMBER_PER_CIDR 368
559 > #define NUMBER_PER_IP 369
560 > #define OPER_ONLY_UMODES 370
561 > #define OPER_PASS_RESV 371
562 > #define OPER_UMODES 372
563 > #define OPERATOR 373
564 > #define OPERS_BYPASS_CALLERID 374
565 > #define PACE_WAIT 375
566 > #define PACE_WAIT_SIMPLE 376
567 > #define PASSWORD 377
568 > #define PATH 378
569 > #define PING_COOKIE 379
570 > #define PING_TIME 380
571 > #define PORT 381
572 > #define QSTRING 382
573 > #define RANDOM_IDLE 383
574 > #define REASON 384
575 > #define REDIRPORT 385
576 > #define REDIRSERV 386
577 > #define REHASH 387
578 > #define REMOTE 388
579 > #define REMOTEBAN 389
580 > #define RESV 390
581 > #define RESV_EXEMPT 391
582 > #define RSA_PRIVATE_KEY_FILE 392
583 > #define RSA_PUBLIC_KEY_FILE 393
584 > #define SECONDS 394
585 > #define MINUTES 395
586 > #define HOURS 396
587 > #define DAYS 397
588 > #define WEEKS 398
589 > #define MONTHS 399
590 > #define YEARS 400
591 > #define SEND_PASSWORD 401
592 > #define SENDQ 402
593 > #define SERVERHIDE 403
594 > #define SERVERINFO 404
595 > #define SHORT_MOTD 405
596 > #define SPOOF 406
597 > #define SPOOF_NOTICE 407
598 > #define SQUIT 408
599 > #define SSL_CERTIFICATE_FILE 409
600 > #define SSL_CERTIFICATE_FINGERPRINT 410
601 > #define SSL_CONNECTION_REQUIRED 411
602 > #define SSL_DH_ELLIPTIC_CURVE 412
603 > #define SSL_DH_PARAM_FILE 413
604 > #define SSL_MESSAGE_DIGEST_ALGORITHM 414
605 > #define STATS_E_DISABLED 415
606 > #define STATS_I_OPER_ONLY 416
607 > #define STATS_K_OPER_ONLY 417
608 > #define STATS_O_OPER_ONLY 418
609 > #define STATS_P_OPER_ONLY 419
610 > #define STATS_U_OPER_ONLY 420
611 > #define T_ALL 421
612 > #define T_BOTS 422
613   #define T_CALLERID 423
614   #define T_CCONN 424
615 < #define T_CCONN_FULL 425
616 < #define T_SSL_CIPHER_LIST 426
617 < #define T_DEAF 427
618 < #define T_DEBUG 428
619 < #define T_DLINE 429
620 < #define T_EXTERNAL 430
621 < #define T_FULL 431
622 < #define T_INVISIBLE 432
623 < #define T_IPV4 433
624 < #define T_IPV6 434
625 < #define T_LOCOPS 435
626 < #define T_MAX_CLIENTS 436
627 < #define T_NCHANGE 437
628 < #define T_OPERWALL 438
629 < #define T_RECVQ 439
630 < #define T_REJ 440
631 < #define T_SERVER 441
632 < #define T_SERVNOTICE 442
633 < #define T_SET 443
634 < #define T_SKILL 444
635 < #define T_SPY 445
636 < #define T_SSL 446
637 < #define T_UMODES 447
638 < #define T_UNAUTH 448
639 < #define T_UNDLINE 449
640 < #define T_UNLIMITED 450
641 < #define T_UNRESV 451
642 < #define T_UNXLINE 452
643 < #define T_GLOBOPS 453
644 < #define T_WALLOP 454
645 < #define T_RESTART 455
646 < #define T_SERVICE 456
647 < #define T_SERVICES_NAME 457
648 < #define THROTTLE_TIME 458
649 < #define TRUE_NO_OPER_FLOOD 459
650 < #define UNKLINE 460
651 < #define USER 461
652 < #define USE_EGD 462
653 < #define USE_LOGGING 463
654 < #define VHOST 464
655 < #define VHOST6 465
656 < #define XLINE 466
657 < #define WARN_NO_NLINE 467
658 < #define T_SIZE 468
659 < #define T_FILE 469
660 <
661 <
615 > #define T_CLUSTER 425
616 > #define T_DEAF 426
617 > #define T_DEBUG 427
618 > #define T_DLINE 428
619 > #define T_EXTERNAL 429
620 > #define T_FARCONNECT 430
621 > #define T_FILE 431
622 > #define T_FULL 432
623 > #define T_GLOBOPS 433
624 > #define T_INVISIBLE 434
625 > #define T_IPV4 435
626 > #define T_IPV6 436
627 > #define T_LOCOPS 437
628 > #define T_LOG 438
629 > #define T_MAX_CLIENTS 439
630 > #define T_NCHANGE 440
631 > #define T_NONONREG 441
632 > #define T_RECVQ 442
633 > #define T_REJ 443
634 > #define T_RESTART 444
635 > #define T_SERVER 445
636 > #define T_SERVICE 446
637 > #define T_SERVICES_NAME 447
638 > #define T_SERVNOTICE 448
639 > #define T_SET 449
640 > #define T_SHARED 450
641 > #define T_SIZE 451
642 > #define T_SKILL 452
643 > #define T_SOFTCALLERID 453
644 > #define T_SPY 454
645 > #define T_SSL 455
646 > #define T_SSL_CIPHER_LIST 456
647 > #define T_UMODES 457
648 > #define T_UNAUTH 458
649 > #define T_UNDLINE 459
650 > #define T_UNLIMITED 460
651 > #define T_UNRESV 461
652 > #define T_UNXLINE 462
653 > #define T_WALLOP 463
654 > #define T_WALLOPS 464
655 > #define T_WEBIRC 465
656 > #define TBOOL 466
657 > #define THROTTLE_COUNT 467
658 > #define THROTTLE_TIME 468
659 > #define TKLINE_EXPIRE_NOTICES 469
660 > #define TMASKED 470
661 > #define TRUE_NO_OPER_FLOOD 471
662 > #define TS_MAX_DELTA 472
663 > #define TS_WARN_DELTA 473
664 > #define TWODOTS 474
665 > #define TYPE 475
666 > #define UNKLINE 476
667 > #define USE_EGD 477
668 > #define USE_LOGGING 478
669 > #define USER 479
670 > #define VHOST 480
671 > #define VHOST6 481
672 > #define WARN_NO_CONNECT_BLOCK 482
673 > #define XLINE 483
674  
675 + /* Value type.  */
676   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
677 < typedef union YYSTYPE
677 > typedef union YYSTYPE YYSTYPE;
678 > union YYSTYPE
679   {
680 < /* Line 350 of yacc.c  */
622 < #line 110 "conf_parser.y"
680 > #line 147 "conf_parser.y" /* yacc.c:355  */
681  
682    int number;
683    char *string;
684  
685 <
686 < /* Line 350 of yacc.c  */
629 < #line 630 "conf_parser.c"
630 < } YYSTYPE;
685 > #line 686 "conf_parser.c" /* yacc.c:355  */
686 > };
687   # define YYSTYPE_IS_TRIVIAL 1
632 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
688   # define YYSTYPE_IS_DECLARED 1
689   #endif
690  
691 +
692   extern YYSTYPE yylval;
693  
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
694   int yyparse (void);
647 #else
648 int yyparse ();
649 #endif
650 #endif /* ! YYPARSE_PARAM */
695  
696 < #endif /* !YY_Y_TAB_H  */
696 > #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
697  
698   /* Copy the second part of user declarations.  */
699  
700 < /* Line 353 of yacc.c  */
657 < #line 658 "conf_parser.c"
700 > #line 701 "conf_parser.c" /* yacc.c:358  */
701  
702   #ifdef short
703   # undef short
# Line 668 | Line 711 | typedef unsigned char yytype_uint8;
711  
712   #ifdef YYTYPE_INT8
713   typedef YYTYPE_INT8 yytype_int8;
671 #elif (defined __STDC__ || defined __C99__FUNC__ \
672     || defined __cplusplus || defined _MSC_VER)
673 typedef signed char yytype_int8;
714   #else
715 < typedef short int yytype_int8;
715 > typedef signed char yytype_int8;
716   #endif
717  
718   #ifdef YYTYPE_UINT16
# Line 692 | Line 732 | typedef short int yytype_int16;
732   #  define YYSIZE_T __SIZE_TYPE__
733   # elif defined size_t
734   #  define YYSIZE_T size_t
735 < # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
696 <     || defined __cplusplus || defined _MSC_VER)
735 > # elif ! defined YYSIZE_T
736   #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
737   #  define YYSIZE_T size_t
738   # else
# Line 707 | Line 746 | typedef short int yytype_int16;
746   # if defined YYENABLE_NLS && YYENABLE_NLS
747   #  if ENABLE_NLS
748   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
749 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
749 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
750   #  endif
751   # endif
752   # ifndef YY_
753 < #  define YY_(msgid) msgid
753 > #  define YY_(Msgid) Msgid
754 > # endif
755 > #endif
756 >
757 > #ifndef YY_ATTRIBUTE
758 > # if (defined __GNUC__                                               \
759 >      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
760 >     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
761 > #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
762 > # else
763 > #  define YY_ATTRIBUTE(Spec) /* empty */
764 > # endif
765 > #endif
766 >
767 > #ifndef YY_ATTRIBUTE_PURE
768 > # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
769 > #endif
770 >
771 > #ifndef YY_ATTRIBUTE_UNUSED
772 > # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
773 > #endif
774 >
775 > #if !defined _Noreturn \
776 >     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
777 > # if defined _MSC_VER && 1200 <= _MSC_VER
778 > #  define _Noreturn __declspec (noreturn)
779 > # else
780 > #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
781   # endif
782   #endif
783  
784   /* Suppress unused-variable warnings by "using" E.  */
785   #if ! defined lint || defined __GNUC__
786 < # define YYUSE(e) ((void) (e))
786 > # define YYUSE(E) ((void) (E))
787   #else
788 < # define YYUSE(e) /* empty */
788 > # define YYUSE(E) /* empty */
789   #endif
790  
791 < /* Identity function, used to suppress warnings about constant conditions.  */
792 < #ifndef lint
793 < # define YYID(n) (n)
791 > #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
792 > /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
793 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
794 >    _Pragma ("GCC diagnostic push") \
795 >    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
796 >    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
797 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
798 >    _Pragma ("GCC diagnostic pop")
799   #else
800 < #if (defined __STDC__ || defined __C99__FUNC__ \
730 <     || defined __cplusplus || defined _MSC_VER)
731 < static int
732 < YYID (int yyi)
733 < #else
734 < static int
735 < YYID (yyi)
736 <    int yyi;
800 > # define YY_INITIAL_VALUE(Value) Value
801   #endif
802 < {
803 <  return yyi;
804 < }
802 > #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
803 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
804 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END
805   #endif
806 + #ifndef YY_INITIAL_VALUE
807 + # define YY_INITIAL_VALUE(Value) /* Nothing. */
808 + #endif
809 +
810  
811   #if ! defined yyoverflow || YYERROR_VERBOSE
812  
# Line 757 | Line 825 | YYID (yyi)
825   #    define alloca _alloca
826   #   else
827   #    define YYSTACK_ALLOC alloca
828 < #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
761 <     || defined __cplusplus || defined _MSC_VER)
828 > #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
829   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
830        /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
831   #     ifndef EXIT_SUCCESS
# Line 770 | Line 837 | YYID (yyi)
837   # endif
838  
839   # ifdef YYSTACK_ALLOC
840 <   /* Pacify GCC's `empty if-body' warning.  */
841 < #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
840 >   /* Pacify GCC's 'empty if-body' warning.  */
841 > #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
842   #  ifndef YYSTACK_ALLOC_MAXIMUM
843      /* The OS might guarantee only one guard page at the bottom of the stack,
844         and a page size can be as small as 4096 bytes.  So we cannot safely
# Line 787 | Line 854 | YYID (yyi)
854   #  endif
855   #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
856         && ! ((defined YYMALLOC || defined malloc) \
857 <             && (defined YYFREE || defined free)))
857 >             && (defined YYFREE || defined free)))
858   #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
859   #   ifndef EXIT_SUCCESS
860   #    define EXIT_SUCCESS 0
# Line 795 | Line 862 | YYID (yyi)
862   #  endif
863   #  ifndef YYMALLOC
864   #   define YYMALLOC malloc
865 < #   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
799 <     || defined __cplusplus || defined _MSC_VER)
865 > #   if ! defined malloc && ! defined EXIT_SUCCESS
866   void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
867   #   endif
868   #  endif
869   #  ifndef YYFREE
870   #   define YYFREE free
871 < #   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
806 <     || defined __cplusplus || defined _MSC_VER)
871 > #   if ! defined free && ! defined EXIT_SUCCESS
872   void free (void *); /* INFRINGES ON USER NAME SPACE */
873   #   endif
874   #  endif
# Line 813 | Line 878 | void free (void *); /* INFRINGES ON USER
878  
879   #if (! defined yyoverflow \
880       && (! defined __cplusplus \
881 <         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
881 >         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
882  
883   /* A type that is properly aligned for any stack member.  */
884   union yyalloc
# Line 838 | Line 903 | union yyalloc
903     elements in the stack, and YYPTR gives the new location of the
904     stack.  Advance YYPTR to a properly aligned location for the next
905     stack.  */
906 < # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
907 <    do                                                                  \
908 <      {                                                                 \
909 <        YYSIZE_T yynewbytes;                                            \
910 <        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
911 <        Stack = &yyptr->Stack_alloc;                                    \
912 <        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
913 <        yyptr += yynewbytes / sizeof (*yyptr);                          \
914 <      }                                                                 \
915 <    while (YYID (0))
906 > # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
907 >    do                                                                  \
908 >      {                                                                 \
909 >        YYSIZE_T yynewbytes;                                            \
910 >        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
911 >        Stack = &yyptr->Stack_alloc;                                    \
912 >        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
913 >        yyptr += yynewbytes / sizeof (*yyptr);                          \
914 >      }                                                                 \
915 >    while (0)
916  
917   #endif
918  
# Line 866 | Line 931 | union yyalloc
931            for (yyi = 0; yyi < (Count); yyi++)   \
932              (Dst)[yyi] = (Src)[yyi];            \
933          }                                       \
934 <      while (YYID (0))
934 >      while (0)
935   #  endif
936   # endif
937   #endif /* !YYCOPY_NEEDED */
# Line 874 | Line 939 | union yyalloc
939   /* YYFINAL -- State number of the termination state.  */
940   #define YYFINAL  2
941   /* YYLAST -- Last index in YYTABLE.  */
942 < #define YYLAST   1206
942 > #define YYLAST   1364
943  
944   /* YYNTOKENS -- Number of terminals.  */
945 < #define YYNTOKENS  220
945 > #define YYNTOKENS  235
946   /* YYNNTS -- Number of nonterminals.  */
947 < #define YYNNTS  283
947 > #define YYNNTS  289
948   /* YYNRULES -- Number of rules.  */
949 < #define YYNRULES  627
950 < /* YYNRULES -- Number of states.  */
951 < #define YYNSTATES  1228
949 > #define YYNRULES  653
950 > /* YYNSTATES -- Number of states.  */
951 > #define YYNSTATES  1288
952  
953 < /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
953 > /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
954 >   by yylex, with out-of-bounds checking.  */
955   #define YYUNDEFTOK  2
956 < #define YYMAXUTOK   469
956 > #define YYMAXUTOK   483
957  
958 < #define YYTRANSLATE(YYX)                                                \
958 > #define YYTRANSLATE(YYX)                                                \
959    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
960  
961 < /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
961 > /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
962 >   as returned by yylex, without out-of-bounds checking.  */
963   static const yytype_uint8 yytranslate[] =
964   {
965         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
966         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
967         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
968         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
969 <       2,     2,     2,     2,   219,     2,     2,     2,     2,     2,
970 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   215,
971 <       2,   218,     2,     2,     2,     2,     2,     2,     2,     2,
969 >       2,     2,     2,     2,   233,     2,     2,     2,     2,     2,
970 >       2,     2,     2,     2,     2,     2,     2,     2,   234,   229,
971 >       2,   232,     2,     2,     2,     2,     2,     2,     2,     2,
972         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
973         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
974         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
975         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
976         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
977 <       2,     2,     2,   217,     2,   216,     2,     2,     2,     2,
977 >       2,     2,     2,   231,     2,   230,     2,     2,     2,     2,
978         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
979         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
980         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 941 | Line 1008 | static const yytype_uint8 yytranslate[]
1008       175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1009       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1010       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1011 <     205,   206,   207,   208,   209,   210,   211,   212,   213,   214
1011 >     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1012 >     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1013 >     225,   226,   227,   228
1014   };
1015  
1016   #if YYDEBUG
1017 < /* 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.  */
1017 >  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1018   static const yytype_uint16 yyrline[] =
1019   {
1020 <       0,   330,   330,   331,   334,   335,   336,   337,   338,   339,
1021 <     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
1022 <     350,   351,   352,   353,   354,   355,   359,   359,   360,   364,
1023 <     368,   372,   376,   380,   386,   386,   387,   388,   389,   390,
1024 <     397,   400,   400,   401,   401,   401,   403,   409,   416,   418,
1025 <     418,   419,   419,   420,   420,   421,   421,   422,   422,   423,
1026 <     423,   424,   424,   425,   425,   426,   427,   430,   431,   433,
1027 <     433,   434,   440,   448,   448,   449,   455,   463,   502,   561,
1028 <     589,   597,   612,   627,   636,   650,   659,   687,   717,   740,
1029 <     749,   751,   751,   752,   752,   753,   753,   755,   764,   773,
1030 <     785,   786,   786,   788,   788,   789,   791,   798,   798,   808,
1031 <     809,   811,   811,   812,   812,   814,   819,   822,   828,   827,
1032 <     833,   833,   834,   838,   842,   846,   850,   854,   858,   869,
1033 <     868,   966,   966,   967,   967,   967,   968,   968,   968,   969,
1034 <     969,   969,   971,   980,  1017,  1029,  1040,  1082,  1092,  1091,
1035 <    1097,  1097,  1098,  1102,  1106,  1110,  1114,  1118,  1122,  1126,
1036 <    1130,  1134,  1138,  1142,  1146,  1150,  1154,  1158,  1162,  1166,
1037 <    1170,  1174,  1181,  1180,  1186,  1186,  1187,  1191,  1195,  1199,
1038 <    1203,  1207,  1211,  1215,  1219,  1223,  1227,  1231,  1235,  1239,
1039 <    1243,  1247,  1251,  1255,  1259,  1270,  1269,  1319,  1319,  1320,
1040 <    1321,  1321,  1322,  1323,  1324,  1325,  1326,  1327,  1328,  1329,
1041 <    1330,  1331,  1331,  1332,  1334,  1343,  1349,  1355,  1361,  1367,
1042 <    1373,  1379,  1385,  1391,  1397,  1404,  1410,  1416,  1426,  1425,
1043 <    1442,  1441,  1446,  1446,  1447,  1451,  1455,  1463,  1463,  1464,
1044 <    1464,  1464,  1464,  1464,  1466,  1466,  1468,  1468,  1470,  1484,
1045 <    1504,  1513,  1526,  1525,  1594,  1594,  1595,  1595,  1595,  1595,
1046 <    1596,  1596,  1596,  1597,  1597,  1599,  1634,  1647,  1656,  1668,
1047 <    1667,  1671,  1671,  1672,  1676,  1680,  1684,  1688,  1692,  1696,
1048 <    1700,  1704,  1710,  1729,  1739,  1753,  1752,  1768,  1768,  1769,
1049 <    1769,  1769,  1769,  1771,  1780,  1795,  1808,  1810,  1810,  1811,
1050 <    1811,  1813,  1829,  1828,  1844,  1844,  1845,  1845,  1845,  1845,
1051 <    1847,  1856,  1879,  1878,  1884,  1884,  1885,  1889,  1893,  1897,
1052 <    1901,  1905,  1909,  1913,  1917,  1921,  1931,  1930,  1947,  1947,
1053 <    1948,  1948,  1948,  1950,  1957,  1956,  1962,  1962,  1963,  1967,
1054 <    1971,  1975,  1979,  1983,  1987,  1991,  1995,  1999,  2009,  2008,
1055 <    2059,  2059,  2060,  2060,  2060,  2061,  2061,  2062,  2062,  2062,
1056 <    2063,  2063,  2063,  2064,  2064,  2065,  2067,  2076,  2085,  2111,
1057 <    2129,  2147,  2153,  2157,  2166,  2165,  2169,  2169,  2170,  2174,
1058 <    2180,  2191,  2202,  2213,  2222,  2241,  2240,  2306,  2305,  2309,
1059 <    2309,  2310,  2316,  2316,  2317,  2317,  2317,  2317,  2319,  2338,
1060 <    2348,  2347,  2372,  2372,  2373,  2373,  2373,  2375,  2381,  2390,
1061 <    2392,  2392,  2393,  2393,  2395,  2414,  2413,  2461,  2460,  2464,
1062 <    2464,  2465,  2471,  2471,  2472,  2472,  2472,  2472,  2474,  2480,
1063 <    2489,  2492,  2492,  2493,  2493,  2494,  2494,  2495,  2495,  2496,
1064 <    2496,  2497,  2497,  2498,  2499,  2500,  2500,  2501,  2501,  2502,
1065 <    2502,  2503,  2503,  2504,  2504,  2505,  2505,  2506,  2507,  2507,
1066 <    2508,  2508,  2509,  2509,  2510,  2510,  2511,  2511,  2512,  2513,
1067 <    2513,  2514,  2515,  2516,  2516,  2517,  2517,  2518,  2519,  2520,
1068 <    2521,  2521,  2522,  2525,  2530,  2536,  2542,  2548,  2553,  2558,
1069 <    2563,  2568,  2573,  2578,  2583,  2588,  2593,  2598,  2603,  2608,
1070 <    2613,  2618,  2624,  2635,  2640,  2645,  2650,  2655,  2660,  2663,
1071 <    2668,  2671,  2676,  2681,  2686,  2691,  2696,  2701,  2706,  2711,
1072 <    2716,  2727,  2732,  2737,  2742,  2751,  2760,  2765,  2770,  2776,
1073 <    2775,  2780,  2780,  2781,  2784,  2787,  2790,  2793,  2796,  2799,
1074 <    2802,  2805,  2808,  2811,  2814,  2817,  2820,  2823,  2826,  2829,
1075 <    2832,  2835,  2838,  2844,  2843,  2848,  2848,  2849,  2852,  2855,
1076 <    2858,  2861,  2864,  2867,  2870,  2873,  2876,  2879,  2882,  2885,
1077 <    2888,  2891,  2894,  2897,  2900,  2903,  2906,  2911,  2916,  2921,
1078 <    2930,  2933,  2933,  2934,  2935,  2935,  2936,  2936,  2937,  2937,
1079 <    2938,  2939,  2939,  2940,  2941,  2941,  2942,  2942,  2944,  2949,
1080 <    2954,  2959,  2964,  2969,  2974,  2979,  2984,  2989,  2994,  2999,
1081 <    3004,  3009,  3017,  3020,  3020,  3021,  3021,  3022,  3023,  3023,
1082 <    3024,  3025,  3027,  3033,  3039,  3048,  3062,  3068
1020 >       0,   379,   379,   380,   383,   384,   385,   386,   387,   388,
1021 >     389,   390,   391,   392,   393,   394,   395,   396,   397,   398,
1022 >     399,   400,   401,   402,   403,   404,   405,   409,   409,   410,
1023 >     411,   412,   413,   414,   415,   416,   417,   420,   420,   421,
1024 >     422,   423,   424,   431,   434,   434,   435,   435,   435,   437,
1025 >     443,   450,   452,   452,   453,   454,   455,   456,   457,   458,
1026 >     459,   460,   461,   462,   463,   464,   465,   466,   467,   468,
1027 >     469,   470,   473,   515,   573,   602,   610,   624,   652,   667,
1028 >     682,   691,   705,   714,   742,   772,   797,   819,   841,   850,
1029 >     852,   852,   853,   854,   855,   856,   858,   867,   876,   889,
1030 >     888,   906,   906,   907,   907,   907,   909,   915,   924,   925,
1031 >     925,   927,   927,   928,   930,   937,   937,   950,   951,   953,
1032 >     953,   954,   954,   956,   964,   967,   973,   972,   978,   978,
1033 >     979,   983,   987,   991,   995,   999,  1003,  1007,  1011,  1022,
1034 >    1021,  1107,  1107,  1108,  1109,  1110,  1111,  1112,  1113,  1114,
1035 >    1115,  1116,  1117,  1118,  1120,  1126,  1132,  1138,  1149,  1155,
1036 >    1161,  1172,  1179,  1178,  1184,  1184,  1185,  1189,  1193,  1197,
1037 >    1201,  1205,  1209,  1213,  1217,  1221,  1225,  1229,  1233,  1237,
1038 >    1241,  1245,  1249,  1253,  1257,  1261,  1265,  1269,  1276,  1275,
1039 >    1281,  1281,  1282,  1286,  1290,  1294,  1298,  1302,  1306,  1310,
1040 >    1314,  1318,  1322,  1326,  1330,  1334,  1338,  1342,  1346,  1350,
1041 >    1354,  1358,  1362,  1366,  1370,  1381,  1380,  1442,  1442,  1443,
1042 >    1444,  1445,  1446,  1447,  1448,  1449,  1450,  1451,  1452,  1453,
1043 >    1454,  1455,  1455,  1456,  1457,  1458,  1459,  1461,  1467,  1473,
1044 >    1479,  1485,  1491,  1497,  1503,  1509,  1515,  1521,  1528,  1534,
1045 >    1540,  1546,  1555,  1565,  1564,  1570,  1570,  1571,  1575,  1586,
1046 >    1585,  1592,  1591,  1596,  1596,  1597,  1601,  1605,  1611,  1611,
1047 >    1612,  1612,  1612,  1612,  1612,  1614,  1614,  1616,  1616,  1618,
1048 >    1632,  1650,  1656,  1666,  1665,  1707,  1707,  1708,  1709,  1710,
1049 >    1711,  1712,  1713,  1714,  1715,  1716,  1718,  1724,  1730,  1736,
1050 >    1748,  1747,  1753,  1753,  1754,  1758,  1762,  1766,  1770,  1774,
1051 >    1778,  1782,  1786,  1790,  1796,  1810,  1819,  1833,  1832,  1847,
1052 >    1847,  1848,  1848,  1848,  1848,  1850,  1856,  1862,  1872,  1874,
1053 >    1874,  1875,  1875,  1877,  1893,  1892,  1917,  1917,  1918,  1918,
1054 >    1918,  1918,  1920,  1926,  1946,  1945,  1951,  1951,  1952,  1956,
1055 >    1960,  1964,  1968,  1972,  1976,  1980,  1984,  1988,  1998,  1997,
1056 >    2018,  2018,  2019,  2019,  2019,  2021,  2028,  2027,  2033,  2033,
1057 >    2034,  2038,  2042,  2046,  2050,  2054,  2058,  2062,  2066,  2070,
1058 >    2080,  2079,  2151,  2151,  2152,  2153,  2154,  2155,  2156,  2157,
1059 >    2158,  2159,  2160,  2161,  2162,  2163,  2164,  2165,  2166,  2168,
1060 >    2174,  2180,  2186,  2199,  2212,  2218,  2224,  2228,  2237,  2236,
1061 >    2241,  2241,  2242,  2246,  2252,  2263,  2269,  2275,  2281,  2297,
1062 >    2296,  2322,  2322,  2323,  2323,  2323,  2325,  2345,  2355,  2354,
1063 >    2381,  2381,  2382,  2382,  2382,  2384,  2390,  2399,  2401,  2401,
1064 >    2402,  2402,  2404,  2422,  2421,  2444,  2444,  2445,  2445,  2445,
1065 >    2447,  2453,  2462,  2465,  2465,  2466,  2467,  2468,  2469,  2470,
1066 >    2471,  2472,  2473,  2474,  2475,  2476,  2477,  2478,  2479,  2480,
1067 >    2481,  2482,  2483,  2484,  2485,  2486,  2487,  2488,  2489,  2490,
1068 >    2491,  2492,  2493,  2494,  2495,  2496,  2497,  2498,  2499,  2500,
1069 >    2501,  2502,  2503,  2504,  2505,  2506,  2507,  2508,  2509,  2510,
1070 >    2511,  2512,  2513,  2514,  2517,  2522,  2528,  2534,  2540,  2546,
1071 >    2551,  2556,  2561,  2566,  2571,  2576,  2581,  2586,  2591,  2596,
1072 >    2601,  2606,  2611,  2617,  2628,  2633,  2638,  2643,  2648,  2653,
1073 >    2658,  2661,  2666,  2669,  2674,  2679,  2684,  2689,  2694,  2699,
1074 >    2704,  2709,  2714,  2719,  2724,  2733,  2738,  2743,  2748,  2754,
1075 >    2753,  2758,  2758,  2759,  2762,  2765,  2768,  2771,  2774,  2777,
1076 >    2780,  2783,  2786,  2789,  2792,  2795,  2798,  2801,  2804,  2807,
1077 >    2810,  2813,  2816,  2819,  2822,  2828,  2827,  2832,  2832,  2833,
1078 >    2836,  2839,  2842,  2845,  2848,  2851,  2854,  2857,  2860,  2863,
1079 >    2866,  2869,  2872,  2875,  2878,  2881,  2884,  2887,  2890,  2895,
1080 >    2900,  2905,  2914,  2917,  2917,  2918,  2919,  2920,  2921,  2922,
1081 >    2923,  2924,  2925,  2926,  2927,  2928,  2929,  2930,  2931,  2932,
1082 >    2934,  2939,  2944,  2949,  2954,  2959,  2964,  2969,  2974,  2979,
1083 >    2984,  2989,  2994,  2999,  3007,  3010,  3010,  3011,  3012,  3013,
1084 >    3014,  3015,  3016,  3017,  3018,  3019,  3021,  3027,  3033,  3039,
1085 >    3045,  3054,  3069,  3075
1086   };
1087   #endif
1088  
# Line 1288 | Line 1095 | static const char *const yytname[] =
1095    "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1096    "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1097    "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1098 <  "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1099 <  "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1100 <  "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1101 <  "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1102 <  "FAILED_OPER_NOTICE", "IRCD_FLAGS", "FLATTEN_LINKS", "GECOS", "GENERAL",
1103 <  "GLINE", "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT",
1104 <  "GLINE_REQUEST_DURATION", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1105 <  "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1106 <  "HIDDEN_NAME", "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SPOOF_IPS",
1098 >  "CONNECTFREQ", "CYCLE_ON_HOST_CHANGE", "DEFAULT_FLOODCOUNT",
1099 >  "DEFAULT_SPLIT_SERVER_COUNT", "DEFAULT_SPLIT_USER_COUNT", "DENY",
1100 >  "DESCRIPTION", "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1101 >  "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT", "EGDPOOL_PATH", "EMAIL",
1102 >  "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT", "FAILED_OPER_NOTICE",
1103 >  "FLATTEN_LINKS", "GECOS", "GENERAL", "GLINE", "GLINE_DURATION",
1104 >  "GLINE_ENABLE", "GLINE_EXEMPT", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1105 >  "GLINE_REQUEST_DURATION", "GLOBAL_KILL", "HAVENT_READ_CONF", "HIDDEN",
1106 >  "HIDDEN_NAME", "HIDE_CHANS", "HIDE_IDLE", "HIDE_IDLE_FROM_OPERS",
1107 >  "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SERVICES", "HIDE_SPOOF_IPS",
1108    "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1109 <  "IP", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT",
1110 <  "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY",
1111 <  "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_OPER",
1112 <  "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1113 <  "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1114 <  "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1115 <  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1116 <  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1109 >  "INVITE_CLIENT_COUNT", "INVITE_CLIENT_TIME", "IP", "IRCD_AUTH",
1110 >  "IRCD_FLAGS", "IRCD_SID", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "KILL",
1111 >  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KNOCK_CLIENT_COUNT",
1112 >  "KNOCK_CLIENT_TIME", "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY",
1113 >  "LISTEN", "MASK", "MAX_ACCEPT", "MAX_BANS", "MAX_CHANNELS", "MAX_GLOBAL",
1114 >  "MAX_IDENT", "MAX_IDLE", "MAX_LOCAL", "MAX_NICK_CHANGES",
1115 >  "MAX_NICK_LENGTH", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1116 >  "MAX_TOPIC_LENGTH", "MAX_WATCH", "MIN_IDLE", "MIN_NONWILDCARD",
1117 >  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "MOTD", "NAME",
1118 >  "NEED_IDENT", "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME", "NICK",
1119    "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1120 <  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPERATOR",
1121 <  "OPERS_BYPASS_CALLERID", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1312 <  "OPER_SPY_T", "OPER_UMODES", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME",
1120 >  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPER_ONLY_UMODES",
1121 >  "OPER_PASS_RESV", "OPER_UMODES", "OPERATOR", "OPERS_BYPASS_CALLERID",
1122    "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1123 <  "PING_TIME", "PING_WARNING", "PORT", "QSTRING", "QUIET_ON_BAN", "REASON",
1124 <  "REDIRPORT", "REDIRSERV", "REGEX_T", "REHASH", "REMOTE", "REMOTEBAN",
1125 <  "RESTRICT_CHANNELS", "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE",
1126 <  "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE", "T_SSL_CLIENT_METHOD",
1127 <  "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT",
1128 <  "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD",
1129 <  "SERVERHIDE", "SERVERINFO", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1130 <  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1131 <  "STATS_E_DISABLED", "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY",
1132 <  "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL", "TMASKED",
1133 <  "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS",
1134 <  "T_SOFTCALLERID", "T_CALLERID", "T_CCONN", "T_CCONN_FULL",
1135 <  "T_SSL_CIPHER_LIST", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1136 <  "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_MAX_CLIENTS",
1137 <  "T_NCHANGE", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_SERVER",
1138 <  "T_SERVNOTICE", "T_SET", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES",
1139 <  "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV", "T_UNXLINE",
1140 <  "T_GLOBOPS", "T_WALLOP", "T_RESTART", "T_SERVICE", "T_SERVICES_NAME",
1141 <  "THROTTLE_TIME", "TRUE_NO_OPER_FLOOD", "UNKLINE", "USER", "USE_EGD",
1142 <  "USE_LOGGING", "VHOST", "VHOST6", "XLINE", "WARN_NO_NLINE", "T_SIZE",
1143 <  "T_FILE", "';'", "'}'", "'{'", "'='", "','", "$accept", "conf",
1144 <  "conf_item", "timespec_", "timespec", "sizespec_", "sizespec",
1145 <  "modules_entry", "modules_items", "modules_item", "modules_module",
1146 <  "modules_path", "serverinfo_entry", "serverinfo_items",
1147 <  "serverinfo_item", "serverinfo_ssl_client_method",
1148 <  "serverinfo_ssl_server_method", "client_method_types",
1340 <  "client_method_type_item", "server_method_types",
1341 <  "server_method_type_item", "serverinfo_ssl_certificate_file",
1123 >  "PING_TIME", "PORT", "QSTRING", "RANDOM_IDLE", "REASON", "REDIRPORT",
1124 >  "REDIRSERV", "REHASH", "REMOTE", "REMOTEBAN", "RESV", "RESV_EXEMPT",
1125 >  "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE", "SECONDS", "MINUTES",
1126 >  "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ",
1127 >  "SERVERHIDE", "SERVERINFO", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1128 >  "SQUIT", "SSL_CERTIFICATE_FILE", "SSL_CERTIFICATE_FINGERPRINT",
1129 >  "SSL_CONNECTION_REQUIRED", "SSL_DH_ELLIPTIC_CURVE", "SSL_DH_PARAM_FILE",
1130 >  "SSL_MESSAGE_DIGEST_ALGORITHM", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1131 >  "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY",
1132 >  "STATS_U_OPER_ONLY", "T_ALL", "T_BOTS", "T_CALLERID", "T_CCONN",
1133 >  "T_CLUSTER", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1134 >  "T_FARCONNECT", "T_FILE", "T_FULL", "T_GLOBOPS", "T_INVISIBLE", "T_IPV4",
1135 >  "T_IPV6", "T_LOCOPS", "T_LOG", "T_MAX_CLIENTS", "T_NCHANGE",
1136 >  "T_NONONREG", "T_RECVQ", "T_REJ", "T_RESTART", "T_SERVER", "T_SERVICE",
1137 >  "T_SERVICES_NAME", "T_SERVNOTICE", "T_SET", "T_SHARED", "T_SIZE",
1138 >  "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL", "T_SSL_CIPHER_LIST",
1139 >  "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV",
1140 >  "T_UNXLINE", "T_WALLOP", "T_WALLOPS", "T_WEBIRC", "TBOOL",
1141 >  "THROTTLE_COUNT", "THROTTLE_TIME", "TKLINE_EXPIRE_NOTICES", "TMASKED",
1142 >  "TRUE_NO_OPER_FLOOD", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "TYPE",
1143 >  "UNKLINE", "USE_EGD", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1144 >  "WARN_NO_CONNECT_BLOCK", "XLINE", "';'", "'}'", "'{'", "'='", "','",
1145 >  "':'", "$accept", "conf", "conf_item", "timespec_", "timespec",
1146 >  "sizespec_", "sizespec", "modules_entry", "modules_items",
1147 >  "modules_item", "modules_module", "modules_path", "serverinfo_entry",
1148 >  "serverinfo_items", "serverinfo_item", "serverinfo_ssl_certificate_file",
1149    "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1150 <  "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1150 >  "serverinfo_ssl_cipher_list", "serverinfo_ssl_message_digest_algorithm",
1151 >  "serverinfo_ssl_dh_elliptic_curve", "serverinfo_name", "serverinfo_sid",
1152    "serverinfo_description", "serverinfo_network_name",
1153    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1154 <  "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1155 <  "admin_item", "admin_name", "admin_email", "admin_description",
1156 <  "logging_entry", "logging_items", "logging_item", "logging_use_logging",
1157 <  "logging_file_entry", "$@1", "logging_file_items", "logging_file_item",
1158 <  "logging_file_name", "logging_file_size", "logging_file_type", "$@2",
1159 <  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@3",
1154 >  "serverinfo_max_clients", "serverinfo_max_nick_length",
1155 >  "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1156 >  "admin_items", "admin_item", "admin_name", "admin_email",
1157 >  "admin_description", "motd_entry", "$@1", "motd_items", "motd_item",
1158 >  "motd_mask", "motd_file", "logging_entry", "logging_items",
1159 >  "logging_item", "logging_use_logging", "logging_file_entry", "$@2",
1160 >  "logging_file_items", "logging_file_item", "logging_file_name",
1161 >  "logging_file_size", "logging_file_type", "$@3",
1162 >  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@4",
1163    "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1164 <  "oper_encrypted", "oper_rsa_public_key_file", "oper_class",
1165 <  "oper_umodes", "$@4", "oper_umodes_items", "oper_umodes_item",
1166 <  "oper_flags", "$@5", "oper_flags_items", "oper_flags_item",
1167 <  "class_entry", "$@6", "class_items", "class_item", "class_name",
1168 <  "class_ping_time", "class_ping_warning", "class_number_per_ip",
1169 <  "class_connectfreq", "class_max_number", "class_max_global",
1170 <  "class_max_local", "class_max_ident", "class_sendq", "class_recvq",
1171 <  "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1172 <  "class_number_per_cidr", "listen_entry", "$@7", "listen_flags", "$@8",
1173 <  "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1174 <  "listen_port", "$@9", "port_items", "port_item", "listen_address",
1175 <  "listen_host", "auth_entry", "$@10", "auth_items", "auth_item",
1176 <  "auth_user", "auth_passwd", "auth_class", "auth_encrypted", "auth_flags",
1177 <  "$@11", "auth_flags_items", "auth_flags_item", "auth_spoof",
1178 <  "auth_redir_serv", "auth_redir_port", "resv_entry", "$@12", "resv_items",
1179 <  "resv_item", "resv_creason", "resv_channel", "resv_nick",
1180 <  "service_entry", "service_items", "service_item", "service_name",
1181 <  "shared_entry", "$@13", "shared_items", "shared_item", "shared_name",
1182 <  "shared_user", "shared_type", "$@14", "shared_types", "shared_type_item",
1183 <  "cluster_entry", "$@15", "cluster_items", "cluster_item", "cluster_name",
1184 <  "cluster_type", "$@16", "cluster_types", "cluster_type_item",
1185 <  "connect_entry", "$@17", "connect_items", "connect_item", "connect_name",
1164 >  "oper_encrypted", "oper_rsa_public_key_file",
1165 >  "oper_ssl_certificate_fingerprint", "oper_ssl_connection_required",
1166 >  "oper_class", "oper_umodes", "$@5", "oper_umodes_items",
1167 >  "oper_umodes_item", "oper_flags", "$@6", "oper_flags_items",
1168 >  "oper_flags_item", "class_entry", "$@7", "class_items", "class_item",
1169 >  "class_name", "class_ping_time", "class_number_per_ip",
1170 >  "class_connectfreq", "class_max_channels", "class_max_number",
1171 >  "class_max_global", "class_max_local", "class_max_ident", "class_sendq",
1172 >  "class_recvq", "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1173 >  "class_number_per_cidr", "class_min_idle", "class_max_idle",
1174 >  "class_flags", "$@8", "class_flags_items", "class_flags_item",
1175 >  "listen_entry", "$@9", "listen_flags", "$@10", "listen_flags_items",
1176 >  "listen_flags_item", "listen_items", "listen_item", "listen_port",
1177 >  "$@11", "port_items", "port_item", "listen_address", "listen_host",
1178 >  "auth_entry", "$@12", "auth_items", "auth_item", "auth_user",
1179 >  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@13",
1180 >  "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1181 >  "auth_redir_port", "resv_entry", "$@14", "resv_items", "resv_item",
1182 >  "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1183 >  "service_items", "service_item", "service_name", "shared_entry", "$@15",
1184 >  "shared_items", "shared_item", "shared_name", "shared_user",
1185 >  "shared_type", "$@16", "shared_types", "shared_type_item",
1186 >  "cluster_entry", "$@17", "cluster_items", "cluster_item", "cluster_name",
1187 >  "cluster_type", "$@18", "cluster_types", "cluster_type_item",
1188 >  "connect_entry", "$@19", "connect_items", "connect_item", "connect_name",
1189    "connect_host", "connect_vhost", "connect_send_password",
1190 <  "connect_accept_password", "connect_port", "connect_aftype",
1191 <  "connect_flags", "$@18", "connect_flags_items", "connect_flags_item",
1192 <  "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1193 <  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@19",
1194 <  "kill_type", "$@20", "kill_type_items", "kill_type_item", "kill_items",
1195 <  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@21",
1190 >  "connect_accept_password", "connect_ssl_certificate_fingerprint",
1191 >  "connect_port", "connect_aftype", "connect_flags", "$@20",
1192 >  "connect_flags_items", "connect_flags_item", "connect_encrypted",
1193 >  "connect_hub_mask", "connect_leaf_mask", "connect_class",
1194 >  "connect_ssl_cipher_list", "kill_entry", "$@21", "kill_items",
1195 >  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@22",
1196    "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1197 <  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@22",
1384 <  "gecos_flags", "$@23", "gecos_flags_items", "gecos_flags_item",
1197 >  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@23",
1198    "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1199    "general_entry", "general_items", "general_item", "general_max_watch",
1200 <  "general_gline_enable", "general_gline_duration",
1201 <  "general_gline_request_duration", "general_gline_min_cidr",
1202 <  "general_gline_min_cidr6", "general_tkline_expire_notices",
1203 <  "general_kill_chase_time_limit", "general_hide_spoof_ips",
1204 <  "general_ignore_bogus_ts", "general_disable_remote_commands",
1200 >  "general_cycle_on_host_change", "general_gline_enable",
1201 >  "general_gline_duration", "general_gline_request_duration",
1202 >  "general_gline_min_cidr", "general_gline_min_cidr6",
1203 >  "general_tkline_expire_notices", "general_kill_chase_time_limit",
1204 >  "general_hide_spoof_ips", "general_ignore_bogus_ts",
1205    "general_failed_oper_notice", "general_anti_nick_flood",
1206    "general_max_nick_time", "general_max_nick_changes",
1207    "general_max_accept", "general_anti_spam_exit_message_time",
1208    "general_ts_warn_delta", "general_ts_max_delta",
1209    "general_havent_read_conf", "general_invisible_on_connect",
1210 <  "general_warn_no_nline", "general_stats_e_disabled",
1210 >  "general_warn_no_connect_block", "general_stats_e_disabled",
1211    "general_stats_o_oper_only", "general_stats_P_oper_only",
1212 <  "general_stats_k_oper_only", "general_stats_i_oper_only",
1213 <  "general_pace_wait", "general_caller_id_wait",
1214 <  "general_opers_bypass_callerid", "general_pace_wait_simple",
1215 <  "general_short_motd", "general_no_oper_flood",
1216 <  "general_true_no_oper_flood", "general_oper_pass_resv",
1217 <  "general_message_locale", "general_dots_in_ident", "general_max_targets",
1218 <  "general_use_egd", "general_egdpool_path", "general_services_name",
1219 <  "general_ping_cookie", "general_disable_auth", "general_throttle_time",
1220 <  "general_oper_umodes", "$@24", "umode_oitems", "umode_oitem",
1221 <  "general_oper_only_umodes", "$@25", "umode_items", "umode_item",
1222 <  "general_min_nonwildcard", "general_min_nonwildcard_simple",
1223 <  "general_default_floodcount", "channel_entry", "channel_items",
1224 <  "channel_item", "channel_disable_fake_channels",
1225 <  "channel_restrict_channels", "channel_knock_delay",
1226 <  "channel_knock_delay_channel", "channel_max_chans_per_user",
1227 <  "channel_max_chans_per_oper", "channel_quiet_on_ban", "channel_max_bans",
1212 >  "general_stats_u_oper_only", "general_stats_k_oper_only",
1213 >  "general_stats_i_oper_only", "general_pace_wait",
1214 >  "general_caller_id_wait", "general_opers_bypass_callerid",
1215 >  "general_pace_wait_simple", "general_short_motd",
1216 >  "general_no_oper_flood", "general_true_no_oper_flood",
1217 >  "general_oper_pass_resv", "general_dots_in_ident", "general_max_targets",
1218 >  "general_services_name", "general_ping_cookie", "general_disable_auth",
1219 >  "general_throttle_count", "general_throttle_time", "general_oper_umodes",
1220 >  "$@24", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1221 >  "$@25", "umode_items", "umode_item", "general_min_nonwildcard",
1222 >  "general_min_nonwildcard_simple", "general_default_floodcount",
1223 >  "channel_entry", "channel_items", "channel_item",
1224 >  "channel_disable_fake_channels", "channel_invite_client_count",
1225 >  "channel_invite_client_time", "channel_knock_client_count",
1226 >  "channel_knock_client_time", "channel_knock_delay_channel",
1227 >  "channel_max_channels", "channel_max_bans",
1228    "channel_default_split_user_count", "channel_default_split_server_count",
1229    "channel_no_create_on_split", "channel_no_join_on_split",
1230    "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1231    "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1232 <  "serverhide_hide_servers", "serverhide_hidden_name",
1232 >  "serverhide_disable_remote_commands", "serverhide_hide_servers",
1233 >  "serverhide_hide_services", "serverhide_hidden_name",
1234    "serverhide_links_delay", "serverhide_hidden",
1235 <  "serverhide_hide_server_ips", YY_NULL
1235 >  "serverhide_hide_server_ips", YY_NULLPTR
1236   };
1237   #endif
1238  
1239   # ifdef YYPRINT
1240 < /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1241 <   token YYLEX-NUM.  */
1240 > /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1241 >   (internal) symbol number NUM (which must be that of a token).  */
1242   static const yytype_uint16 yytoknum[] =
1243   {
1244         0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
# Line 1448 | Line 1262 | static const yytype_uint16 yytoknum[] =
1262       435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1263       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1264       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1265 <     465,   466,   467,   468,   469,    59,   125,   123,    61,    44
1265 >     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1266 >     475,   476,   477,   478,   479,   480,   481,   482,   483,    59,
1267 >     125,   123,    61,    44,    58
1268   };
1269   # endif
1270  
1271 < /* 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 < };
1271 > #define YYPACT_NINF -1029
1272  
1273 < /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1274 < static const yytype_uint8 yyr2[] =
1273 > #define yypact_value_is_default(Yystate) \
1274 >  (!!((Yystate) == (-1029)))
1275 >
1276 > #define YYTABLE_NINF -116
1277 >
1278 > #define yytable_value_is_error(Yytable_value) \
1279 >  0
1280 >
1281 >  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1282 >     STATE-NUM.  */
1283 > static const yytype_int16 yypact[] =
1284   {
1285 <       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1286 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1287 <       1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1288 <       3,     3,     3,     3,     0,     1,     2,     3,     3,     3,
1289 <       5,     2,     1,     1,     1,     2,     4,     4,     5,     2,
1290 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1291 <       1,     1,     1,     1,     1,     1,     2,     4,     4,     3,
1292 <       1,     1,     1,     3,     1,     1,     1,     4,     4,     4,
1293 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1294 <       5,     2,     1,     1,     1,     1,     2,     4,     4,     4,
1295 <       5,     2,     1,     1,     1,     2,     4,     0,     6,     2,
1296 <       1,     1,     1,     1,     2,     4,     4,     4,     0,     5,
1297 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1298 <       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1299 <       1,     2,     4,     4,     4,     4,     4,     4,     0,     5,
1300 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1301 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1302 <       1,     1,     0,     5,     3,     1,     1,     1,     1,     1,
1303 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1304 <       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1305 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1306 <       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
1307 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     6,
1308 <       0,     5,     3,     1,     1,     1,     1,     2,     1,     1,
1309 <       1,     1,     1,     2,     0,     5,     3,     1,     1,     3,
1310 <       4,     4,     0,     6,     2,     1,     1,     1,     1,     1,
1311 <       1,     1,     1,     1,     2,     4,     4,     4,     4,     0,
1312 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1313 <       1,     1,     4,     4,     4,     0,     6,     2,     1,     1,
1314 <       1,     1,     2,     4,     4,     4,     5,     2,     1,     1,
1315 <       1,     4,     0,     6,     2,     1,     1,     1,     1,     2,
1316 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1317 <       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
1318 <       1,     1,     2,     4,     0,     5,     3,     1,     1,     1,
1319 <       1,     1,     1,     1,     1,     1,     1,     1,     0,     6,
1320 <       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1321 <       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
1322 <       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1323 <       4,     4,     4,     4,     4,     0,     6,     0,     5,     3,
1324 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1325 <       0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
1326 <       2,     1,     1,     1,     4,     0,     6,     0,     5,     3,
1327 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1328 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1329 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1330 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1331 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1332 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1333 <       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
1334 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1335 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1336 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1337 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     0,
1338 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1339 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1340 <       1,     1,     1,     0,     5,     3,     1,     1,     1,     1,
1341 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1342 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1343 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1344 <       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
1345 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1346 <       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
1347 <       1,     1,     4,     4,     4,     4,     4,     4
1285 >   -1029,   664, -1029,  -192,  -221,  -211, -1029, -1029, -1029,  -208,
1286 >   -1029,  -202, -1029, -1029, -1029,  -200, -1029, -1029, -1029,  -180,
1287 >    -173, -1029,  -170,  -158, -1029, -1029, -1029, -1029, -1029, -1029,
1288 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1289 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,   260,
1290 >     727,  -155,  -149,  -135,    16,  -129,   390,  -123,  -111,  -106,
1291 >      24,   -89,   -88,   -83,   507,   436,   -78,     2,    34,   -77,
1292 >     -64,   -62,   -61,   -56,     8, -1029, -1029, -1029, -1029, -1029,
1293 >     -55,   -24,   -17,   -12,   -11,    -9,    -2,    31,    35,    56,
1294 >      72,    74,    79,    84,   104, -1029, -1029, -1029, -1029, -1029,
1295 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1296 >     692,   293,    20, -1029,   101,    15, -1029, -1029,    26, -1029,
1297 >     106,   114,   125,   126,   138,   140,   141,   154,   161,   162,
1298 >     167,   168,   171,   172,   173,   174,   176,   177,   181,   182,
1299 >     183,   184,   189,   190,   192,   198, -1029,   201, -1029,   208,
1300 >     209,   210,   211,   218,   225,   227,   228,   231,   232,   234,
1301 >     235,   236,   237,   238,   239,   243,   244,   245,    42, -1029,
1302 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1303 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1304 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1305 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1306 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,   323,    90,
1307 >     391,    45,   248,   250,    23, -1029, -1029, -1029,    17,   411,
1308 >     326, -1029,   252,   254,   257,   258,   259,   261,   267,   271,
1309 >      10, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1310 >      99,   280,   284,   287,   288,   290,   292,   295,   296,   297,
1311 >     299,   300,   302,   303,   307,   313,   314,   327,    92, -1029,
1312 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1313 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029,     7,   120,   332,
1314 >      41, -1029, -1029, -1029,    60, -1029,   333,    73, -1029, -1029,
1315 >       4, -1029,   175,   365,   431,   158, -1029,   459,   460,   363,
1316 >     463,   464,   465,   464,   467,   464,   464,   468,   472,   374,
1317 >     377,   360, -1029,   362,   367,   368,   369, -1029,   373,   378,
1318 >     379,   380,   383,   384,   387,   392,   394,   395,   396,   400,
1319 >     401,   195, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1320 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1321 >     393,   404,   408,   409,   410,   412,   413, -1029,   415,   416,
1322 >     419,   428,   434,   435,   440,   272, -1029, -1029, -1029, -1029,
1323 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1324 >   -1029, -1029,   442,   445,    27, -1029, -1029, -1029,   496,   414,
1325 >   -1029, -1029,   451,   453,    70, -1029, -1029, -1029,   381,   464,
1326 >     464,   446,   551,   473,   577,   479,   464,   481,   582,   583,
1327 >     464,   584,   486,   487,   489,   464,   593,   597,   464,   598,
1328 >     600,   601,   602,   504,   484,   506,   488,   508,   464,   464,
1329 >     510,   511,   512,  -181,  -179,   513,   515,   516,   604,   617,
1330 >     464,   521,   522,   464,   464,   523,   514, -1029,   517,   505,
1331 >     519, -1029,   520,   524,   525,   526,   528,   117, -1029, -1029,
1332 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,   529,   530,
1333 >      54, -1029, -1029, -1029,   518,   531,   534, -1029,   536, -1029,
1334 >      12, -1029, -1029, -1029, -1029, -1029,   609,   612,   538, -1029,
1335 >     540,   539,   541,    14, -1029, -1029, -1029,   543,   542,   549,
1336 >   -1029,   555,   557,   560,   561,   563, -1029,   566,   199, -1029,
1337 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1338 >     546,   568,   569,   575,    40, -1029, -1029, -1029, -1029,   537,
1339 >     559,   603,   615,   605,   607,   608,   464,   579, -1029, -1029,
1340 >     626,   611,   627,   697,   703,   693,   696,   698,   699,   700,
1341 >     701,   702,   704,   712,   705,   706,   710,   613, -1029,   614,
1342 >     606, -1029,    93, -1029, -1029, -1029, -1029,   619,   616, -1029,
1343 >      21,   713,   620, -1029,   621,   622, -1029,   630,    11, -1029,
1344 >   -1029, -1029, -1029,   623,   624,   636, -1029,   638,   640,   641,
1345 >     643,   224,   644,   647,   649,   651,   652,   654,   655,   656,
1346 >     660,   661, -1029, -1029,   729,   732,   464,   659,   736,   739,
1347 >     781,   464,   782,   783,   464,   719,   784,   786,   464,   787,
1348 >     787,   671, -1029, -1029,   777,  -113,   780,   707,   785,   788,
1349 >     678,   790,   794,   802,   796,   797,   798,   799,   709, -1029,
1350 >     801,   803,   716, -1029,   721, -1029,   807,   808,   723, -1029,
1351 >     724,   726,   730,   733,   735,   737,   738,   743,   744,   745,
1352 >     747,   748,   749,   750,   752,   753,   754,   755,   756,   757,
1353 >     758,   759,   760,   761,   762,   763,   772,   764,   689,   765,
1354 >     766,   767,   768,   769,   770,   771,   773,   774,   775,   776,
1355 >     778,   779,   789,   791,   792,   793,   795,   800,   804,   805,
1356 >   -1029, -1029,   809,   718,   731,   821,   844,   834,   841,   874,
1357 >     806, -1029,   879,   882,   810, -1029, -1029,   883,   884,   811,
1358 >     900,   812, -1029,   813,   815, -1029, -1029,   886,   887,   816,
1359 >   -1029, -1029,   888,   814,   817,   889,   890,   892,   896,   819,
1360 >     818,   899,   822, -1029, -1029,   901,   904,   905,   823, -1029,
1361 >     824,   825,   826,   827,   828,   829,   830,   831, -1029,   832,
1362 >     833,   835,   836,   837,   838,   839,   840,   842,   843,   845,
1363 >     846,   847,   848,   849,   850,   851, -1029, -1029,   909,   852,
1364 >     853, -1029,   854, -1029,   163,   856, -1029, -1029,   910,   855,
1365 >     911,   857, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1366 >     464,   464,   464,   464,   464,   464,   464, -1029, -1029, -1029,
1367 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,   859,
1368 >     860,   861,   -31,   862,   863,   864,   865,   866,   867,   868,
1369 >     869,   870,   871,   872,   334,   873,   875, -1029,   876,   877,
1370 >     878,   880,   881,   885,   891,    18,   893,   894,   895,   897,
1371 >     898,   902,   903, -1029,   906,   907, -1029, -1029,   908,   912,
1372 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1373 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1374 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1375 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1376 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029,  -177, -1029, -1029,
1377 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1378 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1379 >   -1029, -1029,  -176, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1380 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1381 >   -1029, -1029, -1029, -1029, -1029,   913,   914,   535,   915,   916,
1382 >     917,   918,   919, -1029,   920,   921, -1029,   922,   923,     1,
1383 >     934,   924, -1029, -1029, -1029, -1029,   925,   926, -1029,   927,
1384 >     929,   497,   930,   931,   932,   933,   935,   734,   936, -1029,
1385 >     937,   938,   939, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1386 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1387 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,   940,
1388 >     448, -1029, -1029,   941,   942,   943, -1029,    13, -1029, -1029,
1389 >   -1029, -1029, -1029,   944,   452,   947, -1029, -1029, -1029, -1029,
1390 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,   -44,
1391 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1392 >   -1029, -1029,   787,   787,   787, -1029, -1029, -1029, -1029, -1029,
1393 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,    -7, -1029,
1394 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1395 >   -1029, -1029,   772, -1029,   689, -1029, -1029, -1029, -1029, -1029,
1396 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029,    57, -1029, -1029,
1397 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1398 >   -1029,    66, -1029,   928,   900,   948, -1029, -1029, -1029, -1029,
1399 >   -1029,   945, -1029, -1029,   946, -1029, -1029, -1029, -1029,   949,
1400 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1401 >      96, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1402 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1403 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,   102,
1404 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1405 >   -1029, -1029, -1029, -1029, -1029, -1029,   119, -1029, -1029,   954,
1406 >     -93,   950,   952, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1407 >   -1029, -1029, -1029, -1029, -1029,   155, -1029, -1029, -1029,   -31,
1408 >   -1029, -1029, -1029, -1029,    18, -1029, -1029, -1029,   535, -1029,
1409 >       1, -1029, -1029, -1029,   970,   975,   978, -1029,   497, -1029,
1410 >     734, -1029,   448,   955,   956,   957,   425, -1029, -1029,   452,
1411 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1412 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1413 >   -1029, -1029,   156, -1029, -1029, -1029,   425, -1029
1414   };
1415  
1416 < /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
1417 <   Performed when YYTABLE doesn't specify something else to do.  Zero
1418 <   means the default is an error.  */
1416 >  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1417 >     Performed when YYTABLE does not specify something else to do.  Zero
1418 >     means the default is an error.  */
1419   static const yytype_uint16 yydefact[] =
1420   {
1421 <       2,     0,     1,     0,     0,     0,   195,   348,   400,     0,
1422 <     415,     0,   252,   385,   228,     0,     0,   129,   285,     0,
1423 <       0,   302,   326,     0,     3,    23,    11,     4,     5,     6,
1424 <       8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1425 <      20,    22,    21,     7,    12,    24,    25,     0,     0,     0,
1421 >       2,     0,     1,     0,     0,     0,   215,   380,   428,     0,
1422 >     443,     0,   283,   419,   259,     0,    99,   139,   317,     0,
1423 >       0,   358,     0,     0,   334,     3,    23,    11,     4,    24,
1424 >       5,     6,     8,     9,    10,    13,    14,    15,    16,    17,
1425 >      18,    19,    20,    22,    21,     7,    12,    25,    26,     0,
1426         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1427         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1428 <       0,     0,    92,    93,    95,    94,   597,     0,     0,     0,
1428 >       0,     0,     0,     0,     0,    91,    92,    94,    93,   619,
1429         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1430 <       0,     0,   582,   596,   592,   584,   585,   586,   587,   588,
1431 <     583,   589,   590,   591,   593,   594,   595,     0,     0,     0,
1432 <     413,     0,     0,   411,   412,     0,   482,     0,     0,     0,
1430 >       0,     0,     0,     0,     0,   604,   618,   606,   607,   608,
1431 >     609,   610,   611,   605,   612,   613,   614,   615,   616,   617,
1432 >       0,     0,     0,   441,     0,     0,   439,   440,     0,   503,
1433         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1434         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1435 <       0,     0,     0,     0,     0,     0,   553,     0,   529,     0,
1435 >       0,     0,     0,     0,     0,     0,   575,     0,   549,     0,
1436         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1437 <       0,     0,     0,     0,     0,     0,     0,   432,   480,   474,
1438 <     475,   476,   477,   478,   473,   443,   433,   434,   468,   435,
1439 <     436,   437,   438,   439,   440,   441,   442,   470,   444,   445,
1440 <     479,   447,   452,   448,   450,   449,   463,   464,   451,   453,
1441 <     454,   455,   456,   457,   446,   459,   460,   461,   481,   471,
1442 <     472,   469,   462,   458,   466,   467,   465,     0,     0,     0,
1443 <       0,     0,     0,   102,   103,   104,     0,     0,     0,     0,
1444 <       0,    42,    43,    44,     0,     0,   621,     0,     0,     0,
1445 <       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,
1437 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   454,
1438 >     500,   502,   494,   495,   496,   497,   498,   493,   465,   455,
1439 >     456,   457,   458,   459,   460,   461,   462,   463,   464,   490,
1440 >     466,   467,   499,   469,   474,   475,   470,   472,   471,   483,
1441 >     484,   473,   476,   477,   478,   479,   468,   481,   501,   491,
1442 >     492,   488,   489,   482,   480,   486,   487,   485,     0,     0,
1443 >       0,     0,     0,     0,     0,    45,    46,    47,     0,     0,
1444 >       0,   645,     0,     0,     0,     0,     0,     0,     0,     0,
1445 >       0,   636,   637,   638,   639,   640,   643,   641,   642,   644,
1446         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1447 <       0,     0,   581,     0,     0,     0,     0,     0,     0,     0,
1448 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   198,
1449 <     199,   202,   203,   205,   206,   207,   208,   209,   210,   211,
1450 <     212,   200,   201,   204,     0,     0,     0,     0,     0,   374,
1451 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   351,
1632 <     352,   353,   354,   355,   356,   358,   357,   360,   364,   361,
1633 <     362,   363,   359,   406,     0,     0,     0,   403,   404,   405,
1634 <       0,     0,   410,   427,     0,     0,   417,   426,     0,   423,
1635 <     424,   425,     0,     0,     0,     0,     0,     0,     0,     0,
1447 >       0,     0,     0,     0,     0,     0,     0,     0,     0,    53,
1448 >      68,    65,    63,    69,    70,    64,    54,    67,    57,    58,
1449 >      59,    55,    66,    60,    61,    62,    56,     0,     0,     0,
1450 >       0,   110,   111,   112,     0,   332,     0,     0,   330,   331,
1451 >       0,    95,     0,     0,     0,     0,    90,     0,     0,     0,
1452         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1453 +       0,     0,   603,     0,     0,     0,     0,   253,     0,     0,
1454         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1455 +       0,     0,   218,   219,   222,   224,   225,   226,   227,   228,
1456 +     229,   230,   231,   232,   220,   221,   223,   233,   234,   235,
1457 +       0,     0,     0,     0,     0,     0,     0,   408,     0,     0,
1458 +       0,     0,     0,     0,     0,     0,   383,   384,   385,   386,
1459 +     387,   388,   389,   391,   390,   393,   397,   394,   395,   396,
1460 +     392,   434,     0,     0,     0,   431,   432,   433,     0,     0,
1461 +     438,   449,     0,     0,     0,   446,   447,   448,     0,     0,
1462         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1463         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,
1464         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,
1465         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1466 <       0,   197,   365,     0,     0,     0,     0,     0,     0,     0,
1467 <       0,     0,     0,     0,     0,     0,     0,   350,     0,     0,
1468 <       0,   402,     0,   409,     0,     0,     0,     0,   422,     0,
1466 >       0,     0,     0,     0,     0,     0,     0,   453,     0,     0,
1467 >       0,   300,     0,     0,     0,     0,     0,     0,   286,   287,
1468 >     288,   289,   294,   290,   291,   292,   293,   425,     0,     0,
1469 >       0,   422,   423,   424,     0,     0,     0,   261,     0,   271,
1470 >       0,   269,   270,   272,   273,    48,     0,     0,     0,    44,
1471 >       0,     0,     0,     0,   102,   103,   104,     0,     0,     0,
1472 >     188,     0,     0,     0,     0,     0,   162,     0,     0,   142,
1473 >     143,   144,   145,   148,   149,   150,   151,   147,   146,   152,
1474 >       0,     0,     0,     0,     0,   320,   321,   322,   323,     0,
1475 >       0,     0,     0,     0,     0,     0,     0,     0,   635,    71,
1476         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1477 +       0,     0,     0,     0,     0,     0,     0,     0,    52,     0,
1478 +       0,   366,     0,   361,   362,   363,   113,     0,     0,   109,
1479 +       0,     0,     0,   329,     0,     0,   344,     0,     0,   337,
1480 +     338,   339,   340,     0,     0,     0,    89,     0,     0,     0,
1481 +       0,    27,     0,     0,     0,     0,     0,     0,     0,     0,
1482 +       0,     0,   602,   236,     0,     0,     0,     0,     0,     0,
1483         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1484 +       0,     0,   217,   398,     0,     0,     0,     0,     0,     0,
1485 +       0,     0,     0,     0,     0,     0,     0,     0,     0,   382,
1486 +       0,     0,     0,   430,     0,   437,     0,     0,     0,   445,
1487         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1488         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1489         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,
1490         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1491 <       0,     0,     0,   349,     0,     0,   401,   414,     0,     0,
1492 <       0,   416,   495,   499,   513,   579,   527,   493,   521,   524,
1493 <     494,   485,   484,   486,   487,   488,   502,   491,   492,   503,
1494 <     490,   498,   497,   496,   522,   483,   520,   577,   578,   517,
1495 <     514,   564,   557,   574,   575,   558,   559,   560,   561,   569,
1496 <     562,   572,   576,   565,   570,   566,   571,   563,   568,   567,
1497 <     573,     0,   556,   519,   539,   533,   550,   551,   534,   535,
1498 <     536,   537,   545,   538,   548,   552,   541,   546,   542,   547,
1499 <     540,   544,   543,   549,     0,   532,   512,   515,   526,   489,
1500 <     516,   505,   510,   511,   508,   509,   506,   507,   501,   500,
1501 <     525,   528,   518,   523,   504,     0,     0,     0,     0,     0,
1502 <       0,     0,     0,   253,     0,     0,     0,   386,     0,     0,
1503 <       0,   248,   244,   247,   229,   106,     0,     0,   118,     0,
1504 <       0,   110,   111,   113,   112,    46,    47,     0,     0,     0,
1505 <       0,     0,     0,     0,     0,   130,     0,     0,     0,   286,
1506 <     622,   626,   624,   627,   623,   625,    83,    89,    81,    85,
1507 <      84,    78,    77,    79,    67,     0,    68,     0,    82,    80,
1508 <      88,    86,    87,     0,     0,     0,   303,     0,     0,   327,
1509 <     301,    29,    30,    31,    32,    33,   225,   226,   218,   220,
1510 <     222,   221,   219,   214,   227,   217,   215,   216,    34,    34,
1511 <      34,    36,    35,   223,   224,   370,   372,   373,   383,   380,
1512 <     378,   379,     0,   377,   367,   381,   382,   366,   371,   369,
1513 <     384,   368,   407,   408,   428,   429,   421,     0,   420,   554,
1514 <       0,   530,     0,   267,   268,   277,   274,   279,   276,   275,
1515 <     281,   278,   280,   273,     0,   272,   266,   284,   283,   282,
1516 <     265,   399,   391,     0,   390,   398,   235,   236,   234,     0,
1517 <     233,   251,   250,     0,     0,     0,   114,     0,     0,     0,
1518 <       0,   109,   147,   145,   187,   184,   183,   176,   178,   194,
1519 <     188,   191,   186,   177,   192,   180,   189,   193,   181,   190,
1520 <     185,   179,   182,     0,   175,   142,   144,   146,   158,   152,
1521 <     169,   170,   153,   154,   155,   156,   164,   157,   167,   171,
1522 <     160,   165,   161,   166,   159,   163,   162,   168,     0,   151,
1523 <     143,   294,   295,   293,    69,    73,   310,   316,   322,   325,
1524 <     318,   324,   319,   323,   321,   317,   320,     0,   315,   311,
1525 <     333,   338,   344,   347,   340,   346,   341,   345,   343,   339,
1526 <     342,     0,   337,    37,    38,    39,   375,     0,   418,     0,
1527 <     555,   531,   270,     0,   388,     0,   231,     0,   249,   246,
1528 <     245,     0,     0,     0,     0,   108,   173,     0,   149,     0,
1529 <     313,     0,   335,     0,   376,   419,   271,   389,   232,   115,
1530 <     124,   127,   126,   123,   128,   125,   122,     0,   121,   117,
1531 <     116,   174,   150,   314,   336,   119,     0,   120
1532 < };
1533 <
1534 < /* YYDEFGOTO[NTERM-NUM].  */
1535 < static const yytype_int16 yydefgoto[] =
1536 < {
1537 <      -1,     1,    24,   780,   781,  1021,  1022,    25,   230,   231,
1538 <     232,   233,    26,   267,   268,   269,   270,   744,   745,   748,
1539 <     749,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1540 <     280,   281,   282,   283,    27,    71,    72,    73,    74,    75,
1541 <      28,   222,   223,   224,   225,   226,   950,   951,   952,   953,
1542 <     954,  1088,  1217,  1218,    29,    60,   501,   502,   503,   504,
1543 <     505,   506,   507,   508,   509,   717,  1138,  1139,   510,   713,
1544 <    1113,  1114,    30,    49,   328,   329,   330,   331,   332,   333,
1545 <     334,   335,   336,   337,   338,   339,   340,   341,   342,   343,
1546 <      31,    57,   476,   698,  1079,  1080,   477,   478,   479,  1085,
1547 <     942,   943,   480,   481,    32,    55,   452,   453,   454,   455,
1548 <     456,   457,   458,   684,  1064,  1065,   459,   460,   461,    33,
1549 <      61,   515,   516,   517,   518,   519,    34,   288,   289,   290,
1737 <      35,    64,   550,   551,   552,   553,   554,   758,  1157,  1158,
1738 <      36,    65,   558,   559,   560,   561,   764,  1171,  1172,    37,
1739 <      50,   358,   359,   360,   361,   362,   363,   364,   365,   366,
1740 <     367,   607,  1032,  1033,   368,   369,   370,   371,   372,    38,
1741 <      56,   466,   693,  1073,  1074,   467,   468,   469,   470,    39,
1742 <      51,   376,   377,   378,   379,    40,   112,   113,   114,    41,
1743 <      53,   387,   626,  1047,  1048,   388,   389,   390,   391,    42,
1744 <     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1745 <     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1746 <     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1747 <     196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1748 <     206,   207,   208,   209,   210,   211,   212,   423,   904,   905,
1749 <     213,   421,   881,   882,   214,   215,   216,    43,    91,    92,
1750 <      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1751 <     103,   104,   105,   106,    44,   243,   244,   245,   246,   247,
1752 <     248,   249,   250
1491 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1492 >     452,   295,     0,     0,     0,     0,     0,     0,     0,     0,
1493 >       0,   285,     0,     0,     0,   421,   274,     0,     0,     0,
1494 >       0,     0,   268,     0,     0,    43,   105,     0,     0,     0,
1495 >     101,   153,     0,     0,     0,     0,     0,     0,     0,     0,
1496 >       0,     0,     0,   141,   324,     0,     0,     0,     0,   319,
1497 >       0,     0,     0,     0,     0,     0,     0,     0,   634,     0,
1498 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1499 >       0,     0,     0,     0,     0,     0,    51,   364,     0,     0,
1500 >       0,   360,     0,   108,     0,     0,   328,   341,     0,     0,
1501 >       0,     0,   336,    98,    97,    96,   629,   628,   620,   621,
1502 >      27,    27,    27,    27,    27,    27,    27,    29,    28,   622,
1503 >     632,   633,   623,   624,   625,   627,   626,   630,   631,     0,
1504 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1505 >       0,     0,     0,     0,    37,     0,     0,   216,     0,     0,
1506 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1507 >       0,     0,     0,   381,     0,     0,   429,   442,     0,     0,
1508 >     444,   516,   520,   535,   505,   601,   546,   542,   515,   507,
1509 >     506,   509,   510,   508,   523,   513,   514,   524,   512,   519,
1510 >     518,   517,   543,   504,   599,   600,   539,   585,   579,   595,
1511 >     580,   581,   582,   590,   598,   583,   592,   596,   586,   597,
1512 >     587,   591,   584,   594,   589,   588,   593,     0,   578,   541,
1513 >     558,   559,   560,   553,   571,   554,   555,   556,   566,   574,
1514 >     557,   568,   572,   562,   573,   563,   567,   561,   570,   565,
1515 >     564,   569,     0,   552,   536,   534,   537,   545,   538,   526,
1516 >     532,   533,   530,   531,   527,   528,   529,   544,   547,   548,
1517 >     511,   540,   522,   521,   525,     0,     0,     0,     0,     0,
1518 >       0,     0,     0,   284,     0,     0,   420,     0,     0,     0,
1519 >     279,   275,   278,   260,    49,    50,     0,     0,   100,     0,
1520 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   140,
1521 >       0,     0,     0,   318,   647,   646,   652,   650,   653,   648,
1522 >     649,   651,    80,    88,    79,    86,    87,    78,    82,    81,
1523 >      73,    72,    77,    74,    76,    85,    75,    83,    84,     0,
1524 >       0,   359,   114,     0,     0,     0,   126,     0,   118,   119,
1525 >     121,   120,   333,     0,     0,     0,   335,    30,    31,    32,
1526 >      33,    34,    35,    36,   248,   249,   240,   258,   257,     0,
1527 >     256,   241,   243,   245,   252,   244,   242,   251,   237,   250,
1528 >     239,   238,    37,    37,    37,    39,    38,   246,   247,   403,
1529 >     406,   407,   417,   414,   400,   415,   412,   413,     0,   411,
1530 >     416,   399,   405,   402,   404,   418,   401,   435,   436,   450,
1531 >     451,   576,     0,   550,     0,   298,   299,   308,   305,   310,
1532 >     306,   307,   313,   309,   311,   304,   312,     0,   303,   297,
1533 >     316,   315,   314,   296,   427,   426,   282,   281,   266,   267,
1534 >     265,     0,   264,     0,     0,     0,   106,   107,   161,   157,
1535 >     208,   195,   205,   204,   193,   198,   214,   207,   212,   197,
1536 >     200,   209,   211,   206,   213,   201,   203,   210,   199,   202,
1537 >       0,   191,   154,   156,   158,   159,   160,   171,   172,   173,
1538 >     166,   184,   167,   168,   169,   179,   187,   170,   181,   185,
1539 >     175,   186,   176,   180,   174,   183,   178,   177,   182,     0,
1540 >     165,   155,   327,   325,   326,   365,   370,   376,   379,   372,
1541 >     378,   373,   377,   375,   371,   374,     0,   369,   122,     0,
1542 >       0,     0,     0,   117,   342,   348,   354,   357,   350,   356,
1543 >     351,   355,   353,   349,   352,     0,   347,   343,   254,     0,
1544 >      40,    41,    42,   409,     0,   577,   551,   301,     0,   262,
1545 >       0,   280,   277,   276,     0,     0,     0,   189,     0,   163,
1546 >       0,   367,     0,     0,     0,     0,     0,   116,   345,     0,
1547 >     255,   410,   302,   263,   194,   192,   196,   190,   164,   368,
1548 >     123,   125,   124,   132,   137,   136,   131,   134,   138,   135,
1549 >     130,   133,     0,   129,   346,   127,     0,   128
1550   };
1551  
1552 < /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1553 <   STATE-NUM.  */
1757 < #define YYPACT_NINF -744
1758 < static const yytype_int16 yypact[] =
1552 >  /* YYPGOTO[NTERM-NUM].  */
1553 > static const yytype_int16 yypgoto[] =
1554   {
1555 <    -744,   610,  -744,  -209,  -187,  -179,  -744,  -744,  -744,  -176,
1556 <    -744,  -171,  -744,  -744,  -744,  -166,  -164,  -744,  -744,  -139,
1557 <    -136,  -744,  -744,  -131,  -744,  -744,  -744,  -744,  -744,  -744,
1558 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1559 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,    61,   807,  -126,
1560 <    -104,   -84,    16,   -79,   382,   -77,   -63,   -60,     7,    21,
1561 <     -49,   -40,   638,   381,   -26,    52,    25,  -152,    62,    85,
1562 <      86,    18,  -744,  -744,  -744,  -744,  -744,    88,    89,    93,
1563 <      94,    96,   101,   108,   112,   118,   119,   125,   127,   132,
1564 <     133,   162,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1565 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,   531,   499,   266,
1566 <    -744,   135,    28,  -744,  -744,    11,  -744,   142,   143,   145,
1567 <     147,   148,   150,   153,   163,   166,   167,   169,   173,   174,
1568 <     175,   177,   178,   180,   182,   183,   185,   191,   197,   200,
1569 <     201,   202,   204,   211,   212,   215,  -744,   216,  -744,   217,
1570 <     218,   221,   222,   225,   226,   229,   234,   235,   237,   238,
1571 <     239,   242,   253,   256,   257,   262,    38,  -744,  -744,  -744,
1572 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1573 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1574 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1575 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1576 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,   337,    24,   259,
1577 <      73,   263,     4,  -744,  -744,  -744,   126,   131,   264,   270,
1578 <      59,  -744,  -744,  -744,   389,   209,  -744,   276,   279,   280,
1579 <     281,   285,   287,     3,  -744,  -744,  -744,  -744,  -744,  -744,
1580 <    -744,   149,   288,   289,   290,   292,   299,   301,   302,   303,
1581 <     304,   305,   307,   308,   315,   324,   330,    75,  -744,  -744,
1582 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1583 <    -744,  -744,  -744,  -744,   208,    30,  -744,   331,    15,  -744,
1789 <    -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
1555 >   -1029, -1029, -1029,  -435,  -309, -1028,  -629, -1029, -1029,   963,
1556 >   -1029, -1029, -1029, -1029,   951, -1029, -1029, -1029, -1029, -1029,
1557 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1558 >   -1029, -1029, -1029, -1029,   953, -1029, -1029, -1029, -1029, -1029,
1559 >   -1029,   544, -1029, -1029, -1029, -1029,   958, -1029, -1029, -1029,
1560 >   -1029,     9, -1029, -1029, -1029, -1029, -1029,  -238, -1029, -1029,
1561 >   -1029,   545, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1562 >   -1029, -1029, -1029,  -138, -1029, -1029, -1029,  -178, -1029, -1029,
1563 >   -1029,   858, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1564 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1565 >   -1029,  -156, -1029, -1029, -1029, -1029, -1029,  -127, -1029,   625,
1566 >   -1029, -1029, -1029,   -18, -1029, -1029, -1029, -1029, -1029,   650,
1567 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029,  -120, -1029, -1029,
1568 >   -1029, -1029, -1029, -1029,   585, -1029, -1029, -1029, -1029, -1029,
1569 >     959, -1029, -1029, -1029, -1029,   533, -1029, -1029, -1029, -1029,
1570 >   -1029,  -134, -1029, -1029, -1029,   556, -1029, -1029, -1029, -1029,
1571 >    -122, -1029, -1029, -1029,   820, -1029, -1029, -1029, -1029, -1029,
1572 >   -1029, -1029, -1029, -1029, -1029, -1029,  -105, -1029, -1029, -1029,
1573 >   -1029, -1029, -1029, -1029, -1029,   653, -1029, -1029, -1029, -1029,
1574 >   -1029,   740, -1029, -1029, -1029, -1029,  1023, -1029, -1029, -1029,
1575 >   -1029,   960, -1029, -1029, -1029, -1029,   971, -1029, -1029, -1029,
1576 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1577 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1578 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1579 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1580 >   -1029, -1029, -1029,    36, -1029, -1029, -1029,    61, -1029, -1029,
1581 >   -1029, -1029, -1029,  1077, -1029, -1029, -1029, -1029, -1029, -1029,
1582 >   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
1583 >     961, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029
1584   };
1585  
1586 < /* YYPGOTO[NTERM-NUM].  */
1587 < static const yytype_int16 yypgoto[] =
1586 >  /* YYDEFGOTO[NTERM-NUM].  */
1587 > static const yytype_int16 yydefgoto[] =
1588   {
1589 <    -744,  -744,  -744,  -743,  -298,  -663,  -598,  -744,  -744,   897,
1590 <    -744,  -744,  -744,  -744,   915,  -744,  -744,  -744,    14,  -744,
1591 <       1,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1592 <    -744,  -744,  -744,  -744,  -744,  -744,   924,  -744,  -744,  -744,
1593 <    -744,  -744,   796,  -744,  -744,  -744,  -744,    48,  -744,  -744,
1594 <    -744,  -744,  -744,  -226,  -744,  -744,  -744,   500,  -744,  -744,
1595 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -196,  -744,  -744,
1596 <    -744,  -193,  -744,  -744,  -744,   680,  -744,  -744,  -744,  -744,
1597 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1598 <    -744,  -744,  -744,  -744,  -744,  -177,  -744,   548,  -744,  -744,
1599 <    -744,   -62,  -744,  -744,  -744,  -744,  -744,   575,  -744,  -744,
1600 <    -744,  -744,  -744,  -744,  -744,  -153,  -744,  -744,  -744,  -744,
1601 <    -744,  -744,   516,  -744,  -744,  -744,  -744,  -744,   918,  -744,
1602 <    -744,  -744,  -744,   482,  -744,  -744,  -744,  -744,  -744,  -163,
1603 <    -744,  -744,  -744,   483,  -744,  -744,  -744,  -744,  -159,  -744,
1604 <    -744,  -744,   688,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1605 <    -744,  -744,  -744,  -137,  -744,  -744,  -744,  -744,  -744,  -744,
1606 <    -744,  -744,  -744,  -744,  -117,  -744,   604,  -744,  -744,  -744,
1607 <    -744,  -744,   700,  -744,  -744,  -744,  -744,   966,  -744,  -744,
1608 <    -744,  -744,  -744,  -744,   -99,  -744,   701,  -744,  -744,  -744,
1609 <    -744,   919,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1610 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1611 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1612 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1613 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,    35,
1614 <    -744,  -744,  -744,    32,  -744,  -744,  -744,  -744,  -744,   997,
1615 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1616 <    -744,  -744,  -744,  -744,  -744,  -744,   920,  -744,  -744,  -744,
1617 <    -744,  -744,  -744
1589 >      -1,     1,    25,   817,   818,  1075,  1076,    26,   224,   225,
1590 >     226,   227,    27,   268,   269,   270,   271,   272,   273,   274,
1591 >     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1592 >     285,   286,    28,    74,    75,    76,    77,    78,    29,    61,
1593 >     503,   504,   505,   506,    30,   290,   291,   292,   293,   294,
1594 >    1037,  1038,  1039,  1040,  1041,  1211,  1282,  1283,    31,    62,
1595 >     518,   519,   520,   521,   522,   523,   524,   525,   526,   527,
1596 >     528,   750,  1189,  1190,   529,   744,  1160,  1161,    32,    51,
1597 >     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
1598 >     351,   352,   353,   354,   355,   356,   357,   358,   359,   617,
1599 >    1059,  1060,    33,    59,   489,   729,  1131,  1132,   490,   491,
1600 >     492,  1135,   981,   982,   493,   494,    34,    57,   467,   468,
1601 >     469,   470,   471,   472,   473,   714,  1117,  1118,   474,   475,
1602 >     476,    35,    63,   534,   535,   536,   537,   538,    36,   297,
1603 >     298,   299,    37,    69,   588,   589,   590,   591,   592,   799,
1604 >    1225,  1226,    38,    66,   572,   573,   574,   575,   789,  1206,
1605 >    1207,    39,    52,   375,   376,   377,   378,   379,   380,   381,
1606 >     382,   383,   384,   385,   640,  1088,  1089,   386,   387,   388,
1607 >     389,   390,    40,    58,   480,   481,   482,   483,    41,    53,
1608 >     394,   395,   396,   397,    42,   115,   116,   117,    43,    55,
1609 >     404,   405,   406,   407,    44,   168,   169,   170,   171,   172,
1610 >     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
1611 >     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
1612 >     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
1613 >     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
1614 >     213,   436,   942,   943,   214,   434,   917,   918,   215,   216,
1615 >     217,    45,    94,    95,    96,    97,    98,    99,   100,   101,
1616 >     102,   103,   104,   105,   106,   107,   108,   109,    46,   240,
1617 >     241,   242,   243,   244,   245,   246,   247,   248,   249
1618   };
1619  
1620 < /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1621 <   positive, shift that token.  If negative, reduce the rule which
1622 <   number is the opposite.  If YYTABLE_NINF, syntax error.  */
1922 < #define YYTABLE_NINF -108
1620 >  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1621 >     positive, shift that token.  If negative, reduce the rule whose
1622 >     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1623   static const yytype_int16 yytable[] =
1624   {
1625 <     806,   807,   573,   574,   236,   220,    45,    46,   220,   373,
1626 <     581,   462,   383,   805,   667,   668,   286,   110,  1076,    67,
1627 <     984,  1030,   227,   555,   985,   462,   286,   669,   670,   110,
1628 <      47,   555,  1001,  1002,  1003,  1004,  1005,   383,    48,   116,
1629 <     237,    52,    68,   986,   117,   118,    54,   987,  1049,    69,
1630 <     119,    58,  1050,    59,   238,   239,   240,   241,   120,   443,
1631 <     227,  1051,    67,   291,   121,  1052,   122,   123,   124,   374,
1632 <    1176,   492,   242,   125,  1177,   444,   251,   111,    62,   126,
1633 <     127,    63,   128,   129,   130,    68,    66,   493,   131,   111,
1634 <     445,   107,    69,   132,   446,   630,   631,   133,   134,   252,
1635 <     384,   135,   494,   638,   287,   640,   495,    70,   228,  1193,
1636 <     136,   556,   647,   108,   287,   650,   471,   137,   138,   556,
1637 <     139,   140,   141,   142,   143,   384,   661,   662,   375,   546,
1638 <     463,   385,   253,   109,   229,   144,   673,   674,   115,   676,
1639 <     217,   145,   146,   147,   463,   148,   228,   511,   149,   150,
1640 <      70,   472,   151,  1077,   218,   946,   385,   219,  1078,   496,
1641 <     512,   464,   386,    76,   254,  1178,   255,   256,   234,  1179,
1642 <     447,   473,   229,   557,  1182,   464,   474,   235,  1183,   448,
1643 <     449,   557,   497,    77,    78,   946,   152,   386,  1184,    79,
1644 <     153,   284,  1185,   154,   155,   156,   157,   158,  1186,   498,
1645 <     159,   160,  1187,   257,  1031,   258,   259,   260,   261,   546,
1646 <     511,   450,   221,   742,   743,   221,   465,   547,  -107,   526,
1647 <     484,  -107,   262,   512,   620,   565,   695,   732,    80,    81,
1648 <     465,   563,   475,   313,   295,    82,    83,    84,   765,   513,
1649 <     161,   162,   163,   947,   381,   164,   263,   314,   315,  1196,
1650 <     165,   316,   627,  1197,   441,  1198,   264,    85,    86,  1199,
1651 <     471,   344,   499,   345,   451,   346,   514,   373,  1200,   285,
1652 <      87,    88,  1201,   947,   690,   490,   500,   347,  1202,   548,
1653 <     292,    89,  1203,  1225,   265,   266,   719,  1226,   482,    90,
1654 <     795,   544,   348,   746,   747,   472,   349,   547,   803,   804,
1655 <     810,   811,   513,   293,   294,   948,   297,   298,   317,   318,
1656 <     319,   299,   300,   320,   301,   473,   350,  1210,   351,   302,
1657 <     474,   321,  1055,  1018,  1019,  1020,   303,   374,   352,   514,
1658 <     304,   702,   322,   323,   549,   948,   305,   306,   443,  1211,
1659 <     486,  1212,  1056,   307,   760,   308,   487,   324,   325,   353,
1660 <     309,   310,  1057,   380,   444,  1173,  1174,  1175,  1058,   548,
1661 <     392,   393,   725,   394,   528,   395,   396,   949,   397,   445,
1662 <    1090,   398,   566,   446,  1059,   326,   475,   354,   311,  1213,
1663 <     568,   399,   251,   116,   400,   401,   375,   402,   117,   118,
1664 <     492,   403,   404,   405,   119,   406,   407,   949,   408,  1060,
1665 <     409,   410,   120,   411,   355,   252,   493,  1061,   121,   412,
1666 <     122,   123,   124,   805,   549,   413,   327,   125,   414,   415,
1667 <     416,   494,   417,   126,   127,   495,   128,   129,   130,   418,
1668 <     419,   356,   131,   420,   422,   424,   425,   132,   253,   426,
1669 <     427,   133,   134,   428,   429,   135,  1062,   430,   600,   447,
1670 <    1214,  1215,   431,   432,   136,   433,   434,   435,   448,   449,
1671 <     436,   137,   138,  1063,   139,   140,   141,   142,   143,   357,
1672 <     254,   437,   255,   256,   438,   439,   616,   567,   496,   144,
1673 <     440,   483,   488,  1216,   569,   145,   146,   147,   489,   148,
1674 <     450,  1194,   149,   150,   520,   570,   151,   521,   522,   523,
1675 <     344,   497,   345,   524,   346,   525,   529,   530,   531,   257,
1676 <     532,   258,   259,   260,   261,  1094,   347,   533,   498,   534,
1677 <     535,   536,   537,   538,  1147,   539,   540,   571,   262,   572,
1678 <     152,   348,   313,   541,   153,   349,  1095,   154,   155,   156,
1679 <     157,   158,   542,   451,   159,   160,   314,   315,   543,   562,
1680 <     316,  1096,   263,   572,   575,   350,   576,   351,  1097,   578,
1681 <     577,   579,   264,   580,   582,   583,   584,   352,   775,   776,
1682 <     777,   778,   779,   585,   586,  1098,   622,   629,   587,   588,
1683 <     589,   499,   590,   591,   161,   162,   163,   592,   353,   164,
1684 <     265,   266,   593,   594,   165,   500,  1148,   595,  1099,   602,
1685 <     632,   596,   861,   633,   597,  1100,   598,   317,   318,   319,
1686 <       2,     3,   320,   599,     4,   603,   354,  1101,   604,   634,
1687 <     321,   605,   623,   635,     5,  1149,   606,     6,     7,   608,
1688 <     609,   322,   323,     8,  1150,  1102,  1103,  1104,   610,   236,
1689 <    1151,   611,   612,   355,     9,   613,   324,   325,    10,    11,
1690 <     884,   614,   615,   618,  1152,   619,  1153,  1154,    12,   624,
1691 <     625,   636,   637,   639,   641,  1155,   642,   643,   644,   645,
1692 <     356,  1156,    13,   646,   326,   237,   648,   649,  1118,   651,
1693 <      14,    15,   652,   654,   653,  1105,   655,   656,   657,   238,
1694 <     239,   240,   241,   658,  1106,   659,   660,   663,    16,  1107,
1695 <     664,   665,   666,   675,   671,  1108,   672,   242,   357,  1109,
1696 <     677,  1110,    17,   678,   679,   327,  1111,   862,   863,   864,
1697 <     865,   866,  1112,   867,   868,   680,   869,   870,   871,  1161,
1698 <     681,   872,   682,   873,   874,   683,   875,   685,   876,   686,
1699 <     877,   878,   704,   687,   879,   752,    18,   688,   689,   706,
1700 <     880,   692,   694,   697,   699,    19,    20,   700,   707,    21,
1701 <      22,   708,   705,   701,   709,   885,   886,   887,   888,   889,
1702 <     710,   890,   891,   721,   892,   893,   894,   711,   712,   895,
1703 <     714,   896,   897,   727,   898,   728,   899,   715,   900,   901,
1704 <     716,   718,   902,  1119,  1120,  1121,  1122,  1123,   903,  1124,
1705 <    1125,  1162,  1126,  1127,  1128,   729,   722,  1129,    76,  1130,
1706 <    1131,    23,  1132,   723,  1133,   724,  1134,  1135,   730,   731,
1707 <    1136,   733,   734,   735,   736,   737,  1137,   738,    77,    78,
1708 <    1163,   739,   740,   741,    79,   750,   751,   753,   754,  1164,
1709 <     757,   755,   759,   756,   762,  1165,   767,   768,   763,   769,
1710 <     770,   771,   772,   793,   773,   794,   774,   782,   796,  1166,
1711 <     783,  1167,  1168,   784,   785,   786,   787,   788,   789,   790,
1712 <    1169,   791,   792,    80,    81,   797,  1170,   798,   799,   800,
1713 <      82,    83,    84,   801,   802,   805,   808,   809,   812,   813,
1714 <     814,   815,   816,   817,   819,   818,   823,   826,   820,   821,
1715 <     822,   824,    85,    86,   827,   825,   828,   829,   830,   831,
1716 <     832,   833,   834,   835,   836,    87,    88,   837,   838,   925,
1717 <     839,   928,   929,   840,   926,   841,    89,   842,   930,   927,
1718 <     931,   843,   932,   934,    90,   936,   844,   845,   846,   847,
1719 <     848,   849,   850,   939,   940,   851,   852,   853,   854,   855,
1720 <     856,   857,   858,   859,   860,   883,   906,   907,   908,   909,
1721 <     910,   911,   912,   913,   914,   915,   916,   917,   918,   941,
1722 <     919,   957,   920,   921,   960,   922,   958,   923,   924,   961,
1723 <     933,   962,   937,   964,   935,   966,   938,   944,  1145,   959,
1724 <     967,   968,   993,   995,   997,   296,  1083,  1188,  1091,  1144,
1725 <    1227,   720,  1046,  1222,  1221,   945,   955,   956,   601,   965,
1726 <    1208,   963,   969,   970,   971,   972,  1072,   973,   485,   974,
1727 <     975,   976,  1189,   977,   978,   703,   979,   691,   980,  1191,
1728 <    1206,   726,   761,   981,   982,   983,   988,   989,  1223,   990,
1729 <    1204,   766,   991,   992,  1224,   996,   617,   994,   999,   998,
1730 <    1000,  1006,  1007,  1008,  1009,  1010,  1011,  1012,  1013,  1014,
1731 <    1015,  1016,  1017,  1023,  1024,  1025,  1026,  1027,  1207,  1028,
1732 <    1029,   696,  1034,  1035,  1036,  1037,   621,  1038,   382,  1039,
1733 <    1205,  1040,  1180,  1041,  1042,   442,  1043,  1181,   312,   628,
1734 <       0,     0,  1044,  1045,     0,  1053,  1054,  1066,  1067,  1068,
1735 <    1069,  1070,  1071,  1075,  1081,  1082,     0,  1086,     0,     0,
1736 <    1084,  1092,  1087,  1089,  1093,  1115,  1116,  1117,  1140,  1141,
1737 <    1142,  1143,  1146,  1159,  1160,  1190,     0,   491,  1195,  1209,
1738 <    1192,  1219,  1220,     0,     0,     0,     0,     0,     0,     0,
1625 >     845,   846,   602,   288,   604,   584,   606,   607,   569,    70,
1626 >      49,   231,   584,   484,  1033,   500,   113,   113,   500,   844,
1627 >      50,   391,  1057,    54,   221,   221,  1086,   401,   391,    56,
1628 >     695,    60,   697,    71,   696,   295,   698,    47,    48,   232,
1629 >      72,   530,   288,   119,  1230,  1231,  1232,   233,   120,   121,
1630 >    1128,    64,  1101,  1103,   122,   477,  1102,  1104,    65,   234,
1631 >     235,    67,   123,   124,   236,   237,   238,   849,   850,   125,
1632 >     485,   401,   126,    68,   295,   531,   110,   486,   127,   487,
1633 >     114,   114,   111,   128,   129,   392,   130,   131,   132,   239,
1634 >     133,   477,   392,   250,   569,   501,   112,  1058,   501,   134,
1635 >     661,   662,   118,   135,   136,    79,   585,   668,   218,   570,
1636 >      73,   672,  1254,   585,   137,  1034,   677,   251,   458,   680,
1637 >     219,   532,   222,   222,   138,   220,    80,    81,   402,   690,
1638 >     691,   139,    82,   140,   459,   141,   296,   142,   488,   143,
1639 >     144,   704,   228,   229,   707,   708,   223,   223,   230,   393,
1640 >     460,   252,   145,   287,   300,   403,   393,   146,   147,   148,
1641 >     253,   149,   150,   151,  1033,   301,   152,    83,    84,   533,
1642 >     302,   303,   402,    85,    86,   296,   304,   307,  -115,    87,
1643 >      88,    89,   254,   478,   461,  1228,   255,    90,    91,  1229,
1644 >     502,  1129,   153,   502,   256,   570,   323,   257,   258,   403,
1645 >     507,  1130,   154,   155,   156,   157,   158,   159,   308,  1035,
1646 >     324,   325,    92,    93,   326,   309,   508,  -115,  1087,   478,
1647 >     310,   311,  1233,   312,   586,   289,  1234,   571,   587,   259,
1648 >     313,   586,   509,  1036,   160,   587,   580,   767,   305,   462,
1649 >     547,   801,   731,  1212,   739,   399,   260,   463,   464,   261,
1650 >     262,   263,   794,   498,   161,   162,   163,   652,   164,   165,
1651 >     166,    70,   327,   314,   289,  1034,   510,   315,   465,   167,
1652 >     758,   578,   456,   360,   495,   361,   264,   362,   479,   328,
1653 >     329,   330,   331,   332,   724,    71,  1237,   333,   316,   363,
1654 >    1238,   334,    72,   265,   360,  1239,   361,   335,   362,  1240,
1655 >     658,   511,   593,   582,   317,   364,   318,   831,   336,   337,
1656 >     363,   319,   836,   571,   479,   839,   320,   266,   267,   843,
1657 >     338,   512,   567,   790,   458,  1247,   364,   530,   549,  1248,
1658 >     365,  1249,   366,   398,   321,  1250,   601,   513,   408,   367,
1659 >     459,   466,   339,  1072,  1073,  1074,   409,   720,  1251,   576,
1660 >     368,   365,  1252,   366,   514,   515,   460,   410,   411,  1035,
1661 >     367,   531,    73,   810,   811,   812,   813,   814,   815,   816,
1662 >     412,   368,   413,   414,   369,  1047,  1048,  1049,  1050,  1051,
1663 >    1052,  1053,   340,  1036,  1258,  1285,   415,   596,  1259,  1286,
1664 >     461,   119,   484,   416,   417,   369,   120,   121,   370,   418,
1665 >     419,   516,   122,   420,   421,   422,   423,   532,   424,   425,
1666 >     123,   124,   507,   426,   427,   428,   429,   125,   371,   370,
1667 >     126,   430,   431,   517,   432,   631,   127,   372,   508,   752,
1668 >     433,   128,   129,   435,   130,   131,   132,   250,   133,   371,
1669 >     437,   438,   439,   440,   509,   462,   844,   134,   372,   485,
1670 >     441,   135,   136,   463,   464,   533,   486,   442,   487,   443,
1671 >     444,   251,   137,   445,   446,  1273,   447,   448,   449,   450,
1672 >     451,   452,   138,   373,   465,   453,   454,   455,   510,   139,
1673 >     496,   140,   497,   141,   539,   142,   540,   143,   144,   541,
1674 >     542,   543,   594,   544,   373,   252,  1274,   374,  1275,   545,
1675 >     145,  1140,   648,   546,   253,   146,   147,   148,   231,   149,
1676 >     150,   151,   550,   511,   152,  1141,   551,   488,   374,   552,
1677 >     553,  1196,   554,  1142,   555,  1215,   254,   556,   557,   558,
1678 >     255,   559,   560,   512,   561,   562,   232,  1143,   256,   563,
1679 >     153,   257,   258,  1276,   233,   564,   565,   466,  1107,   513,
1680 >     154,   155,   156,   157,   158,   159,   234,   235,   595,   566,
1681 >    1277,   236,   237,   238,   577,   581,   514,   515,  1144,  1108,
1682 >    1145,   597,   598,   259,   599,   600,   601,   603,  1109,   605,
1683 >     608,  1255,   160,  1197,   609,   610,   239,  1216,   611,   612,
1684 >     260,   613,   660,   261,   262,   263,  1146,  1278,  1279,   614,
1685 >     615,   616,   161,   162,   163,   618,   164,   165,   166,  1110,
1686 >     619,   620,   621,   516,  1198,   622,   623,   167,  1217,   624,
1687 >     264,  1199,   633,   654,   625,  1218,   626,   627,   628,  1147,
1688 >    1200,  1148,   629,   630,  1219,   517,   634,   265,  1111,  1112,
1689 >     635,   636,   637,   655,   638,   639,  1113,   641,   642,  1280,
1690 >    1149,   643,  1201,  1281,  1202,  1203,  1220,   663,  1221,  1222,
1691 >     644,   266,   267,   664,     2,     3,   645,   646,     4,  1204,
1692 >    1150,  1114,   647,  1223,   650,  1151,  1205,   651,     5,  1152,
1693 >    1224,     6,     7,   656,   665,   657,  1153,  1115,     8,   666,
1694 >     667,  1154,   669,   323,   670,   671,   673,   674,   675,     9,
1695 >     676,  1155,    10,    11,  1156,   678,  1157,   324,   325,   679,
1696 >     681,   326,   682,   683,   684,   685,   686,   687,  1158,   689,
1697 >     688,   692,   693,   694,   699,  1159,   700,   701,    79,   703,
1698 >      12,   702,   705,   706,   709,    13,   733,   712,   920,   734,
1699 >     921,   922,   763,   710,    14,  1116,   711,   726,   760,    80,
1700 >      81,   713,   715,   769,   771,    82,   716,   717,   718,   327,
1701 >     719,   722,   723,   727,    15,    16,   728,   735,   730,   736,
1702 >     761,   737,   741,   738,   742,   754,   328,   329,   330,   331,
1703 >     332,   743,    17,  1167,   333,  1168,  1169,   745,   334,   746,
1704 >      83,    84,   747,   748,   335,   749,    85,    86,   751,    18,
1705 >     755,   756,    87,    88,    89,   336,   337,   757,   768,   772,
1706 >      90,    91,    19,    20,   762,   773,   764,   338,   765,   766,
1707 >     774,   897,   770,   775,   782,   776,   777,   778,   779,   780,
1708 >     792,   781,   783,   784,    21,    92,    93,   785,   788,   339,
1709 >     795,   829,   786,   787,   830,   793,   840,    22,   833,   796,
1710 >     797,   834,   803,   804,   798,    23,   923,   924,   925,    24,
1711 >     926,   927,   800,   928,   929,   805,   930,   806,   931,   807,
1712 >     808,   932,   809,   819,   933,   934,   820,   935,   821,   340,
1713 >     822,   823,   936,   824,   825,   826,   937,   938,   939,   827,
1714 >     828,   832,   940,   835,   837,   838,   841,   941,   842,   844,
1715 >     847,  1170,  1171,  1172,   848,  1173,  1174,   851,  1175,  1176,
1716 >     855,  1177,   853,  1178,   858,   854,  1179,   856,   852,  1180,
1717 >    1181,   857,  1182,   859,   860,   861,   862,  1183,   864,   966,
1718 >     865,  1184,  1185,  1186,   868,   869,   965,  1187,   863,   898,
1719 >     899,   900,  1188,   901,   902,   866,   903,   904,   968,   905,
1720 >     867,   906,   870,   871,   907,   872,   969,   908,   909,   873,
1721 >     910,   970,   874,   967,   875,   911,   876,   877,   971,   912,
1722 >     913,   914,   878,   879,   880,   915,   881,   882,   883,   884,
1723 >     916,   885,   886,   887,   888,   889,   890,   891,   892,   893,
1724 >     894,   895,   896,   919,   944,   945,   946,   947,   948,   949,
1725 >     950,   972,   951,   952,   953,   954,   974,   955,   956,   975,
1726 >     977,   978,   980,   986,   987,   989,   992,   993,   957,   994,
1727 >     958,   959,   960,   995,   961,   990,   998,   306,  1000,   962,
1728 >     996,  1001,  1002,   963,   964,   973,  1029,  1043,  1045,   976,
1729 >    1241,   983,   984,   979,   985,   988,  1213,   740,  1287,   991,
1730 >     997,   999,  1003,  1004,  1005,  1006,  1007,  1008,  1009,  1010,
1731 >    1011,  1012,  1013,   753,  1014,  1015,  1016,  1017,  1018,  1019,
1732 >    1267,  1020,  1021,  1260,  1022,  1023,  1024,  1025,  1026,  1027,
1733 >    1028,  1253,  1031,  1032,  1030,  1042,  1046,  1044,  1054,  1055,
1734 >    1056,  1061,  1062,  1063,  1064,  1065,  1066,  1067,  1068,  1069,
1735 >    1070,  1071,  1077,  1264,  1078,  1079,  1080,  1081,  1265,  1082,
1736 >    1083,  1266,  1268,  1263,  1084,   732,  1242,   721,  1262,   759,
1737 >    1085,   802,  1090,  1091,  1092,  1284,  1093,  1094,   791,  1261,
1738 >    1269,  1095,  1096,   725,   653,  1097,  1098,  1099,   400,   457,
1739 >    1236,  1100,  1105,  1106,  1119,  1120,  1121,  1122,  1123,  1124,
1740 >    1125,  1126,  1127,  1133,  1136,  1137,  1138,  1134,  1139,  1162,
1741 >    1163,  1164,  1165,  1235,  1166,  1191,  1192,  1193,  1194,  1195,
1742 >    1208,   322,     0,  1214,  1209,  1210,  1227,  1243,     0,  1244,
1743 >    1245,  1257,  1256,  1246,  1270,  1271,  1272,   499,     0,     0,
1744 >       0,     0,     0,     0,     0,   649,     0,     0,     0,   632,
1745 >       0,   548,     0,     0,     0,     0,     0,     0,     0,     0,
1746 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   568,
1747 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1748 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1749 >       0,     0,     0,     0,     0,     0,     0,     0,   579,     0,
1750 >       0,     0,     0,     0,     0,     0,   583,     0,     0,     0,
1751 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1752 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1753         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1754         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2041       0,     0,     0,   527,     0,     0,     0,     0,     0,     0,
1755         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2043       0,     0,   545,     0,     0,     0,     0,     0,     0,     0,
1756         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1757 <       0,     0,     0,     0,     0,     0,   564
1757 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
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,     0,     0,     0,     0,     0,     0,     0,
1761 >       0,     0,     0,     0,   659
1762   };
1763  
2048 #define yypact_value_is_default(yystate) \
2049  ((yystate) == (-744))
2050
2051 #define yytable_value_is_error(yytable_value) \
2052  YYID (0)
2053
1764   static const yytype_int16 yycheck[] =
1765   {
1766 <     598,   599,   300,   301,     1,     1,   215,   216,     1,     1,
1767 <     308,     1,     1,    99,   160,   161,     1,     1,    51,     1,
1768 <     215,     8,     1,     1,   219,     1,     1,   160,   161,     1,
1769 <     217,     1,   775,   776,   777,   778,   779,     1,   217,     1,
1770 <      37,   217,    24,   215,     6,     7,   217,   219,   215,    31,
1771 <      12,   217,   219,   217,    51,    52,    53,    54,    20,     1,
1772 <       1,   215,     1,   215,    26,   219,    28,    29,    30,    61,
1773 <     215,     1,    69,    35,   219,    17,     1,    61,   217,    41,
1774 <      42,   217,    44,    45,    46,    24,   217,    17,    50,    61,
1775 <      32,   217,    31,    55,    36,   393,   394,    59,    60,    24,
1776 <      89,    63,    32,   401,    89,   403,    36,    89,    87,   195,
1777 <      72,    89,   410,   217,    89,   413,     1,    79,    80,    89,
1778 <      82,    83,    84,    85,    86,    89,   424,   425,   120,     1,
1779 <     120,   120,    57,   217,   113,    97,   434,   435,   217,   437,
1780 <     217,   103,   104,   105,   120,   107,    87,     1,   110,   111,
1781 <      89,    36,   114,   186,   217,     1,   120,   217,   191,    89,
1782 <      14,   151,   151,     1,    89,   215,    91,    92,   217,   219,
1783 <     112,    56,   113,   151,   215,   151,    61,   217,   219,   121,
1784 <     122,   151,   112,    21,    22,     1,   148,   151,   215,    27,
1785 <     152,   217,   219,   155,   156,   157,   158,   159,   215,   129,
1786 <     162,   163,   219,   128,   191,   130,   131,   132,   133,     1,
1787 <       1,   153,   208,   134,   135,   208,   206,    89,   214,   216,
1788 <     216,   214,   147,    14,   216,   118,   216,   525,    66,    67,
1789 <     206,   216,   117,     1,   216,    73,    74,    75,   216,    93,
1790 <     202,   203,   204,    89,   216,   207,   171,    15,    16,   215,
1791 <     212,    19,   216,   219,   216,   215,   181,    95,    96,   219,
1792 <       1,     1,   192,     3,   206,     5,   120,     1,   215,   217,
1793 <     108,   109,   219,    89,   216,   216,   206,    17,   215,   151,
1794 <     218,   119,   219,   215,   209,   210,   216,   219,   215,   127,
1795 <     588,   216,    32,   134,   135,    36,    36,    89,   596,   597,
1796 <     178,   179,    93,   218,   218,   151,   218,   218,    76,    77,
1797 <      78,   218,   218,    81,   218,    56,    56,    40,    58,   218,
1798 <      61,    89,    13,     9,    10,    11,   218,    61,    68,   120,
1799 <     218,   216,   100,   101,   206,   151,   218,   218,     1,    62,
1800 <     214,    64,    33,   218,   216,   218,   215,   115,   116,    89,
1801 <     218,   218,    43,   218,    17,  1018,  1019,  1020,    49,   151,
1802 <     218,   218,   216,   218,   215,   218,   218,   213,   218,    32,
1803 <     216,   218,   118,    36,    65,   143,   117,   117,   216,   102,
1804 <     215,   218,     1,     1,   218,   218,   120,   218,     6,     7,
1805 <       1,   218,   218,   218,    12,   218,   218,   213,   218,    90,
1806 <     218,   218,    20,   218,   144,    24,    17,    98,    26,   218,
1807 <      28,    29,    30,    99,   206,   218,   184,    35,   218,   218,
1808 <     218,    32,   218,    41,    42,    36,    44,    45,    46,   218,
1809 <     218,   171,    50,   218,   218,   218,   218,    55,    57,   218,
1810 <     218,    59,    60,   218,   218,    63,   137,   218,   216,   112,
1811 <     173,   174,   218,   218,    72,   218,   218,   218,   121,   122,
1812 <     218,    79,    80,   154,    82,    83,    84,    85,    86,   209,
1813 <      89,   218,    91,    92,   218,   218,   216,   118,    89,    97,
1814 <     218,   218,   218,   206,    99,   103,   104,   105,   218,   107,
1815 <     153,  1089,   110,   111,   218,    99,   114,   218,   218,   218,
1816 <       1,   112,     3,   218,     5,   218,   218,   218,   218,   128,
1817 <     218,   130,   131,   132,   133,     4,    17,   218,   129,   218,
1818 <     218,   218,   218,   218,    64,   218,   218,   160,   147,    99,
1819 <     148,    32,     1,   218,   152,    36,    25,   155,   156,   157,
1820 <     158,   159,   218,   206,   162,   163,    15,    16,   218,   218,
1821 <      19,    40,   171,    99,    99,    56,    99,    58,    47,   160,
1822 <      99,   160,   181,    99,   160,   160,   215,    68,   138,   139,
1823 <     140,   141,   142,   215,   218,    64,   118,   160,   218,   218,
1824 <     218,   192,   218,   218,   202,   203,   204,   218,    89,   207,
1825 <     209,   210,   218,   218,   212,   206,   136,   218,    87,   215,
1826 <      99,   218,    51,   160,   218,    94,   218,    76,    77,    78,
1827 <       0,     1,    81,   218,     4,   218,   117,   106,   218,   160,
1828 <      89,   218,   215,    99,    14,   165,   218,    17,    18,   218,
1829 <     218,   100,   101,    23,   174,   124,   125,   126,   218,     1,
1830 <     180,   218,   218,   144,    34,   218,   115,   116,    38,    39,
1831 <      51,   218,   218,   218,   194,   218,   196,   197,    48,   218,
1832 <     218,   118,   160,   160,    99,   205,    99,    99,   160,   160,
1833 <     171,   211,    62,   160,   143,    37,    99,    99,    51,    99,
1834 <      70,    71,    99,    99,   118,   174,    99,   160,   160,    51,
1835 <      52,    53,    54,   218,   183,   160,   218,   160,    88,   188,
1836 <     160,   160,   160,   118,   160,   194,   160,    69,   209,   198,
1837 <     160,   200,   102,   160,   160,   184,   205,   166,   167,   168,
1838 <     169,   170,   211,   172,   173,   215,   175,   176,   177,    64,
1839 <     215,   180,   218,   182,   183,   218,   185,   218,   187,   218,
1840 <     189,   190,   160,   218,   193,    99,   136,   218,   218,   217,
1841 <     199,   218,   218,   215,   218,   145,   146,   218,   118,   149,
1842 <     150,   118,   215,   218,   215,   166,   167,   168,   169,   170,
1843 <     215,   172,   173,   215,   175,   176,   177,   218,   218,   180,
1844 <     218,   182,   183,   160,   185,   160,   187,   218,   189,   190,
1845 <     218,   218,   193,   166,   167,   168,   169,   170,   199,   172,
1846 <     173,   136,   175,   176,   177,   118,   218,   180,     1,   182,
1847 <     183,   201,   185,   218,   187,   218,   189,   190,   160,   160,
1848 <     193,   215,   118,   160,   118,   118,   199,   118,    21,    22,
1849 <     165,   118,   118,   118,    27,   118,   118,   118,   118,   174,
1850 <     218,   215,   218,   215,   215,   180,   118,   215,   218,   215,
1851 <     215,   215,   215,    99,   215,    99,   215,   215,    99,   194,
1852 <     215,   196,   197,   215,   215,   215,   215,   215,   215,   215,
1853 <     205,   215,   215,    66,    67,    99,   211,    99,    99,   118,
1854 <      73,    74,    75,    99,    99,    99,   215,   118,   118,   160,
1855 <     218,   118,   118,   118,    99,   118,   215,   215,   118,   118,
1856 <     118,   118,    95,    96,   215,   118,   118,   118,   218,   215,
1857 <     215,   215,   215,   215,   215,   108,   109,   215,   215,   118,
1858 <     215,   118,    99,   215,   160,   215,   119,   215,   118,   218,
1859 <     118,   215,   118,   118,   127,   118,   215,   215,   215,   215,
1860 <     215,   215,   215,   118,   118,   215,   215,   215,   215,   215,
1861 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
1862 <     215,   215,   215,   215,   215,   215,   215,   215,   215,    99,
1863 <     215,   118,   215,   215,   118,   215,   160,   215,   215,   118,
1864 <     215,   118,   215,   118,   218,   118,   218,   215,   987,   218,
1865 <     118,   118,   118,   118,   118,    71,   164,    99,   950,   985,
1866 <    1226,   501,   123,  1199,  1197,   215,   215,   215,   328,   215,
1867 <    1187,   218,   215,   215,   215,   215,   123,   215,   222,   215,
1868 <     215,   215,  1084,   215,   215,   477,   215,   452,   215,   118,
1869 <    1183,   515,   550,   215,   215,   215,   215,   215,  1201,   215,
1870 <    1177,   558,   215,   215,  1203,   215,   358,   218,   215,   218,
1871 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
1872 <     215,   215,   215,   215,   215,   215,   215,   215,  1185,   215,
1873 <     215,   467,   215,   215,   215,   215,   376,   215,   112,   215,
1874 <    1179,   215,  1050,   215,   215,   166,   215,  1052,    91,   388,
1875 <      -1,    -1,   215,   215,    -1,   215,   215,   215,   215,   215,
1876 <     215,   215,   215,   215,   215,   215,    -1,   215,    -1,    -1,
1877 <     219,   215,   218,   218,   215,   215,   215,   215,   215,   215,
1878 <     215,   215,   215,   215,   215,   215,    -1,   230,   215,   215,
1879 <     218,   215,   215,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1766 >     629,   630,   311,     1,   313,     1,   315,   316,     1,     1,
1767 >     231,     1,     1,     1,     1,     1,     1,     1,     1,   112,
1768 >     231,     1,    53,   231,     1,     1,     8,     1,     1,   231,
1769 >     211,   231,   211,    25,   215,     1,   215,   229,   230,    29,
1770 >      32,     1,     1,     1,  1072,  1073,  1074,    37,     6,     7,
1771 >      49,   231,   229,   229,    12,     1,   233,   233,   231,    49,
1772 >      50,   231,    20,    21,    54,    55,    56,   180,   181,    27,
1773 >      58,     1,    30,   231,     1,    35,   231,    65,    36,    67,
1774 >      65,    65,   231,    41,    42,    65,    44,    45,    46,    79,
1775 >      48,     1,    65,     1,     1,    81,   231,   128,    81,    57,
1776 >     409,   410,   231,    61,    62,     1,   102,   416,   231,   102,
1777 >     102,   420,   205,   102,    72,   102,   425,    25,     1,   428,
1778 >     231,    81,    99,    99,    82,   231,    22,    23,   102,   438,
1779 >     439,    89,    28,    91,    17,    93,   102,    95,   126,    97,
1780 >      98,   450,   231,   231,   453,   454,   123,   123,   231,   129,
1781 >      33,    59,   110,   231,   231,   129,   129,   115,   116,   117,
1782 >      68,   119,   120,   121,     1,   229,   124,    63,    64,   129,
1783 >     232,   232,   102,    69,    70,   102,   232,   232,   176,    75,
1784 >      76,    77,    90,   129,    67,   229,    94,    83,    84,   233,
1785 >     176,   190,   150,   176,   102,   102,     1,   105,   106,   129,
1786 >       1,   200,   160,   161,   162,   163,   164,   165,   232,   196,
1787 >      15,    16,   108,   109,    19,   232,    17,   176,   200,   129,
1788 >     232,   232,   229,   232,   220,   223,   233,   220,   224,   137,
1789 >     232,   220,    33,   220,   192,   224,   176,   546,   230,   122,
1790 >     230,   230,   230,   230,   230,   230,   154,   130,   131,   157,
1791 >     158,   159,   231,   230,   212,   213,   214,   230,   216,   217,
1792 >     218,     1,    67,   232,   223,   102,    67,   232,   151,   227,
1793 >     230,   230,   230,     1,   229,     3,   184,     5,   224,    84,
1794 >      85,    86,    87,    88,   230,    25,   229,    92,   232,    17,
1795 >     233,    96,    32,   201,     1,   229,     3,   102,     5,   233,
1796 >     230,   102,   127,   230,   232,    33,   232,   616,   113,   114,
1797 >      17,   232,   621,   220,   224,   624,   232,   225,   226,   628,
1798 >     125,   122,   230,   230,     1,   229,    33,     1,   229,   233,
1799 >      58,   229,    60,   232,   230,   233,   112,   138,   232,    67,
1800 >      17,   224,   147,     9,    10,    11,   232,   230,   229,   229,
1801 >      78,    58,   233,    60,   155,   156,    33,   232,   232,   196,
1802 >      67,    35,   102,   139,   140,   141,   142,   143,   144,   145,
1803 >     232,    78,   232,   232,   102,   810,   811,   812,   813,   814,
1804 >     815,   816,   187,   220,   229,   229,   232,   229,   233,   233,
1805 >      67,     1,     1,   232,   232,   102,     6,     7,   126,   232,
1806 >     232,   202,    12,   232,   232,   232,   232,    81,   232,   232,
1807 >      20,    21,     1,   232,   232,   232,   232,    27,   146,   126,
1808 >      30,   232,   232,   224,   232,   230,    36,   155,    17,   230,
1809 >     232,    41,    42,   232,    44,    45,    46,     1,    48,   146,
1810 >     232,   232,   232,   232,    33,   122,   112,    57,   155,    58,
1811 >     232,    61,    62,   130,   131,   129,    65,   232,    67,   232,
1812 >     232,    25,    72,   232,   232,    40,   232,   232,   232,   232,
1813 >     232,   232,    82,   201,   151,   232,   232,   232,    67,    89,
1814 >     232,    91,   232,    93,   232,    95,   232,    97,    98,   232,
1815 >     232,   232,   127,   232,   201,    59,    71,   225,    73,   232,
1816 >     110,     4,   230,   232,    68,   115,   116,   117,     1,   119,
1817 >     120,   121,   232,   102,   124,    18,   232,   126,   225,   232,
1818 >     232,    73,   232,    26,   232,    73,    90,   232,   232,   232,
1819 >      94,   232,   232,   122,   232,   232,    29,    40,   102,   232,
1820 >     150,   105,   106,   118,    37,   232,   232,   224,    13,   138,
1821 >     160,   161,   162,   163,   164,   165,    49,    50,   127,   232,
1822 >     135,    54,    55,    56,   232,   232,   155,   156,    71,    34,
1823 >      73,   112,   112,   137,   211,   112,   112,   112,    43,   112,
1824 >     112,  1210,   192,   135,   112,   211,    79,   135,   211,   229,
1825 >     154,   229,   211,   157,   158,   159,    99,   172,   173,   232,
1826 >     232,   232,   212,   213,   214,   232,   216,   217,   218,    74,
1827 >     232,   232,   232,   202,   166,   232,   232,   227,   166,   232,
1828 >     184,   173,   229,   127,   232,   173,   232,   232,   232,   132,
1829 >     182,   134,   232,   232,   182,   224,   232,   201,   103,   104,
1830 >     232,   232,   232,   229,   232,   232,   111,   232,   232,   224,
1831 >     153,   232,   204,   228,   206,   207,   204,   211,   206,   207,
1832 >     232,   225,   226,   112,     0,     1,   232,   232,     4,   221,
1833 >     173,   136,   232,   221,   232,   178,   228,   232,    14,   182,
1834 >     228,    17,    18,   232,   211,   232,   189,   152,    24,   112,
1835 >     211,   194,   211,     1,   112,   112,   112,   211,   211,    35,
1836 >     211,   204,    38,    39,   207,   112,   209,    15,    16,   112,
1837 >     112,    19,   112,   112,   112,   211,   232,   211,   221,   211,
1838 >     232,   211,   211,   211,   211,   228,   211,   211,     1,   112,
1839 >      66,   127,   211,   211,   211,    71,   127,   232,    49,   127,
1840 >      51,    52,   127,   229,    80,   210,   229,   229,   211,    22,
1841 >      23,   232,   232,   127,   127,    28,   232,   232,   232,    67,
1842 >     232,   232,   232,   232,   100,   101,   232,   229,   232,   229,
1843 >     211,   232,   229,   232,   232,   229,    84,    85,    86,    87,
1844 >      88,   232,   118,    49,    92,    51,    52,   232,    96,   232,
1845 >      63,    64,   232,   232,   102,   232,    69,    70,   232,   135,
1846 >     232,   232,    75,    76,    77,   113,   114,   232,   229,   112,
1847 >      83,    84,   148,   149,   211,   112,   211,   125,   211,   211,
1848 >     127,    49,   211,   127,   112,   127,   127,   127,   127,   127,
1849 >     211,   127,   127,   127,   170,   108,   109,   127,   232,   147,
1850 >     127,   112,   229,   229,   112,   229,   127,   183,   112,   229,
1851 >     229,   112,   229,   229,   232,   191,   167,   168,   169,   195,
1852 >     171,   172,   232,   174,   175,   229,   177,   229,   179,   229,
1853 >     229,   182,   229,   229,   185,   186,   229,   188,   229,   187,
1854 >     229,   229,   193,   229,   229,   229,   197,   198,   199,   229,
1855 >     229,   232,   203,   112,   112,   112,   112,   208,   112,   112,
1856 >     229,   167,   168,   169,   127,   171,   172,   127,   174,   175,
1857 >     232,   177,   127,   179,   112,   127,   182,   127,   211,   185,
1858 >     186,   127,   188,   127,   127,   127,   127,   193,   127,   211,
1859 >     127,   197,   198,   199,   127,   127,   127,   203,   229,   167,
1860 >     168,   169,   208,   171,   172,   229,   174,   175,   127,   177,
1861 >     229,   179,   229,   229,   182,   229,   112,   185,   186,   229,
1862 >     188,   127,   229,   232,   229,   193,   229,   229,   127,   197,
1863 >     198,   199,   229,   229,   229,   203,   229,   229,   229,   229,
1864 >     208,   229,   229,   229,   229,   229,   229,   229,   229,   229,
1865 >     229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
1866 >     229,   127,   229,   229,   229,   229,   127,   229,   229,   127,
1867 >     127,   127,   112,   127,   127,   127,   127,   127,   229,   127,
1868 >     229,   229,   229,   127,   229,   211,   127,    74,   127,   229,
1869 >     211,   127,   127,   229,   229,   229,   127,   127,   127,   229,
1870 >     112,   229,   229,   232,   229,   229,  1037,   503,  1286,   232,
1871 >     232,   229,   229,   229,   229,   229,   229,   229,   229,   229,
1872 >     229,   229,   229,   518,   229,   229,   229,   229,   229,   229,
1873 >    1248,   229,   229,  1229,   229,   229,   229,   229,   229,   229,
1874 >     229,   127,   229,   229,   232,   229,   229,   232,   229,   229,
1875 >     229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
1876 >     229,   229,   229,   133,   229,   229,   229,   229,   133,   229,
1877 >     229,   133,  1250,  1240,   229,   490,  1134,   467,  1238,   534,
1878 >     229,   588,   229,   229,   229,  1259,   229,   229,   572,  1234,
1879 >    1252,   229,   229,   480,   394,   229,   229,   229,   115,   168,
1880 >    1104,   229,   229,   229,   229,   229,   229,   229,   229,   229,
1881 >     229,   229,   229,   219,   229,   229,   229,   233,   229,   229,
1882 >     229,   229,   229,  1102,   229,   229,   229,   229,   229,   229,
1883 >     229,    94,    -1,   229,   232,   232,   229,   229,    -1,   234,
1884 >     234,   229,   232,   234,   229,   229,   229,   224,    -1,    -1,
1885 >      -1,    -1,    -1,    -1,    -1,   375,    -1,    -1,    -1,   341,
1886 >      -1,   240,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1887 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   268,
1888 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1889 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1890 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   290,    -1,
1891 >      -1,    -1,    -1,    -1,    -1,    -1,   297,    -1,    -1,    -1,
1892 >      -1,    -1,    -1,    -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,    -1,    -1,    -1,    -1,
1895        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2172      -1,    -1,    -1,   243,    -1,    -1,    -1,    -1,    -1,    -1,
1896        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2174      -1,    -1,   267,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1897        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1898 <      -1,    -1,    -1,    -1,    -1,    -1,   288
1898 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1899 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1900 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1901 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1902 >      -1,    -1,    -1,    -1,   404
1903   };
1904  
1905 < /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1906 <   symbol of state STATE-NUM.  */
1905 >  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1906 >     symbol of state STATE-NUM.  */
1907   static const yytype_uint16 yystos[] =
1908   {
1909 <       0,   221,     0,     1,     4,    14,    17,    18,    23,    34,
1910 <      38,    39,    48,    62,    70,    71,    88,   102,   136,   145,
1911 <     146,   149,   150,   201,   222,   227,   232,   254,   260,   274,
1912 <     292,   310,   324,   339,   346,   350,   360,   369,   389,   399,
1913 <     405,   409,   419,   477,   494,   215,   216,   217,   217,   293,
1914 <     370,   400,   217,   410,   217,   325,   390,   311,   217,   217,
1915 <     275,   340,   217,   217,   351,   361,   217,     1,    24,    31,
1916 <      89,   255,   256,   257,   258,   259,     1,    21,    22,    27,
1917 <      66,    67,    73,    74,    75,    95,    96,   108,   109,   119,
1918 <     127,   478,   479,   480,   481,   482,   483,   484,   485,   486,
1919 <     487,   488,   489,   490,   491,   492,   493,   217,   217,   217,
1920 <       1,    61,   406,   407,   408,   217,     1,     6,     7,    12,
1921 <      20,    26,    28,    29,    30,    35,    41,    42,    44,    45,
1922 <      46,    50,    55,    59,    60,    63,    72,    79,    80,    82,
1923 <      83,    84,    85,    86,    97,   103,   104,   105,   107,   110,
1924 <     111,   114,   148,   152,   155,   156,   157,   158,   159,   162,
1925 <     163,   202,   203,   204,   207,   212,   420,   421,   422,   423,
1926 <     424,   425,   426,   427,   428,   429,   430,   431,   432,   433,
1927 <     434,   435,   436,   437,   438,   439,   440,   441,   442,   443,
1928 <     444,   445,   446,   447,   448,   449,   450,   451,   452,   453,
1929 <     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
1930 <     464,   465,   466,   470,   474,   475,   476,   217,   217,   217,
1931 <       1,   208,   261,   262,   263,   264,   265,     1,    87,   113,
1932 <     228,   229,   230,   231,   217,   217,     1,    37,    51,    52,
1933 <      53,    54,    69,   495,   496,   497,   498,   499,   500,   501,
1934 <     502,     1,    24,    57,    89,    91,    92,   128,   130,   131,
1935 <     132,   133,   147,   171,   181,   209,   210,   233,   234,   235,
1936 <     236,   241,   242,   243,   244,   245,   246,   247,   248,   249,
1937 <     250,   251,   252,   253,   217,   217,     1,    89,   347,   348,
1938 <     349,   215,   218,   218,   218,   216,   256,   218,   218,   218,
1939 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
1940 <     218,   216,   479,     1,    15,    16,    19,    76,    77,    78,
1941 <      81,    89,   100,   101,   115,   116,   143,   184,   294,   295,
1942 <     296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
1943 <     306,   307,   308,   309,     1,     3,     5,    17,    32,    36,
1944 <      56,    58,    68,    89,   117,   144,   171,   209,   371,   372,
1945 <     373,   374,   375,   376,   377,   378,   379,   380,   384,   385,
1946 <     386,   387,   388,     1,    61,   120,   401,   402,   403,   404,
1947 <     218,   216,   407,     1,    89,   120,   151,   411,   415,   416,
1948 <     417,   418,   218,   218,   218,   218,   218,   218,   218,   218,
1949 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
1950 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
1951 <     218,   471,   218,   467,   218,   218,   218,   218,   218,   218,
1952 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
1953 <     218,   216,   421,     1,    17,    32,    36,   112,   121,   122,
1954 <     153,   206,   326,   327,   328,   329,   330,   331,   332,   336,
1955 <     337,   338,     1,   120,   151,   206,   391,   395,   396,   397,
1956 <     398,     1,    36,    56,    61,   117,   312,   316,   317,   318,
1957 <     322,   323,   215,   218,   216,   262,   214,   215,   218,   218,
1958 <     216,   229,     1,    17,    32,    36,    89,   112,   129,   192,
1959 <     206,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1960 <     288,     1,    14,    93,   120,   341,   342,   343,   344,   345,
1961 <     218,   218,   218,   218,   218,   218,   216,   496,   215,   218,
1962 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
1963 <     218,   218,   218,   218,   216,   234,     1,    89,   151,   206,
1964 <     352,   353,   354,   355,   356,     1,    89,   151,   362,   363,
1965 <     364,   365,   218,   216,   348,   118,   118,   118,   215,    99,
1966 <      99,   160,    99,   224,   224,    99,    99,    99,   160,   160,
1967 <      99,   224,   160,   160,   215,   215,   218,   218,   218,   218,
1968 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
1969 <     216,   295,   215,   218,   218,   218,   218,   381,   218,   218,
1970 <     218,   218,   218,   218,   218,   218,   216,   372,   218,   218,
1971 <     216,   402,   118,   215,   218,   218,   412,   216,   416,   160,
1972 <     224,   224,    99,   160,   160,    99,   118,   160,   224,   160,
1973 <     224,    99,    99,    99,   160,   160,   160,   224,    99,    99,
1974 <     224,    99,    99,   118,    99,    99,   160,   160,   218,   160,
1975 <     218,   224,   224,   160,   160,   160,   160,   160,   161,   160,
1976 <     161,   160,   160,   224,   224,   118,   224,   160,   160,   160,
1977 <     215,   215,   218,   218,   333,   218,   218,   218,   218,   218,
1978 <     216,   327,   218,   392,   218,   216,   396,   215,   313,   218,
1979 <     218,   218,   216,   317,   160,   215,   217,   118,   118,   215,
1980 <     215,   218,   218,   289,   218,   218,   218,   285,   218,   216,
1981 <     277,   215,   218,   218,   218,   216,   342,   160,   160,   118,
1982 <     160,   160,   224,   215,   118,   160,   118,   118,   118,   118,
1983 <     118,   118,   134,   135,   237,   238,   134,   135,   239,   240,
1984 <     118,   118,    99,   118,   118,   215,   215,   218,   357,   218,
1985 <     216,   353,   215,   218,   366,   216,   363,   118,   215,   215,
1986 <     215,   215,   215,   215,   215,   138,   139,   140,   141,   142,
1987 <     223,   224,   215,   215,   215,   215,   215,   215,   215,   215,
1988 <     215,   215,   215,    99,    99,   224,    99,    99,    99,    99,
1989 <     118,    99,    99,   224,   224,    99,   226,   226,   215,   118,
1990 <     178,   179,   118,   160,   218,   118,   118,   118,   118,    99,
1991 <     118,   118,   118,   215,   118,   118,   215,   215,   118,   118,
1992 <     218,   215,   215,   215,   215,   215,   215,   215,   215,   215,
1993 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
1994 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
1995 <     215,    51,   166,   167,   168,   169,   170,   172,   173,   175,
1996 <     176,   177,   180,   182,   183,   185,   187,   189,   190,   193,
1997 <     199,   472,   473,   215,    51,   166,   167,   168,   169,   170,
1998 <     172,   173,   175,   176,   177,   180,   182,   183,   185,   187,
1999 <     189,   190,   193,   199,   468,   469,   215,   215,   215,   215,
2000 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2001 <     215,   215,   215,   215,   215,   118,   160,   218,   118,    99,
2002 <     118,   118,   118,   215,   118,   218,   118,   215,   218,   118,
2003 <     118,    99,   320,   321,   215,   215,     1,    89,   151,   213,
2004 <     266,   267,   268,   269,   270,   215,   215,   118,   160,   218,
2005 <     118,   118,   118,   218,   118,   215,   118,   118,   118,   215,
2006 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2007 <     215,   215,   215,   215,   215,   219,   215,   219,   215,   215,
2008 <     215,   215,   215,   118,   218,   118,   215,   118,   218,   215,
2009 <     215,   223,   223,   223,   223,   223,   215,   215,   215,   215,
2010 <     215,   215,   215,   215,   215,   215,   215,   215,     9,    10,
2011 <      11,   225,   226,   215,   215,   215,   215,   215,   215,   215,
2012 <       8,   191,   382,   383,   215,   215,   215,   215,   215,   215,
2013 <     215,   215,   215,   215,   215,   215,   123,   413,   414,   215,
2014 <     219,   215,   219,   215,   215,    13,    33,    43,    49,    65,
2015 <      90,    98,   137,   154,   334,   335,   215,   215,   215,   215,
2016 <     215,   215,   123,   393,   394,   215,    51,   186,   191,   314,
2017 <     315,   215,   215,   164,   219,   319,   215,   218,   271,   218,
2018 <     216,   267,   215,   215,     4,    25,    40,    47,    64,    87,
2019 <      94,   106,   124,   125,   126,   174,   183,   188,   194,   198,
2020 <     200,   205,   211,   290,   291,   215,   215,   215,    51,   166,
2021 <     167,   168,   169,   170,   172,   173,   175,   176,   177,   180,
2022 <     182,   183,   185,   187,   189,   190,   193,   199,   286,   287,
2023 <     215,   215,   215,   215,   238,   240,   215,    64,   136,   165,
2024 <     174,   180,   194,   196,   197,   205,   211,   358,   359,   215,
2025 <     215,    64,   136,   165,   174,   180,   194,   196,   197,   205,
2026 <     211,   367,   368,   225,   225,   225,   215,   219,   215,   219,
2027 <     473,   469,   215,   219,   215,   219,   215,   219,    99,   321,
2028 <     215,   118,   218,   195,   226,   215,   215,   219,   215,   219,
2029 <     215,   219,   215,   219,   383,   414,   335,   394,   315,   215,
2030 <      40,    62,    64,   102,   173,   174,   206,   272,   273,   215,
2031 <     215,   291,   287,   359,   368,   215,   219,   273
1909 >       0,   236,     0,     1,     4,    14,    17,    18,    24,    35,
1910 >      38,    39,    66,    71,    80,   100,   101,   118,   135,   148,
1911 >     149,   170,   183,   191,   195,   237,   242,   247,   267,   273,
1912 >     279,   293,   313,   337,   351,   366,   373,   377,   387,   396,
1913 >     417,   423,   429,   433,   439,   496,   513,   229,   230,   231,
1914 >     231,   314,   397,   424,   231,   434,   231,   352,   418,   338,
1915 >     231,   274,   294,   367,   231,   231,   388,   231,   231,   378,
1916 >       1,    25,    32,   102,   268,   269,   270,   271,   272,     1,
1917 >      22,    23,    28,    63,    64,    69,    70,    75,    76,    77,
1918 >      83,    84,   108,   109,   497,   498,   499,   500,   501,   502,
1919 >     503,   504,   505,   506,   507,   508,   509,   510,   511,   512,
1920 >     231,   231,   231,     1,    65,   430,   431,   432,   231,     1,
1921 >       6,     7,    12,    20,    21,    27,    30,    36,    41,    42,
1922 >      44,    45,    46,    48,    57,    61,    62,    72,    82,    89,
1923 >      91,    93,    95,    97,    98,   110,   115,   116,   117,   119,
1924 >     120,   121,   124,   150,   160,   161,   162,   163,   164,   165,
1925 >     192,   212,   213,   214,   216,   217,   218,   227,   440,   441,
1926 >     442,   443,   444,   445,   446,   447,   448,   449,   450,   451,
1927 >     452,   453,   454,   455,   456,   457,   458,   459,   460,   461,
1928 >     462,   463,   464,   465,   466,   467,   468,   469,   470,   471,
1929 >     472,   473,   474,   475,   476,   477,   478,   479,   480,   481,
1930 >     482,   483,   484,   485,   489,   493,   494,   495,   231,   231,
1931 >     231,     1,    99,   123,   243,   244,   245,   246,   231,   231,
1932 >     231,     1,    29,    37,    49,    50,    54,    55,    56,    79,
1933 >     514,   515,   516,   517,   518,   519,   520,   521,   522,   523,
1934 >       1,    25,    59,    68,    90,    94,   102,   105,   106,   137,
1935 >     154,   157,   158,   159,   184,   201,   225,   226,   248,   249,
1936 >     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
1937 >     260,   261,   262,   263,   264,   265,   266,   231,     1,   223,
1938 >     280,   281,   282,   283,   284,     1,   102,   374,   375,   376,
1939 >     231,   229,   232,   232,   232,   230,   269,   232,   232,   232,
1940 >     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
1941 >     232,   230,   498,     1,    15,    16,    19,    67,    84,    85,
1942 >      86,    87,    88,    92,    96,   102,   113,   114,   125,   147,
1943 >     187,   315,   316,   317,   318,   319,   320,   321,   322,   323,
1944 >     324,   325,   326,   327,   328,   329,   330,   331,   332,   333,
1945 >       1,     3,     5,    17,    33,    58,    60,    67,    78,   102,
1946 >     126,   146,   155,   201,   225,   398,   399,   400,   401,   402,
1947 >     403,   404,   405,   406,   407,   408,   412,   413,   414,   415,
1948 >     416,     1,    65,   129,   425,   426,   427,   428,   232,   230,
1949 >     431,     1,   102,   129,   435,   436,   437,   438,   232,   232,
1950 >     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
1951 >     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
1952 >     232,   232,   232,   232,   490,   232,   486,   232,   232,   232,
1953 >     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
1954 >     232,   232,   232,   232,   232,   232,   230,   441,     1,    17,
1955 >      33,    67,   122,   130,   131,   151,   224,   353,   354,   355,
1956 >     356,   357,   358,   359,   363,   364,   365,     1,   129,   224,
1957 >     419,   420,   421,   422,     1,    58,    65,    67,   126,   339,
1958 >     343,   344,   345,   349,   350,   229,   232,   232,   230,   244,
1959 >       1,    81,   176,   275,   276,   277,   278,     1,    17,    33,
1960 >      67,   102,   122,   138,   155,   156,   202,   224,   295,   296,
1961 >     297,   298,   299,   300,   301,   302,   303,   304,   305,   309,
1962 >       1,    35,    81,   129,   368,   369,   370,   371,   372,   232,
1963 >     232,   232,   232,   232,   232,   232,   232,   230,   515,   229,
1964 >     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
1965 >     232,   232,   232,   232,   232,   232,   232,   230,   249,     1,
1966 >     102,   220,   389,   390,   391,   392,   229,   232,   230,   281,
1967 >     176,   232,   230,   375,     1,   102,   220,   224,   379,   380,
1968 >     381,   382,   383,   127,   127,   127,   229,   112,   112,   211,
1969 >     112,   112,   239,   112,   239,   112,   239,   239,   112,   112,
1970 >     211,   211,   229,   229,   232,   232,   232,   334,   232,   232,
1971 >     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
1972 >     232,   230,   316,   229,   232,   232,   232,   232,   232,   232,
1973 >     409,   232,   232,   232,   232,   232,   232,   232,   230,   399,
1974 >     232,   232,   230,   426,   127,   229,   232,   232,   230,   436,
1975 >     211,   239,   239,   211,   112,   211,   112,   211,   239,   211,
1976 >     112,   112,   239,   112,   211,   211,   211,   239,   112,   112,
1977 >     239,   112,   112,   112,   112,   211,   232,   211,   232,   211,
1978 >     239,   239,   211,   211,   211,   211,   215,   211,   215,   211,
1979 >     211,   211,   127,   112,   239,   211,   211,   239,   239,   211,
1980 >     229,   229,   232,   232,   360,   232,   232,   232,   232,   232,
1981 >     230,   354,   232,   232,   230,   420,   229,   232,   232,   340,
1982 >     232,   230,   344,   127,   127,   229,   229,   232,   232,   230,
1983 >     276,   229,   232,   232,   310,   232,   232,   232,   232,   232,
1984 >     306,   232,   230,   296,   229,   232,   232,   232,   230,   369,
1985 >     211,   211,   211,   127,   211,   211,   211,   239,   229,   127,
1986 >     211,   127,   112,   112,   127,   127,   127,   127,   127,   127,
1987 >     127,   127,   112,   127,   127,   127,   229,   229,   232,   393,
1988 >     230,   390,   211,   229,   231,   127,   229,   229,   232,   384,
1989 >     232,   230,   380,   229,   229,   229,   229,   229,   229,   229,
1990 >     139,   140,   141,   142,   143,   144,   145,   238,   239,   229,
1991 >     229,   229,   229,   229,   229,   229,   229,   229,   229,   112,
1992 >     112,   239,   232,   112,   112,   112,   239,   112,   112,   239,
1993 >     127,   112,   112,   239,   112,   241,   241,   229,   127,   180,
1994 >     181,   127,   211,   127,   127,   232,   127,   127,   112,   127,
1995 >     127,   127,   127,   229,   127,   127,   229,   229,   127,   127,
1996 >     229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
1997 >     229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
1998 >     229,   229,   229,   229,   229,   229,   229,    49,   167,   168,
1999 >     169,   171,   172,   174,   175,   177,   179,   182,   185,   186,
2000 >     188,   193,   197,   198,   199,   203,   208,   491,   492,   229,
2001 >      49,    51,    52,   167,   168,   169,   171,   172,   174,   175,
2002 >     177,   179,   182,   185,   186,   188,   193,   197,   198,   199,
2003 >     203,   208,   487,   488,   229,   229,   229,   229,   229,   229,
2004 >     229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
2005 >     229,   229,   229,   229,   229,   127,   211,   232,   127,   112,
2006 >     127,   127,   127,   229,   127,   127,   229,   127,   127,   232,
2007 >     112,   347,   348,   229,   229,   229,   127,   127,   229,   127,
2008 >     211,   232,   127,   127,   127,   127,   211,   232,   127,   229,
2009 >     127,   127,   127,   229,   229,   229,   229,   229,   229,   229,
2010 >     229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
2011 >     229,   229,   229,   229,   229,   229,   229,   229,   229,   127,
2012 >     232,   229,   229,     1,   102,   196,   220,   285,   286,   287,
2013 >     288,   289,   229,   127,   232,   127,   229,   238,   238,   238,
2014 >     238,   238,   238,   238,   229,   229,   229,    53,   128,   335,
2015 >     336,   229,   229,   229,   229,   229,   229,   229,   229,   229,
2016 >     229,   229,     9,    10,    11,   240,   241,   229,   229,   229,
2017 >     229,   229,   229,   229,   229,   229,     8,   200,   410,   411,
2018 >     229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
2019 >     229,   229,   233,   229,   233,   229,   229,    13,    34,    43,
2020 >      74,   103,   104,   111,   136,   152,   210,   361,   362,   229,
2021 >     229,   229,   229,   229,   229,   229,   229,   229,    49,   190,
2022 >     200,   341,   342,   219,   233,   346,   229,   229,   229,   229,
2023 >       4,    18,    26,    40,    71,    73,    99,   132,   134,   153,
2024 >     173,   178,   182,   189,   194,   204,   207,   209,   221,   228,
2025 >     311,   312,   229,   229,   229,   229,   229,    49,    51,    52,
2026 >     167,   168,   169,   171,   172,   174,   175,   177,   179,   182,
2027 >     185,   186,   188,   193,   197,   198,   199,   203,   208,   307,
2028 >     308,   229,   229,   229,   229,   229,    73,   135,   166,   173,
2029 >     182,   204,   206,   207,   221,   228,   394,   395,   229,   232,
2030 >     232,   290,   230,   286,   229,    73,   135,   166,   173,   182,
2031 >     204,   206,   207,   221,   228,   385,   386,   229,   229,   233,
2032 >     240,   240,   240,   229,   233,   492,   488,   229,   233,   229,
2033 >     233,   112,   348,   229,   234,   234,   234,   229,   233,   229,
2034 >     233,   229,   233,   127,   205,   241,   232,   229,   229,   233,
2035 >     336,   411,   362,   342,   133,   133,   133,   312,   308,   395,
2036 >     229,   229,   229,    40,    71,    73,   118,   135,   172,   173,
2037 >     224,   228,   291,   292,   386,   229,   233,   292
2038   };
2039  
2040 < #define yyerrok         (yyerrstatus = 0)
2041 < #define yyclearin       (yychar = YYEMPTY)
2042 < #define YYEMPTY         (-2)
2043 < #define YYEOF           0
2044 <
2045 < #define YYACCEPT        goto yyacceptlab
2046 < #define YYABORT         goto yyabortlab
2047 < #define YYERROR         goto yyerrorlab
2048 <
2049 <
2050 < /* Like YYERROR except do call yyerror.  This remains here temporarily
2051 <   to ease the transition to the new meaning of YYERROR, for GCC.
2052 <   Once GCC version 2 has supplanted version 1, this can go.  However,
2053 <   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
2054 <   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2055 <   discussed.  */
2056 <
2057 < #define YYFAIL          goto yyerrlab
2058 < #if defined YYFAIL
2059 <  /* This is here to suppress warnings from the GCC cpp's
2060 <     -Wunused-macros.  Normally we don't worry about that warning, but
2061 <     some users do, and we want to make it easy for users to remove
2062 <     YYFAIL uses, which will produce warnings from Bison 2.5.  */
2063 < #endif
2040 >  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
2041 > static const yytype_uint16 yyr1[] =
2042 > {
2043 >       0,   235,   236,   236,   237,   237,   237,   237,   237,   237,
2044 >     237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
2045 >     237,   237,   237,   237,   237,   237,   237,   238,   238,   239,
2046 >     239,   239,   239,   239,   239,   239,   239,   240,   240,   241,
2047 >     241,   241,   241,   242,   243,   243,   244,   244,   244,   245,
2048 >     246,   247,   248,   248,   249,   249,   249,   249,   249,   249,
2049 >     249,   249,   249,   249,   249,   249,   249,   249,   249,   249,
2050 >     249,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2051 >     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
2052 >     268,   268,   269,   269,   269,   269,   270,   271,   272,   274,
2053 >     273,   275,   275,   276,   276,   276,   277,   278,   279,   280,
2054 >     280,   281,   281,   281,   282,   284,   283,   285,   285,   286,
2055 >     286,   286,   286,   287,   288,   288,   290,   289,   291,   291,
2056 >     292,   292,   292,   292,   292,   292,   292,   292,   292,   294,
2057 >     293,   295,   295,   296,   296,   296,   296,   296,   296,   296,
2058 >     296,   296,   296,   296,   297,   298,   299,   300,   301,   302,
2059 >     303,   304,   306,   305,   307,   307,   308,   308,   308,   308,
2060 >     308,   308,   308,   308,   308,   308,   308,   308,   308,   308,
2061 >     308,   308,   308,   308,   308,   308,   308,   308,   310,   309,
2062 >     311,   311,   312,   312,   312,   312,   312,   312,   312,   312,
2063 >     312,   312,   312,   312,   312,   312,   312,   312,   312,   312,
2064 >     312,   312,   312,   312,   312,   314,   313,   315,   315,   316,
2065 >     316,   316,   316,   316,   316,   316,   316,   316,   316,   316,
2066 >     316,   316,   316,   316,   316,   316,   316,   317,   318,   319,
2067 >     320,   321,   322,   323,   324,   325,   326,   327,   328,   329,
2068 >     330,   331,   332,   334,   333,   335,   335,   336,   336,   338,
2069 >     337,   340,   339,   341,   341,   342,   342,   342,   343,   343,
2070 >     344,   344,   344,   344,   344,   346,   345,   347,   347,   348,
2071 >     348,   349,   350,   352,   351,   353,   353,   354,   354,   354,
2072 >     354,   354,   354,   354,   354,   354,   355,   356,   357,   358,
2073 >     360,   359,   361,   361,   362,   362,   362,   362,   362,   362,
2074 >     362,   362,   362,   362,   363,   364,   365,   367,   366,   368,
2075 >     368,   369,   369,   369,   369,   370,   371,   372,   373,   374,
2076 >     374,   375,   375,   376,   378,   377,   379,   379,   380,   380,
2077 >     380,   380,   381,   382,   384,   383,   385,   385,   386,   386,
2078 >     386,   386,   386,   386,   386,   386,   386,   386,   388,   387,
2079 >     389,   389,   390,   390,   390,   391,   393,   392,   394,   394,
2080 >     395,   395,   395,   395,   395,   395,   395,   395,   395,   395,
2081 >     397,   396,   398,   398,   399,   399,   399,   399,   399,   399,
2082 >     399,   399,   399,   399,   399,   399,   399,   399,   399,   400,
2083 >     401,   402,   403,   404,   405,   406,   407,   407,   409,   408,
2084 >     410,   410,   411,   411,   412,   413,   414,   415,   416,   418,
2085 >     417,   419,   419,   420,   420,   420,   421,   422,   424,   423,
2086 >     425,   425,   426,   426,   426,   427,   428,   429,   430,   430,
2087 >     431,   431,   432,   434,   433,   435,   435,   436,   436,   436,
2088 >     437,   438,   439,   440,   440,   441,   441,   441,   441,   441,
2089 >     441,   441,   441,   441,   441,   441,   441,   441,   441,   441,
2090 >     441,   441,   441,   441,   441,   441,   441,   441,   441,   441,
2091 >     441,   441,   441,   441,   441,   441,   441,   441,   441,   441,
2092 >     441,   441,   441,   441,   441,   441,   441,   441,   441,   441,
2093 >     441,   441,   441,   441,   442,   443,   444,   445,   446,   447,
2094 >     448,   449,   450,   451,   452,   453,   454,   455,   456,   457,
2095 >     458,   459,   460,   461,   462,   463,   464,   465,   466,   467,
2096 >     468,   468,   469,   469,   470,   471,   472,   473,   474,   475,
2097 >     476,   477,   478,   479,   480,   481,   482,   483,   484,   486,
2098 >     485,   487,   487,   488,   488,   488,   488,   488,   488,   488,
2099 >     488,   488,   488,   488,   488,   488,   488,   488,   488,   488,
2100 >     488,   488,   488,   488,   488,   490,   489,   491,   491,   492,
2101 >     492,   492,   492,   492,   492,   492,   492,   492,   492,   492,
2102 >     492,   492,   492,   492,   492,   492,   492,   492,   492,   493,
2103 >     494,   495,   496,   497,   497,   498,   498,   498,   498,   498,
2104 >     498,   498,   498,   498,   498,   498,   498,   498,   498,   498,
2105 >     499,   500,   501,   502,   503,   504,   505,   506,   507,   508,
2106 >     509,   510,   511,   512,   513,   514,   514,   515,   515,   515,
2107 >     515,   515,   515,   515,   515,   515,   516,   517,   518,   519,
2108 >     520,   521,   522,   523
2109 > };
2110 >
2111 >  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
2112 > static const yytype_uint8 yyr2[] =
2113 > {
2114 >       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
2115 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2116 >       1,     1,     1,     1,     1,     2,     2,     0,     1,     2,
2117 >       3,     3,     3,     3,     3,     3,     3,     0,     1,     2,
2118 >       3,     3,     3,     5,     2,     1,     1,     1,     2,     4,
2119 >       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
2120 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2121 >       1,     2,     4,     4,     4,     4,     4,     4,     4,     4,
2122 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     5,
2123 >       2,     1,     1,     1,     1,     2,     4,     4,     4,     0,
2124 >       6,     2,     1,     1,     1,     2,     4,     4,     5,     2,
2125 >       1,     1,     1,     2,     4,     0,     6,     2,     1,     1,
2126 >       1,     1,     2,     4,     4,     4,     0,     5,     3,     1,
2127 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
2128 >       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
2129 >       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
2130 >       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
2131 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2132 >       1,     1,     1,     1,     1,     1,     1,     1,     0,     5,
2133 >       3,     1,     3,     1,     3,     1,     3,     1,     1,     1,
2134 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2135 >       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
2136 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2137 >       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
2138 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2139 >       4,     4,     4,     0,     5,     3,     1,     1,     1,     0,
2140 >       6,     0,     5,     3,     1,     1,     1,     1,     2,     1,
2141 >       1,     1,     1,     1,     2,     0,     5,     3,     1,     1,
2142 >       3,     4,     4,     0,     6,     2,     1,     1,     1,     1,
2143 >       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
2144 >       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
2145 >       1,     1,     1,     1,     4,     4,     4,     0,     6,     2,
2146 >       1,     1,     1,     1,     2,     4,     4,     4,     5,     2,
2147 >       1,     1,     1,     4,     0,     6,     2,     1,     1,     1,
2148 >       1,     2,     4,     4,     0,     5,     3,     1,     1,     1,
2149 >       1,     1,     1,     1,     1,     1,     1,     1,     0,     6,
2150 >       2,     1,     1,     1,     2,     4,     0,     5,     3,     1,
2151 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2152 >       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
2153 >       1,     1,     1,     1,     1,     1,     1,     1,     2,     4,
2154 >       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
2155 >       3,     1,     1,     1,     4,     4,     4,     4,     4,     0,
2156 >       6,     2,     1,     1,     1,     1,     4,     4,     0,     6,
2157 >       2,     1,     1,     1,     1,     4,     4,     5,     2,     1,
2158 >       1,     1,     4,     0,     6,     2,     1,     1,     1,     1,
2159 >       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
2160 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2161 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2162 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2163 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2164 >       1,     1,     1,     1,     4,     4,     4,     4,     4,     4,
2165 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2166 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2167 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2168 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     0,
2169 >       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
2170 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2171 >       1,     1,     1,     1,     1,     0,     5,     3,     1,     1,
2172 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2173 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
2174 >       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
2175 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2176 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2177 >       4,     4,     4,     4,     5,     2,     1,     1,     1,     1,
2178 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     4,
2179 >       4,     4,     4,     4
2180 > };
2181 >
2182 >
2183 > #define yyerrok         (yyerrstatus = 0)
2184 > #define yyclearin       (yychar = YYEMPTY)
2185 > #define YYEMPTY         (-2)
2186 > #define YYEOF           0
2187 >
2188 > #define YYACCEPT        goto yyacceptlab
2189 > #define YYABORT         goto yyabortlab
2190 > #define YYERROR         goto yyerrorlab
2191 >
2192  
2193   #define YYRECOVERING()  (!!yyerrstatus)
2194  
# Line 2345 | Line 2205 | do
2205    else                                                          \
2206      {                                                           \
2207        yyerror (YY_("syntax error: cannot back up")); \
2208 <      YYERROR;                                                  \
2209 <    }                                                           \
2210 < while (YYID (0))
2208 >      YYERROR;                                                  \
2209 >    }                                                           \
2210 > while (0)
2211  
2212 + /* Error token number */
2213 + #define YYTERROR        1
2214 + #define YYERRCODE       256
2215  
2353 #define YYTERROR        1
2354 #define YYERRCODE       256
2216  
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).  */
2217  
2218 < #ifndef YYLLOC_DEFAULT
2219 < # 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
2379 <
2380 < #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2218 > /* Enable debugging if requested.  */
2219 > #if YYDEBUG
2220  
2221 + # ifndef YYFPRINTF
2222 + #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2223 + #  define YYFPRINTF fprintf
2224 + # endif
2225  
2226 + # define YYDPRINTF(Args)                        \
2227 + do {                                            \
2228 +  if (yydebug)                                  \
2229 +    YYFPRINTF Args;                             \
2230 + } while (0)
2231  
2232   /* This macro is provided for backward compatibility. */
2385
2233   #ifndef YY_LOCATION_PRINT
2234   # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2235   #endif
2236  
2237  
2238 < /* YYLEX -- calling `yylex' with the right arguments.  */
2238 > # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2239 > do {                                                                      \
2240 >  if (yydebug)                                                            \
2241 >    {                                                                     \
2242 >      YYFPRINTF (stderr, "%s ", Title);                                   \
2243 >      yy_symbol_print (stderr,                                            \
2244 >                  Type, Value); \
2245 >      YYFPRINTF (stderr, "\n");                                           \
2246 >    }                                                                     \
2247 > } while (0)
2248  
2393 #ifdef YYLEX_PARAM
2394 # define YYLEX yylex (YYLEX_PARAM)
2395 #else
2396 # define YYLEX yylex ()
2397 #endif
2249  
2250 < /* Enable debugging if requested.  */
2251 < #if YYDEBUG
2250 > /*----------------------------------------.
2251 > | Print this symbol's value on YYOUTPUT.  |
2252 > `----------------------------------------*/
2253  
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))
2423
2424
2425 /*--------------------------------.
2426 | Print this symbol on YYOUTPUT.  |
2427 `--------------------------------*/
2428
2429 /*ARGSUSED*/
2430 #if (defined __STDC__ || defined __C99__FUNC__ \
2431     || defined __cplusplus || defined _MSC_VER)
2254   static void
2255   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
2256   {
2257    FILE *yyo = yyoutput;
2258    YYUSE (yyo);
# Line 2446 | Line 2261 | yy_symbol_value_print (yyoutput, yytype,
2261   # ifdef YYPRINT
2262    if (yytype < YYNTOKENS)
2263      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2449 # else
2450  YYUSE (yyoutput);
2264   # endif
2265 <  switch (yytype)
2453 <    {
2454 <      default:
2455 <        break;
2456 <    }
2265 >  YYUSE (yytype);
2266   }
2267  
2268  
# Line 2461 | Line 2270 | yy_symbol_value_print (yyoutput, yytype,
2270   | Print this symbol on YYOUTPUT.  |
2271   `--------------------------------*/
2272  
2464 #if (defined __STDC__ || defined __C99__FUNC__ \
2465     || defined __cplusplus || defined _MSC_VER)
2273   static void
2274   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
2275   {
2276 <  if (yytype < YYNTOKENS)
2277 <    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2478 <  else
2479 <    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2276 >  YYFPRINTF (yyoutput, "%s %s (",
2277 >             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2278  
2279    yy_symbol_value_print (yyoutput, yytype, yyvaluep);
2280    YYFPRINTF (yyoutput, ")");
# Line 2487 | Line 2285 | yy_symbol_print (yyoutput, yytype, yyval
2285   | TOP (included).                                                   |
2286   `------------------------------------------------------------------*/
2287  
2490 #if (defined __STDC__ || defined __C99__FUNC__ \
2491     || defined __cplusplus || defined _MSC_VER)
2288   static void
2289   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
2290   {
2291    YYFPRINTF (stderr, "Stack now");
2292    for (; yybottom <= yytop; yybottom++)
# Line 2507 | Line 2297 | yy_stack_print (yybottom, yytop)
2297    YYFPRINTF (stderr, "\n");
2298   }
2299  
2300 < # define YY_STACK_PRINT(Bottom, Top)                            \
2301 < do {                                                            \
2302 <  if (yydebug)                                                  \
2303 <    yy_stack_print ((Bottom), (Top));                           \
2304 < } while (YYID (0))
2300 > # define YY_STACK_PRINT(Bottom, Top)                            \
2301 > do {                                                            \
2302 >  if (yydebug)                                                  \
2303 >    yy_stack_print ((Bottom), (Top));                           \
2304 > } while (0)
2305  
2306  
2307   /*------------------------------------------------.
2308   | Report that the YYRULE is going to be reduced.  |
2309   `------------------------------------------------*/
2310  
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
2311   static void
2312 < yy_reduce_print (yyvsp, yyrule)
2528 <    YYSTYPE *yyvsp;
2529 <    int yyrule;
2530 < #endif
2312 > yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
2313   {
2314 +  unsigned long int yylno = yyrline[yyrule];
2315    int yynrhs = yyr2[yyrule];
2316    int yyi;
2534  unsigned long int yylno = yyrline[yyrule];
2317    YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2318 <             yyrule - 1, yylno);
2318 >             yyrule - 1, yylno);
2319    /* The symbols being reduced.  */
2320    for (yyi = 0; yyi < yynrhs; yyi++)
2321      {
2322        YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2323 <      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
2324 <                       &(yyvsp[(yyi + 1) - (yynrhs)])
2325 <                                       );
2323 >      yy_symbol_print (stderr,
2324 >                       yystos[yyssp[yyi + 1 - yynrhs]],
2325 >                       &(yyvsp[(yyi + 1) - (yynrhs)])
2326 >                                              );
2327        YYFPRINTF (stderr, "\n");
2328      }
2329   }
2330  
2331 < # define YY_REDUCE_PRINT(Rule)          \
2332 < do {                                    \
2333 <  if (yydebug)                          \
2334 <    yy_reduce_print (yyvsp, Rule); \
2335 < } while (YYID (0))
2331 > # define YY_REDUCE_PRINT(Rule)          \
2332 > do {                                    \
2333 >  if (yydebug)                          \
2334 >    yy_reduce_print (yyssp, yyvsp, Rule); \
2335 > } while (0)
2336  
2337   /* Nonzero means print parse trace.  It is left uninitialized so that
2338     multiple parsers can coexist.  */
# Line 2563 | Line 2346 | int yydebug;
2346  
2347  
2348   /* YYINITDEPTH -- initial size of the parser's stacks.  */
2349 < #ifndef YYINITDEPTH
2349 > #ifndef YYINITDEPTH
2350   # define YYINITDEPTH 200
2351   #endif
2352  
# Line 2586 | Line 2369 | int yydebug;
2369   #   define yystrlen strlen
2370   #  else
2371   /* Return the length of YYSTR.  */
2589 #if (defined __STDC__ || defined __C99__FUNC__ \
2590     || defined __cplusplus || defined _MSC_VER)
2372   static YYSIZE_T
2373   yystrlen (const char *yystr)
2593 #else
2594 static YYSIZE_T
2595 yystrlen (yystr)
2596    const char *yystr;
2597 #endif
2374   {
2375    YYSIZE_T yylen;
2376    for (yylen = 0; yystr[yylen]; yylen++)
# Line 2610 | Line 2386 | yystrlen (yystr)
2386   #  else
2387   /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2388     YYDEST.  */
2613 #if (defined __STDC__ || defined __C99__FUNC__ \
2614     || defined __cplusplus || defined _MSC_VER)
2389   static char *
2390   yystpcpy (char *yydest, const char *yysrc)
2617 #else
2618 static char *
2619 yystpcpy (yydest, yysrc)
2620    char *yydest;
2621    const char *yysrc;
2622 #endif
2391   {
2392    char *yyd = yydest;
2393    const char *yys = yysrc;
# Line 2649 | Line 2417 | yytnamerr (char *yyres, const char *yyst
2417        char const *yyp = yystr;
2418  
2419        for (;;)
2420 <        switch (*++yyp)
2421 <          {
2422 <          case '\'':
2423 <          case ',':
2424 <            goto do_not_strip_quotes;
2425 <
2426 <          case '\\':
2427 <            if (*++yyp != '\\')
2428 <              goto do_not_strip_quotes;
2429 <            /* Fall through.  */
2430 <          default:
2431 <            if (yyres)
2432 <              yyres[yyn] = *yyp;
2433 <            yyn++;
2434 <            break;
2435 <
2436 <          case '"':
2437 <            if (yyres)
2438 <              yyres[yyn] = '\0';
2439 <            return yyn;
2440 <          }
2420 >        switch (*++yyp)
2421 >          {
2422 >          case '\'':
2423 >          case ',':
2424 >            goto do_not_strip_quotes;
2425 >
2426 >          case '\\':
2427 >            if (*++yyp != '\\')
2428 >              goto do_not_strip_quotes;
2429 >            /* Fall through.  */
2430 >          default:
2431 >            if (yyres)
2432 >              yyres[yyn] = *yyp;
2433 >            yyn++;
2434 >            break;
2435 >
2436 >          case '"':
2437 >            if (yyres)
2438 >              yyres[yyn] = '\0';
2439 >            return yyn;
2440 >          }
2441      do_not_strip_quotes: ;
2442      }
2443  
# Line 2692 | Line 2460 | static int
2460   yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2461                  yytype_int16 *yyssp, int yytoken)
2462   {
2463 <  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
2463 >  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
2464    YYSIZE_T yysize = yysize0;
2697  YYSIZE_T yysize1;
2465    enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2466    /* Internationalized format string. */
2467 <  const char *yyformat = YY_NULL;
2467 >  const char *yyformat = YY_NULLPTR;
2468    /* Arguments of yyformat. */
2469    char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2470    /* Number of reported tokens (one for the "unexpected", one per
# Line 2705 | Line 2472 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2472    int yycount = 0;
2473  
2474    /* 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.
2475       - If this state is a consistent state with a default action, then
2476         the only way this function was invoked is if the default action
2477         is an error action.  In that case, don't check for expected
# Line 2757 | Line 2520 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2520                      break;
2521                    }
2522                  yyarg[yycount++] = yytname[yyx];
2523 <                yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2524 <                if (! (yysize <= yysize1
2525 <                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2526 <                  return 2;
2527 <                yysize = yysize1;
2523 >                {
2524 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2525 >                  if (! (yysize <= yysize1
2526 >                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2527 >                    return 2;
2528 >                  yysize = yysize1;
2529 >                }
2530                }
2531          }
2532      }
# Line 2781 | Line 2546 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2546   # undef YYCASE_
2547      }
2548  
2549 <  yysize1 = yysize + yystrlen (yyformat);
2550 <  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2551 <    return 2;
2552 <  yysize = yysize1;
2549 >  {
2550 >    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2551 >    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2552 >      return 2;
2553 >    yysize = yysize1;
2554 >  }
2555  
2556    if (*yymsg_alloc < yysize)
2557      {
# Line 2821 | Line 2588 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2588   | Release the memory associated to this symbol.  |
2589   `-----------------------------------------------*/
2590  
2824 /*ARGSUSED*/
2825 #if (defined __STDC__ || defined __C99__FUNC__ \
2826     || defined __cplusplus || defined _MSC_VER)
2591   static void
2592   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
2593   {
2594    YYUSE (yyvaluep);
2838
2595    if (!yymsg)
2596      yymsg = "Deleting";
2597    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2598  
2599 <  switch (yytype)
2600 <    {
2601 <
2846 <      default:
2847 <        break;
2848 <    }
2599 >  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2600 >  YYUSE (yytype);
2601 >  YY_IGNORE_MAYBE_UNINITIALIZED_END
2602   }
2603  
2604  
# Line 2856 | Line 2609 | int yychar;
2609  
2610   /* The semantic value of the lookahead symbol.  */
2611   YYSTYPE yylval;
2859
2612   /* Number of syntax errors so far.  */
2613   int yynerrs;
2614  
# Line 2865 | Line 2617 | int yynerrs;
2617   | yyparse.  |
2618   `----------*/
2619  
2868 #ifdef YYPARSE_PARAM
2869 #if (defined __STDC__ || defined __C99__FUNC__ \
2870     || defined __cplusplus || defined _MSC_VER)
2871 int
2872 yyparse (void *YYPARSE_PARAM)
2873 #else
2874 int
2875 yyparse (YYPARSE_PARAM)
2876    void *YYPARSE_PARAM;
2877 #endif
2878 #else /* ! YYPARSE_PARAM */
2879 #if (defined __STDC__ || defined __C99__FUNC__ \
2880     || defined __cplusplus || defined _MSC_VER)
2620   int
2621   yyparse (void)
2883 #else
2884 int
2885 yyparse ()
2886
2887 #endif
2888 #endif
2622   {
2623      int yystate;
2624      /* Number of tokens to shift before error messages enabled.  */
2625      int yyerrstatus;
2626  
2627      /* The stacks and their tools:
2628 <       `yyss': related to states.
2629 <       `yyvs': related to semantic values.
2628 >       'yyss': related to states.
2629 >       'yyvs': related to semantic values.
2630  
2631         Refer to the stacks through separate pointers, to allow yyoverflow
2632         to reallocate them elsewhere.  */
# Line 2913 | Line 2646 | yyparse ()
2646    int yyn;
2647    int yyresult;
2648    /* Lookahead token as an internal (translated) token number.  */
2649 <  int yytoken;
2649 >  int yytoken = 0;
2650    /* The variables used to return semantic value and location from the
2651       action routines.  */
2652    YYSTYPE yyval;
# Line 2931 | Line 2664 | yyparse ()
2664       Keep to zero when no symbol should be popped.  */
2665    int yylen = 0;
2666  
2667 <  yytoken = 0;
2668 <  yyss = yyssa;
2936 <  yyvs = yyvsa;
2667 >  yyssp = yyss = yyssa;
2668 >  yyvsp = yyvs = yyvsa;
2669    yystacksize = YYINITDEPTH;
2670  
2671    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 2942 | Line 2674 | yyparse ()
2674    yyerrstatus = 0;
2675    yynerrs = 0;
2676    yychar = YYEMPTY; /* Cause a token to be read.  */
2945
2946  /* Initialize stack pointers.
2947     Waste one element of value and location stack
2948     so that they stay on the same level as the state stack.
2949     The wasted elements are never initialized.  */
2950  yyssp = yyss;
2951  yyvsp = yyvs;
2677    goto yysetstate;
2678  
2679   /*------------------------------------------------------------.
# Line 2969 | Line 2694 | yyparse ()
2694  
2695   #ifdef yyoverflow
2696        {
2697 <        /* Give user a chance to reallocate the stack.  Use copies of
2698 <           these so that the &'s don't force the real ones into
2699 <           memory.  */
2700 <        YYSTYPE *yyvs1 = yyvs;
2701 <        yytype_int16 *yyss1 = yyss;
2702 <
2703 <        /* Each stack pointer address is followed by the size of the
2704 <           data in use in that stack, in bytes.  This used to be a
2705 <           conditional around just the two extra args, but that might
2706 <           be undefined if yyoverflow is a macro.  */
2707 <        yyoverflow (YY_("memory exhausted"),
2708 <                    &yyss1, yysize * sizeof (*yyssp),
2709 <                    &yyvs1, yysize * sizeof (*yyvsp),
2710 <                    &yystacksize);
2697 >        /* Give user a chance to reallocate the stack.  Use copies of
2698 >           these so that the &'s don't force the real ones into
2699 >           memory.  */
2700 >        YYSTYPE *yyvs1 = yyvs;
2701 >        yytype_int16 *yyss1 = yyss;
2702 >
2703 >        /* Each stack pointer address is followed by the size of the
2704 >           data in use in that stack, in bytes.  This used to be a
2705 >           conditional around just the two extra args, but that might
2706 >           be undefined if yyoverflow is a macro.  */
2707 >        yyoverflow (YY_("memory exhausted"),
2708 >                    &yyss1, yysize * sizeof (*yyssp),
2709 >                    &yyvs1, yysize * sizeof (*yyvsp),
2710 >                    &yystacksize);
2711  
2712 <        yyss = yyss1;
2713 <        yyvs = yyvs1;
2712 >        yyss = yyss1;
2713 >        yyvs = yyvs1;
2714        }
2715   #else /* no yyoverflow */
2716   # ifndef YYSTACK_RELOCATE
# Line 2993 | Line 2718 | yyparse ()
2718   # else
2719        /* Extend the stack our own way.  */
2720        if (YYMAXDEPTH <= yystacksize)
2721 <        goto yyexhaustedlab;
2721 >        goto yyexhaustedlab;
2722        yystacksize *= 2;
2723        if (YYMAXDEPTH < yystacksize)
2724 <        yystacksize = YYMAXDEPTH;
2724 >        yystacksize = YYMAXDEPTH;
2725  
2726        {
2727 <        yytype_int16 *yyss1 = yyss;
2728 <        union yyalloc *yyptr =
2729 <          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2730 <        if (! yyptr)
2731 <          goto yyexhaustedlab;
2732 <        YYSTACK_RELOCATE (yyss_alloc, yyss);
2733 <        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2727 >        yytype_int16 *yyss1 = yyss;
2728 >        union yyalloc *yyptr =
2729 >          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2730 >        if (! yyptr)
2731 >          goto yyexhaustedlab;
2732 >        YYSTACK_RELOCATE (yyss_alloc, yyss);
2733 >        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2734   #  undef YYSTACK_RELOCATE
2735 <        if (yyss1 != yyssa)
2736 <          YYSTACK_FREE (yyss1);
2735 >        if (yyss1 != yyssa)
2736 >          YYSTACK_FREE (yyss1);
2737        }
2738   # endif
2739   #endif /* no yyoverflow */
# Line 3017 | Line 2742 | yyparse ()
2742        yyvsp = yyvs + yysize - 1;
2743  
2744        YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2745 <                  (unsigned long int) yystacksize));
2745 >                  (unsigned long int) yystacksize));
2746  
2747        if (yyss + yystacksize - 1 <= yyssp)
2748 <        YYABORT;
2748 >        YYABORT;
2749      }
2750  
2751    YYDPRINTF ((stderr, "Entering state %d\n", yystate));
# Line 3049 | Line 2774 | yybackup:
2774    if (yychar == YYEMPTY)
2775      {
2776        YYDPRINTF ((stderr, "Reading a token: "));
2777 <      yychar = YYLEX;
2777 >      yychar = yylex ();
2778      }
2779  
2780    if (yychar <= YYEOF)
# Line 3089 | Line 2814 | yybackup:
2814    yychar = YYEMPTY;
2815  
2816    yystate = yyn;
2817 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2818    *++yyvsp = yylval;
2819 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
2820  
2821    goto yynewstate;
2822  
# Line 3112 | Line 2839 | yyreduce:
2839    yylen = yyr2[yyn];
2840  
2841    /* If YYLEN is nonzero, implement the default value of the action:
2842 <     `$$ = $1'.
2842 >     '$$ = $1'.
2843  
2844       Otherwise, the following line sets YYVAL to garbage.
2845       This behavior is undocumented and Bison
# Line 3125 | Line 2852 | yyreduce:
2852    YY_REDUCE_PRINT (yyn);
2853    switch (yyn)
2854      {
2855 <        case 26:
2856 < /* Line 1787 of yacc.c  */
3130 < #line 359 "conf_parser.y"
2855 >        case 27:
2856 > #line 409 "conf_parser.y" /* yacc.c:1646  */
2857      { (yyval.number) = 0; }
2858 <    break;
3133 <
3134 <  case 28:
3135 < /* Line 1787 of yacc.c  */
3136 < #line 361 "conf_parser.y"
3137 <    {
3138 <                        (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3139 <                }
2858 > #line 2859 "conf_parser.c" /* yacc.c:1646  */
2859      break;
2860  
2861    case 29:
2862 < /* Line 1787 of yacc.c  */
2863 < #line 365 "conf_parser.y"
2864 <    {
3146 <                        (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3147 <                }
2862 > #line 410 "conf_parser.y" /* yacc.c:1646  */
2863 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2864 > #line 2865 "conf_parser.c" /* yacc.c:1646  */
2865      break;
2866  
2867    case 30:
2868 < /* Line 1787 of yacc.c  */
2869 < #line 369 "conf_parser.y"
2870 <    {
3154 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3155 <                }
2868 > #line 411 "conf_parser.y" /* yacc.c:1646  */
2869 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2870 > #line 2871 "conf_parser.c" /* yacc.c:1646  */
2871      break;
2872  
2873    case 31:
2874 < /* Line 1787 of yacc.c  */
2875 < #line 373 "conf_parser.y"
2876 <    {
3162 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3163 <                }
2874 > #line 412 "conf_parser.y" /* yacc.c:1646  */
2875 >    { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); }
2876 > #line 2877 "conf_parser.c" /* yacc.c:1646  */
2877      break;
2878  
2879    case 32:
2880 < /* Line 1787 of yacc.c  */
2881 < #line 377 "conf_parser.y"
2882 <    {
3170 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3171 <                }
2880 > #line 413 "conf_parser.y" /* yacc.c:1646  */
2881 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); }
2882 > #line 2883 "conf_parser.c" /* yacc.c:1646  */
2883      break;
2884  
2885    case 33:
2886 < /* Line 1787 of yacc.c  */
2887 < #line 381 "conf_parser.y"
2888 <    {
3178 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3179 <                }
2886 > #line 414 "conf_parser.y" /* yacc.c:1646  */
2887 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); }
2888 > #line 2889 "conf_parser.c" /* yacc.c:1646  */
2889      break;
2890  
2891    case 34:
2892 < /* Line 1787 of yacc.c  */
2893 < #line 386 "conf_parser.y"
2894 <    { (yyval.number) = 0; }
2892 > #line 415 "conf_parser.y" /* yacc.c:1646  */
2893 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); }
2894 > #line 2895 "conf_parser.c" /* yacc.c:1646  */
2895      break;
2896  
2897 <  case 36:
2898 < /* Line 1787 of yacc.c  */
2899 < #line 387 "conf_parser.y"
2900 <    { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
2897 >  case 35:
2898 > #line 416 "conf_parser.y" /* yacc.c:1646  */
2899 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); }
2900 > #line 2901 "conf_parser.c" /* yacc.c:1646  */
2901      break;
2902  
2903 <  case 37:
2904 < /* Line 1787 of yacc.c  */
2905 < #line 388 "conf_parser.y"
2906 <    { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
2903 >  case 36:
2904 > #line 417 "conf_parser.y" /* yacc.c:1646  */
2905 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); }
2906 > #line 2907 "conf_parser.c" /* yacc.c:1646  */
2907      break;
2908  
2909 <  case 38:
2910 < /* Line 1787 of yacc.c  */
2911 < #line 389 "conf_parser.y"
2912 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
2909 >  case 37:
2910 > #line 420 "conf_parser.y" /* yacc.c:1646  */
2911 >    { (yyval.number) = 0; }
2912 > #line 2913 "conf_parser.c" /* yacc.c:1646  */
2913      break;
2914  
2915    case 39:
2916 < /* Line 1787 of yacc.c  */
2917 < #line 390 "conf_parser.y"
2918 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
2916 > #line 421 "conf_parser.y" /* yacc.c:1646  */
2917 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2918 > #line 2919 "conf_parser.c" /* yacc.c:1646  */
2919      break;
2920  
2921 <  case 46:
2922 < /* Line 1787 of yacc.c  */
2923 < #line 404 "conf_parser.y"
2924 <    {
3216 <  if (conf_parser_ctx.pass == 2)
3217 <    add_conf_module(libio_basename(yylval.string));
3218 < }
2921 >  case 40:
2922 > #line 422 "conf_parser.y" /* yacc.c:1646  */
2923 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2924 > #line 2925 "conf_parser.c" /* yacc.c:1646  */
2925      break;
2926  
2927 <  case 47:
2928 < /* Line 1787 of yacc.c  */
2929 < #line 410 "conf_parser.y"
2930 <    {
3225 <  if (conf_parser_ctx.pass == 2)
3226 <    mod_add_path(yylval.string);
3227 < }
2927 >  case 41:
2928 > #line 423 "conf_parser.y" /* yacc.c:1646  */
2929 >    { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); }
2930 > #line 2931 "conf_parser.c" /* yacc.c:1646  */
2931      break;
2932  
2933 <  case 71:
2934 < /* Line 1787 of yacc.c  */
2935 < #line 435 "conf_parser.y"
2936 <    {
3234 < #ifdef HAVE_LIBCRYPTO
3235 <  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3236 <    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
3237 < #endif
3238 < }
2933 >  case 42:
2934 > #line 424 "conf_parser.y" /* yacc.c:1646  */
2935 >    { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); }
2936 > #line 2937 "conf_parser.c" /* yacc.c:1646  */
2937      break;
2938  
2939 <  case 72:
2940 < /* Line 1787 of yacc.c  */
3243 < #line 441 "conf_parser.y"
2939 >  case 49:
2940 > #line 438 "conf_parser.y" /* yacc.c:1646  */
2941      {
2942 < #ifdef HAVE_LIBCRYPTO
2943 <  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3247 <    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
3248 < #endif
2942 >  if (conf_parser_ctx.pass == 2)
2943 >    add_conf_module(libio_basename(yylval.string));
2944   }
2945 + #line 2946 "conf_parser.c" /* yacc.c:1646  */
2946      break;
2947  
2948 <  case 75:
2949 < /* Line 1787 of yacc.c  */
3254 < #line 450 "conf_parser.y"
2948 >  case 50:
2949 > #line 444 "conf_parser.y" /* yacc.c:1646  */
2950      {
2951 < #ifdef HAVE_LIBCRYPTO
2952 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3258 <    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3259 < #endif
2951 >  if (conf_parser_ctx.pass == 2)
2952 >    mod_add_path(yylval.string);
2953   }
2954 + #line 2955 "conf_parser.c" /* yacc.c:1646  */
2955      break;
2956  
2957 <  case 76:
2958 < /* Line 1787 of yacc.c  */
3265 < #line 456 "conf_parser.y"
2957 >  case 72:
2958 > #line 474 "conf_parser.y" /* yacc.c:1646  */
2959      {
2960   #ifdef HAVE_LIBCRYPTO
2961    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3269    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3270 #endif
3271 }
3272    break;
3273
3274  case 77:
3275 /* Line 1787 of yacc.c  */
3276 #line 464 "conf_parser.y"
3277    {
3278 #ifdef HAVE_LIBCRYPTO
3279  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2962    {
2963      if (!ServerInfo.rsa_private_key_file)
2964      {
2965 <      yyerror("No rsa_private_key_file specified, SSL disabled");
2965 >      conf_error_report("No rsa_private_key_file specified, SSL disabled");
2966        break;
2967      }
2968  
# Line 3289 | Line 2971 | yyreduce:
2971          SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
2972                                       SSL_FILETYPE_PEM) <= 0)
2973      {
2974 <      yyerror(ERR_lib_error_string(ERR_get_error()));
2974 >      report_crypto_errors();
2975 >      conf_error_report("Could not open/read certificate file");
2976        break;
2977      }
2978  
# Line 3298 | Line 2981 | yyreduce:
2981          SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
2982                                      SSL_FILETYPE_PEM) <= 0)
2983      {
2984 <      yyerror(ERR_lib_error_string(ERR_get_error()));
2984 >      report_crypto_errors();
2985 >      conf_error_report("Could not read RSA private key");
2986        break;
2987      }
2988  
2989      if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
2990          !SSL_CTX_check_private_key(ServerInfo.client_ctx))
2991      {
2992 <      yyerror(ERR_lib_error_string(ERR_get_error()));
2992 >      report_crypto_errors();
2993 >      conf_error_report("Could not read RSA private key");
2994        break;
2995      }
2996    }
2997   #endif
2998   }
2999 + #line 3000 "conf_parser.c" /* yacc.c:1646  */
3000      break;
3001  
3002 <  case 78:
3003 < /* Line 1787 of yacc.c  */
3318 < #line 503 "conf_parser.y"
3002 >  case 73:
3003 > #line 516 "conf_parser.y" /* yacc.c:1646  */
3004      {
3005   #ifdef HAVE_LIBCRYPTO
3006 <  if (conf_parser_ctx.pass == 1)
3322 <  {
3323 <    BIO *file;
3006 >  BIO *file = NULL;
3007  
3008 <    if (ServerInfo.rsa_private_key)
3009 <    {
3327 <      RSA_free(ServerInfo.rsa_private_key);
3328 <      ServerInfo.rsa_private_key = NULL;
3329 <    }
3008 >  if (conf_parser_ctx.pass != 1)
3009 >    break;
3010  
3011 <    if (ServerInfo.rsa_private_key_file)
3012 <    {
3013 <      MyFree(ServerInfo.rsa_private_key_file);
3014 <      ServerInfo.rsa_private_key_file = NULL;
3015 <    }
3011 >  if (ServerInfo.rsa_private_key)
3012 >  {
3013 >    RSA_free(ServerInfo.rsa_private_key);
3014 >    ServerInfo.rsa_private_key = NULL;
3015 >  }
3016  
3017 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3017 >  if (ServerInfo.rsa_private_key_file)
3018 >  {
3019 >    MyFree(ServerInfo.rsa_private_key_file);
3020 >    ServerInfo.rsa_private_key_file = NULL;
3021 >  }
3022  
3023 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3340 <    {
3341 <      yyerror("File open failed, ignoring");
3342 <      break;
3343 <    }
3023 >  ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3024  
3025 <    ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3025 >  if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3026 >  {
3027 >    conf_error_report("File open failed, ignoring");
3028 >    break;
3029 >  }
3030  
3031 <    BIO_set_close(file, BIO_CLOSE);
3348 <    BIO_free(file);
3031 >  ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3032  
3033 <    if (ServerInfo.rsa_private_key == NULL)
3034 <    {
3352 <      yyerror("Couldn't extract key, ignoring");
3353 <      break;
3354 <    }
3033 >  BIO_set_close(file, BIO_CLOSE);
3034 >  BIO_free(file);
3035  
3036 <    if (!RSA_check_key(ServerInfo.rsa_private_key))
3037 <    {
3038 <      RSA_free(ServerInfo.rsa_private_key);
3039 <      ServerInfo.rsa_private_key = NULL;
3036 >  if (ServerInfo.rsa_private_key == NULL)
3037 >  {
3038 >    conf_error_report("Couldn't extract key, ignoring");
3039 >    break;
3040 >  }
3041  
3042 <      yyerror("Invalid key, ignoring");
3043 <      break;
3044 <    }
3042 >  if (!RSA_check_key(ServerInfo.rsa_private_key))
3043 >  {
3044 >    RSA_free(ServerInfo.rsa_private_key);
3045 >    ServerInfo.rsa_private_key = NULL;
3046  
3047 <    /* require 2048 bit (256 byte) key */
3048 <    if (RSA_size(ServerInfo.rsa_private_key) != 256)
3049 <    {
3368 <      RSA_free(ServerInfo.rsa_private_key);
3369 <      ServerInfo.rsa_private_key = NULL;
3047 >    conf_error_report("Invalid key, ignoring");
3048 >    break;
3049 >  }
3050  
3051 <      yyerror("Not a 2048 bit key, ignoring");
3052 <    }
3051 >  if (RSA_size(ServerInfo.rsa_private_key) < 128)
3052 >  {
3053 >    RSA_free(ServerInfo.rsa_private_key);
3054 >    ServerInfo.rsa_private_key = NULL;
3055 >
3056 >    conf_error_report("Ignoring serverinfo::rsa_private_key_file -- need at least a 1024 bit key size");
3057    }
3058   #endif
3059   }
3060 + #line 3061 "conf_parser.c" /* yacc.c:1646  */
3061      break;
3062  
3063 <  case 79:
3064 < /* Line 1787 of yacc.c  */
3380 < #line 562 "conf_parser.y"
3063 >  case 74:
3064 > #line 574 "conf_parser.y" /* yacc.c:1646  */
3065      {
3382 /* TBD - XXX: error reporting */
3066   #ifdef HAVE_LIBCRYPTO
3067    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3068    {
# Line 3394 | Line 3077 | yyreduce:
3077        if (dh)
3078        {
3079          if (DH_size(dh) < 128)
3080 <          ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3080 >          conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3081          else
3082            SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3083  
3084          DH_free(dh);
3085        }
3086      }
3087 +    else
3088 +      conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- could not open/read Diffie-Hellman parameter file");
3089    }
3090   #endif
3091   }
3092 + #line 3093 "conf_parser.c" /* yacc.c:1646  */
3093      break;
3094  
3095 <  case 80:
3096 < /* Line 1787 of yacc.c  */
3411 < #line 590 "conf_parser.y"
3095 >  case 75:
3096 > #line 603 "conf_parser.y" /* yacc.c:1646  */
3097      {
3098   #ifdef HAVE_LIBCRYPTO
3099    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3100      SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3101   #endif
3102   }
3103 + #line 3104 "conf_parser.c" /* yacc.c:1646  */
3104      break;
3105  
3106 <  case 81:
3107 < /* Line 1787 of yacc.c  */
3108 < #line 598 "conf_parser.y"
3106 >  case 76:
3107 > #line 611 "conf_parser.y" /* yacc.c:1646  */
3108 >    {
3109 > #ifdef HAVE_LIBCRYPTO
3110 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3111 >  {
3112 >    if ((ServerInfo.message_digest_algorithm = EVP_get_digestbyname(yylval.string)) == NULL)
3113 >    {
3114 >      ServerInfo.message_digest_algorithm = EVP_sha256();
3115 >      conf_error_report("Ignoring serverinfo::ssl_message_digest_algorithm -- unknown message digest algorithm");
3116 >    }
3117 >  }
3118 > #endif
3119 > }
3120 > #line 3121 "conf_parser.c" /* yacc.c:1646  */
3121 >    break;
3122 >
3123 >  case 77:
3124 > #line 625 "conf_parser.y" /* yacc.c:1646  */
3125 >    {
3126 > #ifdef HAVE_LIBCRYPTO
3127 > #if OPENSSL_VERSION_NUMBER >= 0x1000005FL && !defined(OPENSSL_NO_ECDH)
3128 >  int nid = 0;
3129 >  EC_KEY *key = NULL;
3130 >
3131 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3132 >  {
3133 >    if ((nid = OBJ_sn2nid(yylval.string)) == 0)
3134 >    {
3135 >        conf_error_report("Ignoring serverinfo::serverinfo_ssl_dh_elliptic_curve -- unknown curve name");
3136 >        break;
3137 >    }
3138 >
3139 >    if ((key = EC_KEY_new_by_curve_name(nid)) == NULL)
3140 >    {
3141 >      conf_error_report("Ignoring serverinfo::serverinfo_ssl_dh_elliptic_curve -- could not create curve");
3142 >      break;
3143 >    }
3144 >
3145 >    SSL_CTX_set_tmp_ecdh(ServerInfo.server_ctx, key);
3146 >    EC_KEY_free(key);
3147 > }
3148 > #endif
3149 > #endif
3150 > }
3151 > #line 3152 "conf_parser.c" /* yacc.c:1646  */
3152 >    break;
3153 >
3154 >  case 78:
3155 > #line 653 "conf_parser.y" /* yacc.c:1646  */
3156      {
3157    /* this isn't rehashable */
3158    if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3159    {
3160      if (valid_servname(yylval.string))
3161 <      DupString(ServerInfo.name, yylval.string);
3161 >      ServerInfo.name = xstrdup(yylval.string);
3162      else
3163      {
3164 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::name -- invalid name. Aborting.");
3164 >      conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3165        exit(0);
3166      }
3167    }
3168   }
3169 + #line 3170 "conf_parser.c" /* yacc.c:1646  */
3170      break;
3171  
3172 <  case 82:
3173 < /* Line 1787 of yacc.c  */
3440 < #line 613 "conf_parser.y"
3172 >  case 79:
3173 > #line 668 "conf_parser.y" /* yacc.c:1646  */
3174      {
3175    /* this isn't rehashable */
3176    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3177    {
3178      if (valid_sid(yylval.string))
3179 <      DupString(ServerInfo.sid, yylval.string);
3179 >      ServerInfo.sid = xstrdup(yylval.string);
3180      else
3181      {
3182 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
3182 >      conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3183        exit(0);
3184      }
3185    }
3186   }
3187 + #line 3188 "conf_parser.c" /* yacc.c:1646  */
3188      break;
3189  
3190 <  case 83:
3191 < /* Line 1787 of yacc.c  */
3458 < #line 628 "conf_parser.y"
3190 >  case 80:
3191 > #line 683 "conf_parser.y" /* yacc.c:1646  */
3192      {
3193    if (conf_parser_ctx.pass == 2)
3194    {
3195      MyFree(ServerInfo.description);
3196 <    DupString(ServerInfo.description,yylval.string);
3196 >    ServerInfo.description = xstrdup(yylval.string);
3197    }
3198   }
3199 + #line 3200 "conf_parser.c" /* yacc.c:1646  */
3200      break;
3201  
3202 <  case 84:
3203 < /* Line 1787 of yacc.c  */
3470 < #line 637 "conf_parser.y"
3202 >  case 81:
3203 > #line 692 "conf_parser.y" /* yacc.c:1646  */
3204      {
3205    if (conf_parser_ctx.pass == 2)
3206    {
3207      char *p;
3208  
3209 <    if ((p = strchr(yylval.string, ' ')) != NULL)
3210 <      p = '\0';
3209 >    if ((p = strchr(yylval.string, ' ')))
3210 >      *p = '\0';
3211  
3212      MyFree(ServerInfo.network_name);
3213 <    DupString(ServerInfo.network_name, yylval.string);
3213 >    ServerInfo.network_name = xstrdup(yylval.string);
3214    }
3215   }
3216 + #line 3217 "conf_parser.c" /* yacc.c:1646  */
3217      break;
3218  
3219 <  case 85:
3220 < /* Line 1787 of yacc.c  */
3487 < #line 651 "conf_parser.y"
3219 >  case 82:
3220 > #line 706 "conf_parser.y" /* yacc.c:1646  */
3221      {
3222 <  if (conf_parser_ctx.pass == 2)
3223 <  {
3224 <    MyFree(ServerInfo.network_desc);
3225 <    DupString(ServerInfo.network_desc, yylval.string);
3226 <  }
3222 >  if (conf_parser_ctx.pass != 2)
3223 >    break;
3224 >
3225 >  MyFree(ServerInfo.network_desc);
3226 >  ServerInfo.network_desc = xstrdup(yylval.string);
3227   }
3228 + #line 3229 "conf_parser.c" /* yacc.c:1646  */
3229      break;
3230  
3231 <  case 86:
3232 < /* Line 1787 of yacc.c  */
3499 < #line 660 "conf_parser.y"
3231 >  case 83:
3232 > #line 715 "conf_parser.y" /* yacc.c:1646  */
3233      {
3234    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3235    {
# Line 3512 | Line 3245 | yyreduce:
3245        ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3246      else
3247      {
3248 <      assert(res != NULL);
3248 >      assert(res);
3249  
3250        memcpy(&ServerInfo.ip, res->ai_addr, res->ai_addrlen);
3251        ServerInfo.ip.ss.ss_family = res->ai_family;
# Line 3523 | Line 3256 | yyreduce:
3256      }
3257    }
3258   }
3259 + #line 3260 "conf_parser.c" /* yacc.c:1646  */
3260      break;
3261  
3262 <  case 87:
3263 < /* Line 1787 of yacc.c  */
3530 < #line 688 "conf_parser.y"
3262 >  case 84:
3263 > #line 743 "conf_parser.y" /* yacc.c:1646  */
3264      {
3265   #ifdef IPV6
3266    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3544 | Line 3277 | yyreduce:
3277        ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3278      else
3279      {
3280 <      assert(res != NULL);
3280 >      assert(res);
3281  
3282        memcpy(&ServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3283        ServerInfo.ip6.ss.ss_family = res->ai_family;
# Line 3556 | Line 3289 | yyreduce:
3289    }
3290   #endif
3291   }
3292 + #line 3293 "conf_parser.c" /* yacc.c:1646  */
3293      break;
3294  
3295 <  case 88:
3296 < /* Line 1787 of yacc.c  */
3563 < #line 718 "conf_parser.y"
3295 >  case 85:
3296 > #line 773 "conf_parser.y" /* yacc.c:1646  */
3297      {
3298 <  if (conf_parser_ctx.pass == 2)
3298 >  if (conf_parser_ctx.pass != 2)
3299 >    break;
3300 >
3301 >  if ((yyvsp[-1].number) < MAXCLIENTS_MIN)
3302 >  {
3303 >    char buf[IRCD_BUFSIZE] = "";
3304 >
3305 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3306 >    conf_error_report(buf);
3307 >    ServerInfo.max_clients = MAXCLIENTS_MIN;
3308 >  }
3309 >  else if ((yyvsp[-1].number) > MAXCLIENTS_MAX)
3310    {
3311 <    recalc_fdlimit(NULL);
3311 >    char buf[IRCD_BUFSIZE] = "";
3312 >
3313 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3314 >    conf_error_report(buf);
3315 >    ServerInfo.max_clients = MAXCLIENTS_MAX;
3316 >  }
3317 >  else
3318 >    ServerInfo.max_clients = (yyvsp[-1].number);
3319 > }
3320 > #line 3321 "conf_parser.c" /* yacc.c:1646  */
3321 >    break;
3322  
3323 <    if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3323 >  case 86:
3324 > #line 798 "conf_parser.y" /* yacc.c:1646  */
3325      {
3326 <      char buf[IRCD_BUFSIZE];
3327 <      ircsprintf(buf, "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3328 <      yyerror(buf);
3329 <    }
3330 <    else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3326 >  if (conf_parser_ctx.pass != 2)
3327 >    break;
3328 >
3329 >  if ((yyvsp[-1].number) < 9)
3330 >  {
3331 >    conf_error_report("max_nick_length too low, setting to 9");
3332 >    ServerInfo.max_nick_length = 9;
3333 >  }
3334 >  else if ((yyvsp[-1].number) > NICKLEN)
3335 >  {
3336 >    char buf[IRCD_BUFSIZE] = "";
3337 >
3338 >    snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3339 >    conf_error_report(buf);
3340 >    ServerInfo.max_nick_length = NICKLEN;
3341 >  }
3342 >  else
3343 >    ServerInfo.max_nick_length = (yyvsp[-1].number);
3344 > }
3345 > #line 3346 "conf_parser.c" /* yacc.c:1646  */
3346 >    break;
3347 >
3348 >  case 87:
3349 > #line 820 "conf_parser.y" /* yacc.c:1646  */
3350      {
3351 <      char buf[IRCD_BUFSIZE];
3352 <      ircsprintf(buf, "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3353 <      yyerror(buf);
3354 <    }
3355 <    else
3356 <      ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3351 >  if (conf_parser_ctx.pass != 2)
3352 >    break;
3353 >
3354 >  if ((yyvsp[-1].number) < 80)
3355 >  {
3356 >    conf_error_report("max_topic_length too low, setting to 80");
3357 >    ServerInfo.max_topic_length = 80;
3358 >  }
3359 >  else if ((yyvsp[-1].number) > TOPICLEN)
3360 >  {
3361 >    char buf[IRCD_BUFSIZE] = "";
3362 >
3363 >    snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3364 >    conf_error_report(buf);
3365 >    ServerInfo.max_topic_length = TOPICLEN;
3366    }
3367 +  else
3368 +    ServerInfo.max_topic_length = (yyvsp[-1].number);
3369   }
3370 + #line 3371 "conf_parser.c" /* yacc.c:1646  */
3371      break;
3372  
3373 <  case 89:
3374 < /* Line 1787 of yacc.c  */
3589 < #line 741 "conf_parser.y"
3373 >  case 88:
3374 > #line 842 "conf_parser.y" /* yacc.c:1646  */
3375      {
3376    if (conf_parser_ctx.pass == 2)
3377      ServerInfo.hub = yylval.number;
3378   }
3379 + #line 3380 "conf_parser.c" /* yacc.c:1646  */
3380 +    break;
3381 +
3382 +  case 96:
3383 + #line 859 "conf_parser.y" /* yacc.c:1646  */
3384 +    {
3385 +  if (conf_parser_ctx.pass != 2)
3386 +    break;
3387 +
3388 +  MyFree(AdminInfo.name);
3389 +  AdminInfo.name = xstrdup(yylval.string);
3390 + }
3391 + #line 3392 "conf_parser.c" /* yacc.c:1646  */
3392      break;
3393  
3394    case 97:
3395 < /* Line 1787 of yacc.c  */
3598 < #line 756 "conf_parser.y"
3395 > #line 868 "conf_parser.y" /* yacc.c:1646  */
3396      {
3397 <  if (conf_parser_ctx.pass == 2)
3398 <  {
3399 <    MyFree(AdminInfo.name);
3400 <    DupString(AdminInfo.name, yylval.string);
3401 <  }
3397 >  if (conf_parser_ctx.pass != 2)
3398 >    break;
3399 >
3400 >  MyFree(AdminInfo.email);
3401 >  AdminInfo.email = xstrdup(yylval.string);
3402   }
3403 + #line 3404 "conf_parser.c" /* yacc.c:1646  */
3404      break;
3405  
3406    case 98:
3407 < /* Line 1787 of yacc.c  */
3610 < #line 765 "conf_parser.y"
3407 > #line 877 "conf_parser.y" /* yacc.c:1646  */
3408      {
3409 <  if (conf_parser_ctx.pass == 2)
3410 <  {
3411 <    MyFree(AdminInfo.email);
3412 <    DupString(AdminInfo.email, yylval.string);
3413 <  }
3409 >  if (conf_parser_ctx.pass != 2)
3410 >    break;
3411 >
3412 >  MyFree(AdminInfo.description);
3413 >  AdminInfo.description = xstrdup(yylval.string);
3414   }
3415 + #line 3416 "conf_parser.c" /* yacc.c:1646  */
3416      break;
3417  
3418    case 99:
3419 < /* Line 1787 of yacc.c  */
3622 < #line 774 "conf_parser.y"
3419 > #line 889 "conf_parser.y" /* yacc.c:1646  */
3420      {
3421    if (conf_parser_ctx.pass == 2)
3422 <  {
3423 <    MyFree(AdminInfo.description);
3424 <    DupString(AdminInfo.description, yylval.string);
3425 <  }
3422 >    reset_block_state();
3423 > }
3424 > #line 3425 "conf_parser.c" /* yacc.c:1646  */
3425 >    break;
3426 >
3427 >  case 100:
3428 > #line 893 "conf_parser.y" /* yacc.c:1646  */
3429 >    {
3430 >  dlink_node *ptr = NULL;
3431 >
3432 >  if (conf_parser_ctx.pass != 2)
3433 >    break;
3434 >
3435 >  if (!block_state.file.buf[0])
3436 >    break;
3437 >
3438 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3439 >    motd_add(ptr->data, block_state.file.buf);
3440   }
3441 + #line 3442 "conf_parser.c" /* yacc.c:1646  */
3442      break;
3443  
3444    case 106:
3445 < /* Line 1787 of yacc.c  */
3634 < #line 792 "conf_parser.y"
3445 > #line 910 "conf_parser.y" /* yacc.c:1646  */
3446      {
3447    if (conf_parser_ctx.pass == 2)
3448 <    ConfigLoggingEntry.use_logging = yylval.number;
3448 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3449   }
3450 + #line 3451 "conf_parser.c" /* yacc.c:1646  */
3451      break;
3452  
3453    case 107:
3454 < /* Line 1787 of yacc.c  */
3643 < #line 798 "conf_parser.y"
3454 > #line 916 "conf_parser.y" /* yacc.c:1646  */
3455      {
3456 <  lfile[0] = '\0';
3457 <  ltype = 0;
3647 <  lsize = 0;
3456 >  if (conf_parser_ctx.pass == 2)
3457 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3458   }
3459 + #line 3460 "conf_parser.c" /* yacc.c:1646  */
3460      break;
3461  
3462 <  case 108:
3463 < /* Line 1787 of yacc.c  */
3653 < #line 803 "conf_parser.y"
3462 >  case 114:
3463 > #line 931 "conf_parser.y" /* yacc.c:1646  */
3464      {
3465 <  if (conf_parser_ctx.pass == 2 && ltype > 0)
3466 <    log_add_file(ltype, lsize, lfile);
3465 >  if (conf_parser_ctx.pass == 2)
3466 >    ConfigLoggingEntry.use_logging = yylval.number;
3467   }
3468 + #line 3469 "conf_parser.c" /* yacc.c:1646  */
3469      break;
3470  
3471    case 115:
3472 < /* Line 1787 of yacc.c  */
3662 < #line 815 "conf_parser.y"
3472 > #line 937 "conf_parser.y" /* yacc.c:1646  */
3473      {
3474 <  strlcpy(lfile, yylval.string, sizeof(lfile));
3474 >  if (conf_parser_ctx.pass == 2)
3475 >    reset_block_state();
3476   }
3477 + #line 3478 "conf_parser.c" /* yacc.c:1646  */
3478      break;
3479  
3480    case 116:
3481 < /* Line 1787 of yacc.c  */
3482 < #line 820 "conf_parser.y"
3481 > #line 941 "conf_parser.y" /* yacc.c:1646  */
3482 >    {
3483 >  if (conf_parser_ctx.pass != 2)
3484 >    break;
3485 >
3486 >  if (block_state.type.value && block_state.file.buf[0])
3487 >    log_set_file(block_state.type.value, block_state.size.value,
3488 >                 block_state.file.buf);
3489 > }
3490 > #line 3491 "conf_parser.c" /* yacc.c:1646  */
3491 >    break;
3492 >
3493 >  case 123:
3494 > #line 957 "conf_parser.y" /* yacc.c:1646  */
3495      {
3496 <  lsize = (yyvsp[(3) - (4)].number);
3496 >  if (conf_parser_ctx.pass != 2)
3497 >    break;
3498 >
3499 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3500   }
3501 + #line 3502 "conf_parser.c" /* yacc.c:1646  */
3502      break;
3503  
3504 <  case 117:
3505 < /* Line 1787 of yacc.c  */
3678 < #line 823 "conf_parser.y"
3504 >  case 124:
3505 > #line 965 "conf_parser.y" /* yacc.c:1646  */
3506      {
3507 <  lsize = 0;
3507 >  block_state.size.value = (yyvsp[-1].number);
3508   }
3509 + #line 3510 "conf_parser.c" /* yacc.c:1646  */
3510      break;
3511  
3512 <  case 118:
3513 < /* Line 1787 of yacc.c  */
3514 < #line 828 "conf_parser.y"
3512 >  case 125:
3513 > #line 968 "conf_parser.y" /* yacc.c:1646  */
3514 >    {
3515 >  block_state.size.value = 0;
3516 > }
3517 > #line 3518 "conf_parser.c" /* yacc.c:1646  */
3518 >    break;
3519 >
3520 >  case 126:
3521 > #line 973 "conf_parser.y" /* yacc.c:1646  */
3522      {
3523    if (conf_parser_ctx.pass == 2)
3524 <    ltype = 0;
3524 >    block_state.type.value = 0;
3525   }
3526 + #line 3527 "conf_parser.c" /* yacc.c:1646  */
3527      break;
3528  
3529 <  case 122:
3530 < /* Line 1787 of yacc.c  */
3695 < #line 835 "conf_parser.y"
3529 >  case 130:
3530 > #line 980 "conf_parser.y" /* yacc.c:1646  */
3531      {
3532    if (conf_parser_ctx.pass == 2)
3533 <    ltype = LOG_TYPE_USER;
3533 >    block_state.type.value = LOG_TYPE_USER;
3534   }
3535 + #line 3536 "conf_parser.c" /* yacc.c:1646  */
3536      break;
3537  
3538 <  case 123:
3539 < /* Line 1787 of yacc.c  */
3704 < #line 839 "conf_parser.y"
3538 >  case 131:
3539 > #line 984 "conf_parser.y" /* yacc.c:1646  */
3540      {
3541    if (conf_parser_ctx.pass == 2)
3542 <    ltype = LOG_TYPE_OPER;
3542 >    block_state.type.value = LOG_TYPE_OPER;
3543   }
3544 + #line 3545 "conf_parser.c" /* yacc.c:1646  */
3545      break;
3546  
3547 <  case 124:
3548 < /* Line 1787 of yacc.c  */
3713 < #line 843 "conf_parser.y"
3547 >  case 132:
3548 > #line 988 "conf_parser.y" /* yacc.c:1646  */
3549      {
3550    if (conf_parser_ctx.pass == 2)
3551 <    ltype = LOG_TYPE_GLINE;
3551 >    block_state.type.value = LOG_TYPE_GLINE;
3552   }
3553 + #line 3554 "conf_parser.c" /* yacc.c:1646  */
3554      break;
3555  
3556 <  case 125:
3557 < /* Line 1787 of yacc.c  */
3722 < #line 847 "conf_parser.y"
3556 >  case 133:
3557 > #line 992 "conf_parser.y" /* yacc.c:1646  */
3558      {
3559    if (conf_parser_ctx.pass == 2)
3560 <    ltype = LOG_TYPE_DLINE;
3560 >    block_state.type.value = LOG_TYPE_XLINE;
3561   }
3562 + #line 3563 "conf_parser.c" /* yacc.c:1646  */
3563      break;
3564  
3565 <  case 126:
3566 < /* Line 1787 of yacc.c  */
3731 < #line 851 "conf_parser.y"
3565 >  case 134:
3566 > #line 996 "conf_parser.y" /* yacc.c:1646  */
3567      {
3568    if (conf_parser_ctx.pass == 2)
3569 <    ltype = LOG_TYPE_KLINE;
3569 >    block_state.type.value = LOG_TYPE_RESV;
3570   }
3571 + #line 3572 "conf_parser.c" /* yacc.c:1646  */
3572      break;
3573  
3574 <  case 127:
3575 < /* Line 1787 of yacc.c  */
3740 < #line 855 "conf_parser.y"
3574 >  case 135:
3575 > #line 1000 "conf_parser.y" /* yacc.c:1646  */
3576      {
3577    if (conf_parser_ctx.pass == 2)
3578 <    ltype = LOG_TYPE_KILL;
3578 >    block_state.type.value = LOG_TYPE_DLINE;
3579   }
3580 + #line 3581 "conf_parser.c" /* yacc.c:1646  */
3581      break;
3582  
3583 <  case 128:
3584 < /* Line 1787 of yacc.c  */
3749 < #line 859 "conf_parser.y"
3583 >  case 136:
3584 > #line 1004 "conf_parser.y" /* yacc.c:1646  */
3585      {
3586    if (conf_parser_ctx.pass == 2)
3587 <    ltype = LOG_TYPE_DEBUG;
3587 >    block_state.type.value = LOG_TYPE_KLINE;
3588   }
3589 + #line 3590 "conf_parser.c" /* yacc.c:1646  */
3590      break;
3591  
3592 <  case 129:
3593 < /* Line 1787 of yacc.c  */
3758 < #line 869 "conf_parser.y"
3592 >  case 137:
3593 > #line 1008 "conf_parser.y" /* yacc.c:1646  */
3594      {
3595    if (conf_parser_ctx.pass == 2)
3596 <  {
3762 <    yy_conf = make_conf_item(OPER_TYPE);
3763 <    yy_aconf = map_to_conf(yy_conf);
3764 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
3765 <  }
3766 <  else
3767 <  {
3768 <    MyFree(class_name);
3769 <    class_name = NULL;
3770 <  }
3596 >    block_state.type.value = LOG_TYPE_KILL;
3597   }
3598 + #line 3599 "conf_parser.c" /* yacc.c:1646  */
3599      break;
3600  
3601 <  case 130:
3602 < /* Line 1787 of yacc.c  */
3776 < #line 882 "conf_parser.y"
3601 >  case 138:
3602 > #line 1012 "conf_parser.y" /* yacc.c:1646  */
3603      {
3604    if (conf_parser_ctx.pass == 2)
3605 <  {
3606 <    struct CollectItem *yy_tmp;
3607 <    dlink_node *ptr;
3608 <    dlink_node *next_ptr;
3605 >    block_state.type.value = LOG_TYPE_DEBUG;
3606 > }
3607 > #line 3608 "conf_parser.c" /* yacc.c:1646  */
3608 >    break;
3609  
3610 <    conf_add_class_to_conf(yy_conf, class_name);
3610 >  case 139:
3611 > #line 1022 "conf_parser.y" /* yacc.c:1646  */
3612 >    {
3613 >  if (conf_parser_ctx.pass != 2)
3614 >    break;
3615  
3616 <    /* Now, make sure there is a copy of the "base" given oper
3617 <     * block in each of the collected copies
3618 <     */
3616 >  reset_block_state();
3617 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3618 > }
3619 > #line 3620 "conf_parser.c" /* yacc.c:1646  */
3620 >    break;
3621  
3622 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3622 >  case 140:
3623 > #line 1029 "conf_parser.y" /* yacc.c:1646  */
3624      {
3625 <      struct AccessItem *new_aconf;
3626 <      struct ConfItem *new_conf;
3627 <      yy_tmp = ptr->data;
3625 >  dlink_node *ptr = NULL;
3626 >
3627 >  if (conf_parser_ctx.pass != 2)
3628 >    break;
3629  
3630 <      new_conf = make_conf_item(OPER_TYPE);
3631 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
3630 >  if (!block_state.name.buf[0])
3631 >    break;
3632 > #ifdef HAVE_LIBCRYPTO
3633 >  if (!block_state.file.buf[0] &&
3634 >      !block_state.rpass.buf[0])
3635 >    break;
3636 > #else
3637 >  if (!block_state.rpass.buf[0])
3638 >    break;
3639 > #endif
3640  
3641 <      new_aconf->flags = yy_aconf->flags;
3641 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3642 >  {
3643 >    struct MaskItem *conf = NULL;
3644 >    struct split_nuh_item nuh;
3645  
3646 <      if (yy_conf->name != NULL)
3647 <        DupString(new_conf->name, yy_conf->name);
3648 <      if (yy_tmp->user != NULL)
3649 <        DupString(new_aconf->user, yy_tmp->user);
3650 <      else
3651 <        DupString(new_aconf->user, "*");
3652 <      if (yy_tmp->host != NULL)
3653 <        DupString(new_aconf->host, yy_tmp->host);
3809 <      else
3810 <        DupString(new_aconf->host, "*");
3646 >    nuh.nuhmask  = ptr->data;
3647 >    nuh.nickptr  = NULL;
3648 >    nuh.userptr  = block_state.user.buf;
3649 >    nuh.hostptr  = block_state.host.buf;
3650 >    nuh.nicksize = 0;
3651 >    nuh.usersize = sizeof(block_state.user.buf);
3652 >    nuh.hostsize = sizeof(block_state.host.buf);
3653 >    split_nuh(&nuh);
3654  
3655 <      new_aconf->type = parse_netmask(new_aconf->host, &new_aconf->addr,
3656 <                                     &new_aconf->bits);
3655 >    conf         = conf_make(CONF_OPER);
3656 >    conf->name   = xstrdup(block_state.name.buf);
3657 >    conf->user   = xstrdup(block_state.user.buf);
3658 >    conf->host   = xstrdup(block_state.host.buf);
3659 >
3660 >    if (block_state.cert.buf[0])
3661 >      conf->certfp = xstrdup(block_state.cert.buf);
3662 >
3663 >    if (block_state.rpass.buf[0])
3664 >      conf->passwd = xstrdup(block_state.rpass.buf);
3665 >
3666 >    conf->flags = block_state.flags.value;
3667 >    conf->modes = block_state.modes.value;
3668 >    conf->port  = block_state.port.value;
3669 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3670  
3671 <      conf_add_class_to_conf(new_conf, class_name);
3816 <      if (yy_aconf->passwd != NULL)
3817 <        DupString(new_aconf->passwd, yy_aconf->passwd);
3671 >    conf_add_class_to_conf(conf, block_state.class.buf);
3672  
3819      new_aconf->port = yy_aconf->port;
3673   #ifdef HAVE_LIBCRYPTO
3674 <      if (yy_aconf->rsa_public_key_file != NULL)
3675 <      {
3676 <        BIO *file;
3677 <
3825 <        DupString(new_aconf->rsa_public_key_file,
3826 <                  yy_aconf->rsa_public_key_file);
3674 >    if (block_state.file.buf[0])
3675 >    {
3676 >      BIO *file = NULL;
3677 >      RSA *pkey = NULL;
3678  
3679 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
3680 <        new_aconf->rsa_public_key = PEM_read_bio_RSA_PUBKEY(file,
3681 <                                                           NULL, 0, NULL);
3682 <        BIO_set_close(file, BIO_CLOSE);
3832 <        BIO_free(file);
3679 >      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3680 >      {
3681 >        ilog(LOG_TYPE_IRCD, "Ignoring rsa_public_key_file -- file doesn't exist");
3682 >        break;
3683        }
3834 #endif
3684  
3685 < #ifdef HAVE_LIBCRYPTO
3686 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
3687 <          && yy_tmp->host)
3839 < #else
3840 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
3841 < #endif
3685 >      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3686 >        ilog(LOG_TYPE_IRCD, "Ignoring rsa_public_key_file -- key invalid; check key syntax");
3687 >      else
3688        {
3689 <        conf_add_class_to_conf(new_conf, class_name);
3690 <        if (yy_tmp->name != NULL)
3691 <          DupString(new_conf->name, yy_tmp->name);
3689 >        if (RSA_size(pkey) > 128)
3690 >          ilog(LOG_TYPE_IRCD, "Ignoring rsa_public_key_file -- key size must be 1024 or below");
3691 >        else
3692 >          conf->rsa_public_key = pkey;
3693        }
3694  
3695 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
3696 <      free_collect_item(yy_tmp);
3695 >      BIO_set_close(file, BIO_CLOSE);
3696 >      BIO_free(file);
3697      }
3698 <
3852 <    yy_conf = NULL;
3853 <    yy_aconf = NULL;
3854 <
3855 <
3856 <    MyFree(class_name);
3857 <    class_name = NULL;
3698 > #endif /* HAVE_LIBCRYPTO */
3699    }
3700   }
3701 + #line 3702 "conf_parser.c" /* yacc.c:1646  */
3702      break;
3703  
3704 <  case 142:
3705 < /* Line 1787 of yacc.c  */
3864 < #line 972 "conf_parser.y"
3704 >  case 154:
3705 > #line 1121 "conf_parser.y" /* yacc.c:1646  */
3706      {
3707    if (conf_parser_ctx.pass == 2)
3708 <  {
3868 <    MyFree(yy_conf->name);
3869 <    DupString(yy_conf->name, yylval.string);
3870 <  }
3708 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3709   }
3710 + #line 3711 "conf_parser.c" /* yacc.c:1646  */
3711      break;
3712  
3713 <  case 143:
3714 < /* Line 1787 of yacc.c  */
3876 < #line 981 "conf_parser.y"
3713 >  case 155:
3714 > #line 1127 "conf_parser.y" /* yacc.c:1646  */
3715      {
3716    if (conf_parser_ctx.pass == 2)
3717 <  {
3718 <    struct split_nuh_item nuh;
3719 <
3720 <    nuh.nuhmask  = yylval.string;
3883 <    nuh.nickptr  = NULL;
3884 <    nuh.userptr  = userbuf;
3885 <    nuh.hostptr  = hostbuf;
3886 <
3887 <    nuh.nicksize = 0;
3888 <    nuh.usersize = sizeof(userbuf);
3889 <    nuh.hostsize = sizeof(hostbuf);
3890 <
3891 <    split_nuh(&nuh);
3717 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3718 > }
3719 > #line 3720 "conf_parser.c" /* yacc.c:1646  */
3720 >    break;
3721  
3722 <    if (yy_aconf->user == NULL)
3722 >  case 156:
3723 > #line 1133 "conf_parser.y" /* yacc.c:1646  */
3724      {
3725 <      DupString(yy_aconf->user, userbuf);
3726 <      DupString(yy_aconf->host, hostbuf);
3725 >  if (conf_parser_ctx.pass == 2)
3726 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3727 > }
3728 > #line 3729 "conf_parser.c" /* yacc.c:1646  */
3729 >    break;
3730  
3731 <      yy_aconf->type = parse_netmask(yy_aconf->host, &yy_aconf->addr,
3732 <                                    &yy_aconf->bits);
3900 <    }
3901 <    else
3731 >  case 157:
3732 > #line 1139 "conf_parser.y" /* yacc.c:1646  */
3733      {
3734 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
3734 >  if (conf_parser_ctx.pass != 2)
3735 >    break;
3736  
3737 <      DupString(yy_tmp->user, userbuf);
3738 <      DupString(yy_tmp->host, hostbuf);
3737 >  if (yylval.number)
3738 >    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3739 >  else
3740 >    block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3741 > }
3742 > #line 3743 "conf_parser.c" /* yacc.c:1646  */
3743 >    break;
3744  
3745 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
3746 <    }
3747 <  }
3745 >  case 158:
3746 > #line 1150 "conf_parser.y" /* yacc.c:1646  */
3747 >    {
3748 >  if (conf_parser_ctx.pass == 2)
3749 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3750   }
3751 + #line 3752 "conf_parser.c" /* yacc.c:1646  */
3752      break;
3753  
3754 <  case 144:
3755 < /* Line 1787 of yacc.c  */
3916 < #line 1018 "conf_parser.y"
3754 >  case 159:
3755 > #line 1156 "conf_parser.y" /* yacc.c:1646  */
3756      {
3757    if (conf_parser_ctx.pass == 2)
3758 <  {
3759 <    if (yy_aconf->passwd != NULL)
3760 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
3758 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
3759 > }
3760 > #line 3761 "conf_parser.c" /* yacc.c:1646  */
3761 >    break;
3762  
3763 <    MyFree(yy_aconf->passwd);
3764 <    DupString(yy_aconf->passwd, yylval.string);
3765 <  }
3763 >  case 160:
3764 > #line 1162 "conf_parser.y" /* yacc.c:1646  */
3765 >    {
3766 >  if (conf_parser_ctx.pass != 2)
3767 >    break;
3768 >
3769 >  if (yylval.number)
3770 >    block_state.flags.value |= CONF_FLAGS_SSL;
3771 >  else
3772 >    block_state.flags.value &= ~CONF_FLAGS_SSL;
3773   }
3774 + #line 3775 "conf_parser.c" /* yacc.c:1646  */
3775      break;
3776  
3777 <  case 145:
3778 < /* Line 1787 of yacc.c  */
3931 < #line 1030 "conf_parser.y"
3777 >  case 161:
3778 > #line 1173 "conf_parser.y" /* yacc.c:1646  */
3779      {
3780    if (conf_parser_ctx.pass == 2)
3781 <  {
3935 <    if (yylval.number)
3936 <      SetConfEncrypted(yy_aconf);
3937 <    else
3938 <      ClearConfEncrypted(yy_aconf);
3939 <  }
3781 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3782   }
3783 + #line 3784 "conf_parser.c" /* yacc.c:1646  */
3784      break;
3785  
3786 <  case 146:
3787 < /* Line 1787 of yacc.c  */
3945 < #line 1041 "conf_parser.y"
3786 >  case 162:
3787 > #line 1179 "conf_parser.y" /* yacc.c:1646  */
3788      {
3947 #ifdef HAVE_LIBCRYPTO
3789    if (conf_parser_ctx.pass == 2)
3790 <  {
3791 <    BIO *file;
3790 >    block_state.modes.value = 0;
3791 > }
3792 > #line 3793 "conf_parser.c" /* yacc.c:1646  */
3793 >    break;
3794  
3795 <    if (yy_aconf->rsa_public_key != NULL)
3795 >  case 166:
3796 > #line 1186 "conf_parser.y" /* yacc.c:1646  */
3797      {
3798 <      RSA_free(yy_aconf->rsa_public_key);
3799 <      yy_aconf->rsa_public_key = NULL;
3800 <    }
3798 >  if (conf_parser_ctx.pass == 2)
3799 >    block_state.modes.value |= UMODE_BOTS;
3800 > }
3801 > #line 3802 "conf_parser.c" /* yacc.c:1646  */
3802 >    break;
3803  
3804 <    if (yy_aconf->rsa_public_key_file != NULL)
3804 >  case 167:
3805 > #line 1190 "conf_parser.y" /* yacc.c:1646  */
3806      {
3807 <      MyFree(yy_aconf->rsa_public_key_file);
3808 <      yy_aconf->rsa_public_key_file = NULL;
3809 <    }
3810 <
3811 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
3965 <    file = BIO_new_file(yylval.string, "r");
3807 >  if (conf_parser_ctx.pass == 2)
3808 >    block_state.modes.value |= UMODE_CCONN;
3809 > }
3810 > #line 3811 "conf_parser.c" /* yacc.c:1646  */
3811 >    break;
3812  
3813 <    if (file == NULL)
3813 >  case 168:
3814 > #line 1194 "conf_parser.y" /* yacc.c:1646  */
3815      {
3816 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
3817 <      break;
3818 <    }
3819 <
3820 <    yy_aconf->rsa_public_key = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
3816 >  if (conf_parser_ctx.pass == 2)
3817 >    block_state.modes.value |= UMODE_DEAF;
3818 > }
3819 > #line 3820 "conf_parser.c" /* yacc.c:1646  */
3820 >    break;
3821  
3822 <    if (yy_aconf->rsa_public_key == NULL)
3822 >  case 169:
3823 > #line 1198 "conf_parser.y" /* yacc.c:1646  */
3824      {
3825 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3826 <      break;
3979 <    }
3980 <
3981 <    BIO_set_close(file, BIO_CLOSE);
3982 <    BIO_free(file);
3983 <  }
3984 < #endif /* HAVE_LIBCRYPTO */
3825 >  if (conf_parser_ctx.pass == 2)
3826 >    block_state.modes.value |= UMODE_DEBUG;
3827   }
3828 + #line 3829 "conf_parser.c" /* yacc.c:1646  */
3829      break;
3830  
3831 <  case 147:
3832 < /* Line 1787 of yacc.c  */
3990 < #line 1083 "conf_parser.y"
3831 >  case 170:
3832 > #line 1202 "conf_parser.y" /* yacc.c:1646  */
3833      {
3834    if (conf_parser_ctx.pass == 2)
3835 <  {
3994 <    MyFree(class_name);
3995 <    DupString(class_name, yylval.string);
3996 <  }
3835 >    block_state.modes.value |= UMODE_FULL;
3836   }
3837 + #line 3838 "conf_parser.c" /* yacc.c:1646  */
3838      break;
3839  
3840 <  case 148:
3841 < /* Line 1787 of yacc.c  */
4002 < #line 1092 "conf_parser.y"
3840 >  case 171:
3841 > #line 1206 "conf_parser.y" /* yacc.c:1646  */
3842      {
3843    if (conf_parser_ctx.pass == 2)
3844 <    yy_aconf->modes = 0;
3844 >    block_state.modes.value |= UMODE_HIDDEN;
3845   }
3846 + #line 3847 "conf_parser.c" /* yacc.c:1646  */
3847      break;
3848  
3849 <  case 152:
3850 < /* Line 1787 of yacc.c  */
4011 < #line 1099 "conf_parser.y"
3849 >  case 172:
3850 > #line 1210 "conf_parser.y" /* yacc.c:1646  */
3851      {
3852    if (conf_parser_ctx.pass == 2)
3853 <    yy_aconf->modes |= UMODE_BOTS;
3853 >    block_state.modes.value |= UMODE_HIDECHANS;
3854   }
3855 + #line 3856 "conf_parser.c" /* yacc.c:1646  */
3856      break;
3857  
3858 <  case 153:
3859 < /* Line 1787 of yacc.c  */
4020 < #line 1103 "conf_parser.y"
3858 >  case 173:
3859 > #line 1214 "conf_parser.y" /* yacc.c:1646  */
3860      {
3861    if (conf_parser_ctx.pass == 2)
3862 <    yy_aconf->modes |= UMODE_CCONN;
3862 >    block_state.modes.value |= UMODE_HIDEIDLE;
3863   }
3864 + #line 3865 "conf_parser.c" /* yacc.c:1646  */
3865      break;
3866  
3867 <  case 154:
3868 < /* Line 1787 of yacc.c  */
4029 < #line 1107 "conf_parser.y"
3867 >  case 174:
3868 > #line 1218 "conf_parser.y" /* yacc.c:1646  */
3869      {
3870    if (conf_parser_ctx.pass == 2)
3871 <    yy_aconf->modes |= UMODE_CCONN_FULL;
3871 >    block_state.modes.value |= UMODE_SKILL;
3872   }
3873 + #line 3874 "conf_parser.c" /* yacc.c:1646  */
3874      break;
3875  
3876 <  case 155:
3877 < /* Line 1787 of yacc.c  */
4038 < #line 1111 "conf_parser.y"
3876 >  case 175:
3877 > #line 1222 "conf_parser.y" /* yacc.c:1646  */
3878      {
3879    if (conf_parser_ctx.pass == 2)
3880 <    yy_aconf->modes |= UMODE_DEAF;
3880 >    block_state.modes.value |= UMODE_NCHANGE;
3881   }
3882 + #line 3883 "conf_parser.c" /* yacc.c:1646  */
3883      break;
3884  
3885 <  case 156:
3886 < /* Line 1787 of yacc.c  */
4047 < #line 1115 "conf_parser.y"
3885 >  case 176:
3886 > #line 1226 "conf_parser.y" /* yacc.c:1646  */
3887      {
3888    if (conf_parser_ctx.pass == 2)
3889 <    yy_aconf->modes |= UMODE_DEBUG;
3889 >    block_state.modes.value |= UMODE_REJ;
3890   }
3891 + #line 3892 "conf_parser.c" /* yacc.c:1646  */
3892      break;
3893  
3894 <  case 157:
3895 < /* Line 1787 of yacc.c  */
4056 < #line 1119 "conf_parser.y"
3894 >  case 177:
3895 > #line 1230 "conf_parser.y" /* yacc.c:1646  */
3896      {
3897    if (conf_parser_ctx.pass == 2)
3898 <    yy_aconf->modes |= UMODE_FULL;
3898 >    block_state.modes.value |= UMODE_UNAUTH;
3899   }
3900 + #line 3901 "conf_parser.c" /* yacc.c:1646  */
3901      break;
3902  
3903 <  case 158:
3904 < /* Line 1787 of yacc.c  */
4065 < #line 1123 "conf_parser.y"
3903 >  case 178:
3904 > #line 1234 "conf_parser.y" /* yacc.c:1646  */
3905      {
3906    if (conf_parser_ctx.pass == 2)
3907 <    yy_aconf->modes |= UMODE_HIDDEN;
3907 >    block_state.modes.value |= UMODE_SPY;
3908   }
3909 + #line 3910 "conf_parser.c" /* yacc.c:1646  */
3910      break;
3911  
3912 <  case 159:
3913 < /* Line 1787 of yacc.c  */
4074 < #line 1127 "conf_parser.y"
3912 >  case 179:
3913 > #line 1238 "conf_parser.y" /* yacc.c:1646  */
3914      {
3915    if (conf_parser_ctx.pass == 2)
3916 <    yy_aconf->modes |= UMODE_SKILL;
3916 >    block_state.modes.value |= UMODE_EXTERNAL;
3917   }
3918 + #line 3919 "conf_parser.c" /* yacc.c:1646  */
3919      break;
3920  
3921 <  case 160:
3922 < /* Line 1787 of yacc.c  */
4083 < #line 1131 "conf_parser.y"
3921 >  case 180:
3922 > #line 1242 "conf_parser.y" /* yacc.c:1646  */
3923      {
3924    if (conf_parser_ctx.pass == 2)
3925 <    yy_aconf->modes |= UMODE_NCHANGE;
3925 >    block_state.modes.value |= UMODE_SERVNOTICE;
3926   }
3927 + #line 3928 "conf_parser.c" /* yacc.c:1646  */
3928      break;
3929  
3930 <  case 161:
3931 < /* Line 1787 of yacc.c  */
4092 < #line 1135 "conf_parser.y"
3930 >  case 181:
3931 > #line 1246 "conf_parser.y" /* yacc.c:1646  */
3932      {
3933    if (conf_parser_ctx.pass == 2)
3934 <    yy_aconf->modes |= UMODE_REJ;
3934 >    block_state.modes.value |= UMODE_INVISIBLE;
3935   }
3936 + #line 3937 "conf_parser.c" /* yacc.c:1646  */
3937      break;
3938  
3939 <  case 162:
3940 < /* Line 1787 of yacc.c  */
4101 < #line 1139 "conf_parser.y"
3939 >  case 182:
3940 > #line 1250 "conf_parser.y" /* yacc.c:1646  */
3941      {
3942    if (conf_parser_ctx.pass == 2)
3943 <    yy_aconf->modes |= UMODE_UNAUTH;
3943 >    block_state.modes.value |= UMODE_WALLOP;
3944   }
3945 + #line 3946 "conf_parser.c" /* yacc.c:1646  */
3946      break;
3947  
3948 <  case 163:
3949 < /* Line 1787 of yacc.c  */
4110 < #line 1143 "conf_parser.y"
3948 >  case 183:
3949 > #line 1254 "conf_parser.y" /* yacc.c:1646  */
3950      {
3951    if (conf_parser_ctx.pass == 2)
3952 <    yy_aconf->modes |= UMODE_SPY;
3952 >    block_state.modes.value |= UMODE_SOFTCALLERID;
3953   }
3954 + #line 3955 "conf_parser.c" /* yacc.c:1646  */
3955      break;
3956  
3957 <  case 164:
3958 < /* Line 1787 of yacc.c  */
4119 < #line 1147 "conf_parser.y"
3957 >  case 184:
3958 > #line 1258 "conf_parser.y" /* yacc.c:1646  */
3959      {
3960    if (conf_parser_ctx.pass == 2)
3961 <    yy_aconf->modes |= UMODE_EXTERNAL;
3961 >    block_state.modes.value |= UMODE_CALLERID;
3962   }
3963 + #line 3964 "conf_parser.c" /* yacc.c:1646  */
3964      break;
3965  
3966 <  case 165:
3967 < /* Line 1787 of yacc.c  */
4128 < #line 1151 "conf_parser.y"
3966 >  case 185:
3967 > #line 1262 "conf_parser.y" /* yacc.c:1646  */
3968      {
3969    if (conf_parser_ctx.pass == 2)
3970 <    yy_aconf->modes |= UMODE_OPERWALL;
3970 >    block_state.modes.value |= UMODE_LOCOPS;
3971   }
3972 + #line 3973 "conf_parser.c" /* yacc.c:1646  */
3973      break;
3974  
3975 <  case 166:
3976 < /* Line 1787 of yacc.c  */
4137 < #line 1155 "conf_parser.y"
3975 >  case 186:
3976 > #line 1266 "conf_parser.y" /* yacc.c:1646  */
3977      {
3978    if (conf_parser_ctx.pass == 2)
3979 <    yy_aconf->modes |= UMODE_SERVNOTICE;
3979 >    block_state.modes.value |= UMODE_REGONLY;
3980   }
3981 + #line 3982 "conf_parser.c" /* yacc.c:1646  */
3982      break;
3983  
3984 <  case 167:
3985 < /* Line 1787 of yacc.c  */
4146 < #line 1159 "conf_parser.y"
3984 >  case 187:
3985 > #line 1270 "conf_parser.y" /* yacc.c:1646  */
3986      {
3987    if (conf_parser_ctx.pass == 2)
3988 <    yy_aconf->modes |= UMODE_INVISIBLE;
3988 >    block_state.modes.value |= UMODE_FARCONNECT;
3989   }
3990 + #line 3991 "conf_parser.c" /* yacc.c:1646  */
3991      break;
3992  
3993 <  case 168:
3994 < /* Line 1787 of yacc.c  */
4155 < #line 1163 "conf_parser.y"
3993 >  case 188:
3994 > #line 1276 "conf_parser.y" /* yacc.c:1646  */
3995      {
3996    if (conf_parser_ctx.pass == 2)
3997 <    yy_aconf->modes |= UMODE_WALLOP;
3997 >    block_state.port.value = 0;
3998   }
3999 + #line 4000 "conf_parser.c" /* yacc.c:1646  */
4000      break;
4001  
4002 <  case 169:
4003 < /* Line 1787 of yacc.c  */
4164 < #line 1167 "conf_parser.y"
4002 >  case 192:
4003 > #line 1283 "conf_parser.y" /* yacc.c:1646  */
4004      {
4005    if (conf_parser_ctx.pass == 2)
4006 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
4006 >    block_state.port.value |= OPER_FLAG_KILL_REMOTE;
4007   }
4008 + #line 4009 "conf_parser.c" /* yacc.c:1646  */
4009      break;
4010  
4011 <  case 170:
4012 < /* Line 1787 of yacc.c  */
4173 < #line 1171 "conf_parser.y"
4011 >  case 193:
4012 > #line 1287 "conf_parser.y" /* yacc.c:1646  */
4013      {
4014    if (conf_parser_ctx.pass == 2)
4015 <    yy_aconf->modes |= UMODE_CALLERID;
4015 >    block_state.port.value |= OPER_FLAG_KILL;
4016   }
4017 + #line 4018 "conf_parser.c" /* yacc.c:1646  */
4018      break;
4019  
4020 <  case 171:
4021 < /* Line 1787 of yacc.c  */
4182 < #line 1175 "conf_parser.y"
4020 >  case 194:
4021 > #line 1291 "conf_parser.y" /* yacc.c:1646  */
4022      {
4023    if (conf_parser_ctx.pass == 2)
4024 <    yy_aconf->modes |= UMODE_LOCOPS;
4024 >    block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
4025   }
4026 + #line 4027 "conf_parser.c" /* yacc.c:1646  */
4027      break;
4028  
4029 <  case 172:
4030 < /* Line 1787 of yacc.c  */
4191 < #line 1181 "conf_parser.y"
4029 >  case 195:
4030 > #line 1295 "conf_parser.y" /* yacc.c:1646  */
4031      {
4032    if (conf_parser_ctx.pass == 2)
4033 <    yy_aconf->port = 0;
4033 >    block_state.port.value |= OPER_FLAG_CONNECT;
4034   }
4035 + #line 4036 "conf_parser.c" /* yacc.c:1646  */
4036      break;
4037  
4038 <  case 176:
4039 < /* Line 1787 of yacc.c  */
4200 < #line 1188 "conf_parser.y"
4038 >  case 196:
4039 > #line 1299 "conf_parser.y" /* yacc.c:1646  */
4040      {
4041    if (conf_parser_ctx.pass == 2)
4042 <    yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4042 >    block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
4043   }
4044 + #line 4045 "conf_parser.c" /* yacc.c:1646  */
4045      break;
4046  
4047 <  case 177:
4048 < /* Line 1787 of yacc.c  */
4209 < #line 1192 "conf_parser.y"
4047 >  case 197:
4048 > #line 1303 "conf_parser.y" /* yacc.c:1646  */
4049      {
4050    if (conf_parser_ctx.pass == 2)
4051 <    yy_aconf->port |= OPER_FLAG_REMOTE;
4051 >    block_state.port.value |= OPER_FLAG_SQUIT;
4052   }
4053 + #line 4054 "conf_parser.c" /* yacc.c:1646  */
4054      break;
4055  
4056 <  case 178:
4057 < /* Line 1787 of yacc.c  */
4218 < #line 1196 "conf_parser.y"
4056 >  case 198:
4057 > #line 1307 "conf_parser.y" /* yacc.c:1646  */
4058      {
4059    if (conf_parser_ctx.pass == 2)
4060 <    yy_aconf->port |= OPER_FLAG_K;
4060 >    block_state.port.value |= OPER_FLAG_KLINE;
4061   }
4062 + #line 4063 "conf_parser.c" /* yacc.c:1646  */
4063      break;
4064  
4065 <  case 179:
4066 < /* Line 1787 of yacc.c  */
4227 < #line 1200 "conf_parser.y"
4065 >  case 199:
4066 > #line 1311 "conf_parser.y" /* yacc.c:1646  */
4067      {
4068    if (conf_parser_ctx.pass == 2)
4069 <    yy_aconf->port |= OPER_FLAG_UNKLINE;
4069 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4070   }
4071 + #line 4072 "conf_parser.c" /* yacc.c:1646  */
4072      break;
4073  
4074 <  case 180:
4075 < /* Line 1787 of yacc.c  */
4236 < #line 1204 "conf_parser.y"
4074 >  case 200:
4075 > #line 1315 "conf_parser.y" /* yacc.c:1646  */
4076      {
4077    if (conf_parser_ctx.pass == 2)
4078 <    yy_aconf->port |= OPER_FLAG_DLINE;
4078 >    block_state.port.value |= OPER_FLAG_DLINE;
4079   }
4080 + #line 4081 "conf_parser.c" /* yacc.c:1646  */
4081      break;
4082  
4083 <  case 181:
4084 < /* Line 1787 of yacc.c  */
4245 < #line 1208 "conf_parser.y"
4083 >  case 201:
4084 > #line 1319 "conf_parser.y" /* yacc.c:1646  */
4085      {
4086    if (conf_parser_ctx.pass == 2)
4087 <    yy_aconf->port |= OPER_FLAG_UNDLINE;
4087 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4088   }
4089 + #line 4090 "conf_parser.c" /* yacc.c:1646  */
4090      break;
4091  
4092 <  case 182:
4093 < /* Line 1787 of yacc.c  */
4254 < #line 1212 "conf_parser.y"
4092 >  case 202:
4093 > #line 1323 "conf_parser.y" /* yacc.c:1646  */
4094      {
4095    if (conf_parser_ctx.pass == 2)
4096 <    yy_aconf->port |= OPER_FLAG_X;
4096 >    block_state.port.value |= OPER_FLAG_XLINE;
4097   }
4098 + #line 4099 "conf_parser.c" /* yacc.c:1646  */
4099      break;
4100  
4101 <  case 183:
4102 < /* Line 1787 of yacc.c  */
4263 < #line 1216 "conf_parser.y"
4101 >  case 203:
4102 > #line 1327 "conf_parser.y" /* yacc.c:1646  */
4103      {
4104    if (conf_parser_ctx.pass == 2)
4105 <    yy_aconf->port |= OPER_FLAG_GLINE;
4105 >    block_state.port.value |= OPER_FLAG_UNXLINE;
4106   }
4107 + #line 4108 "conf_parser.c" /* yacc.c:1646  */
4108      break;
4109  
4110 <  case 184:
4111 < /* Line 1787 of yacc.c  */
4272 < #line 1220 "conf_parser.y"
4110 >  case 204:
4111 > #line 1331 "conf_parser.y" /* yacc.c:1646  */
4112      {
4113    if (conf_parser_ctx.pass == 2)
4114 <    yy_aconf->port |= OPER_FLAG_DIE;
4114 >    block_state.port.value |= OPER_FLAG_GLINE;
4115   }
4116 + #line 4117 "conf_parser.c" /* yacc.c:1646  */
4117      break;
4118  
4119 <  case 185:
4120 < /* Line 1787 of yacc.c  */
4281 < #line 1224 "conf_parser.y"
4119 >  case 205:
4120 > #line 1335 "conf_parser.y" /* yacc.c:1646  */
4121      {
4122    if (conf_parser_ctx.pass == 2)
4123 <    yy_aconf->port |= OPER_FLAG_RESTART;
4123 >    block_state.port.value |= OPER_FLAG_DIE;
4124   }
4125 + #line 4126 "conf_parser.c" /* yacc.c:1646  */
4126      break;
4127  
4128 <  case 186:
4129 < /* Line 1787 of yacc.c  */
4290 < #line 1228 "conf_parser.y"
4128 >  case 206:
4129 > #line 1339 "conf_parser.y" /* yacc.c:1646  */
4130      {
4131    if (conf_parser_ctx.pass == 2)
4132 <    yy_aconf->port |= OPER_FLAG_REHASH;
4132 >    block_state.port.value |= OPER_FLAG_RESTART;
4133   }
4134 + #line 4135 "conf_parser.c" /* yacc.c:1646  */
4135      break;
4136  
4137 <  case 187:
4138 < /* Line 1787 of yacc.c  */
4299 < #line 1232 "conf_parser.y"
4137 >  case 207:
4138 > #line 1343 "conf_parser.y" /* yacc.c:1646  */
4139      {
4140    if (conf_parser_ctx.pass == 2)
4141 <    yy_aconf->port |= OPER_FLAG_ADMIN;
4141 >    block_state.port.value |= OPER_FLAG_REHASH;
4142   }
4143 + #line 4144 "conf_parser.c" /* yacc.c:1646  */
4144      break;
4145  
4146 <  case 188:
4147 < /* Line 1787 of yacc.c  */
4308 < #line 1236 "conf_parser.y"
4146 >  case 208:
4147 > #line 1347 "conf_parser.y" /* yacc.c:1646  */
4148      {
4149    if (conf_parser_ctx.pass == 2)
4150 <    yy_aconf->port |= OPER_FLAG_N;
4150 >    block_state.port.value |= OPER_FLAG_ADMIN;
4151   }
4152 + #line 4153 "conf_parser.c" /* yacc.c:1646  */
4153      break;
4154  
4155 <  case 189:
4156 < /* Line 1787 of yacc.c  */
4317 < #line 1240 "conf_parser.y"
4155 >  case 209:
4156 > #line 1351 "conf_parser.y" /* yacc.c:1646  */
4157      {
4158    if (conf_parser_ctx.pass == 2)
4159 <    yy_aconf->port |= OPER_FLAG_OPERWALL;
4159 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4160   }
4161 + #line 4162 "conf_parser.c" /* yacc.c:1646  */
4162      break;
4163  
4164 <  case 190:
4165 < /* Line 1787 of yacc.c  */
4326 < #line 1244 "conf_parser.y"
4164 >  case 210:
4165 > #line 1355 "conf_parser.y" /* yacc.c:1646  */
4166      {
4167    if (conf_parser_ctx.pass == 2)
4168 <    yy_aconf->port |= OPER_FLAG_GLOBOPS;
4168 >    block_state.port.value |= OPER_FLAG_WALLOPS;
4169   }
4170 + #line 4171 "conf_parser.c" /* yacc.c:1646  */
4171      break;
4172  
4173 <  case 191:
4174 < /* Line 1787 of yacc.c  */
4335 < #line 1248 "conf_parser.y"
4173 >  case 211:
4174 > #line 1359 "conf_parser.y" /* yacc.c:1646  */
4175      {
4176    if (conf_parser_ctx.pass == 2)
4177 <    yy_aconf->port |= OPER_FLAG_OPER_SPY;
4177 >    block_state.port.value |= OPER_FLAG_LOCOPS;
4178   }
4179 + #line 4180 "conf_parser.c" /* yacc.c:1646  */
4180      break;
4181  
4182 <  case 192:
4183 < /* Line 1787 of yacc.c  */
4344 < #line 1252 "conf_parser.y"
4182 >  case 212:
4183 > #line 1363 "conf_parser.y" /* yacc.c:1646  */
4184      {
4185    if (conf_parser_ctx.pass == 2)
4186 <    yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4186 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4187   }
4188 + #line 4189 "conf_parser.c" /* yacc.c:1646  */
4189      break;
4190  
4191 <  case 193:
4192 < /* Line 1787 of yacc.c  */
4353 < #line 1256 "conf_parser.y"
4191 >  case 213:
4192 > #line 1367 "conf_parser.y" /* yacc.c:1646  */
4193      {
4194    if (conf_parser_ctx.pass == 2)
4195 <    yy_aconf->port |= OPER_FLAG_SET;
4195 >    block_state.port.value |= OPER_FLAG_SET;
4196   }
4197 + #line 4198 "conf_parser.c" /* yacc.c:1646  */
4198      break;
4199  
4200 <  case 194:
4201 < /* Line 1787 of yacc.c  */
4362 < #line 1260 "conf_parser.y"
4200 >  case 214:
4201 > #line 1371 "conf_parser.y" /* yacc.c:1646  */
4202      {
4203    if (conf_parser_ctx.pass == 2)
4204 <    yy_aconf->port |= OPER_FLAG_MODULE;
4204 >    block_state.port.value |= OPER_FLAG_MODULE;
4205   }
4206 + #line 4207 "conf_parser.c" /* yacc.c:1646  */
4207      break;
4208  
4209 <  case 195:
4210 < /* Line 1787 of yacc.c  */
4371 < #line 1270 "conf_parser.y"
4209 >  case 215:
4210 > #line 1381 "conf_parser.y" /* yacc.c:1646  */
4211      {
4212 <  if (conf_parser_ctx.pass == 1)
4213 <  {
4214 <    yy_conf = make_conf_item(CLASS_TYPE);
4215 <    yy_class = map_to_conf(yy_conf);
4216 <  }
4212 >  if (conf_parser_ctx.pass != 1)
4213 >    break;
4214 >
4215 >  reset_block_state();
4216 >
4217 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4218 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4219 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4220 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4221 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4222   }
4223 + #line 4224 "conf_parser.c" /* yacc.c:1646  */
4224      break;
4225  
4226 <  case 196:
4227 < /* Line 1787 of yacc.c  */
4383 < #line 1277 "conf_parser.y"
4226 >  case 216:
4227 > #line 1393 "conf_parser.y" /* yacc.c:1646  */
4228      {
4229 <  if (conf_parser_ctx.pass == 1)
4386 <  {
4387 <    struct ConfItem *cconf = NULL;
4388 <    struct ClassItem *class = NULL;
4229 >  struct ClassItem *class = NULL;
4230  
4231 <    if (yy_class_name == NULL)
4232 <      delete_conf_item(yy_conf);
4392 <    else
4393 <    {
4394 <      cconf = find_exact_name_conf(CLASS_TYPE, NULL, yy_class_name, NULL, NULL);
4231 >  if (conf_parser_ctx.pass != 1)
4232 >    break;
4233  
4234 <      if (cconf != NULL)                /* The class existed already */
4235 <      {
4398 <        int user_count = 0;
4234 >  if (!block_state.class.buf[0])
4235 >    break;
4236  
4237 <        rebuild_cidr_class(cconf, yy_class);
4237 >  if (!(class = class_find(block_state.class.buf, 0)))
4238 >    class = class_make();
4239  
4240 <        class = map_to_conf(cconf);
4240 >  class->active = 1;
4241 >  MyFree(class->name);
4242 >  class->name = xstrdup(block_state.class.buf);
4243 >  class->ping_freq = block_state.ping_freq.value;
4244 >  class->max_perip = block_state.max_perip.value;
4245 >  class->con_freq = block_state.con_freq.value;
4246 >  class->max_total = block_state.max_total.value;
4247 >  class->max_global = block_state.max_global.value;
4248 >  class->max_local = block_state.max_local.value;
4249 >  class->max_ident = block_state.max_ident.value;
4250 >  class->max_sendq = block_state.max_sendq.value;
4251 >  class->max_recvq = block_state.max_recvq.value;
4252 >  class->max_channels = block_state.max_channels.value;
4253  
4254 <        user_count = class->curr_user_count;
4255 <        memcpy(class, yy_class, sizeof(*class));
4256 <        class->curr_user_count = user_count;
4257 <        class->active = 1;
4254 >  if (block_state.min_idle.value > block_state.max_idle.value)
4255 >  {
4256 >    block_state.min_idle.value = 0;
4257 >    block_state.max_idle.value = 0;
4258 >    block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4259 >  }
4260  
4261 <        delete_conf_item(yy_conf);
4261 >  class->flags = block_state.flags.value;
4262 >  class->min_idle = block_state.min_idle.value;
4263 >  class->max_idle = block_state.max_idle.value;
4264  
4265 <        MyFree(cconf->name);            /* Allows case change of class name */
4266 <        cconf->name = yy_class_name;
4267 <      }
4268 <      else      /* Brand new class */
4269 <      {
4270 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4417 <        yy_conf->name = yy_class_name;
4418 <        yy_class->active = 1;
4419 <      }
4420 <    }
4265 >  if (class->number_per_cidr && block_state.number_per_cidr.value)
4266 >    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4267 >        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.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 >        rebuild_cidr_list(class);
4271  
4272 <    yy_class_name = NULL;
4273 <  }
4272 >  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4273 >  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4274 >  class->number_per_cidr = block_state.number_per_cidr.value;
4275   }
4276 + #line 4277 "conf_parser.c" /* yacc.c:1646  */
4277      break;
4278  
4279 <  case 214:
4280 < /* Line 1787 of yacc.c  */
4429 < #line 1335 "conf_parser.y"
4279 >  case 237:
4280 > #line 1462 "conf_parser.y" /* yacc.c:1646  */
4281      {
4282    if (conf_parser_ctx.pass == 1)
4283 <  {
4433 <    MyFree(yy_class_name);
4434 <    DupString(yy_class_name, yylval.string);
4435 <  }
4283 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4284   }
4285 + #line 4286 "conf_parser.c" /* yacc.c:1646  */
4286      break;
4287  
4288 <  case 215:
4289 < /* Line 1787 of yacc.c  */
4441 < #line 1344 "conf_parser.y"
4288 >  case 238:
4289 > #line 1468 "conf_parser.y" /* yacc.c:1646  */
4290      {
4291    if (conf_parser_ctx.pass == 1)
4292 <    yy_class->ping_freq = (yyvsp[(3) - (4)].number);
4292 >    block_state.ping_freq.value = (yyvsp[-1].number);
4293   }
4294 + #line 4295 "conf_parser.c" /* yacc.c:1646  */
4295      break;
4296  
4297 <  case 216:
4298 < /* Line 1787 of yacc.c  */
4450 < #line 1350 "conf_parser.y"
4297 >  case 239:
4298 > #line 1474 "conf_parser.y" /* yacc.c:1646  */
4299      {
4300    if (conf_parser_ctx.pass == 1)
4301 <    yy_class->ping_warning = (yyvsp[(3) - (4)].number);
4301 >    block_state.max_perip.value = (yyvsp[-1].number);
4302   }
4303 + #line 4304 "conf_parser.c" /* yacc.c:1646  */
4304      break;
4305  
4306 <  case 217:
4307 < /* Line 1787 of yacc.c  */
4459 < #line 1356 "conf_parser.y"
4306 >  case 240:
4307 > #line 1480 "conf_parser.y" /* yacc.c:1646  */
4308      {
4309    if (conf_parser_ctx.pass == 1)
4310 <    yy_class->max_perip = (yyvsp[(3) - (4)].number);
4310 >    block_state.con_freq.value = (yyvsp[-1].number);
4311   }
4312 + #line 4313 "conf_parser.c" /* yacc.c:1646  */
4313      break;
4314  
4315 <  case 218:
4316 < /* Line 1787 of yacc.c  */
4468 < #line 1362 "conf_parser.y"
4315 >  case 241:
4316 > #line 1486 "conf_parser.y" /* yacc.c:1646  */
4317      {
4318    if (conf_parser_ctx.pass == 1)
4319 <    yy_class->con_freq = (yyvsp[(3) - (4)].number);
4319 >    block_state.max_channels.value = (yyvsp[-1].number);
4320   }
4321 + #line 4322 "conf_parser.c" /* yacc.c:1646  */
4322      break;
4323  
4324 <  case 219:
4325 < /* Line 1787 of yacc.c  */
4477 < #line 1368 "conf_parser.y"
4324 >  case 242:
4325 > #line 1492 "conf_parser.y" /* yacc.c:1646  */
4326      {
4327    if (conf_parser_ctx.pass == 1)
4328 <    yy_class->max_total = (yyvsp[(3) - (4)].number);
4328 >    block_state.max_total.value = (yyvsp[-1].number);
4329   }
4330 + #line 4331 "conf_parser.c" /* yacc.c:1646  */
4331      break;
4332  
4333 <  case 220:
4334 < /* Line 1787 of yacc.c  */
4486 < #line 1374 "conf_parser.y"
4333 >  case 243:
4334 > #line 1498 "conf_parser.y" /* yacc.c:1646  */
4335      {
4336    if (conf_parser_ctx.pass == 1)
4337 <    yy_class->max_global = (yyvsp[(3) - (4)].number);
4337 >    block_state.max_global.value = (yyvsp[-1].number);
4338   }
4339 + #line 4340 "conf_parser.c" /* yacc.c:1646  */
4340      break;
4341  
4342 <  case 221:
4343 < /* Line 1787 of yacc.c  */
4495 < #line 1380 "conf_parser.y"
4342 >  case 244:
4343 > #line 1504 "conf_parser.y" /* yacc.c:1646  */
4344      {
4345    if (conf_parser_ctx.pass == 1)
4346 <    yy_class->max_local = (yyvsp[(3) - (4)].number);
4346 >    block_state.max_local.value = (yyvsp[-1].number);
4347   }
4348 + #line 4349 "conf_parser.c" /* yacc.c:1646  */
4349      break;
4350  
4351 <  case 222:
4352 < /* Line 1787 of yacc.c  */
4504 < #line 1386 "conf_parser.y"
4351 >  case 245:
4352 > #line 1510 "conf_parser.y" /* yacc.c:1646  */
4353      {
4354    if (conf_parser_ctx.pass == 1)
4355 <    yy_class->max_ident = (yyvsp[(3) - (4)].number);
4355 >    block_state.max_ident.value = (yyvsp[-1].number);
4356   }
4357 + #line 4358 "conf_parser.c" /* yacc.c:1646  */
4358      break;
4359  
4360 <  case 223:
4361 < /* Line 1787 of yacc.c  */
4513 < #line 1392 "conf_parser.y"
4360 >  case 246:
4361 > #line 1516 "conf_parser.y" /* yacc.c:1646  */
4362      {
4363    if (conf_parser_ctx.pass == 1)
4364 <    yy_class->max_sendq = (yyvsp[(3) - (4)].number);
4364 >    block_state.max_sendq.value = (yyvsp[-1].number);
4365   }
4366 + #line 4367 "conf_parser.c" /* yacc.c:1646  */
4367      break;
4368  
4369 <  case 224:
4370 < /* Line 1787 of yacc.c  */
4522 < #line 1398 "conf_parser.y"
4369 >  case 247:
4370 > #line 1522 "conf_parser.y" /* yacc.c:1646  */
4371      {
4372    if (conf_parser_ctx.pass == 1)
4373 <    if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4374 <      yy_class->max_recvq = (yyvsp[(3) - (4)].number);
4373 >    if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX)
4374 >      block_state.max_recvq.value = (yyvsp[-1].number);
4375   }
4376 + #line 4377 "conf_parser.c" /* yacc.c:1646  */
4377      break;
4378  
4379 <  case 225:
4380 < /* Line 1787 of yacc.c  */
4532 < #line 1405 "conf_parser.y"
4379 >  case 248:
4380 > #line 1529 "conf_parser.y" /* yacc.c:1646  */
4381      {
4382    if (conf_parser_ctx.pass == 1)
4383 <    yy_class->cidr_bitlen_ipv4 = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4383 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number);
4384   }
4385 + #line 4386 "conf_parser.c" /* yacc.c:1646  */
4386      break;
4387  
4388 <  case 226:
4389 < /* Line 1787 of yacc.c  */
4541 < #line 1411 "conf_parser.y"
4388 >  case 249:
4389 > #line 1535 "conf_parser.y" /* yacc.c:1646  */
4390      {
4391    if (conf_parser_ctx.pass == 1)
4392 <    yy_class->cidr_bitlen_ipv6 = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4392 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number);
4393   }
4394 + #line 4395 "conf_parser.c" /* yacc.c:1646  */
4395      break;
4396  
4397 <  case 227:
4398 < /* Line 1787 of yacc.c  */
4550 < #line 1417 "conf_parser.y"
4397 >  case 250:
4398 > #line 1541 "conf_parser.y" /* yacc.c:1646  */
4399      {
4400    if (conf_parser_ctx.pass == 1)
4401 <    yy_class->number_per_cidr = (yyvsp[(3) - (4)].number);
4401 >    block_state.number_per_cidr.value = (yyvsp[-1].number);
4402 > }
4403 > #line 4404 "conf_parser.c" /* yacc.c:1646  */
4404 >    break;
4405 >
4406 >  case 251:
4407 > #line 1547 "conf_parser.y" /* yacc.c:1646  */
4408 >    {
4409 >  if (conf_parser_ctx.pass != 1)
4410 >    break;
4411 >
4412 >  block_state.min_idle.value = (yyvsp[-1].number);
4413 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4414   }
4415 + #line 4416 "conf_parser.c" /* yacc.c:1646  */
4416      break;
4417  
4418 <  case 228:
4419 < /* Line 1787 of yacc.c  */
4559 < #line 1426 "conf_parser.y"
4418 >  case 252:
4419 > #line 1556 "conf_parser.y" /* yacc.c:1646  */
4420      {
4421 <  if (conf_parser_ctx.pass == 2)
4422 <  {
4423 <    listener_address = NULL;
4424 <    listener_flags = 0;
4425 <  }
4421 >  if (conf_parser_ctx.pass != 1)
4422 >    break;
4423 >
4424 >  block_state.max_idle.value = (yyvsp[-1].number);
4425 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4426 > }
4427 > #line 4428 "conf_parser.c" /* yacc.c:1646  */
4428 >    break;
4429 >
4430 >  case 253:
4431 > #line 1565 "conf_parser.y" /* yacc.c:1646  */
4432 >    {
4433 >  if (conf_parser_ctx.pass == 1)
4434 >    block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4435   }
4436 + #line 4437 "conf_parser.c" /* yacc.c:1646  */
4437      break;
4438  
4439 <  case 229:
4440 < /* Line 1787 of yacc.c  */
4441 < #line 1433 "conf_parser.y"
4439 >  case 257:
4440 > #line 1572 "conf_parser.y" /* yacc.c:1646  */
4441 >    {
4442 >  if (conf_parser_ctx.pass == 1)
4443 >    block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4444 > }
4445 > #line 4446 "conf_parser.c" /* yacc.c:1646  */
4446 >    break;
4447 >
4448 >  case 258:
4449 > #line 1576 "conf_parser.y" /* yacc.c:1646  */
4450 >    {
4451 >  if (conf_parser_ctx.pass == 1)
4452 >    block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4453 > }
4454 > #line 4455 "conf_parser.c" /* yacc.c:1646  */
4455 >    break;
4456 >
4457 >  case 259:
4458 > #line 1586 "conf_parser.y" /* yacc.c:1646  */
4459      {
4460    if (conf_parser_ctx.pass == 2)
4461 <  {
4575 <    MyFree(listener_address);
4576 <    listener_address = NULL;
4577 <  }
4461 >    reset_block_state();
4462   }
4463 + #line 4464 "conf_parser.c" /* yacc.c:1646  */
4464      break;
4465  
4466 <  case 230:
4467 < /* Line 1787 of yacc.c  */
4583 < #line 1442 "conf_parser.y"
4466 >  case 261:
4467 > #line 1592 "conf_parser.y" /* yacc.c:1646  */
4468      {
4469 <  listener_flags = 0;
4469 >  block_state.flags.value = 0;
4470   }
4471 + #line 4472 "conf_parser.c" /* yacc.c:1646  */
4472      break;
4473  
4474 <  case 234:
4475 < /* Line 1787 of yacc.c  */
4591 < #line 1448 "conf_parser.y"
4474 >  case 265:
4475 > #line 1598 "conf_parser.y" /* yacc.c:1646  */
4476      {
4477    if (conf_parser_ctx.pass == 2)
4478 <    listener_flags |= LISTENER_SSL;
4478 >    block_state.flags.value |= LISTENER_SSL;
4479   }
4480 + #line 4481 "conf_parser.c" /* yacc.c:1646  */
4481      break;
4482  
4483 <  case 235:
4484 < /* Line 1787 of yacc.c  */
4600 < #line 1452 "conf_parser.y"
4483 >  case 266:
4484 > #line 1602 "conf_parser.y" /* yacc.c:1646  */
4485      {
4486    if (conf_parser_ctx.pass == 2)
4487 <    listener_flags |= LISTENER_HIDDEN;
4487 >    block_state.flags.value |= LISTENER_HIDDEN;
4488   }
4489 + #line 4490 "conf_parser.c" /* yacc.c:1646  */
4490      break;
4491  
4492 <  case 236:
4493 < /* Line 1787 of yacc.c  */
4609 < #line 1456 "conf_parser.y"
4492 >  case 267:
4493 > #line 1606 "conf_parser.y" /* yacc.c:1646  */
4494      {
4495    if (conf_parser_ctx.pass == 2)
4496 <    listener_flags |= LISTENER_SERVER;
4496 >   block_state.flags.value |= LISTENER_SERVER;
4497   }
4498 + #line 4499 "conf_parser.c" /* yacc.c:1646  */
4499      break;
4500  
4501 <  case 244:
4502 < /* Line 1787 of yacc.c  */
4503 < #line 1466 "conf_parser.y"
4504 <    { listener_flags = 0; }
4501 >  case 275:
4502 > #line 1614 "conf_parser.y" /* yacc.c:1646  */
4503 >    { block_state.flags.value = 0; }
4504 > #line 4505 "conf_parser.c" /* yacc.c:1646  */
4505      break;
4506  
4507 <  case 248:
4508 < /* Line 1787 of yacc.c  */
4624 < #line 1471 "conf_parser.y"
4507 >  case 279:
4508 > #line 1619 "conf_parser.y" /* yacc.c:1646  */
4509      {
4510    if (conf_parser_ctx.pass == 2)
4511    {
4512 <    if ((listener_flags & LISTENER_SSL))
4512 >    if (block_state.flags.value & LISTENER_SSL)
4513   #ifdef HAVE_LIBCRYPTO
4514        if (!ServerInfo.server_ctx)
4515   #endif
4516        {
4517 <        yyerror("SSL not available - port closed");
4518 <        break;
4517 >        conf_error_report("SSL not available - port closed");
4518 >        break;
4519        }
4520 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4520 >    add_listener((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4521    }
4522   }
4523 + #line 4524 "conf_parser.c" /* yacc.c:1646  */
4524      break;
4525  
4526 <  case 249:
4527 < /* Line 1787 of yacc.c  */
4643 < #line 1485 "conf_parser.y"
4526 >  case 280:
4527 > #line 1633 "conf_parser.y" /* yacc.c:1646  */
4528      {
4529    if (conf_parser_ctx.pass == 2)
4530    {
4531 <    int i;
4648 <
4649 <    if ((listener_flags & LISTENER_SSL))
4531 >    if (block_state.flags.value & LISTENER_SSL)
4532   #ifdef HAVE_LIBCRYPTO
4533        if (!ServerInfo.server_ctx)
4534   #endif
4535        {
4536 <        yyerror("SSL not available - port closed");
4537 <        break;
4536 >        conf_error_report("SSL not available - port closed");
4537 >        break;
4538        }
4539  
4540 <    for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4541 <      add_listener(i, listener_address, listener_flags);
4540 >    for (int i = (yyvsp[-2].number); i <= (yyvsp[0].number); ++i)
4541 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4542    }
4543   }
4544 + #line 4545 "conf_parser.c" /* yacc.c:1646  */
4545      break;
4546  
4547 <  case 250:
4548 < /* Line 1787 of yacc.c  */
4666 < #line 1505 "conf_parser.y"
4547 >  case 281:
4548 > #line 1651 "conf_parser.y" /* yacc.c:1646  */
4549      {
4550    if (conf_parser_ctx.pass == 2)
4551 <  {
4670 <    MyFree(listener_address);
4671 <    DupString(listener_address, yylval.string);
4672 <  }
4551 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4552   }
4553 + #line 4554 "conf_parser.c" /* yacc.c:1646  */
4554      break;
4555  
4556 <  case 251:
4557 < /* Line 1787 of yacc.c  */
4678 < #line 1514 "conf_parser.y"
4556 >  case 282:
4557 > #line 1657 "conf_parser.y" /* yacc.c:1646  */
4558      {
4559    if (conf_parser_ctx.pass == 2)
4560 <  {
4682 <    MyFree(listener_address);
4683 <    DupString(listener_address, yylval.string);
4684 <  }
4560 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4561   }
4562 + #line 4563 "conf_parser.c" /* yacc.c:1646  */
4563      break;
4564  
4565 <  case 252:
4566 < /* Line 1787 of yacc.c  */
4690 < #line 1526 "conf_parser.y"
4565 >  case 283:
4566 > #line 1666 "conf_parser.y" /* yacc.c:1646  */
4567      {
4568    if (conf_parser_ctx.pass == 2)
4569 <  {
4694 <    yy_conf = make_conf_item(CLIENT_TYPE);
4695 <    yy_aconf = map_to_conf(yy_conf);
4696 <  }
4697 <  else
4698 <  {
4699 <    MyFree(class_name);
4700 <    class_name = NULL;
4701 <  }
4569 >    reset_block_state();
4570   }
4571 + #line 4572 "conf_parser.c" /* yacc.c:1646  */
4572      break;
4573  
4574 <  case 253:
4575 < /* Line 1787 of yacc.c  */
4707 < #line 1538 "conf_parser.y"
4708 <    {
4709 <  if (conf_parser_ctx.pass == 2)
4710 <  {
4711 <    struct CollectItem *yy_tmp = NULL;
4712 <    dlink_node *ptr = NULL, *next_ptr = NULL;
4713 <
4714 <    if (yy_aconf->user && yy_aconf->host)
4715 <    {
4716 <      conf_add_class_to_conf(yy_conf, class_name);
4717 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
4718 <    }
4719 <    else
4720 <      delete_conf_item(yy_conf);
4721 <
4722 <    /* copy over settings from first struct */
4723 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4574 >  case 284:
4575 > #line 1670 "conf_parser.y" /* yacc.c:1646  */
4576      {
4577 <      struct AccessItem *new_aconf;
4726 <      struct ConfItem *new_conf;
4727 <
4728 <      new_conf = make_conf_item(CLIENT_TYPE);
4729 <      new_aconf = map_to_conf(new_conf);
4730 <
4731 <      yy_tmp = ptr->data;
4732 <
4733 <      assert(yy_tmp->user && yy_tmp->host);
4734 <
4735 <      if (yy_aconf->passwd != NULL)
4736 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4737 <      if (yy_conf->name != NULL)
4738 <        DupString(new_conf->name, yy_conf->name);
4739 <      if (yy_aconf->passwd != NULL)
4740 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4741 <
4742 <      new_aconf->flags = yy_aconf->flags;
4743 <      new_aconf->port  = yy_aconf->port;
4744 <
4745 <      DupString(new_aconf->user, yy_tmp->user);
4746 <      collapse(new_aconf->user);
4577 >  dlink_node *ptr = NULL;
4578  
4579 <      DupString(new_aconf->host, yy_tmp->host);
4749 <      collapse(new_aconf->host);
4750 <
4751 <      conf_add_class_to_conf(new_conf, class_name);
4752 <      add_conf_by_address(CONF_CLIENT, new_aconf);
4753 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4754 <      free_collect_item(yy_tmp);
4755 <    }
4756 <
4757 <    MyFree(class_name);
4758 <    class_name = NULL;
4759 <    yy_conf = NULL;
4760 <    yy_aconf = NULL;
4761 <  }
4762 < }
4579 >  if (conf_parser_ctx.pass != 2)
4580      break;
4581  
4582 <  case 265:
4766 < /* Line 1787 of yacc.c  */
4767 < #line 1600 "conf_parser.y"
4768 <    {
4769 <  if (conf_parser_ctx.pass == 2)
4582 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4583    {
4584 <    struct CollectItem *yy_tmp = NULL;
4584 >    struct MaskItem *conf = NULL;
4585      struct split_nuh_item nuh;
4586  
4587 <    nuh.nuhmask  = yylval.string;
4587 >    nuh.nuhmask  = ptr->data;
4588      nuh.nickptr  = NULL;
4589 <    nuh.userptr  = userbuf;
4590 <    nuh.hostptr  = hostbuf;
4778 <
4589 >    nuh.userptr  = block_state.user.buf;
4590 >    nuh.hostptr  = block_state.host.buf;
4591      nuh.nicksize = 0;
4592 <    nuh.usersize = sizeof(userbuf);
4593 <    nuh.hostsize = sizeof(hostbuf);
4782 <
4592 >    nuh.usersize = sizeof(block_state.user.buf);
4593 >    nuh.hostsize = sizeof(block_state.host.buf);
4594      split_nuh(&nuh);
4595  
4596 <    if (yy_aconf->user == NULL)
4597 <    {
4598 <      DupString(yy_aconf->user, userbuf);
4788 <      DupString(yy_aconf->host, hostbuf);
4789 <    }
4790 <    else
4791 <    {
4792 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4596 >    conf        = conf_make(CONF_CLIENT);
4597 >    conf->user  = xstrdup(block_state.user.buf);
4598 >    conf->host  = xstrdup(block_state.host.buf);
4599  
4600 <      DupString(yy_tmp->user, userbuf);
4601 <      DupString(yy_tmp->host, hostbuf);
4600 >    if (block_state.rpass.buf[0])
4601 >      conf->passwd = xstrdup(block_state.rpass.buf);
4602 >    if (block_state.name.buf[0])
4603 >      conf->name = xstrdup(block_state.name.buf);
4604  
4605 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4606 <    }
4605 >    conf->flags = block_state.flags.value;
4606 >    conf->port  = block_state.port.value;
4607 >
4608 >    conf_add_class_to_conf(conf, block_state.class.buf);
4609 >    add_conf_by_address(CONF_CLIENT, conf);
4610    }
4611   }
4612 + #line 4613 "conf_parser.c" /* yacc.c:1646  */
4613      break;
4614  
4615 <  case 266:
4616 < /* Line 1787 of yacc.c  */
4805 < #line 1635 "conf_parser.y"
4615 >  case 296:
4616 > #line 1719 "conf_parser.y" /* yacc.c:1646  */
4617      {
4618    if (conf_parser_ctx.pass == 2)
4619 <  {
4620 <    /* be paranoid */
4621 <    if (yy_aconf->passwd != NULL)
4622 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4619 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4620 > }
4621 > #line 4622 "conf_parser.c" /* yacc.c:1646  */
4622 >    break;
4623  
4624 <    MyFree(yy_aconf->passwd);
4625 <    DupString(yy_aconf->passwd, yylval.string);
4626 <  }
4624 >  case 297:
4625 > #line 1725 "conf_parser.y" /* yacc.c:1646  */
4626 >    {
4627 >  if (conf_parser_ctx.pass == 2)
4628 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4629   }
4630 + #line 4631 "conf_parser.c" /* yacc.c:1646  */
4631      break;
4632  
4633 <  case 267:
4634 < /* Line 1787 of yacc.c  */
4821 < #line 1648 "conf_parser.y"
4633 >  case 298:
4634 > #line 1731 "conf_parser.y" /* yacc.c:1646  */
4635      {
4636    if (conf_parser_ctx.pass == 2)
4637 <  {
4825 <    MyFree(class_name);
4826 <    DupString(class_name, yylval.string);
4827 <  }
4637 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4638   }
4639 + #line 4640 "conf_parser.c" /* yacc.c:1646  */
4640      break;
4641  
4642 <  case 268:
4643 < /* Line 1787 of yacc.c  */
4833 < #line 1657 "conf_parser.y"
4642 >  case 299:
4643 > #line 1737 "conf_parser.y" /* yacc.c:1646  */
4644      {
4645    if (conf_parser_ctx.pass == 2)
4646    {
4647      if (yylval.number)
4648 <      SetConfEncrypted(yy_aconf);
4648 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4649      else
4650 <      ClearConfEncrypted(yy_aconf);
4650 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4651    }
4652   }
4653 + #line 4654 "conf_parser.c" /* yacc.c:1646  */
4654      break;
4655  
4656 <  case 269:
4657 < /* Line 1787 of yacc.c  */
4847 < #line 1668 "conf_parser.y"
4656 >  case 300:
4657 > #line 1748 "conf_parser.y" /* yacc.c:1646  */
4658      {
4659 +  if (conf_parser_ctx.pass == 2)
4660 +    block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4661   }
4662 + #line 4663 "conf_parser.c" /* yacc.c:1646  */
4663      break;
4664  
4665 <  case 273:
4666 < /* Line 1787 of yacc.c  */
4854 < #line 1673 "conf_parser.y"
4665 >  case 304:
4666 > #line 1755 "conf_parser.y" /* yacc.c:1646  */
4667      {
4668    if (conf_parser_ctx.pass == 2)
4669 <    yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
4669 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4670   }
4671 + #line 4672 "conf_parser.c" /* yacc.c:1646  */
4672      break;
4673  
4674 <  case 274:
4675 < /* Line 1787 of yacc.c  */
4863 < #line 1677 "conf_parser.y"
4674 >  case 305:
4675 > #line 1759 "conf_parser.y" /* yacc.c:1646  */
4676      {
4677    if (conf_parser_ctx.pass == 2)
4678 <    yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
4678 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4679   }
4680 + #line 4681 "conf_parser.c" /* yacc.c:1646  */
4681      break;
4682  
4683 <  case 275:
4684 < /* Line 1787 of yacc.c  */
4872 < #line 1681 "conf_parser.y"
4683 >  case 306:
4684 > #line 1763 "conf_parser.y" /* yacc.c:1646  */
4685      {
4686    if (conf_parser_ctx.pass == 2)
4687 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
4687 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4688   }
4689 + #line 4690 "conf_parser.c" /* yacc.c:1646  */
4690      break;
4691  
4692 <  case 276:
4693 < /* Line 1787 of yacc.c  */
4881 < #line 1685 "conf_parser.y"
4692 >  case 307:
4693 > #line 1767 "conf_parser.y" /* yacc.c:1646  */
4694      {
4695    if (conf_parser_ctx.pass == 2)
4696 <    yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
4696 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4697   }
4698 + #line 4699 "conf_parser.c" /* yacc.c:1646  */
4699      break;
4700  
4701 <  case 277:
4702 < /* Line 1787 of yacc.c  */
4890 < #line 1689 "conf_parser.y"
4701 >  case 308:
4702 > #line 1771 "conf_parser.y" /* yacc.c:1646  */
4703      {
4704    if (conf_parser_ctx.pass == 2)
4705 <    yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
4705 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4706   }
4707 + #line 4708 "conf_parser.c" /* yacc.c:1646  */
4708      break;
4709  
4710 <  case 278:
4711 < /* Line 1787 of yacc.c  */
4899 < #line 1693 "conf_parser.y"
4710 >  case 309:
4711 > #line 1775 "conf_parser.y" /* yacc.c:1646  */
4712      {
4713    if (conf_parser_ctx.pass == 2)
4714 <    yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
4714 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4715   }
4716 + #line 4717 "conf_parser.c" /* yacc.c:1646  */
4717      break;
4718  
4719 <  case 279:
4720 < /* Line 1787 of yacc.c  */
4908 < #line 1697 "conf_parser.y"
4719 >  case 310:
4720 > #line 1779 "conf_parser.y" /* yacc.c:1646  */
4721      {
4722    if (conf_parser_ctx.pass == 2)
4723 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
4723 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4724   }
4725 + #line 4726 "conf_parser.c" /* yacc.c:1646  */
4726      break;
4727  
4728 <  case 280:
4729 < /* Line 1787 of yacc.c  */
4917 < #line 1701 "conf_parser.y"
4728 >  case 311:
4729 > #line 1783 "conf_parser.y" /* yacc.c:1646  */
4730      {
4731    if (conf_parser_ctx.pass == 2)
4732 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
4732 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4733   }
4734 + #line 4735 "conf_parser.c" /* yacc.c:1646  */
4735      break;
4736  
4737 <  case 281:
4738 < /* Line 1787 of yacc.c  */
4926 < #line 1705 "conf_parser.y"
4737 >  case 312:
4738 > #line 1787 "conf_parser.y" /* yacc.c:1646  */
4739      {
4740    if (conf_parser_ctx.pass == 2)
4741 <    yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
4741 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
4742   }
4743 + #line 4744 "conf_parser.c" /* yacc.c:1646  */
4744      break;
4745  
4746 <  case 282:
4747 < /* Line 1787 of yacc.c  */
4935 < #line 1711 "conf_parser.y"
4746 >  case 313:
4747 > #line 1791 "conf_parser.y" /* yacc.c:1646  */
4748      {
4749    if (conf_parser_ctx.pass == 2)
4750 <  {
4751 <    MyFree(yy_conf->name);
4750 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4751 > }
4752 > #line 4753 "conf_parser.c" /* yacc.c:1646  */
4753 >    break;
4754  
4755 <    if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4756 <    {    
4943 <      DupString(yy_conf->name, yylval.string);
4944 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
4945 <    }
4946 <    else
4755 >  case 314:
4756 > #line 1797 "conf_parser.y" /* yacc.c:1646  */
4757      {
4758 <      ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4759 <      yy_conf->name = NULL;
4760 <    }
4758 >  if (conf_parser_ctx.pass != 2)
4759 >    break;
4760 >
4761 >  if (valid_hostname(yylval.string))
4762 >  {
4763 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4764 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4765    }
4766 +  else
4767 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4768   }
4769 + #line 4770 "conf_parser.c" /* yacc.c:1646  */
4770      break;
4771  
4772 <  case 283:
4773 < /* Line 1787 of yacc.c  */
4957 < #line 1730 "conf_parser.y"
4772 >  case 315:
4773 > #line 1811 "conf_parser.y" /* yacc.c:1646  */
4774      {
4775 <  if (conf_parser_ctx.pass == 2)
4776 <  {
4777 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4778 <    MyFree(yy_conf->name);
4779 <    DupString(yy_conf->name, yylval.string);
4964 <  }
4775 >  if (conf_parser_ctx.pass != 2)
4776 >    break;
4777 >
4778 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4779 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4780   }
4781 + #line 4782 "conf_parser.c" /* yacc.c:1646  */
4782      break;
4783  
4784 <  case 284:
4785 < /* Line 1787 of yacc.c  */
4970 < #line 1740 "conf_parser.y"
4784 >  case 316:
4785 > #line 1820 "conf_parser.y" /* yacc.c:1646  */
4786      {
4787 <  if (conf_parser_ctx.pass == 2)
4788 <  {
4789 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4790 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
4791 <  }
4787 >  if (conf_parser_ctx.pass != 2)
4788 >    break;
4789 >
4790 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4791 >  block_state.port.value = (yyvsp[-1].number);
4792   }
4793 + #line 4794 "conf_parser.c" /* yacc.c:1646  */
4794      break;
4795  
4796 <  case 285:
4797 < /* Line 1787 of yacc.c  */
4982 < #line 1753 "conf_parser.y"
4796 >  case 317:
4797 > #line 1833 "conf_parser.y" /* yacc.c:1646  */
4798      {
4799 <  if (conf_parser_ctx.pass == 2)
4800 <  {
4801 <    MyFree(resv_reason);
4802 <    resv_reason = NULL;
4803 <  }
4799 >  if (conf_parser_ctx.pass != 2)
4800 >    break;
4801 >
4802 >  reset_block_state();
4803 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4804   }
4805 + #line 4806 "conf_parser.c" /* yacc.c:1646  */
4806      break;
4807  
4808 <  case 286:
4809 < /* Line 1787 of yacc.c  */
4994 < #line 1760 "conf_parser.y"
4808 >  case 318:
4809 > #line 1840 "conf_parser.y" /* yacc.c:1646  */
4810      {
4811 <  if (conf_parser_ctx.pass == 2)
4812 <  {
4813 <    MyFree(resv_reason);
4814 <    resv_reason = NULL;
5000 <  }
4811 >  if (conf_parser_ctx.pass != 2)
4812 >    break;
4813 >
4814 >  create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4815   }
4816 + #line 4817 "conf_parser.c" /* yacc.c:1646  */
4817      break;
4818  
4819 <  case 293:
4820 < /* Line 1787 of yacc.c  */
5006 < #line 1772 "conf_parser.y"
4819 >  case 325:
4820 > #line 1851 "conf_parser.y" /* yacc.c:1646  */
4821      {
4822    if (conf_parser_ctx.pass == 2)
4823 <  {
5010 <    MyFree(resv_reason);
5011 <    DupString(resv_reason, yylval.string);
5012 <  }
4823 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4824   }
4825 + #line 4826 "conf_parser.c" /* yacc.c:1646  */
4826      break;
4827  
4828 <  case 294:
4829 < /* Line 1787 of yacc.c  */
5018 < #line 1781 "conf_parser.y"
4828 >  case 326:
4829 > #line 1857 "conf_parser.y" /* yacc.c:1646  */
4830      {
4831    if (conf_parser_ctx.pass == 2)
4832 <  {
5022 <    if (IsChanPrefix(*yylval.string))
5023 <    {
5024 <      char def_reason[] = "No reason";
5025 <
5026 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5027 <    }
5028 <  }
5029 <  /* ignore it for now.. but we really should make a warning if
5030 <   * its an erroneous name --fl_ */
4832 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4833   }
4834 + #line 4835 "conf_parser.c" /* yacc.c:1646  */
4835      break;
4836  
4837 <  case 295:
4838 < /* Line 1787 of yacc.c  */
5036 < #line 1796 "conf_parser.y"
4837 >  case 327:
4838 > #line 1863 "conf_parser.y" /* yacc.c:1646  */
4839      {
4840    if (conf_parser_ctx.pass == 2)
4841 <  {
5040 <    char def_reason[] = "No reason";
5041 <
5042 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5043 <  }
4841 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4842   }
4843 + #line 4844 "conf_parser.c" /* yacc.c:1646  */
4844      break;
4845  
4846 <  case 301:
4847 < /* Line 1787 of yacc.c  */
5049 < #line 1814 "conf_parser.y"
4846 >  case 333:
4847 > #line 1878 "conf_parser.y" /* yacc.c:1646  */
4848      {
4849 <  if (conf_parser_ctx.pass == 2)
4849 >  if (conf_parser_ctx.pass != 2)
4850 >    break;
4851 >
4852 >  if (valid_servname(yylval.string))
4853    {
4854 <    if (valid_servname(yylval.string))
4855 <    {
5055 <      yy_conf = make_conf_item(SERVICE_TYPE);
5056 <      DupString(yy_conf->name, yylval.string);
5057 <    }
4854 >    struct MaskItem *conf = conf_make(CONF_SERVICE);
4855 >    conf->name = xstrdup(yylval.string);
4856    }
4857   }
4858 + #line 4859 "conf_parser.c" /* yacc.c:1646  */
4859      break;
4860  
4861 <  case 302:
4862 < /* Line 1787 of yacc.c  */
5064 < #line 1829 "conf_parser.y"
4861 >  case 334:
4862 > #line 1893 "conf_parser.y" /* yacc.c:1646  */
4863      {
4864 <  if (conf_parser_ctx.pass == 2)
4865 <  {
4866 <    yy_conf = make_conf_item(ULINE_TYPE);
4867 <    yy_match_item = map_to_conf(yy_conf);
4868 <    yy_match_item->action = SHARED_ALL;
4869 <  }
4864 >  if (conf_parser_ctx.pass != 2)
4865 >    break;
4866 >
4867 >  reset_block_state();
4868 >
4869 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4870 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
4871 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4872 >  block_state.flags.value = SHARED_ALL;
4873   }
4874 + #line 4875 "conf_parser.c" /* yacc.c:1646  */
4875      break;
4876  
4877 <  case 303:
4878 < /* Line 1787 of yacc.c  */
5077 < #line 1837 "conf_parser.y"
4877 >  case 335:
4878 > #line 1904 "conf_parser.y" /* yacc.c:1646  */
4879      {
4880 <  if (conf_parser_ctx.pass == 2)
4881 <  {
4882 <    yy_conf = NULL;
4883 <  }
4880 >  struct MaskItem *conf = NULL;
4881 >
4882 >  if (conf_parser_ctx.pass != 2)
4883 >    break;
4884 >
4885 >  conf = conf_make(CONF_ULINE);
4886 >  conf->flags = block_state.flags.value;
4887 >  conf->name = xstrdup(block_state.name.buf);
4888 >  conf->user = xstrdup(block_state.user.buf);
4889 >  conf->host = xstrdup(block_state.host.buf);
4890   }
4891 + #line 4892 "conf_parser.c" /* yacc.c:1646  */
4892      break;
4893  
4894 <  case 310:
4895 < /* Line 1787 of yacc.c  */
5088 < #line 1848 "conf_parser.y"
4894 >  case 342:
4895 > #line 1921 "conf_parser.y" /* yacc.c:1646  */
4896      {
4897    if (conf_parser_ctx.pass == 2)
4898 <  {
5092 <    MyFree(yy_conf->name);
5093 <    DupString(yy_conf->name, yylval.string);
5094 <  }
4898 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4899   }
4900 + #line 4901 "conf_parser.c" /* yacc.c:1646  */
4901      break;
4902  
4903 <  case 311:
4904 < /* Line 1787 of yacc.c  */
5100 < #line 1857 "conf_parser.y"
4903 >  case 343:
4904 > #line 1927 "conf_parser.y" /* yacc.c:1646  */
4905      {
4906    if (conf_parser_ctx.pass == 2)
4907    {
# Line 5105 | Line 4909 | yyreduce:
4909  
4910      nuh.nuhmask  = yylval.string;
4911      nuh.nickptr  = NULL;
4912 <    nuh.userptr  = userbuf;
4913 <    nuh.hostptr  = hostbuf;
4912 >    nuh.userptr  = block_state.user.buf;
4913 >    nuh.hostptr  = block_state.host.buf;
4914  
4915      nuh.nicksize = 0;
4916 <    nuh.usersize = sizeof(userbuf);
4917 <    nuh.hostsize = sizeof(hostbuf);
4916 >    nuh.usersize = sizeof(block_state.user.buf);
4917 >    nuh.hostsize = sizeof(block_state.host.buf);
4918  
4919      split_nuh(&nuh);
5116
5117    DupString(yy_match_item->user, userbuf);
5118    DupString(yy_match_item->host, hostbuf);
4920    }
4921   }
4922 + #line 4923 "conf_parser.c" /* yacc.c:1646  */
4923      break;
4924  
4925 <  case 312:
4926 < /* Line 1787 of yacc.c  */
5125 < #line 1879 "conf_parser.y"
4925 >  case 344:
4926 > #line 1946 "conf_parser.y" /* yacc.c:1646  */
4927      {
4928    if (conf_parser_ctx.pass == 2)
4929 <    yy_match_item->action = 0;
4929 >    block_state.flags.value = 0;
4930   }
4931 + #line 4932 "conf_parser.c" /* yacc.c:1646  */
4932      break;
4933  
4934 <  case 316:
4935 < /* Line 1787 of yacc.c  */
5134 < #line 1886 "conf_parser.y"
4934 >  case 348:
4935 > #line 1953 "conf_parser.y" /* yacc.c:1646  */
4936      {
4937    if (conf_parser_ctx.pass == 2)
4938 <    yy_match_item->action |= SHARED_KLINE;
4938 >    block_state.flags.value |= SHARED_KLINE;
4939   }
4940 + #line 4941 "conf_parser.c" /* yacc.c:1646  */
4941      break;
4942  
4943 <  case 317:
4944 < /* Line 1787 of yacc.c  */
5143 < #line 1890 "conf_parser.y"
4943 >  case 349:
4944 > #line 1957 "conf_parser.y" /* yacc.c:1646  */
4945      {
4946    if (conf_parser_ctx.pass == 2)
4947 <    yy_match_item->action |= SHARED_UNKLINE;
4947 >    block_state.flags.value |= SHARED_UNKLINE;
4948   }
4949 + #line 4950 "conf_parser.c" /* yacc.c:1646  */
4950      break;
4951  
4952 <  case 318:
4953 < /* Line 1787 of yacc.c  */
5152 < #line 1894 "conf_parser.y"
4952 >  case 350:
4953 > #line 1961 "conf_parser.y" /* yacc.c:1646  */
4954      {
4955    if (conf_parser_ctx.pass == 2)
4956 <    yy_match_item->action |= SHARED_DLINE;
4956 >    block_state.flags.value |= SHARED_DLINE;
4957   }
4958 + #line 4959 "conf_parser.c" /* yacc.c:1646  */
4959      break;
4960  
4961 <  case 319:
4962 < /* Line 1787 of yacc.c  */
5161 < #line 1898 "conf_parser.y"
4961 >  case 351:
4962 > #line 1965 "conf_parser.y" /* yacc.c:1646  */
4963      {
4964    if (conf_parser_ctx.pass == 2)
4965 <    yy_match_item->action |= SHARED_UNDLINE;
4965 >    block_state.flags.value |= SHARED_UNDLINE;
4966   }
4967 + #line 4968 "conf_parser.c" /* yacc.c:1646  */
4968      break;
4969  
4970 <  case 320:
4971 < /* Line 1787 of yacc.c  */
5170 < #line 1902 "conf_parser.y"
4970 >  case 352:
4971 > #line 1969 "conf_parser.y" /* yacc.c:1646  */
4972      {
4973    if (conf_parser_ctx.pass == 2)
4974 <    yy_match_item->action |= SHARED_XLINE;
4974 >    block_state.flags.value |= SHARED_XLINE;
4975   }
4976 + #line 4977 "conf_parser.c" /* yacc.c:1646  */
4977      break;
4978  
4979 <  case 321:
4980 < /* Line 1787 of yacc.c  */
5179 < #line 1906 "conf_parser.y"
4979 >  case 353:
4980 > #line 1973 "conf_parser.y" /* yacc.c:1646  */
4981      {
4982    if (conf_parser_ctx.pass == 2)
4983 <    yy_match_item->action |= SHARED_UNXLINE;
4983 >    block_state.flags.value |= SHARED_UNXLINE;
4984   }
4985 + #line 4986 "conf_parser.c" /* yacc.c:1646  */
4986      break;
4987  
4988 <  case 322:
4989 < /* Line 1787 of yacc.c  */
5188 < #line 1910 "conf_parser.y"
4988 >  case 354:
4989 > #line 1977 "conf_parser.y" /* yacc.c:1646  */
4990      {
4991    if (conf_parser_ctx.pass == 2)
4992 <    yy_match_item->action |= SHARED_RESV;
4992 >    block_state.flags.value |= SHARED_RESV;
4993   }
4994 + #line 4995 "conf_parser.c" /* yacc.c:1646  */
4995      break;
4996  
4997 <  case 323:
4998 < /* Line 1787 of yacc.c  */
5197 < #line 1914 "conf_parser.y"
4997 >  case 355:
4998 > #line 1981 "conf_parser.y" /* yacc.c:1646  */
4999      {
5000    if (conf_parser_ctx.pass == 2)
5001 <    yy_match_item->action |= SHARED_UNRESV;
5001 >    block_state.flags.value |= SHARED_UNRESV;
5002   }
5003 + #line 5004 "conf_parser.c" /* yacc.c:1646  */
5004      break;
5005  
5006 <  case 324:
5007 < /* Line 1787 of yacc.c  */
5206 < #line 1918 "conf_parser.y"
5006 >  case 356:
5007 > #line 1985 "conf_parser.y" /* yacc.c:1646  */
5008      {
5009    if (conf_parser_ctx.pass == 2)
5010 <    yy_match_item->action |= SHARED_LOCOPS;
5010 >    block_state.flags.value |= SHARED_LOCOPS;
5011   }
5012 + #line 5013 "conf_parser.c" /* yacc.c:1646  */
5013      break;
5014  
5015 <  case 325:
5016 < /* Line 1787 of yacc.c  */
5215 < #line 1922 "conf_parser.y"
5015 >  case 357:
5016 > #line 1989 "conf_parser.y" /* yacc.c:1646  */
5017      {
5018    if (conf_parser_ctx.pass == 2)
5019 <    yy_match_item->action = SHARED_ALL;
5019 >    block_state.flags.value = SHARED_ALL;
5020   }
5021 + #line 5022 "conf_parser.c" /* yacc.c:1646  */
5022      break;
5023  
5024 <  case 326:
5025 < /* Line 1787 of yacc.c  */
5224 < #line 1931 "conf_parser.y"
5024 >  case 358:
5025 > #line 1998 "conf_parser.y" /* yacc.c:1646  */
5026      {
5027 <  if (conf_parser_ctx.pass == 2)
5028 <  {
5029 <    yy_conf = make_conf_item(CLUSTER_TYPE);
5030 <    yy_conf->flags = SHARED_ALL;
5031 <  }
5027 >  if (conf_parser_ctx.pass != 2)
5028 >    break;
5029 >
5030 >  reset_block_state();
5031 >
5032 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5033 >  block_state.flags.value = SHARED_ALL;
5034   }
5035 + #line 5036 "conf_parser.c" /* yacc.c:1646  */
5036      break;
5037  
5038 <  case 327:
5039 < /* Line 1787 of yacc.c  */
5236 < #line 1938 "conf_parser.y"
5038 >  case 359:
5039 > #line 2007 "conf_parser.y" /* yacc.c:1646  */
5040      {
5041 <  if (conf_parser_ctx.pass == 2)
5042 <  {
5043 <    if (yy_conf->name == NULL)
5044 <      DupString(yy_conf->name, "*");
5045 <    yy_conf = NULL;
5046 <  }
5041 >  struct MaskItem *conf = NULL;
5042 >
5043 >  if (conf_parser_ctx.pass != 2)
5044 >    break;
5045 >
5046 >  conf = conf_make(CONF_CLUSTER);
5047 >  conf->flags = block_state.flags.value;
5048 >  conf->name = xstrdup(block_state.name.buf);
5049   }
5050 + #line 5051 "conf_parser.c" /* yacc.c:1646  */
5051      break;
5052  
5053 <  case 333:
5054 < /* Line 1787 of yacc.c  */
5249 < #line 1951 "conf_parser.y"
5053 >  case 365:
5054 > #line 2022 "conf_parser.y" /* yacc.c:1646  */
5055      {
5056    if (conf_parser_ctx.pass == 2)
5057 <    DupString(yy_conf->name, yylval.string);
5057 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5058   }
5059 + #line 5060 "conf_parser.c" /* yacc.c:1646  */
5060      break;
5061  
5062 <  case 334:
5063 < /* Line 1787 of yacc.c  */
5258 < #line 1957 "conf_parser.y"
5062 >  case 366:
5063 > #line 2028 "conf_parser.y" /* yacc.c:1646  */
5064      {
5065    if (conf_parser_ctx.pass == 2)
5066 <    yy_conf->flags = 0;
5066 >    block_state.flags.value = 0;
5067   }
5068 + #line 5069 "conf_parser.c" /* yacc.c:1646  */
5069      break;
5070  
5071 <  case 338:
5072 < /* Line 1787 of yacc.c  */
5267 < #line 1964 "conf_parser.y"
5071 >  case 370:
5072 > #line 2035 "conf_parser.y" /* yacc.c:1646  */
5073      {
5074    if (conf_parser_ctx.pass == 2)
5075 <    yy_conf->flags |= SHARED_KLINE;
5075 >    block_state.flags.value |= SHARED_KLINE;
5076   }
5077 + #line 5078 "conf_parser.c" /* yacc.c:1646  */
5078      break;
5079  
5080 <  case 339:
5081 < /* Line 1787 of yacc.c  */
5276 < #line 1968 "conf_parser.y"
5080 >  case 371:
5081 > #line 2039 "conf_parser.y" /* yacc.c:1646  */
5082      {
5083    if (conf_parser_ctx.pass == 2)
5084 <    yy_conf->flags |= SHARED_UNKLINE;
5084 >    block_state.flags.value |= SHARED_UNKLINE;
5085   }
5086 + #line 5087 "conf_parser.c" /* yacc.c:1646  */
5087      break;
5088  
5089 <  case 340:
5090 < /* Line 1787 of yacc.c  */
5285 < #line 1972 "conf_parser.y"
5089 >  case 372:
5090 > #line 2043 "conf_parser.y" /* yacc.c:1646  */
5091      {
5092    if (conf_parser_ctx.pass == 2)
5093 <    yy_conf->flags |= SHARED_DLINE;
5093 >    block_state.flags.value |= SHARED_DLINE;
5094   }
5095 + #line 5096 "conf_parser.c" /* yacc.c:1646  */
5096      break;
5097  
5098 <  case 341:
5099 < /* Line 1787 of yacc.c  */
5294 < #line 1976 "conf_parser.y"
5098 >  case 373:
5099 > #line 2047 "conf_parser.y" /* yacc.c:1646  */
5100      {
5101    if (conf_parser_ctx.pass == 2)
5102 <    yy_conf->flags |= SHARED_UNDLINE;
5102 >    block_state.flags.value |= SHARED_UNDLINE;
5103   }
5104 + #line 5105 "conf_parser.c" /* yacc.c:1646  */
5105      break;
5106  
5107 <  case 342:
5108 < /* Line 1787 of yacc.c  */
5303 < #line 1980 "conf_parser.y"
5107 >  case 374:
5108 > #line 2051 "conf_parser.y" /* yacc.c:1646  */
5109      {
5110    if (conf_parser_ctx.pass == 2)
5111 <    yy_conf->flags |= SHARED_XLINE;
5111 >    block_state.flags.value |= SHARED_XLINE;
5112   }
5113 + #line 5114 "conf_parser.c" /* yacc.c:1646  */
5114      break;
5115  
5116 <  case 343:
5117 < /* Line 1787 of yacc.c  */
5312 < #line 1984 "conf_parser.y"
5116 >  case 375:
5117 > #line 2055 "conf_parser.y" /* yacc.c:1646  */
5118      {
5119    if (conf_parser_ctx.pass == 2)
5120 <    yy_conf->flags |= SHARED_UNXLINE;
5120 >    block_state.flags.value |= SHARED_UNXLINE;
5121   }
5122 + #line 5123 "conf_parser.c" /* yacc.c:1646  */
5123      break;
5124  
5125 <  case 344:
5126 < /* Line 1787 of yacc.c  */
5321 < #line 1988 "conf_parser.y"
5125 >  case 376:
5126 > #line 2059 "conf_parser.y" /* yacc.c:1646  */
5127      {
5128    if (conf_parser_ctx.pass == 2)
5129 <    yy_conf->flags |= SHARED_RESV;
5129 >    block_state.flags.value |= SHARED_RESV;
5130   }
5131 + #line 5132 "conf_parser.c" /* yacc.c:1646  */
5132      break;
5133  
5134 <  case 345:
5135 < /* Line 1787 of yacc.c  */
5330 < #line 1992 "conf_parser.y"
5134 >  case 377:
5135 > #line 2063 "conf_parser.y" /* yacc.c:1646  */
5136      {
5137    if (conf_parser_ctx.pass == 2)
5138 <    yy_conf->flags |= SHARED_UNRESV;
5138 >    block_state.flags.value |= SHARED_UNRESV;
5139   }
5140 + #line 5141 "conf_parser.c" /* yacc.c:1646  */
5141      break;
5142  
5143 <  case 346:
5144 < /* Line 1787 of yacc.c  */
5339 < #line 1996 "conf_parser.y"
5143 >  case 378:
5144 > #line 2067 "conf_parser.y" /* yacc.c:1646  */
5145      {
5146    if (conf_parser_ctx.pass == 2)
5147 <    yy_conf->flags |= SHARED_LOCOPS;
5147 >    block_state.flags.value |= SHARED_LOCOPS;
5148   }
5149 + #line 5150 "conf_parser.c" /* yacc.c:1646  */
5150      break;
5151  
5152 <  case 347:
5153 < /* Line 1787 of yacc.c  */
5348 < #line 2000 "conf_parser.y"
5152 >  case 379:
5153 > #line 2071 "conf_parser.y" /* yacc.c:1646  */
5154      {
5155    if (conf_parser_ctx.pass == 2)
5156 <    yy_conf->flags = SHARED_ALL;
5156 >    block_state.flags.value = SHARED_ALL;
5157   }
5158 + #line 5159 "conf_parser.c" /* yacc.c:1646  */
5159      break;
5160  
5161 <  case 348:
5162 < /* Line 1787 of yacc.c  */
5357 < #line 2009 "conf_parser.y"
5161 >  case 380:
5162 > #line 2080 "conf_parser.y" /* yacc.c:1646  */
5163      {
5359  if (conf_parser_ctx.pass == 2)
5360  {
5361    yy_conf = make_conf_item(SERVER_TYPE);
5362    yy_aconf = map_to_conf(yy_conf);
5164  
5165 <    /* defaults */
5166 <    yy_aconf->port = PORTNUM;
5167 <  }
5168 <  else
5169 <  {
5170 <    MyFree(class_name);
5370 <    class_name = NULL;
5371 <  }
5165 >  if (conf_parser_ctx.pass != 2)
5166 >    break;
5167 >
5168 >  reset_block_state();
5169 >  block_state.aftype.value = AF_INET;
5170 >  block_state.port.value = PORTNUM;
5171   }
5172 + #line 5173 "conf_parser.c" /* yacc.c:1646  */
5173      break;
5174  
5175 <  case 349:
5176 < /* Line 1787 of yacc.c  */
5377 < #line 2024 "conf_parser.y"
5175 >  case 381:
5176 > #line 2089 "conf_parser.y" /* yacc.c:1646  */
5177      {
5178 <  if (conf_parser_ctx.pass == 2)
5178 >  struct MaskItem *conf = NULL;
5179 >  struct addrinfo hints, *res;
5180 >
5181 >  if (conf_parser_ctx.pass != 2)
5182 >    break;
5183 >
5184 >  if (!block_state.name.buf[0] ||
5185 >      !block_state.host.buf[0])
5186 >    break;
5187 >
5188 >  if (!block_state.rpass.buf[0] ||
5189 >      !block_state.spass.buf[0])
5190 >    break;
5191 >
5192 >  if (has_wildcards(block_state.name.buf) ||
5193 >      has_wildcards(block_state.host.buf))
5194 >    break;
5195 >
5196 >  conf = conf_make(CONF_SERVER);
5197 >  conf->port = block_state.port.value;
5198 >  conf->flags = block_state.flags.value;
5199 >  conf->aftype = block_state.aftype.value;
5200 >  conf->host = xstrdup(block_state.host.buf);
5201 >  conf->name = xstrdup(block_state.name.buf);
5202 >  conf->passwd = xstrdup(block_state.rpass.buf);
5203 >  conf->spasswd = xstrdup(block_state.spass.buf);
5204 >
5205 >  if (block_state.cert.buf[0])
5206 >    conf->certfp = xstrdup(block_state.cert.buf);
5207 >
5208 >  if (block_state.ciph.buf[0])
5209 >    conf->cipher_list = xstrdup(block_state.ciph.buf);
5210 >
5211 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5212 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5213 >
5214 >  if (block_state.bind.buf[0])
5215    {
5216 <    if (yy_aconf->host && yy_aconf->passwd && yy_aconf->spasswd)
5217 <    {
5218 <      if (conf_add_server(yy_conf, class_name) == -1)
5219 <        delete_conf_item(yy_conf);
5220 <    }
5216 >    memset(&hints, 0, sizeof(hints));
5217 >
5218 >    hints.ai_family   = AF_UNSPEC;
5219 >    hints.ai_socktype = SOCK_STREAM;
5220 >    hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5221 >
5222 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5223 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5224      else
5225      {
5226 <      if (yy_conf->name != NULL)
5389 <      {
5390 <        if (yy_aconf->host == NULL)
5391 <          yyerror("Ignoring connect block -- missing host");
5392 <        else if (!yy_aconf->passwd || !yy_aconf->spasswd)
5393 <          yyerror("Ignoring connect block -- missing password");
5394 <      }
5226 >      assert(res);
5227  
5228 <      /* XXX
5229 <       * This fixes a try_connections() core (caused by invalid class_ptr
5230 <       * pointers) reported by metalrock. That's an ugly fix, but there
5231 <       * is currently no better way. The entire config subsystem needs an
5400 <       * rewrite ASAP. make_conf_item() shouldn't really add things onto
5401 <       * a doubly linked list immediately without any sanity checks!  -Michael
5402 <       */
5403 <      delete_conf_item(yy_conf);
5228 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5229 >      conf->bind.ss.ss_family = res->ai_family;
5230 >      conf->bind.ss_len = res->ai_addrlen;
5231 >      freeaddrinfo(res);
5232      }
5405
5406    MyFree(class_name);
5407    class_name = NULL;
5408    yy_conf = NULL;
5409    yy_aconf = NULL;
5233    }
5234 +
5235 +  conf_add_class_to_conf(conf, block_state.class.buf);
5236 +  lookup_confhost(conf);
5237   }
5238 + #line 5239 "conf_parser.c" /* yacc.c:1646  */
5239      break;
5240  
5241 <  case 366:
5242 < /* Line 1787 of yacc.c  */
5416 < #line 2068 "conf_parser.y"
5241 >  case 399:
5242 > #line 2169 "conf_parser.y" /* yacc.c:1646  */
5243      {
5244    if (conf_parser_ctx.pass == 2)
5245 <  {
5420 <    MyFree(yy_conf->name);
5421 <    DupString(yy_conf->name, yylval.string);
5422 <  }
5245 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5246   }
5247 + #line 5248 "conf_parser.c" /* yacc.c:1646  */
5248      break;
5249  
5250 <  case 367:
5251 < /* Line 1787 of yacc.c  */
5428 < #line 2077 "conf_parser.y"
5250 >  case 400:
5251 > #line 2175 "conf_parser.y" /* yacc.c:1646  */
5252      {
5253    if (conf_parser_ctx.pass == 2)
5254 <  {
5432 <    MyFree(yy_aconf->host);
5433 <    DupString(yy_aconf->host, yylval.string);
5434 <  }
5254 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5255   }
5256 + #line 5257 "conf_parser.c" /* yacc.c:1646  */
5257      break;
5258  
5259 <  case 368:
5260 < /* Line 1787 of yacc.c  */
5440 < #line 2086 "conf_parser.y"
5259 >  case 401:
5260 > #line 2181 "conf_parser.y" /* yacc.c:1646  */
5261      {
5262    if (conf_parser_ctx.pass == 2)
5263 <  {
5264 <    struct addrinfo hints, *res;
5265 <
5266 <    memset(&hints, 0, sizeof(hints));
5447 <
5448 <    hints.ai_family   = AF_UNSPEC;
5449 <    hints.ai_socktype = SOCK_STREAM;
5450 <    hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5263 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5264 > }
5265 > #line 5266 "conf_parser.c" /* yacc.c:1646  */
5266 >    break;
5267  
5268 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
5269 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
5454 <    else
5268 >  case 402:
5269 > #line 2187 "conf_parser.y" /* yacc.c:1646  */
5270      {
5271 <      assert(res != NULL);
5271 >  if (conf_parser_ctx.pass != 2)
5272 >    break;
5273  
5274 <      memcpy(&yy_aconf->bind, res->ai_addr, res->ai_addrlen);
5275 <      yy_aconf->bind.ss.ss_family = res->ai_family;
5276 <      yy_aconf->bind.ss_len = res->ai_addrlen;
5277 <      freeaddrinfo(res);
5278 <    }
5279 <  }
5274 >  if ((yyvsp[-1].string)[0] == ':')
5275 >    conf_error_report("Server passwords cannot begin with a colon");
5276 >  else if (strchr((yyvsp[-1].string), ' '))
5277 >    conf_error_report("Server passwords cannot contain spaces");
5278 >  else
5279 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5280   }
5281 + #line 5282 "conf_parser.c" /* yacc.c:1646  */
5282      break;
5283  
5284 <  case 369:
5285 < /* Line 1787 of yacc.c  */
5469 < #line 2112 "conf_parser.y"
5284 >  case 403:
5285 > #line 2200 "conf_parser.y" /* yacc.c:1646  */
5286      {
5287 <  if (conf_parser_ctx.pass == 2)
5288 <  {
5473 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5474 <      yyerror("Server passwords cannot begin with a colon");
5475 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5476 <      yyerror("Server passwords cannot contain spaces");
5477 <    else {
5478 <      if (yy_aconf->spasswd != NULL)
5479 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
5287 >  if (conf_parser_ctx.pass != 2)
5288 >    break;
5289  
5290 <      MyFree(yy_aconf->spasswd);
5291 <      DupString(yy_aconf->spasswd, yylval.string);
5292 <    }
5293 <  }
5290 >  if ((yyvsp[-1].string)[0] == ':')
5291 >    conf_error_report("Server passwords cannot begin with a colon");
5292 >  else if (strchr((yyvsp[-1].string), ' '))
5293 >    conf_error_report("Server passwords cannot contain spaces");
5294 >  else
5295 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5296   }
5297 + #line 5298 "conf_parser.c" /* yacc.c:1646  */
5298      break;
5299  
5300 <  case 370:
5301 < /* Line 1787 of yacc.c  */
5490 < #line 2130 "conf_parser.y"
5300 >  case 404:
5301 > #line 2213 "conf_parser.y" /* yacc.c:1646  */
5302      {
5303    if (conf_parser_ctx.pass == 2)
5304 <  {
5494 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5495 <      yyerror("Server passwords cannot begin with a colon");
5496 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5497 <      yyerror("Server passwords cannot contain spaces");
5498 <    else {
5499 <      if (yy_aconf->passwd != NULL)
5500 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5501 <
5502 <      MyFree(yy_aconf->passwd);
5503 <      DupString(yy_aconf->passwd, yylval.string);
5504 <    }
5505 <  }
5304 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5305   }
5306 + #line 5307 "conf_parser.c" /* yacc.c:1646  */
5307      break;
5308  
5309 <  case 371:
5310 < /* Line 1787 of yacc.c  */
5511 < #line 2148 "conf_parser.y"
5309 >  case 405:
5310 > #line 2219 "conf_parser.y" /* yacc.c:1646  */
5311      {
5312    if (conf_parser_ctx.pass == 2)
5313 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5313 >    block_state.port.value = (yyvsp[-1].number);
5314   }
5315 + #line 5316 "conf_parser.c" /* yacc.c:1646  */
5316      break;
5317  
5318 <  case 372:
5319 < /* Line 1787 of yacc.c  */
5520 < #line 2154 "conf_parser.y"
5318 >  case 406:
5319 > #line 2225 "conf_parser.y" /* yacc.c:1646  */
5320      {
5321    if (conf_parser_ctx.pass == 2)
5322 <    yy_aconf->aftype = AF_INET;
5322 >    block_state.aftype.value = AF_INET;
5323   }
5324 + #line 5325 "conf_parser.c" /* yacc.c:1646  */
5325      break;
5326  
5327 <  case 373:
5328 < /* Line 1787 of yacc.c  */
5529 < #line 2158 "conf_parser.y"
5327 >  case 407:
5328 > #line 2229 "conf_parser.y" /* yacc.c:1646  */
5329      {
5330   #ifdef IPV6
5331    if (conf_parser_ctx.pass == 2)
5332 <    yy_aconf->aftype = AF_INET6;
5332 >    block_state.aftype.value = AF_INET6;
5333   #endif
5334   }
5335 + #line 5336 "conf_parser.c" /* yacc.c:1646  */
5336      break;
5337  
5338 <  case 374:
5339 < /* Line 1787 of yacc.c  */
5540 < #line 2166 "conf_parser.y"
5338 >  case 408:
5339 > #line 2237 "conf_parser.y" /* yacc.c:1646  */
5340      {
5341 +  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5342   }
5343 + #line 5344 "conf_parser.c" /* yacc.c:1646  */
5344      break;
5345  
5346 <  case 378:
5347 < /* Line 1787 of yacc.c  */
5547 < #line 2171 "conf_parser.y"
5346 >  case 412:
5347 > #line 2243 "conf_parser.y" /* yacc.c:1646  */
5348      {
5349    if (conf_parser_ctx.pass == 2)
5350 <    SetConfAllowAutoConn(yy_aconf);
5350 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5351   }
5352 + #line 5353 "conf_parser.c" /* yacc.c:1646  */
5353      break;
5354  
5355 <  case 379:
5356 < /* Line 1787 of yacc.c  */
5556 < #line 2175 "conf_parser.y"
5355 >  case 413:
5356 > #line 2247 "conf_parser.y" /* yacc.c:1646  */
5357      {
5358    if (conf_parser_ctx.pass == 2)
5359 <    SetConfSSL(yy_aconf);
5359 >    block_state.flags.value |= CONF_FLAGS_SSL;
5360   }
5361 + #line 5362 "conf_parser.c" /* yacc.c:1646  */
5362      break;
5363  
5364 <  case 380:
5365 < /* Line 1787 of yacc.c  */
5565 < #line 2181 "conf_parser.y"
5364 >  case 414:
5365 > #line 2253 "conf_parser.y" /* yacc.c:1646  */
5366      {
5367    if (conf_parser_ctx.pass == 2)
5368    {
5369      if (yylval.number)
5370 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
5370 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5371      else
5372 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
5372 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5373    }
5374   }
5375 + #line 5376 "conf_parser.c" /* yacc.c:1646  */
5376      break;
5377  
5378 <  case 381:
5379 < /* Line 1787 of yacc.c  */
5579 < #line 2192 "conf_parser.y"
5378 >  case 415:
5379 > #line 2264 "conf_parser.y" /* yacc.c:1646  */
5380      {
5381    if (conf_parser_ctx.pass == 2)
5382 <  {
5583 <    char *mask;
5584 <
5585 <    DupString(mask, yylval.string);
5586 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->hub_list);
5587 <  }
5382 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5383   }
5384 + #line 5385 "conf_parser.c" /* yacc.c:1646  */
5385      break;
5386  
5387 <  case 382:
5388 < /* Line 1787 of yacc.c  */
5593 < #line 2203 "conf_parser.y"
5387 >  case 416:
5388 > #line 2270 "conf_parser.y" /* yacc.c:1646  */
5389      {
5390    if (conf_parser_ctx.pass == 2)
5391 <  {
5597 <    char *mask;
5598 <
5599 <    DupString(mask, yylval.string);
5600 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->leaf_list);
5601 <  }
5391 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5392   }
5393 + #line 5394 "conf_parser.c" /* yacc.c:1646  */
5394      break;
5395  
5396 <  case 383:
5397 < /* Line 1787 of yacc.c  */
5607 < #line 2214 "conf_parser.y"
5396 >  case 417:
5397 > #line 2276 "conf_parser.y" /* yacc.c:1646  */
5398      {
5399    if (conf_parser_ctx.pass == 2)
5400 <  {
5611 <    MyFree(class_name);
5612 <    DupString(class_name, yylval.string);
5613 <  }
5400 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5401   }
5402 + #line 5403 "conf_parser.c" /* yacc.c:1646  */
5403      break;
5404  
5405 <  case 384:
5406 < /* Line 1787 of yacc.c  */
5619 < #line 2223 "conf_parser.y"
5405 >  case 418:
5406 > #line 2282 "conf_parser.y" /* yacc.c:1646  */
5407      {
5408   #ifdef HAVE_LIBCRYPTO
5409    if (conf_parser_ctx.pass == 2)
5410 <  {
5624 <    MyFree(yy_aconf->cipher_list);
5625 <    DupString(yy_aconf->cipher_list, yylval.string);
5626 <  }
5410 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5411   #else
5412    if (conf_parser_ctx.pass == 2)
5413 <    yyerror("Ignoring connect::ciphers -- no OpenSSL support");
5413 >    conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5414   #endif
5415   }
5416 + #line 5417 "conf_parser.c" /* yacc.c:1646  */
5417      break;
5418  
5419 <  case 385:
5420 < /* Line 1787 of yacc.c  */
5636 < #line 2241 "conf_parser.y"
5419 >  case 419:
5420 > #line 2297 "conf_parser.y" /* yacc.c:1646  */
5421      {
5422    if (conf_parser_ctx.pass == 2)
5423 <  {
5640 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
5641 <    regex_ban = 0;
5642 <  }
5423 >    reset_block_state();
5424   }
5425 + #line 5426 "conf_parser.c" /* yacc.c:1646  */
5426      break;
5427  
5428 <  case 386:
5429 < /* Line 1787 of yacc.c  */
5648 < #line 2248 "conf_parser.y"
5649 <    {
5650 <  if (conf_parser_ctx.pass == 2)
5651 <  {
5652 <    if (userbuf[0] && hostbuf[0])
5428 >  case 420:
5429 > #line 2301 "conf_parser.y" /* yacc.c:1646  */
5430      {
5431 <      if (regex_ban)
5655 <      {
5656 < #ifdef HAVE_LIBPCRE
5657 <        void *exp_user = NULL;
5658 <        void *exp_host = NULL;
5659 <        const char *errptr = NULL;
5660 <
5661 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
5662 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
5663 <        {
5664 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
5665 <               errptr);
5666 <          break;
5667 <        }
5668 <
5669 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
5670 <        yy_aconf->regexuser = exp_user;
5671 <        yy_aconf->regexhost = exp_host;
5431 >  struct MaskItem *conf = NULL;
5432  
5433 <        DupString(yy_aconf->user, userbuf);
5674 <        DupString(yy_aconf->host, hostbuf);
5675 <
5676 <        if (reasonbuf[0])
5677 <          DupString(yy_aconf->reason, reasonbuf);
5678 <        else
5679 <          DupString(yy_aconf->reason, "No reason");
5680 < #else
5681 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
5682 <        break;
5683 < #endif
5684 <      }
5685 <      else
5686 <      {
5687 <        find_and_delete_temporary(userbuf, hostbuf, CONF_KLINE);
5688 <
5689 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
5690 <
5691 <        DupString(yy_aconf->user, userbuf);
5692 <        DupString(yy_aconf->host, hostbuf);
5693 <
5694 <        if (reasonbuf[0])
5695 <          DupString(yy_aconf->reason, reasonbuf);
5696 <        else
5697 <          DupString(yy_aconf->reason, "No reason");
5698 <        add_conf_by_address(CONF_KLINE, yy_aconf);
5699 <      }
5700 <    }
5701 <
5702 <    yy_aconf = NULL;
5703 <  }
5704 < }
5433 >  if (conf_parser_ctx.pass != 2)
5434      break;
5435  
5436 <  case 387:
5437 < /* Line 1787 of yacc.c  */
5709 < #line 2306 "conf_parser.y"
5710 <    {
5711 < }
5436 >  if (!block_state.user.buf[0] ||
5437 >      !block_state.host.buf[0])
5438      break;
5439  
5440 <  case 391:
5441 < /* Line 1787 of yacc.c  */
5442 < #line 2311 "conf_parser.y"
5443 <    {
5444 <  if (conf_parser_ctx.pass == 2)
5445 <    regex_ban = 1;
5440 >  conf = conf_make(CONF_KLINE);
5441 >  conf->user = xstrdup(block_state.user.buf);
5442 >  conf->host = xstrdup(block_state.host.buf);
5443 >
5444 >  if (block_state.rpass.buf[0])
5445 >    conf->reason = xstrdup(block_state.rpass.buf);
5446 >  else
5447 >    conf->reason = xstrdup(CONF_NOREASON);
5448 >  add_conf_by_address(CONF_KLINE, conf);
5449   }
5450 + #line 5451 "conf_parser.c" /* yacc.c:1646  */
5451      break;
5452  
5453 <  case 398:
5454 < /* Line 1787 of yacc.c  */
5725 < #line 2320 "conf_parser.y"
5453 >  case 426:
5454 > #line 2326 "conf_parser.y" /* yacc.c:1646  */
5455      {
5456 +
5457    if (conf_parser_ctx.pass == 2)
5458    {
5459      struct split_nuh_item nuh;
5460  
5461      nuh.nuhmask  = yylval.string;
5462      nuh.nickptr  = NULL;
5463 <    nuh.userptr  = userbuf;
5464 <    nuh.hostptr  = hostbuf;
5463 >    nuh.userptr  = block_state.user.buf;
5464 >    nuh.hostptr  = block_state.host.buf;
5465  
5466      nuh.nicksize = 0;
5467 <    nuh.usersize = sizeof(userbuf);
5468 <    nuh.hostsize = sizeof(hostbuf);
5467 >    nuh.usersize = sizeof(block_state.user.buf);
5468 >    nuh.hostsize = sizeof(block_state.host.buf);
5469  
5470      split_nuh(&nuh);
5471    }
5472   }
5473 + #line 5474 "conf_parser.c" /* yacc.c:1646  */
5474      break;
5475  
5476 <  case 399:
5477 < /* Line 1787 of yacc.c  */
5747 < #line 2339 "conf_parser.y"
5476 >  case 427:
5477 > #line 2346 "conf_parser.y" /* yacc.c:1646  */
5478      {
5479    if (conf_parser_ctx.pass == 2)
5480 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5480 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5481   }
5482 + #line 5483 "conf_parser.c" /* yacc.c:1646  */
5483      break;
5484  
5485 <  case 400:
5486 < /* Line 1787 of yacc.c  */
5756 < #line 2348 "conf_parser.y"
5485 >  case 428:
5486 > #line 2355 "conf_parser.y" /* yacc.c:1646  */
5487      {
5488    if (conf_parser_ctx.pass == 2)
5489 <    hostbuf[0] = reasonbuf[0] = '\0';
5489 >    reset_block_state();
5490   }
5491 + #line 5492 "conf_parser.c" /* yacc.c:1646  */
5492      break;
5493  
5494 <  case 401:
5495 < /* Line 1787 of yacc.c  */
5765 < #line 2352 "conf_parser.y"
5766 <    {
5767 <  if (conf_parser_ctx.pass == 2)
5768 <  {
5769 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
5494 >  case 429:
5495 > #line 2359 "conf_parser.y" /* yacc.c:1646  */
5496      {
5497 <      find_and_delete_temporary(NULL, hostbuf, CONF_DLINE);
5497 >  struct MaskItem *conf = NULL;
5498  
5499 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
5500 <      DupString(yy_aconf->host, hostbuf);
5499 >  if (conf_parser_ctx.pass != 2)
5500 >    break;
5501  
5502 <      if (reasonbuf[0])
5503 <        DupString(yy_aconf->reason, reasonbuf);
5504 <      else
5505 <        DupString(yy_aconf->reason, "No reason");
5506 <      add_conf_by_address(CONF_DLINE, yy_aconf);
5507 <      yy_aconf = NULL;
5508 <    }
5502 >  if (!block_state.addr.buf[0])
5503 >    break;
5504 >
5505 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5506 >  {
5507 >    conf = conf_make(CONF_DLINE);
5508 >    conf->host = xstrdup(block_state.addr.buf);
5509 >
5510 >    if (block_state.rpass.buf[0])
5511 >      conf->reason = xstrdup(block_state.rpass.buf);
5512 >    else
5513 >      conf->reason = xstrdup(CONF_NOREASON);
5514 >    add_conf_by_address(CONF_DLINE, conf);
5515    }
5516   }
5517 + #line 5518 "conf_parser.c" /* yacc.c:1646  */
5518      break;
5519  
5520 <  case 407:
5521 < /* Line 1787 of yacc.c  */
5789 < #line 2376 "conf_parser.y"
5520 >  case 435:
5521 > #line 2385 "conf_parser.y" /* yacc.c:1646  */
5522      {
5523    if (conf_parser_ctx.pass == 2)
5524 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5524 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5525   }
5526 + #line 5527 "conf_parser.c" /* yacc.c:1646  */
5527      break;
5528  
5529 <  case 408:
5530 < /* Line 1787 of yacc.c  */
5798 < #line 2382 "conf_parser.y"
5529 >  case 436:
5530 > #line 2391 "conf_parser.y" /* yacc.c:1646  */
5531      {
5532    if (conf_parser_ctx.pass == 2)
5533 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5533 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5534   }
5535 + #line 5536 "conf_parser.c" /* yacc.c:1646  */
5536      break;
5537  
5538 <  case 414:
5539 < /* Line 1787 of yacc.c  */
5807 < #line 2396 "conf_parser.y"
5538 >  case 442:
5539 > #line 2405 "conf_parser.y" /* yacc.c:1646  */
5540      {
5541    if (conf_parser_ctx.pass == 2)
5542    {
5543      if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5544      {
5545 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5546 <      DupString(yy_aconf->host, yylval.string);
5545 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5546 >      conf->host = xstrdup(yylval.string);
5547  
5548 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
5817 <      yy_aconf = NULL;
5548 >      add_conf_by_address(CONF_EXEMPT, conf);
5549      }
5550    }
5551   }
5552 + #line 5553 "conf_parser.c" /* yacc.c:1646  */
5553      break;
5554  
5555 <  case 415:
5556 < /* Line 1787 of yacc.c  */
5825 < #line 2414 "conf_parser.y"
5555 >  case 443:
5556 > #line 2422 "conf_parser.y" /* yacc.c:1646  */
5557      {
5558    if (conf_parser_ctx.pass == 2)
5559 <  {
5829 <    regex_ban = 0;
5830 <    reasonbuf[0] = gecos_name[0] = '\0';
5831 <  }
5559 >    reset_block_state();
5560   }
5561 + #line 5562 "conf_parser.c" /* yacc.c:1646  */
5562      break;
5563  
5564 <  case 416:
5565 < /* Line 1787 of yacc.c  */
5837 < #line 2421 "conf_parser.y"
5564 >  case 444:
5565 > #line 2426 "conf_parser.y" /* yacc.c:1646  */
5566      {
5567 <  if (conf_parser_ctx.pass == 2)
5840 <  {
5841 <    if (gecos_name[0])
5842 <    {
5843 <      if (regex_ban)
5844 <      {
5845 < #ifdef HAVE_LIBPCRE
5846 <        void *exp_p = NULL;
5847 <        const char *errptr = NULL;
5567 >  struct MaskItem *conf = NULL;
5568  
5569 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
5570 <        {
5851 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
5852 <               errptr);
5853 <          break;
5854 <        }
5855 <
5856 <        yy_conf = make_conf_item(RXLINE_TYPE);
5857 <        yy_conf->regexpname = exp_p;
5858 < #else
5859 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
5860 <        break;
5861 < #endif
5862 <      }
5863 <      else
5864 <        yy_conf = make_conf_item(XLINE_TYPE);
5865 <
5866 <      yy_match_item = map_to_conf(yy_conf);
5867 <      DupString(yy_conf->name, gecos_name);
5569 >  if (conf_parser_ctx.pass != 2)
5570 >    break;
5571  
5572 <      if (reasonbuf[0])
5870 <        DupString(yy_match_item->reason, reasonbuf);
5871 <      else
5872 <        DupString(yy_match_item->reason, "No reason");
5873 <    }
5874 <  }
5875 < }
5572 >  if (!block_state.name.buf[0])
5573      break;
5574  
5575 <  case 417:
5576 < /* Line 1787 of yacc.c  */
5577 < #line 2461 "conf_parser.y"
5578 <    {
5575 >  conf = conf_make(CONF_XLINE);
5576 >  conf->name = xstrdup(block_state.name.buf);
5577 >
5578 >  if (block_state.rpass.buf[0])
5579 >    conf->reason = xstrdup(block_state.rpass.buf);
5580 >  else
5581 >    conf->reason = xstrdup(CONF_NOREASON);
5582   }
5583 + #line 5584 "conf_parser.c" /* yacc.c:1646  */
5584      break;
5585  
5586 <  case 421:
5587 < /* Line 1787 of yacc.c  */
5887 < #line 2466 "conf_parser.y"
5586 >  case 450:
5587 > #line 2448 "conf_parser.y" /* yacc.c:1646  */
5588      {
5589    if (conf_parser_ctx.pass == 2)
5590 <    regex_ban = 1;
5590 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5591   }
5592 + #line 5593 "conf_parser.c" /* yacc.c:1646  */
5593      break;
5594  
5595 <  case 428:
5596 < /* Line 1787 of yacc.c  */
5896 < #line 2475 "conf_parser.y"
5595 >  case 451:
5596 > #line 2454 "conf_parser.y" /* yacc.c:1646  */
5597      {
5598    if (conf_parser_ctx.pass == 2)
5599 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5599 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5600   }
5601 + #line 5602 "conf_parser.c" /* yacc.c:1646  */
5602      break;
5603  
5604 <  case 429:
5605 < /* Line 1787 of yacc.c  */
5905 < #line 2481 "conf_parser.y"
5604 >  case 504:
5605 > #line 2518 "conf_parser.y" /* yacc.c:1646  */
5606      {
5607 <  if (conf_parser_ctx.pass == 2)
5908 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5607 >  ConfigFileEntry.max_watch = (yyvsp[-1].number);
5608   }
5609 + #line 5610 "conf_parser.c" /* yacc.c:1646  */
5610      break;
5611  
5612 <  case 483:
5613 < /* Line 1787 of yacc.c  */
5914 < #line 2526 "conf_parser.y"
5612 >  case 505:
5613 > #line 2523 "conf_parser.y" /* yacc.c:1646  */
5614      {
5615 <  ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5615 >  if (conf_parser_ctx.pass == 2)
5616 >    ConfigFileEntry.cycle_on_host_change = yylval.number;
5617   }
5618 + #line 5619 "conf_parser.c" /* yacc.c:1646  */
5619      break;
5620  
5621 <  case 484:
5622 < /* Line 1787 of yacc.c  */
5922 < #line 2531 "conf_parser.y"
5621 >  case 506:
5622 > #line 2529 "conf_parser.y" /* yacc.c:1646  */
5623      {
5624    if (conf_parser_ctx.pass == 2)
5625      ConfigFileEntry.glines = yylval.number;
5626   }
5627 + #line 5628 "conf_parser.c" /* yacc.c:1646  */
5628      break;
5629  
5630 <  case 485:
5631 < /* Line 1787 of yacc.c  */
5931 < #line 2537 "conf_parser.y"
5630 >  case 507:
5631 > #line 2535 "conf_parser.y" /* yacc.c:1646  */
5632      {
5633    if (conf_parser_ctx.pass == 2)
5634 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5634 >    ConfigFileEntry.gline_time = (yyvsp[-1].number);
5635   }
5636 + #line 5637 "conf_parser.c" /* yacc.c:1646  */
5637      break;
5638  
5639 <  case 486:
5640 < /* Line 1787 of yacc.c  */
5940 < #line 2543 "conf_parser.y"
5639 >  case 508:
5640 > #line 2541 "conf_parser.y" /* yacc.c:1646  */
5641      {
5642    if (conf_parser_ctx.pass == 2)
5643 <    ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5643 >    ConfigFileEntry.gline_request_time = (yyvsp[-1].number);
5644   }
5645 + #line 5646 "conf_parser.c" /* yacc.c:1646  */
5646      break;
5647  
5648 <  case 487:
5649 < /* Line 1787 of yacc.c  */
5949 < #line 2549 "conf_parser.y"
5648 >  case 509:
5649 > #line 2547 "conf_parser.y" /* yacc.c:1646  */
5650      {
5651 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5651 >  ConfigFileEntry.gline_min_cidr = (yyvsp[-1].number);
5652   }
5653 + #line 5654 "conf_parser.c" /* yacc.c:1646  */
5654      break;
5655  
5656 <  case 488:
5657 < /* Line 1787 of yacc.c  */
5957 < #line 2554 "conf_parser.y"
5656 >  case 510:
5657 > #line 2552 "conf_parser.y" /* yacc.c:1646  */
5658      {
5659 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5659 >  ConfigFileEntry.gline_min_cidr6 = (yyvsp[-1].number);
5660   }
5661 + #line 5662 "conf_parser.c" /* yacc.c:1646  */
5662      break;
5663  
5664 <  case 489:
5665 < /* Line 1787 of yacc.c  */
5965 < #line 2559 "conf_parser.y"
5664 >  case 511:
5665 > #line 2557 "conf_parser.y" /* yacc.c:1646  */
5666      {
5667    ConfigFileEntry.tkline_expire_notices = yylval.number;
5668   }
5669 + #line 5670 "conf_parser.c" /* yacc.c:1646  */
5670      break;
5671  
5672 <  case 490:
5673 < /* Line 1787 of yacc.c  */
5973 < #line 2564 "conf_parser.y"
5672 >  case 512:
5673 > #line 2562 "conf_parser.y" /* yacc.c:1646  */
5674      {
5675 <  ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5675 >  ConfigFileEntry.kill_chase_time_limit = (yyvsp[-1].number);
5676   }
5677 + #line 5678 "conf_parser.c" /* yacc.c:1646  */
5678      break;
5679  
5680 <  case 491:
5681 < /* Line 1787 of yacc.c  */
5981 < #line 2569 "conf_parser.y"
5680 >  case 513:
5681 > #line 2567 "conf_parser.y" /* yacc.c:1646  */
5682      {
5683    ConfigFileEntry.hide_spoof_ips = yylval.number;
5684   }
5685 + #line 5686 "conf_parser.c" /* yacc.c:1646  */
5686      break;
5687  
5688 <  case 492:
5689 < /* Line 1787 of yacc.c  */
5989 < #line 2574 "conf_parser.y"
5688 >  case 514:
5689 > #line 2572 "conf_parser.y" /* yacc.c:1646  */
5690      {
5691    ConfigFileEntry.ignore_bogus_ts = yylval.number;
5692   }
5693 + #line 5694 "conf_parser.c" /* yacc.c:1646  */
5694      break;
5695  
5696 <  case 493:
5697 < /* Line 1787 of yacc.c  */
5997 < #line 2579 "conf_parser.y"
5998 <    {
5999 <  ConfigFileEntry.disable_remote = yylval.number;
6000 < }
6001 <    break;
6002 <
6003 <  case 494:
6004 < /* Line 1787 of yacc.c  */
6005 < #line 2584 "conf_parser.y"
5696 >  case 515:
5697 > #line 2577 "conf_parser.y" /* yacc.c:1646  */
5698      {
5699    ConfigFileEntry.failed_oper_notice = yylval.number;
5700   }
5701 + #line 5702 "conf_parser.c" /* yacc.c:1646  */
5702      break;
5703  
5704 <  case 495:
5705 < /* Line 1787 of yacc.c  */
6013 < #line 2589 "conf_parser.y"
5704 >  case 516:
5705 > #line 2582 "conf_parser.y" /* yacc.c:1646  */
5706      {
5707    ConfigFileEntry.anti_nick_flood = yylval.number;
5708   }
5709 + #line 5710 "conf_parser.c" /* yacc.c:1646  */
5710      break;
5711  
5712 <  case 496:
5713 < /* Line 1787 of yacc.c  */
6021 < #line 2594 "conf_parser.y"
5712 >  case 517:
5713 > #line 2587 "conf_parser.y" /* yacc.c:1646  */
5714      {
5715 <  ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5715 >  ConfigFileEntry.max_nick_time = (yyvsp[-1].number);
5716   }
5717 + #line 5718 "conf_parser.c" /* yacc.c:1646  */
5718      break;
5719  
5720 <  case 497:
5721 < /* Line 1787 of yacc.c  */
6029 < #line 2599 "conf_parser.y"
5720 >  case 518:
5721 > #line 2592 "conf_parser.y" /* yacc.c:1646  */
5722      {
5723 <  ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5723 >  ConfigFileEntry.max_nick_changes = (yyvsp[-1].number);
5724   }
5725 + #line 5726 "conf_parser.c" /* yacc.c:1646  */
5726      break;
5727  
5728 <  case 498:
5729 < /* Line 1787 of yacc.c  */
6037 < #line 2604 "conf_parser.y"
5728 >  case 519:
5729 > #line 2597 "conf_parser.y" /* yacc.c:1646  */
5730      {
5731 <  ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5731 >  ConfigFileEntry.max_accept = (yyvsp[-1].number);
5732   }
5733 + #line 5734 "conf_parser.c" /* yacc.c:1646  */
5734      break;
5735  
5736 <  case 499:
5737 < /* Line 1787 of yacc.c  */
6045 < #line 2609 "conf_parser.y"
5736 >  case 520:
5737 > #line 2602 "conf_parser.y" /* yacc.c:1646  */
5738      {
5739 <  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5739 >  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[-1].number);
5740   }
5741 + #line 5742 "conf_parser.c" /* yacc.c:1646  */
5742      break;
5743  
5744 <  case 500:
5745 < /* Line 1787 of yacc.c  */
6053 < #line 2614 "conf_parser.y"
5744 >  case 521:
5745 > #line 2607 "conf_parser.y" /* yacc.c:1646  */
5746      {
5747 <  ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5747 >  ConfigFileEntry.ts_warn_delta = (yyvsp[-1].number);
5748   }
5749 + #line 5750 "conf_parser.c" /* yacc.c:1646  */
5750      break;
5751  
5752 <  case 501:
5753 < /* Line 1787 of yacc.c  */
6061 < #line 2619 "conf_parser.y"
5752 >  case 522:
5753 > #line 2612 "conf_parser.y" /* yacc.c:1646  */
5754      {
5755    if (conf_parser_ctx.pass == 2)
5756 <    ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5756 >    ConfigFileEntry.ts_max_delta = (yyvsp[-1].number);
5757   }
5758 + #line 5759 "conf_parser.c" /* yacc.c:1646  */
5759      break;
5760  
5761 <  case 502:
5762 < /* Line 1787 of yacc.c  */
6070 < #line 2625 "conf_parser.y"
5761 >  case 523:
5762 > #line 2618 "conf_parser.y" /* yacc.c:1646  */
5763      {
5764 <  if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
5764 >  if (((yyvsp[-1].number) > 0) && conf_parser_ctx.pass == 1)
5765    {
5766      ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
5767      ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
# Line 6077 | Line 5769 | yyreduce:
5769      exit(0);
5770    }
5771   }
5772 + #line 5773 "conf_parser.c" /* yacc.c:1646  */
5773      break;
5774  
5775 <  case 503:
5776 < /* Line 1787 of yacc.c  */
6084 < #line 2636 "conf_parser.y"
5775 >  case 524:
5776 > #line 2629 "conf_parser.y" /* yacc.c:1646  */
5777      {
5778    ConfigFileEntry.invisible_on_connect = yylval.number;
5779   }
5780 + #line 5781 "conf_parser.c" /* yacc.c:1646  */
5781      break;
5782  
5783 <  case 504:
5784 < /* Line 1787 of yacc.c  */
6092 < #line 2641 "conf_parser.y"
5783 >  case 525:
5784 > #line 2634 "conf_parser.y" /* yacc.c:1646  */
5785      {
5786 <  ConfigFileEntry.warn_no_nline = yylval.number;
5786 >  ConfigFileEntry.warn_no_connect_block = yylval.number;
5787   }
5788 + #line 5789 "conf_parser.c" /* yacc.c:1646  */
5789      break;
5790  
5791 <  case 505:
5792 < /* Line 1787 of yacc.c  */
6100 < #line 2646 "conf_parser.y"
5791 >  case 526:
5792 > #line 2639 "conf_parser.y" /* yacc.c:1646  */
5793      {
5794    ConfigFileEntry.stats_e_disabled = yylval.number;
5795   }
5796 + #line 5797 "conf_parser.c" /* yacc.c:1646  */
5797      break;
5798  
5799 <  case 506:
5800 < /* Line 1787 of yacc.c  */
6108 < #line 2651 "conf_parser.y"
5799 >  case 527:
5800 > #line 2644 "conf_parser.y" /* yacc.c:1646  */
5801      {
5802    ConfigFileEntry.stats_o_oper_only = yylval.number;
5803   }
5804 + #line 5805 "conf_parser.c" /* yacc.c:1646  */
5805      break;
5806  
5807 <  case 507:
5808 < /* Line 1787 of yacc.c  */
6116 < #line 2656 "conf_parser.y"
5807 >  case 528:
5808 > #line 2649 "conf_parser.y" /* yacc.c:1646  */
5809      {
5810    ConfigFileEntry.stats_P_oper_only = yylval.number;
5811   }
5812 + #line 5813 "conf_parser.c" /* yacc.c:1646  */
5813      break;
5814  
5815 <  case 508:
5816 < /* Line 1787 of yacc.c  */
5817 < #line 2661 "conf_parser.y"
5815 >  case 529:
5816 > #line 2654 "conf_parser.y" /* yacc.c:1646  */
5817 >    {
5818 >  ConfigFileEntry.stats_u_oper_only = yylval.number;
5819 > }
5820 > #line 5821 "conf_parser.c" /* yacc.c:1646  */
5821 >    break;
5822 >
5823 >  case 530:
5824 > #line 2659 "conf_parser.y" /* yacc.c:1646  */
5825      {
5826    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5827   }
5828 + #line 5829 "conf_parser.c" /* yacc.c:1646  */
5829      break;
5830  
5831 <  case 509:
5832 < /* Line 1787 of yacc.c  */
6132 < #line 2664 "conf_parser.y"
5831 >  case 531:
5832 > #line 2662 "conf_parser.y" /* yacc.c:1646  */
5833      {
5834    ConfigFileEntry.stats_k_oper_only = 1;
5835   }
5836 + #line 5837 "conf_parser.c" /* yacc.c:1646  */
5837      break;
5838  
5839 <  case 510:
5840 < /* Line 1787 of yacc.c  */
6140 < #line 2669 "conf_parser.y"
5839 >  case 532:
5840 > #line 2667 "conf_parser.y" /* yacc.c:1646  */
5841      {
5842    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5843   }
5844 + #line 5845 "conf_parser.c" /* yacc.c:1646  */
5845      break;
5846  
5847 <  case 511:
5848 < /* Line 1787 of yacc.c  */
6148 < #line 2672 "conf_parser.y"
5847 >  case 533:
5848 > #line 2670 "conf_parser.y" /* yacc.c:1646  */
5849      {
5850    ConfigFileEntry.stats_i_oper_only = 1;
5851   }
5852 + #line 5853 "conf_parser.c" /* yacc.c:1646  */
5853      break;
5854  
5855 <  case 512:
5856 < /* Line 1787 of yacc.c  */
6156 < #line 2677 "conf_parser.y"
5855 >  case 534:
5856 > #line 2675 "conf_parser.y" /* yacc.c:1646  */
5857      {
5858 <  ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5858 >  ConfigFileEntry.pace_wait = (yyvsp[-1].number);
5859   }
5860 + #line 5861 "conf_parser.c" /* yacc.c:1646  */
5861      break;
5862  
5863 <  case 513:
5864 < /* Line 1787 of yacc.c  */
6164 < #line 2682 "conf_parser.y"
5863 >  case 535:
5864 > #line 2680 "conf_parser.y" /* yacc.c:1646  */
5865      {
5866 <  ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5866 >  ConfigFileEntry.caller_id_wait = (yyvsp[-1].number);
5867   }
5868 + #line 5869 "conf_parser.c" /* yacc.c:1646  */
5869      break;
5870  
5871 <  case 514:
5872 < /* Line 1787 of yacc.c  */
6172 < #line 2687 "conf_parser.y"
5871 >  case 536:
5872 > #line 2685 "conf_parser.y" /* yacc.c:1646  */
5873      {
5874    ConfigFileEntry.opers_bypass_callerid = yylval.number;
5875   }
5876 + #line 5877 "conf_parser.c" /* yacc.c:1646  */
5877      break;
5878  
5879 <  case 515:
5880 < /* Line 1787 of yacc.c  */
6180 < #line 2692 "conf_parser.y"
5879 >  case 537:
5880 > #line 2690 "conf_parser.y" /* yacc.c:1646  */
5881      {
5882 <  ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
5882 >  ConfigFileEntry.pace_wait_simple = (yyvsp[-1].number);
5883   }
5884 + #line 5885 "conf_parser.c" /* yacc.c:1646  */
5885      break;
5886  
5887 <  case 516:
5888 < /* Line 1787 of yacc.c  */
6188 < #line 2697 "conf_parser.y"
5887 >  case 538:
5888 > #line 2695 "conf_parser.y" /* yacc.c:1646  */
5889      {
5890    ConfigFileEntry.short_motd = yylval.number;
5891   }
5892 + #line 5893 "conf_parser.c" /* yacc.c:1646  */
5893      break;
5894  
5895 <  case 517:
5896 < /* Line 1787 of yacc.c  */
6196 < #line 2702 "conf_parser.y"
5895 >  case 539:
5896 > #line 2700 "conf_parser.y" /* yacc.c:1646  */
5897      {
5898    ConfigFileEntry.no_oper_flood = yylval.number;
5899   }
5900 + #line 5901 "conf_parser.c" /* yacc.c:1646  */
5901      break;
5902  
5903 <  case 518:
5904 < /* Line 1787 of yacc.c  */
6204 < #line 2707 "conf_parser.y"
5903 >  case 540:
5904 > #line 2705 "conf_parser.y" /* yacc.c:1646  */
5905      {
5906    ConfigFileEntry.true_no_oper_flood = yylval.number;
5907   }
5908 + #line 5909 "conf_parser.c" /* yacc.c:1646  */
5909      break;
5910  
5911 <  case 519:
5912 < /* Line 1787 of yacc.c  */
6212 < #line 2712 "conf_parser.y"
5911 >  case 541:
5912 > #line 2710 "conf_parser.y" /* yacc.c:1646  */
5913      {
5914    ConfigFileEntry.oper_pass_resv = yylval.number;
5915   }
5916 + #line 5917 "conf_parser.c" /* yacc.c:1646  */
5917      break;
5918  
5919 <  case 520:
5920 < /* Line 1787 of yacc.c  */
6220 < #line 2717 "conf_parser.y"
6221 <    {
6222 <  if (conf_parser_ctx.pass == 2)
6223 <  {
6224 <    if (strlen(yylval.string) > LOCALE_LENGTH-2)
6225 <      yylval.string[LOCALE_LENGTH-1] = '\0';
6226 <
6227 <    set_locale(yylval.string);
6228 <  }
6229 < }
6230 <    break;
6231 <
6232 <  case 521:
6233 < /* Line 1787 of yacc.c  */
6234 < #line 2728 "conf_parser.y"
6235 <    {
6236 <  ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
6237 < }
6238 <    break;
6239 <
6240 <  case 522:
6241 < /* Line 1787 of yacc.c  */
6242 < #line 2733 "conf_parser.y"
6243 <    {
6244 <  ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
6245 < }
6246 <    break;
6247 <
6248 <  case 523:
6249 < /* Line 1787 of yacc.c  */
6250 < #line 2738 "conf_parser.y"
5919 >  case 542:
5920 > #line 2715 "conf_parser.y" /* yacc.c:1646  */
5921      {
5922 <  ConfigFileEntry.use_egd = yylval.number;
5922 >  ConfigFileEntry.dots_in_ident = (yyvsp[-1].number);
5923   }
5924 + #line 5925 "conf_parser.c" /* yacc.c:1646  */
5925      break;
5926  
5927 <  case 524:
5928 < /* Line 1787 of yacc.c  */
6258 < #line 2743 "conf_parser.y"
5927 >  case 543:
5928 > #line 2720 "conf_parser.y" /* yacc.c:1646  */
5929      {
5930 <  if (conf_parser_ctx.pass == 2)
6261 <  {
6262 <    MyFree(ConfigFileEntry.egdpool_path);
6263 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
6264 <  }
5930 >  ConfigFileEntry.max_targets = (yyvsp[-1].number);
5931   }
5932 + #line 5933 "conf_parser.c" /* yacc.c:1646  */
5933      break;
5934  
5935 <  case 525:
5936 < /* Line 1787 of yacc.c  */
6270 < #line 2752 "conf_parser.y"
5935 >  case 544:
5936 > #line 2725 "conf_parser.y" /* yacc.c:1646  */
5937      {
5938    if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
5939    {
5940      MyFree(ConfigFileEntry.service_name);
5941 <    DupString(ConfigFileEntry.service_name, yylval.string);
5941 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
5942    }
5943   }
5944 + #line 5945 "conf_parser.c" /* yacc.c:1646  */
5945      break;
5946  
5947 <  case 526:
5948 < /* Line 1787 of yacc.c  */
6282 < #line 2761 "conf_parser.y"
5947 >  case 545:
5948 > #line 2734 "conf_parser.y" /* yacc.c:1646  */
5949      {
5950    ConfigFileEntry.ping_cookie = yylval.number;
5951   }
5952 + #line 5953 "conf_parser.c" /* yacc.c:1646  */
5953      break;
5954  
5955 <  case 527:
5956 < /* Line 1787 of yacc.c  */
6290 < #line 2766 "conf_parser.y"
5955 >  case 546:
5956 > #line 2739 "conf_parser.y" /* yacc.c:1646  */
5957      {
5958    ConfigFileEntry.disable_auth = yylval.number;
5959   }
5960 + #line 5961 "conf_parser.c" /* yacc.c:1646  */
5961      break;
5962  
5963 <  case 528:
5964 < /* Line 1787 of yacc.c  */
6298 < #line 2771 "conf_parser.y"
5963 >  case 547:
5964 > #line 2744 "conf_parser.y" /* yacc.c:1646  */
5965      {
5966 <  ConfigFileEntry.throttle_time = yylval.number;
5966 >  ConfigFileEntry.throttle_count = (yyvsp[-1].number);
5967   }
5968 + #line 5969 "conf_parser.c" /* yacc.c:1646  */
5969      break;
5970  
5971 <  case 529:
5972 < /* Line 1787 of yacc.c  */
6306 < #line 2776 "conf_parser.y"
5971 >  case 548:
5972 > #line 2749 "conf_parser.y" /* yacc.c:1646  */
5973      {
5974 <  ConfigFileEntry.oper_umodes = 0;
5974 >  ConfigFileEntry.throttle_time = (yyvsp[-1].number);
5975   }
5976 + #line 5977 "conf_parser.c" /* yacc.c:1646  */
5977      break;
5978  
5979 <  case 533:
5980 < /* Line 1787 of yacc.c  */
6314 < #line 2782 "conf_parser.y"
5979 >  case 549:
5980 > #line 2754 "conf_parser.y" /* yacc.c:1646  */
5981      {
5982 <  ConfigFileEntry.oper_umodes |= UMODE_BOTS;
5982 >  ConfigFileEntry.oper_umodes = 0;
5983   }
5984 + #line 5985 "conf_parser.c" /* yacc.c:1646  */
5985      break;
5986  
5987 <  case 534:
5988 < /* Line 1787 of yacc.c  */
6322 < #line 2785 "conf_parser.y"
5987 >  case 553:
5988 > #line 2760 "conf_parser.y" /* yacc.c:1646  */
5989      {
5990 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN;
5990 >  ConfigFileEntry.oper_umodes |= UMODE_BOTS;
5991   }
5992 + #line 5993 "conf_parser.c" /* yacc.c:1646  */
5993      break;
5994  
5995 <  case 535:
5996 < /* Line 1787 of yacc.c  */
6330 < #line 2788 "conf_parser.y"
5995 >  case 554:
5996 > #line 2763 "conf_parser.y" /* yacc.c:1646  */
5997      {
5998 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
5998 >  ConfigFileEntry.oper_umodes |= UMODE_CCONN;
5999   }
6000 + #line 6001 "conf_parser.c" /* yacc.c:1646  */
6001      break;
6002  
6003 <  case 536:
6004 < /* Line 1787 of yacc.c  */
6338 < #line 2791 "conf_parser.y"
6003 >  case 555:
6004 > #line 2766 "conf_parser.y" /* yacc.c:1646  */
6005      {
6006    ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6007   }
6008 + #line 6009 "conf_parser.c" /* yacc.c:1646  */
6009      break;
6010  
6011 <  case 537:
6012 < /* Line 1787 of yacc.c  */
6346 < #line 2794 "conf_parser.y"
6011 >  case 556:
6012 > #line 2769 "conf_parser.y" /* yacc.c:1646  */
6013      {
6014    ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6015   }
6016 + #line 6017 "conf_parser.c" /* yacc.c:1646  */
6017      break;
6018  
6019 <  case 538:
6020 < /* Line 1787 of yacc.c  */
6354 < #line 2797 "conf_parser.y"
6019 >  case 557:
6020 > #line 2772 "conf_parser.y" /* yacc.c:1646  */
6021      {
6022    ConfigFileEntry.oper_umodes |= UMODE_FULL;
6023   }
6024 + #line 6025 "conf_parser.c" /* yacc.c:1646  */
6025      break;
6026  
6027 <  case 539:
6028 < /* Line 1787 of yacc.c  */
6362 < #line 2800 "conf_parser.y"
6027 >  case 558:
6028 > #line 2775 "conf_parser.y" /* yacc.c:1646  */
6029      {
6030    ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6031   }
6032 + #line 6033 "conf_parser.c" /* yacc.c:1646  */
6033      break;
6034  
6035 <  case 540:
6036 < /* Line 1787 of yacc.c  */
6037 < #line 2803 "conf_parser.y"
6035 >  case 559:
6036 > #line 2778 "conf_parser.y" /* yacc.c:1646  */
6037 >    {
6038 >  ConfigFileEntry.oper_umodes |= UMODE_HIDECHANS;
6039 > }
6040 > #line 6041 "conf_parser.c" /* yacc.c:1646  */
6041 >    break;
6042 >
6043 >  case 560:
6044 > #line 2781 "conf_parser.y" /* yacc.c:1646  */
6045 >    {
6046 >  ConfigFileEntry.oper_umodes |= UMODE_HIDEIDLE;
6047 > }
6048 > #line 6049 "conf_parser.c" /* yacc.c:1646  */
6049 >    break;
6050 >
6051 >  case 561:
6052 > #line 2784 "conf_parser.y" /* yacc.c:1646  */
6053      {
6054    ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6055   }
6056 + #line 6057 "conf_parser.c" /* yacc.c:1646  */
6057      break;
6058  
6059 <  case 541:
6060 < /* Line 1787 of yacc.c  */
6378 < #line 2806 "conf_parser.y"
6059 >  case 562:
6060 > #line 2787 "conf_parser.y" /* yacc.c:1646  */
6061      {
6062    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6063   }
6064 + #line 6065 "conf_parser.c" /* yacc.c:1646  */
6065      break;
6066  
6067 <  case 542:
6068 < /* Line 1787 of yacc.c  */
6386 < #line 2809 "conf_parser.y"
6067 >  case 563:
6068 > #line 2790 "conf_parser.y" /* yacc.c:1646  */
6069      {
6070    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6071   }
6072 + #line 6073 "conf_parser.c" /* yacc.c:1646  */
6073      break;
6074  
6075 <  case 543:
6076 < /* Line 1787 of yacc.c  */
6394 < #line 2812 "conf_parser.y"
6075 >  case 564:
6076 > #line 2793 "conf_parser.y" /* yacc.c:1646  */
6077      {
6078    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6079   }
6080 + #line 6081 "conf_parser.c" /* yacc.c:1646  */
6081      break;
6082  
6083 <  case 544:
6084 < /* Line 1787 of yacc.c  */
6402 < #line 2815 "conf_parser.y"
6083 >  case 565:
6084 > #line 2796 "conf_parser.y" /* yacc.c:1646  */
6085      {
6086    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6087   }
6088 + #line 6089 "conf_parser.c" /* yacc.c:1646  */
6089      break;
6090  
6091 <  case 545:
6092 < /* Line 1787 of yacc.c  */
6410 < #line 2818 "conf_parser.y"
6091 >  case 566:
6092 > #line 2799 "conf_parser.y" /* yacc.c:1646  */
6093      {
6094    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6095   }
6096 + #line 6097 "conf_parser.c" /* yacc.c:1646  */
6097      break;
6098  
6099 <  case 546:
6100 < /* Line 1787 of yacc.c  */
6418 < #line 2821 "conf_parser.y"
6419 <    {
6420 <  ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6421 < }
6422 <    break;
6423 <
6424 <  case 547:
6425 < /* Line 1787 of yacc.c  */
6426 < #line 2824 "conf_parser.y"
6099 >  case 567:
6100 > #line 2802 "conf_parser.y" /* yacc.c:1646  */
6101      {
6102    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6103   }
6104 + #line 6105 "conf_parser.c" /* yacc.c:1646  */
6105      break;
6106  
6107 <  case 548:
6108 < /* Line 1787 of yacc.c  */
6434 < #line 2827 "conf_parser.y"
6107 >  case 568:
6108 > #line 2805 "conf_parser.y" /* yacc.c:1646  */
6109      {
6110    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6111   }
6112 + #line 6113 "conf_parser.c" /* yacc.c:1646  */
6113      break;
6114  
6115 <  case 549:
6116 < /* Line 1787 of yacc.c  */
6442 < #line 2830 "conf_parser.y"
6115 >  case 569:
6116 > #line 2808 "conf_parser.y" /* yacc.c:1646  */
6117      {
6118    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6119   }
6120 + #line 6121 "conf_parser.c" /* yacc.c:1646  */
6121      break;
6122  
6123 <  case 550:
6124 < /* Line 1787 of yacc.c  */
6450 < #line 2833 "conf_parser.y"
6123 >  case 570:
6124 > #line 2811 "conf_parser.y" /* yacc.c:1646  */
6125      {
6126    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6127   }
6128 + #line 6129 "conf_parser.c" /* yacc.c:1646  */
6129      break;
6130  
6131 <  case 551:
6132 < /* Line 1787 of yacc.c  */
6458 < #line 2836 "conf_parser.y"
6131 >  case 571:
6132 > #line 2814 "conf_parser.y" /* yacc.c:1646  */
6133      {
6134    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6135   }
6136 + #line 6137 "conf_parser.c" /* yacc.c:1646  */
6137      break;
6138  
6139 <  case 552:
6140 < /* Line 1787 of yacc.c  */
6466 < #line 2839 "conf_parser.y"
6139 >  case 572:
6140 > #line 2817 "conf_parser.y" /* yacc.c:1646  */
6141      {
6142    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6143   }
6144 + #line 6145 "conf_parser.c" /* yacc.c:1646  */
6145      break;
6146  
6147 <  case 553:
6148 < /* Line 1787 of yacc.c  */
6474 < #line 2844 "conf_parser.y"
6147 >  case 573:
6148 > #line 2820 "conf_parser.y" /* yacc.c:1646  */
6149      {
6150 <  ConfigFileEntry.oper_only_umodes = 0;
6150 >  ConfigFileEntry.oper_umodes |= UMODE_REGONLY;
6151   }
6152 + #line 6153 "conf_parser.c" /* yacc.c:1646  */
6153      break;
6154  
6155 <  case 557:
6156 < /* Line 1787 of yacc.c  */
6482 < #line 2850 "conf_parser.y"
6155 >  case 574:
6156 > #line 2823 "conf_parser.y" /* yacc.c:1646  */
6157      {
6158 <  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6158 >  ConfigFileEntry.oper_umodes |= UMODE_FARCONNECT;
6159   }
6160 + #line 6161 "conf_parser.c" /* yacc.c:1646  */
6161      break;
6162  
6163 <  case 558:
6164 < /* Line 1787 of yacc.c  */
6490 < #line 2853 "conf_parser.y"
6163 >  case 575:
6164 > #line 2828 "conf_parser.y" /* yacc.c:1646  */
6165      {
6166 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6166 >  ConfigFileEntry.oper_only_umodes = 0;
6167   }
6168 + #line 6169 "conf_parser.c" /* yacc.c:1646  */
6169      break;
6170  
6171 <  case 559:
6172 < /* Line 1787 of yacc.c  */
6498 < #line 2856 "conf_parser.y"
6171 >  case 579:
6172 > #line 2834 "conf_parser.y" /* yacc.c:1646  */
6173      {
6174 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6174 >  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6175   }
6176 + #line 6177 "conf_parser.c" /* yacc.c:1646  */
6177      break;
6178  
6179 <  case 560:
6180 < /* Line 1787 of yacc.c  */
6181 < #line 2859 "conf_parser.y"
6179 >  case 580:
6180 > #line 2837 "conf_parser.y" /* yacc.c:1646  */
6181 >    {
6182 >  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6183 > }
6184 > #line 6185 "conf_parser.c" /* yacc.c:1646  */
6185 >    break;
6186 >
6187 >  case 581:
6188 > #line 2840 "conf_parser.y" /* yacc.c:1646  */
6189      {
6190    ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6191   }
6192 + #line 6193 "conf_parser.c" /* yacc.c:1646  */
6193      break;
6194  
6195 <  case 561:
6196 < /* Line 1787 of yacc.c  */
6514 < #line 2862 "conf_parser.y"
6195 >  case 582:
6196 > #line 2843 "conf_parser.y" /* yacc.c:1646  */
6197      {
6198    ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6199   }
6200 + #line 6201 "conf_parser.c" /* yacc.c:1646  */
6201      break;
6202  
6203 <  case 562:
6204 < /* Line 1787 of yacc.c  */
6205 < #line 2865 "conf_parser.y"
6523 <    {
6203 >  case 583:
6204 > #line 2846 "conf_parser.y" /* yacc.c:1646  */
6205 >    {
6206    ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6207   }
6208 + #line 6209 "conf_parser.c" /* yacc.c:1646  */
6209      break;
6210  
6211 <  case 563:
6212 < /* Line 1787 of yacc.c  */
6530 < #line 2868 "conf_parser.y"
6211 >  case 584:
6212 > #line 2849 "conf_parser.y" /* yacc.c:1646  */
6213      {
6214    ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6215   }
6216 + #line 6217 "conf_parser.c" /* yacc.c:1646  */
6217      break;
6218  
6219 <  case 564:
6220 < /* Line 1787 of yacc.c  */
6538 < #line 2871 "conf_parser.y"
6219 >  case 585:
6220 > #line 2852 "conf_parser.y" /* yacc.c:1646  */
6221      {
6222    ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6223   }
6224 + #line 6225 "conf_parser.c" /* yacc.c:1646  */
6225      break;
6226  
6227 <  case 565:
6228 < /* Line 1787 of yacc.c  */
6546 < #line 2874 "conf_parser.y"
6227 >  case 586:
6228 > #line 2855 "conf_parser.y" /* yacc.c:1646  */
6229      {
6230    ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6231   }
6232 + #line 6233 "conf_parser.c" /* yacc.c:1646  */
6233      break;
6234  
6235 <  case 566:
6236 < /* Line 1787 of yacc.c  */
6554 < #line 2877 "conf_parser.y"
6235 >  case 587:
6236 > #line 2858 "conf_parser.y" /* yacc.c:1646  */
6237      {
6238    ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6239   }
6240 + #line 6241 "conf_parser.c" /* yacc.c:1646  */
6241      break;
6242  
6243 <  case 567:
6244 < /* Line 1787 of yacc.c  */
6562 < #line 2880 "conf_parser.y"
6243 >  case 588:
6244 > #line 2861 "conf_parser.y" /* yacc.c:1646  */
6245      {
6246    ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6247   }
6248 + #line 6249 "conf_parser.c" /* yacc.c:1646  */
6249      break;
6250  
6251 <  case 568:
6252 < /* Line 1787 of yacc.c  */
6570 < #line 2883 "conf_parser.y"
6251 >  case 589:
6252 > #line 2864 "conf_parser.y" /* yacc.c:1646  */
6253      {
6254    ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6255   }
6256 + #line 6257 "conf_parser.c" /* yacc.c:1646  */
6257      break;
6258  
6259 <  case 569:
6260 < /* Line 1787 of yacc.c  */
6578 < #line 2886 "conf_parser.y"
6259 >  case 590:
6260 > #line 2867 "conf_parser.y" /* yacc.c:1646  */
6261      {
6262    ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6263   }
6264 + #line 6265 "conf_parser.c" /* yacc.c:1646  */
6265      break;
6266  
6267 <  case 570:
6268 < /* Line 1787 of yacc.c  */
6586 < #line 2889 "conf_parser.y"
6587 <    {
6588 <  ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6589 < }
6590 <    break;
6591 <
6592 <  case 571:
6593 < /* Line 1787 of yacc.c  */
6594 < #line 2892 "conf_parser.y"
6267 >  case 591:
6268 > #line 2870 "conf_parser.y" /* yacc.c:1646  */
6269      {
6270    ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6271   }
6272 + #line 6273 "conf_parser.c" /* yacc.c:1646  */
6273      break;
6274  
6275 <  case 572:
6276 < /* Line 1787 of yacc.c  */
6602 < #line 2895 "conf_parser.y"
6275 >  case 592:
6276 > #line 2873 "conf_parser.y" /* yacc.c:1646  */
6277      {
6278    ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6279   }
6280 + #line 6281 "conf_parser.c" /* yacc.c:1646  */
6281      break;
6282  
6283 <  case 573:
6284 < /* Line 1787 of yacc.c  */
6610 < #line 2898 "conf_parser.y"
6283 >  case 593:
6284 > #line 2876 "conf_parser.y" /* yacc.c:1646  */
6285      {
6286    ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6287   }
6288 + #line 6289 "conf_parser.c" /* yacc.c:1646  */
6289      break;
6290  
6291 <  case 574:
6292 < /* Line 1787 of yacc.c  */
6618 < #line 2901 "conf_parser.y"
6291 >  case 594:
6292 > #line 2879 "conf_parser.y" /* yacc.c:1646  */
6293      {
6294    ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6295   }
6296 + #line 6297 "conf_parser.c" /* yacc.c:1646  */
6297      break;
6298  
6299 <  case 575:
6300 < /* Line 1787 of yacc.c  */
6626 < #line 2904 "conf_parser.y"
6299 >  case 595:
6300 > #line 2882 "conf_parser.y" /* yacc.c:1646  */
6301      {
6302    ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6303   }
6304 + #line 6305 "conf_parser.c" /* yacc.c:1646  */
6305      break;
6306  
6307 <  case 576:
6308 < /* Line 1787 of yacc.c  */
6634 < #line 2907 "conf_parser.y"
6307 >  case 596:
6308 > #line 2885 "conf_parser.y" /* yacc.c:1646  */
6309      {
6310    ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6311   }
6312 + #line 6313 "conf_parser.c" /* yacc.c:1646  */
6313      break;
6314  
6315 <  case 577:
6316 < /* Line 1787 of yacc.c  */
6642 < #line 2912 "conf_parser.y"
6315 >  case 597:
6316 > #line 2888 "conf_parser.y" /* yacc.c:1646  */
6317      {
6318 <  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6318 >  ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6319   }
6320 + #line 6321 "conf_parser.c" /* yacc.c:1646  */
6321      break;
6322  
6323 <  case 578:
6324 < /* Line 1787 of yacc.c  */
6650 < #line 2917 "conf_parser.y"
6323 >  case 598:
6324 > #line 2891 "conf_parser.y" /* yacc.c:1646  */
6325      {
6326 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6326 >  ConfigFileEntry.oper_only_umodes |= UMODE_FARCONNECT;
6327   }
6328 + #line 6329 "conf_parser.c" /* yacc.c:1646  */
6329      break;
6330  
6331 <  case 579:
6332 < /* Line 1787 of yacc.c  */
6658 < #line 2922 "conf_parser.y"
6331 >  case 599:
6332 > #line 2896 "conf_parser.y" /* yacc.c:1646  */
6333      {
6334 <  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6334 >  ConfigFileEntry.min_nonwildcard = (yyvsp[-1].number);
6335   }
6336 + #line 6337 "conf_parser.c" /* yacc.c:1646  */
6337      break;
6338  
6339 <  case 598:
6340 < /* Line 1787 of yacc.c  */
6341 < #line 2945 "conf_parser.y"
6339 >  case 600:
6340 > #line 2901 "conf_parser.y" /* yacc.c:1646  */
6341 >    {
6342 >  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[-1].number);
6343 > }
6344 > #line 6345 "conf_parser.c" /* yacc.c:1646  */
6345 >    break;
6346 >
6347 >  case 601:
6348 > #line 2906 "conf_parser.y" /* yacc.c:1646  */
6349 >    {
6350 >  ConfigFileEntry.default_floodcount = (yyvsp[-1].number);
6351 > }
6352 > #line 6353 "conf_parser.c" /* yacc.c:1646  */
6353 >    break;
6354 >
6355 >  case 620:
6356 > #line 2935 "conf_parser.y" /* yacc.c:1646  */
6357      {
6358    ConfigChannel.disable_fake_channels = yylval.number;
6359   }
6360 + #line 6361 "conf_parser.c" /* yacc.c:1646  */
6361      break;
6362  
6363 <  case 599:
6364 < /* Line 1787 of yacc.c  */
6674 < #line 2950 "conf_parser.y"
6363 >  case 621:
6364 > #line 2940 "conf_parser.y" /* yacc.c:1646  */
6365      {
6366 <  ConfigChannel.restrict_channels = yylval.number;
6366 >  ConfigChannel.invite_client_count = (yyvsp[-1].number);
6367   }
6368 + #line 6369 "conf_parser.c" /* yacc.c:1646  */
6369      break;
6370  
6371 <  case 600:
6372 < /* Line 1787 of yacc.c  */
6682 < #line 2955 "conf_parser.y"
6371 >  case 622:
6372 > #line 2945 "conf_parser.y" /* yacc.c:1646  */
6373      {
6374 <  ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6374 >  ConfigChannel.invite_client_time = (yyvsp[-1].number);
6375   }
6376 + #line 6377 "conf_parser.c" /* yacc.c:1646  */
6377      break;
6378  
6379 <  case 601:
6380 < /* Line 1787 of yacc.c  */
6690 < #line 2960 "conf_parser.y"
6379 >  case 623:
6380 > #line 2950 "conf_parser.y" /* yacc.c:1646  */
6381      {
6382 <  ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6382 >  ConfigChannel.knock_client_count = (yyvsp[-1].number);
6383   }
6384 + #line 6385 "conf_parser.c" /* yacc.c:1646  */
6385      break;
6386  
6387 <  case 602:
6388 < /* Line 1787 of yacc.c  */
6698 < #line 2965 "conf_parser.y"
6387 >  case 624:
6388 > #line 2955 "conf_parser.y" /* yacc.c:1646  */
6389      {
6390 <  ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6390 >  ConfigChannel.knock_client_time = (yyvsp[-1].number);
6391   }
6392 + #line 6393 "conf_parser.c" /* yacc.c:1646  */
6393      break;
6394  
6395 <  case 603:
6396 < /* Line 1787 of yacc.c  */
6706 < #line 2970 "conf_parser.y"
6395 >  case 625:
6396 > #line 2960 "conf_parser.y" /* yacc.c:1646  */
6397      {
6398 <  ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6398 >  ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6399   }
6400 + #line 6401 "conf_parser.c" /* yacc.c:1646  */
6401      break;
6402  
6403 <  case 604:
6404 < /* Line 1787 of yacc.c  */
6714 < #line 2975 "conf_parser.y"
6403 >  case 626:
6404 > #line 2965 "conf_parser.y" /* yacc.c:1646  */
6405      {
6406 <  ConfigChannel.quiet_on_ban = yylval.number;
6406 >  ConfigChannel.max_channels = (yyvsp[-1].number);
6407   }
6408 + #line 6409 "conf_parser.c" /* yacc.c:1646  */
6409      break;
6410  
6411 <  case 605:
6412 < /* Line 1787 of yacc.c  */
6722 < #line 2980 "conf_parser.y"
6411 >  case 627:
6412 > #line 2970 "conf_parser.y" /* yacc.c:1646  */
6413      {
6414 <  ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6414 >  ConfigChannel.max_bans = (yyvsp[-1].number);
6415   }
6416 + #line 6417 "conf_parser.c" /* yacc.c:1646  */
6417      break;
6418  
6419 <  case 606:
6420 < /* Line 1787 of yacc.c  */
6730 < #line 2985 "conf_parser.y"
6419 >  case 628:
6420 > #line 2975 "conf_parser.y" /* yacc.c:1646  */
6421      {
6422 <  ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6422 >  ConfigChannel.default_split_user_count = (yyvsp[-1].number);
6423   }
6424 + #line 6425 "conf_parser.c" /* yacc.c:1646  */
6425      break;
6426  
6427 <  case 607:
6428 < /* Line 1787 of yacc.c  */
6738 < #line 2990 "conf_parser.y"
6427 >  case 629:
6428 > #line 2980 "conf_parser.y" /* yacc.c:1646  */
6429      {
6430 <  ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6430 >  ConfigChannel.default_split_server_count = (yyvsp[-1].number);
6431   }
6432 + #line 6433 "conf_parser.c" /* yacc.c:1646  */
6433      break;
6434  
6435 <  case 608:
6436 < /* Line 1787 of yacc.c  */
6746 < #line 2995 "conf_parser.y"
6435 >  case 630:
6436 > #line 2985 "conf_parser.y" /* yacc.c:1646  */
6437      {
6438    ConfigChannel.no_create_on_split = yylval.number;
6439   }
6440 + #line 6441 "conf_parser.c" /* yacc.c:1646  */
6441      break;
6442  
6443 <  case 609:
6444 < /* Line 1787 of yacc.c  */
6754 < #line 3000 "conf_parser.y"
6443 >  case 631:
6444 > #line 2990 "conf_parser.y" /* yacc.c:1646  */
6445      {
6446    ConfigChannel.no_join_on_split = yylval.number;
6447   }
6448 + #line 6449 "conf_parser.c" /* yacc.c:1646  */
6449      break;
6450  
6451 <  case 610:
6452 < /* Line 1787 of yacc.c  */
6762 < #line 3005 "conf_parser.y"
6451 >  case 632:
6452 > #line 2995 "conf_parser.y" /* yacc.c:1646  */
6453      {
6454    GlobalSetOptions.joinfloodcount = yylval.number;
6455   }
6456 + #line 6457 "conf_parser.c" /* yacc.c:1646  */
6457      break;
6458  
6459 <  case 611:
6460 < /* Line 1787 of yacc.c  */
6770 < #line 3010 "conf_parser.y"
6459 >  case 633:
6460 > #line 3000 "conf_parser.y" /* yacc.c:1646  */
6461      {
6462 <  GlobalSetOptions.joinfloodtime = yylval.number;
6462 >  GlobalSetOptions.joinfloodtime = (yyvsp[-1].number);
6463   }
6464 + #line 6465 "conf_parser.c" /* yacc.c:1646  */
6465      break;
6466  
6467 <  case 622:
6468 < /* Line 1787 of yacc.c  */
6778 < #line 3028 "conf_parser.y"
6467 >  case 646:
6468 > #line 3022 "conf_parser.y" /* yacc.c:1646  */
6469      {
6470    if (conf_parser_ctx.pass == 2)
6471      ConfigServerHide.flatten_links = yylval.number;
6472   }
6473 + #line 6474 "conf_parser.c" /* yacc.c:1646  */
6474      break;
6475  
6476 <  case 623:
6477 < /* Line 1787 of yacc.c  */
6478 < #line 3034 "conf_parser.y"
6476 >  case 647:
6477 > #line 3028 "conf_parser.y" /* yacc.c:1646  */
6478 >    {
6479 >  if (conf_parser_ctx.pass == 2)
6480 >    ConfigServerHide.disable_remote_commands = yylval.number;
6481 > }
6482 > #line 6483 "conf_parser.c" /* yacc.c:1646  */
6483 >    break;
6484 >
6485 >  case 648:
6486 > #line 3034 "conf_parser.y" /* yacc.c:1646  */
6487      {
6488    if (conf_parser_ctx.pass == 2)
6489      ConfigServerHide.hide_servers = yylval.number;
6490   }
6491 + #line 6492 "conf_parser.c" /* yacc.c:1646  */
6492      break;
6493  
6494 <  case 624:
6495 < /* Line 1787 of yacc.c  */
6496 < #line 3040 "conf_parser.y"
6494 >  case 649:
6495 > #line 3040 "conf_parser.y" /* yacc.c:1646  */
6496 >    {
6497 >  if (conf_parser_ctx.pass == 2)
6498 >    ConfigServerHide.hide_services = yylval.number;
6499 > }
6500 > #line 6501 "conf_parser.c" /* yacc.c:1646  */
6501 >    break;
6502 >
6503 >  case 650:
6504 > #line 3046 "conf_parser.y" /* yacc.c:1646  */
6505      {
6506    if (conf_parser_ctx.pass == 2)
6507    {
6508      MyFree(ConfigServerHide.hidden_name);
6509 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6509 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6510    }
6511   }
6512 + #line 6513 "conf_parser.c" /* yacc.c:1646  */
6513      break;
6514  
6515 <  case 625:
6516 < /* Line 1787 of yacc.c  */
6808 < #line 3049 "conf_parser.y"
6515 >  case 651:
6516 > #line 3055 "conf_parser.y" /* yacc.c:1646  */
6517      {
6518    if (conf_parser_ctx.pass == 2)
6519    {
6520 <    if (((yyvsp[(3) - (4)].number) > 0) && ConfigServerHide.links_disabled == 1)
6520 >    if (((yyvsp[-1].number) > 0) && ConfigServerHide.links_disabled == 1)
6521      {
6522 <      eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[(3) - (4)].number));
6522 >      event_write_links_file.when = (yyvsp[-1].number);
6523 >      event_addish(&event_write_links_file, NULL);
6524        ConfigServerHide.links_disabled = 0;
6525      }
6526  
6527 <    ConfigServerHide.links_delay = (yyvsp[(3) - (4)].number);
6527 >    ConfigServerHide.links_delay = (yyvsp[-1].number);
6528    }
6529   }
6530 + #line 6531 "conf_parser.c" /* yacc.c:1646  */
6531      break;
6532  
6533 <  case 626:
6534 < /* Line 1787 of yacc.c  */
6825 < #line 3063 "conf_parser.y"
6533 >  case 652:
6534 > #line 3070 "conf_parser.y" /* yacc.c:1646  */
6535      {
6536    if (conf_parser_ctx.pass == 2)
6537      ConfigServerHide.hidden = yylval.number;
6538   }
6539 + #line 6540 "conf_parser.c" /* yacc.c:1646  */
6540      break;
6541  
6542 <  case 627:
6543 < /* Line 1787 of yacc.c  */
6834 < #line 3069 "conf_parser.y"
6542 >  case 653:
6543 > #line 3076 "conf_parser.y" /* yacc.c:1646  */
6544      {
6545    if (conf_parser_ctx.pass == 2)
6546      ConfigServerHide.hide_server_ips = yylval.number;
6547   }
6548 + #line 6549 "conf_parser.c" /* yacc.c:1646  */
6549      break;
6550  
6551  
6552 < /* Line 1787 of yacc.c  */
6843 < #line 6844 "conf_parser.c"
6552 > #line 6553 "conf_parser.c" /* yacc.c:1646  */
6553        default: break;
6554      }
6555    /* User semantic actions sometimes alter yychar, and that requires
# Line 6862 | Line 6571 | yyreduce:
6571  
6572    *++yyvsp = yyval;
6573  
6574 <  /* Now `shift' the result of the reduction.  Determine what state
6574 >  /* Now 'shift' the result of the reduction.  Determine what state
6575       that goes to, based on the state we popped back to and the rule
6576       number reduced by.  */
6577  
# Line 6877 | Line 6586 | yyreduce:
6586    goto yynewstate;
6587  
6588  
6589 < /*------------------------------------.
6590 < | yyerrlab -- here on detecting error |
6591 < `------------------------------------*/
6589 > /*--------------------------------------.
6590 > | yyerrlab -- here on detecting error.  |
6591 > `--------------------------------------*/
6592   yyerrlab:
6593    /* Make sure we have latest lookahead translation.  See comments at
6594       user semantic actions for why this is necessary.  */
# Line 6930 | Line 6639 | yyerrlab:
6639    if (yyerrstatus == 3)
6640      {
6641        /* If just tried and failed to reuse lookahead token after an
6642 <         error, discard it.  */
6642 >         error, discard it.  */
6643  
6644        if (yychar <= YYEOF)
6645 <        {
6646 <          /* Return failure if at end of input.  */
6647 <          if (yychar == YYEOF)
6648 <            YYABORT;
6649 <        }
6645 >        {
6646 >          /* Return failure if at end of input.  */
6647 >          if (yychar == YYEOF)
6648 >            YYABORT;
6649 >        }
6650        else
6651 <        {
6652 <          yydestruct ("Error: discarding",
6653 <                      yytoken, &yylval);
6654 <          yychar = YYEMPTY;
6655 <        }
6651 >        {
6652 >          yydestruct ("Error: discarding",
6653 >                      yytoken, &yylval);
6654 >          yychar = YYEMPTY;
6655 >        }
6656      }
6657  
6658    /* Else will try to reuse lookahead token after shifting the error
# Line 6962 | Line 6671 | yyerrorlab:
6671    if (/*CONSTCOND*/ 0)
6672       goto yyerrorlab;
6673  
6674 <  /* Do not reclaim the symbols of the rule which action triggered
6674 >  /* Do not reclaim the symbols of the rule whose action triggered
6675       this YYERROR.  */
6676    YYPOPSTACK (yylen);
6677    yylen = 0;
# Line 6975 | Line 6684 | yyerrorlab:
6684   | yyerrlab1 -- common code for both syntax error and YYERROR.  |
6685   `-------------------------------------------------------------*/
6686   yyerrlab1:
6687 <  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6687 >  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6688  
6689    for (;;)
6690      {
6691        yyn = yypact[yystate];
6692        if (!yypact_value_is_default (yyn))
6693 <        {
6694 <          yyn += YYTERROR;
6695 <          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6696 <            {
6697 <              yyn = yytable[yyn];
6698 <              if (0 < yyn)
6699 <                break;
6700 <            }
6701 <        }
6693 >        {
6694 >          yyn += YYTERROR;
6695 >          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6696 >            {
6697 >              yyn = yytable[yyn];
6698 >              if (0 < yyn)
6699 >                break;
6700 >            }
6701 >        }
6702  
6703        /* Pop the current state because it cannot handle the error token.  */
6704        if (yyssp == yyss)
6705 <        YYABORT;
6705 >        YYABORT;
6706  
6707  
6708        yydestruct ("Error: popping",
6709 <                  yystos[yystate], yyvsp);
6709 >                  yystos[yystate], yyvsp);
6710        YYPOPSTACK (1);
6711        yystate = *yyssp;
6712        YY_STACK_PRINT (yyss, yyssp);
6713      }
6714  
6715 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6716    *++yyvsp = yylval;
6717 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6718  
6719  
6720    /* Shift the error token.  */
# Line 7046 | Line 6757 | yyreturn:
6757        yydestruct ("Cleanup: discarding lookahead",
6758                    yytoken, &yylval);
6759      }
6760 <  /* Do not reclaim the symbols of the rule which action triggered
6760 >  /* Do not reclaim the symbols of the rule whose action triggered
6761       this YYABORT or YYACCEPT.  */
6762    YYPOPSTACK (yylen);
6763    YY_STACK_PRINT (yyss, yyssp);
6764    while (yyssp != yyss)
6765      {
6766        yydestruct ("Cleanup: popping",
6767 <                  yystos[*yyssp], yyvsp);
6767 >                  yystos[*yyssp], yyvsp);
6768        YYPOPSTACK (1);
6769      }
6770   #ifndef yyoverflow
# Line 7064 | Line 6775 | yyreturn:
6775    if (yymsg != yymsgbuf)
6776      YYSTACK_FREE (yymsg);
6777   #endif
6778 <  /* Make sure YYID is used.  */
7068 <  return YYID (yyresult);
6778 >  return yyresult;
6779   }
7070
7071

Comparing:
ircd-hybrid-8/src/conf_parser.c (property svn:keywords), Revision 1549 by michael, Mon Oct 1 18:11:11 2012 UTC vs.
ircd-hybrid/branches/8.2.x/src/conf_parser.c (property svn:keywords), Revision 4259 by michael, Fri Jul 18 20:47:03 2014 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

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