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

Comparing:
ircd-hybrid/trunk/src/conf_parser.c (file contents), Revision 1592 by michael, Sat Oct 27 21:02:32 2012 UTC vs.
ircd-hybrid/branches/8.2.x/src/conf_parser.c (file contents), Revision 3863 by michael, Thu Jun 5 20:31:35 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 >    cidr_bitlen_ipv4,
149 >    cidr_bitlen_ipv6,
150 >    number_per_cidr;
151 > } block_state;
152  
153   static void
154 < free_collect_item(struct CollectItem *item)
154 > reset_block_state(void)
155   {
156 <  MyFree(item->name);
157 <  MyFree(item->user);
158 <  MyFree(item->host);
159 <  MyFree(item->passwd);
160 < #ifdef HAVE_LIBCRYPTO
161 <  MyFree(item->rsa_public_key_file);
162 < #endif
163 <  MyFree(item);
156 >  dlink_node *ptr = NULL, *ptr_next = NULL;
157 >
158 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
159 >  {
160 >    MyFree(ptr->data);
161 >    dlinkDelete(ptr, &block_state.mask.list);
162 >    free_dlink_node(ptr);
163 >  }
164 >
165 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
166 >  {
167 >    MyFree(ptr->data);
168 >    dlinkDelete(ptr, &block_state.leaf.list);
169 >    free_dlink_node(ptr);
170 >  }
171 >
172 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
173 >  {
174 >    MyFree(ptr->data);
175 >    dlinkDelete(ptr, &block_state.hub.list);
176 >    free_dlink_node(ptr);
177 >  }
178 >
179 >  memset(&block_state, 0, sizeof(block_state));
180   }
181  
182  
183 < /* Line 336 of yacc.c  */
152 < #line 153 "conf_parser.c"
183 > #line 184 "conf_parser.c" /* yacc.c:339  */
184  
185 < # ifndef YY_NULL
185 > # ifndef YY_NULLPTR
186   #  if defined __cplusplus && 201103L <= __cplusplus
187 < #   define YY_NULL nullptr
187 > #   define YY_NULLPTR nullptr
188   #  else
189 < #   define YY_NULL 0
189 > #   define YY_NULLPTR 0
190   #  endif
191   # endif
192  
# Line 169 | Line 200 | free_collect_item(struct CollectItem *it
200  
201   /* In a future release of Bison, this section will be replaced
202     by #include "y.tab.h".  */
203 < #ifndef YY_Y_TAB_H
204 < # define YY_Y_TAB_H
205 < /* Enabling traces.  */
203 > #ifndef YY_YY_CONF_PARSER_H_INCLUDED
204 > # define YY_YY_CONF_PARSER_H_INCLUDED
205 > /* Debug traces.  */
206   #ifndef YYDEBUG
207   # define YYDEBUG 0
208   #endif
# Line 179 | Line 210 | free_collect_item(struct CollectItem *it
210   extern int yydebug;
211   #endif
212  
213 < /* Tokens.  */
213 > /* Token type.  */
214   #ifndef YYTOKENTYPE
215   # define YYTOKENTYPE
216 <   /* Put the tokens into the symbol table, so that GDB and other debuggers
217 <      know about them.  */
218 <   enum yytokentype {
219 <     ACCEPT_PASSWORD = 258,
220 <     ADMIN = 259,
221 <     AFTYPE = 260,
222 <     ANTI_NICK_FLOOD = 261,
223 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
224 <     AUTOCONN = 263,
225 <     BYTES = 264,
226 <     KBYTES = 265,
227 <     MBYTES = 266,
228 <     CALLER_ID_WAIT = 267,
229 <     CAN_FLOOD = 268,
230 <     CHANNEL = 269,
231 <     CIDR_BITLEN_IPV4 = 270,
232 <     CIDR_BITLEN_IPV6 = 271,
233 <     CLASS = 272,
234 <     CONNECT = 273,
235 <     CONNECTFREQ = 274,
236 <     DEFAULT_FLOODCOUNT = 275,
237 <     DEFAULT_SPLIT_SERVER_COUNT = 276,
238 <     DEFAULT_SPLIT_USER_COUNT = 277,
239 <     DENY = 278,
240 <     DESCRIPTION = 279,
241 <     DIE = 280,
242 <     DISABLE_AUTH = 281,
243 <     DISABLE_FAKE_CHANNELS = 282,
244 <     DISABLE_REMOTE_COMMANDS = 283,
245 <     DOTS_IN_IDENT = 284,
246 <     EGDPOOL_PATH = 285,
247 <     EMAIL = 286,
248 <     ENCRYPTED = 287,
249 <     EXCEED_LIMIT = 288,
250 <     EXEMPT = 289,
251 <     FAILED_OPER_NOTICE = 290,
252 <     IRCD_FLAGS = 291,
253 <     FLATTEN_LINKS = 292,
254 <     GECOS = 293,
255 <     GENERAL = 294,
256 <     GLINE = 295,
257 <     GLINE_DURATION = 296,
258 <     GLINE_ENABLE = 297,
259 <     GLINE_EXEMPT = 298,
260 <     GLINE_REQUEST_DURATION = 299,
261 <     GLINE_MIN_CIDR = 300,
262 <     GLINE_MIN_CIDR6 = 301,
263 <     GLOBAL_KILL = 302,
264 <     IRCD_AUTH = 303,
265 <     NEED_IDENT = 304,
266 <     HAVENT_READ_CONF = 305,
267 <     HIDDEN = 306,
268 <     HIDDEN_NAME = 307,
269 <     HIDE_SERVER_IPS = 308,
270 <     HIDE_SERVERS = 309,
271 <     HIDE_SPOOF_IPS = 310,
272 <     HOST = 311,
273 <     HUB = 312,
274 <     HUB_MASK = 313,
275 <     IGNORE_BOGUS_TS = 314,
276 <     INVISIBLE_ON_CONNECT = 315,
277 <     IP = 316,
278 <     KILL = 317,
279 <     KILL_CHASE_TIME_LIMIT = 318,
280 <     KLINE = 319,
281 <     KLINE_EXEMPT = 320,
282 <     KNOCK_DELAY = 321,
283 <     KNOCK_DELAY_CHANNEL = 322,
284 <     LEAF_MASK = 323,
285 <     LINKS_DELAY = 324,
286 <     LISTEN = 325,
287 <     T_LOG = 326,
288 <     MAX_ACCEPT = 327,
289 <     MAX_BANS = 328,
290 <     MAX_CHANS_PER_OPER = 329,
291 <     MAX_CHANS_PER_USER = 330,
292 <     MAX_GLOBAL = 331,
293 <     MAX_IDENT = 332,
294 <     MAX_LOCAL = 333,
295 <     MAX_NICK_CHANGES = 334,
296 <     MAX_NICK_TIME = 335,
297 <     MAX_NUMBER = 336,
298 <     MAX_TARGETS = 337,
299 <     MAX_WATCH = 338,
300 <     MESSAGE_LOCALE = 339,
301 <     MIN_NONWILDCARD = 340,
302 <     MIN_NONWILDCARD_SIMPLE = 341,
303 <     MODULE = 342,
304 <     MODULES = 343,
305 <     NAME = 344,
306 <     NEED_PASSWORD = 345,
307 <     NETWORK_DESC = 346,
308 <     NETWORK_NAME = 347,
309 <     NICK = 348,
310 <     NICK_CHANGES = 349,
311 <     NO_CREATE_ON_SPLIT = 350,
312 <     NO_JOIN_ON_SPLIT = 351,
313 <     NO_OPER_FLOOD = 352,
314 <     NO_TILDE = 353,
315 <     NUMBER = 354,
316 <     NUMBER_PER_CIDR = 355,
317 <     NUMBER_PER_IP = 356,
318 <     OPERATOR = 357,
319 <     OPERS_BYPASS_CALLERID = 358,
320 <     OPER_ONLY_UMODES = 359,
321 <     OPER_PASS_RESV = 360,
322 <     OPER_SPY_T = 361,
323 <     OPER_UMODES = 362,
324 <     JOIN_FLOOD_COUNT = 363,
325 <     JOIN_FLOOD_TIME = 364,
326 <     PACE_WAIT = 365,
327 <     PACE_WAIT_SIMPLE = 366,
328 <     PASSWORD = 367,
329 <     PATH = 368,
330 <     PING_COOKIE = 369,
331 <     PING_TIME = 370,
332 <     PING_WARNING = 371,
333 <     PORT = 372,
334 <     QSTRING = 373,
335 <     QUIET_ON_BAN = 374,
336 <     REASON = 375,
337 <     REDIRPORT = 376,
338 <     REDIRSERV = 377,
339 <     REGEX_T = 378,
340 <     REHASH = 379,
341 <     REMOTE = 380,
342 <     REMOTEBAN = 381,
343 <     RESTRICT_CHANNELS = 382,
344 <     RSA_PRIVATE_KEY_FILE = 383,
345 <     RSA_PUBLIC_KEY_FILE = 384,
346 <     SSL_CERTIFICATE_FILE = 385,
347 <     SSL_DH_PARAM_FILE = 386,
348 <     T_SSL_CLIENT_METHOD = 387,
349 <     T_SSL_SERVER_METHOD = 388,
350 <     T_SSLV3 = 389,
351 <     T_TLSV1 = 390,
352 <     RESV = 391,
353 <     RESV_EXEMPT = 392,
354 <     SECONDS = 393,
355 <     MINUTES = 394,
356 <     HOURS = 395,
357 <     DAYS = 396,
358 <     WEEKS = 397,
359 <     SENDQ = 398,
360 <     SEND_PASSWORD = 399,
361 <     SERVERHIDE = 400,
362 <     SERVERINFO = 401,
363 <     IRCD_SID = 402,
364 <     TKLINE_EXPIRE_NOTICES = 403,
365 <     T_SHARED = 404,
366 <     T_CLUSTER = 405,
367 <     TYPE = 406,
368 <     SHORT_MOTD = 407,
369 <     SPOOF = 408,
370 <     SPOOF_NOTICE = 409,
371 <     STATS_E_DISABLED = 410,
372 <     STATS_I_OPER_ONLY = 411,
373 <     STATS_K_OPER_ONLY = 412,
374 <     STATS_O_OPER_ONLY = 413,
375 <     STATS_P_OPER_ONLY = 414,
376 <     TBOOL = 415,
377 <     TMASKED = 416,
378 <     TS_MAX_DELTA = 417,
379 <     TS_WARN_DELTA = 418,
380 <     TWODOTS = 419,
381 <     T_ALL = 420,
382 <     T_BOTS = 421,
383 <     T_SOFTCALLERID = 422,
384 <     T_CALLERID = 423,
385 <     T_CCONN = 424,
386 <     T_CCONN_FULL = 425,
387 <     T_SSL_CIPHER_LIST = 426,
388 <     T_DEAF = 427,
389 <     T_DEBUG = 428,
390 <     T_DLINE = 429,
391 <     T_EXTERNAL = 430,
392 <     T_FULL = 431,
393 <     T_INVISIBLE = 432,
394 <     T_IPV4 = 433,
395 <     T_IPV6 = 434,
396 <     T_LOCOPS = 435,
397 <     T_MAX_CLIENTS = 436,
398 <     T_NCHANGE = 437,
399 <     T_OPERWALL = 438,
400 <     T_RECVQ = 439,
401 <     T_REJ = 440,
402 <     T_SERVER = 441,
403 <     T_SERVNOTICE = 442,
404 <     T_SET = 443,
405 <     T_SKILL = 444,
406 <     T_SPY = 445,
407 <     T_SSL = 446,
408 <     T_UMODES = 447,
409 <     T_UNAUTH = 448,
410 <     T_UNDLINE = 449,
411 <     T_UNLIMITED = 450,
412 <     T_UNRESV = 451,
413 <     T_UNXLINE = 452,
414 <     T_GLOBOPS = 453,
415 <     T_WALLOP = 454,
416 <     T_RESTART = 455,
417 <     T_SERVICE = 456,
418 <     T_SERVICES_NAME = 457,
419 <     THROTTLE_TIME = 458,
420 <     TRUE_NO_OPER_FLOOD = 459,
421 <     UNKLINE = 460,
422 <     USER = 461,
423 <     USE_EGD = 462,
424 <     USE_LOGGING = 463,
425 <     VHOST = 464,
426 <     VHOST6 = 465,
427 <     XLINE = 466,
428 <     WARN_NO_NLINE = 467,
429 <     T_SIZE = 468,
430 <     T_FILE = 469
431 <   };
216 >  enum yytokentype
217 >  {
218 >    ACCEPT_PASSWORD = 258,
219 >    ADMIN = 259,
220 >    AFTYPE = 260,
221 >    ANTI_NICK_FLOOD = 261,
222 >    ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
223 >    AUTOCONN = 263,
224 >    BYTES = 264,
225 >    KBYTES = 265,
226 >    MBYTES = 266,
227 >    CALLER_ID_WAIT = 267,
228 >    CAN_FLOOD = 268,
229 >    CHANNEL = 269,
230 >    CIDR_BITLEN_IPV4 = 270,
231 >    CIDR_BITLEN_IPV6 = 271,
232 >    CLASS = 272,
233 >    CONNECT = 273,
234 >    CONNECTFREQ = 274,
235 >    CYCLE_ON_HOST_CHANGE = 275,
236 >    DEFAULT_FLOODCOUNT = 276,
237 >    DEFAULT_SPLIT_SERVER_COUNT = 277,
238 >    DEFAULT_SPLIT_USER_COUNT = 278,
239 >    DENY = 279,
240 >    DESCRIPTION = 280,
241 >    DIE = 281,
242 >    DISABLE_AUTH = 282,
243 >    DISABLE_FAKE_CHANNELS = 283,
244 >    DISABLE_REMOTE_COMMANDS = 284,
245 >    DOTS_IN_IDENT = 285,
246 >    EGDPOOL_PATH = 286,
247 >    EMAIL = 287,
248 >    ENCRYPTED = 288,
249 >    EXCEED_LIMIT = 289,
250 >    EXEMPT = 290,
251 >    FAILED_OPER_NOTICE = 291,
252 >    FLATTEN_LINKS = 292,
253 >    GECOS = 293,
254 >    GENERAL = 294,
255 >    GLINE = 295,
256 >    GLINE_DURATION = 296,
257 >    GLINE_ENABLE = 297,
258 >    GLINE_EXEMPT = 298,
259 >    GLINE_MIN_CIDR = 299,
260 >    GLINE_MIN_CIDR6 = 300,
261 >    GLINE_REQUEST_DURATION = 301,
262 >    GLOBAL_KILL = 302,
263 >    HAVENT_READ_CONF = 303,
264 >    HIDDEN = 304,
265 >    HIDDEN_NAME = 305,
266 >    HIDE_CHANS = 306,
267 >    HIDE_IDLE = 307,
268 >    HIDE_IDLE_FROM_OPERS = 308,
269 >    HIDE_SERVER_IPS = 309,
270 >    HIDE_SERVERS = 310,
271 >    HIDE_SERVICES = 311,
272 >    HIDE_SPOOF_IPS = 312,
273 >    HOST = 313,
274 >    HUB = 314,
275 >    HUB_MASK = 315,
276 >    IGNORE_BOGUS_TS = 316,
277 >    INVISIBLE_ON_CONNECT = 317,
278 >    INVITE_CLIENT_COUNT = 318,
279 >    INVITE_CLIENT_TIME = 319,
280 >    IP = 320,
281 >    IRCD_AUTH = 321,
282 >    IRCD_FLAGS = 322,
283 >    IRCD_SID = 323,
284 >    JOIN_FLOOD_COUNT = 324,
285 >    JOIN_FLOOD_TIME = 325,
286 >    KILL = 326,
287 >    KILL_CHASE_TIME_LIMIT = 327,
288 >    KLINE = 328,
289 >    KLINE_EXEMPT = 329,
290 >    KNOCK_CLIENT_COUNT = 330,
291 >    KNOCK_CLIENT_TIME = 331,
292 >    KNOCK_DELAY_CHANNEL = 332,
293 >    LEAF_MASK = 333,
294 >    LINKS_DELAY = 334,
295 >    LISTEN = 335,
296 >    MASK = 336,
297 >    MAX_ACCEPT = 337,
298 >    MAX_BANS = 338,
299 >    MAX_CHANS_PER_OPER = 339,
300 >    MAX_CHANS_PER_USER = 340,
301 >    MAX_GLOBAL = 341,
302 >    MAX_IDENT = 342,
303 >    MAX_IDLE = 343,
304 >    MAX_LOCAL = 344,
305 >    MAX_NICK_CHANGES = 345,
306 >    MAX_NICK_LENGTH = 346,
307 >    MAX_NICK_TIME = 347,
308 >    MAX_NUMBER = 348,
309 >    MAX_TARGETS = 349,
310 >    MAX_TOPIC_LENGTH = 350,
311 >    MAX_WATCH = 351,
312 >    MIN_IDLE = 352,
313 >    MIN_NONWILDCARD = 353,
314 >    MIN_NONWILDCARD_SIMPLE = 354,
315 >    MODULE = 355,
316 >    MODULES = 356,
317 >    MOTD = 357,
318 >    NAME = 358,
319 >    NEED_IDENT = 359,
320 >    NEED_PASSWORD = 360,
321 >    NETWORK_DESC = 361,
322 >    NETWORK_NAME = 362,
323 >    NICK = 363,
324 >    NO_CREATE_ON_SPLIT = 364,
325 >    NO_JOIN_ON_SPLIT = 365,
326 >    NO_OPER_FLOOD = 366,
327 >    NO_TILDE = 367,
328 >    NUMBER = 368,
329 >    NUMBER_PER_CIDR = 369,
330 >    NUMBER_PER_IP = 370,
331 >    OPER_ONLY_UMODES = 371,
332 >    OPER_PASS_RESV = 372,
333 >    OPER_UMODES = 373,
334 >    OPERATOR = 374,
335 >    OPERS_BYPASS_CALLERID = 375,
336 >    PACE_WAIT = 376,
337 >    PACE_WAIT_SIMPLE = 377,
338 >    PASSWORD = 378,
339 >    PATH = 379,
340 >    PING_COOKIE = 380,
341 >    PING_TIME = 381,
342 >    PORT = 382,
343 >    QSTRING = 383,
344 >    RANDOM_IDLE = 384,
345 >    REASON = 385,
346 >    REDIRPORT = 386,
347 >    REDIRSERV = 387,
348 >    REHASH = 388,
349 >    REMOTE = 389,
350 >    REMOTEBAN = 390,
351 >    RESV = 391,
352 >    RESV_EXEMPT = 392,
353 >    RSA_PRIVATE_KEY_FILE = 393,
354 >    RSA_PUBLIC_KEY_FILE = 394,
355 >    SECONDS = 395,
356 >    MINUTES = 396,
357 >    HOURS = 397,
358 >    DAYS = 398,
359 >    WEEKS = 399,
360 >    MONTHS = 400,
361 >    YEARS = 401,
362 >    SEND_PASSWORD = 402,
363 >    SENDQ = 403,
364 >    SERVERHIDE = 404,
365 >    SERVERINFO = 405,
366 >    SHORT_MOTD = 406,
367 >    SPOOF = 407,
368 >    SPOOF_NOTICE = 408,
369 >    SQUIT = 409,
370 >    SSL_CERTIFICATE_FILE = 410,
371 >    SSL_CERTIFICATE_FINGERPRINT = 411,
372 >    SSL_CONNECTION_REQUIRED = 412,
373 >    SSL_DH_PARAM_FILE = 413,
374 >    STATS_E_DISABLED = 414,
375 >    STATS_I_OPER_ONLY = 415,
376 >    STATS_K_OPER_ONLY = 416,
377 >    STATS_O_OPER_ONLY = 417,
378 >    STATS_P_OPER_ONLY = 418,
379 >    STATS_U_OPER_ONLY = 419,
380 >    T_ALL = 420,
381 >    T_BOTS = 421,
382 >    T_CALLERID = 422,
383 >    T_CCONN = 423,
384 >    T_CLUSTER = 424,
385 >    T_DEAF = 425,
386 >    T_DEBUG = 426,
387 >    T_DLINE = 427,
388 >    T_EXTERNAL = 428,
389 >    T_FARCONNECT = 429,
390 >    T_FILE = 430,
391 >    T_FULL = 431,
392 >    T_GLOBOPS = 432,
393 >    T_INVISIBLE = 433,
394 >    T_IPV4 = 434,
395 >    T_IPV6 = 435,
396 >    T_LOCOPS = 436,
397 >    T_LOG = 437,
398 >    T_MAX_CLIENTS = 438,
399 >    T_NCHANGE = 439,
400 >    T_NONONREG = 440,
401 >    T_OPERWALL = 441,
402 >    T_RECVQ = 442,
403 >    T_REJ = 443,
404 >    T_RESTART = 444,
405 >    T_SERVER = 445,
406 >    T_SERVICE = 446,
407 >    T_SERVICES_NAME = 447,
408 >    T_SERVNOTICE = 448,
409 >    T_SET = 449,
410 >    T_SHARED = 450,
411 >    T_SIZE = 451,
412 >    T_SKILL = 452,
413 >    T_SOFTCALLERID = 453,
414 >    T_SPY = 454,
415 >    T_SSL = 455,
416 >    T_SSL_CIPHER_LIST = 456,
417 >    T_SSL_CLIENT_METHOD = 457,
418 >    T_SSL_SERVER_METHOD = 458,
419 >    T_SSLV3 = 459,
420 >    T_TLSV1 = 460,
421 >    T_UMODES = 461,
422 >    T_UNAUTH = 462,
423 >    T_UNDLINE = 463,
424 >    T_UNLIMITED = 464,
425 >    T_UNRESV = 465,
426 >    T_UNXLINE = 466,
427 >    T_WALLOP = 467,
428 >    T_WALLOPS = 468,
429 >    T_WEBIRC = 469,
430 >    TBOOL = 470,
431 >    THROTTLE_TIME = 471,
432 >    TKLINE_EXPIRE_NOTICES = 472,
433 >    TMASKED = 473,
434 >    TRUE_NO_OPER_FLOOD = 474,
435 >    TS_MAX_DELTA = 475,
436 >    TS_WARN_DELTA = 476,
437 >    TWODOTS = 477,
438 >    TYPE = 478,
439 >    UNKLINE = 479,
440 >    USE_EGD = 480,
441 >    USE_LOGGING = 481,
442 >    USER = 482,
443 >    VHOST = 483,
444 >    VHOST6 = 484,
445 >    WARN_NO_CONNECT_BLOCK = 485,
446 >    XLINE = 486
447 >  };
448   #endif
449   /* Tokens.  */
450   #define ACCEPT_PASSWORD 258
# Line 417 | Line 464 | extern int yydebug;
464   #define CLASS 272
465   #define CONNECT 273
466   #define CONNECTFREQ 274
467 < #define DEFAULT_FLOODCOUNT 275
468 < #define DEFAULT_SPLIT_SERVER_COUNT 276
469 < #define DEFAULT_SPLIT_USER_COUNT 277
470 < #define DENY 278
471 < #define DESCRIPTION 279
472 < #define DIE 280
473 < #define DISABLE_AUTH 281
474 < #define DISABLE_FAKE_CHANNELS 282
475 < #define DISABLE_REMOTE_COMMANDS 283
476 < #define DOTS_IN_IDENT 284
477 < #define EGDPOOL_PATH 285
478 < #define EMAIL 286
479 < #define ENCRYPTED 287
480 < #define EXCEED_LIMIT 288
481 < #define EXEMPT 289
482 < #define FAILED_OPER_NOTICE 290
483 < #define IRCD_FLAGS 291
467 > #define CYCLE_ON_HOST_CHANGE 275
468 > #define DEFAULT_FLOODCOUNT 276
469 > #define DEFAULT_SPLIT_SERVER_COUNT 277
470 > #define DEFAULT_SPLIT_USER_COUNT 278
471 > #define DENY 279
472 > #define DESCRIPTION 280
473 > #define DIE 281
474 > #define DISABLE_AUTH 282
475 > #define DISABLE_FAKE_CHANNELS 283
476 > #define DISABLE_REMOTE_COMMANDS 284
477 > #define DOTS_IN_IDENT 285
478 > #define EGDPOOL_PATH 286
479 > #define EMAIL 287
480 > #define ENCRYPTED 288
481 > #define EXCEED_LIMIT 289
482 > #define EXEMPT 290
483 > #define FAILED_OPER_NOTICE 291
484   #define FLATTEN_LINKS 292
485   #define GECOS 293
486   #define GENERAL 294
# Line 441 | Line 488 | extern int yydebug;
488   #define GLINE_DURATION 296
489   #define GLINE_ENABLE 297
490   #define GLINE_EXEMPT 298
491 < #define GLINE_REQUEST_DURATION 299
492 < #define GLINE_MIN_CIDR 300
493 < #define GLINE_MIN_CIDR6 301
491 > #define GLINE_MIN_CIDR 299
492 > #define GLINE_MIN_CIDR6 300
493 > #define GLINE_REQUEST_DURATION 301
494   #define GLOBAL_KILL 302
495 < #define IRCD_AUTH 303
496 < #define NEED_IDENT 304
497 < #define HAVENT_READ_CONF 305
498 < #define HIDDEN 306
499 < #define HIDDEN_NAME 307
500 < #define HIDE_SERVER_IPS 308
501 < #define HIDE_SERVERS 309
502 < #define HIDE_SPOOF_IPS 310
503 < #define HOST 311
504 < #define HUB 312
505 < #define HUB_MASK 313
506 < #define IGNORE_BOGUS_TS 314
507 < #define INVISIBLE_ON_CONNECT 315
508 < #define IP 316
509 < #define KILL 317
510 < #define KILL_CHASE_TIME_LIMIT 318
511 < #define KLINE 319
512 < #define KLINE_EXEMPT 320
513 < #define KNOCK_DELAY 321
514 < #define KNOCK_DELAY_CHANNEL 322
515 < #define LEAF_MASK 323
516 < #define LINKS_DELAY 324
517 < #define LISTEN 325
518 < #define T_LOG 326
519 < #define MAX_ACCEPT 327
520 < #define MAX_BANS 328
521 < #define MAX_CHANS_PER_OPER 329
522 < #define MAX_CHANS_PER_USER 330
523 < #define MAX_GLOBAL 331
524 < #define MAX_IDENT 332
525 < #define MAX_LOCAL 333
526 < #define MAX_NICK_CHANGES 334
527 < #define MAX_NICK_TIME 335
528 < #define MAX_NUMBER 336
529 < #define MAX_TARGETS 337
530 < #define MAX_WATCH 338
531 < #define MESSAGE_LOCALE 339
532 < #define MIN_NONWILDCARD 340
533 < #define MIN_NONWILDCARD_SIMPLE 341
534 < #define MODULE 342
535 < #define MODULES 343
536 < #define NAME 344
537 < #define NEED_PASSWORD 345
538 < #define NETWORK_DESC 346
539 < #define NETWORK_NAME 347
540 < #define NICK 348
541 < #define NICK_CHANGES 349
542 < #define NO_CREATE_ON_SPLIT 350
543 < #define NO_JOIN_ON_SPLIT 351
544 < #define NO_OPER_FLOOD 352
545 < #define NO_TILDE 353
546 < #define NUMBER 354
547 < #define NUMBER_PER_CIDR 355
548 < #define NUMBER_PER_IP 356
549 < #define OPERATOR 357
550 < #define OPERS_BYPASS_CALLERID 358
551 < #define OPER_ONLY_UMODES 359
552 < #define OPER_PASS_RESV 360
553 < #define OPER_SPY_T 361
554 < #define OPER_UMODES 362
555 < #define JOIN_FLOOD_COUNT 363
556 < #define JOIN_FLOOD_TIME 364
557 < #define PACE_WAIT 365
558 < #define PACE_WAIT_SIMPLE 366
559 < #define PASSWORD 367
560 < #define PATH 368
561 < #define PING_COOKIE 369
562 < #define PING_TIME 370
563 < #define PING_WARNING 371
564 < #define PORT 372
565 < #define QSTRING 373
566 < #define QUIET_ON_BAN 374
567 < #define REASON 375
568 < #define REDIRPORT 376
569 < #define REDIRSERV 377
570 < #define REGEX_T 378
571 < #define REHASH 379
572 < #define REMOTE 380
573 < #define REMOTEBAN 381
574 < #define RESTRICT_CHANNELS 382
575 < #define RSA_PRIVATE_KEY_FILE 383
576 < #define RSA_PUBLIC_KEY_FILE 384
577 < #define SSL_CERTIFICATE_FILE 385
578 < #define SSL_DH_PARAM_FILE 386
579 < #define T_SSL_CLIENT_METHOD 387
580 < #define T_SSL_SERVER_METHOD 388
581 < #define T_SSLV3 389
582 < #define T_TLSV1 390
495 > #define HAVENT_READ_CONF 303
496 > #define HIDDEN 304
497 > #define HIDDEN_NAME 305
498 > #define HIDE_CHANS 306
499 > #define HIDE_IDLE 307
500 > #define HIDE_IDLE_FROM_OPERS 308
501 > #define HIDE_SERVER_IPS 309
502 > #define HIDE_SERVERS 310
503 > #define HIDE_SERVICES 311
504 > #define HIDE_SPOOF_IPS 312
505 > #define HOST 313
506 > #define HUB 314
507 > #define HUB_MASK 315
508 > #define IGNORE_BOGUS_TS 316
509 > #define INVISIBLE_ON_CONNECT 317
510 > #define INVITE_CLIENT_COUNT 318
511 > #define INVITE_CLIENT_TIME 319
512 > #define IP 320
513 > #define IRCD_AUTH 321
514 > #define IRCD_FLAGS 322
515 > #define IRCD_SID 323
516 > #define JOIN_FLOOD_COUNT 324
517 > #define JOIN_FLOOD_TIME 325
518 > #define KILL 326
519 > #define KILL_CHASE_TIME_LIMIT 327
520 > #define KLINE 328
521 > #define KLINE_EXEMPT 329
522 > #define KNOCK_CLIENT_COUNT 330
523 > #define KNOCK_CLIENT_TIME 331
524 > #define KNOCK_DELAY_CHANNEL 332
525 > #define LEAF_MASK 333
526 > #define LINKS_DELAY 334
527 > #define LISTEN 335
528 > #define MASK 336
529 > #define MAX_ACCEPT 337
530 > #define MAX_BANS 338
531 > #define MAX_CHANS_PER_OPER 339
532 > #define MAX_CHANS_PER_USER 340
533 > #define MAX_GLOBAL 341
534 > #define MAX_IDENT 342
535 > #define MAX_IDLE 343
536 > #define MAX_LOCAL 344
537 > #define MAX_NICK_CHANGES 345
538 > #define MAX_NICK_LENGTH 346
539 > #define MAX_NICK_TIME 347
540 > #define MAX_NUMBER 348
541 > #define MAX_TARGETS 349
542 > #define MAX_TOPIC_LENGTH 350
543 > #define MAX_WATCH 351
544 > #define MIN_IDLE 352
545 > #define MIN_NONWILDCARD 353
546 > #define MIN_NONWILDCARD_SIMPLE 354
547 > #define MODULE 355
548 > #define MODULES 356
549 > #define MOTD 357
550 > #define NAME 358
551 > #define NEED_IDENT 359
552 > #define NEED_PASSWORD 360
553 > #define NETWORK_DESC 361
554 > #define NETWORK_NAME 362
555 > #define NICK 363
556 > #define NO_CREATE_ON_SPLIT 364
557 > #define NO_JOIN_ON_SPLIT 365
558 > #define NO_OPER_FLOOD 366
559 > #define NO_TILDE 367
560 > #define NUMBER 368
561 > #define NUMBER_PER_CIDR 369
562 > #define NUMBER_PER_IP 370
563 > #define OPER_ONLY_UMODES 371
564 > #define OPER_PASS_RESV 372
565 > #define OPER_UMODES 373
566 > #define OPERATOR 374
567 > #define OPERS_BYPASS_CALLERID 375
568 > #define PACE_WAIT 376
569 > #define PACE_WAIT_SIMPLE 377
570 > #define PASSWORD 378
571 > #define PATH 379
572 > #define PING_COOKIE 380
573 > #define PING_TIME 381
574 > #define PORT 382
575 > #define QSTRING 383
576 > #define RANDOM_IDLE 384
577 > #define REASON 385
578 > #define REDIRPORT 386
579 > #define REDIRSERV 387
580 > #define REHASH 388
581 > #define REMOTE 389
582 > #define REMOTEBAN 390
583   #define RESV 391
584   #define RESV_EXEMPT 392
585 < #define SECONDS 393
586 < #define MINUTES 394
587 < #define HOURS 395
588 < #define DAYS 396
589 < #define WEEKS 397
590 < #define SENDQ 398
591 < #define SEND_PASSWORD 399
592 < #define SERVERHIDE 400
593 < #define SERVERINFO 401
594 < #define IRCD_SID 402
595 < #define TKLINE_EXPIRE_NOTICES 403
596 < #define T_SHARED 404
597 < #define T_CLUSTER 405
598 < #define TYPE 406
599 < #define SHORT_MOTD 407
600 < #define SPOOF 408
601 < #define SPOOF_NOTICE 409
602 < #define STATS_E_DISABLED 410
603 < #define STATS_I_OPER_ONLY 411
604 < #define STATS_K_OPER_ONLY 412
605 < #define STATS_O_OPER_ONLY 413
606 < #define STATS_P_OPER_ONLY 414
607 < #define TBOOL 415
608 < #define TMASKED 416
609 < #define TS_MAX_DELTA 417
610 < #define TS_WARN_DELTA 418
611 < #define TWODOTS 419
585 > #define RSA_PRIVATE_KEY_FILE 393
586 > #define RSA_PUBLIC_KEY_FILE 394
587 > #define SECONDS 395
588 > #define MINUTES 396
589 > #define HOURS 397
590 > #define DAYS 398
591 > #define WEEKS 399
592 > #define MONTHS 400
593 > #define YEARS 401
594 > #define SEND_PASSWORD 402
595 > #define SENDQ 403
596 > #define SERVERHIDE 404
597 > #define SERVERINFO 405
598 > #define SHORT_MOTD 406
599 > #define SPOOF 407
600 > #define SPOOF_NOTICE 408
601 > #define SQUIT 409
602 > #define SSL_CERTIFICATE_FILE 410
603 > #define SSL_CERTIFICATE_FINGERPRINT 411
604 > #define SSL_CONNECTION_REQUIRED 412
605 > #define SSL_DH_PARAM_FILE 413
606 > #define STATS_E_DISABLED 414
607 > #define STATS_I_OPER_ONLY 415
608 > #define STATS_K_OPER_ONLY 416
609 > #define STATS_O_OPER_ONLY 417
610 > #define STATS_P_OPER_ONLY 418
611 > #define STATS_U_OPER_ONLY 419
612   #define T_ALL 420
613   #define T_BOTS 421
614 < #define T_SOFTCALLERID 422
615 < #define T_CALLERID 423
616 < #define T_CCONN 424
617 < #define T_CCONN_FULL 425
618 < #define T_SSL_CIPHER_LIST 426
619 < #define T_DEAF 427
620 < #define T_DEBUG 428
621 < #define T_DLINE 429
622 < #define T_EXTERNAL 430
614 > #define T_CALLERID 422
615 > #define T_CCONN 423
616 > #define T_CLUSTER 424
617 > #define T_DEAF 425
618 > #define T_DEBUG 426
619 > #define T_DLINE 427
620 > #define T_EXTERNAL 428
621 > #define T_FARCONNECT 429
622 > #define T_FILE 430
623   #define T_FULL 431
624 < #define T_INVISIBLE 432
625 < #define T_IPV4 433
626 < #define T_IPV6 434
627 < #define T_LOCOPS 435
628 < #define T_MAX_CLIENTS 436
629 < #define T_NCHANGE 437
630 < #define T_OPERWALL 438
631 < #define T_RECVQ 439
632 < #define T_REJ 440
633 < #define T_SERVER 441
634 < #define T_SERVNOTICE 442
635 < #define T_SET 443
636 < #define T_SKILL 444
637 < #define T_SPY 445
638 < #define T_SSL 446
639 < #define T_UMODES 447
640 < #define T_UNAUTH 448
641 < #define T_UNDLINE 449
642 < #define T_UNLIMITED 450
643 < #define T_UNRESV 451
644 < #define T_UNXLINE 452
645 < #define T_GLOBOPS 453
646 < #define T_WALLOP 454
647 < #define T_RESTART 455
648 < #define T_SERVICE 456
649 < #define T_SERVICES_NAME 457
650 < #define THROTTLE_TIME 458
651 < #define TRUE_NO_OPER_FLOOD 459
652 < #define UNKLINE 460
653 < #define USER 461
654 < #define USE_EGD 462
655 < #define USE_LOGGING 463
656 < #define VHOST 464
657 < #define VHOST6 465
658 < #define XLINE 466
659 < #define WARN_NO_NLINE 467
660 < #define T_SIZE 468
661 < #define T_FILE 469
662 <
663 <
624 > #define T_GLOBOPS 432
625 > #define T_INVISIBLE 433
626 > #define T_IPV4 434
627 > #define T_IPV6 435
628 > #define T_LOCOPS 436
629 > #define T_LOG 437
630 > #define T_MAX_CLIENTS 438
631 > #define T_NCHANGE 439
632 > #define T_NONONREG 440
633 > #define T_OPERWALL 441
634 > #define T_RECVQ 442
635 > #define T_REJ 443
636 > #define T_RESTART 444
637 > #define T_SERVER 445
638 > #define T_SERVICE 446
639 > #define T_SERVICES_NAME 447
640 > #define T_SERVNOTICE 448
641 > #define T_SET 449
642 > #define T_SHARED 450
643 > #define T_SIZE 451
644 > #define T_SKILL 452
645 > #define T_SOFTCALLERID 453
646 > #define T_SPY 454
647 > #define T_SSL 455
648 > #define T_SSL_CIPHER_LIST 456
649 > #define T_SSL_CLIENT_METHOD 457
650 > #define T_SSL_SERVER_METHOD 458
651 > #define T_SSLV3 459
652 > #define T_TLSV1 460
653 > #define T_UMODES 461
654 > #define T_UNAUTH 462
655 > #define T_UNDLINE 463
656 > #define T_UNLIMITED 464
657 > #define T_UNRESV 465
658 > #define T_UNXLINE 466
659 > #define T_WALLOP 467
660 > #define T_WALLOPS 468
661 > #define T_WEBIRC 469
662 > #define TBOOL 470
663 > #define THROTTLE_TIME 471
664 > #define TKLINE_EXPIRE_NOTICES 472
665 > #define TMASKED 473
666 > #define TRUE_NO_OPER_FLOOD 474
667 > #define TS_MAX_DELTA 475
668 > #define TS_WARN_DELTA 476
669 > #define TWODOTS 477
670 > #define TYPE 478
671 > #define UNKLINE 479
672 > #define USE_EGD 480
673 > #define USE_LOGGING 481
674 > #define USER 482
675 > #define VHOST 483
676 > #define VHOST6 484
677 > #define WARN_NO_CONNECT_BLOCK 485
678 > #define XLINE 486
679  
680 + /* Value type.  */
681   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
682 < typedef union YYSTYPE
682 > typedef union YYSTYPE YYSTYPE;
683 > union YYSTYPE
684   {
685 < /* Line 350 of yacc.c  */
622 < #line 110 "conf_parser.y"
685 > #line 146 "conf_parser.y" /* yacc.c:355  */
686  
687    int number;
688    char *string;
689  
690 <
691 < /* Line 350 of yacc.c  */
629 < #line 630 "conf_parser.c"
630 < } YYSTYPE;
690 > #line 691 "conf_parser.c" /* yacc.c:355  */
691 > };
692   # define YYSTYPE_IS_TRIVIAL 1
632 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
693   # define YYSTYPE_IS_DECLARED 1
694   #endif
695  
696 +
697   extern YYSTYPE yylval;
698  
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
699   int yyparse (void);
647 #else
648 int yyparse ();
649 #endif
650 #endif /* ! YYPARSE_PARAM */
700  
701 < #endif /* !YY_Y_TAB_H  */
701 > #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
702  
703   /* Copy the second part of user declarations.  */
704  
705 < /* Line 353 of yacc.c  */
657 < #line 658 "conf_parser.c"
705 > #line 706 "conf_parser.c" /* yacc.c:358  */
706  
707   #ifdef short
708   # undef short
# Line 668 | Line 716 | typedef unsigned char yytype_uint8;
716  
717   #ifdef YYTYPE_INT8
718   typedef YYTYPE_INT8 yytype_int8;
671 #elif (defined __STDC__ || defined __C99__FUNC__ \
672     || defined __cplusplus || defined _MSC_VER)
673 typedef signed char yytype_int8;
719   #else
720 < typedef short int yytype_int8;
720 > typedef signed char yytype_int8;
721   #endif
722  
723   #ifdef YYTYPE_UINT16
# Line 692 | Line 737 | typedef short int yytype_int16;
737   #  define YYSIZE_T __SIZE_TYPE__
738   # elif defined size_t
739   #  define YYSIZE_T size_t
740 < # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
696 <     || defined __cplusplus || defined _MSC_VER)
740 > # elif ! defined YYSIZE_T
741   #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
742   #  define YYSIZE_T size_t
743   # else
# Line 707 | Line 751 | typedef short int yytype_int16;
751   # if defined YYENABLE_NLS && YYENABLE_NLS
752   #  if ENABLE_NLS
753   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
754 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
754 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
755   #  endif
756   # endif
757   # ifndef YY_
758 < #  define YY_(msgid) msgid
758 > #  define YY_(Msgid) Msgid
759 > # endif
760 > #endif
761 >
762 > #ifndef YY_ATTRIBUTE
763 > # if (defined __GNUC__                                               \
764 >      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
765 >     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
766 > #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
767 > # else
768 > #  define YY_ATTRIBUTE(Spec) /* empty */
769 > # endif
770 > #endif
771 >
772 > #ifndef YY_ATTRIBUTE_PURE
773 > # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
774 > #endif
775 >
776 > #ifndef YY_ATTRIBUTE_UNUSED
777 > # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
778 > #endif
779 >
780 > #if !defined _Noreturn \
781 >     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
782 > # if defined _MSC_VER && 1200 <= _MSC_VER
783 > #  define _Noreturn __declspec (noreturn)
784 > # else
785 > #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
786   # endif
787   #endif
788  
789   /* Suppress unused-variable warnings by "using" E.  */
790   #if ! defined lint || defined __GNUC__
791 < # define YYUSE(e) ((void) (e))
791 > # define YYUSE(E) ((void) (E))
792   #else
793 < # define YYUSE(e) /* empty */
793 > # define YYUSE(E) /* empty */
794   #endif
795  
796 < /* Identity function, used to suppress warnings about constant conditions.  */
797 < #ifndef lint
798 < # define YYID(n) (n)
799 < #else
800 < #if (defined __STDC__ || defined __C99__FUNC__ \
801 <     || defined __cplusplus || defined _MSC_VER)
802 < static int
803 < YYID (int yyi)
796 > #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
797 > /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
798 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
799 >    _Pragma ("GCC diagnostic push") \
800 >    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
801 >    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
802 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
803 >    _Pragma ("GCC diagnostic pop")
804   #else
805 < static int
735 < YYID (yyi)
736 <    int yyi;
805 > # define YY_INITIAL_VALUE(Value) Value
806   #endif
807 < {
808 <  return yyi;
809 < }
807 > #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
808 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
809 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END
810   #endif
811 + #ifndef YY_INITIAL_VALUE
812 + # define YY_INITIAL_VALUE(Value) /* Nothing. */
813 + #endif
814 +
815  
816   #if ! defined yyoverflow || YYERROR_VERBOSE
817  
# Line 757 | Line 830 | YYID (yyi)
830   #    define alloca _alloca
831   #   else
832   #    define YYSTACK_ALLOC alloca
833 < #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
761 <     || defined __cplusplus || defined _MSC_VER)
833 > #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
834   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
835        /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
836   #     ifndef EXIT_SUCCESS
# Line 770 | Line 842 | YYID (yyi)
842   # endif
843  
844   # ifdef YYSTACK_ALLOC
845 <   /* Pacify GCC's `empty if-body' warning.  */
846 < #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
845 >   /* Pacify GCC's 'empty if-body' warning.  */
846 > #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
847   #  ifndef YYSTACK_ALLOC_MAXIMUM
848      /* The OS might guarantee only one guard page at the bottom of the stack,
849         and a page size can be as small as 4096 bytes.  So we cannot safely
# Line 787 | Line 859 | YYID (yyi)
859   #  endif
860   #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
861         && ! ((defined YYMALLOC || defined malloc) \
862 <             && (defined YYFREE || defined free)))
862 >             && (defined YYFREE || defined free)))
863   #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
864   #   ifndef EXIT_SUCCESS
865   #    define EXIT_SUCCESS 0
# Line 795 | Line 867 | YYID (yyi)
867   #  endif
868   #  ifndef YYMALLOC
869   #   define YYMALLOC malloc
870 < #   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
799 <     || defined __cplusplus || defined _MSC_VER)
870 > #   if ! defined malloc && ! defined EXIT_SUCCESS
871   void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
872   #   endif
873   #  endif
874   #  ifndef YYFREE
875   #   define YYFREE free
876 < #   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
806 <     || defined __cplusplus || defined _MSC_VER)
876 > #   if ! defined free && ! defined EXIT_SUCCESS
877   void free (void *); /* INFRINGES ON USER NAME SPACE */
878   #   endif
879   #  endif
# Line 813 | Line 883 | void free (void *); /* INFRINGES ON USER
883  
884   #if (! defined yyoverflow \
885       && (! defined __cplusplus \
886 <         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
886 >         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
887  
888   /* A type that is properly aligned for any stack member.  */
889   union yyalloc
# Line 838 | Line 908 | union yyalloc
908     elements in the stack, and YYPTR gives the new location of the
909     stack.  Advance YYPTR to a properly aligned location for the next
910     stack.  */
911 < # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
912 <    do                                                                  \
913 <      {                                                                 \
914 <        YYSIZE_T yynewbytes;                                            \
915 <        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
916 <        Stack = &yyptr->Stack_alloc;                                    \
917 <        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
918 <        yyptr += yynewbytes / sizeof (*yyptr);                          \
919 <      }                                                                 \
920 <    while (YYID (0))
911 > # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
912 >    do                                                                  \
913 >      {                                                                 \
914 >        YYSIZE_T yynewbytes;                                            \
915 >        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
916 >        Stack = &yyptr->Stack_alloc;                                    \
917 >        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
918 >        yyptr += yynewbytes / sizeof (*yyptr);                          \
919 >      }                                                                 \
920 >    while (0)
921  
922   #endif
923  
# Line 866 | Line 936 | union yyalloc
936            for (yyi = 0; yyi < (Count); yyi++)   \
937              (Dst)[yyi] = (Src)[yyi];            \
938          }                                       \
939 <      while (YYID (0))
939 >      while (0)
940   #  endif
941   # endif
942   #endif /* !YYCOPY_NEEDED */
# Line 874 | Line 944 | union yyalloc
944   /* YYFINAL -- State number of the termination state.  */
945   #define YYFINAL  2
946   /* YYLAST -- Last index in YYTABLE.  */
947 < #define YYLAST   1206
947 > #define YYLAST   1261
948  
949   /* YYNTOKENS -- Number of terminals.  */
950 < #define YYNTOKENS  220
950 > #define YYNTOKENS  238
951   /* YYNNTS -- Number of nonterminals.  */
952 < #define YYNNTS  283
952 > #define YYNNTS  294
953   /* YYNRULES -- Number of rules.  */
954 < #define YYNRULES  627
955 < /* YYNRULES -- Number of states.  */
956 < #define YYNSTATES  1228
954 > #define YYNRULES  667
955 > /* YYNSTATES -- Number of states.  */
956 > #define YYNSTATES  1307
957  
958 < /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
958 > /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
959 >   by yylex, with out-of-bounds checking.  */
960   #define YYUNDEFTOK  2
961 < #define YYMAXUTOK   469
961 > #define YYMAXUTOK   486
962  
963 < #define YYTRANSLATE(YYX)                                                \
963 > #define YYTRANSLATE(YYX)                                                \
964    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
965  
966 < /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
966 > /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
967 >   as returned by yylex, without out-of-bounds checking.  */
968   static const yytype_uint8 yytranslate[] =
969   {
970         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
971         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
972         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
973         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
974 <       2,     2,     2,     2,   219,     2,     2,     2,     2,     2,
975 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   215,
976 <       2,   218,     2,     2,     2,     2,     2,     2,     2,     2,
974 >       2,     2,     2,     2,   236,     2,     2,     2,     2,     2,
975 >       2,     2,     2,     2,     2,     2,     2,     2,   237,   232,
976 >       2,   235,     2,     2,     2,     2,     2,     2,     2,     2,
977         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
978         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
979         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
980         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
981         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
982 <       2,     2,     2,   217,     2,   216,     2,     2,     2,     2,
982 >       2,     2,     2,   234,     2,   233,     2,     2,     2,     2,
983         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
984         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
985         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 941 | Line 1013 | static const yytype_uint8 yytranslate[]
1013       175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1014       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1015       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1016 <     205,   206,   207,   208,   209,   210,   211,   212,   213,   214
1016 >     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1017 >     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1018 >     225,   226,   227,   228,   229,   230,   231
1019   };
1020  
1021   #if YYDEBUG
1022 < /* 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.  */
1022 >  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1023   static const yytype_uint16 yyrline[] =
1024   {
1025 <       0,   330,   330,   331,   334,   335,   336,   337,   338,   339,
1026 <     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
1027 <     350,   351,   352,   353,   354,   355,   359,   359,   360,   364,
1028 <     368,   372,   376,   380,   386,   386,   387,   388,   389,   390,
1029 <     397,   400,   400,   401,   401,   401,   403,   409,   416,   418,
1030 <     418,   419,   419,   420,   420,   421,   421,   422,   422,   423,
1031 <     423,   424,   424,   425,   425,   426,   427,   430,   431,   433,
1032 <     433,   434,   440,   448,   448,   449,   455,   463,   502,   561,
1033 <     589,   597,   612,   627,   636,   650,   659,   687,   717,   740,
1034 <     749,   751,   751,   752,   752,   753,   753,   755,   764,   773,
1035 <     785,   786,   786,   788,   788,   789,   791,   798,   798,   808,
1036 <     809,   811,   811,   812,   812,   814,   819,   822,   828,   827,
1037 <     833,   833,   834,   838,   842,   846,   850,   854,   858,   869,
1038 <     868,   966,   966,   967,   967,   967,   968,   968,   968,   969,
1039 <     969,   969,   971,   980,  1017,  1029,  1040,  1082,  1092,  1091,
1040 <    1097,  1097,  1098,  1102,  1106,  1110,  1114,  1118,  1122,  1126,
1041 <    1130,  1134,  1138,  1142,  1146,  1150,  1154,  1158,  1162,  1166,
1042 <    1170,  1174,  1181,  1180,  1186,  1186,  1187,  1191,  1195,  1199,
1043 <    1203,  1207,  1211,  1215,  1219,  1223,  1227,  1231,  1235,  1239,
1044 <    1243,  1247,  1251,  1255,  1259,  1270,  1269,  1319,  1319,  1320,
1045 <    1321,  1321,  1322,  1323,  1324,  1325,  1326,  1327,  1328,  1329,
1046 <    1330,  1331,  1331,  1332,  1334,  1343,  1349,  1355,  1361,  1367,
1047 <    1373,  1379,  1385,  1391,  1397,  1404,  1410,  1416,  1426,  1425,
1048 <    1442,  1441,  1446,  1446,  1447,  1451,  1455,  1463,  1463,  1464,
1049 <    1464,  1464,  1464,  1464,  1466,  1466,  1468,  1468,  1470,  1484,
1050 <    1504,  1513,  1526,  1525,  1594,  1594,  1595,  1595,  1595,  1595,
1051 <    1596,  1596,  1596,  1597,  1597,  1599,  1634,  1647,  1656,  1668,
1052 <    1667,  1671,  1671,  1672,  1676,  1680,  1684,  1688,  1692,  1696,
1053 <    1700,  1704,  1710,  1729,  1739,  1753,  1752,  1768,  1768,  1769,
1054 <    1769,  1769,  1769,  1771,  1780,  1795,  1808,  1810,  1810,  1811,
1055 <    1811,  1813,  1829,  1828,  1844,  1844,  1845,  1845,  1845,  1845,
1056 <    1847,  1856,  1879,  1878,  1884,  1884,  1885,  1889,  1893,  1897,
1057 <    1901,  1905,  1909,  1913,  1917,  1921,  1931,  1930,  1947,  1947,
1058 <    1948,  1948,  1948,  1950,  1957,  1956,  1962,  1962,  1963,  1967,
1059 <    1971,  1975,  1979,  1983,  1987,  1991,  1995,  1999,  2009,  2008,
1060 <    2059,  2059,  2060,  2060,  2060,  2061,  2061,  2062,  2062,  2062,
1061 <    2063,  2063,  2063,  2064,  2064,  2065,  2067,  2076,  2085,  2111,
1062 <    2129,  2147,  2153,  2157,  2166,  2165,  2169,  2169,  2170,  2174,
1063 <    2180,  2191,  2202,  2213,  2222,  2241,  2240,  2306,  2305,  2309,
1064 <    2309,  2310,  2316,  2316,  2317,  2317,  2317,  2317,  2319,  2338,
1065 <    2348,  2347,  2372,  2372,  2373,  2373,  2373,  2375,  2381,  2390,
1066 <    2392,  2392,  2393,  2393,  2395,  2414,  2413,  2461,  2460,  2464,
1067 <    2464,  2465,  2471,  2471,  2472,  2472,  2472,  2472,  2474,  2480,
1068 <    2489,  2492,  2492,  2493,  2493,  2494,  2494,  2495,  2495,  2496,
1069 <    2496,  2497,  2497,  2498,  2499,  2500,  2500,  2501,  2501,  2502,
1070 <    2502,  2503,  2503,  2504,  2504,  2505,  2505,  2506,  2507,  2507,
1071 <    2508,  2508,  2509,  2509,  2510,  2510,  2511,  2511,  2512,  2513,
1072 <    2513,  2514,  2515,  2516,  2516,  2517,  2517,  2518,  2519,  2520,
1073 <    2521,  2521,  2522,  2525,  2530,  2536,  2542,  2548,  2553,  2558,
1074 <    2563,  2568,  2573,  2578,  2583,  2588,  2593,  2598,  2603,  2608,
1075 <    2613,  2618,  2624,  2635,  2640,  2645,  2650,  2655,  2660,  2663,
1076 <    2668,  2671,  2676,  2681,  2686,  2691,  2696,  2701,  2706,  2711,
1077 <    2716,  2727,  2732,  2737,  2742,  2751,  2760,  2765,  2770,  2776,
1078 <    2775,  2780,  2780,  2781,  2784,  2787,  2790,  2793,  2796,  2799,
1079 <    2802,  2805,  2808,  2811,  2814,  2817,  2820,  2823,  2826,  2829,
1080 <    2832,  2835,  2838,  2844,  2843,  2848,  2848,  2849,  2852,  2855,
1081 <    2858,  2861,  2864,  2867,  2870,  2873,  2876,  2879,  2882,  2885,
1082 <    2888,  2891,  2894,  2897,  2900,  2903,  2906,  2911,  2916,  2921,
1083 <    2930,  2933,  2933,  2934,  2935,  2935,  2936,  2936,  2937,  2937,
1084 <    2938,  2939,  2939,  2940,  2941,  2941,  2942,  2942,  2944,  2949,
1085 <    2954,  2959,  2964,  2969,  2974,  2979,  2984,  2989,  2994,  2999,
1086 <    3004,  3009,  3017,  3020,  3020,  3021,  3021,  3022,  3023,  3023,
1087 <    3024,  3025,  3027,  3033,  3039,  3048,  3062,  3068
1025 >       0,   381,   381,   382,   385,   386,   387,   388,   389,   390,
1026 >     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
1027 >     401,   402,   403,   404,   405,   406,   407,   411,   411,   412,
1028 >     413,   414,   415,   416,   417,   418,   419,   422,   422,   423,
1029 >     424,   425,   426,   433,   436,   436,   437,   437,   437,   439,
1030 >     445,   452,   454,   454,   455,   456,   457,   458,   459,   460,
1031 >     461,   462,   463,   464,   465,   466,   467,   468,   469,   470,
1032 >     471,   472,   475,   476,   478,   478,   479,   485,   493,   493,
1033 >     494,   500,   508,   550,   608,   636,   644,   659,   674,   683,
1034 >     697,   706,   734,   764,   789,   811,   833,   842,   844,   844,
1035 >     845,   846,   847,   848,   850,   859,   868,   881,   880,   898,
1036 >     898,   899,   899,   899,   901,   907,   916,   917,   917,   919,
1037 >     919,   920,   922,   929,   929,   942,   943,   945,   945,   946,
1038 >     946,   948,   956,   959,   965,   964,   970,   970,   971,   975,
1039 >     979,   983,   987,   991,   995,   999,  1003,  1014,  1013,  1093,
1040 >    1093,  1094,  1095,  1096,  1097,  1098,  1099,  1100,  1101,  1102,
1041 >    1103,  1104,  1106,  1112,  1118,  1124,  1135,  1141,  1147,  1158,
1042 >    1165,  1164,  1170,  1170,  1171,  1175,  1179,  1183,  1187,  1191,
1043 >    1195,  1199,  1203,  1207,  1211,  1215,  1219,  1223,  1227,  1231,
1044 >    1235,  1239,  1243,  1247,  1251,  1255,  1259,  1266,  1265,  1271,
1045 >    1271,  1272,  1276,  1280,  1284,  1288,  1292,  1296,  1300,  1304,
1046 >    1308,  1312,  1316,  1320,  1324,  1328,  1332,  1336,  1340,  1344,
1047 >    1348,  1352,  1356,  1360,  1364,  1375,  1374,  1435,  1435,  1436,
1048 >    1437,  1438,  1439,  1440,  1441,  1442,  1443,  1444,  1445,  1446,
1049 >    1447,  1447,  1448,  1449,  1450,  1451,  1453,  1459,  1465,  1471,
1050 >    1477,  1483,  1489,  1495,  1501,  1507,  1514,  1520,  1526,  1532,
1051 >    1541,  1551,  1550,  1556,  1556,  1557,  1561,  1572,  1571,  1578,
1052 >    1577,  1582,  1582,  1583,  1587,  1591,  1597,  1597,  1598,  1598,
1053 >    1598,  1598,  1598,  1600,  1600,  1602,  1602,  1604,  1618,  1636,
1054 >    1642,  1652,  1651,  1693,  1693,  1694,  1695,  1696,  1697,  1698,
1055 >    1699,  1700,  1701,  1702,  1704,  1710,  1716,  1722,  1734,  1733,
1056 >    1739,  1739,  1740,  1744,  1748,  1752,  1756,  1760,  1764,  1768,
1057 >    1772,  1776,  1782,  1796,  1805,  1819,  1818,  1833,  1833,  1834,
1058 >    1834,  1834,  1834,  1836,  1842,  1848,  1858,  1860,  1860,  1861,
1059 >    1861,  1863,  1879,  1878,  1903,  1903,  1904,  1904,  1904,  1904,
1060 >    1906,  1912,  1932,  1931,  1937,  1937,  1938,  1942,  1946,  1950,
1061 >    1954,  1958,  1962,  1966,  1970,  1974,  1984,  1983,  2004,  2004,
1062 >    2005,  2005,  2005,  2007,  2014,  2013,  2019,  2019,  2020,  2024,
1063 >    2028,  2032,  2036,  2040,  2044,  2048,  2052,  2056,  2066,  2065,
1064 >    2137,  2137,  2138,  2139,  2140,  2141,  2142,  2143,  2144,  2145,
1065 >    2146,  2147,  2148,  2149,  2150,  2151,  2152,  2154,  2160,  2166,
1066 >    2172,  2185,  2198,  2204,  2210,  2214,  2223,  2222,  2227,  2227,
1067 >    2228,  2232,  2238,  2249,  2255,  2261,  2267,  2283,  2282,  2308,
1068 >    2308,  2309,  2309,  2309,  2311,  2331,  2341,  2340,  2367,  2367,
1069 >    2368,  2368,  2368,  2370,  2376,  2385,  2387,  2387,  2388,  2388,
1070 >    2390,  2408,  2407,  2430,  2430,  2431,  2431,  2431,  2433,  2439,
1071 >    2448,  2451,  2451,  2452,  2453,  2454,  2455,  2456,  2457,  2458,
1072 >    2459,  2460,  2461,  2462,  2463,  2464,  2465,  2466,  2467,  2468,
1073 >    2469,  2470,  2471,  2472,  2473,  2474,  2475,  2476,  2477,  2478,
1074 >    2479,  2480,  2481,  2482,  2483,  2484,  2485,  2486,  2487,  2488,
1075 >    2489,  2490,  2491,  2492,  2493,  2494,  2495,  2496,  2497,  2498,
1076 >    2499,  2500,  2501,  2504,  2509,  2515,  2521,  2527,  2533,  2538,
1077 >    2543,  2548,  2553,  2558,  2563,  2568,  2573,  2578,  2583,  2588,
1078 >    2593,  2598,  2604,  2615,  2620,  2625,  2630,  2635,  2640,  2645,
1079 >    2648,  2653,  2656,  2661,  2666,  2671,  2676,  2681,  2686,  2691,
1080 >    2696,  2701,  2706,  2711,  2716,  2725,  2734,  2739,  2744,  2750,
1081 >    2749,  2754,  2754,  2755,  2758,  2761,  2764,  2767,  2770,  2773,
1082 >    2776,  2779,  2782,  2785,  2788,  2791,  2794,  2797,  2800,  2803,
1083 >    2806,  2809,  2812,  2815,  2818,  2821,  2827,  2826,  2831,  2831,
1084 >    2832,  2835,  2838,  2841,  2844,  2847,  2850,  2853,  2856,  2859,
1085 >    2862,  2865,  2868,  2871,  2874,  2877,  2880,  2883,  2886,  2889,
1086 >    2892,  2897,  2902,  2907,  2916,  2919,  2919,  2920,  2921,  2922,
1087 >    2923,  2924,  2925,  2926,  2927,  2928,  2929,  2930,  2931,  2932,
1088 >    2933,  2934,  2935,  2937,  2943,  2948,  2953,  2958,  2963,  2968,
1089 >    2973,  2978,  2983,  2988,  2993,  2998,  3003,  3008,  3016,  3019,
1090 >    3019,  3020,  3021,  3022,  3023,  3024,  3025,  3026,  3027,  3028,
1091 >    3030,  3036,  3042,  3048,  3054,  3063,  3077,  3083
1092   };
1093   #endif
1094  
# Line 1288 | Line 1101 | static const char *const yytname[] =
1101    "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1102    "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1103    "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1104 <  "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1105 <  "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1106 <  "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1107 <  "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1108 <  "FAILED_OPER_NOTICE", "IRCD_FLAGS", "FLATTEN_LINKS", "GECOS", "GENERAL",
1109 <  "GLINE", "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT",
1110 <  "GLINE_REQUEST_DURATION", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1111 <  "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1112 <  "HIDDEN_NAME", "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SPOOF_IPS",
1104 >  "CONNECTFREQ", "CYCLE_ON_HOST_CHANGE", "DEFAULT_FLOODCOUNT",
1105 >  "DEFAULT_SPLIT_SERVER_COUNT", "DEFAULT_SPLIT_USER_COUNT", "DENY",
1106 >  "DESCRIPTION", "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1107 >  "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT", "EGDPOOL_PATH", "EMAIL",
1108 >  "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT", "FAILED_OPER_NOTICE",
1109 >  "FLATTEN_LINKS", "GECOS", "GENERAL", "GLINE", "GLINE_DURATION",
1110 >  "GLINE_ENABLE", "GLINE_EXEMPT", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1111 >  "GLINE_REQUEST_DURATION", "GLOBAL_KILL", "HAVENT_READ_CONF", "HIDDEN",
1112 >  "HIDDEN_NAME", "HIDE_CHANS", "HIDE_IDLE", "HIDE_IDLE_FROM_OPERS",
1113 >  "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SERVICES", "HIDE_SPOOF_IPS",
1114    "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1115 <  "IP", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT",
1116 <  "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY",
1117 <  "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_OPER",
1118 <  "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1119 <  "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1120 <  "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1121 <  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1122 <  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1123 <  "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1124 <  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPERATOR",
1125 <  "OPERS_BYPASS_CALLERID", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1126 <  "OPER_SPY_T", "OPER_UMODES", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME",
1127 <  "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1128 <  "PING_TIME", "PING_WARNING", "PORT", "QSTRING", "QUIET_ON_BAN", "REASON",
1129 <  "REDIRPORT", "REDIRSERV", "REGEX_T", "REHASH", "REMOTE", "REMOTEBAN",
1130 <  "RESTRICT_CHANNELS", "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE",
1131 <  "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE", "T_SSL_CLIENT_METHOD",
1132 <  "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT",
1133 <  "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD",
1134 <  "SERVERHIDE", "SERVERINFO", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1135 <  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1136 <  "STATS_E_DISABLED", "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY",
1137 <  "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL", "TMASKED",
1138 <  "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS",
1139 <  "T_SOFTCALLERID", "T_CALLERID", "T_CCONN", "T_CCONN_FULL",
1140 <  "T_SSL_CIPHER_LIST", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1141 <  "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_MAX_CLIENTS",
1142 <  "T_NCHANGE", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_SERVER",
1143 <  "T_SERVNOTICE", "T_SET", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES",
1144 <  "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV", "T_UNXLINE",
1145 <  "T_GLOBOPS", "T_WALLOP", "T_RESTART", "T_SERVICE", "T_SERVICES_NAME",
1146 <  "THROTTLE_TIME", "TRUE_NO_OPER_FLOOD", "UNKLINE", "USER", "USE_EGD",
1147 <  "USE_LOGGING", "VHOST", "VHOST6", "XLINE", "WARN_NO_NLINE", "T_SIZE",
1148 <  "T_FILE", "';'", "'}'", "'{'", "'='", "','", "$accept", "conf",
1149 <  "conf_item", "timespec_", "timespec", "sizespec_", "sizespec",
1150 <  "modules_entry", "modules_items", "modules_item", "modules_module",
1151 <  "modules_path", "serverinfo_entry", "serverinfo_items",
1152 <  "serverinfo_item", "serverinfo_ssl_client_method",
1115 >  "INVITE_CLIENT_COUNT", "INVITE_CLIENT_TIME", "IP", "IRCD_AUTH",
1116 >  "IRCD_FLAGS", "IRCD_SID", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "KILL",
1117 >  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KNOCK_CLIENT_COUNT",
1118 >  "KNOCK_CLIENT_TIME", "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY",
1119 >  "LISTEN", "MASK", "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_OPER",
1120 >  "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_IDLE", "MAX_LOCAL",
1121 >  "MAX_NICK_CHANGES", "MAX_NICK_LENGTH", "MAX_NICK_TIME", "MAX_NUMBER",
1122 >  "MAX_TARGETS", "MAX_TOPIC_LENGTH", "MAX_WATCH", "MIN_IDLE",
1123 >  "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "MOTD",
1124 >  "NAME", "NEED_IDENT", "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME",
1125 >  "NICK", "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD",
1126 >  "NO_TILDE", "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP",
1127 >  "OPER_ONLY_UMODES", "OPER_PASS_RESV", "OPER_UMODES", "OPERATOR",
1128 >  "OPERS_BYPASS_CALLERID", "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD",
1129 >  "PATH", "PING_COOKIE", "PING_TIME", "PORT", "QSTRING", "RANDOM_IDLE",
1130 >  "REASON", "REDIRPORT", "REDIRSERV", "REHASH", "REMOTE", "REMOTEBAN",
1131 >  "RESV", "RESV_EXEMPT", "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE",
1132 >  "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS",
1133 >  "SEND_PASSWORD", "SENDQ", "SERVERHIDE", "SERVERINFO", "SHORT_MOTD",
1134 >  "SPOOF", "SPOOF_NOTICE", "SQUIT", "SSL_CERTIFICATE_FILE",
1135 >  "SSL_CERTIFICATE_FINGERPRINT", "SSL_CONNECTION_REQUIRED",
1136 >  "SSL_DH_PARAM_FILE", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1137 >  "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY",
1138 >  "STATS_U_OPER_ONLY", "T_ALL", "T_BOTS", "T_CALLERID", "T_CCONN",
1139 >  "T_CLUSTER", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1140 >  "T_FARCONNECT", "T_FILE", "T_FULL", "T_GLOBOPS", "T_INVISIBLE", "T_IPV4",
1141 >  "T_IPV6", "T_LOCOPS", "T_LOG", "T_MAX_CLIENTS", "T_NCHANGE",
1142 >  "T_NONONREG", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_RESTART", "T_SERVER",
1143 >  "T_SERVICE", "T_SERVICES_NAME", "T_SERVNOTICE", "T_SET", "T_SHARED",
1144 >  "T_SIZE", "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL",
1145 >  "T_SSL_CIPHER_LIST", "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD",
1146 >  "T_SSLV3", "T_TLSV1", "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED",
1147 >  "T_UNRESV", "T_UNXLINE", "T_WALLOP", "T_WALLOPS", "T_WEBIRC", "TBOOL",
1148 >  "THROTTLE_TIME", "TKLINE_EXPIRE_NOTICES", "TMASKED",
1149 >  "TRUE_NO_OPER_FLOOD", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "TYPE",
1150 >  "UNKLINE", "USE_EGD", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1151 >  "WARN_NO_CONNECT_BLOCK", "XLINE", "';'", "'}'", "'{'", "'='", "','",
1152 >  "':'", "$accept", "conf", "conf_item", "timespec_", "timespec",
1153 >  "sizespec_", "sizespec", "modules_entry", "modules_items",
1154 >  "modules_item", "modules_module", "modules_path", "serverinfo_entry",
1155 >  "serverinfo_items", "serverinfo_item", "serverinfo_ssl_client_method",
1156    "serverinfo_ssl_server_method", "client_method_types",
1157    "client_method_type_item", "server_method_types",
1158    "server_method_type_item", "serverinfo_ssl_certificate_file",
# Line 1343 | Line 1160 | static const char *const yytname[] =
1160    "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1161    "serverinfo_description", "serverinfo_network_name",
1162    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1163 <  "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1164 <  "admin_item", "admin_name", "admin_email", "admin_description",
1165 <  "logging_entry", "logging_items", "logging_item", "logging_use_logging",
1166 <  "logging_file_entry", "$@1", "logging_file_items", "logging_file_item",
1167 <  "logging_file_name", "logging_file_size", "logging_file_type", "$@2",
1168 <  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@3",
1163 >  "serverinfo_max_clients", "serverinfo_max_nick_length",
1164 >  "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1165 >  "admin_items", "admin_item", "admin_name", "admin_email",
1166 >  "admin_description", "motd_entry", "$@1", "motd_items", "motd_item",
1167 >  "motd_mask", "motd_file", "logging_entry", "logging_items",
1168 >  "logging_item", "logging_use_logging", "logging_file_entry", "$@2",
1169 >  "logging_file_items", "logging_file_item", "logging_file_name",
1170 >  "logging_file_size", "logging_file_type", "$@3",
1171 >  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@4",
1172    "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1173 <  "oper_encrypted", "oper_rsa_public_key_file", "oper_class",
1174 <  "oper_umodes", "$@4", "oper_umodes_items", "oper_umodes_item",
1175 <  "oper_flags", "$@5", "oper_flags_items", "oper_flags_item",
1176 <  "class_entry", "$@6", "class_items", "class_item", "class_name",
1177 <  "class_ping_time", "class_ping_warning", "class_number_per_ip",
1173 >  "oper_encrypted", "oper_rsa_public_key_file",
1174 >  "oper_ssl_certificate_fingerprint", "oper_ssl_connection_required",
1175 >  "oper_class", "oper_umodes", "$@5", "oper_umodes_items",
1176 >  "oper_umodes_item", "oper_flags", "$@6", "oper_flags_items",
1177 >  "oper_flags_item", "class_entry", "$@7", "class_items", "class_item",
1178 >  "class_name", "class_ping_time", "class_number_per_ip",
1179    "class_connectfreq", "class_max_number", "class_max_global",
1180    "class_max_local", "class_max_ident", "class_sendq", "class_recvq",
1181    "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1182 <  "class_number_per_cidr", "listen_entry", "$@7", "listen_flags", "$@8",
1183 <  "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1184 <  "listen_port", "$@9", "port_items", "port_item", "listen_address",
1185 <  "listen_host", "auth_entry", "$@10", "auth_items", "auth_item",
1186 <  "auth_user", "auth_passwd", "auth_class", "auth_encrypted", "auth_flags",
1187 <  "$@11", "auth_flags_items", "auth_flags_item", "auth_spoof",
1188 <  "auth_redir_serv", "auth_redir_port", "resv_entry", "$@12", "resv_items",
1189 <  "resv_item", "resv_creason", "resv_channel", "resv_nick",
1190 <  "service_entry", "service_items", "service_item", "service_name",
1191 <  "shared_entry", "$@13", "shared_items", "shared_item", "shared_name",
1192 <  "shared_user", "shared_type", "$@14", "shared_types", "shared_type_item",
1193 <  "cluster_entry", "$@15", "cluster_items", "cluster_item", "cluster_name",
1194 <  "cluster_type", "$@16", "cluster_types", "cluster_type_item",
1195 <  "connect_entry", "$@17", "connect_items", "connect_item", "connect_name",
1182 >  "class_number_per_cidr", "class_min_idle", "class_max_idle",
1183 >  "class_flags", "$@8", "class_flags_items", "class_flags_item",
1184 >  "listen_entry", "$@9", "listen_flags", "$@10", "listen_flags_items",
1185 >  "listen_flags_item", "listen_items", "listen_item", "listen_port",
1186 >  "$@11", "port_items", "port_item", "listen_address", "listen_host",
1187 >  "auth_entry", "$@12", "auth_items", "auth_item", "auth_user",
1188 >  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@13",
1189 >  "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1190 >  "auth_redir_port", "resv_entry", "$@14", "resv_items", "resv_item",
1191 >  "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1192 >  "service_items", "service_item", "service_name", "shared_entry", "$@15",
1193 >  "shared_items", "shared_item", "shared_name", "shared_user",
1194 >  "shared_type", "$@16", "shared_types", "shared_type_item",
1195 >  "cluster_entry", "$@17", "cluster_items", "cluster_item", "cluster_name",
1196 >  "cluster_type", "$@18", "cluster_types", "cluster_type_item",
1197 >  "connect_entry", "$@19", "connect_items", "connect_item", "connect_name",
1198    "connect_host", "connect_vhost", "connect_send_password",
1199 <  "connect_accept_password", "connect_port", "connect_aftype",
1200 <  "connect_flags", "$@18", "connect_flags_items", "connect_flags_item",
1201 <  "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1202 <  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@19",
1203 <  "kill_type", "$@20", "kill_type_items", "kill_type_item", "kill_items",
1204 <  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@21",
1199 >  "connect_accept_password", "connect_ssl_certificate_fingerprint",
1200 >  "connect_port", "connect_aftype", "connect_flags", "$@20",
1201 >  "connect_flags_items", "connect_flags_item", "connect_encrypted",
1202 >  "connect_hub_mask", "connect_leaf_mask", "connect_class",
1203 >  "connect_ssl_cipher_list", "kill_entry", "$@21", "kill_items",
1204 >  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@22",
1205    "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1206 <  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@22",
1384 <  "gecos_flags", "$@23", "gecos_flags_items", "gecos_flags_item",
1206 >  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@23",
1207    "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1208    "general_entry", "general_items", "general_item", "general_max_watch",
1209 <  "general_gline_enable", "general_gline_duration",
1210 <  "general_gline_request_duration", "general_gline_min_cidr",
1211 <  "general_gline_min_cidr6", "general_tkline_expire_notices",
1212 <  "general_kill_chase_time_limit", "general_hide_spoof_ips",
1213 <  "general_ignore_bogus_ts", "general_disable_remote_commands",
1209 >  "general_cycle_on_host_change", "general_gline_enable",
1210 >  "general_gline_duration", "general_gline_request_duration",
1211 >  "general_gline_min_cidr", "general_gline_min_cidr6",
1212 >  "general_tkline_expire_notices", "general_kill_chase_time_limit",
1213 >  "general_hide_spoof_ips", "general_ignore_bogus_ts",
1214    "general_failed_oper_notice", "general_anti_nick_flood",
1215    "general_max_nick_time", "general_max_nick_changes",
1216    "general_max_accept", "general_anti_spam_exit_message_time",
1217    "general_ts_warn_delta", "general_ts_max_delta",
1218    "general_havent_read_conf", "general_invisible_on_connect",
1219 <  "general_warn_no_nline", "general_stats_e_disabled",
1219 >  "general_warn_no_connect_block", "general_stats_e_disabled",
1220    "general_stats_o_oper_only", "general_stats_P_oper_only",
1221 <  "general_stats_k_oper_only", "general_stats_i_oper_only",
1222 <  "general_pace_wait", "general_caller_id_wait",
1223 <  "general_opers_bypass_callerid", "general_pace_wait_simple",
1224 <  "general_short_motd", "general_no_oper_flood",
1225 <  "general_true_no_oper_flood", "general_oper_pass_resv",
1226 <  "general_message_locale", "general_dots_in_ident", "general_max_targets",
1221 >  "general_stats_u_oper_only", "general_stats_k_oper_only",
1222 >  "general_stats_i_oper_only", "general_pace_wait",
1223 >  "general_caller_id_wait", "general_opers_bypass_callerid",
1224 >  "general_pace_wait_simple", "general_short_motd",
1225 >  "general_no_oper_flood", "general_true_no_oper_flood",
1226 >  "general_oper_pass_resv", "general_dots_in_ident", "general_max_targets",
1227    "general_use_egd", "general_egdpool_path", "general_services_name",
1228    "general_ping_cookie", "general_disable_auth", "general_throttle_time",
1229    "general_oper_umodes", "$@24", "umode_oitems", "umode_oitem",
# Line 1409 | Line 1231 | static const char *const yytname[] =
1231    "general_min_nonwildcard", "general_min_nonwildcard_simple",
1232    "general_default_floodcount", "channel_entry", "channel_items",
1233    "channel_item", "channel_disable_fake_channels",
1234 <  "channel_restrict_channels", "channel_knock_delay",
1234 >  "channel_invite_client_count", "channel_invite_client_time",
1235 >  "channel_knock_client_count", "channel_knock_client_time",
1236    "channel_knock_delay_channel", "channel_max_chans_per_user",
1237 <  "channel_max_chans_per_oper", "channel_quiet_on_ban", "channel_max_bans",
1237 >  "channel_max_chans_per_oper", "channel_max_bans",
1238    "channel_default_split_user_count", "channel_default_split_server_count",
1239    "channel_no_create_on_split", "channel_no_join_on_split",
1240    "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1241    "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1242 <  "serverhide_hide_servers", "serverhide_hidden_name",
1242 >  "serverhide_disable_remote_commands", "serverhide_hide_servers",
1243 >  "serverhide_hide_services", "serverhide_hidden_name",
1244    "serverhide_links_delay", "serverhide_hidden",
1245 <  "serverhide_hide_server_ips", YY_NULL
1245 >  "serverhide_hide_server_ips", YY_NULLPTR
1246   };
1247   #endif
1248  
1249   # ifdef YYPRINT
1250 < /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1251 <   token YYLEX-NUM.  */
1250 > /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1251 >   (internal) symbol number NUM (which must be that of a token).  */
1252   static const yytype_uint16 yytoknum[] =
1253   {
1254         0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
# Line 1448 | Line 1272 | static const yytype_uint16 yytoknum[] =
1272       435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1273       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1274       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1275 <     465,   466,   467,   468,   469,    59,   125,   123,    61,    44
1275 >     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1276 >     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1277 >     485,   486,    59,   125,   123,    61,    44,    58
1278   };
1279   # endif
1280  
1281 < /* 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 < };
1281 > #define YYPACT_NINF -922
1282  
1283 < /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1284 < static const yytype_uint8 yyr2[] =
1283 > #define yypact_value_is_default(Yystate) \
1284 >  (!!((Yystate) == (-922)))
1285 >
1286 > #define YYTABLE_NINF -124
1287 >
1288 > #define yytable_value_is_error(Yytable_value) \
1289 >  0
1290 >
1291 >  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1292 >     STATE-NUM.  */
1293 > static const yytype_int16 yypact[] =
1294   {
1295 <       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1296 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1297 <       1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1298 <       3,     3,     3,     3,     0,     1,     2,     3,     3,     3,
1299 <       5,     2,     1,     1,     1,     2,     4,     4,     5,     2,
1300 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1301 <       1,     1,     1,     1,     1,     1,     2,     4,     4,     3,
1302 <       1,     1,     1,     3,     1,     1,     1,     4,     4,     4,
1303 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1304 <       5,     2,     1,     1,     1,     1,     2,     4,     4,     4,
1305 <       5,     2,     1,     1,     1,     2,     4,     0,     6,     2,
1306 <       1,     1,     1,     1,     2,     4,     4,     4,     0,     5,
1307 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1308 <       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1309 <       1,     2,     4,     4,     4,     4,     4,     4,     0,     5,
1310 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1311 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1312 <       1,     1,     0,     5,     3,     1,     1,     1,     1,     1,
1313 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1314 <       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1315 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1316 <       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
1317 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     6,
1318 <       0,     5,     3,     1,     1,     1,     1,     2,     1,     1,
1319 <       1,     1,     1,     2,     0,     5,     3,     1,     1,     3,
1320 <       4,     4,     0,     6,     2,     1,     1,     1,     1,     1,
1321 <       1,     1,     1,     1,     2,     4,     4,     4,     4,     0,
1322 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1323 <       1,     1,     4,     4,     4,     0,     6,     2,     1,     1,
1324 <       1,     1,     2,     4,     4,     4,     5,     2,     1,     1,
1325 <       1,     4,     0,     6,     2,     1,     1,     1,     1,     2,
1326 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1327 <       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
1328 <       1,     1,     2,     4,     0,     5,     3,     1,     1,     1,
1329 <       1,     1,     1,     1,     1,     1,     1,     1,     0,     6,
1330 <       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1331 <       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
1332 <       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1333 <       4,     4,     4,     4,     4,     0,     6,     0,     5,     3,
1334 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1335 <       0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
1336 <       2,     1,     1,     1,     4,     0,     6,     0,     5,     3,
1337 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1338 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1339 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1340 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1341 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1342 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1343 <       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
1344 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1345 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1346 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1347 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     0,
1348 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1349 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1350 <       1,     1,     1,     0,     5,     3,     1,     1,     1,     1,
1351 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1352 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1353 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1354 <       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
1355 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1356 <       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
1357 <       1,     1,     4,     4,     4,     4,     4,     4
1295 >    -922,   749,  -922,  -140,  -226,  -214,  -922,  -922,  -922,  -204,
1296 >    -922,  -192,  -922,  -922,  -922,  -186,  -922,  -922,  -922,  -172,
1297 >    -151,  -922,  -149,  -125,  -922,  -922,  -922,  -922,  -922,  -922,
1298 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1299 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,    20,
1300 >     852,  -107,   -98,   -93,    10,   -85,   454,   -79,   -60,   -59,
1301 >      24,   -41,   -27,   -25,   409,   530,   -21,     4,    32,   -17,
1302 >    -156,   -10,    -8,    -6,    15,  -922,  -922,  -922,  -922,  -922,
1303 >      -4,    -2,     1,    37,    38,    39,    43,    51,    53,    61,
1304 >      62,    64,    67,    69,    74,   299,  -922,  -922,  -922,  -922,
1305 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1306 >    -922,  -922,   746,   411,    21,  -922,    75,     8,  -922,  -922,
1307 >      23,  -922,    78,    90,    91,    93,    94,    96,   100,   102,
1308 >     106,   108,   117,   118,   119,   121,   124,   126,   136,   138,
1309 >     142,   144,   145,   150,   151,   152,   154,   163,   164,  -922,
1310 >     167,  -922,   169,   170,   171,   172,   176,   180,   182,   183,
1311 >     184,   188,   189,   191,   194,   195,   196,   197,   198,   199,
1312 >     200,    60,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1313 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1314 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1315 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1316 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1317 >    -922,  -922,   476,    35,   323,   -31,   202,   204,    13,  -922,
1318 >    -922,  -922,    22,   424,    34,  -922,   208,   210,   213,   214,
1319 >     216,   217,   227,   232,     9,  -922,  -922,  -922,  -922,  -922,
1320 >    -922,  -922,  -922,  -922,   -14,   233,   235,   237,   238,   241,
1321 >     244,   245,   247,   248,   251,   252,   257,   262,   269,   270,
1322 >     271,   272,   137,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1323 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1324 >    -922,    83,     7,   273,    25,  -922,  -922,  -922,    84,  -922,
1325 >     275,    54,  -922,  -922,    11,  -922,   141,   161,   312,   140,
1326 >    -922,   157,   399,   298,   405,   406,   407,   406,   408,   406,
1327 >     406,   412,   416,   422,   307,   319,   305,  -922,   308,   304,
1328 >     306,   310,  -922,   314,   316,   324,   325,   326,   327,   329,
1329 >     331,   333,   334,   338,   342,   168,  -922,  -922,  -922,  -922,
1330 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1331 >    -922,  -922,  -922,   322,   343,   347,   348,   349,   350,   353,
1332 >    -922,   355,   356,   357,   359,   360,   362,   365,   300,  -922,
1333 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1334 >    -922,  -922,  -922,  -922,  -922,   368,   369,    17,  -922,  -922,
1335 >    -922,   414,   374,  -922,  -922,   376,   385,    31,  -922,  -922,
1336 >    -922,   419,   406,   406,   420,   509,   423,   511,   498,   425,
1337 >     406,   427,   514,   531,   406,   534,   434,   435,   438,   406,
1338 >     544,   545,   406,   546,   547,   548,   549,   448,   430,   451,
1339 >     432,   457,   406,   406,   461,   462,   463,  -147,   -90,   465,
1340 >     466,   467,   541,   406,   471,   475,   406,   406,   477,   480,
1341 >     464,  -922,   468,   469,   470,  -922,   474,   484,   485,   486,
1342 >     487,   290,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1343 >    -922,  -922,   488,   489,    33,  -922,  -922,  -922,   478,   490,
1344 >     491,  -922,   492,  -922,    12,  -922,  -922,  -922,  -922,  -922,
1345 >     569,   571,   479,  -922,   496,   494,   495,    14,  -922,  -922,
1346 >    -922,   502,   500,   501,  -922,   503,   504,   505,   508,   510,
1347 >    -922,   516,   297,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1348 >    -922,  -922,  -922,  -922,   512,   517,   519,   521,    16,  -922,
1349 >    -922,  -922,  -922,   497,   542,   553,   573,   555,   556,   559,
1350 >     406,   543,  -922,  -922,   574,   561,   587,   585,   633,   652,
1351 >     653,   654,   655,   657,   661,   677,   664,   -32,    63,   665,
1352 >     667,   566,  -922,   567,   565,  -922,   111,  -922,  -922,  -922,
1353 >    -922,   588,   572,  -922,   568,   678,   576,  -922,   577,   575,
1354 >    -922,   581,   109,  -922,  -922,  -922,  -922,   580,   586,   589,
1355 >    -922,   590,   591,   592,   593,   205,   594,   604,   605,   606,
1356 >     608,   609,   610,   612,   613,   614,   615,  -922,  -922,   692,
1357 >     704,   406,   584,   735,   739,   406,   741,   742,   406,   728,
1358 >     744,   745,   406,   751,   751,   627,  -922,  -922,   734,    36,
1359 >     743,   658,   748,   750,   632,   753,   754,   756,   755,   758,
1360 >     759,   761,   638,  -922,   762,   763,   645,  -922,   647,  -922,
1361 >     764,   765,   663,  -922,   668,   669,   670,   671,   672,   673,
1362 >     675,   676,   679,   680,   681,   682,   685,   687,   688,   691,
1363 >     693,   694,   698,   700,   702,   706,   707,   709,   710,   711,
1364 >     716,   857,   719,   779,   722,   724,   726,   727,   736,   737,
1365 >     738,   747,   757,   769,   771,   772,   773,   774,   776,   777,
1366 >     778,   782,   783,   784,   785,  -922,  -922,   768,   695,   649,
1367 >     781,   811,   838,   843,   845,   786,  -922,   846,   847,   787,
1368 >    -922,  -922,   855,   865,   662,   881,   788,  -922,   790,   797,
1369 >    -922,  -922,   868,   869,   800,  -922,  -922,   906,   821,   802,
1370 >     911,   912,   916,   918,   832,   813,   921,   819,  -922,  -922,
1371 >     924,   925,   929,   826,  -922,   827,   828,   829,   830,   831,
1372 >     833,   834,   835,  -922,   836,   839,   840,   841,   842,   844,
1373 >     848,   849,   850,   851,   853,   854,   856,  -922,  -922,  -195,
1374 >    -922,  -922,  -922,  -193,  -922,   858,   859,  -922,  -922,   942,
1375 >     860,   861,  -922,   862,  -922,    88,   864,  -922,  -922,   947,
1376 >     863,   949,   867,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1377 >    -922,   406,   406,   406,   406,   406,   406,   406,  -922,  -922,
1378 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1379 >    -922,   870,   871,   872,    -9,   873,   874,   875,   876,   877,
1380 >     878,   879,   880,   882,   883,    18,   884,   885,  -922,   886,
1381 >     887,   888,   889,   890,   891,   892,    -5,   893,   894,   895,
1382 >     896,   897,   898,   899,  -922,   900,   901,  -922,  -922,   902,
1383 >     903,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1384 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1385 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1386 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1387 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1388 >    -182,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1389 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1390 >    -922,  -922,  -922,  -922,  -922,  -922,  -179,  -922,  -922,  -922,
1391 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1392 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,   904,
1393 >     905,   674,   907,   908,   909,   910,   913,  -922,   914,   915,
1394 >    -922,   917,   919,   -30,   922,   920,  -922,  -922,  -922,  -922,
1395 >     923,   926,  -922,   927,   928,   583,   930,   931,   932,   933,
1396 >     934,   814,   935,  -922,   936,   937,   938,  -922,  -922,  -922,
1397 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1398 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1399 >     -32,  -922,    63,  -922,  -922,   939,   421,  -922,  -922,   940,
1400 >     866,   941,  -922,    30,  -922,  -922,  -922,  -922,  -922,   943,
1401 >     483,   945,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1402 >    -922,  -922,  -922,  -922,  -922,  -176,  -922,  -922,  -922,  -922,
1403 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,   751,   751,   751,
1404 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1405 >    -922,  -922,  -922,  -158,  -922,  -922,  -922,  -922,  -922,  -922,
1406 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,   857,  -922,   779,
1407 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1408 >    -922,  -922,  -138,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1409 >    -922,  -922,  -922,  -922,  -922,  -922,   -44,  -922,   965,   881,
1410 >     946,  -922,  -922,  -922,  -922,  -922,   944,  -922,  -922,   948,
1411 >    -922,  -922,  -922,  -922,   950,  -922,  -922,  -922,  -922,  -922,
1412 >    -922,  -922,  -922,  -922,  -922,  -922,   -42,  -922,  -922,  -922,
1413 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1414 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1415 >    -922,  -922,  -922,  -922,  -922,  -922,   -34,  -922,  -922,  -922,
1416 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1417 >    -922,  -922,  -922,  -922,  -922,   -33,  -922,  -922,   951,   -64,
1418 >     953,   952,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1419 >    -922,  -922,  -922,  -922,   -28,  -922,  -922,  -922,    -9,  -922,
1420 >    -922,  -922,  -922,    -5,  -922,  -922,  -922,   674,  -922,   -30,
1421 >    -922,  -922,  -922,   955,   958,   963,  -922,   583,  -922,   814,
1422 >    -922,   421,   954,   957,   959,   570,  -922,  -922,   483,  -922,
1423 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1424 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1425 >    -922,   -26,  -922,  -922,  -922,   570,  -922
1426   };
1427  
1428 < /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
1429 <   Performed when YYTABLE doesn't specify something else to do.  Zero
1430 <   means the default is an error.  */
1428 >  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1429 >     Performed when YYTABLE does not specify something else to do.  Zero
1430 >     means the default is an error.  */
1431   static const yytype_uint16 yydefact[] =
1432   {
1433 <       2,     0,     1,     0,     0,     0,   195,   348,   400,     0,
1434 <     415,     0,   252,   385,   228,     0,     0,   129,   285,     0,
1435 <       0,   302,   326,     0,     3,    23,    11,     4,     5,     6,
1436 <       8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1437 <      20,    22,    21,     7,    12,    24,    25,     0,     0,     0,
1433 >       2,     0,     1,     0,     0,     0,   225,   388,   436,     0,
1434 >     451,     0,   291,   427,   267,     0,   107,   147,   325,     0,
1435 >       0,   366,     0,     0,   342,     3,    23,    11,     4,    24,
1436 >       5,     6,     8,     9,    10,    13,    14,    15,    16,    17,
1437 >      18,    19,    20,    22,    21,     7,    12,    25,    26,     0,
1438         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1439         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1440 <       0,     0,    92,    93,    95,    94,   597,     0,     0,     0,
1440 >       0,     0,     0,     0,     0,    99,   100,   102,   101,   632,
1441         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1442 <       0,     0,   582,   596,   592,   584,   585,   586,   587,   588,
1443 <     583,   589,   590,   591,   593,   594,   595,     0,     0,     0,
1444 <     413,     0,     0,   411,   412,     0,   482,     0,     0,     0,
1442 >       0,     0,     0,     0,     0,     0,   616,   631,   618,   619,
1443 >     620,   621,   622,   623,   624,   617,   625,   626,   627,   628,
1444 >     629,   630,     0,     0,     0,   449,     0,     0,   447,   448,
1445 >       0,   512,     0,     0,     0,     0,     0,     0,     0,     0,
1446         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1447 +       0,     0,     0,     0,     0,     0,     0,     0,     0,   586,
1448 +       0,   559,     0,     0,     0,     0,     0,     0,     0,     0,
1449         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1450 <       0,     0,     0,     0,     0,     0,   553,     0,   529,     0,
1450 >       0,     0,   462,   509,   511,   503,   504,   505,   506,   507,
1451 >     502,   473,   463,   464,   465,   466,   467,   468,   469,   470,
1452 >     471,   472,   499,   474,   475,   508,   477,   482,   483,   478,
1453 >     480,   479,   493,   494,   481,   484,   485,   486,   487,   476,
1454 >     489,   490,   491,   510,   500,   501,   498,   492,   488,   496,
1455 >     497,   495,     0,     0,     0,     0,     0,     0,     0,    45,
1456 >      46,    47,     0,     0,     0,   659,     0,     0,     0,     0,
1457 >       0,     0,     0,     0,     0,   650,   651,   652,   653,   654,
1458 >     657,   655,   656,   658,     0,     0,     0,     0,     0,     0,
1459         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1460 <       0,     0,     0,     0,     0,     0,     0,   432,   480,   474,
1461 <     475,   476,   477,   478,   473,   443,   433,   434,   468,   435,
1462 <     436,   437,   438,   439,   440,   441,   442,   470,   444,   445,
1463 <     479,   447,   452,   448,   450,   449,   463,   464,   451,   453,
1464 <     454,   455,   456,   457,   446,   459,   460,   461,   481,   471,
1465 <     472,   469,   462,   458,   466,   467,   465,     0,     0,     0,
1466 <       0,     0,     0,   102,   103,   104,     0,     0,     0,     0,
1467 <       0,    42,    43,    44,     0,     0,   621,     0,     0,     0,
1468 <       0,     0,     0,     0,   614,   615,   616,   619,   617,   618,
1469 <     620,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1470 <       0,     0,     0,     0,     0,     0,     0,     0,    50,    63,
1471 <      64,    62,    59,    58,    65,    51,    61,    54,    55,    56,
1472 <      52,    60,    57,    53,     0,     0,   300,     0,     0,   298,
1473 <     299,    96,     0,     0,     0,     0,    91,     0,     0,     0,
1460 >       0,     0,     0,    53,    68,    69,    67,    64,    63,    70,
1461 >      54,    66,    57,    58,    59,    55,    65,    60,    61,    62,
1462 >      56,     0,     0,     0,     0,   118,   119,   120,     0,   340,
1463 >       0,     0,   338,   339,     0,   103,     0,     0,     0,     0,
1464 >      98,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1465 >       0,     0,     0,     0,     0,     0,     0,   615,     0,     0,
1466 >       0,     0,   261,     0,     0,     0,     0,     0,     0,     0,
1467 >       0,     0,     0,     0,     0,     0,   228,   229,   232,   234,
1468 >     235,   236,   237,   238,   239,   240,   241,   230,   231,   233,
1469 >     242,   243,   244,     0,     0,     0,     0,     0,     0,     0,
1470 >     416,     0,     0,     0,     0,     0,     0,     0,     0,   391,
1471 >     392,   393,   394,   395,   396,   397,   399,   398,   401,   405,
1472 >     402,   403,   404,   400,   442,     0,     0,     0,   439,   440,
1473 >     441,     0,     0,   446,   457,     0,     0,     0,   454,   455,
1474 >     456,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1475         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1627       0,     0,   581,     0,     0,     0,     0,     0,     0,     0,
1628       0,     0,     0,     0,     0,     0,     0,     0,     0,   198,
1629     199,   202,   203,   205,   206,   207,   208,   209,   210,   211,
1630     212,   200,   201,   204,     0,     0,     0,     0,     0,   374,
1631       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,
1476         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1477         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1478         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1479 +       0,   461,     0,     0,     0,   308,     0,     0,     0,     0,
1480 +       0,     0,   294,   295,   296,   297,   302,   298,   299,   300,
1481 +     301,   433,     0,     0,     0,   430,   431,   432,     0,     0,
1482 +       0,   269,     0,   279,     0,   277,   278,   280,   281,    48,
1483 +       0,     0,     0,    44,     0,     0,     0,     0,   110,   111,
1484 +     112,     0,     0,     0,   197,     0,     0,     0,     0,     0,
1485 +     170,     0,     0,   150,   151,   152,   153,   156,   157,   158,
1486 +     159,   155,   154,   160,     0,     0,     0,     0,     0,   328,
1487 +     329,   330,   331,     0,     0,     0,     0,     0,     0,     0,
1488 +       0,     0,   649,    71,     0,     0,     0,     0,     0,     0,
1489         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1490 <       0,     0,   431,     0,     0,     0,   269,     0,     0,     0,
1491 <       0,     0,     0,   255,   256,   257,   258,   263,   259,   260,
1492 <     261,   262,   397,     0,   387,     0,   396,     0,   393,   394,
1493 <     395,     0,   230,     0,     0,     0,   240,     0,   238,   239,
1494 <     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,
1490 >       0,     0,    52,     0,     0,   374,     0,   369,   370,   371,
1491 >     121,     0,     0,   117,     0,     0,     0,   337,     0,     0,
1492 >     352,     0,     0,   345,   346,   347,   348,     0,     0,     0,
1493 >      97,     0,     0,     0,     0,    27,     0,     0,     0,     0,
1494 >       0,     0,     0,     0,     0,     0,     0,   614,   245,     0,
1495         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1496 <       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,
1496 >       0,     0,     0,     0,     0,     0,   227,   406,     0,     0,
1497         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1498 <       0,   197,   365,     0,     0,     0,     0,     0,     0,     0,
1499 <       0,     0,     0,     0,     0,     0,     0,   350,     0,     0,
1658 <       0,   402,     0,   409,     0,     0,     0,     0,   422,     0,
1498 >       0,     0,     0,   390,     0,     0,     0,   438,     0,   445,
1499 >       0,     0,     0,   453,     0,     0,     0,     0,     0,     0,
1500         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1501         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1502         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1503         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1504 +       0,     0,     0,     0,     0,   460,   303,     0,     0,     0,
1505 +       0,     0,     0,     0,     0,     0,   293,     0,     0,     0,
1506 +     429,   282,     0,     0,     0,     0,     0,   276,     0,     0,
1507 +      43,   113,     0,     0,     0,   109,   161,     0,     0,     0,
1508 +       0,     0,     0,     0,     0,     0,     0,     0,   149,   332,
1509 +       0,     0,     0,     0,   327,     0,     0,     0,     0,     0,
1510 +       0,     0,     0,   648,     0,     0,     0,     0,     0,     0,
1511 +       0,     0,     0,     0,     0,     0,     0,    76,    77,     0,
1512 +      75,    80,    81,     0,    79,     0,     0,    51,   372,     0,
1513 +       0,     0,   368,     0,   116,     0,     0,   336,   349,     0,
1514 +       0,     0,     0,   344,   106,   105,   104,   643,   642,   633,
1515 +     634,    27,    27,    27,    27,    27,    27,    27,    29,    28,
1516 +     635,   646,   647,   636,   637,   638,   641,   640,   639,   644,
1517 +     645,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1518 +       0,     0,     0,     0,     0,    37,     0,     0,   226,     0,
1519         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1520 <     430,   264,     0,     0,     0,     0,     0,     0,     0,     0,
1521 <       0,   254,     0,     0,     0,     0,   392,   243,     0,     0,
1522 <       0,     0,     0,   237,     0,   100,     0,     0,     0,    40,
1523 <     141,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1524 <     131,   292,     0,     0,     0,     0,   287,     0,     0,     0,
1525 <       0,     0,     0,   612,     0,     0,     0,     0,     0,     0,
1526 <       0,     0,    71,    72,     0,    70,    75,    76,     0,    74,
1527 <       0,     0,     0,     0,     0,    48,   309,     0,     0,     0,
1528 <       0,   304,   332,     0,     0,     0,   328,     0,   296,    99,
1529 <      98,    97,   607,   606,   598,    26,    26,    26,    26,    26,
1530 <      28,    27,   600,   601,   605,   603,   602,   608,   609,   610,
1531 <     611,   604,   599,     0,     0,     0,     0,     0,     0,     0,
1532 <       0,     0,     0,     0,     0,    34,     0,     0,   196,     0,
1533 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1534 <       0,     0,     0,   349,     0,     0,   401,   414,     0,     0,
1535 <       0,   416,   495,   499,   513,   579,   527,   493,   521,   524,
1536 <     494,   485,   484,   486,   487,   488,   502,   491,   492,   503,
1537 <     490,   498,   497,   496,   522,   483,   520,   577,   578,   517,
1538 <     514,   564,   557,   574,   575,   558,   559,   560,   561,   569,
1539 <     562,   572,   576,   565,   570,   566,   571,   563,   568,   567,
1540 <     573,     0,   556,   519,   539,   533,   550,   551,   534,   535,
1541 <     536,   537,   545,   538,   548,   552,   541,   546,   542,   547,
1542 <     540,   544,   543,   549,     0,   532,   512,   515,   526,   489,
1543 <     516,   505,   510,   511,   508,   509,   506,   507,   501,   500,
1544 <     525,   528,   518,   523,   504,     0,     0,     0,     0,     0,
1545 <       0,     0,     0,   253,     0,     0,     0,   386,     0,     0,
1546 <       0,   248,   244,   247,   229,   106,     0,     0,   118,     0,
1547 <       0,   110,   111,   113,   112,    46,    47,     0,     0,     0,
1548 <       0,     0,     0,     0,     0,   130,     0,     0,     0,   286,
1549 <     622,   626,   624,   627,   623,   625,    83,    89,    81,    85,
1550 <      84,    78,    77,    79,    67,     0,    68,     0,    82,    80,
1551 <      88,    86,    87,     0,     0,     0,   303,     0,     0,   327,
1552 <     301,    29,    30,    31,    32,    33,   225,   226,   218,   220,
1553 <     222,   221,   219,   214,   227,   217,   215,   216,    34,    34,
1554 <      34,    36,    35,   223,   224,   370,   372,   373,   383,   380,
1555 <     378,   379,     0,   377,   367,   381,   382,   366,   371,   369,
1556 <     384,   368,   407,   408,   428,   429,   421,     0,   420,   554,
1557 <       0,   530,     0,   267,   268,   277,   274,   279,   276,   275,
1558 <     281,   278,   280,   273,     0,   272,   266,   284,   283,   282,
1559 <     265,   399,   391,     0,   390,   398,   235,   236,   234,     0,
1560 <     233,   251,   250,     0,     0,     0,   114,     0,     0,     0,
1561 <       0,   109,   147,   145,   187,   184,   183,   176,   178,   194,
1562 <     188,   191,   186,   177,   192,   180,   189,   193,   181,   190,
1563 <     185,   179,   182,     0,   175,   142,   144,   146,   158,   152,
1708 <     169,   170,   153,   154,   155,   156,   164,   157,   167,   171,
1709 <     160,   165,   161,   166,   159,   163,   162,   168,     0,   151,
1710 <     143,   294,   295,   293,    69,    73,   310,   316,   322,   325,
1711 <     318,   324,   319,   323,   321,   317,   320,     0,   315,   311,
1712 <     333,   338,   344,   347,   340,   346,   341,   345,   343,   339,
1713 <     342,     0,   337,    37,    38,    39,   375,     0,   418,     0,
1714 <     555,   531,   270,     0,   388,     0,   231,     0,   249,   246,
1715 <     245,     0,     0,     0,     0,   108,   173,     0,   149,     0,
1716 <     313,     0,   335,     0,   376,   419,   271,   389,   232,   115,
1717 <     124,   127,   126,   123,   128,   125,   122,     0,   121,   117,
1718 <     116,   174,   150,   314,   336,   119,     0,   120
1719 < };
1720 <
1721 < /* YYDEFGOTO[NTERM-NUM].  */
1722 < static const yytype_int16 yydefgoto[] =
1723 < {
1724 <      -1,     1,    24,   780,   781,  1021,  1022,    25,   230,   231,
1725 <     232,   233,    26,   267,   268,   269,   270,   744,   745,   748,
1726 <     749,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1727 <     280,   281,   282,   283,    27,    71,    72,    73,    74,    75,
1728 <      28,   222,   223,   224,   225,   226,   950,   951,   952,   953,
1729 <     954,  1088,  1217,  1218,    29,    60,   501,   502,   503,   504,
1730 <     505,   506,   507,   508,   509,   717,  1138,  1139,   510,   713,
1731 <    1113,  1114,    30,    49,   328,   329,   330,   331,   332,   333,
1732 <     334,   335,   336,   337,   338,   339,   340,   341,   342,   343,
1733 <      31,    57,   476,   698,  1079,  1080,   477,   478,   479,  1085,
1734 <     942,   943,   480,   481,    32,    55,   452,   453,   454,   455,
1735 <     456,   457,   458,   684,  1064,  1065,   459,   460,   461,    33,
1736 <      61,   515,   516,   517,   518,   519,    34,   288,   289,   290,
1737 <      35,    64,   550,   551,   552,   553,   554,   758,  1157,  1158,
1738 <      36,    65,   558,   559,   560,   561,   764,  1171,  1172,    37,
1739 <      50,   358,   359,   360,   361,   362,   363,   364,   365,   366,
1740 <     367,   607,  1032,  1033,   368,   369,   370,   371,   372,    38,
1741 <      56,   466,   693,  1073,  1074,   467,   468,   469,   470,    39,
1742 <      51,   376,   377,   378,   379,    40,   112,   113,   114,    41,
1743 <      53,   387,   626,  1047,  1048,   388,   389,   390,   391,    42,
1744 <     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1745 <     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1746 <     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1747 <     196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1748 <     206,   207,   208,   209,   210,   211,   212,   423,   904,   905,
1749 <     213,   421,   881,   882,   214,   215,   216,    43,    91,    92,
1750 <      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1751 <     103,   104,   105,   106,    44,   243,   244,   245,   246,   247,
1752 <     248,   249,   250
1520 >       0,     0,     0,     0,   389,     0,     0,   437,   450,     0,
1521 >       0,   452,   525,   529,   544,   514,   613,   557,   551,   554,
1522 >     524,   516,   515,   518,   519,   517,   532,   522,   523,   533,
1523 >     521,   528,   527,   526,   552,   513,   611,   612,   548,   596,
1524 >     590,   607,   591,   592,   593,   601,   610,   594,   604,   608,
1525 >     597,   609,   602,   598,   603,   595,   606,   600,   599,   605,
1526 >       0,   589,   550,   568,   569,   570,   563,   582,   564,   565,
1527 >     566,   576,   585,   567,   579,   583,   572,   584,   577,   573,
1528 >     578,   571,   581,   575,   574,   580,     0,   562,   545,   543,
1529 >     546,   556,   547,   535,   541,   542,   539,   540,   536,   537,
1530 >     538,   555,   558,   520,   549,   531,   530,   553,   534,     0,
1531 >       0,     0,     0,     0,     0,     0,     0,   292,     0,     0,
1532 >     428,     0,     0,     0,   287,   283,   286,   268,    49,    50,
1533 >       0,     0,   108,     0,     0,     0,     0,     0,     0,     0,
1534 >       0,     0,     0,   148,     0,     0,     0,   326,   661,   660,
1535 >     666,   664,   667,   662,   663,   665,    88,    96,    87,    94,
1536 >      95,    86,    90,    89,    83,    82,    84,    93,    85,    72,
1537 >       0,    73,     0,    91,    92,     0,     0,   367,   122,     0,
1538 >       0,     0,   134,     0,   126,   127,   129,   128,   341,     0,
1539 >       0,     0,   343,    30,    31,    32,    33,    34,    35,    36,
1540 >     256,   257,   249,   266,   265,     0,   264,   251,   253,   260,
1541 >     252,   250,   259,   246,   258,   248,   247,    37,    37,    37,
1542 >      39,    38,   254,   255,   411,   414,   415,   425,   422,   408,
1543 >     423,   420,   421,     0,   419,   424,   407,   413,   410,   412,
1544 >     426,   409,   443,   444,   458,   459,   587,     0,   560,     0,
1545 >     306,   307,   316,   313,   318,   314,   315,   321,   317,   319,
1546 >     312,   320,     0,   311,   305,   324,   323,   322,   304,   435,
1547 >     434,   290,   289,   274,   275,   273,     0,   272,     0,     0,
1548 >       0,   114,   115,   169,   165,   217,   204,   214,   213,   202,
1549 >     207,   224,   216,   222,   206,   209,   219,   221,   218,   215,
1550 >     223,   210,   212,   220,   208,   211,     0,   200,   162,   164,
1551 >     166,   167,   168,   179,   180,   181,   174,   193,   175,   176,
1552 >     177,   187,   196,   178,   190,   194,   183,   195,   188,   184,
1553 >     189,   182,   192,   186,   185,   191,     0,   173,   163,   335,
1554 >     333,   334,    74,    78,   373,   378,   384,   387,   380,   386,
1555 >     381,   385,   383,   379,   382,     0,   377,   130,     0,     0,
1556 >       0,     0,   125,   350,   356,   362,   365,   358,   364,   359,
1557 >     363,   361,   357,   360,     0,   355,   351,   262,     0,    40,
1558 >      41,    42,   417,     0,   588,   561,   309,     0,   270,     0,
1559 >     288,   285,   284,     0,     0,     0,   198,     0,   171,     0,
1560 >     375,     0,     0,     0,     0,     0,   124,   353,     0,   263,
1561 >     418,   310,   271,   203,   201,   205,   199,   172,   376,   131,
1562 >     133,   132,   140,   145,   144,   139,   142,   146,   143,   138,
1563 >     141,     0,   137,   354,   135,     0,   136
1564   };
1565  
1566 < /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1567 <   STATE-NUM.  */
1757 < #define YYPACT_NINF -744
1758 < static const yytype_int16 yypact[] =
1566 >  /* YYPGOTO[NTERM-NUM].  */
1567 > static const yytype_int16 yypgoto[] =
1568   {
1569 <    -744,   610,  -744,  -209,  -187,  -179,  -744,  -744,  -744,  -176,
1570 <    -744,  -171,  -744,  -744,  -744,  -166,  -164,  -744,  -744,  -139,
1571 <    -136,  -744,  -744,  -131,  -744,  -744,  -744,  -744,  -744,  -744,
1572 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1573 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,    61,   807,  -126,
1574 <    -104,   -84,    16,   -79,   382,   -77,   -63,   -60,     7,    21,
1575 <     -49,   -40,   638,   381,   -26,    52,    25,  -152,    62,    85,
1576 <      86,    18,  -744,  -744,  -744,  -744,  -744,    88,    89,    93,
1577 <      94,    96,   101,   108,   112,   118,   119,   125,   127,   132,
1578 <     133,   162,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1579 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,   531,   499,   266,
1580 <    -744,   135,    28,  -744,  -744,    11,  -744,   142,   143,   145,
1581 <     147,   148,   150,   153,   163,   166,   167,   169,   173,   174,
1582 <     175,   177,   178,   180,   182,   183,   185,   191,   197,   200,
1583 <     201,   202,   204,   211,   212,   215,  -744,   216,  -744,   217,
1584 <     218,   221,   222,   225,   226,   229,   234,   235,   237,   238,
1585 <     239,   242,   253,   256,   257,   262,    38,  -744,  -744,  -744,
1586 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1587 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1588 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1589 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1590 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,   337,    24,   259,
1591 <      73,   263,     4,  -744,  -744,  -744,   126,   131,   264,   270,
1592 <      59,  -744,  -744,  -744,   389,   209,  -744,   276,   279,   280,
1593 <     281,   285,   287,     3,  -744,  -744,  -744,  -744,  -744,  -744,
1594 <    -744,   149,   288,   289,   290,   292,   299,   301,   302,   303,
1595 <     304,   305,   307,   308,   315,   324,   330,    75,  -744,  -744,
1596 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1597 <    -744,  -744,  -744,  -744,   208,    30,  -744,   331,    15,  -744,
1598 <    -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
1569 >    -922,  -922,  -922,  -430,  -313,  -921,  -633,  -922,  -922,   962,
1570 >    -922,  -922,  -922,  -922,   812,  -922,  -922,  -922,    47,  -922,
1571 >      58,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1572 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  1039,  -922,
1573 >    -922,  -922,  -922,  -922,  -922,   631,  -922,  -922,  -922,  -922,
1574 >     956,  -922,  -922,  -922,  -922,    95,  -922,  -922,  -922,  -922,
1575 >    -922,  -162,  -922,  -922,  -922,   628,  -922,  -922,  -922,  -922,
1576 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -117,  -922,  -922,
1577 >    -922,  -114,  -922,  -922,  -922,   809,  -922,  -922,  -922,  -922,
1578 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1579 >    -922,  -922,  -922,  -922,   -91,  -922,  -922,  -922,  -922,  -922,
1580 >     -86,  -922,   686,  -922,  -922,  -922,    44,  -922,  -922,  -922,
1581 >    -922,  -922,   690,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1582 >     -83,  -922,  -922,  -922,  -922,  -922,  -922,   641,  -922,  -922,
1583 >    -922,  -922,  -922,   960,  -922,  -922,  -922,  -922,   600,  -922,
1584 >    -922,  -922,  -922,  -922,   -96,  -922,  -922,  -922,   607,  -922,
1585 >    -922,  -922,  -922,   -77,  -922,  -922,  -922,   817,  -922,  -922,
1586 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,   -57,
1587 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,   713,  -922,
1588 >    -922,  -922,  -922,  -922,   801,  -922,  -922,  -922,  -922,  1082,
1589 >    -922,  -922,  -922,  -922,   793,  -922,  -922,  -922,  -922,  1030,
1590 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1591 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1592 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1593 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1594 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,    85,  -922,  -922,
1595 >    -922,    86,  -922,  -922,  -922,  -922,  -922,  1107,  -922,  -922,
1596 >    -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,  -922,
1597 >    -922,  -922,  -922,  -922,  -922,   961,  -922,  -922,  -922,  -922,
1598 >    -922,  -922,  -922,  -922
1599   };
1600  
1601 < /* YYPGOTO[NTERM-NUM].  */
1602 < static const yytype_int16 yypgoto[] =
1601 >  /* YYDEFGOTO[NTERM-NUM].  */
1602 > static const yytype_int16 yydefgoto[] =
1603   {
1604 <    -744,  -744,  -744,  -743,  -298,  -663,  -598,  -744,  -744,   897,
1605 <    -744,  -744,  -744,  -744,   915,  -744,  -744,  -744,    14,  -744,
1606 <       1,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1607 <    -744,  -744,  -744,  -744,  -744,  -744,   924,  -744,  -744,  -744,
1608 <    -744,  -744,   796,  -744,  -744,  -744,  -744,    48,  -744,  -744,
1609 <    -744,  -744,  -744,  -226,  -744,  -744,  -744,   500,  -744,  -744,
1610 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -196,  -744,  -744,
1611 <    -744,  -193,  -744,  -744,  -744,   680,  -744,  -744,  -744,  -744,
1612 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1613 <    -744,  -744,  -744,  -744,  -744,  -177,  -744,   548,  -744,  -744,
1614 <    -744,   -62,  -744,  -744,  -744,  -744,  -744,   575,  -744,  -744,
1615 <    -744,  -744,  -744,  -744,  -744,  -153,  -744,  -744,  -744,  -744,
1616 <    -744,  -744,   516,  -744,  -744,  -744,  -744,  -744,   918,  -744,
1617 <    -744,  -744,  -744,   482,  -744,  -744,  -744,  -744,  -744,  -163,
1618 <    -744,  -744,  -744,   483,  -744,  -744,  -744,  -744,  -159,  -744,
1619 <    -744,  -744,   688,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1620 <    -744,  -744,  -744,  -137,  -744,  -744,  -744,  -744,  -744,  -744,
1621 <    -744,  -744,  -744,  -744,  -117,  -744,   604,  -744,  -744,  -744,
1622 <    -744,  -744,   700,  -744,  -744,  -744,  -744,   966,  -744,  -744,
1623 <    -744,  -744,  -744,  -744,   -99,  -744,   701,  -744,  -744,  -744,
1624 <    -744,   919,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1625 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1626 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1627 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1628 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,    35,
1629 <    -744,  -744,  -744,    32,  -744,  -744,  -744,  -744,  -744,   997,
1630 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1631 <    -744,  -744,  -744,  -744,  -744,  -744,   920,  -744,  -744,  -744,
1632 <    -744,  -744,  -744
1604 >      -1,     1,    25,   828,   829,  1090,  1091,    26,   228,   229,
1605 >     230,   231,    27,   272,   273,   274,   275,   789,   790,   793,
1606 >     794,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1607 >     285,   286,   287,   288,   289,   290,    28,    74,    75,    76,
1608 >      77,    78,    29,    61,   507,   508,   509,   510,    30,   294,
1609 >     295,   296,   297,   298,  1053,  1054,  1055,  1056,  1057,  1230,
1610 >    1301,  1302,    31,    62,   522,   523,   524,   525,   526,   527,
1611 >     528,   529,   530,   531,   532,   755,  1206,  1207,   533,   749,
1612 >    1176,  1177,    32,    51,   345,   346,   347,   348,   349,   350,
1613 >     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
1614 >     361,   362,   622,  1075,  1076,    33,    59,   493,   734,  1146,
1615 >    1147,   494,   495,   496,  1150,   995,   996,   497,   498,    34,
1616 >      57,   471,   472,   473,   474,   475,   476,   477,   719,  1132,
1617 >    1133,   478,   479,   480,    35,    63,   538,   539,   540,   541,
1618 >     542,    36,   301,   302,   303,    37,    69,   592,   593,   594,
1619 >     595,   596,   810,  1244,  1245,    38,    66,   576,   577,   578,
1620 >     579,   800,  1225,  1226,    39,    52,   378,   379,   380,   381,
1621 >     382,   383,   384,   385,   386,   387,   388,   644,  1103,  1104,
1622 >     389,   390,   391,   392,   393,    40,    58,   484,   485,   486,
1623 >     487,    41,    53,   397,   398,   399,   400,    42,   117,   118,
1624 >     119,    43,    55,   407,   408,   409,   410,    44,   171,   172,
1625 >     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
1626 >     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
1627 >     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
1628 >     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
1629 >     213,   214,   215,   216,   217,   440,   956,   957,   218,   438,
1630 >     930,   931,   219,   220,   221,    45,    95,    96,    97,    98,
1631 >      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1632 >     109,   110,   111,    46,   244,   245,   246,   247,   248,   249,
1633 >     250,   251,   252,   253
1634   };
1635  
1636 < /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1637 <   positive, shift that token.  If negative, reduce the rule which
1638 <   number is the opposite.  If YYTABLE_NINF, syntax error.  */
1922 < #define YYTABLE_NINF -108
1636 >  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1637 >     positive, shift that token.  If negative, reduce the rule whose
1638 >     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1639   static const yytype_int16 yytable[] =
1640   {
1641 <     806,   807,   573,   574,   236,   220,    45,    46,   220,   373,
1642 <     581,   462,   383,   805,   667,   668,   286,   110,  1076,    67,
1643 <     984,  1030,   227,   555,   985,   462,   286,   669,   670,   110,
1644 <      47,   555,  1001,  1002,  1003,  1004,  1005,   383,    48,   116,
1645 <     237,    52,    68,   986,   117,   118,    54,   987,  1049,    69,
1646 <     119,    58,  1050,    59,   238,   239,   240,   241,   120,   443,
1647 <     227,  1051,    67,   291,   121,  1052,   122,   123,   124,   374,
1648 <    1176,   492,   242,   125,  1177,   444,   251,   111,    62,   126,
1649 <     127,    63,   128,   129,   130,    68,    66,   493,   131,   111,
1650 <     445,   107,    69,   132,   446,   630,   631,   133,   134,   252,
1651 <     384,   135,   494,   638,   287,   640,   495,    70,   228,  1193,
1652 <     136,   556,   647,   108,   287,   650,   471,   137,   138,   556,
1653 <     139,   140,   141,   142,   143,   384,   661,   662,   375,   546,
1654 <     463,   385,   253,   109,   229,   144,   673,   674,   115,   676,
1655 <     217,   145,   146,   147,   463,   148,   228,   511,   149,   150,
1656 <      70,   472,   151,  1077,   218,   946,   385,   219,  1078,   496,
1657 <     512,   464,   386,    76,   254,  1178,   255,   256,   234,  1179,
1658 <     447,   473,   229,   557,  1182,   464,   474,   235,  1183,   448,
1659 <     449,   557,   497,    77,    78,   946,   152,   386,  1184,    79,
1660 <     153,   284,  1185,   154,   155,   156,   157,   158,  1186,   498,
1661 <     159,   160,  1187,   257,  1031,   258,   259,   260,   261,   546,
1662 <     511,   450,   221,   742,   743,   221,   465,   547,  -107,   526,
1663 <     484,  -107,   262,   512,   620,   565,   695,   732,    80,    81,
1664 <     465,   563,   475,   313,   295,    82,    83,    84,   765,   513,
1665 <     161,   162,   163,   947,   381,   164,   263,   314,   315,  1196,
1666 <     165,   316,   627,  1197,   441,  1198,   264,    85,    86,  1199,
1667 <     471,   344,   499,   345,   451,   346,   514,   373,  1200,   285,
1668 <      87,    88,  1201,   947,   690,   490,   500,   347,  1202,   548,
1669 <     292,    89,  1203,  1225,   265,   266,   719,  1226,   482,    90,
1670 <     795,   544,   348,   746,   747,   472,   349,   547,   803,   804,
1671 <     810,   811,   513,   293,   294,   948,   297,   298,   317,   318,
1672 <     319,   299,   300,   320,   301,   473,   350,  1210,   351,   302,
1673 <     474,   321,  1055,  1018,  1019,  1020,   303,   374,   352,   514,
1674 <     304,   702,   322,   323,   549,   948,   305,   306,   443,  1211,
1675 <     486,  1212,  1056,   307,   760,   308,   487,   324,   325,   353,
1676 <     309,   310,  1057,   380,   444,  1173,  1174,  1175,  1058,   548,
1677 <     392,   393,   725,   394,   528,   395,   396,   949,   397,   445,
1678 <    1090,   398,   566,   446,  1059,   326,   475,   354,   311,  1213,
1679 <     568,   399,   251,   116,   400,   401,   375,   402,   117,   118,
1680 <     492,   403,   404,   405,   119,   406,   407,   949,   408,  1060,
1681 <     409,   410,   120,   411,   355,   252,   493,  1061,   121,   412,
1682 <     122,   123,   124,   805,   549,   413,   327,   125,   414,   415,
1683 <     416,   494,   417,   126,   127,   495,   128,   129,   130,   418,
1684 <     419,   356,   131,   420,   422,   424,   425,   132,   253,   426,
1685 <     427,   133,   134,   428,   429,   135,  1062,   430,   600,   447,
1686 <    1214,  1215,   431,   432,   136,   433,   434,   435,   448,   449,
1687 <     436,   137,   138,  1063,   139,   140,   141,   142,   143,   357,
1688 <     254,   437,   255,   256,   438,   439,   616,   567,   496,   144,
1689 <     440,   483,   488,  1216,   569,   145,   146,   147,   489,   148,
1690 <     450,  1194,   149,   150,   520,   570,   151,   521,   522,   523,
1691 <     344,   497,   345,   524,   346,   525,   529,   530,   531,   257,
1692 <     532,   258,   259,   260,   261,  1094,   347,   533,   498,   534,
1693 <     535,   536,   537,   538,  1147,   539,   540,   571,   262,   572,
1694 <     152,   348,   313,   541,   153,   349,  1095,   154,   155,   156,
1695 <     157,   158,   542,   451,   159,   160,   314,   315,   543,   562,
1696 <     316,  1096,   263,   572,   575,   350,   576,   351,  1097,   578,
1697 <     577,   579,   264,   580,   582,   583,   584,   352,   775,   776,
1698 <     777,   778,   779,   585,   586,  1098,   622,   629,   587,   588,
1699 <     589,   499,   590,   591,   161,   162,   163,   592,   353,   164,
1700 <     265,   266,   593,   594,   165,   500,  1148,   595,  1099,   602,
1701 <     632,   596,   861,   633,   597,  1100,   598,   317,   318,   319,
1702 <       2,     3,   320,   599,     4,   603,   354,  1101,   604,   634,
1703 <     321,   605,   623,   635,     5,  1149,   606,     6,     7,   608,
1704 <     609,   322,   323,     8,  1150,  1102,  1103,  1104,   610,   236,
1705 <    1151,   611,   612,   355,     9,   613,   324,   325,    10,    11,
1706 <     884,   614,   615,   618,  1152,   619,  1153,  1154,    12,   624,
1707 <     625,   636,   637,   639,   641,  1155,   642,   643,   644,   645,
1708 <     356,  1156,    13,   646,   326,   237,   648,   649,  1118,   651,
1709 <      14,    15,   652,   654,   653,  1105,   655,   656,   657,   238,
1710 <     239,   240,   241,   658,  1106,   659,   660,   663,    16,  1107,
1711 <     664,   665,   666,   675,   671,  1108,   672,   242,   357,  1109,
1712 <     677,  1110,    17,   678,   679,   327,  1111,   862,   863,   864,
1713 <     865,   866,  1112,   867,   868,   680,   869,   870,   871,  1161,
1714 <     681,   872,   682,   873,   874,   683,   875,   685,   876,   686,
1715 <     877,   878,   704,   687,   879,   752,    18,   688,   689,   706,
1716 <     880,   692,   694,   697,   699,    19,    20,   700,   707,    21,
1717 <      22,   708,   705,   701,   709,   885,   886,   887,   888,   889,
1718 <     710,   890,   891,   721,   892,   893,   894,   711,   712,   895,
1719 <     714,   896,   897,   727,   898,   728,   899,   715,   900,   901,
1720 <     716,   718,   902,  1119,  1120,  1121,  1122,  1123,   903,  1124,
1721 <    1125,  1162,  1126,  1127,  1128,   729,   722,  1129,    76,  1130,
1722 <    1131,    23,  1132,   723,  1133,   724,  1134,  1135,   730,   731,
1723 <    1136,   733,   734,   735,   736,   737,  1137,   738,    77,    78,
1724 <    1163,   739,   740,   741,    79,   750,   751,   753,   754,  1164,
1725 <     757,   755,   759,   756,   762,  1165,   767,   768,   763,   769,
1726 <     770,   771,   772,   793,   773,   794,   774,   782,   796,  1166,
1727 <     783,  1167,  1168,   784,   785,   786,   787,   788,   789,   790,
1728 <    1169,   791,   792,    80,    81,   797,  1170,   798,   799,   800,
1729 <      82,    83,    84,   801,   802,   805,   808,   809,   812,   813,
1730 <     814,   815,   816,   817,   819,   818,   823,   826,   820,   821,
1731 <     822,   824,    85,    86,   827,   825,   828,   829,   830,   831,
1732 <     832,   833,   834,   835,   836,    87,    88,   837,   838,   925,
1733 <     839,   928,   929,   840,   926,   841,    89,   842,   930,   927,
1734 <     931,   843,   932,   934,    90,   936,   844,   845,   846,   847,
1735 <     848,   849,   850,   939,   940,   851,   852,   853,   854,   855,
1736 <     856,   857,   858,   859,   860,   883,   906,   907,   908,   909,
1737 <     910,   911,   912,   913,   914,   915,   916,   917,   918,   941,
1738 <     919,   957,   920,   921,   960,   922,   958,   923,   924,   961,
1739 <     933,   962,   937,   964,   935,   966,   938,   944,  1145,   959,
1740 <     967,   968,   993,   995,   997,   296,  1083,  1188,  1091,  1144,
1741 <    1227,   720,  1046,  1222,  1221,   945,   955,   956,   601,   965,
1742 <    1208,   963,   969,   970,   971,   972,  1072,   973,   485,   974,
1743 <     975,   976,  1189,   977,   978,   703,   979,   691,   980,  1191,
1744 <    1206,   726,   761,   981,   982,   983,   988,   989,  1223,   990,
1745 <    1204,   766,   991,   992,  1224,   996,   617,   994,   999,   998,
1746 <    1000,  1006,  1007,  1008,  1009,  1010,  1011,  1012,  1013,  1014,
1747 <    1015,  1016,  1017,  1023,  1024,  1025,  1026,  1027,  1207,  1028,
1748 <    1029,   696,  1034,  1035,  1036,  1037,   621,  1038,   382,  1039,
1749 <    1205,  1040,  1180,  1041,  1042,   442,  1043,  1181,   312,   628,
1750 <       0,     0,  1044,  1045,     0,  1053,  1054,  1066,  1067,  1068,
1751 <    1069,  1070,  1071,  1075,  1081,  1082,     0,  1086,     0,     0,
1752 <    1084,  1092,  1087,  1089,  1093,  1115,  1116,  1117,  1140,  1141,
1753 <    1142,  1143,  1146,  1159,  1160,  1190,     0,   491,  1195,  1209,
1754 <    1192,  1219,  1220,     0,     0,     0,     0,     0,     0,     0,
1641 >     856,   857,   606,  1101,   608,   292,   610,   611,    49,   115,
1642 >     235,   115,   588,   488,   225,   504,    70,   534,   394,  1143,
1643 >      50,    70,   394,   504,   404,   225,   292,  1087,  1088,  1089,
1644 >      54,  1049,   404,   299,   481,   534,   481,  1039,   236,  1041,
1645 >      71,  1040,    56,  1042,  1073,    71,   237,    72,    60,   855,
1646 >    1116,   535,    72,  1118,  1117,   299,  1247,  1119,   238,   239,
1647 >    1248,   121,    64,   240,   241,   242,   122,   123,   700,   535,
1648 >     489,   701,   124,   116,  1252,   116,   305,   490,  1253,   491,
1649 >     125,   126,   395,    65,   573,    67,   395,   127,   243,  1049,
1650 >     128,   129,    47,    48,  1256,   505,   130,   536,  1257,   665,
1651 >     666,   131,   132,   505,   133,   134,   135,   673,   136,    68,
1652 >     588,   677,   573,   226,   589,   536,   682,   137,    73,   685,
1653 >    1074,   138,   139,    73,   226,   702,   405,   112,   703,   695,
1654 >     696,   855,   140,  1050,   405,   300,   113,   227,   254,   492,
1655 >     708,   114,   141,   711,   712,  1273,   537,   396,   227,   120,
1656 >     142,   396,   143,   406,   144,   222,   145,   300,   146,   147,
1657 >    1144,   406,   255,   482,   537,   482,  1249,  1250,  1251,   328,
1658 >    1145,   148,   787,   788,   223,   224,   149,   150,   151,  -123,
1659 >     152,   153,   154,   329,   330,   155,   574,   331,  1258,   506,
1660 >    1266,  1050,  1259,   232,  1267,  1102,   256,   506,  1268,  1270,
1661 >    -123,   499,  1269,  1271,  1277,   257,  1304,   233,  1278,   234,
1662 >    1305,   156,   589,   291,   574,   860,   861,   304,   553,   157,
1663 >     158,   159,   160,   161,   162,   306,  1051,   307,   258,   308,
1664 >     293,   311,   259,   312,   590,   332,   313,   772,   591,   580,
1665 >     260,   402,   551,   261,   262,   736,   502,   744,   309,   763,
1666 >     656,   293,   163,  1052,   333,   334,   335,   336,   582,   584,
1667 >     483,   337,   483,  1231,   662,   338,   729,   791,   792,   597,
1668 >     601,   339,   314,   315,   316,   263,   164,   165,   317,   166,
1669 >     167,   168,   340,   341,  1051,   169,   318,   586,   319,   598,
1670 >     170,   462,   264,   460,   342,   265,   320,   321,   511,   322,
1671 >      79,   363,   323,   364,   324,   365,   575,   463,   843,   325,
1672 >     401,  1052,   847,   411,   512,   850,   343,   366,   605,   854,
1673 >     266,    80,    81,   464,   488,   412,   413,    82,   414,   415,
1674 >     513,   416,   590,   367,   575,   417,   591,   418,   267,   268,
1675 >     269,   419,   812,   420,   801,   821,   822,   823,   824,   825,
1676 >     826,   827,   421,   422,   423,   344,   424,   465,   368,   425,
1677 >     369,   426,    83,    84,   514,   270,   271,   370,    85,    86,
1678 >     571,   427,   600,   428,    87,    88,    89,   429,   371,   430,
1679 >     431,   489,    90,    91,    92,   432,   433,   434,   490,   435,
1680 >     491,  1063,  1064,  1065,  1066,  1067,  1068,  1069,   436,   437,
1681 >     515,   635,   439,   372,   441,   442,   443,   444,    93,    94,
1682 >     235,   445,   363,   466,   364,   446,   365,   447,   448,   449,
1683 >     516,   467,   468,   450,   451,   511,   452,   373,   366,   453,
1684 >     454,   455,   456,   457,   458,   459,   517,   500,   236,   501,
1685 >     599,   512,   469,   543,   367,   544,   237,   374,   545,   546,
1686 >     492,   547,   548,   518,   519,   121,   375,   513,   238,   239,
1687 >     122,   123,   549,   240,   241,   242,   124,   550,   554,   368,
1688 >     555,   369,   556,   557,   125,   126,   558,   462,   370,   559,
1689 >     560,   127,   561,   562,   128,   129,   563,   564,   243,   371,
1690 >     130,   514,   565,   463,  1215,   131,   132,   566,   133,   134,
1691 >     135,   376,   136,   520,   567,   568,   569,   570,   581,   464,
1692 >     585,   137,   602,   603,   372,   138,   139,   470,   604,   605,
1693 >     607,   609,   615,   725,   521,   612,   140,   515,   377,   613,
1694 >     757,   254,   326,   652,   616,   614,   141,   617,   373,   619,
1695 >     618,   620,   658,   465,   142,   621,   143,   516,   144,   623,
1696 >     145,   624,   146,   147,   637,   255,  1234,  1216,   374,   625,
1697 >     626,   627,   628,   517,   629,   148,   630,   375,   631,   632,
1698 >     149,   150,   151,   633,   152,   153,   154,   634,   638,   155,
1699 >     518,   519,   639,   640,   641,   642,  1217,  1155,   643,   256,
1700 >     645,   646,   647,  1218,   648,   649,  1274,   650,   257,   466,
1701 >     651,  1156,  1219,   654,   655,   156,   659,   467,   468,  1157,
1702 >    1292,   660,   376,   157,   158,   159,   160,   161,   162,  1235,
1703 >     661,   258,   668,  1158,   670,   259,   671,   675,   469,  1220,
1704 >     520,  1221,  1222,   260,   664,   667,   261,   262,   669,   377,
1705 >     672,  1293,   674,  1294,   676,  1223,   163,   678,  1236,   679,
1706 >     680,   521,  1224,   681,  1159,  1237,  1160,   683,   684,   686,
1707 >     687,   688,   689,   690,  1238,   691,   692,   693,   263,   707,
1708 >     164,   165,   694,   166,   167,   168,   697,   698,   699,   169,
1709 >     704,   705,   706,  1161,   170,   264,   709,  1122,   265,  1295,
1710 >     710,  1239,   713,  1240,  1241,   714,   715,   738,   777,   739,
1711 >     716,   768,   774,   470,   717,   718,  1296,  1242,  1123,   720,
1712 >     731,   740,   765,   266,  1243,   776,  1162,  1124,  1163,   721,
1713 >     722,   723,   724,   727,   728,   732,   733,   735,   741,   742,
1714 >     743,   267,   268,   269,   746,   747,   748,  1164,   750,   751,
1715 >     752,  1297,  1298,   753,   759,   754,   778,   328,  1125,     2,
1716 >       3,   756,   760,     4,   761,  1165,   762,   766,   270,   271,
1717 >    1166,   329,   330,     5,  1167,   331,     6,     7,   767,  1168,
1718 >     769,   770,  1169,     8,   771,   773,   775,  1170,  1126,  1127,
1719 >     779,   780,   781,   782,     9,   783,  1128,    10,    11,   784,
1720 >     785,  1171,   786,   795,  1172,   796,  1173,  1299,   797,   798,
1721 >     799,  1300,   805,   803,   804,   841,   806,  1174,   807,   808,
1722 >     809,  1129,   814,   332,  1175,    12,   811,   842,   815,   844,
1723 >      13,   816,   817,   818,   819,   820,   830,  1130,   933,    14,
1724 >     934,   935,   333,   334,   335,   336,   831,   832,   833,   337,
1725 >     834,   835,   836,   338,   837,   838,   839,   840,   845,   339,
1726 >      15,    16,   846,    79,   848,   849,   851,   852,   853,   858,
1727 >     340,   341,   859,  1183,   855,  1184,  1185,   866,    17,   869,
1728 >     874,   862,   342,   863,    80,    81,   864,   877,   865,   878,
1729 >      82,   867,   868,   870,   981,    18,   871,   872,  1131,   873,
1730 >     875,   876,   879,   880,   343,   881,   979,   993,    19,    20,
1731 >     882,   883,   884,   885,   886,   887,   909,   888,   889,   982,
1732 >     980,   890,   891,   892,   893,    83,    84,   894,    21,   895,
1733 >     896,    85,    86,   897,   983,   898,   899,    87,    88,    89,
1734 >     900,    22,   901,   344,   902,    90,    91,    92,   903,   904,
1735 >      23,   905,   906,   907,    24,   936,   937,   938,   908,   939,
1736 >     940,   932,   941,   942,   958,   943,   959,   944,   960,   961,
1737 >     945,    93,    94,   946,   947,   948,   984,   949,   962,   963,
1738 >     964,   985,   950,   986,   988,   989,   951,   952,   953,   965,
1739 >    1186,  1187,  1188,   991,  1189,  1190,   954,  1191,  1192,   966,
1740 >    1193,   955,  1194,   992,   994,  1195,  1000,  1001,  1196,  1197,
1741 >    1198,   967,  1199,   968,   969,   970,   971,  1200,   972,   973,
1742 >     974,  1201,  1202,  1203,   975,   976,   977,   978,   987,   990,
1743 >     997,  1204,   998,   910,   911,   912,  1205,   913,   914,   999,
1744 >     915,   916,  1002,   917,  1003,   918,  1004,  1005,   919,  1006,
1745 >    1007,   920,   921,   922,  1008,   923,  1009,  1010,  1011,  1012,
1746 >     924,  1013,  1014,  1015,   925,   926,   927,  1016,  1017,  1018,
1747 >    1019,  1020,  1021,  1022,   928,  1023,  1024,  1025,  1026,   929,
1748 >    1045,  1027,  1028,  1029,  1030,  1059,  1031,  1061,  1260,  1272,
1749 >    1032,  1033,  1034,  1035,   572,  1036,  1037,  1212,  1038,  1283,
1750 >    1043,  1044,  1284,  1047,  1048,  1046,  1058,  1285,  1060,  1062,
1751 >    1213,  1228,  1070,  1071,  1072,  1077,  1078,  1079,  1080,  1081,
1752 >    1082,  1083,  1084,   310,  1085,  1086,  1092,  1093,  1094,  1095,
1753 >    1096,  1097,  1098,  1099,  1100,  1105,  1106,  1107,  1108,  1109,
1754 >    1110,  1111,  1112,  1113,  1114,  1115,  1120,  1121,   745,  1134,
1755 >    1135,  1136,  1137,  1306,  1148,  1138,  1139,  1140,  1232,  1141,
1756 >     758,  1142,  1287,  1286,   636,  1151,  1149,  1279,  1152,  1153,
1757 >    1154,   726,  1178,  1179,  1180,  1181,  1182,  1208,  1209,  1210,
1758 >    1211,  1214,  1227,  1282,  1281,  1233,  1229,  1246,  1262,   764,
1759 >     737,  1263,  1303,   802,  1276,  1264,  1289,  1265,  1275,  1290,
1760 >     503,  1291,   813,  1261,  1288,   653,  1280,   730,   657,   403,
1761 >     663,   461,   327,  1254,  1255,   552,     0,     0,     0,     0,
1762         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1763         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2041       0,     0,     0,   527,     0,     0,     0,     0,     0,     0,
1764         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2043       0,     0,   545,     0,     0,     0,     0,     0,     0,     0,
1765         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1766 <       0,     0,     0,     0,     0,     0,   564
1766 >     583,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1767 >       0,   587
1768   };
1769  
2048 #define yypact_value_is_default(yystate) \
2049  ((yystate) == (-744))
2050
2051 #define yytable_value_is_error(yytable_value) \
2052  YYID (0)
2053
1770   static const yytype_int16 yycheck[] =
1771   {
1772 <     598,   599,   300,   301,     1,     1,   215,   216,     1,     1,
1773 <     308,     1,     1,    99,   160,   161,     1,     1,    51,     1,
1774 <     215,     8,     1,     1,   219,     1,     1,   160,   161,     1,
1775 <     217,     1,   775,   776,   777,   778,   779,     1,   217,     1,
1776 <      37,   217,    24,   215,     6,     7,   217,   219,   215,    31,
1777 <      12,   217,   219,   217,    51,    52,    53,    54,    20,     1,
1778 <       1,   215,     1,   215,    26,   219,    28,    29,    30,    61,
1779 <     215,     1,    69,    35,   219,    17,     1,    61,   217,    41,
1780 <      42,   217,    44,    45,    46,    24,   217,    17,    50,    61,
1781 <      32,   217,    31,    55,    36,   393,   394,    59,    60,    24,
1782 <      89,    63,    32,   401,    89,   403,    36,    89,    87,   195,
1783 <      72,    89,   410,   217,    89,   413,     1,    79,    80,    89,
1784 <      82,    83,    84,    85,    86,    89,   424,   425,   120,     1,
1785 <     120,   120,    57,   217,   113,    97,   434,   435,   217,   437,
1786 <     217,   103,   104,   105,   120,   107,    87,     1,   110,   111,
1787 <      89,    36,   114,   186,   217,     1,   120,   217,   191,    89,
1788 <      14,   151,   151,     1,    89,   215,    91,    92,   217,   219,
1789 <     112,    56,   113,   151,   215,   151,    61,   217,   219,   121,
1790 <     122,   151,   112,    21,    22,     1,   148,   151,   215,    27,
1791 <     152,   217,   219,   155,   156,   157,   158,   159,   215,   129,
1792 <     162,   163,   219,   128,   191,   130,   131,   132,   133,     1,
1793 <       1,   153,   208,   134,   135,   208,   206,    89,   214,   216,
1794 <     216,   214,   147,    14,   216,   118,   216,   525,    66,    67,
1795 <     206,   216,   117,     1,   216,    73,    74,    75,   216,    93,
1796 <     202,   203,   204,    89,   216,   207,   171,    15,    16,   215,
1797 <     212,    19,   216,   219,   216,   215,   181,    95,    96,   219,
1798 <       1,     1,   192,     3,   206,     5,   120,     1,   215,   217,
1799 <     108,   109,   219,    89,   216,   216,   206,    17,   215,   151,
1800 <     218,   119,   219,   215,   209,   210,   216,   219,   215,   127,
1801 <     588,   216,    32,   134,   135,    36,    36,    89,   596,   597,
1802 <     178,   179,    93,   218,   218,   151,   218,   218,    76,    77,
1803 <      78,   218,   218,    81,   218,    56,    56,    40,    58,   218,
1804 <      61,    89,    13,     9,    10,    11,   218,    61,    68,   120,
1805 <     218,   216,   100,   101,   206,   151,   218,   218,     1,    62,
1806 <     214,    64,    33,   218,   216,   218,   215,   115,   116,    89,
1807 <     218,   218,    43,   218,    17,  1018,  1019,  1020,    49,   151,
1808 <     218,   218,   216,   218,   215,   218,   218,   213,   218,    32,
1809 <     216,   218,   118,    36,    65,   143,   117,   117,   216,   102,
1810 <     215,   218,     1,     1,   218,   218,   120,   218,     6,     7,
1811 <       1,   218,   218,   218,    12,   218,   218,   213,   218,    90,
1812 <     218,   218,    20,   218,   144,    24,    17,    98,    26,   218,
1813 <      28,    29,    30,    99,   206,   218,   184,    35,   218,   218,
1814 <     218,    32,   218,    41,    42,    36,    44,    45,    46,   218,
1815 <     218,   171,    50,   218,   218,   218,   218,    55,    57,   218,
1816 <     218,    59,    60,   218,   218,    63,   137,   218,   216,   112,
1817 <     173,   174,   218,   218,    72,   218,   218,   218,   121,   122,
1818 <     218,    79,    80,   154,    82,    83,    84,    85,    86,   209,
1819 <      89,   218,    91,    92,   218,   218,   216,   118,    89,    97,
1820 <     218,   218,   218,   206,    99,   103,   104,   105,   218,   107,
1821 <     153,  1089,   110,   111,   218,    99,   114,   218,   218,   218,
1822 <       1,   112,     3,   218,     5,   218,   218,   218,   218,   128,
1823 <     218,   130,   131,   132,   133,     4,    17,   218,   129,   218,
1824 <     218,   218,   218,   218,    64,   218,   218,   160,   147,    99,
1825 <     148,    32,     1,   218,   152,    36,    25,   155,   156,   157,
1826 <     158,   159,   218,   206,   162,   163,    15,    16,   218,   218,
1827 <      19,    40,   171,    99,    99,    56,    99,    58,    47,   160,
1828 <      99,   160,   181,    99,   160,   160,   215,    68,   138,   139,
1829 <     140,   141,   142,   215,   218,    64,   118,   160,   218,   218,
1830 <     218,   192,   218,   218,   202,   203,   204,   218,    89,   207,
1831 <     209,   210,   218,   218,   212,   206,   136,   218,    87,   215,
1832 <      99,   218,    51,   160,   218,    94,   218,    76,    77,    78,
1833 <       0,     1,    81,   218,     4,   218,   117,   106,   218,   160,
1834 <      89,   218,   215,    99,    14,   165,   218,    17,    18,   218,
1835 <     218,   100,   101,    23,   174,   124,   125,   126,   218,     1,
1836 <     180,   218,   218,   144,    34,   218,   115,   116,    38,    39,
1837 <      51,   218,   218,   218,   194,   218,   196,   197,    48,   218,
1838 <     218,   118,   160,   160,    99,   205,    99,    99,   160,   160,
1839 <     171,   211,    62,   160,   143,    37,    99,    99,    51,    99,
1840 <      70,    71,    99,    99,   118,   174,    99,   160,   160,    51,
1841 <      52,    53,    54,   218,   183,   160,   218,   160,    88,   188,
1842 <     160,   160,   160,   118,   160,   194,   160,    69,   209,   198,
1843 <     160,   200,   102,   160,   160,   184,   205,   166,   167,   168,
1844 <     169,   170,   211,   172,   173,   215,   175,   176,   177,    64,
1845 <     215,   180,   218,   182,   183,   218,   185,   218,   187,   218,
1846 <     189,   190,   160,   218,   193,    99,   136,   218,   218,   217,
1847 <     199,   218,   218,   215,   218,   145,   146,   218,   118,   149,
1848 <     150,   118,   215,   218,   215,   166,   167,   168,   169,   170,
1849 <     215,   172,   173,   215,   175,   176,   177,   218,   218,   180,
1850 <     218,   182,   183,   160,   185,   160,   187,   218,   189,   190,
1851 <     218,   218,   193,   166,   167,   168,   169,   170,   199,   172,
1852 <     173,   136,   175,   176,   177,   118,   218,   180,     1,   182,
1853 <     183,   201,   185,   218,   187,   218,   189,   190,   160,   160,
1854 <     193,   215,   118,   160,   118,   118,   199,   118,    21,    22,
1855 <     165,   118,   118,   118,    27,   118,   118,   118,   118,   174,
1856 <     218,   215,   218,   215,   215,   180,   118,   215,   218,   215,
1857 <     215,   215,   215,    99,   215,    99,   215,   215,    99,   194,
1858 <     215,   196,   197,   215,   215,   215,   215,   215,   215,   215,
1859 <     205,   215,   215,    66,    67,    99,   211,    99,    99,   118,
1860 <      73,    74,    75,    99,    99,    99,   215,   118,   118,   160,
1861 <     218,   118,   118,   118,    99,   118,   215,   215,   118,   118,
1862 <     118,   118,    95,    96,   215,   118,   118,   118,   218,   215,
1863 <     215,   215,   215,   215,   215,   108,   109,   215,   215,   118,
1864 <     215,   118,    99,   215,   160,   215,   119,   215,   118,   218,
1865 <     118,   215,   118,   118,   127,   118,   215,   215,   215,   215,
1866 <     215,   215,   215,   118,   118,   215,   215,   215,   215,   215,
1867 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
1868 <     215,   215,   215,   215,   215,   215,   215,   215,   215,    99,
1869 <     215,   118,   215,   215,   118,   215,   160,   215,   215,   118,
1870 <     215,   118,   215,   118,   218,   118,   218,   215,   987,   218,
1871 <     118,   118,   118,   118,   118,    71,   164,    99,   950,   985,
1872 <    1226,   501,   123,  1199,  1197,   215,   215,   215,   328,   215,
1873 <    1187,   218,   215,   215,   215,   215,   123,   215,   222,   215,
1874 <     215,   215,  1084,   215,   215,   477,   215,   452,   215,   118,
1875 <    1183,   515,   550,   215,   215,   215,   215,   215,  1201,   215,
1876 <    1177,   558,   215,   215,  1203,   215,   358,   218,   215,   218,
1877 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
1878 <     215,   215,   215,   215,   215,   215,   215,   215,  1185,   215,
1879 <     215,   467,   215,   215,   215,   215,   376,   215,   112,   215,
1880 <    1179,   215,  1050,   215,   215,   166,   215,  1052,    91,   388,
1881 <      -1,    -1,   215,   215,    -1,   215,   215,   215,   215,   215,
1882 <     215,   215,   215,   215,   215,   215,    -1,   215,    -1,    -1,
1883 <     219,   215,   218,   218,   215,   215,   215,   215,   215,   215,
1884 <     215,   215,   215,   215,   215,   215,    -1,   230,   215,   215,
1885 <     218,   215,   215,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1772 >     633,   634,   315,     8,   317,     1,   319,   320,   234,     1,
1773 >       1,     1,     1,     1,     1,     1,     1,     1,     1,    49,
1774 >     234,     1,     1,     1,     1,     1,     1,     9,    10,    11,
1775 >     234,     1,     1,     1,     1,     1,     1,   232,    29,   232,
1776 >      25,   236,   234,   236,    53,    25,    37,    32,   234,   113,
1777 >     232,    35,    32,   232,   236,     1,   232,   236,    49,    50,
1778 >     236,     1,   234,    54,    55,    56,     6,     7,   215,    35,
1779 >      58,   218,    12,    65,   232,    65,   232,    65,   236,    67,
1780 >      20,    21,    65,   234,     1,   234,    65,    27,    79,     1,
1781 >      30,    31,   232,   233,   232,    81,    36,    81,   236,   412,
1782 >     413,    41,    42,    81,    44,    45,    46,   420,    48,   234,
1783 >       1,   424,     1,   100,   103,    81,   429,    57,   103,   432,
1784 >     129,    61,    62,   103,   100,   215,   103,   234,   218,   442,
1785 >     443,   113,    72,   103,   103,   103,   234,   124,     1,   127,
1786 >     453,   234,    82,   456,   457,   209,   130,   130,   124,   234,
1787 >      90,   130,    92,   130,    94,   234,    96,   103,    98,    99,
1788 >     190,   130,    25,   130,   130,   130,  1087,  1088,  1089,     1,
1789 >     200,   111,   204,   205,   234,   234,   116,   117,   118,   175,
1790 >     120,   121,   122,    15,    16,   125,   103,    19,   232,   175,
1791 >     232,   103,   236,   234,   236,   200,    59,   175,   232,   232,
1792 >     175,   232,   236,   236,   232,    68,   232,   234,   236,   234,
1793 >     236,   151,   103,   234,   103,   179,   180,   234,   232,   159,
1794 >     160,   161,   162,   163,   164,   235,   196,   235,    91,   235,
1795 >     226,   235,    95,   235,   223,    67,   235,   550,   227,   232,
1796 >     103,   233,   233,   106,   107,   233,   233,   233,   233,   233,
1797 >     233,   226,   192,   223,    86,    87,    88,    89,   233,   175,
1798 >     227,    93,   227,   233,   233,    97,   233,   204,   205,   128,
1799 >     113,   103,   235,   235,   235,   138,   216,   217,   235,   219,
1800 >     220,   221,   114,   115,   196,   225,   235,   233,   235,   128,
1801 >     230,     1,   155,   233,   126,   158,   235,   235,     1,   235,
1802 >       1,     1,   235,     3,   235,     5,   223,    17,   621,   235,
1803 >     235,   223,   625,   235,    17,   628,   148,    17,   113,   632,
1804 >     183,    22,    23,    33,     1,   235,   235,    28,   235,   235,
1805 >      33,   235,   223,    33,   223,   235,   227,   235,   201,   202,
1806 >     203,   235,   233,   235,   233,   140,   141,   142,   143,   144,
1807 >     145,   146,   235,   235,   235,   187,   235,    67,    58,   235,
1808 >      60,   235,    63,    64,    67,   228,   229,    67,    69,    70,
1809 >     233,   235,   232,   235,    75,    76,    77,   235,    78,   235,
1810 >     235,    58,    83,    84,    85,   235,   235,   235,    65,   235,
1811 >      67,   821,   822,   823,   824,   825,   826,   827,   235,   235,
1812 >     103,   233,   235,   103,   235,   235,   235,   235,   109,   110,
1813 >       1,   235,     1,   123,     3,   235,     5,   235,   235,   235,
1814 >     123,   131,   132,   235,   235,     1,   235,   127,    17,   235,
1815 >     235,   235,   235,   235,   235,   235,   139,   235,    29,   235,
1816 >     128,    17,   152,   235,    33,   235,    37,   147,   235,   235,
1817 >     127,   235,   235,   156,   157,     1,   156,    33,    49,    50,
1818 >       6,     7,   235,    54,    55,    56,    12,   235,   235,    58,
1819 >     235,    60,   235,   235,    20,    21,   235,     1,    67,   235,
1820 >     235,    27,   235,   235,    30,    31,   235,   235,    79,    78,
1821 >      36,    67,   235,    17,    73,    41,    42,   235,    44,    45,
1822 >      46,   201,    48,   206,   235,   235,   235,   235,   235,    33,
1823 >     235,    57,   113,   215,   103,    61,    62,   227,   113,   113,
1824 >     113,   113,   215,   233,   227,   113,    72,   103,   228,   113,
1825 >     233,     1,   233,   233,   215,   113,    82,   232,   127,   235,
1826 >     232,   235,   128,    67,    90,   235,    92,   123,    94,   235,
1827 >      96,   235,    98,    99,   232,    25,    73,   136,   147,   235,
1828 >     235,   235,   235,   139,   235,   111,   235,   156,   235,   235,
1829 >     116,   117,   118,   235,   120,   121,   122,   235,   235,   125,
1830 >     156,   157,   235,   235,   235,   235,   165,     4,   235,    59,
1831 >     235,   235,   235,   172,   235,   235,  1229,   235,    68,   123,
1832 >     235,    18,   181,   235,   235,   151,   232,   131,   132,    26,
1833 >      40,   235,   201,   159,   160,   161,   162,   163,   164,   136,
1834 >     235,    91,   113,    40,   113,    95,   128,   113,   152,   208,
1835 >     206,   210,   211,   103,   215,   215,   106,   107,   215,   228,
1836 >     215,    71,   215,    73,   113,   224,   192,   113,   165,   215,
1837 >     215,   227,   231,   215,    71,   172,    73,   113,   113,   113,
1838 >     113,   113,   113,   215,   181,   235,   215,   235,   138,   128,
1839 >     216,   217,   215,   219,   220,   221,   215,   215,   215,   225,
1840 >     215,   215,   215,   100,   230,   155,   215,    13,   158,   119,
1841 >     215,   208,   215,   210,   211,   215,   232,   128,   113,   128,
1842 >     232,   128,   128,   227,   235,   235,   136,   224,    34,   235,
1843 >     232,   232,   215,   183,   231,   128,   133,    43,   135,   235,
1844 >     235,   235,   235,   235,   235,   235,   235,   235,   232,   235,
1845 >     235,   201,   202,   203,   232,   235,   235,   154,   235,   235,
1846 >     235,   171,   172,   235,   232,   235,   113,     1,    74,     0,
1847 >       1,   235,   235,     4,   235,   172,   235,   215,   228,   229,
1848 >     177,    15,    16,    14,   181,    19,    17,    18,   215,   186,
1849 >     215,   215,   189,    24,   215,   232,   215,   194,   104,   105,
1850 >     128,   128,   128,   128,    35,   128,   112,    38,    39,   128,
1851 >     113,   208,   128,   128,   211,   128,   213,   227,   232,   232,
1852 >     235,   231,   234,   215,   232,   113,   128,   224,   232,   232,
1853 >     235,   137,   232,    67,   231,    66,   235,   113,   232,   235,
1854 >      71,   232,   232,   232,   232,   232,   232,   153,    49,    80,
1855 >      51,    52,    86,    87,    88,    89,   232,   232,   232,    93,
1856 >     232,   232,   232,    97,   232,   232,   232,   232,   113,   103,
1857 >     101,   102,   113,     1,   113,   113,   128,   113,   113,   232,
1858 >     114,   115,   128,    49,   113,    51,    52,   235,   119,   113,
1859 >     232,   128,   126,   215,    22,    23,   128,   232,   128,   232,
1860 >      28,   128,   128,   128,   235,   136,   128,   128,   214,   128,
1861 >     128,   128,   128,   128,   148,   232,   128,   235,   149,   150,
1862 >     232,   232,   232,   232,   232,   232,    49,   232,   232,   128,
1863 >     215,   232,   232,   232,   232,    63,    64,   232,   169,   232,
1864 >     232,    69,    70,   232,   113,   232,   232,    75,    76,    77,
1865 >     232,   182,   232,   187,   232,    83,    84,    85,   232,   232,
1866 >     191,   232,   232,   232,   195,   166,   167,   168,   232,   170,
1867 >     171,   232,   173,   174,   232,   176,   232,   178,   232,   232,
1868 >     181,   109,   110,   184,   185,   186,   128,   188,   232,   232,
1869 >     232,   128,   193,   128,   128,   128,   197,   198,   199,   232,
1870 >     166,   167,   168,   128,   170,   171,   207,   173,   174,   232,
1871 >     176,   212,   178,   128,   113,   181,   128,   128,   184,   185,
1872 >     186,   232,   188,   232,   232,   232,   232,   193,   232,   232,
1873 >     232,   197,   198,   199,   232,   232,   232,   232,   232,   232,
1874 >     232,   207,   232,   166,   167,   168,   212,   170,   171,   232,
1875 >     173,   174,   232,   176,   128,   178,   215,   235,   181,   128,
1876 >     128,   184,   185,   186,   128,   188,   128,   215,   235,   128,
1877 >     193,   232,   128,   128,   197,   198,   199,   128,   232,   232,
1878 >     232,   232,   232,   232,   207,   232,   232,   232,   232,   212,
1879 >     128,   232,   232,   232,   232,   128,   232,   128,   113,   128,
1880 >     232,   232,   232,   232,   272,   232,   232,  1040,   232,   134,
1881 >     232,   232,   134,   232,   232,   235,   232,   134,   235,   232,
1882 >    1042,   235,   232,   232,   232,   232,   232,   232,   232,   232,
1883 >     232,   232,   232,    74,   232,   232,   232,   232,   232,   232,
1884 >     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
1885 >     232,   232,   232,   232,   232,   232,   232,   232,   507,   232,
1886 >     232,   232,   232,  1305,   222,   232,   232,   232,  1053,   232,
1887 >     522,   232,  1269,  1267,   345,   232,   236,  1248,   232,   232,
1888 >     232,   471,   232,   232,   232,   232,   232,   232,   232,   232,
1889 >     232,   232,   232,  1259,  1257,   232,   235,   232,   232,   538,
1890 >     494,   237,  1278,   576,   232,   237,   232,   237,   235,   232,
1891 >     228,   232,   592,  1149,  1271,   378,  1253,   484,   397,   117,
1892 >     407,   171,    95,  1117,  1119,   244,    -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,
2172      -1,    -1,    -1,   243,    -1,    -1,    -1,    -1,    -1,    -1,
1895        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2174      -1,    -1,   267,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1896        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1897 <      -1,    -1,    -1,    -1,    -1,    -1,   288
1897 >     294,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1898 >      -1,   301
1899   };
1900  
1901 < /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1902 <   symbol of state STATE-NUM.  */
1901 >  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1902 >     symbol of state STATE-NUM.  */
1903   static const yytype_uint16 yystos[] =
1904   {
1905 <       0,   221,     0,     1,     4,    14,    17,    18,    23,    34,
1906 <      38,    39,    48,    62,    70,    71,    88,   102,   136,   145,
1907 <     146,   149,   150,   201,   222,   227,   232,   254,   260,   274,
1908 <     292,   310,   324,   339,   346,   350,   360,   369,   389,   399,
1909 <     405,   409,   419,   477,   494,   215,   216,   217,   217,   293,
1910 <     370,   400,   217,   410,   217,   325,   390,   311,   217,   217,
1911 <     275,   340,   217,   217,   351,   361,   217,     1,    24,    31,
1912 <      89,   255,   256,   257,   258,   259,     1,    21,    22,    27,
1913 <      66,    67,    73,    74,    75,    95,    96,   108,   109,   119,
1914 <     127,   478,   479,   480,   481,   482,   483,   484,   485,   486,
1915 <     487,   488,   489,   490,   491,   492,   493,   217,   217,   217,
1916 <       1,    61,   406,   407,   408,   217,     1,     6,     7,    12,
1917 <      20,    26,    28,    29,    30,    35,    41,    42,    44,    45,
1918 <      46,    50,    55,    59,    60,    63,    72,    79,    80,    82,
1919 <      83,    84,    85,    86,    97,   103,   104,   105,   107,   110,
1920 <     111,   114,   148,   152,   155,   156,   157,   158,   159,   162,
1921 <     163,   202,   203,   204,   207,   212,   420,   421,   422,   423,
1922 <     424,   425,   426,   427,   428,   429,   430,   431,   432,   433,
1923 <     434,   435,   436,   437,   438,   439,   440,   441,   442,   443,
1924 <     444,   445,   446,   447,   448,   449,   450,   451,   452,   453,
1925 <     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
1926 <     464,   465,   466,   470,   474,   475,   476,   217,   217,   217,
1927 <       1,   208,   261,   262,   263,   264,   265,     1,    87,   113,
1928 <     228,   229,   230,   231,   217,   217,     1,    37,    51,    52,
1929 <      53,    54,    69,   495,   496,   497,   498,   499,   500,   501,
1930 <     502,     1,    24,    57,    89,    91,    92,   128,   130,   131,
1931 <     132,   133,   147,   171,   181,   209,   210,   233,   234,   235,
1932 <     236,   241,   242,   243,   244,   245,   246,   247,   248,   249,
1933 <     250,   251,   252,   253,   217,   217,     1,    89,   347,   348,
1934 <     349,   215,   218,   218,   218,   216,   256,   218,   218,   218,
1935 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
1936 <     218,   216,   479,     1,    15,    16,    19,    76,    77,    78,
1937 <      81,    89,   100,   101,   115,   116,   143,   184,   294,   295,
1938 <     296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
1939 <     306,   307,   308,   309,     1,     3,     5,    17,    32,    36,
1940 <      56,    58,    68,    89,   117,   144,   171,   209,   371,   372,
1941 <     373,   374,   375,   376,   377,   378,   379,   380,   384,   385,
1942 <     386,   387,   388,     1,    61,   120,   401,   402,   403,   404,
1943 <     218,   216,   407,     1,    89,   120,   151,   411,   415,   416,
1944 <     417,   418,   218,   218,   218,   218,   218,   218,   218,   218,
1945 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
1946 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
1947 <     218,   471,   218,   467,   218,   218,   218,   218,   218,   218,
1948 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
1949 <     218,   216,   421,     1,    17,    32,    36,   112,   121,   122,
1950 <     153,   206,   326,   327,   328,   329,   330,   331,   332,   336,
1951 <     337,   338,     1,   120,   151,   206,   391,   395,   396,   397,
1952 <     398,     1,    36,    56,    61,   117,   312,   316,   317,   318,
1953 <     322,   323,   215,   218,   216,   262,   214,   215,   218,   218,
1954 <     216,   229,     1,    17,    32,    36,    89,   112,   129,   192,
1955 <     206,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1956 <     288,     1,    14,    93,   120,   341,   342,   343,   344,   345,
1957 <     218,   218,   218,   218,   218,   218,   216,   496,   215,   218,
1958 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
1959 <     218,   218,   218,   218,   216,   234,     1,    89,   151,   206,
1960 <     352,   353,   354,   355,   356,     1,    89,   151,   362,   363,
1961 <     364,   365,   218,   216,   348,   118,   118,   118,   215,    99,
1962 <      99,   160,    99,   224,   224,    99,    99,    99,   160,   160,
1963 <      99,   224,   160,   160,   215,   215,   218,   218,   218,   218,
1964 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
1965 <     216,   295,   215,   218,   218,   218,   218,   381,   218,   218,
1966 <     218,   218,   218,   218,   218,   218,   216,   372,   218,   218,
1967 <     216,   402,   118,   215,   218,   218,   412,   216,   416,   160,
1968 <     224,   224,    99,   160,   160,    99,   118,   160,   224,   160,
1969 <     224,    99,    99,    99,   160,   160,   160,   224,    99,    99,
1970 <     224,    99,    99,   118,    99,    99,   160,   160,   218,   160,
1971 <     218,   224,   224,   160,   160,   160,   160,   160,   161,   160,
1972 <     161,   160,   160,   224,   224,   118,   224,   160,   160,   160,
1973 <     215,   215,   218,   218,   333,   218,   218,   218,   218,   218,
1974 <     216,   327,   218,   392,   218,   216,   396,   215,   313,   218,
1975 <     218,   218,   216,   317,   160,   215,   217,   118,   118,   215,
1976 <     215,   218,   218,   289,   218,   218,   218,   285,   218,   216,
1977 <     277,   215,   218,   218,   218,   216,   342,   160,   160,   118,
1978 <     160,   160,   224,   215,   118,   160,   118,   118,   118,   118,
1979 <     118,   118,   134,   135,   237,   238,   134,   135,   239,   240,
1980 <     118,   118,    99,   118,   118,   215,   215,   218,   357,   218,
1981 <     216,   353,   215,   218,   366,   216,   363,   118,   215,   215,
1982 <     215,   215,   215,   215,   215,   138,   139,   140,   141,   142,
1983 <     223,   224,   215,   215,   215,   215,   215,   215,   215,   215,
1984 <     215,   215,   215,    99,    99,   224,    99,    99,    99,    99,
1985 <     118,    99,    99,   224,   224,    99,   226,   226,   215,   118,
1986 <     178,   179,   118,   160,   218,   118,   118,   118,   118,    99,
1987 <     118,   118,   118,   215,   118,   118,   215,   215,   118,   118,
1988 <     218,   215,   215,   215,   215,   215,   215,   215,   215,   215,
1989 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
1990 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
1991 <     215,    51,   166,   167,   168,   169,   170,   172,   173,   175,
1992 <     176,   177,   180,   182,   183,   185,   187,   189,   190,   193,
1993 <     199,   472,   473,   215,    51,   166,   167,   168,   169,   170,
1994 <     172,   173,   175,   176,   177,   180,   182,   183,   185,   187,
1995 <     189,   190,   193,   199,   468,   469,   215,   215,   215,   215,
1996 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
1997 <     215,   215,   215,   215,   215,   118,   160,   218,   118,    99,
1998 <     118,   118,   118,   215,   118,   218,   118,   215,   218,   118,
1999 <     118,    99,   320,   321,   215,   215,     1,    89,   151,   213,
2000 <     266,   267,   268,   269,   270,   215,   215,   118,   160,   218,
2001 <     118,   118,   118,   218,   118,   215,   118,   118,   118,   215,
2002 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2003 <     215,   215,   215,   215,   215,   219,   215,   219,   215,   215,
2004 <     215,   215,   215,   118,   218,   118,   215,   118,   218,   215,
2005 <     215,   223,   223,   223,   223,   223,   215,   215,   215,   215,
2006 <     215,   215,   215,   215,   215,   215,   215,   215,     9,    10,
2007 <      11,   225,   226,   215,   215,   215,   215,   215,   215,   215,
2008 <       8,   191,   382,   383,   215,   215,   215,   215,   215,   215,
2009 <     215,   215,   215,   215,   215,   215,   123,   413,   414,   215,
2010 <     219,   215,   219,   215,   215,    13,    33,    43,    49,    65,
2011 <      90,    98,   137,   154,   334,   335,   215,   215,   215,   215,
2012 <     215,   215,   123,   393,   394,   215,    51,   186,   191,   314,
2013 <     315,   215,   215,   164,   219,   319,   215,   218,   271,   218,
2014 <     216,   267,   215,   215,     4,    25,    40,    47,    64,    87,
2015 <      94,   106,   124,   125,   126,   174,   183,   188,   194,   198,
2016 <     200,   205,   211,   290,   291,   215,   215,   215,    51,   166,
2017 <     167,   168,   169,   170,   172,   173,   175,   176,   177,   180,
2018 <     182,   183,   185,   187,   189,   190,   193,   199,   286,   287,
2019 <     215,   215,   215,   215,   238,   240,   215,    64,   136,   165,
2020 <     174,   180,   194,   196,   197,   205,   211,   358,   359,   215,
2021 <     215,    64,   136,   165,   174,   180,   194,   196,   197,   205,
2022 <     211,   367,   368,   225,   225,   225,   215,   219,   215,   219,
2023 <     473,   469,   215,   219,   215,   219,   215,   219,    99,   321,
2024 <     215,   118,   218,   195,   226,   215,   215,   219,   215,   219,
2025 <     215,   219,   215,   219,   383,   414,   335,   394,   315,   215,
2026 <      40,    62,    64,   102,   173,   174,   206,   272,   273,   215,
2027 <     215,   291,   287,   359,   368,   215,   219,   273
1905 >       0,   239,     0,     1,     4,    14,    17,    18,    24,    35,
1906 >      38,    39,    66,    71,    80,   101,   102,   119,   136,   149,
1907 >     150,   169,   182,   191,   195,   240,   245,   250,   274,   280,
1908 >     286,   300,   320,   343,   357,   372,   379,   383,   393,   402,
1909 >     423,   429,   435,   439,   445,   503,   521,   232,   233,   234,
1910 >     234,   321,   403,   430,   234,   440,   234,   358,   424,   344,
1911 >     234,   281,   301,   373,   234,   234,   394,   234,   234,   384,
1912 >       1,    25,    32,   103,   275,   276,   277,   278,   279,     1,
1913 >      22,    23,    28,    63,    64,    69,    70,    75,    76,    77,
1914 >      83,    84,    85,   109,   110,   504,   505,   506,   507,   508,
1915 >     509,   510,   511,   512,   513,   514,   515,   516,   517,   518,
1916 >     519,   520,   234,   234,   234,     1,    65,   436,   437,   438,
1917 >     234,     1,     6,     7,    12,    20,    21,    27,    30,    31,
1918 >      36,    41,    42,    44,    45,    46,    48,    57,    61,    62,
1919 >      72,    82,    90,    92,    94,    96,    98,    99,   111,   116,
1920 >     117,   118,   120,   121,   122,   125,   151,   159,   160,   161,
1921 >     162,   163,   164,   192,   216,   217,   219,   220,   221,   225,
1922 >     230,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1923 >     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1924 >     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1925 >     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1926 >     485,   486,   487,   488,   489,   490,   491,   492,   496,   500,
1927 >     501,   502,   234,   234,   234,     1,   100,   124,   246,   247,
1928 >     248,   249,   234,   234,   234,     1,    29,    37,    49,    50,
1929 >      54,    55,    56,    79,   522,   523,   524,   525,   526,   527,
1930 >     528,   529,   530,   531,     1,    25,    59,    68,    91,    95,
1931 >     103,   106,   107,   138,   155,   158,   183,   201,   202,   203,
1932 >     228,   229,   251,   252,   253,   254,   259,   260,   261,   262,
1933 >     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
1934 >     273,   234,     1,   226,   287,   288,   289,   290,   291,     1,
1935 >     103,   380,   381,   382,   234,   232,   235,   235,   235,   233,
1936 >     276,   235,   235,   235,   235,   235,   235,   235,   235,   235,
1937 >     235,   235,   235,   235,   235,   235,   233,   505,     1,    15,
1938 >      16,    19,    67,    86,    87,    88,    89,    93,    97,   103,
1939 >     114,   115,   126,   148,   187,   322,   323,   324,   325,   326,
1940 >     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
1941 >     337,   338,   339,     1,     3,     5,    17,    33,    58,    60,
1942 >      67,    78,   103,   127,   147,   156,   201,   228,   404,   405,
1943 >     406,   407,   408,   409,   410,   411,   412,   413,   414,   418,
1944 >     419,   420,   421,   422,     1,    65,   130,   431,   432,   433,
1945 >     434,   235,   233,   437,     1,   103,   130,   441,   442,   443,
1946 >     444,   235,   235,   235,   235,   235,   235,   235,   235,   235,
1947 >     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
1948 >     235,   235,   235,   235,   235,   235,   235,   235,   497,   235,
1949 >     493,   235,   235,   235,   235,   235,   235,   235,   235,   235,
1950 >     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
1951 >     233,   447,     1,    17,    33,    67,   123,   131,   132,   152,
1952 >     227,   359,   360,   361,   362,   363,   364,   365,   369,   370,
1953 >     371,     1,   130,   227,   425,   426,   427,   428,     1,    58,
1954 >      65,    67,   127,   345,   349,   350,   351,   355,   356,   232,
1955 >     235,   235,   233,   247,     1,    81,   175,   282,   283,   284,
1956 >     285,     1,    17,    33,    67,   103,   123,   139,   156,   157,
1957 >     206,   227,   302,   303,   304,   305,   306,   307,   308,   309,
1958 >     310,   311,   312,   316,     1,    35,    81,   130,   374,   375,
1959 >     376,   377,   378,   235,   235,   235,   235,   235,   235,   235,
1960 >     235,   233,   523,   232,   235,   235,   235,   235,   235,   235,
1961 >     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
1962 >     235,   233,   252,     1,   103,   223,   395,   396,   397,   398,
1963 >     232,   235,   233,   288,   175,   235,   233,   381,     1,   103,
1964 >     223,   227,   385,   386,   387,   388,   389,   128,   128,   128,
1965 >     232,   113,   113,   215,   113,   113,   242,   113,   242,   113,
1966 >     242,   242,   113,   113,   113,   215,   215,   232,   232,   235,
1967 >     235,   235,   340,   235,   235,   235,   235,   235,   235,   235,
1968 >     235,   235,   235,   235,   235,   233,   323,   232,   235,   235,
1969 >     235,   235,   235,   235,   415,   235,   235,   235,   235,   235,
1970 >     235,   235,   233,   405,   235,   235,   233,   432,   128,   232,
1971 >     235,   235,   233,   442,   215,   242,   242,   215,   113,   215,
1972 >     113,   128,   215,   242,   215,   113,   113,   242,   113,   215,
1973 >     215,   215,   242,   113,   113,   242,   113,   113,   113,   113,
1974 >     215,   235,   215,   235,   215,   242,   242,   215,   215,   215,
1975 >     215,   218,   215,   218,   215,   215,   215,   128,   242,   215,
1976 >     215,   242,   242,   215,   215,   232,   232,   235,   235,   366,
1977 >     235,   235,   235,   235,   235,   233,   360,   235,   235,   233,
1978 >     426,   232,   235,   235,   346,   235,   233,   350,   128,   128,
1979 >     232,   232,   235,   235,   233,   283,   232,   235,   235,   317,
1980 >     235,   235,   235,   235,   235,   313,   235,   233,   303,   232,
1981 >     235,   235,   235,   233,   375,   215,   215,   215,   128,   215,
1982 >     215,   215,   242,   232,   128,   215,   128,   113,   113,   128,
1983 >     128,   128,   128,   128,   128,   113,   128,   204,   205,   255,
1984 >     256,   204,   205,   257,   258,   128,   128,   232,   232,   235,
1985 >     399,   233,   396,   215,   232,   234,   128,   232,   232,   235,
1986 >     390,   235,   233,   386,   232,   232,   232,   232,   232,   232,
1987 >     232,   140,   141,   142,   143,   144,   145,   146,   241,   242,
1988 >     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
1989 >     232,   113,   113,   242,   235,   113,   113,   242,   113,   113,
1990 >     242,   128,   113,   113,   242,   113,   244,   244,   232,   128,
1991 >     179,   180,   128,   215,   128,   128,   235,   128,   128,   113,
1992 >     128,   128,   128,   128,   232,   128,   128,   232,   232,   128,
1993 >     128,   232,   232,   232,   232,   232,   232,   232,   232,   232,
1994 >     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
1995 >     232,   232,   232,   232,   232,   232,   232,   232,   232,    49,
1996 >     166,   167,   168,   170,   171,   173,   174,   176,   178,   181,
1997 >     184,   185,   186,   188,   193,   197,   198,   199,   207,   212,
1998 >     498,   499,   232,    49,    51,    52,   166,   167,   168,   170,
1999 >     171,   173,   174,   176,   178,   181,   184,   185,   186,   188,
2000 >     193,   197,   198,   199,   207,   212,   494,   495,   232,   232,
2001 >     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
2002 >     232,   232,   232,   232,   232,   232,   232,   232,   232,   128,
2003 >     215,   235,   128,   113,   128,   128,   128,   232,   128,   128,
2004 >     232,   128,   128,   235,   113,   353,   354,   232,   232,   232,
2005 >     128,   128,   232,   128,   215,   235,   128,   128,   128,   128,
2006 >     215,   235,   128,   232,   128,   128,   128,   232,   232,   232,
2007 >     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
2008 >     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
2009 >     236,   232,   236,   232,   232,   128,   235,   232,   232,     1,
2010 >     103,   196,   223,   292,   293,   294,   295,   296,   232,   128,
2011 >     235,   128,   232,   241,   241,   241,   241,   241,   241,   241,
2012 >     232,   232,   232,    53,   129,   341,   342,   232,   232,   232,
2013 >     232,   232,   232,   232,   232,   232,   232,     9,    10,    11,
2014 >     243,   244,   232,   232,   232,   232,   232,   232,   232,   232,
2015 >     232,     8,   200,   416,   417,   232,   232,   232,   232,   232,
2016 >     232,   232,   232,   232,   232,   232,   232,   236,   232,   236,
2017 >     232,   232,    13,    34,    43,    74,   104,   105,   112,   137,
2018 >     153,   214,   367,   368,   232,   232,   232,   232,   232,   232,
2019 >     232,   232,   232,    49,   190,   200,   347,   348,   222,   236,
2020 >     352,   232,   232,   232,   232,     4,    18,    26,    40,    71,
2021 >      73,   100,   133,   135,   154,   172,   177,   181,   186,   189,
2022 >     194,   208,   211,   213,   224,   231,   318,   319,   232,   232,
2023 >     232,   232,   232,    49,    51,    52,   166,   167,   168,   170,
2024 >     171,   173,   174,   176,   178,   181,   184,   185,   186,   188,
2025 >     193,   197,   198,   199,   207,   212,   314,   315,   232,   232,
2026 >     232,   232,   256,   258,   232,    73,   136,   165,   172,   181,
2027 >     208,   210,   211,   224,   231,   400,   401,   232,   235,   235,
2028 >     297,   233,   293,   232,    73,   136,   165,   172,   181,   208,
2029 >     210,   211,   224,   231,   391,   392,   232,   232,   236,   243,
2030 >     243,   243,   232,   236,   499,   495,   232,   236,   232,   236,
2031 >     113,   354,   232,   237,   237,   237,   232,   236,   232,   236,
2032 >     232,   236,   128,   209,   244,   235,   232,   232,   236,   342,
2033 >     417,   368,   348,   134,   134,   134,   319,   315,   401,   232,
2034 >     232,   232,    40,    71,    73,   119,   136,   171,   172,   227,
2035 >     231,   298,   299,   392,   232,   236,   299
2036   };
2037  
2038 < #define yyerrok         (yyerrstatus = 0)
2039 < #define yyclearin       (yychar = YYEMPTY)
2040 < #define YYEMPTY         (-2)
2041 < #define YYEOF           0
2042 <
2043 < #define YYACCEPT        goto yyacceptlab
2044 < #define YYABORT         goto yyabortlab
2045 < #define YYERROR         goto yyerrorlab
2046 <
2047 <
2048 < /* Like YYERROR except do call yyerror.  This remains here temporarily
2049 <   to ease the transition to the new meaning of YYERROR, for GCC.
2050 <   Once GCC version 2 has supplanted version 1, this can go.  However,
2051 <   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
2052 <   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2053 <   discussed.  */
2054 <
2055 < #define YYFAIL          goto yyerrlab
2056 < #if defined YYFAIL
2057 <  /* This is here to suppress warnings from the GCC cpp's
2058 <     -Wunused-macros.  Normally we don't worry about that warning, but
2059 <     some users do, and we want to make it easy for users to remove
2060 <     YYFAIL uses, which will produce warnings from Bison 2.5.  */
2061 < #endif
2038 >  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
2039 > static const yytype_uint16 yyr1[] =
2040 > {
2041 >       0,   238,   239,   239,   240,   240,   240,   240,   240,   240,
2042 >     240,   240,   240,   240,   240,   240,   240,   240,   240,   240,
2043 >     240,   240,   240,   240,   240,   240,   240,   241,   241,   242,
2044 >     242,   242,   242,   242,   242,   242,   242,   243,   243,   244,
2045 >     244,   244,   244,   245,   246,   246,   247,   247,   247,   248,
2046 >     249,   250,   251,   251,   252,   252,   252,   252,   252,   252,
2047 >     252,   252,   252,   252,   252,   252,   252,   252,   252,   252,
2048 >     252,   252,   253,   254,   255,   255,   256,   256,   257,   257,
2049 >     258,   258,   259,   260,   261,   262,   263,   264,   265,   266,
2050 >     267,   268,   269,   270,   271,   272,   273,   274,   275,   275,
2051 >     276,   276,   276,   276,   277,   278,   279,   281,   280,   282,
2052 >     282,   283,   283,   283,   284,   285,   286,   287,   287,   288,
2053 >     288,   288,   289,   291,   290,   292,   292,   293,   293,   293,
2054 >     293,   294,   295,   295,   297,   296,   298,   298,   299,   299,
2055 >     299,   299,   299,   299,   299,   299,   299,   301,   300,   302,
2056 >     302,   303,   303,   303,   303,   303,   303,   303,   303,   303,
2057 >     303,   303,   304,   305,   306,   307,   308,   309,   310,   311,
2058 >     313,   312,   314,   314,   315,   315,   315,   315,   315,   315,
2059 >     315,   315,   315,   315,   315,   315,   315,   315,   315,   315,
2060 >     315,   315,   315,   315,   315,   315,   315,   317,   316,   318,
2061 >     318,   319,   319,   319,   319,   319,   319,   319,   319,   319,
2062 >     319,   319,   319,   319,   319,   319,   319,   319,   319,   319,
2063 >     319,   319,   319,   319,   319,   321,   320,   322,   322,   323,
2064 >     323,   323,   323,   323,   323,   323,   323,   323,   323,   323,
2065 >     323,   323,   323,   323,   323,   323,   324,   325,   326,   327,
2066 >     328,   329,   330,   331,   332,   333,   334,   335,   336,   337,
2067 >     338,   340,   339,   341,   341,   342,   342,   344,   343,   346,
2068 >     345,   347,   347,   348,   348,   348,   349,   349,   350,   350,
2069 >     350,   350,   350,   352,   351,   353,   353,   354,   354,   355,
2070 >     356,   358,   357,   359,   359,   360,   360,   360,   360,   360,
2071 >     360,   360,   360,   360,   361,   362,   363,   364,   366,   365,
2072 >     367,   367,   368,   368,   368,   368,   368,   368,   368,   368,
2073 >     368,   368,   369,   370,   371,   373,   372,   374,   374,   375,
2074 >     375,   375,   375,   376,   377,   378,   379,   380,   380,   381,
2075 >     381,   382,   384,   383,   385,   385,   386,   386,   386,   386,
2076 >     387,   388,   390,   389,   391,   391,   392,   392,   392,   392,
2077 >     392,   392,   392,   392,   392,   392,   394,   393,   395,   395,
2078 >     396,   396,   396,   397,   399,   398,   400,   400,   401,   401,
2079 >     401,   401,   401,   401,   401,   401,   401,   401,   403,   402,
2080 >     404,   404,   405,   405,   405,   405,   405,   405,   405,   405,
2081 >     405,   405,   405,   405,   405,   405,   405,   406,   407,   408,
2082 >     409,   410,   411,   412,   413,   413,   415,   414,   416,   416,
2083 >     417,   417,   418,   419,   420,   421,   422,   424,   423,   425,
2084 >     425,   426,   426,   426,   427,   428,   430,   429,   431,   431,
2085 >     432,   432,   432,   433,   434,   435,   436,   436,   437,   437,
2086 >     438,   440,   439,   441,   441,   442,   442,   442,   443,   444,
2087 >     445,   446,   446,   447,   447,   447,   447,   447,   447,   447,
2088 >     447,   447,   447,   447,   447,   447,   447,   447,   447,   447,
2089 >     447,   447,   447,   447,   447,   447,   447,   447,   447,   447,
2090 >     447,   447,   447,   447,   447,   447,   447,   447,   447,   447,
2091 >     447,   447,   447,   447,   447,   447,   447,   447,   447,   447,
2092 >     447,   447,   447,   448,   449,   450,   451,   452,   453,   454,
2093 >     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
2094 >     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
2095 >     474,   475,   475,   476,   477,   478,   479,   480,   481,   482,
2096 >     483,   484,   485,   486,   487,   488,   489,   490,   491,   493,
2097 >     492,   494,   494,   495,   495,   495,   495,   495,   495,   495,
2098 >     495,   495,   495,   495,   495,   495,   495,   495,   495,   495,
2099 >     495,   495,   495,   495,   495,   495,   497,   496,   498,   498,
2100 >     499,   499,   499,   499,   499,   499,   499,   499,   499,   499,
2101 >     499,   499,   499,   499,   499,   499,   499,   499,   499,   499,
2102 >     499,   500,   501,   502,   503,   504,   504,   505,   505,   505,
2103 >     505,   505,   505,   505,   505,   505,   505,   505,   505,   505,
2104 >     505,   505,   505,   506,   507,   508,   509,   510,   511,   512,
2105 >     513,   514,   515,   516,   517,   518,   519,   520,   521,   522,
2106 >     522,   523,   523,   523,   523,   523,   523,   523,   523,   523,
2107 >     524,   525,   526,   527,   528,   529,   530,   531
2108 > };
2109 >
2110 >  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
2111 > static const yytype_uint8 yyr2[] =
2112 > {
2113 >       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
2114 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2115 >       1,     1,     1,     1,     1,     2,     2,     0,     1,     2,
2116 >       3,     3,     3,     3,     3,     3,     3,     0,     1,     2,
2117 >       3,     3,     3,     5,     2,     1,     1,     1,     2,     4,
2118 >       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
2119 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2120 >       1,     2,     4,     4,     3,     1,     1,     1,     3,     1,
2121 >       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
2122 >       4,     4,     4,     4,     4,     4,     4,     5,     2,     1,
2123 >       1,     1,     1,     2,     4,     4,     4,     0,     6,     2,
2124 >       1,     1,     1,     2,     4,     4,     5,     2,     1,     1,
2125 >       1,     2,     4,     0,     6,     2,     1,     1,     1,     1,
2126 >       2,     4,     4,     4,     0,     5,     3,     1,     1,     1,
2127 >       1,     1,     1,     1,     1,     1,     1,     0,     6,     2,
2128 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2129 >       1,     2,     4,     4,     4,     4,     4,     4,     4,     4,
2130 >       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
2131 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2132 >       1,     1,     1,     1,     1,     1,     1,     0,     5,     3,
2133 >       1,     3,     1,     3,     1,     3,     1,     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,     2,     4,     4,     4,     4,
2138 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2139 >       4,     0,     5,     3,     1,     1,     1,     0,     6,     0,
2140 >       5,     3,     1,     1,     1,     1,     2,     1,     1,     1,
2141 >       1,     1,     2,     0,     5,     3,     1,     1,     3,     4,
2142 >       4,     0,     6,     2,     1,     1,     1,     1,     1,     1,
2143 >       1,     1,     1,     2,     4,     4,     4,     4,     0,     5,
2144 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2145 >       1,     1,     4,     4,     4,     0,     6,     2,     1,     1,
2146 >       1,     1,     2,     4,     4,     4,     5,     2,     1,     1,
2147 >       1,     4,     0,     6,     2,     1,     1,     1,     1,     2,
2148 >       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
2149 >       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
2150 >       1,     1,     2,     4,     0,     5,     3,     1,     1,     1,
2151 >       1,     1,     1,     1,     1,     1,     1,     1,     0,     6,
2152 >       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2153 >       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
2154 >       4,     4,     4,     4,     4,     4,     0,     5,     3,     1,
2155 >       1,     1,     4,     4,     4,     4,     4,     0,     6,     2,
2156 >       1,     1,     1,     1,     4,     4,     0,     6,     2,     1,
2157 >       1,     1,     1,     4,     4,     5,     2,     1,     1,     1,
2158 >       4,     0,     6,     2,     1,     1,     1,     1,     4,     4,
2159 >       5,     2,     1,     1,     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,     4,     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,     1,     0,     5,     3,     1,
2172 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2173 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2174 >       1,     4,     4,     4,     5,     2,     1,     1,     1,     1,
2175 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2176 >       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
2177 >       4,     4,     4,     4,     4,     4,     4,     4,     5,     2,
2178 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2179 >       4,     4,     4,     4,     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))
2351 <
2208 >      YYERROR;                                                  \
2209 >    }                                                           \
2210 > while (0)
2211  
2212 < #define YYTERROR        1
2213 < #define YYERRCODE       256
2212 > /* Error token number */
2213 > #define YYTERROR        1
2214 > #define YYERRCODE       256
2215  
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).  */
2216  
2360 #ifndef YYLLOC_DEFAULT
2361 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2362    do                                                                  \
2363      if (YYID (N))                                                     \
2364        {                                                               \
2365          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2366          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2367          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2368          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2369        }                                                               \
2370      else                                                              \
2371        {                                                               \
2372          (Current).first_line   = (Current).last_line   =              \
2373            YYRHSLOC (Rhs, 0).last_line;                                \
2374          (Current).first_column = (Current).last_column =              \
2375            YYRHSLOC (Rhs, 0).last_column;                              \
2376        }                                                               \
2377    while (YYID (0))
2378 #endif
2217  
2218 < #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
2252 <
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))
2250 > /*----------------------------------------.
2251 > | Print this symbol's value on YYOUTPUT.  |
2252 > `----------------------------------------*/
2253  
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 411 "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 412 "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 413 "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 414 "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 415 "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 416 "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 417 "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 35:
2898 > #line 418 "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 36:
2904 < /* Line 1787 of yacc.c  */
2905 < #line 387 "conf_parser.y"
2906 <    { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
2904 > #line 419 "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 37:
2910 < /* Line 1787 of yacc.c  */
2911 < #line 388 "conf_parser.y"
2912 <    { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
2910 > #line 422 "conf_parser.y" /* yacc.c:1646  */
2911 >    { (yyval.number) = 0; }
2912 > #line 2913 "conf_parser.c" /* yacc.c:1646  */
2913      break;
2914  
2915 <  case 38:
2916 < /* Line 1787 of yacc.c  */
2917 < #line 389 "conf_parser.y"
2918 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
2915 >  case 39:
2916 > #line 423 "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 39:
2922 < /* Line 1787 of yacc.c  */
2923 < #line 390 "conf_parser.y"
2924 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
2921 >  case 40:
2922 > #line 424 "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 41:
2928 > #line 425 "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 46:
2934 < /* Line 1787 of yacc.c  */
2935 < #line 404 "conf_parser.y"
2933 >  case 42:
2934 > #line 426 "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 49:
2940 > #line 440 "conf_parser.y" /* yacc.c:1646  */
2941      {
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 47:
2949 < /* Line 1787 of yacc.c  */
3223 < #line 410 "conf_parser.y"
2948 >  case 50:
2949 > #line 446 "conf_parser.y" /* yacc.c:1646  */
2950      {
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 71:
2958 < /* Line 1787 of yacc.c  */
3232 < #line 435 "conf_parser.y"
2957 >  case 76:
2958 > #line 480 "conf_parser.y" /* yacc.c:1646  */
2959      {
2960   #ifdef HAVE_LIBCRYPTO
2961    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
2962      SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
2963   #endif
2964   }
2965 + #line 2966 "conf_parser.c" /* yacc.c:1646  */
2966      break;
2967  
2968 <  case 72:
2969 < /* Line 1787 of yacc.c  */
3243 < #line 441 "conf_parser.y"
2968 >  case 77:
2969 > #line 486 "conf_parser.y" /* yacc.c:1646  */
2970      {
2971   #ifdef HAVE_LIBCRYPTO
2972    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
2973      SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
2974   #endif
2975   }
2976 + #line 2977 "conf_parser.c" /* yacc.c:1646  */
2977      break;
2978  
2979 <  case 75:
2980 < /* Line 1787 of yacc.c  */
3254 < #line 450 "conf_parser.y"
2979 >  case 80:
2980 > #line 495 "conf_parser.y" /* yacc.c:1646  */
2981      {
2982   #ifdef HAVE_LIBCRYPTO
2983    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2984      SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
2985   #endif
2986   }
2987 + #line 2988 "conf_parser.c" /* yacc.c:1646  */
2988      break;
2989  
2990 <  case 76:
2991 < /* Line 1787 of yacc.c  */
3265 < #line 456 "conf_parser.y"
2990 >  case 81:
2991 > #line 501 "conf_parser.y" /* yacc.c:1646  */
2992      {
2993   #ifdef HAVE_LIBCRYPTO
2994    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2995      SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
2996   #endif
2997   }
2998 + #line 2999 "conf_parser.c" /* yacc.c:1646  */
2999      break;
3000  
3001 <  case 77:
3002 < /* Line 1787 of yacc.c  */
3276 < #line 464 "conf_parser.y"
3001 >  case 82:
3002 > #line 509 "conf_parser.y" /* yacc.c:1646  */
3003      {
3004   #ifdef HAVE_LIBCRYPTO
3005 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3005 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3006    {
3007      if (!ServerInfo.rsa_private_key_file)
3008      {
3009 <      yyerror("No rsa_private_key_file specified, SSL disabled");
3009 >      conf_error_report("No rsa_private_key_file specified, SSL disabled");
3010        break;
3011      }
3012  
# Line 3289 | Line 3015 | yyreduce:
3015          SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3016                                       SSL_FILETYPE_PEM) <= 0)
3017      {
3018 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3018 >      report_crypto_errors();
3019 >      conf_error_report("Could not open/read certificate file");
3020        break;
3021      }
3022  
# Line 3298 | Line 3025 | yyreduce:
3025          SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3026                                      SSL_FILETYPE_PEM) <= 0)
3027      {
3028 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3028 >      report_crypto_errors();
3029 >      conf_error_report("Could not read RSA private key");
3030        break;
3031      }
3032  
3033      if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3034          !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3035      {
3036 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3036 >      report_crypto_errors();
3037 >      conf_error_report("Could not read RSA private key");
3038        break;
3039      }
3040    }
3041   #endif
3042   }
3043 + #line 3044 "conf_parser.c" /* yacc.c:1646  */
3044      break;
3045  
3046 <  case 78:
3047 < /* Line 1787 of yacc.c  */
3318 < #line 503 "conf_parser.y"
3046 >  case 83:
3047 > #line 551 "conf_parser.y" /* yacc.c:1646  */
3048      {
3049   #ifdef HAVE_LIBCRYPTO
3050 <  if (conf_parser_ctx.pass == 1)
3322 <  {
3323 <    BIO *file;
3050 >  BIO *file = NULL;
3051  
3052 <    if (ServerInfo.rsa_private_key)
3053 <    {
3327 <      RSA_free(ServerInfo.rsa_private_key);
3328 <      ServerInfo.rsa_private_key = NULL;
3329 <    }
3052 >  if (conf_parser_ctx.pass != 1)
3053 >    break;
3054  
3055 <    if (ServerInfo.rsa_private_key_file)
3056 <    {
3057 <      MyFree(ServerInfo.rsa_private_key_file);
3058 <      ServerInfo.rsa_private_key_file = NULL;
3059 <    }
3055 >  if (ServerInfo.rsa_private_key)
3056 >  {
3057 >    RSA_free(ServerInfo.rsa_private_key);
3058 >    ServerInfo.rsa_private_key = NULL;
3059 >  }
3060  
3061 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3061 >  if (ServerInfo.rsa_private_key_file)
3062 >  {
3063 >    MyFree(ServerInfo.rsa_private_key_file);
3064 >    ServerInfo.rsa_private_key_file = NULL;
3065 >  }
3066  
3067 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3340 <    {
3341 <      yyerror("File open failed, ignoring");
3342 <      break;
3343 <    }
3067 >  ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3068  
3069 <    ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3069 >  if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3070 >  {
3071 >    conf_error_report("File open failed, ignoring");
3072 >    break;
3073 >  }
3074  
3075 <    BIO_set_close(file, BIO_CLOSE);
3348 <    BIO_free(file);
3075 >  ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3076  
3077 <    if (ServerInfo.rsa_private_key == NULL)
3078 <    {
3352 <      yyerror("Couldn't extract key, ignoring");
3353 <      break;
3354 <    }
3077 >  BIO_set_close(file, BIO_CLOSE);
3078 >  BIO_free(file);
3079  
3080 <    if (!RSA_check_key(ServerInfo.rsa_private_key))
3081 <    {
3082 <      RSA_free(ServerInfo.rsa_private_key);
3083 <      ServerInfo.rsa_private_key = NULL;
3080 >  if (ServerInfo.rsa_private_key == NULL)
3081 >  {
3082 >    conf_error_report("Couldn't extract key, ignoring");
3083 >    break;
3084 >  }
3085  
3086 <      yyerror("Invalid key, ignoring");
3087 <      break;
3088 <    }
3086 >  if (!RSA_check_key(ServerInfo.rsa_private_key))
3087 >  {
3088 >    RSA_free(ServerInfo.rsa_private_key);
3089 >    ServerInfo.rsa_private_key = NULL;
3090  
3091 <    /* require 2048 bit (256 byte) key */
3092 <    if (RSA_size(ServerInfo.rsa_private_key) != 256)
3093 <    {
3368 <      RSA_free(ServerInfo.rsa_private_key);
3369 <      ServerInfo.rsa_private_key = NULL;
3091 >    conf_error_report("Invalid key, ignoring");
3092 >    break;
3093 >  }
3094  
3095 <      yyerror("Not a 2048 bit key, ignoring");
3096 <    }
3095 >  if (RSA_size(ServerInfo.rsa_private_key) < 128)
3096 >  {
3097 >    RSA_free(ServerInfo.rsa_private_key);
3098 >    ServerInfo.rsa_private_key = NULL;
3099 >
3100 >    conf_error_report("Ignoring serverinfo::rsa_private_key_file -- need at least a 1024 bit key size");
3101    }
3102   #endif
3103   }
3104 + #line 3105 "conf_parser.c" /* yacc.c:1646  */
3105      break;
3106  
3107 <  case 79:
3108 < /* Line 1787 of yacc.c  */
3380 < #line 562 "conf_parser.y"
3107 >  case 84:
3108 > #line 609 "conf_parser.y" /* yacc.c:1646  */
3109      {
3110   /* TBD - XXX: error reporting */
3111   #ifdef HAVE_LIBCRYPTO
# Line 3394 | Line 3122 | yyreduce:
3122        if (dh)
3123        {
3124          if (DH_size(dh) < 128)
3125 <          ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3125 >          conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3126          else
3127            SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3128  
# Line 3404 | Line 3132 | yyreduce:
3132    }
3133   #endif
3134   }
3135 + #line 3136 "conf_parser.c" /* yacc.c:1646  */
3136      break;
3137  
3138 <  case 80:
3139 < /* Line 1787 of yacc.c  */
3411 < #line 590 "conf_parser.y"
3138 >  case 85:
3139 > #line 637 "conf_parser.y" /* yacc.c:1646  */
3140      {
3141   #ifdef HAVE_LIBCRYPTO
3142    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3143      SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3144   #endif
3145   }
3146 + #line 3147 "conf_parser.c" /* yacc.c:1646  */
3147      break;
3148  
3149 <  case 81:
3150 < /* Line 1787 of yacc.c  */
3422 < #line 598 "conf_parser.y"
3149 >  case 86:
3150 > #line 645 "conf_parser.y" /* yacc.c:1646  */
3151      {
3152    /* this isn't rehashable */
3153    if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3154    {
3155      if (valid_servname(yylval.string))
3156 <      DupString(ServerInfo.name, yylval.string);
3156 >      ServerInfo.name = xstrdup(yylval.string);
3157      else
3158      {
3159 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::name -- invalid name. Aborting.");
3159 >      conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3160        exit(0);
3161      }
3162    }
3163   }
3164 + #line 3165 "conf_parser.c" /* yacc.c:1646  */
3165      break;
3166  
3167 <  case 82:
3168 < /* Line 1787 of yacc.c  */
3440 < #line 613 "conf_parser.y"
3167 >  case 87:
3168 > #line 660 "conf_parser.y" /* yacc.c:1646  */
3169      {
3170    /* this isn't rehashable */
3171    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3172    {
3173      if (valid_sid(yylval.string))
3174 <      DupString(ServerInfo.sid, yylval.string);
3174 >      ServerInfo.sid = xstrdup(yylval.string);
3175      else
3176      {
3177 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
3177 >      conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3178        exit(0);
3179      }
3180    }
3181   }
3182 + #line 3183 "conf_parser.c" /* yacc.c:1646  */
3183      break;
3184  
3185 <  case 83:
3186 < /* Line 1787 of yacc.c  */
3458 < #line 628 "conf_parser.y"
3185 >  case 88:
3186 > #line 675 "conf_parser.y" /* yacc.c:1646  */
3187      {
3188    if (conf_parser_ctx.pass == 2)
3189    {
3190      MyFree(ServerInfo.description);
3191 <    DupString(ServerInfo.description,yylval.string);
3191 >    ServerInfo.description = xstrdup(yylval.string);
3192    }
3193   }
3194 + #line 3195 "conf_parser.c" /* yacc.c:1646  */
3195      break;
3196  
3197 <  case 84:
3198 < /* Line 1787 of yacc.c  */
3470 < #line 637 "conf_parser.y"
3197 >  case 89:
3198 > #line 684 "conf_parser.y" /* yacc.c:1646  */
3199      {
3200    if (conf_parser_ctx.pass == 2)
3201    {
3202      char *p;
3203  
3204 <    if ((p = strchr(yylval.string, ' ')) != NULL)
3204 >    if ((p = strchr(yylval.string, ' ')))
3205        p = '\0';
3206  
3207      MyFree(ServerInfo.network_name);
3208 <    DupString(ServerInfo.network_name, yylval.string);
3208 >    ServerInfo.network_name = xstrdup(yylval.string);
3209    }
3210   }
3211 + #line 3212 "conf_parser.c" /* yacc.c:1646  */
3212      break;
3213  
3214 <  case 85:
3215 < /* Line 1787 of yacc.c  */
3487 < #line 651 "conf_parser.y"
3214 >  case 90:
3215 > #line 698 "conf_parser.y" /* yacc.c:1646  */
3216      {
3217 <  if (conf_parser_ctx.pass == 2)
3218 <  {
3219 <    MyFree(ServerInfo.network_desc);
3220 <    DupString(ServerInfo.network_desc, yylval.string);
3221 <  }
3217 >  if (conf_parser_ctx.pass != 2)
3218 >    break;
3219 >
3220 >  MyFree(ServerInfo.network_desc);
3221 >  ServerInfo.network_desc = xstrdup(yylval.string);
3222   }
3223 + #line 3224 "conf_parser.c" /* yacc.c:1646  */
3224      break;
3225  
3226 <  case 86:
3227 < /* Line 1787 of yacc.c  */
3499 < #line 660 "conf_parser.y"
3226 >  case 91:
3227 > #line 707 "conf_parser.y" /* yacc.c:1646  */
3228      {
3229    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3230    {
# Line 3512 | Line 3240 | yyreduce:
3240        ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3241      else
3242      {
3243 <      assert(res != NULL);
3243 >      assert(res);
3244  
3245        memcpy(&ServerInfo.ip, res->ai_addr, res->ai_addrlen);
3246        ServerInfo.ip.ss.ss_family = res->ai_family;
# Line 3523 | Line 3251 | yyreduce:
3251      }
3252    }
3253   }
3254 + #line 3255 "conf_parser.c" /* yacc.c:1646  */
3255      break;
3256  
3257 <  case 87:
3258 < /* Line 1787 of yacc.c  */
3530 < #line 688 "conf_parser.y"
3257 >  case 92:
3258 > #line 735 "conf_parser.y" /* yacc.c:1646  */
3259      {
3260   #ifdef IPV6
3261    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3544 | Line 3272 | yyreduce:
3272        ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3273      else
3274      {
3275 <      assert(res != NULL);
3275 >      assert(res);
3276  
3277        memcpy(&ServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3278        ServerInfo.ip6.ss.ss_family = res->ai_family;
# Line 3556 | Line 3284 | yyreduce:
3284    }
3285   #endif
3286   }
3287 + #line 3288 "conf_parser.c" /* yacc.c:1646  */
3288      break;
3289  
3290 <  case 88:
3291 < /* Line 1787 of yacc.c  */
3563 < #line 718 "conf_parser.y"
3290 >  case 93:
3291 > #line 765 "conf_parser.y" /* yacc.c:1646  */
3292      {
3293 <  if (conf_parser_ctx.pass == 2)
3293 >  if (conf_parser_ctx.pass != 2)
3294 >    break;
3295 >
3296 >  if ((yyvsp[-1].number) < MAXCLIENTS_MIN)
3297 >  {
3298 >    char buf[IRCD_BUFSIZE] = "";
3299 >
3300 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3301 >    conf_error_report(buf);
3302 >    ServerInfo.max_clients = MAXCLIENTS_MIN;
3303 >  }
3304 >  else if ((yyvsp[-1].number) > MAXCLIENTS_MAX)
3305    {
3306 <    recalc_fdlimit(NULL);
3306 >    char buf[IRCD_BUFSIZE] = "";
3307 >
3308 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3309 >    conf_error_report(buf);
3310 >    ServerInfo.max_clients = MAXCLIENTS_MAX;
3311 >  }
3312 >  else
3313 >    ServerInfo.max_clients = (yyvsp[-1].number);
3314 > }
3315 > #line 3316 "conf_parser.c" /* yacc.c:1646  */
3316 >    break;
3317  
3318 <    if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3318 >  case 94:
3319 > #line 790 "conf_parser.y" /* yacc.c:1646  */
3320      {
3321 <      char buf[IRCD_BUFSIZE];
3322 <      ircsprintf(buf, "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3323 <      yyerror(buf);
3324 <    }
3325 <    else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3321 >  if (conf_parser_ctx.pass != 2)
3322 >    break;
3323 >
3324 >  if ((yyvsp[-1].number) < 9)
3325 >  {
3326 >    conf_error_report("max_nick_length too low, setting to 9");
3327 >    ServerInfo.max_nick_length = 9;
3328 >  }
3329 >  else if ((yyvsp[-1].number) > NICKLEN)
3330 >  {
3331 >    char buf[IRCD_BUFSIZE] = "";
3332 >
3333 >    snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3334 >    conf_error_report(buf);
3335 >    ServerInfo.max_nick_length = NICKLEN;
3336 >  }
3337 >  else
3338 >    ServerInfo.max_nick_length = (yyvsp[-1].number);
3339 > }
3340 > #line 3341 "conf_parser.c" /* yacc.c:1646  */
3341 >    break;
3342 >
3343 >  case 95:
3344 > #line 812 "conf_parser.y" /* yacc.c:1646  */
3345      {
3346 <      char buf[IRCD_BUFSIZE];
3347 <      ircsprintf(buf, "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3348 <      yyerror(buf);
3349 <    }
3350 <    else
3351 <      ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3346 >  if (conf_parser_ctx.pass != 2)
3347 >    break;
3348 >
3349 >  if ((yyvsp[-1].number) < 80)
3350 >  {
3351 >    conf_error_report("max_topic_length too low, setting to 80");
3352 >    ServerInfo.max_topic_length = 80;
3353    }
3354 +  else if ((yyvsp[-1].number) > TOPICLEN)
3355 +  {
3356 +    char buf[IRCD_BUFSIZE] = "";
3357 +
3358 +    snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3359 +    conf_error_report(buf);
3360 +    ServerInfo.max_topic_length = TOPICLEN;
3361 +  }
3362 +  else
3363 +    ServerInfo.max_topic_length = (yyvsp[-1].number);
3364   }
3365 + #line 3366 "conf_parser.c" /* yacc.c:1646  */
3366      break;
3367  
3368 <  case 89:
3369 < /* Line 1787 of yacc.c  */
3589 < #line 741 "conf_parser.y"
3368 >  case 96:
3369 > #line 834 "conf_parser.y" /* yacc.c:1646  */
3370      {
3371    if (conf_parser_ctx.pass == 2)
3372      ServerInfo.hub = yylval.number;
3373   }
3374 + #line 3375 "conf_parser.c" /* yacc.c:1646  */
3375      break;
3376  
3377 <  case 97:
3378 < /* Line 1787 of yacc.c  */
3379 < #line 756 "conf_parser.y"
3377 >  case 104:
3378 > #line 851 "conf_parser.y" /* yacc.c:1646  */
3379 >    {
3380 >  if (conf_parser_ctx.pass != 2)
3381 >    break;
3382 >
3383 >  MyFree(AdminInfo.name);
3384 >  AdminInfo.name = xstrdup(yylval.string);
3385 > }
3386 > #line 3387 "conf_parser.c" /* yacc.c:1646  */
3387 >    break;
3388 >
3389 >  case 105:
3390 > #line 860 "conf_parser.y" /* yacc.c:1646  */
3391 >    {
3392 >  if (conf_parser_ctx.pass != 2)
3393 >    break;
3394 >
3395 >  MyFree(AdminInfo.email);
3396 >  AdminInfo.email = xstrdup(yylval.string);
3397 > }
3398 > #line 3399 "conf_parser.c" /* yacc.c:1646  */
3399 >    break;
3400 >
3401 >  case 106:
3402 > #line 869 "conf_parser.y" /* yacc.c:1646  */
3403 >    {
3404 >  if (conf_parser_ctx.pass != 2)
3405 >    break;
3406 >
3407 >  MyFree(AdminInfo.description);
3408 >  AdminInfo.description = xstrdup(yylval.string);
3409 > }
3410 > #line 3411 "conf_parser.c" /* yacc.c:1646  */
3411 >    break;
3412 >
3413 >  case 107:
3414 > #line 881 "conf_parser.y" /* yacc.c:1646  */
3415      {
3416    if (conf_parser_ctx.pass == 2)
3417 <  {
3602 <    MyFree(AdminInfo.name);
3603 <    DupString(AdminInfo.name, yylval.string);
3604 <  }
3417 >    reset_block_state();
3418   }
3419 + #line 3420 "conf_parser.c" /* yacc.c:1646  */
3420      break;
3421  
3422 <  case 98:
3423 < /* Line 1787 of yacc.c  */
3424 < #line 765 "conf_parser.y"
3422 >  case 108:
3423 > #line 885 "conf_parser.y" /* yacc.c:1646  */
3424 >    {
3425 >  dlink_node *ptr = NULL;
3426 >
3427 >  if (conf_parser_ctx.pass != 2)
3428 >    break;
3429 >
3430 >  if (!block_state.file.buf[0])
3431 >    break;
3432 >
3433 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3434 >    motd_add(ptr->data, block_state.file.buf);
3435 > }
3436 > #line 3437 "conf_parser.c" /* yacc.c:1646  */
3437 >    break;
3438 >
3439 >  case 114:
3440 > #line 902 "conf_parser.y" /* yacc.c:1646  */
3441      {
3442    if (conf_parser_ctx.pass == 2)
3443 <  {
3614 <    MyFree(AdminInfo.email);
3615 <    DupString(AdminInfo.email, yylval.string);
3616 <  }
3443 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3444   }
3445 + #line 3446 "conf_parser.c" /* yacc.c:1646  */
3446      break;
3447  
3448 <  case 99:
3449 < /* Line 1787 of yacc.c  */
3622 < #line 774 "conf_parser.y"
3448 >  case 115:
3449 > #line 908 "conf_parser.y" /* yacc.c:1646  */
3450      {
3451    if (conf_parser_ctx.pass == 2)
3452 <  {
3626 <    MyFree(AdminInfo.description);
3627 <    DupString(AdminInfo.description, yylval.string);
3628 <  }
3452 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3453   }
3454 + #line 3455 "conf_parser.c" /* yacc.c:1646  */
3455      break;
3456  
3457 <  case 106:
3458 < /* Line 1787 of yacc.c  */
3634 < #line 792 "conf_parser.y"
3457 >  case 122:
3458 > #line 923 "conf_parser.y" /* yacc.c:1646  */
3459      {
3460    if (conf_parser_ctx.pass == 2)
3461      ConfigLoggingEntry.use_logging = yylval.number;
3462   }
3463 + #line 3464 "conf_parser.c" /* yacc.c:1646  */
3464      break;
3465  
3466 <  case 107:
3467 < /* Line 1787 of yacc.c  */
3643 < #line 798 "conf_parser.y"
3466 >  case 123:
3467 > #line 929 "conf_parser.y" /* yacc.c:1646  */
3468      {
3469 <  lfile[0] = '\0';
3470 <  ltype = 0;
3647 <  lsize = 0;
3469 >  if (conf_parser_ctx.pass == 2)
3470 >    reset_block_state();
3471   }
3472 + #line 3473 "conf_parser.c" /* yacc.c:1646  */
3473      break;
3474  
3475 <  case 108:
3476 < /* Line 1787 of yacc.c  */
3653 < #line 803 "conf_parser.y"
3475 >  case 124:
3476 > #line 933 "conf_parser.y" /* yacc.c:1646  */
3477      {
3478 <  if (conf_parser_ctx.pass == 2 && ltype > 0)
3479 <    log_add_file(ltype, lsize, lfile);
3478 >  if (conf_parser_ctx.pass != 2)
3479 >    break;
3480 >
3481 >  if (block_state.type.value && block_state.file.buf[0])
3482 >    log_set_file(block_state.type.value, block_state.size.value,
3483 >                 block_state.file.buf);
3484   }
3485 + #line 3486 "conf_parser.c" /* yacc.c:1646  */
3486      break;
3487  
3488 <  case 115:
3489 < /* Line 1787 of yacc.c  */
3662 < #line 815 "conf_parser.y"
3488 >  case 131:
3489 > #line 949 "conf_parser.y" /* yacc.c:1646  */
3490      {
3491 <  strlcpy(lfile, yylval.string, sizeof(lfile));
3491 >  if (conf_parser_ctx.pass != 2)
3492 >    break;
3493 >
3494 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3495   }
3496 + #line 3497 "conf_parser.c" /* yacc.c:1646  */
3497      break;
3498  
3499 <  case 116:
3500 < /* Line 1787 of yacc.c  */
3670 < #line 820 "conf_parser.y"
3499 >  case 132:
3500 > #line 957 "conf_parser.y" /* yacc.c:1646  */
3501      {
3502 <  lsize = (yyvsp[(3) - (4)].number);
3502 >  block_state.size.value = (yyvsp[-1].number);
3503   }
3504 + #line 3505 "conf_parser.c" /* yacc.c:1646  */
3505      break;
3506  
3507 <  case 117:
3508 < /* Line 1787 of yacc.c  */
3678 < #line 823 "conf_parser.y"
3507 >  case 133:
3508 > #line 960 "conf_parser.y" /* yacc.c:1646  */
3509      {
3510 <  lsize = 0;
3510 >  block_state.size.value = 0;
3511   }
3512 + #line 3513 "conf_parser.c" /* yacc.c:1646  */
3513      break;
3514  
3515 <  case 118:
3516 < /* Line 1787 of yacc.c  */
3686 < #line 828 "conf_parser.y"
3515 >  case 134:
3516 > #line 965 "conf_parser.y" /* yacc.c:1646  */
3517      {
3518    if (conf_parser_ctx.pass == 2)
3519 <    ltype = 0;
3519 >    block_state.type.value = 0;
3520   }
3521 + #line 3522 "conf_parser.c" /* yacc.c:1646  */
3522      break;
3523  
3524 <  case 122:
3525 < /* Line 1787 of yacc.c  */
3695 < #line 835 "conf_parser.y"
3524 >  case 138:
3525 > #line 972 "conf_parser.y" /* yacc.c:1646  */
3526      {
3527    if (conf_parser_ctx.pass == 2)
3528 <    ltype = LOG_TYPE_USER;
3528 >    block_state.type.value = LOG_TYPE_USER;
3529   }
3530 + #line 3531 "conf_parser.c" /* yacc.c:1646  */
3531      break;
3532  
3533 <  case 123:
3534 < /* Line 1787 of yacc.c  */
3704 < #line 839 "conf_parser.y"
3533 >  case 139:
3534 > #line 976 "conf_parser.y" /* yacc.c:1646  */
3535      {
3536    if (conf_parser_ctx.pass == 2)
3537 <    ltype = LOG_TYPE_OPER;
3537 >    block_state.type.value = LOG_TYPE_OPER;
3538   }
3539 + #line 3540 "conf_parser.c" /* yacc.c:1646  */
3540      break;
3541  
3542 <  case 124:
3543 < /* Line 1787 of yacc.c  */
3713 < #line 843 "conf_parser.y"
3542 >  case 140:
3543 > #line 980 "conf_parser.y" /* yacc.c:1646  */
3544      {
3545    if (conf_parser_ctx.pass == 2)
3546 <    ltype = LOG_TYPE_GLINE;
3546 >    block_state.type.value = LOG_TYPE_GLINE;
3547   }
3548 + #line 3549 "conf_parser.c" /* yacc.c:1646  */
3549      break;
3550  
3551 <  case 125:
3552 < /* Line 1787 of yacc.c  */
3722 < #line 847 "conf_parser.y"
3551 >  case 141:
3552 > #line 984 "conf_parser.y" /* yacc.c:1646  */
3553      {
3554    if (conf_parser_ctx.pass == 2)
3555 <    ltype = LOG_TYPE_DLINE;
3555 >    block_state.type.value = LOG_TYPE_XLINE;
3556   }
3557 + #line 3558 "conf_parser.c" /* yacc.c:1646  */
3558      break;
3559  
3560 <  case 126:
3561 < /* Line 1787 of yacc.c  */
3731 < #line 851 "conf_parser.y"
3560 >  case 142:
3561 > #line 988 "conf_parser.y" /* yacc.c:1646  */
3562      {
3563    if (conf_parser_ctx.pass == 2)
3564 <    ltype = LOG_TYPE_KLINE;
3564 >    block_state.type.value = LOG_TYPE_RESV;
3565   }
3566 + #line 3567 "conf_parser.c" /* yacc.c:1646  */
3567      break;
3568  
3569 <  case 127:
3570 < /* Line 1787 of yacc.c  */
3740 < #line 855 "conf_parser.y"
3569 >  case 143:
3570 > #line 992 "conf_parser.y" /* yacc.c:1646  */
3571      {
3572    if (conf_parser_ctx.pass == 2)
3573 <    ltype = LOG_TYPE_KILL;
3573 >    block_state.type.value = LOG_TYPE_DLINE;
3574   }
3575 + #line 3576 "conf_parser.c" /* yacc.c:1646  */
3576      break;
3577  
3578 <  case 128:
3579 < /* Line 1787 of yacc.c  */
3749 < #line 859 "conf_parser.y"
3578 >  case 144:
3579 > #line 996 "conf_parser.y" /* yacc.c:1646  */
3580      {
3581    if (conf_parser_ctx.pass == 2)
3582 <    ltype = LOG_TYPE_DEBUG;
3582 >    block_state.type.value = LOG_TYPE_KLINE;
3583   }
3584 + #line 3585 "conf_parser.c" /* yacc.c:1646  */
3585      break;
3586  
3587 <  case 129:
3588 < /* Line 1787 of yacc.c  */
3758 < #line 869 "conf_parser.y"
3587 >  case 145:
3588 > #line 1000 "conf_parser.y" /* yacc.c:1646  */
3589      {
3590    if (conf_parser_ctx.pass == 2)
3591 <  {
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 <  }
3591 >    block_state.type.value = LOG_TYPE_KILL;
3592   }
3593 + #line 3594 "conf_parser.c" /* yacc.c:1646  */
3594      break;
3595  
3596 <  case 130:
3597 < /* Line 1787 of yacc.c  */
3776 < #line 882 "conf_parser.y"
3596 >  case 146:
3597 > #line 1004 "conf_parser.y" /* yacc.c:1646  */
3598      {
3599    if (conf_parser_ctx.pass == 2)
3600 <  {
3601 <    struct CollectItem *yy_tmp;
3602 <    dlink_node *ptr;
3603 <    dlink_node *next_ptr;
3783 <
3784 <    conf_add_class_to_conf(yy_conf, class_name);
3785 <
3786 <    /* Now, make sure there is a copy of the "base" given oper
3787 <     * block in each of the collected copies
3788 <     */
3600 >    block_state.type.value = LOG_TYPE_DEBUG;
3601 > }
3602 > #line 3603 "conf_parser.c" /* yacc.c:1646  */
3603 >    break;
3604  
3605 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3605 >  case 147:
3606 > #line 1014 "conf_parser.y" /* yacc.c:1646  */
3607      {
3608 <      struct AccessItem *new_aconf;
3609 <      struct ConfItem *new_conf;
3794 <      yy_tmp = ptr->data;
3608 >  if (conf_parser_ctx.pass != 2)
3609 >    break;
3610  
3611 <      new_conf = make_conf_item(OPER_TYPE);
3612 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
3611 >  reset_block_state();
3612 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3613 > }
3614 > #line 3615 "conf_parser.c" /* yacc.c:1646  */
3615 >    break;
3616  
3617 <      new_aconf->flags = yy_aconf->flags;
3617 >  case 148:
3618 > #line 1021 "conf_parser.y" /* yacc.c:1646  */
3619 >    {
3620 >  dlink_node *ptr = NULL;
3621  
3622 <      if (yy_conf->name != NULL)
3623 <        DupString(new_conf->name, yy_conf->name);
3803 <      if (yy_tmp->user != NULL)
3804 <        DupString(new_aconf->user, yy_tmp->user);
3805 <      else
3806 <        DupString(new_aconf->user, "*");
3807 <      if (yy_tmp->host != NULL)
3808 <        DupString(new_aconf->host, yy_tmp->host);
3809 <      else
3810 <        DupString(new_aconf->host, "*");
3622 >  if (conf_parser_ctx.pass != 2)
3623 >    break;
3624  
3625 <      new_aconf->type = parse_netmask(new_aconf->host, &new_aconf->addr,
3626 <                                     &new_aconf->bits);
3625 >  if (!block_state.name.buf[0])
3626 >    break;
3627 > #ifdef HAVE_LIBCRYPTO
3628 >  if (!block_state.file.buf[0] &&
3629 >      !block_state.rpass.buf[0])
3630 >    break;
3631 > #else
3632 >  if (!block_state.rpass.buf[0])
3633 >    break;
3634 > #endif
3635  
3636 <      conf_add_class_to_conf(new_conf, class_name);
3637 <      if (yy_aconf->passwd != NULL)
3638 <        DupString(new_aconf->passwd, yy_aconf->passwd);
3636 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3637 >  {
3638 >    struct MaskItem *conf = NULL;
3639 >    struct split_nuh_item nuh;
3640  
3641 <      new_aconf->port = yy_aconf->port;
3642 < #ifdef HAVE_LIBCRYPTO
3643 <      if (yy_aconf->rsa_public_key_file != NULL)
3644 <      {
3645 <        BIO *file;
3641 >    nuh.nuhmask  = ptr->data;
3642 >    nuh.nickptr  = NULL;
3643 >    nuh.userptr  = block_state.user.buf;
3644 >    nuh.hostptr  = block_state.host.buf;
3645 >    nuh.nicksize = 0;
3646 >    nuh.usersize = sizeof(block_state.user.buf);
3647 >    nuh.hostsize = sizeof(block_state.host.buf);
3648 >    split_nuh(&nuh);
3649  
3650 <        DupString(new_aconf->rsa_public_key_file,
3651 <                  yy_aconf->rsa_public_key_file);
3650 >    conf         = conf_make(CONF_OPER);
3651 >    conf->name   = xstrdup(block_state.name.buf);
3652 >    conf->user   = xstrdup(block_state.user.buf);
3653 >    conf->host   = xstrdup(block_state.host.buf);
3654 >
3655 >    if (block_state.cert.buf[0])
3656 >      conf->certfp = xstrdup(block_state.cert.buf);
3657 >
3658 >    if (block_state.rpass.buf[0])
3659 >      conf->passwd = xstrdup(block_state.rpass.buf);
3660 >
3661 >    conf->flags = block_state.flags.value;
3662 >    conf->modes = block_state.modes.value;
3663 >    conf->port  = block_state.port.value;
3664 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3665  
3666 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
3829 <        new_aconf->rsa_public_key = PEM_read_bio_RSA_PUBKEY(file,
3830 <                                                           NULL, 0, NULL);
3831 <        BIO_set_close(file, BIO_CLOSE);
3832 <        BIO_free(file);
3833 <      }
3834 < #endif
3666 >    conf_add_class_to_conf(conf, block_state.class.buf);
3667  
3668   #ifdef HAVE_LIBCRYPTO
3669 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
3670 <          && yy_tmp->host)
3671 < #else
3672 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
3673 < #endif
3669 >    if (block_state.file.buf[0])
3670 >    {
3671 >      BIO *file = NULL;
3672 >      RSA *pkey = NULL;
3673 >
3674 >      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3675        {
3676 <        conf_add_class_to_conf(new_conf, class_name);
3677 <        if (yy_tmp->name != NULL)
3845 <          DupString(new_conf->name, yy_tmp->name);
3676 >        conf_error_report("Ignoring rsa_public_key_file -- file doesn't exist");
3677 >        break;
3678        }
3679  
3680 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
3681 <      free_collect_item(yy_tmp);
3850 <    }
3851 <
3852 <    yy_conf = NULL;
3853 <    yy_aconf = NULL;
3680 >      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3681 >        conf_error_report("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3682  
3683 <
3684 <    MyFree(class_name);
3685 <    class_name = NULL;
3683 >      conf->rsa_public_key = pkey;
3684 >      BIO_set_close(file, BIO_CLOSE);
3685 >      BIO_free(file);
3686 >    }
3687 > #endif /* HAVE_LIBCRYPTO */
3688    }
3689   }
3690 + #line 3691 "conf_parser.c" /* yacc.c:1646  */
3691      break;
3692  
3693 <  case 142:
3694 < /* Line 1787 of yacc.c  */
3864 < #line 972 "conf_parser.y"
3693 >  case 162:
3694 > #line 1107 "conf_parser.y" /* yacc.c:1646  */
3695      {
3696    if (conf_parser_ctx.pass == 2)
3697 <  {
3868 <    MyFree(yy_conf->name);
3869 <    DupString(yy_conf->name, yylval.string);
3870 <  }
3697 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3698   }
3699 + #line 3700 "conf_parser.c" /* yacc.c:1646  */
3700      break;
3701  
3702 <  case 143:
3703 < /* Line 1787 of yacc.c  */
3876 < #line 981 "conf_parser.y"
3702 >  case 163:
3703 > #line 1113 "conf_parser.y" /* yacc.c:1646  */
3704      {
3705    if (conf_parser_ctx.pass == 2)
3706 <  {
3707 <    struct split_nuh_item nuh;
3706 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3707 > }
3708 > #line 3709 "conf_parser.c" /* yacc.c:1646  */
3709 >    break;
3710  
3711 <    nuh.nuhmask  = yylval.string;
3712 <    nuh.nickptr  = NULL;
3713 <    nuh.userptr  = userbuf;
3714 <    nuh.hostptr  = hostbuf;
3711 >  case 164:
3712 > #line 1119 "conf_parser.y" /* yacc.c:1646  */
3713 >    {
3714 >  if (conf_parser_ctx.pass == 2)
3715 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3716 > }
3717 > #line 3718 "conf_parser.c" /* yacc.c:1646  */
3718 >    break;
3719  
3720 <    nuh.nicksize = 0;
3721 <    nuh.usersize = sizeof(userbuf);
3722 <    nuh.hostsize = sizeof(hostbuf);
3720 >  case 165:
3721 > #line 1125 "conf_parser.y" /* yacc.c:1646  */
3722 >    {
3723 >  if (conf_parser_ctx.pass != 2)
3724 >    break;
3725  
3726 <    split_nuh(&nuh);
3726 >  if (yylval.number)
3727 >    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3728 >  else
3729 >    block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3730 > }
3731 > #line 3732 "conf_parser.c" /* yacc.c:1646  */
3732 >    break;
3733  
3734 <    if (yy_aconf->user == NULL)
3734 >  case 166:
3735 > #line 1136 "conf_parser.y" /* yacc.c:1646  */
3736      {
3737 <      DupString(yy_aconf->user, userbuf);
3738 <      DupString(yy_aconf->host, hostbuf);
3737 >  if (conf_parser_ctx.pass == 2)
3738 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3739 > }
3740 > #line 3741 "conf_parser.c" /* yacc.c:1646  */
3741 >    break;
3742  
3743 <      yy_aconf->type = parse_netmask(yy_aconf->host, &yy_aconf->addr,
3744 <                                    &yy_aconf->bits);
3900 <    }
3901 <    else
3743 >  case 167:
3744 > #line 1142 "conf_parser.y" /* yacc.c:1646  */
3745      {
3746 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
3746 >  if (conf_parser_ctx.pass == 2)
3747 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
3748 > }
3749 > #line 3750 "conf_parser.c" /* yacc.c:1646  */
3750 >    break;
3751  
3752 <      DupString(yy_tmp->user, userbuf);
3753 <      DupString(yy_tmp->host, hostbuf);
3752 >  case 168:
3753 > #line 1148 "conf_parser.y" /* yacc.c:1646  */
3754 >    {
3755 >  if (conf_parser_ctx.pass != 2)
3756 >    break;
3757  
3758 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
3759 <    }
3760 <  }
3758 >  if (yylval.number)
3759 >    block_state.flags.value |= CONF_FLAGS_SSL;
3760 >  else
3761 >    block_state.flags.value &= ~CONF_FLAGS_SSL;
3762   }
3763 + #line 3764 "conf_parser.c" /* yacc.c:1646  */
3764      break;
3765  
3766 <  case 144:
3767 < /* Line 1787 of yacc.c  */
3916 < #line 1018 "conf_parser.y"
3766 >  case 169:
3767 > #line 1159 "conf_parser.y" /* yacc.c:1646  */
3768      {
3769    if (conf_parser_ctx.pass == 2)
3770 <  {
3920 <    if (yy_aconf->passwd != NULL)
3921 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
3922 <
3923 <    MyFree(yy_aconf->passwd);
3924 <    DupString(yy_aconf->passwd, yylval.string);
3925 <  }
3770 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3771   }
3772 + #line 3773 "conf_parser.c" /* yacc.c:1646  */
3773      break;
3774  
3775 <  case 145:
3776 < /* Line 1787 of yacc.c  */
3931 < #line 1030 "conf_parser.y"
3775 >  case 170:
3776 > #line 1165 "conf_parser.y" /* yacc.c:1646  */
3777      {
3778    if (conf_parser_ctx.pass == 2)
3779 <  {
3935 <    if (yylval.number)
3936 <      SetConfEncrypted(yy_aconf);
3937 <    else
3938 <      ClearConfEncrypted(yy_aconf);
3939 <  }
3779 >    block_state.modes.value = 0;
3780   }
3781 + #line 3782 "conf_parser.c" /* yacc.c:1646  */
3782      break;
3783  
3784 <  case 146:
3785 < /* Line 1787 of yacc.c  */
3945 < #line 1041 "conf_parser.y"
3784 >  case 174:
3785 > #line 1172 "conf_parser.y" /* yacc.c:1646  */
3786      {
3947 #ifdef HAVE_LIBCRYPTO
3787    if (conf_parser_ctx.pass == 2)
3788 <  {
3789 <    BIO *file;
3788 >    block_state.modes.value |= UMODE_BOTS;
3789 > }
3790 > #line 3791 "conf_parser.c" /* yacc.c:1646  */
3791 >    break;
3792  
3793 <    if (yy_aconf->rsa_public_key != NULL)
3793 >  case 175:
3794 > #line 1176 "conf_parser.y" /* yacc.c:1646  */
3795      {
3796 <      RSA_free(yy_aconf->rsa_public_key);
3797 <      yy_aconf->rsa_public_key = NULL;
3798 <    }
3796 >  if (conf_parser_ctx.pass == 2)
3797 >    block_state.modes.value |= UMODE_CCONN;
3798 > }
3799 > #line 3800 "conf_parser.c" /* yacc.c:1646  */
3800 >    break;
3801  
3802 <    if (yy_aconf->rsa_public_key_file != NULL)
3802 >  case 176:
3803 > #line 1180 "conf_parser.y" /* yacc.c:1646  */
3804      {
3805 <      MyFree(yy_aconf->rsa_public_key_file);
3806 <      yy_aconf->rsa_public_key_file = NULL;
3807 <    }
3808 <
3809 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
3965 <    file = BIO_new_file(yylval.string, "r");
3805 >  if (conf_parser_ctx.pass == 2)
3806 >    block_state.modes.value |= UMODE_DEAF;
3807 > }
3808 > #line 3809 "conf_parser.c" /* yacc.c:1646  */
3809 >    break;
3810  
3811 <    if (file == NULL)
3811 >  case 177:
3812 > #line 1184 "conf_parser.y" /* yacc.c:1646  */
3813      {
3814 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
3815 <      break;
3816 <    }
3817 <
3818 <    yy_aconf->rsa_public_key = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
3814 >  if (conf_parser_ctx.pass == 2)
3815 >    block_state.modes.value |= UMODE_DEBUG;
3816 > }
3817 > #line 3818 "conf_parser.c" /* yacc.c:1646  */
3818 >    break;
3819  
3820 <    if (yy_aconf->rsa_public_key == NULL)
3820 >  case 178:
3821 > #line 1188 "conf_parser.y" /* yacc.c:1646  */
3822      {
3823 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3824 <      break;
3979 <    }
3980 <
3981 <    BIO_set_close(file, BIO_CLOSE);
3982 <    BIO_free(file);
3983 <  }
3984 < #endif /* HAVE_LIBCRYPTO */
3823 >  if (conf_parser_ctx.pass == 2)
3824 >    block_state.modes.value |= UMODE_FULL;
3825   }
3826 + #line 3827 "conf_parser.c" /* yacc.c:1646  */
3827      break;
3828  
3829 <  case 147:
3830 < /* Line 1787 of yacc.c  */
3990 < #line 1083 "conf_parser.y"
3829 >  case 179:
3830 > #line 1192 "conf_parser.y" /* yacc.c:1646  */
3831      {
3832    if (conf_parser_ctx.pass == 2)
3833 <  {
3994 <    MyFree(class_name);
3995 <    DupString(class_name, yylval.string);
3996 <  }
3833 >    block_state.modes.value |= UMODE_HIDDEN;
3834   }
3835 + #line 3836 "conf_parser.c" /* yacc.c:1646  */
3836      break;
3837  
3838 <  case 148:
3839 < /* Line 1787 of yacc.c  */
4002 < #line 1092 "conf_parser.y"
3838 >  case 180:
3839 > #line 1196 "conf_parser.y" /* yacc.c:1646  */
3840      {
3841    if (conf_parser_ctx.pass == 2)
3842 <    yy_aconf->modes = 0;
3842 >    block_state.modes.value |= UMODE_HIDECHANS;
3843   }
3844 + #line 3845 "conf_parser.c" /* yacc.c:1646  */
3845      break;
3846  
3847 <  case 152:
3848 < /* Line 1787 of yacc.c  */
4011 < #line 1099 "conf_parser.y"
3847 >  case 181:
3848 > #line 1200 "conf_parser.y" /* yacc.c:1646  */
3849      {
3850    if (conf_parser_ctx.pass == 2)
3851 <    yy_aconf->modes |= UMODE_BOTS;
3851 >    block_state.modes.value |= UMODE_HIDEIDLE;
3852   }
3853 + #line 3854 "conf_parser.c" /* yacc.c:1646  */
3854      break;
3855  
3856 <  case 153:
3857 < /* Line 1787 of yacc.c  */
4020 < #line 1103 "conf_parser.y"
3856 >  case 182:
3857 > #line 1204 "conf_parser.y" /* yacc.c:1646  */
3858      {
3859    if (conf_parser_ctx.pass == 2)
3860 <    yy_aconf->modes |= UMODE_CCONN;
3860 >    block_state.modes.value |= UMODE_SKILL;
3861   }
3862 + #line 3863 "conf_parser.c" /* yacc.c:1646  */
3863      break;
3864  
3865 <  case 154:
3866 < /* Line 1787 of yacc.c  */
4029 < #line 1107 "conf_parser.y"
3865 >  case 183:
3866 > #line 1208 "conf_parser.y" /* yacc.c:1646  */
3867      {
3868    if (conf_parser_ctx.pass == 2)
3869 <    yy_aconf->modes |= UMODE_CCONN_FULL;
3869 >    block_state.modes.value |= UMODE_NCHANGE;
3870   }
3871 + #line 3872 "conf_parser.c" /* yacc.c:1646  */
3872      break;
3873  
3874 <  case 155:
3875 < /* Line 1787 of yacc.c  */
4038 < #line 1111 "conf_parser.y"
3874 >  case 184:
3875 > #line 1212 "conf_parser.y" /* yacc.c:1646  */
3876      {
3877    if (conf_parser_ctx.pass == 2)
3878 <    yy_aconf->modes |= UMODE_DEAF;
3878 >    block_state.modes.value |= UMODE_REJ;
3879   }
3880 + #line 3881 "conf_parser.c" /* yacc.c:1646  */
3881      break;
3882  
3883 <  case 156:
3884 < /* Line 1787 of yacc.c  */
4047 < #line 1115 "conf_parser.y"
3883 >  case 185:
3884 > #line 1216 "conf_parser.y" /* yacc.c:1646  */
3885      {
3886    if (conf_parser_ctx.pass == 2)
3887 <    yy_aconf->modes |= UMODE_DEBUG;
3887 >    block_state.modes.value |= UMODE_UNAUTH;
3888   }
3889 + #line 3890 "conf_parser.c" /* yacc.c:1646  */
3890      break;
3891  
3892 <  case 157:
3893 < /* Line 1787 of yacc.c  */
4056 < #line 1119 "conf_parser.y"
3892 >  case 186:
3893 > #line 1220 "conf_parser.y" /* yacc.c:1646  */
3894      {
3895    if (conf_parser_ctx.pass == 2)
3896 <    yy_aconf->modes |= UMODE_FULL;
3896 >    block_state.modes.value |= UMODE_SPY;
3897   }
3898 + #line 3899 "conf_parser.c" /* yacc.c:1646  */
3899      break;
3900  
3901 <  case 158:
3902 < /* Line 1787 of yacc.c  */
4065 < #line 1123 "conf_parser.y"
3901 >  case 187:
3902 > #line 1224 "conf_parser.y" /* yacc.c:1646  */
3903      {
3904    if (conf_parser_ctx.pass == 2)
3905 <    yy_aconf->modes |= UMODE_HIDDEN;
3905 >    block_state.modes.value |= UMODE_EXTERNAL;
3906   }
3907 + #line 3908 "conf_parser.c" /* yacc.c:1646  */
3908      break;
3909  
3910 <  case 159:
3911 < /* Line 1787 of yacc.c  */
4074 < #line 1127 "conf_parser.y"
3910 >  case 188:
3911 > #line 1228 "conf_parser.y" /* yacc.c:1646  */
3912      {
3913    if (conf_parser_ctx.pass == 2)
3914 <    yy_aconf->modes |= UMODE_SKILL;
3914 >    block_state.modes.value |= UMODE_OPERWALL;
3915   }
3916 + #line 3917 "conf_parser.c" /* yacc.c:1646  */
3917      break;
3918  
3919 <  case 160:
3920 < /* Line 1787 of yacc.c  */
4083 < #line 1131 "conf_parser.y"
3919 >  case 189:
3920 > #line 1232 "conf_parser.y" /* yacc.c:1646  */
3921      {
3922    if (conf_parser_ctx.pass == 2)
3923 <    yy_aconf->modes |= UMODE_NCHANGE;
3923 >    block_state.modes.value |= UMODE_SERVNOTICE;
3924   }
3925 + #line 3926 "conf_parser.c" /* yacc.c:1646  */
3926      break;
3927  
3928 <  case 161:
3929 < /* Line 1787 of yacc.c  */
4092 < #line 1135 "conf_parser.y"
3928 >  case 190:
3929 > #line 1236 "conf_parser.y" /* yacc.c:1646  */
3930      {
3931    if (conf_parser_ctx.pass == 2)
3932 <    yy_aconf->modes |= UMODE_REJ;
3932 >    block_state.modes.value |= UMODE_INVISIBLE;
3933   }
3934 + #line 3935 "conf_parser.c" /* yacc.c:1646  */
3935      break;
3936  
3937 <  case 162:
3938 < /* Line 1787 of yacc.c  */
4101 < #line 1139 "conf_parser.y"
3937 >  case 191:
3938 > #line 1240 "conf_parser.y" /* yacc.c:1646  */
3939      {
3940    if (conf_parser_ctx.pass == 2)
3941 <    yy_aconf->modes |= UMODE_UNAUTH;
3941 >    block_state.modes.value |= UMODE_WALLOP;
3942   }
3943 + #line 3944 "conf_parser.c" /* yacc.c:1646  */
3944      break;
3945  
3946 <  case 163:
3947 < /* Line 1787 of yacc.c  */
4110 < #line 1143 "conf_parser.y"
3946 >  case 192:
3947 > #line 1244 "conf_parser.y" /* yacc.c:1646  */
3948      {
3949    if (conf_parser_ctx.pass == 2)
3950 <    yy_aconf->modes |= UMODE_SPY;
3950 >    block_state.modes.value |= UMODE_SOFTCALLERID;
3951   }
3952 + #line 3953 "conf_parser.c" /* yacc.c:1646  */
3953      break;
3954  
3955 <  case 164:
3956 < /* Line 1787 of yacc.c  */
4119 < #line 1147 "conf_parser.y"
3955 >  case 193:
3956 > #line 1248 "conf_parser.y" /* yacc.c:1646  */
3957      {
3958    if (conf_parser_ctx.pass == 2)
3959 <    yy_aconf->modes |= UMODE_EXTERNAL;
3959 >    block_state.modes.value |= UMODE_CALLERID;
3960   }
3961 + #line 3962 "conf_parser.c" /* yacc.c:1646  */
3962      break;
3963  
3964 <  case 165:
3965 < /* Line 1787 of yacc.c  */
4128 < #line 1151 "conf_parser.y"
3964 >  case 194:
3965 > #line 1252 "conf_parser.y" /* yacc.c:1646  */
3966      {
3967    if (conf_parser_ctx.pass == 2)
3968 <    yy_aconf->modes |= UMODE_OPERWALL;
3968 >    block_state.modes.value |= UMODE_LOCOPS;
3969   }
3970 + #line 3971 "conf_parser.c" /* yacc.c:1646  */
3971      break;
3972  
3973 <  case 166:
3974 < /* Line 1787 of yacc.c  */
4137 < #line 1155 "conf_parser.y"
3973 >  case 195:
3974 > #line 1256 "conf_parser.y" /* yacc.c:1646  */
3975      {
3976    if (conf_parser_ctx.pass == 2)
3977 <    yy_aconf->modes |= UMODE_SERVNOTICE;
3977 >    block_state.modes.value |= UMODE_REGONLY;
3978   }
3979 + #line 3980 "conf_parser.c" /* yacc.c:1646  */
3980      break;
3981  
3982 <  case 167:
3983 < /* Line 1787 of yacc.c  */
4146 < #line 1159 "conf_parser.y"
3982 >  case 196:
3983 > #line 1260 "conf_parser.y" /* yacc.c:1646  */
3984      {
3985    if (conf_parser_ctx.pass == 2)
3986 <    yy_aconf->modes |= UMODE_INVISIBLE;
3986 >    block_state.modes.value |= UMODE_FARCONNECT;
3987   }
3988 + #line 3989 "conf_parser.c" /* yacc.c:1646  */
3989      break;
3990  
3991 <  case 168:
3992 < /* Line 1787 of yacc.c  */
4155 < #line 1163 "conf_parser.y"
3991 >  case 197:
3992 > #line 1266 "conf_parser.y" /* yacc.c:1646  */
3993      {
3994    if (conf_parser_ctx.pass == 2)
3995 <    yy_aconf->modes |= UMODE_WALLOP;
3995 >    block_state.port.value = 0;
3996   }
3997 + #line 3998 "conf_parser.c" /* yacc.c:1646  */
3998      break;
3999  
4000 <  case 169:
4001 < /* Line 1787 of yacc.c  */
4164 < #line 1167 "conf_parser.y"
4000 >  case 201:
4001 > #line 1273 "conf_parser.y" /* yacc.c:1646  */
4002      {
4003    if (conf_parser_ctx.pass == 2)
4004 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
4004 >    block_state.port.value |= OPER_FLAG_KILL_REMOTE;
4005   }
4006 + #line 4007 "conf_parser.c" /* yacc.c:1646  */
4007      break;
4008  
4009 <  case 170:
4010 < /* Line 1787 of yacc.c  */
4173 < #line 1171 "conf_parser.y"
4009 >  case 202:
4010 > #line 1277 "conf_parser.y" /* yacc.c:1646  */
4011      {
4012    if (conf_parser_ctx.pass == 2)
4013 <    yy_aconf->modes |= UMODE_CALLERID;
4013 >    block_state.port.value |= OPER_FLAG_KILL;
4014   }
4015 + #line 4016 "conf_parser.c" /* yacc.c:1646  */
4016      break;
4017  
4018 <  case 171:
4019 < /* Line 1787 of yacc.c  */
4182 < #line 1175 "conf_parser.y"
4018 >  case 203:
4019 > #line 1281 "conf_parser.y" /* yacc.c:1646  */
4020      {
4021    if (conf_parser_ctx.pass == 2)
4022 <    yy_aconf->modes |= UMODE_LOCOPS;
4022 >    block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
4023   }
4024 + #line 4025 "conf_parser.c" /* yacc.c:1646  */
4025      break;
4026  
4027 <  case 172:
4028 < /* Line 1787 of yacc.c  */
4191 < #line 1181 "conf_parser.y"
4027 >  case 204:
4028 > #line 1285 "conf_parser.y" /* yacc.c:1646  */
4029      {
4030    if (conf_parser_ctx.pass == 2)
4031 <    yy_aconf->port = 0;
4031 >    block_state.port.value |= OPER_FLAG_CONNECT;
4032   }
4033 + #line 4034 "conf_parser.c" /* yacc.c:1646  */
4034      break;
4035  
4036 <  case 176:
4037 < /* Line 1787 of yacc.c  */
4200 < #line 1188 "conf_parser.y"
4036 >  case 205:
4037 > #line 1289 "conf_parser.y" /* yacc.c:1646  */
4038      {
4039    if (conf_parser_ctx.pass == 2)
4040 <    yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4040 >    block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
4041   }
4042 + #line 4043 "conf_parser.c" /* yacc.c:1646  */
4043      break;
4044  
4045 <  case 177:
4046 < /* Line 1787 of yacc.c  */
4209 < #line 1192 "conf_parser.y"
4045 >  case 206:
4046 > #line 1293 "conf_parser.y" /* yacc.c:1646  */
4047      {
4048    if (conf_parser_ctx.pass == 2)
4049 <    yy_aconf->port |= OPER_FLAG_REMOTE;
4049 >    block_state.port.value |= OPER_FLAG_SQUIT;
4050   }
4051 + #line 4052 "conf_parser.c" /* yacc.c:1646  */
4052      break;
4053  
4054 <  case 178:
4055 < /* Line 1787 of yacc.c  */
4218 < #line 1196 "conf_parser.y"
4054 >  case 207:
4055 > #line 1297 "conf_parser.y" /* yacc.c:1646  */
4056      {
4057    if (conf_parser_ctx.pass == 2)
4058 <    yy_aconf->port |= OPER_FLAG_K;
4058 >    block_state.port.value |= OPER_FLAG_K;
4059   }
4060 + #line 4061 "conf_parser.c" /* yacc.c:1646  */
4061      break;
4062  
4063 <  case 179:
4064 < /* Line 1787 of yacc.c  */
4227 < #line 1200 "conf_parser.y"
4063 >  case 208:
4064 > #line 1301 "conf_parser.y" /* yacc.c:1646  */
4065      {
4066    if (conf_parser_ctx.pass == 2)
4067 <    yy_aconf->port |= OPER_FLAG_UNKLINE;
4067 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4068   }
4069 + #line 4070 "conf_parser.c" /* yacc.c:1646  */
4070      break;
4071  
4072 <  case 180:
4073 < /* Line 1787 of yacc.c  */
4236 < #line 1204 "conf_parser.y"
4072 >  case 209:
4073 > #line 1305 "conf_parser.y" /* yacc.c:1646  */
4074      {
4075    if (conf_parser_ctx.pass == 2)
4076 <    yy_aconf->port |= OPER_FLAG_DLINE;
4076 >    block_state.port.value |= OPER_FLAG_DLINE;
4077   }
4078 + #line 4079 "conf_parser.c" /* yacc.c:1646  */
4079      break;
4080  
4081 <  case 181:
4082 < /* Line 1787 of yacc.c  */
4245 < #line 1208 "conf_parser.y"
4081 >  case 210:
4082 > #line 1309 "conf_parser.y" /* yacc.c:1646  */
4083      {
4084    if (conf_parser_ctx.pass == 2)
4085 <    yy_aconf->port |= OPER_FLAG_UNDLINE;
4085 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4086   }
4087 + #line 4088 "conf_parser.c" /* yacc.c:1646  */
4088      break;
4089  
4090 <  case 182:
4091 < /* Line 1787 of yacc.c  */
4254 < #line 1212 "conf_parser.y"
4090 >  case 211:
4091 > #line 1313 "conf_parser.y" /* yacc.c:1646  */
4092      {
4093    if (conf_parser_ctx.pass == 2)
4094 <    yy_aconf->port |= OPER_FLAG_X;
4094 >    block_state.port.value |= OPER_FLAG_XLINE;
4095   }
4096 + #line 4097 "conf_parser.c" /* yacc.c:1646  */
4097      break;
4098  
4099 <  case 183:
4100 < /* Line 1787 of yacc.c  */
4263 < #line 1216 "conf_parser.y"
4099 >  case 212:
4100 > #line 1317 "conf_parser.y" /* yacc.c:1646  */
4101      {
4102    if (conf_parser_ctx.pass == 2)
4103 <    yy_aconf->port |= OPER_FLAG_GLINE;
4103 >    block_state.port.value |= OPER_FLAG_UNXLINE;
4104   }
4105 + #line 4106 "conf_parser.c" /* yacc.c:1646  */
4106      break;
4107  
4108 <  case 184:
4109 < /* Line 1787 of yacc.c  */
4272 < #line 1220 "conf_parser.y"
4108 >  case 213:
4109 > #line 1321 "conf_parser.y" /* yacc.c:1646  */
4110      {
4111    if (conf_parser_ctx.pass == 2)
4112 <    yy_aconf->port |= OPER_FLAG_DIE;
4112 >    block_state.port.value |= OPER_FLAG_GLINE;
4113   }
4114 + #line 4115 "conf_parser.c" /* yacc.c:1646  */
4115      break;
4116  
4117 <  case 185:
4118 < /* Line 1787 of yacc.c  */
4281 < #line 1224 "conf_parser.y"
4117 >  case 214:
4118 > #line 1325 "conf_parser.y" /* yacc.c:1646  */
4119      {
4120    if (conf_parser_ctx.pass == 2)
4121 <    yy_aconf->port |= OPER_FLAG_RESTART;
4121 >    block_state.port.value |= OPER_FLAG_DIE;
4122   }
4123 + #line 4124 "conf_parser.c" /* yacc.c:1646  */
4124      break;
4125  
4126 <  case 186:
4127 < /* Line 1787 of yacc.c  */
4290 < #line 1228 "conf_parser.y"
4126 >  case 215:
4127 > #line 1329 "conf_parser.y" /* yacc.c:1646  */
4128      {
4129    if (conf_parser_ctx.pass == 2)
4130 <    yy_aconf->port |= OPER_FLAG_REHASH;
4130 >    block_state.port.value |= OPER_FLAG_RESTART;
4131   }
4132 + #line 4133 "conf_parser.c" /* yacc.c:1646  */
4133      break;
4134  
4135 <  case 187:
4136 < /* Line 1787 of yacc.c  */
4299 < #line 1232 "conf_parser.y"
4135 >  case 216:
4136 > #line 1333 "conf_parser.y" /* yacc.c:1646  */
4137      {
4138    if (conf_parser_ctx.pass == 2)
4139 <    yy_aconf->port |= OPER_FLAG_ADMIN;
4139 >    block_state.port.value |= OPER_FLAG_REHASH;
4140   }
4141 + #line 4142 "conf_parser.c" /* yacc.c:1646  */
4142      break;
4143  
4144 <  case 188:
4145 < /* Line 1787 of yacc.c  */
4308 < #line 1236 "conf_parser.y"
4144 >  case 217:
4145 > #line 1337 "conf_parser.y" /* yacc.c:1646  */
4146      {
4147    if (conf_parser_ctx.pass == 2)
4148 <    yy_aconf->port |= OPER_FLAG_N;
4148 >    block_state.port.value |= OPER_FLAG_ADMIN;
4149   }
4150 + #line 4151 "conf_parser.c" /* yacc.c:1646  */
4151      break;
4152  
4153 <  case 189:
4154 < /* Line 1787 of yacc.c  */
4317 < #line 1240 "conf_parser.y"
4153 >  case 218:
4154 > #line 1341 "conf_parser.y" /* yacc.c:1646  */
4155      {
4156    if (conf_parser_ctx.pass == 2)
4157 <    yy_aconf->port |= OPER_FLAG_OPERWALL;
4157 >    block_state.port.value |= OPER_FLAG_OPERWALL;
4158   }
4159 + #line 4160 "conf_parser.c" /* yacc.c:1646  */
4160      break;
4161  
4162 <  case 190:
4163 < /* Line 1787 of yacc.c  */
4326 < #line 1244 "conf_parser.y"
4162 >  case 219:
4163 > #line 1345 "conf_parser.y" /* yacc.c:1646  */
4164      {
4165    if (conf_parser_ctx.pass == 2)
4166 <    yy_aconf->port |= OPER_FLAG_GLOBOPS;
4166 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4167   }
4168 + #line 4169 "conf_parser.c" /* yacc.c:1646  */
4169      break;
4170  
4171 <  case 191:
4172 < /* Line 1787 of yacc.c  */
4335 < #line 1248 "conf_parser.y"
4171 >  case 220:
4172 > #line 1349 "conf_parser.y" /* yacc.c:1646  */
4173      {
4174    if (conf_parser_ctx.pass == 2)
4175 <    yy_aconf->port |= OPER_FLAG_OPER_SPY;
4175 >    block_state.port.value |= OPER_FLAG_WALLOPS;
4176   }
4177 + #line 4178 "conf_parser.c" /* yacc.c:1646  */
4178      break;
4179  
4180 <  case 192:
4181 < /* Line 1787 of yacc.c  */
4344 < #line 1252 "conf_parser.y"
4180 >  case 221:
4181 > #line 1353 "conf_parser.y" /* yacc.c:1646  */
4182      {
4183    if (conf_parser_ctx.pass == 2)
4184 <    yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4184 >    block_state.port.value |= OPER_FLAG_LOCOPS;
4185   }
4186 + #line 4187 "conf_parser.c" /* yacc.c:1646  */
4187      break;
4188  
4189 <  case 193:
4190 < /* Line 1787 of yacc.c  */
4353 < #line 1256 "conf_parser.y"
4189 >  case 222:
4190 > #line 1357 "conf_parser.y" /* yacc.c:1646  */
4191      {
4192    if (conf_parser_ctx.pass == 2)
4193 <    yy_aconf->port |= OPER_FLAG_SET;
4193 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4194   }
4195 + #line 4196 "conf_parser.c" /* yacc.c:1646  */
4196      break;
4197  
4198 <  case 194:
4199 < /* Line 1787 of yacc.c  */
4362 < #line 1260 "conf_parser.y"
4198 >  case 223:
4199 > #line 1361 "conf_parser.y" /* yacc.c:1646  */
4200      {
4201    if (conf_parser_ctx.pass == 2)
4202 <    yy_aconf->port |= OPER_FLAG_MODULE;
4202 >    block_state.port.value |= OPER_FLAG_SET;
4203   }
4204 + #line 4205 "conf_parser.c" /* yacc.c:1646  */
4205      break;
4206  
4207 <  case 195:
4208 < /* Line 1787 of yacc.c  */
4371 < #line 1270 "conf_parser.y"
4207 >  case 224:
4208 > #line 1365 "conf_parser.y" /* yacc.c:1646  */
4209      {
4210 <  if (conf_parser_ctx.pass == 1)
4211 <  {
4375 <    yy_conf = make_conf_item(CLASS_TYPE);
4376 <    yy_class = map_to_conf(yy_conf);
4377 <  }
4210 >  if (conf_parser_ctx.pass == 2)
4211 >    block_state.port.value |= OPER_FLAG_MODULE;
4212   }
4213 + #line 4214 "conf_parser.c" /* yacc.c:1646  */
4214      break;
4215  
4216 <  case 196:
4217 < /* Line 1787 of yacc.c  */
4383 < #line 1277 "conf_parser.y"
4216 >  case 225:
4217 > #line 1375 "conf_parser.y" /* yacc.c:1646  */
4218      {
4219 <  if (conf_parser_ctx.pass == 1)
4220 <  {
4387 <    struct ConfItem *cconf = NULL;
4388 <    struct ClassItem *class = NULL;
4219 >  if (conf_parser_ctx.pass != 1)
4220 >    break;
4221  
4222 <    if (yy_class_name == NULL)
4391 <      delete_conf_item(yy_conf);
4392 <    else
4393 <    {
4394 <      cconf = find_exact_name_conf(CLASS_TYPE, NULL, yy_class_name, NULL, NULL);
4222 >  reset_block_state();
4223  
4224 <      if (cconf != NULL)                /* The class existed already */
4225 <      {
4226 <        int user_count = 0;
4224 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4225 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4226 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4227 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4228 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4229 > }
4230 > #line 4231 "conf_parser.c" /* yacc.c:1646  */
4231 >    break;
4232  
4233 <        rebuild_cidr_class(cconf, yy_class);
4233 >  case 226:
4234 > #line 1387 "conf_parser.y" /* yacc.c:1646  */
4235 >    {
4236 >  struct ClassItem *class = NULL;
4237  
4238 <        class = map_to_conf(cconf);
4238 >  if (conf_parser_ctx.pass != 1)
4239 >    break;
4240  
4241 <        user_count = class->curr_user_count;
4242 <        memcpy(class, yy_class, sizeof(*class));
4406 <        class->curr_user_count = user_count;
4407 <        class->active = 1;
4241 >  if (!block_state.class.buf[0])
4242 >    break;
4243  
4244 <        delete_conf_item(yy_conf);
4244 >  if (!(class = class_find(block_state.class.buf, 0)))
4245 >    class = class_make();
4246  
4247 <        MyFree(cconf->name);            /* Allows case change of class name */
4248 <        cconf->name = yy_class_name;
4249 <      }
4250 <      else      /* Brand new class */
4251 <      {
4252 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4253 <        yy_conf->name = yy_class_name;
4254 <        yy_class->active = 1;
4255 <      }
4256 <    }
4247 >  class->active = 1;
4248 >  MyFree(class->name);
4249 >  class->name = xstrdup(block_state.class.buf);
4250 >  class->ping_freq = block_state.ping_freq.value;
4251 >  class->max_perip = block_state.max_perip.value;
4252 >  class->con_freq = block_state.con_freq.value;
4253 >  class->max_total = block_state.max_total.value;
4254 >  class->max_global = block_state.max_global.value;
4255 >  class->max_local = block_state.max_local.value;
4256 >  class->max_ident = block_state.max_ident.value;
4257 >  class->max_sendq = block_state.max_sendq.value;
4258 >  class->max_recvq = block_state.max_recvq.value;
4259  
4260 <    yy_class_name = NULL;
4260 >  if (block_state.min_idle.value > block_state.max_idle.value)
4261 >  {
4262 >    block_state.min_idle.value = 0;
4263 >    block_state.max_idle.value = 0;
4264 >    block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4265    }
4266 +
4267 +  class->flags = block_state.flags.value;
4268 +  class->min_idle = block_state.min_idle.value;
4269 +  class->max_idle = block_state.max_idle.value;
4270 +
4271 +  if (class->number_per_cidr && block_state.number_per_cidr.value)
4272 +    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4273 +        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4274 +      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4275 +          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4276 +        rebuild_cidr_list(class);
4277 +
4278 +  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4279 +  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4280 +  class->number_per_cidr = block_state.number_per_cidr.value;
4281   }
4282 + #line 4283 "conf_parser.c" /* yacc.c:1646  */
4283      break;
4284  
4285 <  case 214:
4286 < /* Line 1787 of yacc.c  */
4429 < #line 1335 "conf_parser.y"
4285 >  case 246:
4286 > #line 1454 "conf_parser.y" /* yacc.c:1646  */
4287      {
4288    if (conf_parser_ctx.pass == 1)
4289 <  {
4433 <    MyFree(yy_class_name);
4434 <    DupString(yy_class_name, yylval.string);
4435 <  }
4289 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4290   }
4291 + #line 4292 "conf_parser.c" /* yacc.c:1646  */
4292      break;
4293  
4294 <  case 215:
4295 < /* Line 1787 of yacc.c  */
4441 < #line 1344 "conf_parser.y"
4294 >  case 247:
4295 > #line 1460 "conf_parser.y" /* yacc.c:1646  */
4296      {
4297    if (conf_parser_ctx.pass == 1)
4298 <    yy_class->ping_freq = (yyvsp[(3) - (4)].number);
4298 >    block_state.ping_freq.value = (yyvsp[-1].number);
4299   }
4300 + #line 4301 "conf_parser.c" /* yacc.c:1646  */
4301      break;
4302  
4303 <  case 216:
4304 < /* Line 1787 of yacc.c  */
4450 < #line 1350 "conf_parser.y"
4303 >  case 248:
4304 > #line 1466 "conf_parser.y" /* yacc.c:1646  */
4305      {
4306    if (conf_parser_ctx.pass == 1)
4307 <    yy_class->ping_warning = (yyvsp[(3) - (4)].number);
4307 >    block_state.max_perip.value = (yyvsp[-1].number);
4308   }
4309 + #line 4310 "conf_parser.c" /* yacc.c:1646  */
4310      break;
4311  
4312 <  case 217:
4313 < /* Line 1787 of yacc.c  */
4459 < #line 1356 "conf_parser.y"
4312 >  case 249:
4313 > #line 1472 "conf_parser.y" /* yacc.c:1646  */
4314      {
4315    if (conf_parser_ctx.pass == 1)
4316 <    yy_class->max_perip = (yyvsp[(3) - (4)].number);
4316 >    block_state.con_freq.value = (yyvsp[-1].number);
4317   }
4318 + #line 4319 "conf_parser.c" /* yacc.c:1646  */
4319      break;
4320  
4321 <  case 218:
4322 < /* Line 1787 of yacc.c  */
4468 < #line 1362 "conf_parser.y"
4321 >  case 250:
4322 > #line 1478 "conf_parser.y" /* yacc.c:1646  */
4323      {
4324    if (conf_parser_ctx.pass == 1)
4325 <    yy_class->con_freq = (yyvsp[(3) - (4)].number);
4325 >    block_state.max_total.value = (yyvsp[-1].number);
4326   }
4327 + #line 4328 "conf_parser.c" /* yacc.c:1646  */
4328      break;
4329  
4330 <  case 219:
4331 < /* Line 1787 of yacc.c  */
4477 < #line 1368 "conf_parser.y"
4330 >  case 251:
4331 > #line 1484 "conf_parser.y" /* yacc.c:1646  */
4332      {
4333    if (conf_parser_ctx.pass == 1)
4334 <    yy_class->max_total = (yyvsp[(3) - (4)].number);
4334 >    block_state.max_global.value = (yyvsp[-1].number);
4335   }
4336 + #line 4337 "conf_parser.c" /* yacc.c:1646  */
4337      break;
4338  
4339 <  case 220:
4340 < /* Line 1787 of yacc.c  */
4486 < #line 1374 "conf_parser.y"
4339 >  case 252:
4340 > #line 1490 "conf_parser.y" /* yacc.c:1646  */
4341      {
4342    if (conf_parser_ctx.pass == 1)
4343 <    yy_class->max_global = (yyvsp[(3) - (4)].number);
4343 >    block_state.max_local.value = (yyvsp[-1].number);
4344   }
4345 + #line 4346 "conf_parser.c" /* yacc.c:1646  */
4346      break;
4347  
4348 <  case 221:
4349 < /* Line 1787 of yacc.c  */
4495 < #line 1380 "conf_parser.y"
4348 >  case 253:
4349 > #line 1496 "conf_parser.y" /* yacc.c:1646  */
4350      {
4351    if (conf_parser_ctx.pass == 1)
4352 <    yy_class->max_local = (yyvsp[(3) - (4)].number);
4352 >    block_state.max_ident.value = (yyvsp[-1].number);
4353   }
4354 + #line 4355 "conf_parser.c" /* yacc.c:1646  */
4355      break;
4356  
4357 <  case 222:
4358 < /* Line 1787 of yacc.c  */
4504 < #line 1386 "conf_parser.y"
4357 >  case 254:
4358 > #line 1502 "conf_parser.y" /* yacc.c:1646  */
4359      {
4360    if (conf_parser_ctx.pass == 1)
4361 <    yy_class->max_ident = (yyvsp[(3) - (4)].number);
4361 >    block_state.max_sendq.value = (yyvsp[-1].number);
4362   }
4363 + #line 4364 "conf_parser.c" /* yacc.c:1646  */
4364      break;
4365  
4366 <  case 223:
4367 < /* Line 1787 of yacc.c  */
4513 < #line 1392 "conf_parser.y"
4366 >  case 255:
4367 > #line 1508 "conf_parser.y" /* yacc.c:1646  */
4368      {
4369    if (conf_parser_ctx.pass == 1)
4370 <    yy_class->max_sendq = (yyvsp[(3) - (4)].number);
4370 >    if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX)
4371 >      block_state.max_recvq.value = (yyvsp[-1].number);
4372   }
4373 + #line 4374 "conf_parser.c" /* yacc.c:1646  */
4374      break;
4375  
4376 <  case 224:
4377 < /* Line 1787 of yacc.c  */
4522 < #line 1398 "conf_parser.y"
4376 >  case 256:
4377 > #line 1515 "conf_parser.y" /* yacc.c:1646  */
4378      {
4379    if (conf_parser_ctx.pass == 1)
4380 <    if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4526 <      yy_class->max_recvq = (yyvsp[(3) - (4)].number);
4380 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number);
4381   }
4382 + #line 4383 "conf_parser.c" /* yacc.c:1646  */
4383      break;
4384  
4385 <  case 225:
4386 < /* Line 1787 of yacc.c  */
4532 < #line 1405 "conf_parser.y"
4385 >  case 257:
4386 > #line 1521 "conf_parser.y" /* yacc.c:1646  */
4387      {
4388    if (conf_parser_ctx.pass == 1)
4389 <    yy_class->cidr_bitlen_ipv4 = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4389 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number);
4390   }
4391 + #line 4392 "conf_parser.c" /* yacc.c:1646  */
4392      break;
4393  
4394 <  case 226:
4395 < /* Line 1787 of yacc.c  */
4541 < #line 1411 "conf_parser.y"
4394 >  case 258:
4395 > #line 1527 "conf_parser.y" /* yacc.c:1646  */
4396      {
4397    if (conf_parser_ctx.pass == 1)
4398 <    yy_class->cidr_bitlen_ipv6 = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4398 >    block_state.number_per_cidr.value = (yyvsp[-1].number);
4399   }
4400 + #line 4401 "conf_parser.c" /* yacc.c:1646  */
4401      break;
4402  
4403 <  case 227:
4404 < /* Line 1787 of yacc.c  */
4405 < #line 1417 "conf_parser.y"
4403 >  case 259:
4404 > #line 1533 "conf_parser.y" /* yacc.c:1646  */
4405 >    {
4406 >  if (conf_parser_ctx.pass != 1)
4407 >    break;
4408 >
4409 >  block_state.min_idle.value = (yyvsp[-1].number);
4410 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4411 > }
4412 > #line 4413 "conf_parser.c" /* yacc.c:1646  */
4413 >    break;
4414 >
4415 >  case 260:
4416 > #line 1542 "conf_parser.y" /* yacc.c:1646  */
4417 >    {
4418 >  if (conf_parser_ctx.pass != 1)
4419 >    break;
4420 >
4421 >  block_state.max_idle.value = (yyvsp[-1].number);
4422 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4423 > }
4424 > #line 4425 "conf_parser.c" /* yacc.c:1646  */
4425 >    break;
4426 >
4427 >  case 261:
4428 > #line 1551 "conf_parser.y" /* yacc.c:1646  */
4429      {
4430    if (conf_parser_ctx.pass == 1)
4431 <    yy_class->number_per_cidr = (yyvsp[(3) - (4)].number);
4431 >    block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4432   }
4433 + #line 4434 "conf_parser.c" /* yacc.c:1646  */
4434      break;
4435  
4436 <  case 228:
4437 < /* Line 1787 of yacc.c  */
4559 < #line 1426 "conf_parser.y"
4436 >  case 265:
4437 > #line 1558 "conf_parser.y" /* yacc.c:1646  */
4438      {
4439 <  if (conf_parser_ctx.pass == 2)
4440 <  {
4441 <    listener_address = NULL;
4442 <    listener_flags = 0;
4443 <  }
4439 >  if (conf_parser_ctx.pass == 1)
4440 >    block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4441 > }
4442 > #line 4443 "conf_parser.c" /* yacc.c:1646  */
4443 >    break;
4444 >
4445 >  case 266:
4446 > #line 1562 "conf_parser.y" /* yacc.c:1646  */
4447 >    {
4448 >  if (conf_parser_ctx.pass == 1)
4449 >    block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4450   }
4451 + #line 4452 "conf_parser.c" /* yacc.c:1646  */
4452      break;
4453  
4454 <  case 229:
4455 < /* Line 1787 of yacc.c  */
4571 < #line 1433 "conf_parser.y"
4454 >  case 267:
4455 > #line 1572 "conf_parser.y" /* yacc.c:1646  */
4456      {
4457    if (conf_parser_ctx.pass == 2)
4458 <  {
4575 <    MyFree(listener_address);
4576 <    listener_address = NULL;
4577 <  }
4458 >    reset_block_state();
4459   }
4460 + #line 4461 "conf_parser.c" /* yacc.c:1646  */
4461      break;
4462  
4463 <  case 230:
4464 < /* Line 1787 of yacc.c  */
4583 < #line 1442 "conf_parser.y"
4463 >  case 269:
4464 > #line 1578 "conf_parser.y" /* yacc.c:1646  */
4465      {
4466 <  listener_flags = 0;
4466 >  block_state.flags.value = 0;
4467   }
4468 + #line 4469 "conf_parser.c" /* yacc.c:1646  */
4469      break;
4470  
4471 <  case 234:
4472 < /* Line 1787 of yacc.c  */
4591 < #line 1448 "conf_parser.y"
4471 >  case 273:
4472 > #line 1584 "conf_parser.y" /* yacc.c:1646  */
4473      {
4474    if (conf_parser_ctx.pass == 2)
4475 <    listener_flags |= LISTENER_SSL;
4475 >    block_state.flags.value |= LISTENER_SSL;
4476   }
4477 + #line 4478 "conf_parser.c" /* yacc.c:1646  */
4478      break;
4479  
4480 <  case 235:
4481 < /* Line 1787 of yacc.c  */
4600 < #line 1452 "conf_parser.y"
4480 >  case 274:
4481 > #line 1588 "conf_parser.y" /* yacc.c:1646  */
4482      {
4483    if (conf_parser_ctx.pass == 2)
4484 <    listener_flags |= LISTENER_HIDDEN;
4484 >    block_state.flags.value |= LISTENER_HIDDEN;
4485   }
4486 + #line 4487 "conf_parser.c" /* yacc.c:1646  */
4487      break;
4488  
4489 <  case 236:
4490 < /* Line 1787 of yacc.c  */
4609 < #line 1456 "conf_parser.y"
4489 >  case 275:
4490 > #line 1592 "conf_parser.y" /* yacc.c:1646  */
4491      {
4492    if (conf_parser_ctx.pass == 2)
4493 <    listener_flags |= LISTENER_SERVER;
4493 >   block_state.flags.value |= LISTENER_SERVER;
4494   }
4495 + #line 4496 "conf_parser.c" /* yacc.c:1646  */
4496      break;
4497  
4498 <  case 244:
4499 < /* Line 1787 of yacc.c  */
4500 < #line 1466 "conf_parser.y"
4501 <    { listener_flags = 0; }
4498 >  case 283:
4499 > #line 1600 "conf_parser.y" /* yacc.c:1646  */
4500 >    { block_state.flags.value = 0; }
4501 > #line 4502 "conf_parser.c" /* yacc.c:1646  */
4502      break;
4503  
4504 <  case 248:
4505 < /* Line 1787 of yacc.c  */
4624 < #line 1471 "conf_parser.y"
4504 >  case 287:
4505 > #line 1605 "conf_parser.y" /* yacc.c:1646  */
4506      {
4507    if (conf_parser_ctx.pass == 2)
4508    {
4509 <    if ((listener_flags & LISTENER_SSL))
4509 >    if (block_state.flags.value & LISTENER_SSL)
4510   #ifdef HAVE_LIBCRYPTO
4511        if (!ServerInfo.server_ctx)
4512   #endif
4513        {
4514 <        yyerror("SSL not available - port closed");
4515 <        break;
4514 >        conf_error_report("SSL not available - port closed");
4515 >        break;
4516        }
4517 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4517 >    add_listener((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4518    }
4519   }
4520 + #line 4521 "conf_parser.c" /* yacc.c:1646  */
4521      break;
4522  
4523 <  case 249:
4524 < /* Line 1787 of yacc.c  */
4643 < #line 1485 "conf_parser.y"
4523 >  case 288:
4524 > #line 1619 "conf_parser.y" /* yacc.c:1646  */
4525      {
4526    if (conf_parser_ctx.pass == 2)
4527    {
4528 <    int i;
4648 <
4649 <    if ((listener_flags & LISTENER_SSL))
4528 >    if (block_state.flags.value & LISTENER_SSL)
4529   #ifdef HAVE_LIBCRYPTO
4530        if (!ServerInfo.server_ctx)
4531   #endif
4532        {
4533 <        yyerror("SSL not available - port closed");
4534 <        break;
4533 >        conf_error_report("SSL not available - port closed");
4534 >        break;
4535        }
4536  
4537 <    for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4538 <      add_listener(i, listener_address, listener_flags);
4537 >    for (int i = (yyvsp[-2].number); i <= (yyvsp[0].number); ++i)
4538 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4539    }
4540   }
4541 + #line 4542 "conf_parser.c" /* yacc.c:1646  */
4542      break;
4543  
4544 <  case 250:
4545 < /* Line 1787 of yacc.c  */
4666 < #line 1505 "conf_parser.y"
4544 >  case 289:
4545 > #line 1637 "conf_parser.y" /* yacc.c:1646  */
4546      {
4547    if (conf_parser_ctx.pass == 2)
4548 <  {
4670 <    MyFree(listener_address);
4671 <    DupString(listener_address, yylval.string);
4672 <  }
4548 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4549   }
4550 + #line 4551 "conf_parser.c" /* yacc.c:1646  */
4551      break;
4552  
4553 <  case 251:
4554 < /* Line 1787 of yacc.c  */
4678 < #line 1514 "conf_parser.y"
4553 >  case 290:
4554 > #line 1643 "conf_parser.y" /* yacc.c:1646  */
4555      {
4556    if (conf_parser_ctx.pass == 2)
4557 <  {
4682 <    MyFree(listener_address);
4683 <    DupString(listener_address, yylval.string);
4684 <  }
4557 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4558   }
4559 + #line 4560 "conf_parser.c" /* yacc.c:1646  */
4560      break;
4561  
4562 <  case 252:
4563 < /* Line 1787 of yacc.c  */
4690 < #line 1526 "conf_parser.y"
4562 >  case 291:
4563 > #line 1652 "conf_parser.y" /* yacc.c:1646  */
4564      {
4565    if (conf_parser_ctx.pass == 2)
4566 <  {
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 <  }
4566 >    reset_block_state();
4567   }
4568 + #line 4569 "conf_parser.c" /* yacc.c:1646  */
4569      break;
4570  
4571 <  case 253:
4572 < /* Line 1787 of yacc.c  */
4707 < #line 1538 "conf_parser.y"
4571 >  case 292:
4572 > #line 1656 "conf_parser.y" /* yacc.c:1646  */
4573      {
4574 <  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)
4724 <    {
4725 <      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;
4574 >  dlink_node *ptr = NULL;
4575  
4576 <      assert(yy_tmp->user && yy_tmp->host);
4734 <
4735 <      if (yy_aconf->passwd != NULL)
4736 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4737 <      if (yy_conf->name != NULL)
4738 <        DupString(new_conf->name, yy_conf->name);
4739 <      if (yy_aconf->passwd != NULL)
4740 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4741 <
4742 <      new_aconf->flags = yy_aconf->flags;
4743 <      new_aconf->port  = yy_aconf->port;
4744 <
4745 <      DupString(new_aconf->user, yy_tmp->user);
4746 <      collapse(new_aconf->user);
4747 <
4748 <      DupString(new_aconf->host, yy_tmp->host);
4749 <      collapse(new_aconf->host);
4750 <
4751 <      conf_add_class_to_conf(new_conf, class_name);
4752 <      add_conf_by_address(CONF_CLIENT, new_aconf);
4753 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4754 <      free_collect_item(yy_tmp);
4755 <    }
4756 <
4757 <    MyFree(class_name);
4758 <    class_name = NULL;
4759 <    yy_conf = NULL;
4760 <    yy_aconf = NULL;
4761 <  }
4762 < }
4576 >  if (conf_parser_ctx.pass != 2)
4577      break;
4578  
4579 <  case 265:
4766 < /* Line 1787 of yacc.c  */
4767 < #line 1600 "conf_parser.y"
4768 <    {
4769 <  if (conf_parser_ctx.pass == 2)
4579 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4580    {
4581 <    struct CollectItem *yy_tmp = NULL;
4581 >    struct MaskItem *conf = NULL;
4582      struct split_nuh_item nuh;
4583  
4584 <    nuh.nuhmask  = yylval.string;
4584 >    nuh.nuhmask  = ptr->data;
4585      nuh.nickptr  = NULL;
4586 <    nuh.userptr  = userbuf;
4587 <    nuh.hostptr  = hostbuf;
4778 <
4586 >    nuh.userptr  = block_state.user.buf;
4587 >    nuh.hostptr  = block_state.host.buf;
4588      nuh.nicksize = 0;
4589 <    nuh.usersize = sizeof(userbuf);
4590 <    nuh.hostsize = sizeof(hostbuf);
4782 <
4589 >    nuh.usersize = sizeof(block_state.user.buf);
4590 >    nuh.hostsize = sizeof(block_state.host.buf);
4591      split_nuh(&nuh);
4592  
4593 <    if (yy_aconf->user == NULL)
4594 <    {
4595 <      DupString(yy_aconf->user, userbuf);
4788 <      DupString(yy_aconf->host, hostbuf);
4789 <    }
4790 <    else
4791 <    {
4792 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4593 >    conf        = conf_make(CONF_CLIENT);
4594 >    conf->user  = xstrdup(block_state.user.buf);
4595 >    conf->host  = xstrdup(block_state.host.buf);
4596  
4597 <      DupString(yy_tmp->user, userbuf);
4598 <      DupString(yy_tmp->host, hostbuf);
4597 >    if (block_state.rpass.buf[0])
4598 >      conf->passwd = xstrdup(block_state.rpass.buf);
4599 >    if (block_state.name.buf[0])
4600 >      conf->name = xstrdup(block_state.name.buf);
4601  
4602 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4603 <    }
4602 >    conf->flags = block_state.flags.value;
4603 >    conf->port  = block_state.port.value;
4604 >
4605 >    conf_add_class_to_conf(conf, block_state.class.buf);
4606 >    add_conf_by_address(CONF_CLIENT, conf);
4607    }
4608   }
4609 + #line 4610 "conf_parser.c" /* yacc.c:1646  */
4610      break;
4611  
4612 <  case 266:
4613 < /* Line 1787 of yacc.c  */
4805 < #line 1635 "conf_parser.y"
4612 >  case 304:
4613 > #line 1705 "conf_parser.y" /* yacc.c:1646  */
4614      {
4615    if (conf_parser_ctx.pass == 2)
4616 <  {
4617 <    /* be paranoid */
4618 <    if (yy_aconf->passwd != NULL)
4619 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4616 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4617 > }
4618 > #line 4619 "conf_parser.c" /* yacc.c:1646  */
4619 >    break;
4620  
4621 <    MyFree(yy_aconf->passwd);
4622 <    DupString(yy_aconf->passwd, yylval.string);
4623 <  }
4621 >  case 305:
4622 > #line 1711 "conf_parser.y" /* yacc.c:1646  */
4623 >    {
4624 >  if (conf_parser_ctx.pass == 2)
4625 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4626   }
4627 + #line 4628 "conf_parser.c" /* yacc.c:1646  */
4628      break;
4629  
4630 <  case 267:
4631 < /* Line 1787 of yacc.c  */
4821 < #line 1648 "conf_parser.y"
4630 >  case 306:
4631 > #line 1717 "conf_parser.y" /* yacc.c:1646  */
4632      {
4633    if (conf_parser_ctx.pass == 2)
4634 <  {
4825 <    MyFree(class_name);
4826 <    DupString(class_name, yylval.string);
4827 <  }
4634 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4635   }
4636 + #line 4637 "conf_parser.c" /* yacc.c:1646  */
4637      break;
4638  
4639 <  case 268:
4640 < /* Line 1787 of yacc.c  */
4833 < #line 1657 "conf_parser.y"
4639 >  case 307:
4640 > #line 1723 "conf_parser.y" /* yacc.c:1646  */
4641      {
4642    if (conf_parser_ctx.pass == 2)
4643    {
4644      if (yylval.number)
4645 <      SetConfEncrypted(yy_aconf);
4645 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4646      else
4647 <      ClearConfEncrypted(yy_aconf);
4647 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4648    }
4649   }
4650 + #line 4651 "conf_parser.c" /* yacc.c:1646  */
4651      break;
4652  
4653 <  case 269:
4654 < /* Line 1787 of yacc.c  */
4847 < #line 1668 "conf_parser.y"
4653 >  case 308:
4654 > #line 1734 "conf_parser.y" /* yacc.c:1646  */
4655      {
4656 +  if (conf_parser_ctx.pass == 2)
4657 +    block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4658   }
4659 + #line 4660 "conf_parser.c" /* yacc.c:1646  */
4660      break;
4661  
4662 <  case 273:
4663 < /* Line 1787 of yacc.c  */
4854 < #line 1673 "conf_parser.y"
4662 >  case 312:
4663 > #line 1741 "conf_parser.y" /* yacc.c:1646  */
4664      {
4665    if (conf_parser_ctx.pass == 2)
4666 <    yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
4666 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4667   }
4668 + #line 4669 "conf_parser.c" /* yacc.c:1646  */
4669      break;
4670  
4671 <  case 274:
4672 < /* Line 1787 of yacc.c  */
4863 < #line 1677 "conf_parser.y"
4671 >  case 313:
4672 > #line 1745 "conf_parser.y" /* yacc.c:1646  */
4673      {
4674    if (conf_parser_ctx.pass == 2)
4675 <    yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
4675 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4676   }
4677 + #line 4678 "conf_parser.c" /* yacc.c:1646  */
4678      break;
4679  
4680 <  case 275:
4681 < /* Line 1787 of yacc.c  */
4872 < #line 1681 "conf_parser.y"
4680 >  case 314:
4681 > #line 1749 "conf_parser.y" /* yacc.c:1646  */
4682      {
4683    if (conf_parser_ctx.pass == 2)
4684 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
4684 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4685   }
4686 + #line 4687 "conf_parser.c" /* yacc.c:1646  */
4687      break;
4688  
4689 <  case 276:
4690 < /* Line 1787 of yacc.c  */
4881 < #line 1685 "conf_parser.y"
4689 >  case 315:
4690 > #line 1753 "conf_parser.y" /* yacc.c:1646  */
4691      {
4692    if (conf_parser_ctx.pass == 2)
4693 <    yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
4693 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4694   }
4695 + #line 4696 "conf_parser.c" /* yacc.c:1646  */
4696      break;
4697  
4698 <  case 277:
4699 < /* Line 1787 of yacc.c  */
4890 < #line 1689 "conf_parser.y"
4698 >  case 316:
4699 > #line 1757 "conf_parser.y" /* yacc.c:1646  */
4700      {
4701    if (conf_parser_ctx.pass == 2)
4702 <    yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
4702 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4703   }
4704 + #line 4705 "conf_parser.c" /* yacc.c:1646  */
4705      break;
4706  
4707 <  case 278:
4708 < /* Line 1787 of yacc.c  */
4899 < #line 1693 "conf_parser.y"
4707 >  case 317:
4708 > #line 1761 "conf_parser.y" /* yacc.c:1646  */
4709      {
4710    if (conf_parser_ctx.pass == 2)
4711 <    yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
4711 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4712   }
4713 + #line 4714 "conf_parser.c" /* yacc.c:1646  */
4714      break;
4715  
4716 <  case 279:
4717 < /* Line 1787 of yacc.c  */
4908 < #line 1697 "conf_parser.y"
4716 >  case 318:
4717 > #line 1765 "conf_parser.y" /* yacc.c:1646  */
4718      {
4719    if (conf_parser_ctx.pass == 2)
4720 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
4720 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4721   }
4722 + #line 4723 "conf_parser.c" /* yacc.c:1646  */
4723      break;
4724  
4725 <  case 280:
4726 < /* Line 1787 of yacc.c  */
4917 < #line 1701 "conf_parser.y"
4725 >  case 319:
4726 > #line 1769 "conf_parser.y" /* yacc.c:1646  */
4727      {
4728    if (conf_parser_ctx.pass == 2)
4729 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
4729 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4730   }
4731 + #line 4732 "conf_parser.c" /* yacc.c:1646  */
4732      break;
4733  
4734 <  case 281:
4735 < /* Line 1787 of yacc.c  */
4926 < #line 1705 "conf_parser.y"
4734 >  case 320:
4735 > #line 1773 "conf_parser.y" /* yacc.c:1646  */
4736      {
4737    if (conf_parser_ctx.pass == 2)
4738 <    yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
4738 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
4739   }
4740 + #line 4741 "conf_parser.c" /* yacc.c:1646  */
4741      break;
4742  
4743 <  case 282:
4744 < /* Line 1787 of yacc.c  */
4935 < #line 1711 "conf_parser.y"
4743 >  case 321:
4744 > #line 1777 "conf_parser.y" /* yacc.c:1646  */
4745      {
4746    if (conf_parser_ctx.pass == 2)
4747 <  {
4748 <    MyFree(yy_conf->name);
4747 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4748 > }
4749 > #line 4750 "conf_parser.c" /* yacc.c:1646  */
4750 >    break;
4751  
4752 <    if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4753 <    {    
4943 <      DupString(yy_conf->name, yylval.string);
4944 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
4945 <    }
4946 <    else
4752 >  case 322:
4753 > #line 1783 "conf_parser.y" /* yacc.c:1646  */
4754      {
4755 <      ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4756 <      yy_conf->name = NULL;
4757 <    }
4755 >  if (conf_parser_ctx.pass != 2)
4756 >    break;
4757 >
4758 >  if (valid_hostname(yylval.string))
4759 >  {
4760 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4761 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4762    }
4763 +  else
4764 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4765   }
4766 + #line 4767 "conf_parser.c" /* yacc.c:1646  */
4767      break;
4768  
4769 <  case 283:
4770 < /* Line 1787 of yacc.c  */
4957 < #line 1730 "conf_parser.y"
4769 >  case 323:
4770 > #line 1797 "conf_parser.y" /* yacc.c:1646  */
4771      {
4772 <  if (conf_parser_ctx.pass == 2)
4773 <  {
4774 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4775 <    MyFree(yy_conf->name);
4776 <    DupString(yy_conf->name, yylval.string);
4964 <  }
4772 >  if (conf_parser_ctx.pass != 2)
4773 >    break;
4774 >
4775 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4776 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4777   }
4778 + #line 4779 "conf_parser.c" /* yacc.c:1646  */
4779      break;
4780  
4781 <  case 284:
4782 < /* Line 1787 of yacc.c  */
4970 < #line 1740 "conf_parser.y"
4781 >  case 324:
4782 > #line 1806 "conf_parser.y" /* yacc.c:1646  */
4783      {
4784 <  if (conf_parser_ctx.pass == 2)
4785 <  {
4786 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4787 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
4788 <  }
4784 >  if (conf_parser_ctx.pass != 2)
4785 >    break;
4786 >
4787 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4788 >  block_state.port.value = (yyvsp[-1].number);
4789   }
4790 + #line 4791 "conf_parser.c" /* yacc.c:1646  */
4791      break;
4792  
4793 <  case 285:
4794 < /* Line 1787 of yacc.c  */
4982 < #line 1753 "conf_parser.y"
4793 >  case 325:
4794 > #line 1819 "conf_parser.y" /* yacc.c:1646  */
4795      {
4796 <  if (conf_parser_ctx.pass == 2)
4797 <  {
4798 <    MyFree(resv_reason);
4799 <    resv_reason = NULL;
4800 <  }
4796 >  if (conf_parser_ctx.pass != 2)
4797 >    break;
4798 >
4799 >  reset_block_state();
4800 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4801   }
4802 + #line 4803 "conf_parser.c" /* yacc.c:1646  */
4803      break;
4804  
4805 <  case 286:
4806 < /* Line 1787 of yacc.c  */
4994 < #line 1760 "conf_parser.y"
4805 >  case 326:
4806 > #line 1826 "conf_parser.y" /* yacc.c:1646  */
4807      {
4808 <  if (conf_parser_ctx.pass == 2)
4809 <  {
4810 <    MyFree(resv_reason);
4811 <    resv_reason = NULL;
5000 <  }
4808 >  if (conf_parser_ctx.pass != 2)
4809 >    break;
4810 >
4811 >  create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4812   }
4813 + #line 4814 "conf_parser.c" /* yacc.c:1646  */
4814      break;
4815  
4816 <  case 293:
4817 < /* Line 1787 of yacc.c  */
5006 < #line 1772 "conf_parser.y"
4816 >  case 333:
4817 > #line 1837 "conf_parser.y" /* yacc.c:1646  */
4818      {
4819    if (conf_parser_ctx.pass == 2)
4820 <  {
5010 <    MyFree(resv_reason);
5011 <    DupString(resv_reason, yylval.string);
5012 <  }
4820 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4821   }
4822 + #line 4823 "conf_parser.c" /* yacc.c:1646  */
4823      break;
4824  
4825 <  case 294:
4826 < /* Line 1787 of yacc.c  */
5018 < #line 1781 "conf_parser.y"
4825 >  case 334:
4826 > #line 1843 "conf_parser.y" /* yacc.c:1646  */
4827      {
4828    if (conf_parser_ctx.pass == 2)
4829 <  {
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_ */
4829 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4830   }
4831 + #line 4832 "conf_parser.c" /* yacc.c:1646  */
4832      break;
4833  
4834 <  case 295:
4835 < /* Line 1787 of yacc.c  */
5036 < #line 1796 "conf_parser.y"
4834 >  case 335:
4835 > #line 1849 "conf_parser.y" /* yacc.c:1646  */
4836      {
4837    if (conf_parser_ctx.pass == 2)
4838 <  {
5040 <    char def_reason[] = "No reason";
5041 <
5042 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5043 <  }
4838 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4839   }
4840 + #line 4841 "conf_parser.c" /* yacc.c:1646  */
4841      break;
4842  
4843 <  case 301:
4844 < /* Line 1787 of yacc.c  */
5049 < #line 1814 "conf_parser.y"
4843 >  case 341:
4844 > #line 1864 "conf_parser.y" /* yacc.c:1646  */
4845      {
4846 <  if (conf_parser_ctx.pass == 2)
4846 >  if (conf_parser_ctx.pass != 2)
4847 >    break;
4848 >
4849 >  if (valid_servname(yylval.string))
4850    {
4851 <    if (valid_servname(yylval.string))
4852 <    {
5055 <      yy_conf = make_conf_item(SERVICE_TYPE);
5056 <      DupString(yy_conf->name, yylval.string);
5057 <    }
4851 >    struct MaskItem *conf = conf_make(CONF_SERVICE);
4852 >    conf->name = xstrdup(yylval.string);
4853    }
4854   }
4855 + #line 4856 "conf_parser.c" /* yacc.c:1646  */
4856      break;
4857  
4858 <  case 302:
4859 < /* Line 1787 of yacc.c  */
5064 < #line 1829 "conf_parser.y"
4858 >  case 342:
4859 > #line 1879 "conf_parser.y" /* yacc.c:1646  */
4860      {
4861 <  if (conf_parser_ctx.pass == 2)
4862 <  {
4863 <    yy_conf = make_conf_item(ULINE_TYPE);
4864 <    yy_match_item = map_to_conf(yy_conf);
4865 <    yy_match_item->action = SHARED_ALL;
4866 <  }
4861 >  if (conf_parser_ctx.pass != 2)
4862 >    break;
4863 >
4864 >  reset_block_state();
4865 >
4866 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4867 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
4868 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4869 >  block_state.flags.value = SHARED_ALL;
4870   }
4871 + #line 4872 "conf_parser.c" /* yacc.c:1646  */
4872      break;
4873  
4874 <  case 303:
4875 < /* Line 1787 of yacc.c  */
5077 < #line 1837 "conf_parser.y"
4874 >  case 343:
4875 > #line 1890 "conf_parser.y" /* yacc.c:1646  */
4876      {
4877 <  if (conf_parser_ctx.pass == 2)
4878 <  {
4879 <    yy_conf = NULL;
4880 <  }
4877 >  struct MaskItem *conf = NULL;
4878 >
4879 >  if (conf_parser_ctx.pass != 2)
4880 >    break;
4881 >
4882 >  conf = conf_make(CONF_ULINE);
4883 >  conf->flags = block_state.flags.value;
4884 >  conf->name = xstrdup(block_state.name.buf);
4885 >  conf->user = xstrdup(block_state.user.buf);
4886 >  conf->host = xstrdup(block_state.host.buf);
4887   }
4888 + #line 4889 "conf_parser.c" /* yacc.c:1646  */
4889      break;
4890  
4891 <  case 310:
4892 < /* Line 1787 of yacc.c  */
5088 < #line 1848 "conf_parser.y"
4891 >  case 350:
4892 > #line 1907 "conf_parser.y" /* yacc.c:1646  */
4893      {
4894    if (conf_parser_ctx.pass == 2)
4895 <  {
5092 <    MyFree(yy_conf->name);
5093 <    DupString(yy_conf->name, yylval.string);
5094 <  }
4895 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4896   }
4897 + #line 4898 "conf_parser.c" /* yacc.c:1646  */
4898      break;
4899  
4900 <  case 311:
4901 < /* Line 1787 of yacc.c  */
5100 < #line 1857 "conf_parser.y"
4900 >  case 351:
4901 > #line 1913 "conf_parser.y" /* yacc.c:1646  */
4902      {
4903    if (conf_parser_ctx.pass == 2)
4904    {
# Line 5105 | Line 4906 | yyreduce:
4906  
4907      nuh.nuhmask  = yylval.string;
4908      nuh.nickptr  = NULL;
4909 <    nuh.userptr  = userbuf;
4910 <    nuh.hostptr  = hostbuf;
4909 >    nuh.userptr  = block_state.user.buf;
4910 >    nuh.hostptr  = block_state.host.buf;
4911  
4912      nuh.nicksize = 0;
4913 <    nuh.usersize = sizeof(userbuf);
4914 <    nuh.hostsize = sizeof(hostbuf);
4913 >    nuh.usersize = sizeof(block_state.user.buf);
4914 >    nuh.hostsize = sizeof(block_state.host.buf);
4915  
4916      split_nuh(&nuh);
5116
5117    DupString(yy_match_item->user, userbuf);
5118    DupString(yy_match_item->host, hostbuf);
4917    }
4918   }
4919 + #line 4920 "conf_parser.c" /* yacc.c:1646  */
4920      break;
4921  
4922 <  case 312:
4923 < /* Line 1787 of yacc.c  */
5125 < #line 1879 "conf_parser.y"
4922 >  case 352:
4923 > #line 1932 "conf_parser.y" /* yacc.c:1646  */
4924      {
4925    if (conf_parser_ctx.pass == 2)
4926 <    yy_match_item->action = 0;
4926 >    block_state.flags.value = 0;
4927   }
4928 + #line 4929 "conf_parser.c" /* yacc.c:1646  */
4929      break;
4930  
4931 <  case 316:
4932 < /* Line 1787 of yacc.c  */
5134 < #line 1886 "conf_parser.y"
4931 >  case 356:
4932 > #line 1939 "conf_parser.y" /* yacc.c:1646  */
4933      {
4934    if (conf_parser_ctx.pass == 2)
4935 <    yy_match_item->action |= SHARED_KLINE;
4935 >    block_state.flags.value |= SHARED_KLINE;
4936   }
4937 + #line 4938 "conf_parser.c" /* yacc.c:1646  */
4938      break;
4939  
4940 <  case 317:
4941 < /* Line 1787 of yacc.c  */
5143 < #line 1890 "conf_parser.y"
4940 >  case 357:
4941 > #line 1943 "conf_parser.y" /* yacc.c:1646  */
4942      {
4943    if (conf_parser_ctx.pass == 2)
4944 <    yy_match_item->action |= SHARED_UNKLINE;
4944 >    block_state.flags.value |= SHARED_UNKLINE;
4945   }
4946 + #line 4947 "conf_parser.c" /* yacc.c:1646  */
4947      break;
4948  
4949 <  case 318:
4950 < /* Line 1787 of yacc.c  */
5152 < #line 1894 "conf_parser.y"
4949 >  case 358:
4950 > #line 1947 "conf_parser.y" /* yacc.c:1646  */
4951      {
4952    if (conf_parser_ctx.pass == 2)
4953 <    yy_match_item->action |= SHARED_DLINE;
4953 >    block_state.flags.value |= SHARED_DLINE;
4954   }
4955 + #line 4956 "conf_parser.c" /* yacc.c:1646  */
4956      break;
4957  
4958 <  case 319:
4959 < /* Line 1787 of yacc.c  */
5161 < #line 1898 "conf_parser.y"
4958 >  case 359:
4959 > #line 1951 "conf_parser.y" /* yacc.c:1646  */
4960      {
4961    if (conf_parser_ctx.pass == 2)
4962 <    yy_match_item->action |= SHARED_UNDLINE;
4962 >    block_state.flags.value |= SHARED_UNDLINE;
4963   }
4964 + #line 4965 "conf_parser.c" /* yacc.c:1646  */
4965      break;
4966  
4967 <  case 320:
4968 < /* Line 1787 of yacc.c  */
5170 < #line 1902 "conf_parser.y"
4967 >  case 360:
4968 > #line 1955 "conf_parser.y" /* yacc.c:1646  */
4969      {
4970    if (conf_parser_ctx.pass == 2)
4971 <    yy_match_item->action |= SHARED_XLINE;
4971 >    block_state.flags.value |= SHARED_XLINE;
4972   }
4973 + #line 4974 "conf_parser.c" /* yacc.c:1646  */
4974      break;
4975  
4976 <  case 321:
4977 < /* Line 1787 of yacc.c  */
5179 < #line 1906 "conf_parser.y"
4976 >  case 361:
4977 > #line 1959 "conf_parser.y" /* yacc.c:1646  */
4978      {
4979    if (conf_parser_ctx.pass == 2)
4980 <    yy_match_item->action |= SHARED_UNXLINE;
4980 >    block_state.flags.value |= SHARED_UNXLINE;
4981   }
4982 + #line 4983 "conf_parser.c" /* yacc.c:1646  */
4983      break;
4984  
4985 <  case 322:
4986 < /* Line 1787 of yacc.c  */
5188 < #line 1910 "conf_parser.y"
4985 >  case 362:
4986 > #line 1963 "conf_parser.y" /* yacc.c:1646  */
4987      {
4988    if (conf_parser_ctx.pass == 2)
4989 <    yy_match_item->action |= SHARED_RESV;
4989 >    block_state.flags.value |= SHARED_RESV;
4990   }
4991 + #line 4992 "conf_parser.c" /* yacc.c:1646  */
4992      break;
4993  
4994 <  case 323:
4995 < /* Line 1787 of yacc.c  */
5197 < #line 1914 "conf_parser.y"
4994 >  case 363:
4995 > #line 1967 "conf_parser.y" /* yacc.c:1646  */
4996      {
4997    if (conf_parser_ctx.pass == 2)
4998 <    yy_match_item->action |= SHARED_UNRESV;
4998 >    block_state.flags.value |= SHARED_UNRESV;
4999   }
5000 + #line 5001 "conf_parser.c" /* yacc.c:1646  */
5001      break;
5002  
5003 <  case 324:
5004 < /* Line 1787 of yacc.c  */
5206 < #line 1918 "conf_parser.y"
5003 >  case 364:
5004 > #line 1971 "conf_parser.y" /* yacc.c:1646  */
5005      {
5006    if (conf_parser_ctx.pass == 2)
5007 <    yy_match_item->action |= SHARED_LOCOPS;
5007 >    block_state.flags.value |= SHARED_LOCOPS;
5008   }
5009 + #line 5010 "conf_parser.c" /* yacc.c:1646  */
5010      break;
5011  
5012 <  case 325:
5013 < /* Line 1787 of yacc.c  */
5215 < #line 1922 "conf_parser.y"
5012 >  case 365:
5013 > #line 1975 "conf_parser.y" /* yacc.c:1646  */
5014      {
5015    if (conf_parser_ctx.pass == 2)
5016 <    yy_match_item->action = SHARED_ALL;
5016 >    block_state.flags.value = SHARED_ALL;
5017   }
5018 + #line 5019 "conf_parser.c" /* yacc.c:1646  */
5019      break;
5020  
5021 <  case 326:
5022 < /* Line 1787 of yacc.c  */
5224 < #line 1931 "conf_parser.y"
5021 >  case 366:
5022 > #line 1984 "conf_parser.y" /* yacc.c:1646  */
5023      {
5024 <  if (conf_parser_ctx.pass == 2)
5025 <  {
5026 <    yy_conf = make_conf_item(CLUSTER_TYPE);
5027 <    yy_conf->flags = SHARED_ALL;
5028 <  }
5024 >  if (conf_parser_ctx.pass != 2)
5025 >    break;
5026 >
5027 >  reset_block_state();
5028 >
5029 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5030 >  block_state.flags.value = SHARED_ALL;
5031   }
5032 + #line 5033 "conf_parser.c" /* yacc.c:1646  */
5033      break;
5034  
5035 <  case 327:
5036 < /* Line 1787 of yacc.c  */
5236 < #line 1938 "conf_parser.y"
5035 >  case 367:
5036 > #line 1993 "conf_parser.y" /* yacc.c:1646  */
5037      {
5038 <  if (conf_parser_ctx.pass == 2)
5039 <  {
5040 <    if (yy_conf->name == NULL)
5041 <      DupString(yy_conf->name, "*");
5042 <    yy_conf = NULL;
5043 <  }
5038 >  struct MaskItem *conf = NULL;
5039 >
5040 >  if (conf_parser_ctx.pass != 2)
5041 >    break;
5042 >
5043 >  conf = conf_make(CONF_CLUSTER);
5044 >  conf->flags = block_state.flags.value;
5045 >  conf->name = xstrdup(block_state.name.buf);
5046   }
5047 + #line 5048 "conf_parser.c" /* yacc.c:1646  */
5048      break;
5049  
5050 <  case 333:
5051 < /* Line 1787 of yacc.c  */
5249 < #line 1951 "conf_parser.y"
5050 >  case 373:
5051 > #line 2008 "conf_parser.y" /* yacc.c:1646  */
5052      {
5053    if (conf_parser_ctx.pass == 2)
5054 <    DupString(yy_conf->name, yylval.string);
5054 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5055   }
5056 + #line 5057 "conf_parser.c" /* yacc.c:1646  */
5057      break;
5058  
5059 <  case 334:
5060 < /* Line 1787 of yacc.c  */
5258 < #line 1957 "conf_parser.y"
5059 >  case 374:
5060 > #line 2014 "conf_parser.y" /* yacc.c:1646  */
5061      {
5062    if (conf_parser_ctx.pass == 2)
5063 <    yy_conf->flags = 0;
5063 >    block_state.flags.value = 0;
5064   }
5065 + #line 5066 "conf_parser.c" /* yacc.c:1646  */
5066      break;
5067  
5068 <  case 338:
5069 < /* Line 1787 of yacc.c  */
5267 < #line 1964 "conf_parser.y"
5068 >  case 378:
5069 > #line 2021 "conf_parser.y" /* yacc.c:1646  */
5070      {
5071    if (conf_parser_ctx.pass == 2)
5072 <    yy_conf->flags |= SHARED_KLINE;
5072 >    block_state.flags.value |= SHARED_KLINE;
5073   }
5074 + #line 5075 "conf_parser.c" /* yacc.c:1646  */
5075      break;
5076  
5077 <  case 339:
5078 < /* Line 1787 of yacc.c  */
5276 < #line 1968 "conf_parser.y"
5077 >  case 379:
5078 > #line 2025 "conf_parser.y" /* yacc.c:1646  */
5079      {
5080    if (conf_parser_ctx.pass == 2)
5081 <    yy_conf->flags |= SHARED_UNKLINE;
5081 >    block_state.flags.value |= SHARED_UNKLINE;
5082   }
5083 + #line 5084 "conf_parser.c" /* yacc.c:1646  */
5084      break;
5085  
5086 <  case 340:
5087 < /* Line 1787 of yacc.c  */
5285 < #line 1972 "conf_parser.y"
5086 >  case 380:
5087 > #line 2029 "conf_parser.y" /* yacc.c:1646  */
5088      {
5089    if (conf_parser_ctx.pass == 2)
5090 <    yy_conf->flags |= SHARED_DLINE;
5090 >    block_state.flags.value |= SHARED_DLINE;
5091   }
5092 + #line 5093 "conf_parser.c" /* yacc.c:1646  */
5093      break;
5094  
5095 <  case 341:
5096 < /* Line 1787 of yacc.c  */
5294 < #line 1976 "conf_parser.y"
5095 >  case 381:
5096 > #line 2033 "conf_parser.y" /* yacc.c:1646  */
5097      {
5098    if (conf_parser_ctx.pass == 2)
5099 <    yy_conf->flags |= SHARED_UNDLINE;
5099 >    block_state.flags.value |= SHARED_UNDLINE;
5100   }
5101 + #line 5102 "conf_parser.c" /* yacc.c:1646  */
5102      break;
5103  
5104 <  case 342:
5105 < /* Line 1787 of yacc.c  */
5303 < #line 1980 "conf_parser.y"
5104 >  case 382:
5105 > #line 2037 "conf_parser.y" /* yacc.c:1646  */
5106      {
5107    if (conf_parser_ctx.pass == 2)
5108 <    yy_conf->flags |= SHARED_XLINE;
5108 >    block_state.flags.value |= SHARED_XLINE;
5109   }
5110 + #line 5111 "conf_parser.c" /* yacc.c:1646  */
5111      break;
5112  
5113 <  case 343:
5114 < /* Line 1787 of yacc.c  */
5312 < #line 1984 "conf_parser.y"
5113 >  case 383:
5114 > #line 2041 "conf_parser.y" /* yacc.c:1646  */
5115      {
5116    if (conf_parser_ctx.pass == 2)
5117 <    yy_conf->flags |= SHARED_UNXLINE;
5117 >    block_state.flags.value |= SHARED_UNXLINE;
5118   }
5119 + #line 5120 "conf_parser.c" /* yacc.c:1646  */
5120      break;
5121  
5122 <  case 344:
5123 < /* Line 1787 of yacc.c  */
5321 < #line 1988 "conf_parser.y"
5122 >  case 384:
5123 > #line 2045 "conf_parser.y" /* yacc.c:1646  */
5124      {
5125    if (conf_parser_ctx.pass == 2)
5126 <    yy_conf->flags |= SHARED_RESV;
5126 >    block_state.flags.value |= SHARED_RESV;
5127   }
5128 + #line 5129 "conf_parser.c" /* yacc.c:1646  */
5129      break;
5130  
5131 <  case 345:
5132 < /* Line 1787 of yacc.c  */
5330 < #line 1992 "conf_parser.y"
5131 >  case 385:
5132 > #line 2049 "conf_parser.y" /* yacc.c:1646  */
5133      {
5134    if (conf_parser_ctx.pass == 2)
5135 <    yy_conf->flags |= SHARED_UNRESV;
5135 >    block_state.flags.value |= SHARED_UNRESV;
5136   }
5137 + #line 5138 "conf_parser.c" /* yacc.c:1646  */
5138      break;
5139  
5140 <  case 346:
5141 < /* Line 1787 of yacc.c  */
5339 < #line 1996 "conf_parser.y"
5140 >  case 386:
5141 > #line 2053 "conf_parser.y" /* yacc.c:1646  */
5142      {
5143    if (conf_parser_ctx.pass == 2)
5144 <    yy_conf->flags |= SHARED_LOCOPS;
5144 >    block_state.flags.value |= SHARED_LOCOPS;
5145   }
5146 + #line 5147 "conf_parser.c" /* yacc.c:1646  */
5147      break;
5148  
5149 <  case 347:
5150 < /* Line 1787 of yacc.c  */
5348 < #line 2000 "conf_parser.y"
5149 >  case 387:
5150 > #line 2057 "conf_parser.y" /* yacc.c:1646  */
5151      {
5152    if (conf_parser_ctx.pass == 2)
5153 <    yy_conf->flags = SHARED_ALL;
5153 >    block_state.flags.value = SHARED_ALL;
5154   }
5155 + #line 5156 "conf_parser.c" /* yacc.c:1646  */
5156      break;
5157  
5158 <  case 348:
5159 < /* Line 1787 of yacc.c  */
5357 < #line 2009 "conf_parser.y"
5158 >  case 388:
5159 > #line 2066 "conf_parser.y" /* yacc.c:1646  */
5160      {
5359  if (conf_parser_ctx.pass == 2)
5360  {
5361    yy_conf = make_conf_item(SERVER_TYPE);
5362    yy_aconf = map_to_conf(yy_conf);
5161  
5162 <    /* defaults */
5163 <    yy_aconf->port = PORTNUM;
5164 <  }
5165 <  else
5166 <  {
5167 <    MyFree(class_name);
5370 <    class_name = NULL;
5371 <  }
5162 >  if (conf_parser_ctx.pass != 2)
5163 >    break;
5164 >
5165 >  reset_block_state();
5166 >  block_state.aftype.value = AF_INET;
5167 >  block_state.port.value = PORTNUM;
5168   }
5169 + #line 5170 "conf_parser.c" /* yacc.c:1646  */
5170      break;
5171  
5172 <  case 349:
5173 < /* Line 1787 of yacc.c  */
5377 < #line 2024 "conf_parser.y"
5172 >  case 389:
5173 > #line 2075 "conf_parser.y" /* yacc.c:1646  */
5174      {
5175 <  if (conf_parser_ctx.pass == 2)
5175 >  struct MaskItem *conf = NULL;
5176 >  struct addrinfo hints, *res;
5177 >
5178 >  if (conf_parser_ctx.pass != 2)
5179 >    break;
5180 >
5181 >  if (!block_state.name.buf[0] ||
5182 >      !block_state.host.buf[0])
5183 >    break;
5184 >
5185 >  if (!block_state.rpass.buf[0] ||
5186 >      !block_state.spass.buf[0])
5187 >    break;
5188 >
5189 >  if (has_wildcards(block_state.name.buf) ||
5190 >      has_wildcards(block_state.host.buf))
5191 >    break;
5192 >
5193 >  conf = conf_make(CONF_SERVER);
5194 >  conf->port = block_state.port.value;
5195 >  conf->flags = block_state.flags.value;
5196 >  conf->aftype = block_state.aftype.value;
5197 >  conf->host = xstrdup(block_state.host.buf);
5198 >  conf->name = xstrdup(block_state.name.buf);
5199 >  conf->passwd = xstrdup(block_state.rpass.buf);
5200 >  conf->spasswd = xstrdup(block_state.spass.buf);
5201 >
5202 >  if (block_state.cert.buf[0])
5203 >    conf->certfp = xstrdup(block_state.cert.buf);
5204 >
5205 >  if (block_state.ciph.buf[0])
5206 >    conf->cipher_list = xstrdup(block_state.ciph.buf);
5207 >
5208 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5209 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5210 >
5211 >  if (block_state.bind.buf[0])
5212    {
5213 <    if (yy_aconf->host && yy_aconf->passwd && yy_aconf->spasswd)
5214 <    {
5215 <      if (conf_add_server(yy_conf, class_name) == -1)
5216 <        delete_conf_item(yy_conf);
5217 <    }
5213 >    memset(&hints, 0, sizeof(hints));
5214 >
5215 >    hints.ai_family   = AF_UNSPEC;
5216 >    hints.ai_socktype = SOCK_STREAM;
5217 >    hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5218 >
5219 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5220 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5221      else
5222      {
5223 <      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 <      }
5223 >      assert(res);
5224  
5225 <      /* XXX
5226 <       * This fixes a try_connections() core (caused by invalid class_ptr
5227 <       * pointers) reported by metalrock. That's an ugly fix, but there
5228 <       * 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);
5225 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5226 >      conf->bind.ss.ss_family = res->ai_family;
5227 >      conf->bind.ss_len = res->ai_addrlen;
5228 >      freeaddrinfo(res);
5229      }
5405
5406    MyFree(class_name);
5407    class_name = NULL;
5408    yy_conf = NULL;
5409    yy_aconf = NULL;
5230    }
5231 +
5232 +  conf_add_class_to_conf(conf, block_state.class.buf);
5233 +  lookup_confhost(conf);
5234   }
5235 + #line 5236 "conf_parser.c" /* yacc.c:1646  */
5236      break;
5237  
5238 <  case 366:
5239 < /* Line 1787 of yacc.c  */
5416 < #line 2068 "conf_parser.y"
5238 >  case 407:
5239 > #line 2155 "conf_parser.y" /* yacc.c:1646  */
5240      {
5241    if (conf_parser_ctx.pass == 2)
5242 <  {
5420 <    MyFree(yy_conf->name);
5421 <    DupString(yy_conf->name, yylval.string);
5422 <  }
5242 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5243   }
5244 + #line 5245 "conf_parser.c" /* yacc.c:1646  */
5245      break;
5246  
5247 <  case 367:
5248 < /* Line 1787 of yacc.c  */
5428 < #line 2077 "conf_parser.y"
5247 >  case 408:
5248 > #line 2161 "conf_parser.y" /* yacc.c:1646  */
5249      {
5250    if (conf_parser_ctx.pass == 2)
5251 <  {
5432 <    MyFree(yy_aconf->host);
5433 <    DupString(yy_aconf->host, yylval.string);
5434 <  }
5251 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5252   }
5253 + #line 5254 "conf_parser.c" /* yacc.c:1646  */
5254      break;
5255  
5256 <  case 368:
5257 < /* Line 1787 of yacc.c  */
5440 < #line 2086 "conf_parser.y"
5256 >  case 409:
5257 > #line 2167 "conf_parser.y" /* yacc.c:1646  */
5258      {
5259    if (conf_parser_ctx.pass == 2)
5260 <  {
5261 <    struct addrinfo hints, *res;
5262 <
5263 <    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;
5260 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5261 > }
5262 > #line 5263 "conf_parser.c" /* yacc.c:1646  */
5263 >    break;
5264  
5265 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
5266 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
5454 <    else
5265 >  case 410:
5266 > #line 2173 "conf_parser.y" /* yacc.c:1646  */
5267      {
5268 <      assert(res != NULL);
5268 >  if (conf_parser_ctx.pass != 2)
5269 >    break;
5270  
5271 <      memcpy(&yy_aconf->bind, res->ai_addr, res->ai_addrlen);
5272 <      yy_aconf->bind.ss.ss_family = res->ai_family;
5273 <      yy_aconf->bind.ss_len = res->ai_addrlen;
5274 <      freeaddrinfo(res);
5275 <    }
5276 <  }
5271 >  if ((yyvsp[-1].string)[0] == ':')
5272 >    conf_error_report("Server passwords cannot begin with a colon");
5273 >  else if (strchr((yyvsp[-1].string), ' '))
5274 >    conf_error_report("Server passwords cannot contain spaces");
5275 >  else
5276 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5277   }
5278 + #line 5279 "conf_parser.c" /* yacc.c:1646  */
5279      break;
5280  
5281 <  case 369:
5282 < /* Line 1787 of yacc.c  */
5469 < #line 2112 "conf_parser.y"
5281 >  case 411:
5282 > #line 2186 "conf_parser.y" /* yacc.c:1646  */
5283      {
5284 <  if (conf_parser_ctx.pass == 2)
5285 <  {
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));
5284 >  if (conf_parser_ctx.pass != 2)
5285 >    break;
5286  
5287 <      MyFree(yy_aconf->spasswd);
5288 <      DupString(yy_aconf->spasswd, yylval.string);
5289 <    }
5290 <  }
5287 >  if ((yyvsp[-1].string)[0] == ':')
5288 >    conf_error_report("Server passwords cannot begin with a colon");
5289 >  else if (strchr((yyvsp[-1].string), ' '))
5290 >    conf_error_report("Server passwords cannot contain spaces");
5291 >  else
5292 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5293   }
5294 + #line 5295 "conf_parser.c" /* yacc.c:1646  */
5295      break;
5296  
5297 <  case 370:
5298 < /* Line 1787 of yacc.c  */
5490 < #line 2130 "conf_parser.y"
5297 >  case 412:
5298 > #line 2199 "conf_parser.y" /* yacc.c:1646  */
5299      {
5300    if (conf_parser_ctx.pass == 2)
5301 <  {
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 <  }
5301 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5302   }
5303 + #line 5304 "conf_parser.c" /* yacc.c:1646  */
5304      break;
5305  
5306 <  case 371:
5307 < /* Line 1787 of yacc.c  */
5511 < #line 2148 "conf_parser.y"
5306 >  case 413:
5307 > #line 2205 "conf_parser.y" /* yacc.c:1646  */
5308      {
5309    if (conf_parser_ctx.pass == 2)
5310 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5310 >    block_state.port.value = (yyvsp[-1].number);
5311   }
5312 + #line 5313 "conf_parser.c" /* yacc.c:1646  */
5313      break;
5314  
5315 <  case 372:
5316 < /* Line 1787 of yacc.c  */
5520 < #line 2154 "conf_parser.y"
5315 >  case 414:
5316 > #line 2211 "conf_parser.y" /* yacc.c:1646  */
5317      {
5318    if (conf_parser_ctx.pass == 2)
5319 <    yy_aconf->aftype = AF_INET;
5319 >    block_state.aftype.value = AF_INET;
5320   }
5321 + #line 5322 "conf_parser.c" /* yacc.c:1646  */
5322      break;
5323  
5324 <  case 373:
5325 < /* Line 1787 of yacc.c  */
5529 < #line 2158 "conf_parser.y"
5324 >  case 415:
5325 > #line 2215 "conf_parser.y" /* yacc.c:1646  */
5326      {
5327   #ifdef IPV6
5328    if (conf_parser_ctx.pass == 2)
5329 <    yy_aconf->aftype = AF_INET6;
5329 >    block_state.aftype.value = AF_INET6;
5330   #endif
5331   }
5332 + #line 5333 "conf_parser.c" /* yacc.c:1646  */
5333      break;
5334  
5335 <  case 374:
5336 < /* Line 1787 of yacc.c  */
5540 < #line 2166 "conf_parser.y"
5335 >  case 416:
5336 > #line 2223 "conf_parser.y" /* yacc.c:1646  */
5337      {
5338 +  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5339   }
5340 + #line 5341 "conf_parser.c" /* yacc.c:1646  */
5341      break;
5342  
5343 <  case 378:
5344 < /* Line 1787 of yacc.c  */
5547 < #line 2171 "conf_parser.y"
5343 >  case 420:
5344 > #line 2229 "conf_parser.y" /* yacc.c:1646  */
5345      {
5346    if (conf_parser_ctx.pass == 2)
5347 <    SetConfAllowAutoConn(yy_aconf);
5347 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5348   }
5349 + #line 5350 "conf_parser.c" /* yacc.c:1646  */
5350      break;
5351  
5352 <  case 379:
5353 < /* Line 1787 of yacc.c  */
5556 < #line 2175 "conf_parser.y"
5352 >  case 421:
5353 > #line 2233 "conf_parser.y" /* yacc.c:1646  */
5354      {
5355    if (conf_parser_ctx.pass == 2)
5356 <    SetConfSSL(yy_aconf);
5356 >    block_state.flags.value |= CONF_FLAGS_SSL;
5357   }
5358 + #line 5359 "conf_parser.c" /* yacc.c:1646  */
5359      break;
5360  
5361 <  case 380:
5362 < /* Line 1787 of yacc.c  */
5565 < #line 2181 "conf_parser.y"
5361 >  case 422:
5362 > #line 2239 "conf_parser.y" /* yacc.c:1646  */
5363      {
5364    if (conf_parser_ctx.pass == 2)
5365    {
5366      if (yylval.number)
5367 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
5367 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5368      else
5369 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
5369 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5370    }
5371   }
5372 + #line 5373 "conf_parser.c" /* yacc.c:1646  */
5373      break;
5374  
5375 <  case 381:
5376 < /* Line 1787 of yacc.c  */
5579 < #line 2192 "conf_parser.y"
5375 >  case 423:
5376 > #line 2250 "conf_parser.y" /* yacc.c:1646  */
5377      {
5378    if (conf_parser_ctx.pass == 2)
5379 <  {
5583 <    char *mask;
5584 <
5585 <    DupString(mask, yylval.string);
5586 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->hub_list);
5587 <  }
5379 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5380   }
5381 + #line 5382 "conf_parser.c" /* yacc.c:1646  */
5382      break;
5383  
5384 <  case 382:
5385 < /* Line 1787 of yacc.c  */
5593 < #line 2203 "conf_parser.y"
5384 >  case 424:
5385 > #line 2256 "conf_parser.y" /* yacc.c:1646  */
5386      {
5387    if (conf_parser_ctx.pass == 2)
5388 <  {
5597 <    char *mask;
5598 <
5599 <    DupString(mask, yylval.string);
5600 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->leaf_list);
5601 <  }
5388 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5389   }
5390 + #line 5391 "conf_parser.c" /* yacc.c:1646  */
5391      break;
5392  
5393 <  case 383:
5394 < /* Line 1787 of yacc.c  */
5607 < #line 2214 "conf_parser.y"
5393 >  case 425:
5394 > #line 2262 "conf_parser.y" /* yacc.c:1646  */
5395      {
5396    if (conf_parser_ctx.pass == 2)
5397 <  {
5611 <    MyFree(class_name);
5612 <    DupString(class_name, yylval.string);
5613 <  }
5397 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5398   }
5399 + #line 5400 "conf_parser.c" /* yacc.c:1646  */
5400      break;
5401  
5402 <  case 384:
5403 < /* Line 1787 of yacc.c  */
5619 < #line 2223 "conf_parser.y"
5402 >  case 426:
5403 > #line 2268 "conf_parser.y" /* yacc.c:1646  */
5404      {
5405   #ifdef HAVE_LIBCRYPTO
5406    if (conf_parser_ctx.pass == 2)
5407 <  {
5624 <    MyFree(yy_aconf->cipher_list);
5625 <    DupString(yy_aconf->cipher_list, yylval.string);
5626 <  }
5407 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5408   #else
5409    if (conf_parser_ctx.pass == 2)
5410 <    yyerror("Ignoring connect::ciphers -- no OpenSSL support");
5410 >    conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5411   #endif
5412   }
5413 + #line 5414 "conf_parser.c" /* yacc.c:1646  */
5414      break;
5415  
5416 <  case 385:
5417 < /* Line 1787 of yacc.c  */
5636 < #line 2241 "conf_parser.y"
5416 >  case 427:
5417 > #line 2283 "conf_parser.y" /* yacc.c:1646  */
5418      {
5419    if (conf_parser_ctx.pass == 2)
5420 <  {
5640 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
5641 <    regex_ban = 0;
5642 <  }
5420 >    reset_block_state();
5421   }
5422 + #line 5423 "conf_parser.c" /* yacc.c:1646  */
5423      break;
5424  
5425 <  case 386:
5426 < /* 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])
5425 >  case 428:
5426 > #line 2287 "conf_parser.y" /* yacc.c:1646  */
5427      {
5428 <      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;
5672 <
5673 <        DupString(yy_aconf->user, userbuf);
5674 <        DupString(yy_aconf->host, hostbuf);
5675 <
5676 <        if (reasonbuf[0])
5677 <          DupString(yy_aconf->reason, reasonbuf);
5678 <        else
5679 <          DupString(yy_aconf->reason, "No reason");
5680 < #else
5681 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
5682 <        break;
5683 < #endif
5684 <      }
5685 <      else
5686 <      {
5687 <        find_and_delete_temporary(userbuf, hostbuf, CONF_KLINE);
5688 <
5689 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
5690 <
5691 <        DupString(yy_aconf->user, userbuf);
5692 <        DupString(yy_aconf->host, hostbuf);
5693 <
5694 <        if (reasonbuf[0])
5695 <          DupString(yy_aconf->reason, reasonbuf);
5696 <        else
5697 <          DupString(yy_aconf->reason, "No reason");
5698 <        add_conf_by_address(CONF_KLINE, yy_aconf);
5699 <      }
5700 <    }
5428 >  struct MaskItem *conf = NULL;
5429  
5430 <    yy_aconf = NULL;
5703 <  }
5704 < }
5430 >  if (conf_parser_ctx.pass != 2)
5431      break;
5432  
5433 <  case 387:
5434 < /* Line 1787 of yacc.c  */
5709 < #line 2306 "conf_parser.y"
5710 <    {
5711 < }
5433 >  if (!block_state.user.buf[0] ||
5434 >      !block_state.host.buf[0])
5435      break;
5436  
5437 <  case 391:
5438 < /* Line 1787 of yacc.c  */
5439 < #line 2311 "conf_parser.y"
5440 <    {
5441 <  if (conf_parser_ctx.pass == 2)
5442 <    regex_ban = 1;
5437 >  conf = conf_make(CONF_KLINE);
5438 >  conf->user = xstrdup(block_state.user.buf);
5439 >  conf->host = xstrdup(block_state.host.buf);
5440 >
5441 >  if (block_state.rpass.buf[0])
5442 >    conf->reason = xstrdup(block_state.rpass.buf);
5443 >  else
5444 >    conf->reason = xstrdup(CONF_NOREASON);
5445 >  add_conf_by_address(CONF_KLINE, conf);
5446   }
5447 + #line 5448 "conf_parser.c" /* yacc.c:1646  */
5448      break;
5449  
5450 <  case 398:
5451 < /* Line 1787 of yacc.c  */
5725 < #line 2320 "conf_parser.y"
5450 >  case 434:
5451 > #line 2312 "conf_parser.y" /* yacc.c:1646  */
5452      {
5453 +
5454    if (conf_parser_ctx.pass == 2)
5455    {
5456      struct split_nuh_item nuh;
5457  
5458      nuh.nuhmask  = yylval.string;
5459      nuh.nickptr  = NULL;
5460 <    nuh.userptr  = userbuf;
5461 <    nuh.hostptr  = hostbuf;
5460 >    nuh.userptr  = block_state.user.buf;
5461 >    nuh.hostptr  = block_state.host.buf;
5462  
5463      nuh.nicksize = 0;
5464 <    nuh.usersize = sizeof(userbuf);
5465 <    nuh.hostsize = sizeof(hostbuf);
5464 >    nuh.usersize = sizeof(block_state.user.buf);
5465 >    nuh.hostsize = sizeof(block_state.host.buf);
5466  
5467      split_nuh(&nuh);
5468    }
5469   }
5470 + #line 5471 "conf_parser.c" /* yacc.c:1646  */
5471      break;
5472  
5473 <  case 399:
5474 < /* Line 1787 of yacc.c  */
5747 < #line 2339 "conf_parser.y"
5473 >  case 435:
5474 > #line 2332 "conf_parser.y" /* yacc.c:1646  */
5475      {
5476    if (conf_parser_ctx.pass == 2)
5477 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5477 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5478   }
5479 + #line 5480 "conf_parser.c" /* yacc.c:1646  */
5480      break;
5481  
5482 <  case 400:
5483 < /* Line 1787 of yacc.c  */
5756 < #line 2348 "conf_parser.y"
5482 >  case 436:
5483 > #line 2341 "conf_parser.y" /* yacc.c:1646  */
5484      {
5485    if (conf_parser_ctx.pass == 2)
5486 <    hostbuf[0] = reasonbuf[0] = '\0';
5486 >    reset_block_state();
5487   }
5488 + #line 5489 "conf_parser.c" /* yacc.c:1646  */
5489      break;
5490  
5491 <  case 401:
5492 < /* 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)
5491 >  case 437:
5492 > #line 2345 "conf_parser.y" /* yacc.c:1646  */
5493      {
5494 <      find_and_delete_temporary(NULL, hostbuf, CONF_DLINE);
5494 >  struct MaskItem *conf = NULL;
5495  
5496 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
5497 <      DupString(yy_aconf->host, hostbuf);
5496 >  if (conf_parser_ctx.pass != 2)
5497 >    break;
5498  
5499 <      if (reasonbuf[0])
5500 <        DupString(yy_aconf->reason, reasonbuf);
5501 <      else
5502 <        DupString(yy_aconf->reason, "No reason");
5503 <      add_conf_by_address(CONF_DLINE, yy_aconf);
5504 <      yy_aconf = NULL;
5505 <    }
5499 >  if (!block_state.addr.buf[0])
5500 >    break;
5501 >
5502 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5503 >  {
5504 >    conf = conf_make(CONF_DLINE);
5505 >    conf->host = xstrdup(block_state.addr.buf);
5506 >
5507 >    if (block_state.rpass.buf[0])
5508 >      conf->reason = xstrdup(block_state.rpass.buf);
5509 >    else
5510 >      conf->reason = xstrdup(CONF_NOREASON);
5511 >    add_conf_by_address(CONF_DLINE, conf);
5512    }
5513   }
5514 + #line 5515 "conf_parser.c" /* yacc.c:1646  */
5515      break;
5516  
5517 <  case 407:
5518 < /* Line 1787 of yacc.c  */
5789 < #line 2376 "conf_parser.y"
5517 >  case 443:
5518 > #line 2371 "conf_parser.y" /* yacc.c:1646  */
5519      {
5520    if (conf_parser_ctx.pass == 2)
5521 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5521 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5522   }
5523 + #line 5524 "conf_parser.c" /* yacc.c:1646  */
5524      break;
5525  
5526 <  case 408:
5527 < /* Line 1787 of yacc.c  */
5798 < #line 2382 "conf_parser.y"
5526 >  case 444:
5527 > #line 2377 "conf_parser.y" /* yacc.c:1646  */
5528      {
5529    if (conf_parser_ctx.pass == 2)
5530 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5530 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5531   }
5532 + #line 5533 "conf_parser.c" /* yacc.c:1646  */
5533      break;
5534  
5535 <  case 414:
5536 < /* Line 1787 of yacc.c  */
5807 < #line 2396 "conf_parser.y"
5535 >  case 450:
5536 > #line 2391 "conf_parser.y" /* yacc.c:1646  */
5537      {
5538    if (conf_parser_ctx.pass == 2)
5539    {
5540      if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5541      {
5542 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5543 <      DupString(yy_aconf->host, yylval.string);
5542 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5543 >      conf->host = xstrdup(yylval.string);
5544  
5545 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
5817 <      yy_aconf = NULL;
5545 >      add_conf_by_address(CONF_EXEMPT, conf);
5546      }
5547    }
5548   }
5549 + #line 5550 "conf_parser.c" /* yacc.c:1646  */
5550      break;
5551  
5552 <  case 415:
5553 < /* Line 1787 of yacc.c  */
5825 < #line 2414 "conf_parser.y"
5552 >  case 451:
5553 > #line 2408 "conf_parser.y" /* yacc.c:1646  */
5554      {
5555    if (conf_parser_ctx.pass == 2)
5556 <  {
5829 <    regex_ban = 0;
5830 <    reasonbuf[0] = gecos_name[0] = '\0';
5831 <  }
5556 >    reset_block_state();
5557   }
5558 + #line 5559 "conf_parser.c" /* yacc.c:1646  */
5559      break;
5560  
5561 <  case 416:
5562 < /* Line 1787 of yacc.c  */
5837 < #line 2421 "conf_parser.y"
5561 >  case 452:
5562 > #line 2412 "conf_parser.y" /* yacc.c:1646  */
5563      {
5564 <  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;
5564 >  struct MaskItem *conf = NULL;
5565  
5566 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
5567 <        {
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);
5566 >  if (conf_parser_ctx.pass != 2)
5567 >    break;
5568  
5569 <      if (reasonbuf[0])
5870 <        DupString(yy_match_item->reason, reasonbuf);
5871 <      else
5872 <        DupString(yy_match_item->reason, "No reason");
5873 <    }
5874 <  }
5875 < }
5569 >  if (!block_state.name.buf[0])
5570      break;
5571  
5572 <  case 417:
5573 < /* Line 1787 of yacc.c  */
5574 < #line 2461 "conf_parser.y"
5575 <    {
5572 >  conf = conf_make(CONF_XLINE);
5573 >  conf->name = xstrdup(block_state.name.buf);
5574 >
5575 >  if (block_state.rpass.buf[0])
5576 >    conf->reason = xstrdup(block_state.rpass.buf);
5577 >  else
5578 >    conf->reason = xstrdup(CONF_NOREASON);
5579   }
5580 + #line 5581 "conf_parser.c" /* yacc.c:1646  */
5581      break;
5582  
5583 <  case 421:
5584 < /* Line 1787 of yacc.c  */
5887 < #line 2466 "conf_parser.y"
5583 >  case 458:
5584 > #line 2434 "conf_parser.y" /* yacc.c:1646  */
5585      {
5586    if (conf_parser_ctx.pass == 2)
5587 <    regex_ban = 1;
5587 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5588   }
5589 + #line 5590 "conf_parser.c" /* yacc.c:1646  */
5590      break;
5591  
5592 <  case 428:
5593 < /* Line 1787 of yacc.c  */
5896 < #line 2475 "conf_parser.y"
5592 >  case 459:
5593 > #line 2440 "conf_parser.y" /* yacc.c:1646  */
5594      {
5595    if (conf_parser_ctx.pass == 2)
5596 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5596 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5597   }
5598 + #line 5599 "conf_parser.c" /* yacc.c:1646  */
5599      break;
5600  
5601 <  case 429:
5602 < /* Line 1787 of yacc.c  */
5905 < #line 2481 "conf_parser.y"
5601 >  case 513:
5602 > #line 2505 "conf_parser.y" /* yacc.c:1646  */
5603      {
5604 <  if (conf_parser_ctx.pass == 2)
5908 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5604 >  ConfigFileEntry.max_watch = (yyvsp[-1].number);
5605   }
5606 + #line 5607 "conf_parser.c" /* yacc.c:1646  */
5607      break;
5608  
5609 <  case 483:
5610 < /* Line 1787 of yacc.c  */
5914 < #line 2526 "conf_parser.y"
5609 >  case 514:
5610 > #line 2510 "conf_parser.y" /* yacc.c:1646  */
5611      {
5612 <  ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5612 >  if (conf_parser_ctx.pass == 2)
5613 >    ConfigFileEntry.cycle_on_host_change = yylval.number;
5614   }
5615 + #line 5616 "conf_parser.c" /* yacc.c:1646  */
5616      break;
5617  
5618 <  case 484:
5619 < /* Line 1787 of yacc.c  */
5922 < #line 2531 "conf_parser.y"
5618 >  case 515:
5619 > #line 2516 "conf_parser.y" /* yacc.c:1646  */
5620      {
5621    if (conf_parser_ctx.pass == 2)
5622      ConfigFileEntry.glines = yylval.number;
5623   }
5624 + #line 5625 "conf_parser.c" /* yacc.c:1646  */
5625      break;
5626  
5627 <  case 485:
5628 < /* Line 1787 of yacc.c  */
5931 < #line 2537 "conf_parser.y"
5627 >  case 516:
5628 > #line 2522 "conf_parser.y" /* yacc.c:1646  */
5629      {
5630    if (conf_parser_ctx.pass == 2)
5631 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5631 >    ConfigFileEntry.gline_time = (yyvsp[-1].number);
5632   }
5633 + #line 5634 "conf_parser.c" /* yacc.c:1646  */
5634      break;
5635  
5636 <  case 486:
5637 < /* Line 1787 of yacc.c  */
5940 < #line 2543 "conf_parser.y"
5636 >  case 517:
5637 > #line 2528 "conf_parser.y" /* yacc.c:1646  */
5638      {
5639    if (conf_parser_ctx.pass == 2)
5640 <    ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5640 >    ConfigFileEntry.gline_request_time = (yyvsp[-1].number);
5641   }
5642 + #line 5643 "conf_parser.c" /* yacc.c:1646  */
5643      break;
5644  
5645 <  case 487:
5646 < /* Line 1787 of yacc.c  */
5949 < #line 2549 "conf_parser.y"
5645 >  case 518:
5646 > #line 2534 "conf_parser.y" /* yacc.c:1646  */
5647      {
5648 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5648 >  ConfigFileEntry.gline_min_cidr = (yyvsp[-1].number);
5649   }
5650 + #line 5651 "conf_parser.c" /* yacc.c:1646  */
5651      break;
5652  
5653 <  case 488:
5654 < /* Line 1787 of yacc.c  */
5957 < #line 2554 "conf_parser.y"
5653 >  case 519:
5654 > #line 2539 "conf_parser.y" /* yacc.c:1646  */
5655      {
5656 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5656 >  ConfigFileEntry.gline_min_cidr6 = (yyvsp[-1].number);
5657   }
5658 + #line 5659 "conf_parser.c" /* yacc.c:1646  */
5659      break;
5660  
5661 <  case 489:
5662 < /* Line 1787 of yacc.c  */
5965 < #line 2559 "conf_parser.y"
5661 >  case 520:
5662 > #line 2544 "conf_parser.y" /* yacc.c:1646  */
5663      {
5664    ConfigFileEntry.tkline_expire_notices = yylval.number;
5665   }
5666 + #line 5667 "conf_parser.c" /* yacc.c:1646  */
5667      break;
5668  
5669 <  case 490:
5670 < /* Line 1787 of yacc.c  */
5973 < #line 2564 "conf_parser.y"
5669 >  case 521:
5670 > #line 2549 "conf_parser.y" /* yacc.c:1646  */
5671      {
5672 <  ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5672 >  ConfigFileEntry.kill_chase_time_limit = (yyvsp[-1].number);
5673   }
5674 + #line 5675 "conf_parser.c" /* yacc.c:1646  */
5675      break;
5676  
5677 <  case 491:
5678 < /* Line 1787 of yacc.c  */
5981 < #line 2569 "conf_parser.y"
5677 >  case 522:
5678 > #line 2554 "conf_parser.y" /* yacc.c:1646  */
5679      {
5680    ConfigFileEntry.hide_spoof_ips = yylval.number;
5681   }
5682 + #line 5683 "conf_parser.c" /* yacc.c:1646  */
5683      break;
5684  
5685 <  case 492:
5686 < /* Line 1787 of yacc.c  */
5989 < #line 2574 "conf_parser.y"
5685 >  case 523:
5686 > #line 2559 "conf_parser.y" /* yacc.c:1646  */
5687      {
5688    ConfigFileEntry.ignore_bogus_ts = yylval.number;
5689   }
5690 + #line 5691 "conf_parser.c" /* yacc.c:1646  */
5691      break;
5692  
5693 <  case 493:
5694 < /* 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"
5693 >  case 524:
5694 > #line 2564 "conf_parser.y" /* yacc.c:1646  */
5695      {
5696    ConfigFileEntry.failed_oper_notice = yylval.number;
5697   }
5698 + #line 5699 "conf_parser.c" /* yacc.c:1646  */
5699      break;
5700  
5701 <  case 495:
5702 < /* Line 1787 of yacc.c  */
6013 < #line 2589 "conf_parser.y"
5701 >  case 525:
5702 > #line 2569 "conf_parser.y" /* yacc.c:1646  */
5703      {
5704    ConfigFileEntry.anti_nick_flood = yylval.number;
5705   }
5706 + #line 5707 "conf_parser.c" /* yacc.c:1646  */
5707      break;
5708  
5709 <  case 496:
5710 < /* Line 1787 of yacc.c  */
6021 < #line 2594 "conf_parser.y"
5709 >  case 526:
5710 > #line 2574 "conf_parser.y" /* yacc.c:1646  */
5711      {
5712 <  ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5712 >  ConfigFileEntry.max_nick_time = (yyvsp[-1].number);
5713   }
5714 + #line 5715 "conf_parser.c" /* yacc.c:1646  */
5715      break;
5716  
5717 <  case 497:
5718 < /* Line 1787 of yacc.c  */
6029 < #line 2599 "conf_parser.y"
5717 >  case 527:
5718 > #line 2579 "conf_parser.y" /* yacc.c:1646  */
5719      {
5720 <  ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5720 >  ConfigFileEntry.max_nick_changes = (yyvsp[-1].number);
5721   }
5722 + #line 5723 "conf_parser.c" /* yacc.c:1646  */
5723      break;
5724  
5725 <  case 498:
5726 < /* Line 1787 of yacc.c  */
6037 < #line 2604 "conf_parser.y"
5725 >  case 528:
5726 > #line 2584 "conf_parser.y" /* yacc.c:1646  */
5727      {
5728 <  ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5728 >  ConfigFileEntry.max_accept = (yyvsp[-1].number);
5729   }
5730 + #line 5731 "conf_parser.c" /* yacc.c:1646  */
5731      break;
5732  
5733 <  case 499:
5734 < /* Line 1787 of yacc.c  */
6045 < #line 2609 "conf_parser.y"
5733 >  case 529:
5734 > #line 2589 "conf_parser.y" /* yacc.c:1646  */
5735      {
5736 <  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5736 >  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[-1].number);
5737   }
5738 + #line 5739 "conf_parser.c" /* yacc.c:1646  */
5739      break;
5740  
5741 <  case 500:
5742 < /* Line 1787 of yacc.c  */
6053 < #line 2614 "conf_parser.y"
5741 >  case 530:
5742 > #line 2594 "conf_parser.y" /* yacc.c:1646  */
5743      {
5744 <  ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5744 >  ConfigFileEntry.ts_warn_delta = (yyvsp[-1].number);
5745   }
5746 + #line 5747 "conf_parser.c" /* yacc.c:1646  */
5747      break;
5748  
5749 <  case 501:
5750 < /* Line 1787 of yacc.c  */
6061 < #line 2619 "conf_parser.y"
5749 >  case 531:
5750 > #line 2599 "conf_parser.y" /* yacc.c:1646  */
5751      {
5752    if (conf_parser_ctx.pass == 2)
5753 <    ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5753 >    ConfigFileEntry.ts_max_delta = (yyvsp[-1].number);
5754   }
5755 + #line 5756 "conf_parser.c" /* yacc.c:1646  */
5756      break;
5757  
5758 <  case 502:
5759 < /* Line 1787 of yacc.c  */
6070 < #line 2625 "conf_parser.y"
5758 >  case 532:
5759 > #line 2605 "conf_parser.y" /* yacc.c:1646  */
5760      {
5761 <  if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
5761 >  if (((yyvsp[-1].number) > 0) && conf_parser_ctx.pass == 1)
5762    {
5763      ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
5764      ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
# Line 6077 | Line 5766 | yyreduce:
5766      exit(0);
5767    }
5768   }
5769 + #line 5770 "conf_parser.c" /* yacc.c:1646  */
5770      break;
5771  
5772 <  case 503:
5773 < /* Line 1787 of yacc.c  */
6084 < #line 2636 "conf_parser.y"
5772 >  case 533:
5773 > #line 2616 "conf_parser.y" /* yacc.c:1646  */
5774      {
5775    ConfigFileEntry.invisible_on_connect = yylval.number;
5776   }
5777 + #line 5778 "conf_parser.c" /* yacc.c:1646  */
5778      break;
5779  
5780 <  case 504:
5781 < /* Line 1787 of yacc.c  */
6092 < #line 2641 "conf_parser.y"
5780 >  case 534:
5781 > #line 2621 "conf_parser.y" /* yacc.c:1646  */
5782      {
5783 <  ConfigFileEntry.warn_no_nline = yylval.number;
5783 >  ConfigFileEntry.warn_no_connect_block = yylval.number;
5784   }
5785 + #line 5786 "conf_parser.c" /* yacc.c:1646  */
5786      break;
5787  
5788 <  case 505:
5789 < /* Line 1787 of yacc.c  */
6100 < #line 2646 "conf_parser.y"
5788 >  case 535:
5789 > #line 2626 "conf_parser.y" /* yacc.c:1646  */
5790      {
5791    ConfigFileEntry.stats_e_disabled = yylval.number;
5792   }
5793 + #line 5794 "conf_parser.c" /* yacc.c:1646  */
5794      break;
5795  
5796 <  case 506:
5797 < /* Line 1787 of yacc.c  */
6108 < #line 2651 "conf_parser.y"
5796 >  case 536:
5797 > #line 2631 "conf_parser.y" /* yacc.c:1646  */
5798      {
5799    ConfigFileEntry.stats_o_oper_only = yylval.number;
5800   }
5801 + #line 5802 "conf_parser.c" /* yacc.c:1646  */
5802      break;
5803  
5804 <  case 507:
5805 < /* Line 1787 of yacc.c  */
6116 < #line 2656 "conf_parser.y"
5804 >  case 537:
5805 > #line 2636 "conf_parser.y" /* yacc.c:1646  */
5806      {
5807    ConfigFileEntry.stats_P_oper_only = yylval.number;
5808   }
5809 + #line 5810 "conf_parser.c" /* yacc.c:1646  */
5810 +    break;
5811 +
5812 +  case 538:
5813 + #line 2641 "conf_parser.y" /* yacc.c:1646  */
5814 +    {
5815 +  ConfigFileEntry.stats_u_oper_only = yylval.number;
5816 + }
5817 + #line 5818 "conf_parser.c" /* yacc.c:1646  */
5818      break;
5819  
5820 <  case 508:
5821 < /* Line 1787 of yacc.c  */
6124 < #line 2661 "conf_parser.y"
5820 >  case 539:
5821 > #line 2646 "conf_parser.y" /* yacc.c:1646  */
5822      {
5823    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5824   }
5825 + #line 5826 "conf_parser.c" /* yacc.c:1646  */
5826      break;
5827  
5828 <  case 509:
5829 < /* Line 1787 of yacc.c  */
6132 < #line 2664 "conf_parser.y"
5828 >  case 540:
5829 > #line 2649 "conf_parser.y" /* yacc.c:1646  */
5830      {
5831    ConfigFileEntry.stats_k_oper_only = 1;
5832   }
5833 + #line 5834 "conf_parser.c" /* yacc.c:1646  */
5834      break;
5835  
5836 <  case 510:
5837 < /* Line 1787 of yacc.c  */
6140 < #line 2669 "conf_parser.y"
5836 >  case 541:
5837 > #line 2654 "conf_parser.y" /* yacc.c:1646  */
5838      {
5839    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5840   }
5841 + #line 5842 "conf_parser.c" /* yacc.c:1646  */
5842      break;
5843  
5844 <  case 511:
5845 < /* Line 1787 of yacc.c  */
6148 < #line 2672 "conf_parser.y"
5844 >  case 542:
5845 > #line 2657 "conf_parser.y" /* yacc.c:1646  */
5846      {
5847    ConfigFileEntry.stats_i_oper_only = 1;
5848   }
5849 + #line 5850 "conf_parser.c" /* yacc.c:1646  */
5850      break;
5851  
5852 <  case 512:
5853 < /* Line 1787 of yacc.c  */
6156 < #line 2677 "conf_parser.y"
5852 >  case 543:
5853 > #line 2662 "conf_parser.y" /* yacc.c:1646  */
5854      {
5855 <  ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5855 >  ConfigFileEntry.pace_wait = (yyvsp[-1].number);
5856   }
5857 + #line 5858 "conf_parser.c" /* yacc.c:1646  */
5858      break;
5859  
5860 <  case 513:
5861 < /* Line 1787 of yacc.c  */
6164 < #line 2682 "conf_parser.y"
5860 >  case 544:
5861 > #line 2667 "conf_parser.y" /* yacc.c:1646  */
5862      {
5863 <  ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5863 >  ConfigFileEntry.caller_id_wait = (yyvsp[-1].number);
5864   }
5865 + #line 5866 "conf_parser.c" /* yacc.c:1646  */
5866      break;
5867  
5868 <  case 514:
5869 < /* Line 1787 of yacc.c  */
6172 < #line 2687 "conf_parser.y"
5868 >  case 545:
5869 > #line 2672 "conf_parser.y" /* yacc.c:1646  */
5870      {
5871    ConfigFileEntry.opers_bypass_callerid = yylval.number;
5872   }
5873 + #line 5874 "conf_parser.c" /* yacc.c:1646  */
5874      break;
5875  
5876 <  case 515:
5877 < /* Line 1787 of yacc.c  */
6180 < #line 2692 "conf_parser.y"
5876 >  case 546:
5877 > #line 2677 "conf_parser.y" /* yacc.c:1646  */
5878      {
5879 <  ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
5879 >  ConfigFileEntry.pace_wait_simple = (yyvsp[-1].number);
5880   }
5881 + #line 5882 "conf_parser.c" /* yacc.c:1646  */
5882      break;
5883  
5884 <  case 516:
5885 < /* Line 1787 of yacc.c  */
6188 < #line 2697 "conf_parser.y"
5884 >  case 547:
5885 > #line 2682 "conf_parser.y" /* yacc.c:1646  */
5886      {
5887    ConfigFileEntry.short_motd = yylval.number;
5888   }
5889 + #line 5890 "conf_parser.c" /* yacc.c:1646  */
5890      break;
5891  
5892 <  case 517:
5893 < /* Line 1787 of yacc.c  */
6196 < #line 2702 "conf_parser.y"
5892 >  case 548:
5893 > #line 2687 "conf_parser.y" /* yacc.c:1646  */
5894      {
5895    ConfigFileEntry.no_oper_flood = yylval.number;
5896   }
5897 + #line 5898 "conf_parser.c" /* yacc.c:1646  */
5898      break;
5899  
5900 <  case 518:
5901 < /* Line 1787 of yacc.c  */
6204 < #line 2707 "conf_parser.y"
5900 >  case 549:
5901 > #line 2692 "conf_parser.y" /* yacc.c:1646  */
5902      {
5903    ConfigFileEntry.true_no_oper_flood = yylval.number;
5904   }
5905 + #line 5906 "conf_parser.c" /* yacc.c:1646  */
5906      break;
5907  
5908 <  case 519:
5909 < /* Line 1787 of yacc.c  */
6212 < #line 2712 "conf_parser.y"
5908 >  case 550:
5909 > #line 2697 "conf_parser.y" /* yacc.c:1646  */
5910      {
5911    ConfigFileEntry.oper_pass_resv = yylval.number;
5912   }
5913 + #line 5914 "conf_parser.c" /* yacc.c:1646  */
5914      break;
5915  
5916 <  case 520:
5917 < /* 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"
5916 >  case 551:
5917 > #line 2702 "conf_parser.y" /* yacc.c:1646  */
5918      {
5919 <  ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
5919 >  ConfigFileEntry.dots_in_ident = (yyvsp[-1].number);
5920   }
5921 + #line 5922 "conf_parser.c" /* yacc.c:1646  */
5922      break;
5923  
5924 <  case 522:
5925 < /* Line 1787 of yacc.c  */
6242 < #line 2733 "conf_parser.y"
5924 >  case 552:
5925 > #line 2707 "conf_parser.y" /* yacc.c:1646  */
5926      {
5927 <  ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
5927 >  ConfigFileEntry.max_targets = (yyvsp[-1].number);
5928   }
5929 + #line 5930 "conf_parser.c" /* yacc.c:1646  */
5930      break;
5931  
5932 <  case 523:
5933 < /* Line 1787 of yacc.c  */
6250 < #line 2738 "conf_parser.y"
5932 >  case 553:
5933 > #line 2712 "conf_parser.y" /* yacc.c:1646  */
5934      {
5935    ConfigFileEntry.use_egd = yylval.number;
5936   }
5937 + #line 5938 "conf_parser.c" /* yacc.c:1646  */
5938      break;
5939  
5940 <  case 524:
5941 < /* Line 1787 of yacc.c  */
6258 < #line 2743 "conf_parser.y"
5940 >  case 554:
5941 > #line 2717 "conf_parser.y" /* yacc.c:1646  */
5942      {
5943    if (conf_parser_ctx.pass == 2)
5944    {
5945      MyFree(ConfigFileEntry.egdpool_path);
5946 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
5946 >    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
5947    }
5948   }
5949 + #line 5950 "conf_parser.c" /* yacc.c:1646  */
5950      break;
5951  
5952 <  case 525:
5953 < /* Line 1787 of yacc.c  */
6270 < #line 2752 "conf_parser.y"
5952 >  case 555:
5953 > #line 2726 "conf_parser.y" /* yacc.c:1646  */
5954      {
5955    if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
5956    {
5957      MyFree(ConfigFileEntry.service_name);
5958 <    DupString(ConfigFileEntry.service_name, yylval.string);
5958 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
5959    }
5960   }
5961 + #line 5962 "conf_parser.c" /* yacc.c:1646  */
5962      break;
5963  
5964 <  case 526:
5965 < /* Line 1787 of yacc.c  */
6282 < #line 2761 "conf_parser.y"
5964 >  case 556:
5965 > #line 2735 "conf_parser.y" /* yacc.c:1646  */
5966      {
5967    ConfigFileEntry.ping_cookie = yylval.number;
5968   }
5969 + #line 5970 "conf_parser.c" /* yacc.c:1646  */
5970      break;
5971  
5972 <  case 527:
5973 < /* Line 1787 of yacc.c  */
6290 < #line 2766 "conf_parser.y"
5972 >  case 557:
5973 > #line 2740 "conf_parser.y" /* yacc.c:1646  */
5974      {
5975    ConfigFileEntry.disable_auth = yylval.number;
5976   }
5977 + #line 5978 "conf_parser.c" /* yacc.c:1646  */
5978      break;
5979  
5980 <  case 528:
5981 < /* Line 1787 of yacc.c  */
6298 < #line 2771 "conf_parser.y"
5980 >  case 558:
5981 > #line 2745 "conf_parser.y" /* yacc.c:1646  */
5982      {
5983 <  ConfigFileEntry.throttle_time = yylval.number;
5983 >  ConfigFileEntry.throttle_time = (yyvsp[-1].number);
5984   }
5985 + #line 5986 "conf_parser.c" /* yacc.c:1646  */
5986      break;
5987  
5988 <  case 529:
5989 < /* Line 1787 of yacc.c  */
6306 < #line 2776 "conf_parser.y"
5988 >  case 559:
5989 > #line 2750 "conf_parser.y" /* yacc.c:1646  */
5990      {
5991    ConfigFileEntry.oper_umodes = 0;
5992   }
5993 + #line 5994 "conf_parser.c" /* yacc.c:1646  */
5994      break;
5995  
5996 <  case 533:
5997 < /* Line 1787 of yacc.c  */
6314 < #line 2782 "conf_parser.y"
5996 >  case 563:
5997 > #line 2756 "conf_parser.y" /* yacc.c:1646  */
5998      {
5999    ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6000   }
6001 + #line 6002 "conf_parser.c" /* yacc.c:1646  */
6002      break;
6003  
6004 <  case 534:
6005 < /* Line 1787 of yacc.c  */
6322 < #line 2785 "conf_parser.y"
6004 >  case 564:
6005 > #line 2759 "conf_parser.y" /* yacc.c:1646  */
6006      {
6007    ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6008   }
6009 + #line 6010 "conf_parser.c" /* yacc.c:1646  */
6010      break;
6011  
6012 <  case 535:
6013 < /* Line 1787 of yacc.c  */
6330 < #line 2788 "conf_parser.y"
6331 <    {
6332 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6333 < }
6334 <    break;
6335 <
6336 <  case 536:
6337 < /* Line 1787 of yacc.c  */
6338 < #line 2791 "conf_parser.y"
6012 >  case 565:
6013 > #line 2762 "conf_parser.y" /* yacc.c:1646  */
6014      {
6015    ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6016   }
6017 + #line 6018 "conf_parser.c" /* yacc.c:1646  */
6018      break;
6019  
6020 <  case 537:
6021 < /* Line 1787 of yacc.c  */
6346 < #line 2794 "conf_parser.y"
6020 >  case 566:
6021 > #line 2765 "conf_parser.y" /* yacc.c:1646  */
6022      {
6023    ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6024   }
6025 + #line 6026 "conf_parser.c" /* yacc.c:1646  */
6026      break;
6027  
6028 <  case 538:
6029 < /* Line 1787 of yacc.c  */
6354 < #line 2797 "conf_parser.y"
6028 >  case 567:
6029 > #line 2768 "conf_parser.y" /* yacc.c:1646  */
6030      {
6031    ConfigFileEntry.oper_umodes |= UMODE_FULL;
6032   }
6033 + #line 6034 "conf_parser.c" /* yacc.c:1646  */
6034      break;
6035  
6036 <  case 539:
6037 < /* Line 1787 of yacc.c  */
6362 < #line 2800 "conf_parser.y"
6036 >  case 568:
6037 > #line 2771 "conf_parser.y" /* yacc.c:1646  */
6038      {
6039    ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6040   }
6041 + #line 6042 "conf_parser.c" /* yacc.c:1646  */
6042      break;
6043  
6044 <  case 540:
6045 < /* Line 1787 of yacc.c  */
6046 < #line 2803 "conf_parser.y"
6044 >  case 569:
6045 > #line 2774 "conf_parser.y" /* yacc.c:1646  */
6046 >    {
6047 >  ConfigFileEntry.oper_umodes |= UMODE_HIDECHANS;
6048 > }
6049 > #line 6050 "conf_parser.c" /* yacc.c:1646  */
6050 >    break;
6051 >
6052 >  case 570:
6053 > #line 2777 "conf_parser.y" /* yacc.c:1646  */
6054 >    {
6055 >  ConfigFileEntry.oper_umodes |= UMODE_HIDEIDLE;
6056 > }
6057 > #line 6058 "conf_parser.c" /* yacc.c:1646  */
6058 >    break;
6059 >
6060 >  case 571:
6061 > #line 2780 "conf_parser.y" /* yacc.c:1646  */
6062      {
6063    ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6064   }
6065 + #line 6066 "conf_parser.c" /* yacc.c:1646  */
6066      break;
6067  
6068 <  case 541:
6069 < /* Line 1787 of yacc.c  */
6378 < #line 2806 "conf_parser.y"
6068 >  case 572:
6069 > #line 2783 "conf_parser.y" /* yacc.c:1646  */
6070      {
6071    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6072   }
6073 + #line 6074 "conf_parser.c" /* yacc.c:1646  */
6074      break;
6075  
6076 <  case 542:
6077 < /* Line 1787 of yacc.c  */
6386 < #line 2809 "conf_parser.y"
6076 >  case 573:
6077 > #line 2786 "conf_parser.y" /* yacc.c:1646  */
6078      {
6079    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6080   }
6081 + #line 6082 "conf_parser.c" /* yacc.c:1646  */
6082      break;
6083  
6084 <  case 543:
6085 < /* Line 1787 of yacc.c  */
6394 < #line 2812 "conf_parser.y"
6084 >  case 574:
6085 > #line 2789 "conf_parser.y" /* yacc.c:1646  */
6086      {
6087    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6088   }
6089 + #line 6090 "conf_parser.c" /* yacc.c:1646  */
6090      break;
6091  
6092 <  case 544:
6093 < /* Line 1787 of yacc.c  */
6402 < #line 2815 "conf_parser.y"
6092 >  case 575:
6093 > #line 2792 "conf_parser.y" /* yacc.c:1646  */
6094      {
6095    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6096   }
6097 + #line 6098 "conf_parser.c" /* yacc.c:1646  */
6098      break;
6099  
6100 <  case 545:
6101 < /* Line 1787 of yacc.c  */
6410 < #line 2818 "conf_parser.y"
6100 >  case 576:
6101 > #line 2795 "conf_parser.y" /* yacc.c:1646  */
6102      {
6103    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6104   }
6105 + #line 6106 "conf_parser.c" /* yacc.c:1646  */
6106      break;
6107  
6108 <  case 546:
6109 < /* Line 1787 of yacc.c  */
6418 < #line 2821 "conf_parser.y"
6108 >  case 577:
6109 > #line 2798 "conf_parser.y" /* yacc.c:1646  */
6110      {
6111    ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6112   }
6113 + #line 6114 "conf_parser.c" /* yacc.c:1646  */
6114      break;
6115  
6116 <  case 547:
6117 < /* Line 1787 of yacc.c  */
6426 < #line 2824 "conf_parser.y"
6116 >  case 578:
6117 > #line 2801 "conf_parser.y" /* yacc.c:1646  */
6118      {
6119    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6120   }
6121 + #line 6122 "conf_parser.c" /* yacc.c:1646  */
6122      break;
6123  
6124 <  case 548:
6125 < /* Line 1787 of yacc.c  */
6434 < #line 2827 "conf_parser.y"
6124 >  case 579:
6125 > #line 2804 "conf_parser.y" /* yacc.c:1646  */
6126      {
6127    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6128   }
6129 + #line 6130 "conf_parser.c" /* yacc.c:1646  */
6130      break;
6131  
6132 <  case 549:
6133 < /* Line 1787 of yacc.c  */
6442 < #line 2830 "conf_parser.y"
6132 >  case 580:
6133 > #line 2807 "conf_parser.y" /* yacc.c:1646  */
6134      {
6135    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6136   }
6137 + #line 6138 "conf_parser.c" /* yacc.c:1646  */
6138      break;
6139  
6140 <  case 550:
6141 < /* Line 1787 of yacc.c  */
6450 < #line 2833 "conf_parser.y"
6140 >  case 581:
6141 > #line 2810 "conf_parser.y" /* yacc.c:1646  */
6142      {
6143    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6144   }
6145 + #line 6146 "conf_parser.c" /* yacc.c:1646  */
6146      break;
6147  
6148 <  case 551:
6149 < /* Line 1787 of yacc.c  */
6458 < #line 2836 "conf_parser.y"
6148 >  case 582:
6149 > #line 2813 "conf_parser.y" /* yacc.c:1646  */
6150      {
6151    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6152   }
6153 + #line 6154 "conf_parser.c" /* yacc.c:1646  */
6154      break;
6155  
6156 <  case 552:
6157 < /* Line 1787 of yacc.c  */
6466 < #line 2839 "conf_parser.y"
6156 >  case 583:
6157 > #line 2816 "conf_parser.y" /* yacc.c:1646  */
6158      {
6159    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6160   }
6161 + #line 6162 "conf_parser.c" /* yacc.c:1646  */
6162      break;
6163  
6164 <  case 553:
6165 < /* Line 1787 of yacc.c  */
6474 < #line 2844 "conf_parser.y"
6164 >  case 584:
6165 > #line 2819 "conf_parser.y" /* yacc.c:1646  */
6166      {
6167 <  ConfigFileEntry.oper_only_umodes = 0;
6167 >  ConfigFileEntry.oper_umodes |= UMODE_REGONLY;
6168   }
6169 + #line 6170 "conf_parser.c" /* yacc.c:1646  */
6170      break;
6171  
6172 <  case 557:
6173 < /* Line 1787 of yacc.c  */
6482 < #line 2850 "conf_parser.y"
6172 >  case 585:
6173 > #line 2822 "conf_parser.y" /* yacc.c:1646  */
6174      {
6175 <  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6175 >  ConfigFileEntry.oper_umodes |= UMODE_FARCONNECT;
6176   }
6177 + #line 6178 "conf_parser.c" /* yacc.c:1646  */
6178      break;
6179  
6180 <  case 558:
6181 < /* Line 1787 of yacc.c  */
6490 < #line 2853 "conf_parser.y"
6180 >  case 586:
6181 > #line 2827 "conf_parser.y" /* yacc.c:1646  */
6182      {
6183 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6183 >  ConfigFileEntry.oper_only_umodes = 0;
6184   }
6185 + #line 6186 "conf_parser.c" /* yacc.c:1646  */
6186      break;
6187  
6188 <  case 559:
6189 < /* Line 1787 of yacc.c  */
6190 < #line 2856 "conf_parser.y"
6188 >  case 590:
6189 > #line 2833 "conf_parser.y" /* yacc.c:1646  */
6190 >    {
6191 >  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6192 > }
6193 > #line 6194 "conf_parser.c" /* yacc.c:1646  */
6194 >    break;
6195 >
6196 >  case 591:
6197 > #line 2836 "conf_parser.y" /* yacc.c:1646  */
6198      {
6199 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6199 >  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6200   }
6201 + #line 6202 "conf_parser.c" /* yacc.c:1646  */
6202      break;
6203  
6204 <  case 560:
6205 < /* Line 1787 of yacc.c  */
6506 < #line 2859 "conf_parser.y"
6204 >  case 592:
6205 > #line 2839 "conf_parser.y" /* yacc.c:1646  */
6206      {
6207    ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6208   }
6209 + #line 6210 "conf_parser.c" /* yacc.c:1646  */
6210      break;
6211  
6212 <  case 561:
6213 < /* Line 1787 of yacc.c  */
6514 < #line 2862 "conf_parser.y"
6212 >  case 593:
6213 > #line 2842 "conf_parser.y" /* yacc.c:1646  */
6214      {
6215    ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6216   }
6217 + #line 6218 "conf_parser.c" /* yacc.c:1646  */
6218      break;
6219  
6220 <  case 562:
6221 < /* Line 1787 of yacc.c  */
6222 < #line 2865 "conf_parser.y"
6523 <    {
6220 >  case 594:
6221 > #line 2845 "conf_parser.y" /* yacc.c:1646  */
6222 >    {
6223    ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6224   }
6225 + #line 6226 "conf_parser.c" /* yacc.c:1646  */
6226      break;
6227  
6228 <  case 563:
6229 < /* Line 1787 of yacc.c  */
6530 < #line 2868 "conf_parser.y"
6228 >  case 595:
6229 > #line 2848 "conf_parser.y" /* yacc.c:1646  */
6230      {
6231    ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6232   }
6233 + #line 6234 "conf_parser.c" /* yacc.c:1646  */
6234      break;
6235  
6236 <  case 564:
6237 < /* Line 1787 of yacc.c  */
6538 < #line 2871 "conf_parser.y"
6236 >  case 596:
6237 > #line 2851 "conf_parser.y" /* yacc.c:1646  */
6238      {
6239    ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6240   }
6241 + #line 6242 "conf_parser.c" /* yacc.c:1646  */
6242      break;
6243  
6244 <  case 565:
6245 < /* Line 1787 of yacc.c  */
6546 < #line 2874 "conf_parser.y"
6244 >  case 597:
6245 > #line 2854 "conf_parser.y" /* yacc.c:1646  */
6246      {
6247    ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6248   }
6249 + #line 6250 "conf_parser.c" /* yacc.c:1646  */
6250      break;
6251  
6252 <  case 566:
6253 < /* Line 1787 of yacc.c  */
6554 < #line 2877 "conf_parser.y"
6252 >  case 598:
6253 > #line 2857 "conf_parser.y" /* yacc.c:1646  */
6254      {
6255    ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6256   }
6257 + #line 6258 "conf_parser.c" /* yacc.c:1646  */
6258      break;
6259  
6260 <  case 567:
6261 < /* Line 1787 of yacc.c  */
6562 < #line 2880 "conf_parser.y"
6260 >  case 599:
6261 > #line 2860 "conf_parser.y" /* yacc.c:1646  */
6262      {
6263    ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6264   }
6265 + #line 6266 "conf_parser.c" /* yacc.c:1646  */
6266      break;
6267  
6268 <  case 568:
6269 < /* Line 1787 of yacc.c  */
6570 < #line 2883 "conf_parser.y"
6268 >  case 600:
6269 > #line 2863 "conf_parser.y" /* yacc.c:1646  */
6270      {
6271    ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6272   }
6273 + #line 6274 "conf_parser.c" /* yacc.c:1646  */
6274      break;
6275  
6276 <  case 569:
6277 < /* Line 1787 of yacc.c  */
6578 < #line 2886 "conf_parser.y"
6276 >  case 601:
6277 > #line 2866 "conf_parser.y" /* yacc.c:1646  */
6278      {
6279    ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6280   }
6281 + #line 6282 "conf_parser.c" /* yacc.c:1646  */
6282      break;
6283  
6284 <  case 570:
6285 < /* Line 1787 of yacc.c  */
6586 < #line 2889 "conf_parser.y"
6284 >  case 602:
6285 > #line 2869 "conf_parser.y" /* yacc.c:1646  */
6286      {
6287    ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6288   }
6289 + #line 6290 "conf_parser.c" /* yacc.c:1646  */
6290      break;
6291  
6292 <  case 571:
6293 < /* Line 1787 of yacc.c  */
6594 < #line 2892 "conf_parser.y"
6292 >  case 603:
6293 > #line 2872 "conf_parser.y" /* yacc.c:1646  */
6294      {
6295    ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6296   }
6297 + #line 6298 "conf_parser.c" /* yacc.c:1646  */
6298      break;
6299  
6300 <  case 572:
6301 < /* Line 1787 of yacc.c  */
6602 < #line 2895 "conf_parser.y"
6300 >  case 604:
6301 > #line 2875 "conf_parser.y" /* yacc.c:1646  */
6302      {
6303    ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6304   }
6305 + #line 6306 "conf_parser.c" /* yacc.c:1646  */
6306      break;
6307  
6308 <  case 573:
6309 < /* Line 1787 of yacc.c  */
6610 < #line 2898 "conf_parser.y"
6308 >  case 605:
6309 > #line 2878 "conf_parser.y" /* yacc.c:1646  */
6310      {
6311    ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6312   }
6313 + #line 6314 "conf_parser.c" /* yacc.c:1646  */
6314      break;
6315  
6316 <  case 574:
6317 < /* Line 1787 of yacc.c  */
6618 < #line 2901 "conf_parser.y"
6316 >  case 606:
6317 > #line 2881 "conf_parser.y" /* yacc.c:1646  */
6318      {
6319    ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6320   }
6321 + #line 6322 "conf_parser.c" /* yacc.c:1646  */
6322      break;
6323  
6324 <  case 575:
6325 < /* Line 1787 of yacc.c  */
6626 < #line 2904 "conf_parser.y"
6324 >  case 607:
6325 > #line 2884 "conf_parser.y" /* yacc.c:1646  */
6326      {
6327    ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6328   }
6329 + #line 6330 "conf_parser.c" /* yacc.c:1646  */
6330      break;
6331  
6332 <  case 576:
6333 < /* Line 1787 of yacc.c  */
6634 < #line 2907 "conf_parser.y"
6332 >  case 608:
6333 > #line 2887 "conf_parser.y" /* yacc.c:1646  */
6334      {
6335    ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6336   }
6337 + #line 6338 "conf_parser.c" /* yacc.c:1646  */
6338      break;
6339  
6340 <  case 577:
6341 < /* Line 1787 of yacc.c  */
6642 < #line 2912 "conf_parser.y"
6340 >  case 609:
6341 > #line 2890 "conf_parser.y" /* yacc.c:1646  */
6342      {
6343 <  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6343 >  ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6344   }
6345 + #line 6346 "conf_parser.c" /* yacc.c:1646  */
6346      break;
6347  
6348 <  case 578:
6349 < /* Line 1787 of yacc.c  */
6650 < #line 2917 "conf_parser.y"
6348 >  case 610:
6349 > #line 2893 "conf_parser.y" /* yacc.c:1646  */
6350      {
6351 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6351 >  ConfigFileEntry.oper_only_umodes |= UMODE_FARCONNECT;
6352   }
6353 + #line 6354 "conf_parser.c" /* yacc.c:1646  */
6354      break;
6355  
6356 <  case 579:
6357 < /* Line 1787 of yacc.c  */
6658 < #line 2922 "conf_parser.y"
6356 >  case 611:
6357 > #line 2898 "conf_parser.y" /* yacc.c:1646  */
6358      {
6359 <  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6359 >  ConfigFileEntry.min_nonwildcard = (yyvsp[-1].number);
6360   }
6361 + #line 6362 "conf_parser.c" /* yacc.c:1646  */
6362      break;
6363  
6364 <  case 598:
6365 < /* Line 1787 of yacc.c  */
6366 < #line 2945 "conf_parser.y"
6364 >  case 612:
6365 > #line 2903 "conf_parser.y" /* yacc.c:1646  */
6366 >    {
6367 >  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[-1].number);
6368 > }
6369 > #line 6370 "conf_parser.c" /* yacc.c:1646  */
6370 >    break;
6371 >
6372 >  case 613:
6373 > #line 2908 "conf_parser.y" /* yacc.c:1646  */
6374 >    {
6375 >  ConfigFileEntry.default_floodcount = (yyvsp[-1].number);
6376 > }
6377 > #line 6378 "conf_parser.c" /* yacc.c:1646  */
6378 >    break;
6379 >
6380 >  case 633:
6381 > #line 2938 "conf_parser.y" /* yacc.c:1646  */
6382      {
6383    ConfigChannel.disable_fake_channels = yylval.number;
6384   }
6385 + #line 6386 "conf_parser.c" /* yacc.c:1646  */
6386      break;
6387  
6388 <  case 599:
6389 < /* Line 1787 of yacc.c  */
6674 < #line 2950 "conf_parser.y"
6388 >  case 634:
6389 > #line 2944 "conf_parser.y" /* yacc.c:1646  */
6390      {
6391 <  ConfigChannel.restrict_channels = yylval.number;
6391 >  ConfigChannel.invite_client_count = (yyvsp[-1].number);
6392   }
6393 + #line 6394 "conf_parser.c" /* yacc.c:1646  */
6394      break;
6395  
6396 <  case 600:
6397 < /* Line 1787 of yacc.c  */
6682 < #line 2955 "conf_parser.y"
6396 >  case 635:
6397 > #line 2949 "conf_parser.y" /* yacc.c:1646  */
6398      {
6399 <  ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6399 >  ConfigChannel.invite_client_time = (yyvsp[-1].number);
6400   }
6401 + #line 6402 "conf_parser.c" /* yacc.c:1646  */
6402      break;
6403  
6404 <  case 601:
6405 < /* Line 1787 of yacc.c  */
6690 < #line 2960 "conf_parser.y"
6404 >  case 636:
6405 > #line 2954 "conf_parser.y" /* yacc.c:1646  */
6406      {
6407 <  ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6407 >  ConfigChannel.knock_client_count = (yyvsp[-1].number);
6408   }
6409 + #line 6410 "conf_parser.c" /* yacc.c:1646  */
6410      break;
6411  
6412 <  case 602:
6413 < /* Line 1787 of yacc.c  */
6698 < #line 2965 "conf_parser.y"
6412 >  case 637:
6413 > #line 2959 "conf_parser.y" /* yacc.c:1646  */
6414      {
6415 <  ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6415 >  ConfigChannel.knock_client_time = (yyvsp[-1].number);
6416   }
6417 + #line 6418 "conf_parser.c" /* yacc.c:1646  */
6418      break;
6419  
6420 <  case 603:
6421 < /* Line 1787 of yacc.c  */
6706 < #line 2970 "conf_parser.y"
6420 >  case 638:
6421 > #line 2964 "conf_parser.y" /* yacc.c:1646  */
6422      {
6423 <  ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6423 >  ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6424   }
6425 + #line 6426 "conf_parser.c" /* yacc.c:1646  */
6426      break;
6427  
6428 <  case 604:
6429 < /* Line 1787 of yacc.c  */
6714 < #line 2975 "conf_parser.y"
6428 >  case 639:
6429 > #line 2969 "conf_parser.y" /* yacc.c:1646  */
6430      {
6431 <  ConfigChannel.quiet_on_ban = yylval.number;
6431 >  ConfigChannel.max_chans_per_user = (yyvsp[-1].number);
6432   }
6433 + #line 6434 "conf_parser.c" /* yacc.c:1646  */
6434      break;
6435  
6436 <  case 605:
6437 < /* Line 1787 of yacc.c  */
6722 < #line 2980 "conf_parser.y"
6436 >  case 640:
6437 > #line 2974 "conf_parser.y" /* yacc.c:1646  */
6438      {
6439 <  ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6439 >  ConfigChannel.max_chans_per_oper = (yyvsp[-1].number);
6440   }
6441 + #line 6442 "conf_parser.c" /* yacc.c:1646  */
6442      break;
6443  
6444 <  case 606:
6445 < /* Line 1787 of yacc.c  */
6730 < #line 2985 "conf_parser.y"
6444 >  case 641:
6445 > #line 2979 "conf_parser.y" /* yacc.c:1646  */
6446      {
6447 <  ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6447 >  ConfigChannel.max_bans = (yyvsp[-1].number);
6448   }
6449 + #line 6450 "conf_parser.c" /* yacc.c:1646  */
6450      break;
6451  
6452 <  case 607:
6453 < /* Line 1787 of yacc.c  */
6738 < #line 2990 "conf_parser.y"
6452 >  case 642:
6453 > #line 2984 "conf_parser.y" /* yacc.c:1646  */
6454      {
6455 <  ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6455 >  ConfigChannel.default_split_user_count = (yyvsp[-1].number);
6456   }
6457 + #line 6458 "conf_parser.c" /* yacc.c:1646  */
6458      break;
6459  
6460 <  case 608:
6461 < /* Line 1787 of yacc.c  */
6462 < #line 2995 "conf_parser.y"
6460 >  case 643:
6461 > #line 2989 "conf_parser.y" /* yacc.c:1646  */
6462 >    {
6463 >  ConfigChannel.default_split_server_count = (yyvsp[-1].number);
6464 > }
6465 > #line 6466 "conf_parser.c" /* yacc.c:1646  */
6466 >    break;
6467 >
6468 >  case 644:
6469 > #line 2994 "conf_parser.y" /* yacc.c:1646  */
6470      {
6471    ConfigChannel.no_create_on_split = yylval.number;
6472   }
6473 + #line 6474 "conf_parser.c" /* yacc.c:1646  */
6474      break;
6475  
6476 <  case 609:
6477 < /* Line 1787 of yacc.c  */
6754 < #line 3000 "conf_parser.y"
6476 >  case 645:
6477 > #line 2999 "conf_parser.y" /* yacc.c:1646  */
6478      {
6479    ConfigChannel.no_join_on_split = yylval.number;
6480   }
6481 + #line 6482 "conf_parser.c" /* yacc.c:1646  */
6482      break;
6483  
6484 <  case 610:
6485 < /* Line 1787 of yacc.c  */
6762 < #line 3005 "conf_parser.y"
6484 >  case 646:
6485 > #line 3004 "conf_parser.y" /* yacc.c:1646  */
6486      {
6487    GlobalSetOptions.joinfloodcount = yylval.number;
6488   }
6489 + #line 6490 "conf_parser.c" /* yacc.c:1646  */
6490      break;
6491  
6492 <  case 611:
6493 < /* Line 1787 of yacc.c  */
6770 < #line 3010 "conf_parser.y"
6492 >  case 647:
6493 > #line 3009 "conf_parser.y" /* yacc.c:1646  */
6494      {
6495 <  GlobalSetOptions.joinfloodtime = yylval.number;
6495 >  GlobalSetOptions.joinfloodtime = (yyvsp[-1].number);
6496   }
6497 + #line 6498 "conf_parser.c" /* yacc.c:1646  */
6498      break;
6499  
6500 <  case 622:
6501 < /* Line 1787 of yacc.c  */
6778 < #line 3028 "conf_parser.y"
6500 >  case 660:
6501 > #line 3031 "conf_parser.y" /* yacc.c:1646  */
6502      {
6503    if (conf_parser_ctx.pass == 2)
6504      ConfigServerHide.flatten_links = yylval.number;
6505   }
6506 + #line 6507 "conf_parser.c" /* yacc.c:1646  */
6507 +    break;
6508 +
6509 +  case 661:
6510 + #line 3037 "conf_parser.y" /* yacc.c:1646  */
6511 +    {
6512 +  if (conf_parser_ctx.pass == 2)
6513 +    ConfigServerHide.disable_remote_commands = yylval.number;
6514 + }
6515 + #line 6516 "conf_parser.c" /* yacc.c:1646  */
6516      break;
6517  
6518 <  case 623:
6519 < /* Line 1787 of yacc.c  */
6787 < #line 3034 "conf_parser.y"
6518 >  case 662:
6519 > #line 3043 "conf_parser.y" /* yacc.c:1646  */
6520      {
6521    if (conf_parser_ctx.pass == 2)
6522      ConfigServerHide.hide_servers = yylval.number;
6523   }
6524 + #line 6525 "conf_parser.c" /* yacc.c:1646  */
6525      break;
6526  
6527 <  case 624:
6528 < /* Line 1787 of yacc.c  */
6529 < #line 3040 "conf_parser.y"
6527 >  case 663:
6528 > #line 3049 "conf_parser.y" /* yacc.c:1646  */
6529 >    {
6530 >  if (conf_parser_ctx.pass == 2)
6531 >    ConfigServerHide.hide_services = yylval.number;
6532 > }
6533 > #line 6534 "conf_parser.c" /* yacc.c:1646  */
6534 >    break;
6535 >
6536 >  case 664:
6537 > #line 3055 "conf_parser.y" /* yacc.c:1646  */
6538      {
6539    if (conf_parser_ctx.pass == 2)
6540    {
6541      MyFree(ConfigServerHide.hidden_name);
6542 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6542 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6543    }
6544   }
6545 + #line 6546 "conf_parser.c" /* yacc.c:1646  */
6546      break;
6547  
6548 <  case 625:
6549 < /* Line 1787 of yacc.c  */
6808 < #line 3049 "conf_parser.y"
6548 >  case 665:
6549 > #line 3064 "conf_parser.y" /* yacc.c:1646  */
6550      {
6551    if (conf_parser_ctx.pass == 2)
6552    {
6553 <    if (((yyvsp[(3) - (4)].number) > 0) && ConfigServerHide.links_disabled == 1)
6553 >    if (((yyvsp[-1].number) > 0) && ConfigServerHide.links_disabled == 1)
6554      {
6555 <      eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[(3) - (4)].number));
6555 >      eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[-1].number));
6556        ConfigServerHide.links_disabled = 0;
6557      }
6558  
6559 <    ConfigServerHide.links_delay = (yyvsp[(3) - (4)].number);
6559 >    ConfigServerHide.links_delay = (yyvsp[-1].number);
6560    }
6561   }
6562 + #line 6563 "conf_parser.c" /* yacc.c:1646  */
6563      break;
6564  
6565 <  case 626:
6566 < /* Line 1787 of yacc.c  */
6825 < #line 3063 "conf_parser.y"
6565 >  case 666:
6566 > #line 3078 "conf_parser.y" /* yacc.c:1646  */
6567      {
6568    if (conf_parser_ctx.pass == 2)
6569      ConfigServerHide.hidden = yylval.number;
6570   }
6571 + #line 6572 "conf_parser.c" /* yacc.c:1646  */
6572      break;
6573  
6574 <  case 627:
6575 < /* Line 1787 of yacc.c  */
6834 < #line 3069 "conf_parser.y"
6574 >  case 667:
6575 > #line 3084 "conf_parser.y" /* yacc.c:1646  */
6576      {
6577    if (conf_parser_ctx.pass == 2)
6578      ConfigServerHide.hide_server_ips = yylval.number;
6579   }
6580 + #line 6581 "conf_parser.c" /* yacc.c:1646  */
6581      break;
6582  
6583  
6584 < /* Line 1787 of yacc.c  */
6843 < #line 6844 "conf_parser.c"
6584 > #line 6585 "conf_parser.c" /* yacc.c:1646  */
6585        default: break;
6586      }
6587    /* User semantic actions sometimes alter yychar, and that requires
# Line 6862 | Line 6603 | yyreduce:
6603  
6604    *++yyvsp = yyval;
6605  
6606 <  /* Now `shift' the result of the reduction.  Determine what state
6606 >  /* Now 'shift' the result of the reduction.  Determine what state
6607       that goes to, based on the state we popped back to and the rule
6608       number reduced by.  */
6609  
# Line 6877 | Line 6618 | yyreduce:
6618    goto yynewstate;
6619  
6620  
6621 < /*------------------------------------.
6622 < | yyerrlab -- here on detecting error |
6623 < `------------------------------------*/
6621 > /*--------------------------------------.
6622 > | yyerrlab -- here on detecting error.  |
6623 > `--------------------------------------*/
6624   yyerrlab:
6625    /* Make sure we have latest lookahead translation.  See comments at
6626       user semantic actions for why this is necessary.  */
# Line 6930 | Line 6671 | yyerrlab:
6671    if (yyerrstatus == 3)
6672      {
6673        /* If just tried and failed to reuse lookahead token after an
6674 <         error, discard it.  */
6674 >         error, discard it.  */
6675  
6676        if (yychar <= YYEOF)
6677 <        {
6678 <          /* Return failure if at end of input.  */
6679 <          if (yychar == YYEOF)
6680 <            YYABORT;
6681 <        }
6677 >        {
6678 >          /* Return failure if at end of input.  */
6679 >          if (yychar == YYEOF)
6680 >            YYABORT;
6681 >        }
6682        else
6683 <        {
6684 <          yydestruct ("Error: discarding",
6685 <                      yytoken, &yylval);
6686 <          yychar = YYEMPTY;
6687 <        }
6683 >        {
6684 >          yydestruct ("Error: discarding",
6685 >                      yytoken, &yylval);
6686 >          yychar = YYEMPTY;
6687 >        }
6688      }
6689  
6690    /* Else will try to reuse lookahead token after shifting the error
# Line 6962 | Line 6703 | yyerrorlab:
6703    if (/*CONSTCOND*/ 0)
6704       goto yyerrorlab;
6705  
6706 <  /* Do not reclaim the symbols of the rule which action triggered
6706 >  /* Do not reclaim the symbols of the rule whose action triggered
6707       this YYERROR.  */
6708    YYPOPSTACK (yylen);
6709    yylen = 0;
# Line 6975 | Line 6716 | yyerrorlab:
6716   | yyerrlab1 -- common code for both syntax error and YYERROR.  |
6717   `-------------------------------------------------------------*/
6718   yyerrlab1:
6719 <  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6719 >  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6720  
6721    for (;;)
6722      {
6723        yyn = yypact[yystate];
6724        if (!yypact_value_is_default (yyn))
6725 <        {
6726 <          yyn += YYTERROR;
6727 <          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6728 <            {
6729 <              yyn = yytable[yyn];
6730 <              if (0 < yyn)
6731 <                break;
6732 <            }
6733 <        }
6725 >        {
6726 >          yyn += YYTERROR;
6727 >          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6728 >            {
6729 >              yyn = yytable[yyn];
6730 >              if (0 < yyn)
6731 >                break;
6732 >            }
6733 >        }
6734  
6735        /* Pop the current state because it cannot handle the error token.  */
6736        if (yyssp == yyss)
6737 <        YYABORT;
6737 >        YYABORT;
6738  
6739  
6740        yydestruct ("Error: popping",
6741 <                  yystos[yystate], yyvsp);
6741 >                  yystos[yystate], yyvsp);
6742        YYPOPSTACK (1);
6743        yystate = *yyssp;
6744        YY_STACK_PRINT (yyss, yyssp);
6745      }
6746  
6747 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6748    *++yyvsp = yylval;
6749 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6750  
6751  
6752    /* Shift the error token.  */
# Line 7046 | Line 6789 | yyreturn:
6789        yydestruct ("Cleanup: discarding lookahead",
6790                    yytoken, &yylval);
6791      }
6792 <  /* Do not reclaim the symbols of the rule which action triggered
6792 >  /* Do not reclaim the symbols of the rule whose action triggered
6793       this YYABORT or YYACCEPT.  */
6794    YYPOPSTACK (yylen);
6795    YY_STACK_PRINT (yyss, yyssp);
6796    while (yyssp != yyss)
6797      {
6798        yydestruct ("Cleanup: popping",
6799 <                  yystos[*yyssp], yyvsp);
6799 >                  yystos[*yyssp], yyvsp);
6800        YYPOPSTACK (1);
6801      }
6802   #ifndef yyoverflow
# Line 7064 | Line 6807 | yyreturn:
6807    if (yymsg != yymsgbuf)
6808      YYSTACK_FREE (yymsg);
6809   #endif
6810 <  /* Make sure YYID is used.  */
7068 <  return YYID (yyresult);
6810 >  return yyresult;
6811   }
7070
7071

Comparing:
ircd-hybrid/trunk/src/conf_parser.c (property svn:keywords), Revision 1592 by michael, Sat Oct 27 21:02:32 2012 UTC vs.
ircd-hybrid/branches/8.2.x/src/conf_parser.c (property svn:keywords), Revision 3863 by michael, Thu Jun 5 20:31:35 2014 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

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