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

Comparing:
ircd-hybrid-8/src/ircd_parser.c (file contents), Revision 1156 by michael, Tue Aug 9 20:29:20 2011 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (file contents), Revision 7772 by michael, Sat Oct 8 16:31:25 2016 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 2.5.  */
1 > /* A Bison parser, made by GNU Bison 3.0.4.  */
2  
3   /* Bison implementation for Yacc-like parsers in C
4 <  
5 <      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
6 <  
4 >
5 >   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
6 >
7     This program is free software: you can redistribute it and/or modify
8     it under the terms of the GNU General Public License as published by
9     the Free Software Foundation, either version 3 of the License, or
10     (at your option) any later version.
11 <  
11 >
12     This program is distributed in the hope that it will be useful,
13     but WITHOUT ANY WARRANTY; without even the implied warranty of
14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15     GNU General Public License for more details.
16 <  
16 >
17     You should have received a copy of the GNU General Public License
18     along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19  
# Line 26 | Line 26
26     special exception, which will cause the skeleton and the resulting
27     Bison output files to be licensed under the GNU General Public
28     License without this special exception.
29 <  
29 >
30     This special exception was added by the Free Software Foundation in
31     version 2.2 of Bison.  */
32  
# Line 44 | Line 44
44   #define YYBISON 1
45  
46   /* Bison version.  */
47 < #define YYBISON_VERSION "2.5"
47 > #define YYBISON_VERSION "3.0.4"
48  
49   /* Skeleton name.  */
50   #define YYSKELETON_NAME "yacc.c"
# Line 58 | Line 58
58   /* Pull parsers.  */
59   #define YYPULL 1
60  
61 /* Using locations.  */
62 #define YYLSP_NEEDED 0
61  
62  
63  
64   /* Copy the first part of user declarations.  */
65 + #line 28 "conf_parser.y" /* yacc.c:339  */
66  
68 /* Line 268 of yacc.c  */
69 #line 25 "ircd_parser.y"
70
71
72 #define YY_NO_UNPUT
73 #include <sys/types.h>
74 #include <string.h>
67  
68   #include "config.h"
69   #include "stdinc.h"
70   #include "ircd.h"
71   #include "list.h"
72 < #include "s_conf.h"
72 > #include "conf.h"
73 > #include "conf_class.h"
74 > #include "conf_cluster.h"
75 > #include "conf_gecos.h"
76 > #include "conf_pseudo.h"
77 > #include "conf_resv.h"
78 > #include "conf_service.h"
79 > #include "conf_shared.h"
80   #include "event.h"
81 < #include "s_log.h"
82 < #include "client.h"     /* for UMODE_ALL only */
81 > #include "id.h"
82 > #include "log.h"
83   #include "irc_string.h"
85 #include "sprintf_irc.h"
84   #include "memory.h"
85   #include "modules.h"
86 < #include "s_serv.h"
86 > #include "server.h"
87   #include "hostmask.h"
90 #include "send.h"
88   #include "listener.h"
89 < #include "resv.h"
90 < #include "numeric.h"
94 < #include "s_user.h"
95 <
96 < #ifdef HAVE_LIBCRYPTO
97 < #include <openssl/rsa.h>
98 < #include <openssl/bio.h>
99 < #include <openssl/pem.h>
100 < #endif
89 > #include "user.h"
90 > #include "motd.h"
91  
92 < 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 dlink_list hub_conf_list  = { NULL, NULL, 0 };
111 < static dlink_list leaf_conf_list = { NULL, NULL, 0 };
112 < static unsigned int listener_flags = 0;
113 < static unsigned int regex_ban = 0;
114 < static char userbuf[IRCD_BUFSIZE];
115 < static char hostbuf[IRCD_BUFSIZE];
116 < static char reasonbuf[REASONLEN + 1];
117 < static char gecos_name[REALLEN * 4];
118 <
119 < static char *resv_reason = NULL;
120 < static char *listener_address = NULL;
121 < static int not_atom = 0;
92 > int yylex(void);
93  
94 < struct CollectItem
94 > static struct
95   {
96 <  dlink_node node;
97 <  char *name;
98 <  char *user;
99 <  char *host;
100 <  char *passwd;
101 <  int  port;
102 <  int  flags;
103 < #ifdef HAVE_LIBCRYPTO
104 <  char *rsa_public_key_file;
105 <  RSA *rsa_public_key;
106 < #endif
107 < };
96 >  struct
97 >  {
98 >    dlink_list list;
99 >  } mask,
100 >    leaf,
101 >    hub;
102 >
103 >  struct
104 >  {
105 >    char buf[IRCD_BUFSIZE];
106 >  } name,
107 >    nick,
108 >    user,
109 >    host,
110 >    addr,
111 >    bind,
112 >    file,
113 >    ciph,
114 >    cert,
115 >    rpass,
116 >    spass,
117 >    whois,
118 >    class,
119 >    target,
120 >    prepend,
121 >    command;
122 >
123 >  struct
124 >  {
125 >    unsigned int value;
126 >  } flags,
127 >    modes,
128 >    size,
129 >    type,
130 >    port,
131 >    aftype,
132 >    ping_freq,
133 >    max_perip,
134 >    con_freq,
135 >    min_idle,
136 >    max_idle,
137 >    max_total,
138 >    max_global,
139 >    max_local,
140 >    max_sendq,
141 >    max_recvq,
142 >    max_channels,
143 >    cidr_bitlen_ipv4,
144 >    cidr_bitlen_ipv6,
145 >    number_per_cidr;
146 > } block_state;
147  
148   static void
149 < free_collect_item(struct CollectItem *item)
149 > reset_block_state(void)
150   {
151 <  MyFree(item->name);
142 <  MyFree(item->user);
143 <  MyFree(item->host);
144 <  MyFree(item->passwd);
145 < #ifdef HAVE_LIBCRYPTO
146 <  MyFree(item->rsa_public_key_file);
147 < #endif
148 <  MyFree(item);
149 < }
151 >  dlink_node *node = NULL, *node_next = NULL;
152  
153 < static void
154 < unhook_hub_leaf_confs(void)
155 < {
156 <  dlink_node *ptr;
157 <  dlink_node *next_ptr;
158 <  struct CollectItem *yy_hconf;
157 <  struct CollectItem *yy_lconf;
153 >  DLINK_FOREACH_SAFE(node, node_next, block_state.mask.list.head)
154 >  {
155 >    xfree(node->data);
156 >    dlinkDelete(node, &block_state.mask.list);
157 >    free_dlink_node(node);
158 >  }
159  
160 <  DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
160 >  DLINK_FOREACH_SAFE(node, node_next, block_state.leaf.list.head)
161    {
162 <    yy_hconf = ptr->data;
163 <    dlinkDelete(&yy_hconf->node, &hub_conf_list);
164 <    free_collect_item(yy_hconf);
162 >    xfree(node->data);
163 >    dlinkDelete(node, &block_state.leaf.list);
164 >    free_dlink_node(node);
165    }
166  
167 <  DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
167 >  DLINK_FOREACH_SAFE(node, node_next, block_state.hub.list.head)
168    {
169 <    yy_lconf = ptr->data;
170 <    dlinkDelete(&yy_lconf->node, &leaf_conf_list);
171 <    free_collect_item(yy_lconf);
169 >    xfree(node->data);
170 >    dlinkDelete(node, &block_state.hub.list);
171 >    free_dlink_node(node);
172    }
172 }
173  
174 +  memset(&block_state, 0, sizeof(block_state));
175 + }
176  
177  
178 < /* Line 268 of yacc.c  */
177 < #line 178 "ircd_parser.c"
178 > #line 179 "conf_parser.c" /* yacc.c:339  */
179  
180 < /* Enabling traces.  */
181 < #ifndef YYDEBUG
182 < # define YYDEBUG 0
183 < #endif
180 > # ifndef YY_NULLPTR
181 > #  if defined __cplusplus && 201103L <= __cplusplus
182 > #   define YY_NULLPTR nullptr
183 > #  else
184 > #   define YY_NULLPTR 0
185 > #  endif
186 > # endif
187  
188   /* Enabling verbose error messages.  */
189   #ifdef YYERROR_VERBOSE
# Line 189 | Line 193 | unhook_hub_leaf_confs(void)
193   # define YYERROR_VERBOSE 0
194   #endif
195  
196 < /* Enabling the token table.  */
197 < #ifndef YYTOKEN_TABLE
198 < # define YYTOKEN_TABLE 0
196 > /* In a future release of Bison, this section will be replaced
197 >   by #include "y.tab.h".  */
198 > #ifndef YY_YY_CONF_PARSER_H_INCLUDED
199 > # define YY_YY_CONF_PARSER_H_INCLUDED
200 > /* Debug traces.  */
201 > #ifndef YYDEBUG
202 > # define YYDEBUG 0
203 > #endif
204 > #if YYDEBUG
205 > extern int yydebug;
206   #endif
207  
208 <
198 < /* Tokens.  */
208 > /* Token type.  */
209   #ifndef YYTOKENTYPE
210   # define YYTOKENTYPE
211 <   /* Put the tokens into the symbol table, so that GDB and other debuggers
212 <      know about them.  */
213 <   enum yytokentype {
214 <     ACCEPT_PASSWORD = 258,
215 <     ACTION = 259,
216 <     ADMIN = 260,
217 <     AFTYPE = 261,
218 <     T_ALLOW = 262,
219 <     ANTI_NICK_FLOOD = 263,
220 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 264,
221 <     AUTOCONN = 265,
222 <     T_BLOCK = 266,
223 <     BURST_AWAY = 267,
224 <     BURST_TOPICWHO = 268,
225 <     BYTES = 269,
226 <     KBYTES = 270,
227 <     MBYTES = 271,
228 <     GBYTES = 272,
229 <     TBYTES = 273,
230 <     CALLER_ID_WAIT = 274,
231 <     CAN_FLOOD = 275,
232 <     CAN_IDLE = 276,
233 <     CHANNEL = 277,
234 <     CIDR_BITLEN_IPV4 = 278,
235 <     CIDR_BITLEN_IPV6 = 279,
236 <     CIPHER_PREFERENCE = 280,
237 <     CLASS = 281,
238 <     COMPRESSED = 282,
239 <     COMPRESSION_LEVEL = 283,
240 <     CONNECT = 284,
241 <     CONNECTFREQ = 285,
242 <     CRYPTLINK = 286,
243 <     DEFAULT_CIPHER_PREFERENCE = 287,
244 <     DEFAULT_FLOODCOUNT = 288,
245 <     DEFAULT_SPLIT_SERVER_COUNT = 289,
246 <     DEFAULT_SPLIT_USER_COUNT = 290,
247 <     DENY = 291,
248 <     DESCRIPTION = 292,
249 <     DIE = 293,
250 <     DISABLE_AUTH = 294,
251 <     DISABLE_FAKE_CHANNELS = 295,
252 <     DISABLE_HIDDEN = 296,
253 <     DISABLE_LOCAL_CHANNELS = 297,
254 <     DISABLE_REMOTE_COMMANDS = 298,
255 <     DOTS_IN_IDENT = 299,
256 <     DURATION = 300,
257 <     EGDPOOL_PATH = 301,
258 <     EMAIL = 302,
259 <     ENABLE = 303,
260 <     ENCRYPTED = 304,
261 <     EXCEED_LIMIT = 305,
262 <     EXEMPT = 306,
263 <     FAILED_OPER_NOTICE = 307,
264 <     IRCD_FLAGS = 308,
265 <     FLATTEN_LINKS = 309,
266 <     FFAILED_OPERLOG = 310,
267 <     FKILLLOG = 311,
268 <     FKLINELOG = 312,
269 <     FGLINELOG = 313,
270 <     FIOERRLOG = 314,
271 <     FOPERLOG = 315,
272 <     FOPERSPYLOG = 316,
273 <     FUSERLOG = 317,
274 <     GECOS = 318,
275 <     GENERAL = 319,
276 <     GLINE = 320,
277 <     GLINES = 321,
278 <     GLINE_EXEMPT = 322,
279 <     GLINE_LOG = 323,
280 <     GLINE_TIME = 324,
281 <     GLINE_MIN_CIDR = 325,
282 <     GLINE_MIN_CIDR6 = 326,
283 <     GLOBAL_KILL = 327,
284 <     IRCD_AUTH = 328,
285 <     NEED_IDENT = 329,
286 <     HAVENT_READ_CONF = 330,
287 <     HIDDEN = 331,
288 <     HIDDEN_ADMIN = 332,
289 <     HIDDEN_NAME = 333,
290 <     HIDDEN_OPER = 334,
291 <     HIDE_SERVER_IPS = 335,
292 <     HIDE_SERVERS = 336,
293 <     HIDE_SPOOF_IPS = 337,
294 <     HOST = 338,
295 <     HUB = 339,
296 <     HUB_MASK = 340,
297 <     IDLETIME = 341,
298 <     IGNORE_BOGUS_TS = 342,
299 <     INVISIBLE_ON_CONNECT = 343,
300 <     IP = 344,
301 <     KILL = 345,
302 <     KILL_CHASE_TIME_LIMIT = 346,
303 <     KLINE = 347,
304 <     KLINE_EXEMPT = 348,
305 <     KLINE_REASON = 349,
306 <     KLINE_WITH_REASON = 350,
307 <     KNOCK_DELAY = 351,
308 <     KNOCK_DELAY_CHANNEL = 352,
309 <     LEAF_MASK = 353,
310 <     LINKS_DELAY = 354,
311 <     LISTEN = 355,
312 <     T_LOG = 356,
313 <     LOGGING = 357,
314 <     LOG_LEVEL = 358,
315 <     MAX_ACCEPT = 359,
316 <     MAX_BANS = 360,
317 <     MAX_CHANS_PER_USER = 361,
318 <     MAX_GLOBAL = 362,
319 <     MAX_IDENT = 363,
320 <     MAX_LOCAL = 364,
321 <     MAX_NICK_CHANGES = 365,
322 <     MAX_NICK_TIME = 366,
323 <     MAX_NUMBER = 367,
324 <     MAX_TARGETS = 368,
325 <     MAX_WATCH = 369,
326 <     MESSAGE_LOCALE = 370,
327 <     MIN_NONWILDCARD = 371,
328 <     MIN_NONWILDCARD_SIMPLE = 372,
329 <     MODULE = 373,
330 <     MODULES = 374,
331 <     NAME = 375,
332 <     NEED_PASSWORD = 376,
333 <     NETWORK_DESC = 377,
334 <     NETWORK_NAME = 378,
335 <     NICK = 379,
336 <     NICK_CHANGES = 380,
337 <     NO_CREATE_ON_SPLIT = 381,
338 <     NO_JOIN_ON_SPLIT = 382,
339 <     NO_OPER_FLOOD = 383,
340 <     NO_TILDE = 384,
341 <     NOT = 385,
342 <     NUMBER = 386,
343 <     NUMBER_PER_IDENT = 387,
344 <     NUMBER_PER_CIDR = 388,
345 <     NUMBER_PER_IP = 389,
346 <     NUMBER_PER_IP_GLOBAL = 390,
347 <     OPERATOR = 391,
348 <     OPERS_BYPASS_CALLERID = 392,
349 <     OPER_LOG = 393,
350 <     OPER_ONLY_UMODES = 394,
351 <     OPER_PASS_RESV = 395,
352 <     OPER_SPY_T = 396,
353 <     OPER_UMODES = 397,
354 <     JOIN_FLOOD_COUNT = 398,
355 <     JOIN_FLOOD_TIME = 399,
356 <     PACE_WAIT = 400,
357 <     PACE_WAIT_SIMPLE = 401,
358 <     PASSWORD = 402,
359 <     PATH = 403,
360 <     PING_COOKIE = 404,
361 <     PING_TIME = 405,
362 <     PING_WARNING = 406,
363 <     PORT = 407,
364 <     QSTRING = 408,
365 <     QUIET_ON_BAN = 409,
366 <     REASON = 410,
367 <     REDIRPORT = 411,
368 <     REDIRSERV = 412,
369 <     REGEX_T = 413,
370 <     REHASH = 414,
371 <     TREJECT_HOLD_TIME = 415,
372 <     REMOTE = 416,
373 <     REMOTEBAN = 417,
374 <     RESTRICT_CHANNELS = 418,
375 <     RESTRICTED = 419,
376 <     RSA_PRIVATE_KEY_FILE = 420,
377 <     RSA_PUBLIC_KEY_FILE = 421,
378 <     SSL_CERTIFICATE_FILE = 422,
379 <     T_SSL_CONNECTION_METHOD = 423,
380 <     T_SSLV3 = 424,
381 <     T_TLSV1 = 425,
382 <     RESV = 426,
383 <     RESV_EXEMPT = 427,
384 <     SECONDS = 428,
385 <     MINUTES = 429,
386 <     HOURS = 430,
387 <     DAYS = 431,
388 <     WEEKS = 432,
389 <     SENDQ = 433,
390 <     SEND_PASSWORD = 434,
391 <     SERVERHIDE = 435,
392 <     SERVERINFO = 436,
393 <     SERVLINK_PATH = 437,
394 <     IRCD_SID = 438,
395 <     TKLINE_EXPIRE_NOTICES = 439,
396 <     T_SHARED = 440,
397 <     T_CLUSTER = 441,
398 <     TYPE = 442,
399 <     SHORT_MOTD = 443,
400 <     SILENT = 444,
401 <     SPOOF = 445,
402 <     SPOOF_NOTICE = 446,
403 <     STATS_E_DISABLED = 447,
404 <     STATS_I_OPER_ONLY = 448,
405 <     STATS_K_OPER_ONLY = 449,
406 <     STATS_O_OPER_ONLY = 450,
407 <     STATS_P_OPER_ONLY = 451,
408 <     TBOOL = 452,
409 <     TMASKED = 453,
410 <     T_REJECT = 454,
411 <     TS_MAX_DELTA = 455,
412 <     TS_WARN_DELTA = 456,
413 <     TWODOTS = 457,
414 <     T_ALL = 458,
415 <     T_BOTS = 459,
416 <     T_SOFTCALLERID = 460,
417 <     T_CALLERID = 461,
418 <     T_CCONN = 462,
419 <     T_CCONN_FULL = 463,
420 <     T_CLIENT_FLOOD = 464,
421 <     T_DEAF = 465,
422 <     T_DEBUG = 466,
423 <     T_DRONE = 467,
424 <     T_EXTERNAL = 468,
425 <     T_FULL = 469,
426 <     T_INVISIBLE = 470,
427 <     T_IPV4 = 471,
428 <     T_IPV6 = 472,
429 <     T_LOCOPS = 473,
430 <     T_LOGPATH = 474,
431 <     T_L_CRIT = 475,
432 <     T_L_DEBUG = 476,
433 <     T_L_ERROR = 477,
434 <     T_L_INFO = 478,
435 <     T_L_NOTICE = 479,
436 <     T_L_TRACE = 480,
437 <     T_L_WARN = 481,
438 <     T_MAX_CLIENTS = 482,
439 <     T_NCHANGE = 483,
440 <     T_OPERWALL = 484,
441 <     T_REJ = 485,
442 <     T_SERVER = 486,
443 <     T_SERVNOTICE = 487,
444 <     T_SKILL = 488,
445 <     T_SPY = 489,
436 <     T_SSL = 490,
437 <     T_UMODES = 491,
438 <     T_UNAUTH = 492,
439 <     T_UNRESV = 493,
440 <     T_UNXLINE = 494,
441 <     T_WALLOP = 495,
442 <     THROTTLE_TIME = 496,
443 <     TOPICBURST = 497,
444 <     TRUE_NO_OPER_FLOOD = 498,
445 <     TKLINE = 499,
446 <     TXLINE = 500,
447 <     TRESV = 501,
448 <     UNKLINE = 502,
449 <     USER = 503,
450 <     USE_EGD = 504,
451 <     USE_EXCEPT = 505,
452 <     USE_INVEX = 506,
453 <     USE_KNOCK = 507,
454 <     USE_LOGGING = 508,
455 <     USE_WHOIS_ACTUALLY = 509,
456 <     VHOST = 510,
457 <     VHOST6 = 511,
458 <     XLINE = 512,
459 <     WARN = 513,
460 <     WARN_NO_NLINE = 514
461 <   };
211 >  enum yytokentype
212 >  {
213 >    ACCEPT_PASSWORD = 258,
214 >    ADMIN = 259,
215 >    AFTYPE = 260,
216 >    ANTI_NICK_FLOOD = 261,
217 >    ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
218 >    AUTOCONN = 263,
219 >    AWAY_COUNT = 264,
220 >    AWAY_TIME = 265,
221 >    BYTES = 266,
222 >    KBYTES = 267,
223 >    MBYTES = 268,
224 >    CALLER_ID_WAIT = 269,
225 >    CAN_FLOOD = 270,
226 >    CHANNEL = 271,
227 >    CHECK_CACHE = 272,
228 >    CIDR_BITLEN_IPV4 = 273,
229 >    CIDR_BITLEN_IPV6 = 274,
230 >    CLASS = 275,
231 >    CLOSE = 276,
232 >    CONNECT = 277,
233 >    CONNECTFREQ = 278,
234 >    CYCLE_ON_HOST_CHANGE = 279,
235 >    DEFAULT_FLOODCOUNT = 280,
236 >    DEFAULT_JOIN_FLOOD_COUNT = 281,
237 >    DEFAULT_JOIN_FLOOD_TIME = 282,
238 >    DEFAULT_MAX_CLIENTS = 283,
239 >    DENY = 284,
240 >    DESCRIPTION = 285,
241 >    DIE = 286,
242 >    DISABLE_AUTH = 287,
243 >    DISABLE_FAKE_CHANNELS = 288,
244 >    DISABLE_REMOTE_COMMANDS = 289,
245 >    DLINE_MIN_CIDR = 290,
246 >    DLINE_MIN_CIDR6 = 291,
247 >    DOTS_IN_IDENT = 292,
248 >    EMAIL = 293,
249 >    ENCRYPTED = 294,
250 >    EXCEED_LIMIT = 295,
251 >    EXEMPT = 296,
252 >    FAILED_OPER_NOTICE = 297,
253 >    FLATTEN_LINKS = 298,
254 >    FLATTEN_LINKS_DELAY = 299,
255 >    FLATTEN_LINKS_FILE = 300,
256 >    GECOS = 301,
257 >    GENERAL = 302,
258 >    HIDDEN = 303,
259 >    HIDDEN_NAME = 304,
260 >    HIDE_CHANS = 305,
261 >    HIDE_IDLE = 306,
262 >    HIDE_IDLE_FROM_OPERS = 307,
263 >    HIDE_SERVER_IPS = 308,
264 >    HIDE_SERVERS = 309,
265 >    HIDE_SERVICES = 310,
266 >    HOST = 311,
267 >    HUB = 312,
268 >    HUB_MASK = 313,
269 >    IGNORE_BOGUS_TS = 314,
270 >    INVISIBLE_ON_CONNECT = 315,
271 >    INVITE_CLIENT_COUNT = 316,
272 >    INVITE_CLIENT_TIME = 317,
273 >    INVITE_DELAY_CHANNEL = 318,
274 >    IP = 319,
275 >    IRCD_AUTH = 320,
276 >    IRCD_FLAGS = 321,
277 >    IRCD_SID = 322,
278 >    JOIN = 323,
279 >    KILL = 324,
280 >    KILL_CHASE_TIME_LIMIT = 325,
281 >    KLINE = 326,
282 >    KLINE_EXEMPT = 327,
283 >    KLINE_MIN_CIDR = 328,
284 >    KLINE_MIN_CIDR6 = 329,
285 >    KNOCK_CLIENT_COUNT = 330,
286 >    KNOCK_CLIENT_TIME = 331,
287 >    KNOCK_DELAY_CHANNEL = 332,
288 >    LEAF_MASK = 333,
289 >    LIBGEOIP_DATABASE_OPTIONS = 334,
290 >    LIBGEOIP_IPV4_DATABASE_FILE = 335,
291 >    LIBGEOIP_IPV6_DATABASE_FILE = 336,
292 >    LISTEN = 337,
293 >    MASK = 338,
294 >    MAX_ACCEPT = 339,
295 >    MAX_BANS = 340,
296 >    MAX_CHANNELS = 341,
297 >    MAX_GLOBAL = 342,
298 >    MAX_IDLE = 343,
299 >    MAX_INVITES = 344,
300 >    MAX_LOCAL = 345,
301 >    MAX_NICK_CHANGES = 346,
302 >    MAX_NICK_LENGTH = 347,
303 >    MAX_NICK_TIME = 348,
304 >    MAX_NUMBER = 349,
305 >    MAX_TARGETS = 350,
306 >    MAX_TOPIC_LENGTH = 351,
307 >    MAX_WATCH = 352,
308 >    MEMORY_CACHE = 353,
309 >    MIN_IDLE = 354,
310 >    MIN_NONWILDCARD = 355,
311 >    MIN_NONWILDCARD_SIMPLE = 356,
312 >    MMAP_CACHE = 357,
313 >    MODULE = 358,
314 >    MODULES = 359,
315 >    MOTD = 360,
316 >    NAME = 361,
317 >    NEED_IDENT = 362,
318 >    NEED_PASSWORD = 363,
319 >    NETWORK_DESC = 364,
320 >    NETWORK_NAME = 365,
321 >    NICK = 366,
322 >    NO_OPER_FLOOD = 367,
323 >    NO_TILDE = 368,
324 >    NUMBER = 369,
325 >    NUMBER_PER_CIDR = 370,
326 >    NUMBER_PER_IP = 371,
327 >    OPER_ONLY_UMODES = 372,
328 >    OPER_UMODES = 373,
329 >    OPERATOR = 374,
330 >    OPERS_BYPASS_CALLERID = 375,
331 >    PACE_WAIT = 376,
332 >    PACE_WAIT_SIMPLE = 377,
333 >    PASSWORD = 378,
334 >    PATH = 379,
335 >    PING_COOKIE = 380,
336 >    PING_TIME = 381,
337 >    PORT = 382,
338 >    QSTRING = 383,
339 >    RANDOM_IDLE = 384,
340 >    REASON = 385,
341 >    REDIRPORT = 386,
342 >    REDIRSERV = 387,
343 >    REHASH = 388,
344 >    REMOTE = 389,
345 >    REMOTEBAN = 390,
346 >    RESV = 391,
347 >    RESV_EXEMPT = 392,
348 >    RSA_PRIVATE_KEY_FILE = 393,
349 >    SECONDS = 394,
350 >    MINUTES = 395,
351 >    HOURS = 396,
352 >    DAYS = 397,
353 >    WEEKS = 398,
354 >    MONTHS = 399,
355 >    YEARS = 400,
356 >    SEND_PASSWORD = 401,
357 >    SENDQ = 402,
358 >    SERVERHIDE = 403,
359 >    SERVERINFO = 404,
360 >    SHORT_MOTD = 405,
361 >    SPOOF = 406,
362 >    SPOOF_NOTICE = 407,
363 >    SQUIT = 408,
364 >    SSL_CERTIFICATE_FILE = 409,
365 >    SSL_CERTIFICATE_FINGERPRINT = 410,
366 >    SSL_CONNECTION_REQUIRED = 411,
367 >    SSL_DH_ELLIPTIC_CURVE = 412,
368 >    SSL_DH_PARAM_FILE = 413,
369 >    SSL_MESSAGE_DIGEST_ALGORITHM = 414,
370 >    STANDARD = 415,
371 >    STATS_E_DISABLED = 416,
372 >    STATS_I_OPER_ONLY = 417,
373 >    STATS_K_OPER_ONLY = 418,
374 >    STATS_M_OPER_ONLY = 419,
375 >    STATS_O_OPER_ONLY = 420,
376 >    STATS_P_OPER_ONLY = 421,
377 >    STATS_U_OPER_ONLY = 422,
378 >    T_ALL = 423,
379 >    T_BOTS = 424,
380 >    T_CALLERID = 425,
381 >    T_CCONN = 426,
382 >    T_COMMAND = 427,
383 >    T_CLUSTER = 428,
384 >    T_DEAF = 429,
385 >    T_DEBUG = 430,
386 >    T_DLINE = 431,
387 >    T_EXTERNAL = 432,
388 >    T_FARCONNECT = 433,
389 >    T_FILE = 434,
390 >    T_FULL = 435,
391 >    T_GLOBOPS = 436,
392 >    T_INVISIBLE = 437,
393 >    T_IPV4 = 438,
394 >    T_IPV6 = 439,
395 >    T_LOCOPS = 440,
396 >    T_LOG = 441,
397 >    T_NCHANGE = 442,
398 >    T_NONONREG = 443,
399 >    T_OPME = 444,
400 >    T_PREPEND = 445,
401 >    T_PSEUDO = 446,
402 >    T_RECVQ = 447,
403 >    T_REJ = 448,
404 >    T_RESTART = 449,
405 >    T_SERVER = 450,
406 >    T_SERVICE = 451,
407 >    T_SERVNOTICE = 452,
408 >    T_SET = 453,
409 >    T_SHARED = 454,
410 >    T_SIZE = 455,
411 >    T_SKILL = 456,
412 >    T_SOFTCALLERID = 457,
413 >    T_SPY = 458,
414 >    T_SSL = 459,
415 >    T_SSL_CIPHER_LIST = 460,
416 >    T_TARGET = 461,
417 >    T_UMODES = 462,
418 >    T_UNAUTH = 463,
419 >    T_UNDLINE = 464,
420 >    T_UNLIMITED = 465,
421 >    T_UNRESV = 466,
422 >    T_UNXLINE = 467,
423 >    T_WALLOP = 468,
424 >    T_WALLOPS = 469,
425 >    T_WEBIRC = 470,
426 >    TBOOL = 471,
427 >    THROTTLE_COUNT = 472,
428 >    THROTTLE_TIME = 473,
429 >    TKLINE_EXPIRE_NOTICES = 474,
430 >    TMASKED = 475,
431 >    TS_MAX_DELTA = 476,
432 >    TS_WARN_DELTA = 477,
433 >    TWODOTS = 478,
434 >    TYPE = 479,
435 >    UNKLINE = 480,
436 >    USE_LOGGING = 481,
437 >    USER = 482,
438 >    VHOST = 483,
439 >    VHOST6 = 484,
440 >    WARN_NO_CONNECT_BLOCK = 485,
441 >    WHOIS = 486,
442 >    WHOWAS_HISTORY_LENGTH = 487,
443 >    XLINE = 488,
444 >    XLINE_EXEMPT = 489
445 >  };
446   #endif
447   /* Tokens.  */
448   #define ACCEPT_PASSWORD 258
449 < #define ACTION 259
450 < #define ADMIN 260
451 < #define AFTYPE 261
452 < #define T_ALLOW 262
453 < #define ANTI_NICK_FLOOD 263
454 < #define ANTI_SPAM_EXIT_MESSAGE_TIME 264
455 < #define AUTOCONN 265
456 < #define T_BLOCK 266
457 < #define BURST_AWAY 267
458 < #define BURST_TOPICWHO 268
459 < #define BYTES 269
460 < #define KBYTES 270
461 < #define MBYTES 271
462 < #define GBYTES 272
463 < #define TBYTES 273
464 < #define CALLER_ID_WAIT 274
465 < #define CAN_FLOOD 275
466 < #define CAN_IDLE 276
467 < #define CHANNEL 277
468 < #define CIDR_BITLEN_IPV4 278
469 < #define CIDR_BITLEN_IPV6 279
470 < #define CIPHER_PREFERENCE 280
471 < #define CLASS 281
472 < #define COMPRESSED 282
473 < #define COMPRESSION_LEVEL 283
474 < #define CONNECT 284
475 < #define CONNECTFREQ 285
476 < #define CRYPTLINK 286
477 < #define DEFAULT_CIPHER_PREFERENCE 287
478 < #define DEFAULT_FLOODCOUNT 288
479 < #define DEFAULT_SPLIT_SERVER_COUNT 289
480 < #define DEFAULT_SPLIT_USER_COUNT 290
481 < #define DENY 291
482 < #define DESCRIPTION 292
483 < #define DIE 293
484 < #define DISABLE_AUTH 294
485 < #define DISABLE_FAKE_CHANNELS 295
486 < #define DISABLE_HIDDEN 296
487 < #define DISABLE_LOCAL_CHANNELS 297
488 < #define DISABLE_REMOTE_COMMANDS 298
489 < #define DOTS_IN_IDENT 299
490 < #define DURATION 300
491 < #define EGDPOOL_PATH 301
492 < #define EMAIL 302
493 < #define ENABLE 303
494 < #define ENCRYPTED 304
495 < #define EXCEED_LIMIT 305
496 < #define EXEMPT 306
497 < #define FAILED_OPER_NOTICE 307
498 < #define IRCD_FLAGS 308
499 < #define FLATTEN_LINKS 309
500 < #define FFAILED_OPERLOG 310
501 < #define FKILLLOG 311
502 < #define FKLINELOG 312
503 < #define FGLINELOG 313
504 < #define FIOERRLOG 314
505 < #define FOPERLOG 315
506 < #define FOPERSPYLOG 316
507 < #define FUSERLOG 317
508 < #define GECOS 318
509 < #define GENERAL 319
510 < #define GLINE 320
511 < #define GLINES 321
512 < #define GLINE_EXEMPT 322
513 < #define GLINE_LOG 323
514 < #define GLINE_TIME 324
515 < #define GLINE_MIN_CIDR 325
516 < #define GLINE_MIN_CIDR6 326
517 < #define GLOBAL_KILL 327
518 < #define IRCD_AUTH 328
519 < #define NEED_IDENT 329
520 < #define HAVENT_READ_CONF 330
521 < #define HIDDEN 331
522 < #define HIDDEN_ADMIN 332
523 < #define HIDDEN_NAME 333
524 < #define HIDDEN_OPER 334
525 < #define HIDE_SERVER_IPS 335
526 < #define HIDE_SERVERS 336
527 < #define HIDE_SPOOF_IPS 337
528 < #define HOST 338
529 < #define HUB 339
530 < #define HUB_MASK 340
531 < #define IDLETIME 341
532 < #define IGNORE_BOGUS_TS 342
533 < #define INVISIBLE_ON_CONNECT 343
534 < #define IP 344
535 < #define KILL 345
536 < #define KILL_CHASE_TIME_LIMIT 346
537 < #define KLINE 347
538 < #define KLINE_EXEMPT 348
539 < #define KLINE_REASON 349
540 < #define KLINE_WITH_REASON 350
541 < #define KNOCK_DELAY 351
542 < #define KNOCK_DELAY_CHANNEL 352
543 < #define LEAF_MASK 353
544 < #define LINKS_DELAY 354
545 < #define LISTEN 355
546 < #define T_LOG 356
547 < #define LOGGING 357
548 < #define LOG_LEVEL 358
549 < #define MAX_ACCEPT 359
550 < #define MAX_BANS 360
551 < #define MAX_CHANS_PER_USER 361
552 < #define MAX_GLOBAL 362
553 < #define MAX_IDENT 363
554 < #define MAX_LOCAL 364
555 < #define MAX_NICK_CHANGES 365
556 < #define MAX_NICK_TIME 366
557 < #define MAX_NUMBER 367
558 < #define MAX_TARGETS 368
559 < #define MAX_WATCH 369
560 < #define MESSAGE_LOCALE 370
561 < #define MIN_NONWILDCARD 371
562 < #define MIN_NONWILDCARD_SIMPLE 372
563 < #define MODULE 373
564 < #define MODULES 374
565 < #define NAME 375
566 < #define NEED_PASSWORD 376
567 < #define NETWORK_DESC 377
568 < #define NETWORK_NAME 378
569 < #define NICK 379
570 < #define NICK_CHANGES 380
571 < #define NO_CREATE_ON_SPLIT 381
572 < #define NO_JOIN_ON_SPLIT 382
573 < #define NO_OPER_FLOOD 383
574 < #define NO_TILDE 384
575 < #define NOT 385
576 < #define NUMBER 386
577 < #define NUMBER_PER_IDENT 387
578 < #define NUMBER_PER_CIDR 388
579 < #define NUMBER_PER_IP 389
580 < #define NUMBER_PER_IP_GLOBAL 390
581 < #define OPERATOR 391
582 < #define OPERS_BYPASS_CALLERID 392
583 < #define OPER_LOG 393
584 < #define OPER_ONLY_UMODES 394
585 < #define OPER_PASS_RESV 395
586 < #define OPER_SPY_T 396
587 < #define OPER_UMODES 397
588 < #define JOIN_FLOOD_COUNT 398
589 < #define JOIN_FLOOD_TIME 399
590 < #define PACE_WAIT 400
591 < #define PACE_WAIT_SIMPLE 401
592 < #define PASSWORD 402
593 < #define PATH 403
594 < #define PING_COOKIE 404
595 < #define PING_TIME 405
596 < #define PING_WARNING 406
597 < #define PORT 407
598 < #define QSTRING 408
599 < #define QUIET_ON_BAN 409
600 < #define REASON 410
601 < #define REDIRPORT 411
602 < #define REDIRSERV 412
603 < #define REGEX_T 413
604 < #define REHASH 414
605 < #define TREJECT_HOLD_TIME 415
606 < #define REMOTE 416
607 < #define REMOTEBAN 417
608 < #define RESTRICT_CHANNELS 418
609 < #define RESTRICTED 419
610 < #define RSA_PRIVATE_KEY_FILE 420
611 < #define RSA_PUBLIC_KEY_FILE 421
612 < #define SSL_CERTIFICATE_FILE 422
613 < #define T_SSL_CONNECTION_METHOD 423
614 < #define T_SSLV3 424
615 < #define T_TLSV1 425
616 < #define RESV 426
617 < #define RESV_EXEMPT 427
618 < #define SECONDS 428
619 < #define MINUTES 429
620 < #define HOURS 430
621 < #define DAYS 431
622 < #define WEEKS 432
623 < #define SENDQ 433
624 < #define SEND_PASSWORD 434
625 < #define SERVERHIDE 435
626 < #define SERVERINFO 436
627 < #define SERVLINK_PATH 437
628 < #define IRCD_SID 438
629 < #define TKLINE_EXPIRE_NOTICES 439
630 < #define T_SHARED 440
631 < #define T_CLUSTER 441
632 < #define TYPE 442
633 < #define SHORT_MOTD 443
634 < #define SILENT 444
635 < #define SPOOF 445
636 < #define SPOOF_NOTICE 446
637 < #define STATS_E_DISABLED 447
638 < #define STATS_I_OPER_ONLY 448
639 < #define STATS_K_OPER_ONLY 449
640 < #define STATS_O_OPER_ONLY 450
641 < #define STATS_P_OPER_ONLY 451
642 < #define TBOOL 452
643 < #define TMASKED 453
644 < #define T_REJECT 454
645 < #define TS_MAX_DELTA 455
646 < #define TS_WARN_DELTA 456
647 < #define TWODOTS 457
648 < #define T_ALL 458
649 < #define T_BOTS 459
650 < #define T_SOFTCALLERID 460
651 < #define T_CALLERID 461
652 < #define T_CCONN 462
653 < #define T_CCONN_FULL 463
654 < #define T_CLIENT_FLOOD 464
655 < #define T_DEAF 465
656 < #define T_DEBUG 466
657 < #define T_DRONE 467
658 < #define T_EXTERNAL 468
659 < #define T_FULL 469
660 < #define T_INVISIBLE 470
661 < #define T_IPV4 471
662 < #define T_IPV6 472
663 < #define T_LOCOPS 473
664 < #define T_LOGPATH 474
665 < #define T_L_CRIT 475
666 < #define T_L_DEBUG 476
667 < #define T_L_ERROR 477
668 < #define T_L_INFO 478
669 < #define T_L_NOTICE 479
670 < #define T_L_TRACE 480
671 < #define T_L_WARN 481
672 < #define T_MAX_CLIENTS 482
673 < #define T_NCHANGE 483
674 < #define T_OPERWALL 484
675 < #define T_REJ 485
676 < #define T_SERVER 486
677 < #define T_SERVNOTICE 487
678 < #define T_SKILL 488
679 < #define T_SPY 489
696 < #define T_SSL 490
697 < #define T_UMODES 491
698 < #define T_UNAUTH 492
699 < #define T_UNRESV 493
700 < #define T_UNXLINE 494
701 < #define T_WALLOP 495
702 < #define THROTTLE_TIME 496
703 < #define TOPICBURST 497
704 < #define TRUE_NO_OPER_FLOOD 498
705 < #define TKLINE 499
706 < #define TXLINE 500
707 < #define TRESV 501
708 < #define UNKLINE 502
709 < #define USER 503
710 < #define USE_EGD 504
711 < #define USE_EXCEPT 505
712 < #define USE_INVEX 506
713 < #define USE_KNOCK 507
714 < #define USE_LOGGING 508
715 < #define USE_WHOIS_ACTUALLY 509
716 < #define VHOST 510
717 < #define VHOST6 511
718 < #define XLINE 512
719 < #define WARN 513
720 < #define WARN_NO_NLINE 514
721 <
722 <
723 <
449 > #define ADMIN 259
450 > #define AFTYPE 260
451 > #define ANTI_NICK_FLOOD 261
452 > #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
453 > #define AUTOCONN 263
454 > #define AWAY_COUNT 264
455 > #define AWAY_TIME 265
456 > #define BYTES 266
457 > #define KBYTES 267
458 > #define MBYTES 268
459 > #define CALLER_ID_WAIT 269
460 > #define CAN_FLOOD 270
461 > #define CHANNEL 271
462 > #define CHECK_CACHE 272
463 > #define CIDR_BITLEN_IPV4 273
464 > #define CIDR_BITLEN_IPV6 274
465 > #define CLASS 275
466 > #define CLOSE 276
467 > #define CONNECT 277
468 > #define CONNECTFREQ 278
469 > #define CYCLE_ON_HOST_CHANGE 279
470 > #define DEFAULT_FLOODCOUNT 280
471 > #define DEFAULT_JOIN_FLOOD_COUNT 281
472 > #define DEFAULT_JOIN_FLOOD_TIME 282
473 > #define DEFAULT_MAX_CLIENTS 283
474 > #define DENY 284
475 > #define DESCRIPTION 285
476 > #define DIE 286
477 > #define DISABLE_AUTH 287
478 > #define DISABLE_FAKE_CHANNELS 288
479 > #define DISABLE_REMOTE_COMMANDS 289
480 > #define DLINE_MIN_CIDR 290
481 > #define DLINE_MIN_CIDR6 291
482 > #define DOTS_IN_IDENT 292
483 > #define EMAIL 293
484 > #define ENCRYPTED 294
485 > #define EXCEED_LIMIT 295
486 > #define EXEMPT 296
487 > #define FAILED_OPER_NOTICE 297
488 > #define FLATTEN_LINKS 298
489 > #define FLATTEN_LINKS_DELAY 299
490 > #define FLATTEN_LINKS_FILE 300
491 > #define GECOS 301
492 > #define GENERAL 302
493 > #define HIDDEN 303
494 > #define HIDDEN_NAME 304
495 > #define HIDE_CHANS 305
496 > #define HIDE_IDLE 306
497 > #define HIDE_IDLE_FROM_OPERS 307
498 > #define HIDE_SERVER_IPS 308
499 > #define HIDE_SERVERS 309
500 > #define HIDE_SERVICES 310
501 > #define HOST 311
502 > #define HUB 312
503 > #define HUB_MASK 313
504 > #define IGNORE_BOGUS_TS 314
505 > #define INVISIBLE_ON_CONNECT 315
506 > #define INVITE_CLIENT_COUNT 316
507 > #define INVITE_CLIENT_TIME 317
508 > #define INVITE_DELAY_CHANNEL 318
509 > #define IP 319
510 > #define IRCD_AUTH 320
511 > #define IRCD_FLAGS 321
512 > #define IRCD_SID 322
513 > #define JOIN 323
514 > #define KILL 324
515 > #define KILL_CHASE_TIME_LIMIT 325
516 > #define KLINE 326
517 > #define KLINE_EXEMPT 327
518 > #define KLINE_MIN_CIDR 328
519 > #define KLINE_MIN_CIDR6 329
520 > #define KNOCK_CLIENT_COUNT 330
521 > #define KNOCK_CLIENT_TIME 331
522 > #define KNOCK_DELAY_CHANNEL 332
523 > #define LEAF_MASK 333
524 > #define LIBGEOIP_DATABASE_OPTIONS 334
525 > #define LIBGEOIP_IPV4_DATABASE_FILE 335
526 > #define LIBGEOIP_IPV6_DATABASE_FILE 336
527 > #define LISTEN 337
528 > #define MASK 338
529 > #define MAX_ACCEPT 339
530 > #define MAX_BANS 340
531 > #define MAX_CHANNELS 341
532 > #define MAX_GLOBAL 342
533 > #define MAX_IDLE 343
534 > #define MAX_INVITES 344
535 > #define MAX_LOCAL 345
536 > #define MAX_NICK_CHANGES 346
537 > #define MAX_NICK_LENGTH 347
538 > #define MAX_NICK_TIME 348
539 > #define MAX_NUMBER 349
540 > #define MAX_TARGETS 350
541 > #define MAX_TOPIC_LENGTH 351
542 > #define MAX_WATCH 352
543 > #define MEMORY_CACHE 353
544 > #define MIN_IDLE 354
545 > #define MIN_NONWILDCARD 355
546 > #define MIN_NONWILDCARD_SIMPLE 356
547 > #define MMAP_CACHE 357
548 > #define MODULE 358
549 > #define MODULES 359
550 > #define MOTD 360
551 > #define NAME 361
552 > #define NEED_IDENT 362
553 > #define NEED_PASSWORD 363
554 > #define NETWORK_DESC 364
555 > #define NETWORK_NAME 365
556 > #define NICK 366
557 > #define NO_OPER_FLOOD 367
558 > #define NO_TILDE 368
559 > #define NUMBER 369
560 > #define NUMBER_PER_CIDR 370
561 > #define NUMBER_PER_IP 371
562 > #define OPER_ONLY_UMODES 372
563 > #define OPER_UMODES 373
564 > #define OPERATOR 374
565 > #define OPERS_BYPASS_CALLERID 375
566 > #define PACE_WAIT 376
567 > #define PACE_WAIT_SIMPLE 377
568 > #define PASSWORD 378
569 > #define PATH 379
570 > #define PING_COOKIE 380
571 > #define PING_TIME 381
572 > #define PORT 382
573 > #define QSTRING 383
574 > #define RANDOM_IDLE 384
575 > #define REASON 385
576 > #define REDIRPORT 386
577 > #define REDIRSERV 387
578 > #define REHASH 388
579 > #define REMOTE 389
580 > #define REMOTEBAN 390
581 > #define RESV 391
582 > #define RESV_EXEMPT 392
583 > #define RSA_PRIVATE_KEY_FILE 393
584 > #define SECONDS 394
585 > #define MINUTES 395
586 > #define HOURS 396
587 > #define DAYS 397
588 > #define WEEKS 398
589 > #define MONTHS 399
590 > #define YEARS 400
591 > #define SEND_PASSWORD 401
592 > #define SENDQ 402
593 > #define SERVERHIDE 403
594 > #define SERVERINFO 404
595 > #define SHORT_MOTD 405
596 > #define SPOOF 406
597 > #define SPOOF_NOTICE 407
598 > #define SQUIT 408
599 > #define SSL_CERTIFICATE_FILE 409
600 > #define SSL_CERTIFICATE_FINGERPRINT 410
601 > #define SSL_CONNECTION_REQUIRED 411
602 > #define SSL_DH_ELLIPTIC_CURVE 412
603 > #define SSL_DH_PARAM_FILE 413
604 > #define SSL_MESSAGE_DIGEST_ALGORITHM 414
605 > #define STANDARD 415
606 > #define STATS_E_DISABLED 416
607 > #define STATS_I_OPER_ONLY 417
608 > #define STATS_K_OPER_ONLY 418
609 > #define STATS_M_OPER_ONLY 419
610 > #define STATS_O_OPER_ONLY 420
611 > #define STATS_P_OPER_ONLY 421
612 > #define STATS_U_OPER_ONLY 422
613 > #define T_ALL 423
614 > #define T_BOTS 424
615 > #define T_CALLERID 425
616 > #define T_CCONN 426
617 > #define T_COMMAND 427
618 > #define T_CLUSTER 428
619 > #define T_DEAF 429
620 > #define T_DEBUG 430
621 > #define T_DLINE 431
622 > #define T_EXTERNAL 432
623 > #define T_FARCONNECT 433
624 > #define T_FILE 434
625 > #define T_FULL 435
626 > #define T_GLOBOPS 436
627 > #define T_INVISIBLE 437
628 > #define T_IPV4 438
629 > #define T_IPV6 439
630 > #define T_LOCOPS 440
631 > #define T_LOG 441
632 > #define T_NCHANGE 442
633 > #define T_NONONREG 443
634 > #define T_OPME 444
635 > #define T_PREPEND 445
636 > #define T_PSEUDO 446
637 > #define T_RECVQ 447
638 > #define T_REJ 448
639 > #define T_RESTART 449
640 > #define T_SERVER 450
641 > #define T_SERVICE 451
642 > #define T_SERVNOTICE 452
643 > #define T_SET 453
644 > #define T_SHARED 454
645 > #define T_SIZE 455
646 > #define T_SKILL 456
647 > #define T_SOFTCALLERID 457
648 > #define T_SPY 458
649 > #define T_SSL 459
650 > #define T_SSL_CIPHER_LIST 460
651 > #define T_TARGET 461
652 > #define T_UMODES 462
653 > #define T_UNAUTH 463
654 > #define T_UNDLINE 464
655 > #define T_UNLIMITED 465
656 > #define T_UNRESV 466
657 > #define T_UNXLINE 467
658 > #define T_WALLOP 468
659 > #define T_WALLOPS 469
660 > #define T_WEBIRC 470
661 > #define TBOOL 471
662 > #define THROTTLE_COUNT 472
663 > #define THROTTLE_TIME 473
664 > #define TKLINE_EXPIRE_NOTICES 474
665 > #define TMASKED 475
666 > #define TS_MAX_DELTA 476
667 > #define TS_WARN_DELTA 477
668 > #define TWODOTS 478
669 > #define TYPE 479
670 > #define UNKLINE 480
671 > #define USE_LOGGING 481
672 > #define USER 482
673 > #define VHOST 483
674 > #define VHOST6 484
675 > #define WARN_NO_CONNECT_BLOCK 485
676 > #define WHOIS 486
677 > #define WHOWAS_HISTORY_LENGTH 487
678 > #define XLINE 488
679 > #define XLINE_EXEMPT 489
680  
681 + /* Value type.  */
682   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
726 typedef union YYSTYPE
727 {
683  
684 < /* Line 293 of yacc.c  */
685 < #line 131 "ircd_parser.y"
684 > union YYSTYPE
685 > {
686 > #line 141 "conf_parser.y" /* yacc.c:355  */
687  
688    int number;
689    char *string;
690  
691 + #line 692 "conf_parser.c" /* yacc.c:355  */
692 + };
693  
694 <
737 < /* Line 293 of yacc.c  */
738 < #line 739 "ircd_parser.c"
739 < } YYSTYPE;
694 > typedef union YYSTYPE YYSTYPE;
695   # define YYSTYPE_IS_TRIVIAL 1
741 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
696   # define YYSTYPE_IS_DECLARED 1
697   #endif
698  
699  
700 < /* Copy the second part of user declarations.  */
700 > extern YYSTYPE yylval;
701  
702 + int yyparse (void);
703  
704 < /* Line 343 of yacc.c  */
705 < #line 751 "ircd_parser.c"
704 > #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
705 >
706 > /* Copy the second part of user declarations.  */
707 >
708 > #line 709 "conf_parser.c" /* yacc.c:358  */
709  
710   #ifdef short
711   # undef short
# Line 761 | Line 719 | typedef unsigned char yytype_uint8;
719  
720   #ifdef YYTYPE_INT8
721   typedef YYTYPE_INT8 yytype_int8;
764 #elif (defined __STDC__ || defined __C99__FUNC__ \
765     || defined __cplusplus || defined _MSC_VER)
766 typedef signed char yytype_int8;
722   #else
723 < typedef short int yytype_int8;
723 > typedef signed char yytype_int8;
724   #endif
725  
726   #ifdef YYTYPE_UINT16
# Line 785 | Line 740 | typedef short int yytype_int16;
740   #  define YYSIZE_T __SIZE_TYPE__
741   # elif defined size_t
742   #  define YYSIZE_T size_t
743 < # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
789 <     || defined __cplusplus || defined _MSC_VER)
743 > # elif ! defined YYSIZE_T
744   #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
745   #  define YYSIZE_T size_t
746   # else
# Line 800 | Line 754 | typedef short int yytype_int16;
754   # if defined YYENABLE_NLS && YYENABLE_NLS
755   #  if ENABLE_NLS
756   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
757 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
757 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
758   #  endif
759   # endif
760   # ifndef YY_
761 < #  define YY_(msgid) msgid
761 > #  define YY_(Msgid) Msgid
762 > # endif
763 > #endif
764 >
765 > #ifndef YY_ATTRIBUTE
766 > # if (defined __GNUC__                                               \
767 >      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
768 >     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
769 > #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
770 > # else
771 > #  define YY_ATTRIBUTE(Spec) /* empty */
772 > # endif
773 > #endif
774 >
775 > #ifndef YY_ATTRIBUTE_PURE
776 > # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
777 > #endif
778 >
779 > #ifndef YY_ATTRIBUTE_UNUSED
780 > # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
781 > #endif
782 >
783 > #if !defined _Noreturn \
784 >     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
785 > # if defined _MSC_VER && 1200 <= _MSC_VER
786 > #  define _Noreturn __declspec (noreturn)
787 > # else
788 > #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
789   # endif
790   #endif
791  
792   /* Suppress unused-variable warnings by "using" E.  */
793   #if ! defined lint || defined __GNUC__
794 < # define YYUSE(e) ((void) (e))
794 > # define YYUSE(E) ((void) (E))
795   #else
796 < # define YYUSE(e) /* empty */
796 > # define YYUSE(E) /* empty */
797   #endif
798  
799 < /* Identity function, used to suppress warnings about constant conditions.  */
800 < #ifndef lint
801 < # define YYID(n) (n)
799 > #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
800 > /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
801 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
802 >    _Pragma ("GCC diagnostic push") \
803 >    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
804 >    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
805 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
806 >    _Pragma ("GCC diagnostic pop")
807   #else
808 < #if (defined __STDC__ || defined __C99__FUNC__ \
823 <     || defined __cplusplus || defined _MSC_VER)
824 < static int
825 < YYID (int yyi)
826 < #else
827 < static int
828 < YYID (yyi)
829 <    int yyi;
808 > # define YY_INITIAL_VALUE(Value) Value
809   #endif
810 < {
811 <  return yyi;
812 < }
810 > #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
811 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
812 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END
813 > #endif
814 > #ifndef YY_INITIAL_VALUE
815 > # define YY_INITIAL_VALUE(Value) /* Nothing. */
816   #endif
817  
818 +
819   #if ! defined yyoverflow || YYERROR_VERBOSE
820  
821   /* The parser invokes alloca or malloc; define the necessary symbols.  */
# Line 850 | Line 833 | YYID (yyi)
833   #    define alloca _alloca
834   #   else
835   #    define YYSTACK_ALLOC alloca
836 < #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
854 <     || defined __cplusplus || defined _MSC_VER)
836 > #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
837   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
838 +      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
839   #     ifndef EXIT_SUCCESS
840   #      define EXIT_SUCCESS 0
841   #     endif
# Line 862 | Line 845 | YYID (yyi)
845   # endif
846  
847   # ifdef YYSTACK_ALLOC
848 <   /* Pacify GCC's `empty if-body' warning.  */
849 < #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
848 >   /* Pacify GCC's 'empty if-body' warning.  */
849 > #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
850   #  ifndef YYSTACK_ALLOC_MAXIMUM
851      /* The OS might guarantee only one guard page at the bottom of the stack,
852         and a page size can be as small as 4096 bytes.  So we cannot safely
# Line 879 | Line 862 | YYID (yyi)
862   #  endif
863   #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
864         && ! ((defined YYMALLOC || defined malloc) \
865 <             && (defined YYFREE || defined free)))
865 >             && (defined YYFREE || defined free)))
866   #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
867   #   ifndef EXIT_SUCCESS
868   #    define EXIT_SUCCESS 0
# Line 887 | Line 870 | YYID (yyi)
870   #  endif
871   #  ifndef YYMALLOC
872   #   define YYMALLOC malloc
873 < #   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
891 <     || defined __cplusplus || defined _MSC_VER)
873 > #   if ! defined malloc && ! defined EXIT_SUCCESS
874   void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
875   #   endif
876   #  endif
877   #  ifndef YYFREE
878   #   define YYFREE free
879 < #   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
898 <     || defined __cplusplus || defined _MSC_VER)
879 > #   if ! defined free && ! defined EXIT_SUCCESS
880   void free (void *); /* INFRINGES ON USER NAME SPACE */
881   #   endif
882   #  endif
# Line 905 | Line 886 | void free (void *); /* INFRINGES ON USER
886  
887   #if (! defined yyoverflow \
888       && (! defined __cplusplus \
889 <         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
889 >         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
890  
891   /* A type that is properly aligned for any stack member.  */
892   union yyalloc
# Line 930 | Line 911 | union yyalloc
911     elements in the stack, and YYPTR gives the new location of the
912     stack.  Advance YYPTR to a properly aligned location for the next
913     stack.  */
914 < # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
915 <    do                                                                  \
916 <      {                                                                 \
917 <        YYSIZE_T yynewbytes;                                            \
918 <        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
919 <        Stack = &yyptr->Stack_alloc;                                    \
920 <        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
921 <        yyptr += yynewbytes / sizeof (*yyptr);                          \
922 <      }                                                                 \
923 <    while (YYID (0))
914 > # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
915 >    do                                                                  \
916 >      {                                                                 \
917 >        YYSIZE_T yynewbytes;                                            \
918 >        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
919 >        Stack = &yyptr->Stack_alloc;                                    \
920 >        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
921 >        yyptr += yynewbytes / sizeof (*yyptr);                          \
922 >      }                                                                 \
923 >    while (0)
924  
925   #endif
926  
927   #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
928 < /* Copy COUNT objects from FROM to TO.  The source and destination do
928 > /* Copy COUNT objects from SRC to DST.  The source and destination do
929     not overlap.  */
930   # ifndef YYCOPY
931   #  if defined __GNUC__ && 1 < __GNUC__
932 < #   define YYCOPY(To, From, Count) \
933 <      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
932 > #   define YYCOPY(Dst, Src, Count) \
933 >      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
934   #  else
935 < #   define YYCOPY(To, From, Count)              \
936 <      do                                        \
937 <        {                                       \
938 <          YYSIZE_T yyi;                         \
939 <          for (yyi = 0; yyi < (Count); yyi++)   \
940 <            (To)[yyi] = (From)[yyi];            \
941 <        }                                       \
942 <      while (YYID (0))
935 > #   define YYCOPY(Dst, Src, Count)              \
936 >      do                                        \
937 >        {                                       \
938 >          YYSIZE_T yyi;                         \
939 >          for (yyi = 0; yyi < (Count); yyi++)   \
940 >            (Dst)[yyi] = (Src)[yyi];            \
941 >        }                                       \
942 >      while (0)
943   #  endif
944   # endif
945   #endif /* !YYCOPY_NEEDED */
# Line 966 | Line 947 | union yyalloc
947   /* YYFINAL -- State number of the termination state.  */
948   #define YYFINAL  2
949   /* YYLAST -- Last index in YYTABLE.  */
950 < #define YYLAST   1258
950 > #define YYLAST   1356
951  
952   /* YYNTOKENS -- Number of terminals.  */
953 < #define YYNTOKENS  265
953 > #define YYNTOKENS  241
954   /* YYNNTS -- Number of nonterminals.  */
955 < #define YYNNTS  318
955 > #define YYNNTS  299
956   /* YYNRULES -- Number of rules.  */
957 < #define YYNRULES  687
958 < /* YYNRULES -- Number of states.  */
959 < #define YYNSTATES  1354
957 > #define YYNRULES  677
958 > /* YYNSTATES -- Number of states.  */
959 > #define YYNSTATES  1332
960  
961 < /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
961 > /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
962 >   by yylex, with out-of-bounds checking.  */
963   #define YYUNDEFTOK  2
964 < #define YYMAXUTOK   514
964 > #define YYMAXUTOK   489
965  
966 < #define YYTRANSLATE(YYX)                                                \
966 > #define YYTRANSLATE(YYX)                                                \
967    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
968  
969 < /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
970 < static const yytype_uint16 yytranslate[] =
969 > /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
970 >   as returned by yylex, without out-of-bounds checking.  */
971 > static const yytype_uint8 yytranslate[] =
972   {
973         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
974         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
975         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
976         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
977 <       2,     2,     2,     2,   264,     2,     2,     2,     2,     2,
978 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   260,
979 <       2,   263,     2,     2,     2,     2,     2,     2,     2,     2,
977 >       2,     2,     2,     2,   239,     2,     2,     2,     2,     2,
978 >       2,     2,     2,     2,     2,     2,     2,     2,   240,   235,
979 >       2,   238,     2,     2,     2,     2,     2,     2,     2,     2,
980         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
981         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
982         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
983         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
984         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
985 <       2,     2,     2,   262,     2,   261,     2,     2,     2,     2,
985 >       2,     2,     2,   237,     2,   236,     2,     2,     2,     2,
986         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
987         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
988         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 1035 | Line 1018 | static const yytype_uint16 yytranslate[]
1018       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1019       205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1020       215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1021 <     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1039 <     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1040 <     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1041 <     255,   256,   257,   258,   259
1021 >     225,   226,   227,   228,   229,   230,   231,   232,   233,   234
1022   };
1023  
1024   #if YYDEBUG
1025 < /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
1046 <   YYRHS.  */
1047 < static const yytype_uint16 yyprhs[] =
1048 < {
1049 <       0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
1050 <      19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
1051 <      39,    41,    43,    45,    47,    50,    53,    54,    56,    59,
1052 <      63,    67,    71,    75,    79,    80,    82,    85,    89,    93,
1053 <      97,   103,   106,   108,   110,   112,   115,   120,   125,   131,
1054 <     134,   136,   138,   140,   142,   144,   146,   148,   150,   152,
1055 <     154,   156,   158,   160,   163,   164,   170,   174,   176,   178,
1056 <     180,   185,   190,   195,   200,   205,   210,   215,   220,   225,
1057 <     230,   235,   241,   244,   246,   248,   250,   252,   255,   260,
1058 <     265,   270,   276,   279,   281,   283,   285,   287,   289,   291,
1059 <     293,   295,   297,   299,   301,   303,   305,   308,   313,   318,
1060 <     323,   328,   333,   338,   343,   348,   353,   358,   363,   368,
1061 <     373,   378,   383,   388,   393,   398,   399,   407,   408,   410,
1062 <     413,   415,   417,   419,   421,   423,   425,   427,   429,   431,
1063 <     434,   439,   441,   446,   451,   456,   461,   466,   467,   473,
1064 <     477,   479,   481,   483,   485,   487,   489,   491,   493,   495,
1065 <     497,   499,   501,   503,   505,   507,   509,   511,   513,   515,
1066 <     517,   518,   524,   528,   530,   531,   535,   536,   539,   541,
1067 <     543,   545,   547,   549,   551,   553,   555,   557,   559,   561,
1068 <     563,   565,   567,   569,   571,   572,   580,   581,   583,   586,
1069 <     588,   590,   592,   594,   596,   598,   600,   602,   604,   606,
1070 <     608,   610,   612,   614,   617,   622,   624,   629,   634,   639,
1071 <     644,   649,   654,   659,   664,   669,   674,   679,   684,   685,
1072 <     692,   693,   699,   703,   705,   707,   709,   711,   714,   716,
1073 <     718,   720,   722,   724,   727,   728,   734,   738,   740,   742,
1074 <     746,   751,   756,   757,   764,   767,   769,   771,   773,   775,
1075 <     777,   779,   781,   783,   785,   788,   793,   798,   803,   808,
1076 <     809,   815,   819,   821,   822,   826,   827,   830,   832,   834,
1077 <     836,   838,   840,   842,   844,   846,   848,   850,   855,   860,
1078 <     865,   866,   873,   876,   878,   880,   882,   884,   887,   892,
1079 <     897,   902,   903,   910,   913,   915,   917,   919,   921,   924,
1080 <     929,   934,   935,   941,   945,   947,   949,   951,   953,   955,
1081 <     957,   959,   961,   963,   965,   967,   969,   970,   977,   980,
1082 <     982,   984,   986,   989,   994,   995,  1001,  1005,  1007,  1009,
1083 <    1011,  1013,  1015,  1017,  1019,  1021,  1023,  1025,  1027,  1029,
1084 <    1030,  1038,  1039,  1041,  1044,  1046,  1048,  1050,  1052,  1054,
1085 <    1056,  1058,  1060,  1062,  1064,  1066,  1068,  1070,  1072,  1074,
1086 <    1077,  1082,  1084,  1089,  1094,  1099,  1104,  1109,  1114,  1119,
1087 <    1120,  1126,  1130,  1132,  1133,  1137,  1138,  1141,  1143,  1145,
1088 <    1147,  1149,  1151,  1156,  1161,  1166,  1171,  1176,  1181,  1182,
1089 <    1189,  1190,  1196,  1200,  1202,  1204,  1207,  1209,  1211,  1213,
1090 <    1215,  1217,  1222,  1227,  1228,  1235,  1238,  1240,  1242,  1244,
1091 <    1246,  1251,  1256,  1262,  1265,  1267,  1269,  1271,  1276,  1277,
1092 <    1284,  1285,  1291,  1295,  1297,  1299,  1302,  1304,  1306,  1308,
1093 <    1310,  1312,  1317,  1322,  1328,  1331,  1333,  1335,  1337,  1339,
1094 <    1341,  1343,  1345,  1347,  1349,  1351,  1353,  1355,  1357,  1359,
1095 <    1361,  1363,  1365,  1367,  1369,  1371,  1373,  1375,  1377,  1379,
1096 <    1381,  1383,  1385,  1387,  1389,  1391,  1393,  1395,  1397,  1399,
1097 <    1401,  1403,  1405,  1407,  1409,  1411,  1413,  1415,  1417,  1419,
1098 <    1421,  1423,  1425,  1427,  1429,  1431,  1433,  1435,  1437,  1439,
1099 <    1441,  1443,  1445,  1450,  1455,  1460,  1465,  1470,  1475,  1480,
1100 <    1485,  1490,  1495,  1500,  1505,  1510,  1515,  1520,  1525,  1530,
1101 <    1535,  1540,  1545,  1550,  1555,  1560,  1565,  1570,  1575,  1580,
1102 <    1585,  1590,  1595,  1600,  1605,  1610,  1615,  1620,  1625,  1630,
1103 <    1635,  1640,  1645,  1650,  1655,  1660,  1665,  1670,  1675,  1680,
1104 <    1685,  1690,  1695,  1700,  1701,  1707,  1711,  1713,  1715,  1717,
1105 <    1719,  1721,  1723,  1725,  1727,  1729,  1731,  1733,  1735,  1737,
1106 <    1739,  1741,  1743,  1745,  1747,  1749,  1751,  1752,  1758,  1762,
1107 <    1764,  1766,  1768,  1770,  1772,  1774,  1776,  1778,  1780,  1782,
1108 <    1784,  1786,  1788,  1790,  1792,  1794,  1796,  1798,  1800,  1802,
1109 <    1807,  1812,  1817,  1822,  1823,  1830,  1833,  1835,  1837,  1839,
1110 <    1841,  1843,  1845,  1847,  1849,  1854,  1859,  1860,  1866,  1870,
1111 <    1872,  1874,  1876,  1881,  1886,  1887,  1893,  1897,  1899,  1901,
1112 <    1903,  1909,  1912,  1914,  1916,  1918,  1920,  1922,  1924,  1926,
1113 <    1928,  1930,  1932,  1934,  1936,  1938,  1940,  1942,  1944,  1946,
1114 <    1948,  1950,  1952,  1957,  1962,  1967,  1972,  1977,  1982,  1987,
1115 <    1992,  1997,  2002,  2007,  2012,  2017,  2022,  2027,  2032,  2037,
1116 <    2042,  2048,  2051,  2053,  2055,  2057,  2059,  2061,  2063,  2065,
1117 <    2067,  2069,  2074,  2079,  2084,  2089,  2094,  2099
1118 < };
1119 <
1120 < /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1121 < static const yytype_int16 yyrhs[] =
1122 < {
1123 <     266,     0,    -1,    -1,   266,   267,    -1,   295,    -1,   301,
1124 <      -1,   316,    -1,   552,    -1,   339,    -1,   358,    -1,   372,
1125 <      -1,   277,    -1,   573,    -1,   390,    -1,   397,    -1,   407,
1126 <      -1,   416,    -1,   442,    -1,   452,    -1,   458,    -1,   472,
1127 <      -1,   536,    -1,   462,    -1,   272,    -1,     1,   260,    -1,
1128 <       1,   261,    -1,    -1,   269,    -1,   131,   268,    -1,   131,
1129 <     173,   268,    -1,   131,   174,   268,    -1,   131,   175,   268,
1130 <      -1,   131,   176,   268,    -1,   131,   177,   268,    -1,    -1,
1131 <     271,    -1,   131,   270,    -1,   131,    14,   270,    -1,   131,
1132 <      15,   270,    -1,   131,    16,   270,    -1,   119,   262,   273,
1133 <     261,   260,    -1,   273,   274,    -1,   274,    -1,   275,    -1,
1134 <     276,    -1,     1,   260,    -1,   118,   263,   153,   260,    -1,
1135 <     148,   263,   153,   260,    -1,   181,   262,   278,   261,   260,
1136 <      -1,   278,   279,    -1,   279,    -1,   286,    -1,   291,    -1,
1137 <     294,    -1,   288,    -1,   289,    -1,   290,    -1,   293,    -1,
1138 <     285,    -1,   292,    -1,   287,    -1,   284,    -1,   280,    -1,
1139 <       1,   260,    -1,    -1,   168,   281,   263,   282,   260,    -1,
1140 <     282,   264,   283,    -1,   283,    -1,   169,    -1,   170,    -1,
1141 <     167,   263,   153,   260,    -1,   165,   263,   153,   260,    -1,
1142 <     120,   263,   153,   260,    -1,   183,   263,   153,   260,    -1,
1143 <      37,   263,   153,   260,    -1,   123,   263,   153,   260,    -1,
1144 <     122,   263,   153,   260,    -1,   255,   263,   153,   260,    -1,
1145 <     256,   263,   153,   260,    -1,   227,   263,   131,   260,    -1,
1146 <      84,   263,   197,   260,    -1,     5,   262,   296,   261,   260,
1147 <      -1,   296,   297,    -1,   297,    -1,   298,    -1,   300,    -1,
1148 <     299,    -1,     1,   260,    -1,   120,   263,   153,   260,    -1,
1149 <      47,   263,   153,   260,    -1,    37,   263,   153,   260,    -1,
1150 <     102,   262,   302,   261,   260,    -1,   302,   303,    -1,   303,
1151 <      -1,   304,    -1,   305,    -1,   314,    -1,   315,    -1,   306,
1152 <      -1,   308,    -1,   310,    -1,   311,    -1,   313,    -1,   309,
1153 <      -1,   312,    -1,   307,    -1,     1,   260,    -1,   219,   263,
1154 <     153,   260,    -1,   138,   263,   153,   260,    -1,    62,   263,
1155 <     153,   260,    -1,    55,   263,   153,   260,    -1,    60,   263,
1156 <     153,   260,    -1,    61,   263,   153,   260,    -1,    58,   263,
1157 <     153,   260,    -1,    57,   263,   153,   260,    -1,    59,   263,
1158 <     153,   260,    -1,    56,   263,   153,   260,    -1,   103,   263,
1159 <     220,   260,    -1,   103,   263,   222,   260,    -1,   103,   263,
1160 <     226,   260,    -1,   103,   263,   224,   260,    -1,   103,   263,
1161 <     225,   260,    -1,   103,   263,   223,   260,    -1,   103,   263,
1162 <     221,   260,    -1,   253,   263,   197,   260,    -1,    -1,   136,
1163 <     317,   318,   262,   319,   261,   260,    -1,    -1,   322,    -1,
1164 <     319,   320,    -1,   320,    -1,   321,    -1,   323,    -1,   324,
1165 <      -1,   328,    -1,   327,    -1,   325,    -1,   326,    -1,   332,
1166 <      -1,     1,   260,    -1,   120,   263,   153,   260,    -1,   153,
1167 <      -1,   248,   263,   153,   260,    -1,   147,   263,   153,   260,
1168 <      -1,    49,   263,   197,   260,    -1,   166,   263,   153,   260,
1169 <      -1,    26,   263,   153,   260,    -1,    -1,   236,   329,   263,
1170 <     330,   260,    -1,   330,   264,   331,    -1,   331,    -1,   204,
1171 <      -1,   207,    -1,   208,    -1,   210,    -1,   211,    -1,   214,
1172 <      -1,   233,    -1,   228,    -1,   230,    -1,   237,    -1,   234,
1173 <      -1,   213,    -1,   229,    -1,   232,    -1,   215,    -1,   240,
1174 <      -1,   205,    -1,   206,    -1,   218,    -1,    -1,    53,   333,
1175 <     263,   334,   260,    -1,   334,   264,   335,    -1,   335,    -1,
1176 <      -1,   130,   336,   338,    -1,    -1,   337,   338,    -1,    72,
1177 <      -1,   161,    -1,    92,    -1,   247,    -1,   257,    -1,    65,
1178 <      -1,    38,    -1,   159,    -1,     5,    -1,    77,    -1,   125,
1179 <      -1,   229,    -1,   141,    -1,    79,    -1,   162,    -1,    49,
1180 <      -1,    -1,    26,   340,   341,   262,   342,   261,   260,    -1,
1181 <      -1,   345,    -1,   342,   343,    -1,   343,    -1,   344,    -1,
1182 <     355,    -1,   356,    -1,   346,    -1,   347,    -1,   357,    -1,
1183 <     348,    -1,   349,    -1,   350,    -1,   351,    -1,   352,    -1,
1184 <     353,    -1,   354,    -1,     1,   260,    -1,   120,   263,   153,
1185 <     260,    -1,   153,    -1,   150,   263,   269,   260,    -1,   151,
1186 <     263,   269,   260,    -1,   134,   263,   131,   260,    -1,    30,
1187 <     263,   269,   260,    -1,   112,   263,   131,   260,    -1,   107,
1188 <     263,   131,   260,    -1,   109,   263,   131,   260,    -1,   108,
1189 <     263,   131,   260,    -1,   178,   263,   271,   260,    -1,    23,
1190 <     263,   131,   260,    -1,    24,   263,   131,   260,    -1,   133,
1191 <     263,   131,   260,    -1,    -1,   100,   359,   262,   364,   261,
1192 <     260,    -1,    -1,    53,   361,   263,   362,   260,    -1,   362,
1193 <     264,   363,    -1,   363,    -1,   235,    -1,    76,    -1,   231,
1194 <      -1,   364,   365,    -1,   365,    -1,   366,    -1,   360,    -1,
1195 <     370,    -1,   371,    -1,     1,   260,    -1,    -1,   152,   263,
1196 <     368,   367,   260,    -1,   368,   264,   369,    -1,   369,    -1,
1197 <     131,    -1,   131,   202,   131,    -1,    89,   263,   153,   260,
1198 <      -1,    83,   263,   153,   260,    -1,    -1,    73,   373,   262,
1199 <     374,   261,   260,    -1,   374,   375,    -1,   375,    -1,   376,
1200 <      -1,   377,    -1,   378,    -1,   380,    -1,   387,    -1,   388,
1201 <      -1,   389,    -1,   379,    -1,     1,   260,    -1,   248,   263,
1202 <     153,   260,    -1,   147,   263,   153,   260,    -1,    26,   263,
1203 <     153,   260,    -1,    49,   263,   197,   260,    -1,    -1,    53,
1204 <     381,   263,   382,   260,    -1,   382,   264,   383,    -1,   383,
1205 <      -1,    -1,   130,   384,   386,    -1,    -1,   385,   386,    -1,
1206 <     191,    -1,    50,    -1,    93,    -1,    74,    -1,    20,    -1,
1207 <      21,    -1,   129,    -1,    67,    -1,   172,    -1,   121,    -1,
1208 <     190,   263,   153,   260,    -1,   157,   263,   153,   260,    -1,
1209 <     156,   263,   131,   260,    -1,    -1,   171,   391,   262,   392,
1210 <     261,   260,    -1,   392,   393,    -1,   393,    -1,   394,    -1,
1211 <     395,    -1,   396,    -1,     1,   260,    -1,   155,   263,   153,
1212 <     260,    -1,    22,   263,   153,   260,    -1,   124,   263,   153,
1213 <     260,    -1,    -1,   185,   398,   262,   399,   261,   260,    -1,
1214 <     399,   400,    -1,   400,    -1,   401,    -1,   402,    -1,   403,
1215 <      -1,     1,   260,    -1,   120,   263,   153,   260,    -1,   248,
1216 <     263,   153,   260,    -1,    -1,   187,   404,   263,   405,   260,
1217 <      -1,   405,   264,   406,    -1,   406,    -1,    92,    -1,   244,
1218 <      -1,   247,    -1,   257,    -1,   245,    -1,   239,    -1,   171,
1219 <      -1,   246,    -1,   238,    -1,   218,    -1,   203,    -1,    -1,
1220 <     186,   408,   262,   409,   261,   260,    -1,   409,   410,    -1,
1221 <     410,    -1,   411,    -1,   412,    -1,     1,   260,    -1,   120,
1222 <     263,   153,   260,    -1,    -1,   187,   413,   263,   414,   260,
1223 <      -1,   414,   264,   415,    -1,   415,    -1,    92,    -1,   244,
1224 <      -1,   247,    -1,   257,    -1,   245,    -1,   239,    -1,   171,
1225 <      -1,   246,    -1,   238,    -1,   218,    -1,   203,    -1,    -1,
1226 <      29,   417,   418,   262,   419,   261,   260,    -1,    -1,   422,
1227 <      -1,   419,   420,    -1,   420,    -1,   421,    -1,   423,    -1,
1228 <     424,    -1,   425,    -1,   426,    -1,   428,    -1,   427,    -1,
1229 <     429,    -1,   438,    -1,   439,    -1,   440,    -1,   437,    -1,
1230 <     436,    -1,   441,    -1,     1,   260,    -1,   120,   263,   153,
1231 <     260,    -1,   153,    -1,    83,   263,   153,   260,    -1,   255,
1232 <     263,   153,   260,    -1,   179,   263,   153,   260,    -1,     3,
1233 <     263,   153,   260,    -1,   152,   263,   131,   260,    -1,     6,
1234 <     263,   216,   260,    -1,     6,   263,   217,   260,    -1,    -1,
1235 <      53,   430,   263,   431,   260,    -1,   431,   264,   432,    -1,
1236 <     432,    -1,    -1,   130,   433,   435,    -1,    -1,   434,   435,
1237 <      -1,    27,    -1,    31,    -1,    10,    -1,    12,    -1,   242,
1238 <      -1,   166,   263,   153,   260,    -1,    49,   263,   197,   260,
1239 <      -1,    85,   263,   153,   260,    -1,    98,   263,   153,   260,
1240 <      -1,    26,   263,   153,   260,    -1,    25,   263,   153,   260,
1241 <      -1,    -1,    90,   443,   262,   448,   261,   260,    -1,    -1,
1242 <     187,   445,   263,   446,   260,    -1,   446,   264,   447,    -1,
1243 <     447,    -1,   158,    -1,   448,   449,    -1,   449,    -1,   450,
1244 <      -1,   451,    -1,   444,    -1,     1,    -1,   248,   263,   153,
1245 <     260,    -1,   155,   263,   153,   260,    -1,    -1,    36,   453,
1246 <     262,   454,   261,   260,    -1,   454,   455,    -1,   455,    -1,
1247 <     456,    -1,   457,    -1,     1,    -1,    89,   263,   153,   260,
1248 <      -1,   155,   263,   153,   260,    -1,    51,   262,   459,   261,
1249 <     260,    -1,   459,   460,    -1,   460,    -1,   461,    -1,     1,
1250 <      -1,    89,   263,   153,   260,    -1,    -1,    63,   463,   262,
1251 <     468,   261,   260,    -1,    -1,   187,   465,   263,   466,   260,
1252 <      -1,   466,   264,   467,    -1,   467,    -1,   158,    -1,   468,
1253 <     469,    -1,   469,    -1,   470,    -1,   471,    -1,   464,    -1,
1254 <       1,    -1,   120,   263,   153,   260,    -1,   155,   263,   153,
1255 <     260,    -1,    64,   262,   473,   261,   260,    -1,   473,   474,
1256 <      -1,   474,    -1,   483,    -1,   484,    -1,   486,    -1,   487,
1257 <      -1,   488,    -1,   489,    -1,   490,    -1,   491,    -1,   492,
1258 <      -1,   493,    -1,   482,    -1,   495,    -1,   496,    -1,   497,
1259 <      -1,   498,    -1,   514,    -1,   500,    -1,   502,    -1,   504,
1260 <      -1,   503,    -1,   507,    -1,   501,    -1,   508,    -1,   509,
1261 <      -1,   510,    -1,   511,    -1,   513,    -1,   512,    -1,   528,
1262 <      -1,   515,    -1,   519,    -1,   520,    -1,   524,    -1,   505,
1263 <      -1,   506,    -1,   534,    -1,   532,    -1,   533,    -1,   516,
1264 <      -1,   485,    -1,   517,    -1,   518,    -1,   535,    -1,   523,
1265 <      -1,   494,    -1,   521,    -1,   522,    -1,   478,    -1,   481,
1266 <      -1,   476,    -1,   477,    -1,   479,    -1,   480,    -1,   499,
1267 <      -1,   475,    -1,     1,    -1,   114,   263,   131,   260,    -1,
1268 <      70,   263,   131,   260,    -1,    71,   263,   131,   260,    -1,
1269 <      12,   263,   197,   260,    -1,   254,   263,   197,   260,    -1,
1270 <     160,   263,   269,   260,    -1,   184,   263,   197,   260,    -1,
1271 <      91,   263,   269,   260,    -1,    82,   263,   197,   260,    -1,
1272 <      87,   263,   197,   260,    -1,    43,   263,   197,   260,    -1,
1273 <      52,   263,   197,   260,    -1,     8,   263,   197,   260,    -1,
1274 <     111,   263,   269,   260,    -1,   110,   263,   131,   260,    -1,
1275 <     104,   263,   131,   260,    -1,     9,   263,   269,   260,    -1,
1276 <     201,   263,   269,   260,    -1,   200,   263,   269,   260,    -1,
1277 <      75,   263,   131,   260,    -1,    95,   263,   197,   260,    -1,
1278 <      94,   263,   153,   260,    -1,    88,   263,   197,   260,    -1,
1279 <     259,   263,   197,   260,    -1,   192,   263,   197,   260,    -1,
1280 <     195,   263,   197,   260,    -1,   196,   263,   197,   260,    -1,
1281 <     194,   263,   197,   260,    -1,   194,   263,   198,   260,    -1,
1282 <     193,   263,   197,   260,    -1,   193,   263,   198,   260,    -1,
1283 <     145,   263,   269,   260,    -1,    19,   263,   269,   260,    -1,
1284 <     137,   263,   197,   260,    -1,   146,   263,   269,   260,    -1,
1285 <     188,   263,   197,   260,    -1,   128,   263,   197,   260,    -1,
1286 <     243,   263,   197,   260,    -1,   140,   263,   197,   260,    -1,
1287 <     115,   263,   153,   260,    -1,    86,   263,   269,   260,    -1,
1288 <      44,   263,   131,   260,    -1,   113,   263,   131,   260,    -1,
1289 <     182,   263,   153,   260,    -1,    32,   263,   153,   260,    -1,
1290 <      28,   263,   131,   260,    -1,   249,   263,   197,   260,    -1,
1291 <      46,   263,   153,   260,    -1,   149,   263,   197,   260,    -1,
1292 <      39,   263,   197,   260,    -1,   241,   263,   269,   260,    -1,
1293 <      -1,   142,   525,   263,   526,   260,    -1,   526,   264,   527,
1294 <      -1,   527,    -1,   204,    -1,   207,    -1,   208,    -1,   210,
1295 <      -1,   211,    -1,   214,    -1,   233,    -1,   228,    -1,   230,
1296 <      -1,   237,    -1,   234,    -1,   213,    -1,   229,    -1,   232,
1297 <      -1,   215,    -1,   240,    -1,   205,    -1,   206,    -1,   218,
1298 <      -1,    -1,   139,   529,   263,   530,   260,    -1,   530,   264,
1299 <     531,    -1,   531,    -1,   204,    -1,   207,    -1,   208,    -1,
1300 <     210,    -1,   211,    -1,   214,    -1,   233,    -1,   228,    -1,
1301 <     230,    -1,   237,    -1,   234,    -1,   213,    -1,   229,    -1,
1302 <     232,    -1,   215,    -1,   240,    -1,   205,    -1,   206,    -1,
1303 <     218,    -1,   116,   263,   131,   260,    -1,   117,   263,   131,
1304 <     260,    -1,    33,   263,   131,   260,    -1,   209,   263,   271,
1305 <     260,    -1,    -1,    66,   537,   262,   538,   261,   260,    -1,
1306 <     538,   539,    -1,   539,    -1,   540,    -1,   541,    -1,   542,
1307 <      -1,   546,    -1,   547,    -1,   548,    -1,     1,    -1,    48,
1308 <     263,   197,   260,    -1,    45,   263,   269,   260,    -1,    -1,
1309 <     102,   543,   263,   544,   260,    -1,   544,   264,   545,    -1,
1310 <     545,    -1,   199,    -1,    11,    -1,   248,   263,   153,   260,
1311 <      -1,   120,   263,   153,   260,    -1,    -1,     4,   549,   263,
1312 <     550,   260,    -1,   550,   264,   551,    -1,   551,    -1,   199,
1313 <      -1,    11,    -1,    22,   262,   553,   261,   260,    -1,   553,
1314 <     554,    -1,   554,    -1,   557,    -1,   558,    -1,   559,    -1,
1315 <     560,    -1,   565,    -1,   561,    -1,   562,    -1,   563,    -1,
1316 <     564,    -1,   566,    -1,   567,    -1,   568,    -1,   556,    -1,
1317 <     569,    -1,   570,    -1,   571,    -1,   572,    -1,   555,    -1,
1318 <       1,    -1,    40,   263,   197,   260,    -1,   163,   263,   197,
1319 <     260,    -1,    42,   263,   197,   260,    -1,   250,   263,   197,
1320 <     260,    -1,   251,   263,   197,   260,    -1,   252,   263,   197,
1321 <     260,    -1,    96,   263,   269,   260,    -1,    97,   263,   269,
1322 <     260,    -1,   106,   263,   131,   260,    -1,   154,   263,   197,
1323 <     260,    -1,   105,   263,   131,   260,    -1,    35,   263,   131,
1324 <     260,    -1,    34,   263,   131,   260,    -1,   126,   263,   197,
1325 <     260,    -1,   127,   263,   197,   260,    -1,    13,   263,   197,
1326 <     260,    -1,   143,   263,   131,   260,    -1,   144,   263,   269,
1327 <     260,    -1,   180,   262,   574,   261,   260,    -1,   574,   575,
1328 <      -1,   575,    -1,   576,    -1,   577,    -1,   579,    -1,   581,
1329 <      -1,   580,    -1,   578,    -1,   582,    -1,     1,    -1,    54,
1330 <     263,   197,   260,    -1,    81,   263,   197,   260,    -1,    78,
1331 <     263,   153,   260,    -1,    99,   263,   269,   260,    -1,    76,
1332 <     263,   197,   260,    -1,    41,   263,   197,   260,    -1,    80,
1333 <     263,   197,   260,    -1
1334 < };
1335 <
1336 < /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1025 >  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1026   static const yytype_uint16 yyrline[] =
1027   {
1028 <       0,   394,   394,   395,   398,   399,   400,   401,   402,   403,
1029 <     404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
1030 <     414,   415,   416,   417,   418,   419,   423,   423,   424,   428,
1031 <     432,   436,   440,   444,   450,   450,   451,   452,   453,   454,
1032 <     461,   464,   464,   465,   465,   465,   467,   473,   480,   482,
1033 <     482,   483,   483,   484,   484,   485,   485,   486,   487,   487,
1034 <     488,   488,   489,   490,   494,   493,   512,   512,   513,   519,
1035 <     527,   561,   621,   636,   651,   660,   674,   683,   711,   741,
1036 <     764,   773,   775,   775,   776,   776,   777,   777,   779,   788,
1037 <     797,   810,   812,   813,   815,   815,   816,   817,   817,   818,
1038 <     818,   819,   819,   820,   820,   821,   822,   824,   828,   832,
1039 <     839,   846,   853,   860,   867,   874,   881,   888,   892,   896,
1040 <     900,   904,   908,   912,   918,   928,   927,  1021,  1021,  1022,
1041 <    1022,  1023,  1023,  1023,  1024,  1024,  1024,  1025,  1025,  1025,
1042 <    1027,  1039,  1051,  1085,  1097,  1108,  1150,  1160,  1159,  1165,
1043 <    1165,  1166,  1170,  1174,  1178,  1182,  1186,  1190,  1194,  1198,
1044 <    1202,  1206,  1210,  1214,  1218,  1222,  1226,  1230,  1234,  1238,
1045 <    1245,  1244,  1248,  1248,  1249,  1249,  1250,  1250,  1252,  1259,
1046 <    1266,  1273,  1280,  1287,  1294,  1301,  1308,  1315,  1322,  1329,
1047 <    1336,  1343,  1350,  1357,  1371,  1370,  1420,  1420,  1422,  1422,
1048 <    1423,  1424,  1424,  1425,  1426,  1427,  1428,  1429,  1430,  1431,
1049 <    1432,  1433,  1434,  1435,  1437,  1446,  1455,  1461,  1467,  1473,
1050 <    1479,  1485,  1491,  1497,  1503,  1509,  1515,  1521,  1531,  1530,
1051 <    1547,  1546,  1551,  1551,  1552,  1556,  1560,  1568,  1568,  1569,
1052 <    1569,  1569,  1569,  1569,  1571,  1571,  1573,  1573,  1575,  1589,
1053 <    1609,  1618,  1631,  1630,  1699,  1699,  1700,  1700,  1700,  1700,
1054 <    1701,  1701,  1701,  1702,  1702,  1704,  1741,  1754,  1763,  1775,
1055 <    1774,  1778,  1778,  1779,  1779,  1780,  1780,  1782,  1789,  1796,
1056 <    1803,  1810,  1817,  1824,  1831,  1838,  1845,  1855,  1874,  1884,
1057 <    1898,  1897,  1913,  1913,  1914,  1914,  1914,  1914,  1916,  1925,
1058 <    1940,  1954,  1953,  1969,  1969,  1970,  1970,  1970,  1970,  1972,
1059 <    1981,  2004,  2003,  2009,  2009,  2010,  2014,  2018,  2022,  2026,
1060 <    2030,  2034,  2038,  2042,  2046,  2050,  2060,  2059,  2076,  2076,
1061 <    2077,  2077,  2077,  2079,  2086,  2085,  2091,  2091,  2092,  2096,
1062 <    2100,  2104,  2108,  2112,  2116,  2120,  2124,  2128,  2132,  2142,
1063 <    2141,  2287,  2287,  2288,  2288,  2289,  2289,  2289,  2290,  2290,
1064 <    2291,  2291,  2292,  2292,  2292,  2293,  2293,  2294,  2294,  2295,
1065 <    2297,  2309,  2321,  2330,  2356,  2374,  2392,  2398,  2402,  2411,
1066 <    2410,  2414,  2414,  2415,  2415,  2416,  2416,  2418,  2429,  2436,
1067 <    2443,  2450,  2460,  2501,  2512,  2525,  2538,  2547,  2583,  2582,
1068 <    2646,  2645,  2649,  2649,  2650,  2656,  2656,  2657,  2657,  2657,
1069 <    2657,  2659,  2678,  2688,  2687,  2710,  2710,  2711,  2711,  2711,
1070 <    2713,  2719,  2728,  2730,  2730,  2731,  2731,  2733,  2752,  2751,
1071 <    2799,  2798,  2802,  2802,  2803,  2809,  2809,  2810,  2810,  2810,
1072 <    2810,  2812,  2818,  2827,  2830,  2830,  2831,  2831,  2832,  2832,
1073 <    2833,  2833,  2834,  2834,  2835,  2835,  2836,  2836,  2837,  2837,
1074 <    2838,  2838,  2839,  2839,  2840,  2840,  2841,  2841,  2842,  2842,
1075 <    2843,  2843,  2844,  2844,  2845,  2845,  2846,  2846,  2847,  2847,
1076 <    2848,  2848,  2849,  2849,  2850,  2850,  2851,  2852,  2852,  2853,
1077 <    2853,  2854,  2855,  2855,  2856,  2856,  2857,  2857,  2858,  2858,
1078 <    2859,  2860,  2863,  2868,  2873,  2878,  2883,  2888,  2893,  2898,
1079 <    2903,  2908,  2913,  2918,  2923,  2928,  2933,  2938,  2943,  2948,
1080 <    2953,  2959,  2970,  2975,  2984,  2989,  2994,  2999,  3004,  3009,
1081 <    3012,  3017,  3020,  3025,  3030,  3035,  3040,  3045,  3050,  3055,
1082 <    3060,  3065,  3076,  3081,  3086,  3091,  3100,  3132,  3150,  3155,
1083 <    3164,  3169,  3174,  3180,  3179,  3184,  3184,  3185,  3188,  3191,
1084 <    3194,  3197,  3200,  3203,  3206,  3209,  3212,  3215,  3218,  3221,
1085 <    3224,  3227,  3230,  3233,  3236,  3239,  3245,  3244,  3249,  3249,
1086 <    3250,  3253,  3256,  3259,  3262,  3265,  3268,  3271,  3274,  3277,
1087 <    3280,  3283,  3286,  3289,  3292,  3295,  3298,  3301,  3304,  3309,
1088 <    3314,  3319,  3324,  3334,  3333,  3357,  3357,  3358,  3359,  3360,
1089 <    3361,  3362,  3363,  3364,  3366,  3372,  3379,  3378,  3383,  3383,
1090 <    3384,  3388,  3394,  3428,  3438,  3437,  3487,  3487,  3488,  3492,
1091 <    3501,  3504,  3504,  3505,  3505,  3506,  3506,  3507,  3507,  3508,
1092 <    3508,  3509,  3509,  3510,  3511,  3511,  3512,  3512,  3513,  3513,
1093 <    3514,  3514,  3516,  3521,  3526,  3531,  3536,  3541,  3546,  3551,
1094 <    3556,  3561,  3566,  3571,  3576,  3581,  3586,  3591,  3596,  3601,
1095 <    3609,  3612,  3612,  3613,  3613,  3614,  3615,  3616,  3616,  3617,
1407 <    3618,  3620,  3626,  3632,  3641,  3655,  3661,  3667
1028 >       0,   379,   379,   380,   383,   384,   385,   386,   387,   388,
1029 >     389,   390,   391,   392,   393,   394,   395,   396,   397,   398,
1030 >     399,   400,   401,   402,   403,   404,   405,   406,   410,   410,
1031 >     411,   412,   413,   414,   415,   416,   417,   418,   421,   421,
1032 >     422,   423,   424,   425,   432,   434,   434,   435,   435,   435,
1033 >     437,   443,   453,   455,   455,   456,   457,   458,   459,   460,
1034 >     461,   462,   463,   464,   465,   466,   467,   468,   469,   470,
1035 >     471,   472,   473,   474,   475,   476,   479,   488,   497,   506,
1036 >     515,   524,   534,   533,   539,   539,   540,   546,   552,   558,
1037 >     566,   581,   596,   611,   626,   636,   650,   659,   687,   715,
1038 >     740,   762,   784,   794,   796,   796,   797,   798,   799,   800,
1039 >     802,   811,   820,   834,   833,   851,   851,   852,   852,   852,
1040 >     854,   860,   871,   870,   889,   889,   890,   890,   890,   890,
1041 >     890,   892,   898,   904,   910,   932,   933,   933,   935,   935,
1042 >     936,   938,   945,   945,   958,   959,   961,   961,   962,   962,
1043 >     964,   972,   975,   981,   980,   986,   986,   987,   991,   995,
1044 >     999,  1003,  1007,  1011,  1015,  1026,  1025,  1086,  1086,  1087,
1045 >    1088,  1089,  1090,  1091,  1092,  1093,  1094,  1095,  1096,  1097,
1046 >    1099,  1105,  1111,  1117,  1123,  1134,  1140,  1151,  1158,  1157,
1047 >    1163,  1163,  1164,  1168,  1172,  1176,  1180,  1184,  1188,  1192,
1048 >    1196,  1200,  1204,  1208,  1212,  1216,  1220,  1224,  1228,  1232,
1049 >    1236,  1240,  1244,  1248,  1255,  1254,  1260,  1260,  1261,  1265,
1050 >    1269,  1273,  1277,  1281,  1285,  1289,  1293,  1297,  1301,  1305,
1051 >    1309,  1313,  1317,  1321,  1325,  1329,  1333,  1337,  1341,  1345,
1052 >    1349,  1353,  1357,  1361,  1365,  1369,  1373,  1384,  1383,  1439,
1053 >    1439,  1440,  1441,  1442,  1443,  1444,  1445,  1446,  1447,  1448,
1054 >    1449,  1450,  1451,  1452,  1453,  1454,  1455,  1456,  1458,  1464,
1055 >    1470,  1476,  1482,  1488,  1494,  1500,  1506,  1512,  1519,  1525,
1056 >    1531,  1537,  1546,  1556,  1555,  1561,  1561,  1562,  1566,  1577,
1057 >    1576,  1583,  1582,  1587,  1587,  1588,  1592,  1596,  1602,  1602,
1058 >    1603,  1603,  1603,  1603,  1603,  1605,  1605,  1607,  1607,  1609,
1059 >    1622,  1639,  1645,  1656,  1655,  1701,  1701,  1702,  1703,  1704,
1060 >    1705,  1706,  1707,  1708,  1709,  1710,  1712,  1718,  1724,  1730,
1061 >    1742,  1741,  1747,  1747,  1748,  1752,  1756,  1760,  1764,  1768,
1062 >    1772,  1776,  1780,  1784,  1790,  1804,  1813,  1827,  1826,  1841,
1063 >    1841,  1842,  1842,  1842,  1842,  1844,  1850,  1856,  1866,  1868,
1064 >    1868,  1869,  1869,  1871,  1888,  1887,  1910,  1910,  1911,  1911,
1065 >    1911,  1911,  1913,  1919,  1939,  1938,  1944,  1944,  1945,  1949,
1066 >    1953,  1957,  1961,  1965,  1969,  1973,  1977,  1981,  1992,  1991,
1067 >    2010,  2010,  2011,  2011,  2011,  2013,  2020,  2019,  2025,  2025,
1068 >    2026,  2030,  2034,  2038,  2042,  2046,  2050,  2054,  2058,  2062,
1069 >    2073,  2072,  2144,  2144,  2145,  2146,  2147,  2148,  2149,  2150,
1070 >    2151,  2152,  2153,  2154,  2155,  2156,  2157,  2158,  2159,  2161,
1071 >    2167,  2173,  2179,  2192,  2205,  2211,  2217,  2221,  2228,  2227,
1072 >    2232,  2232,  2233,  2237,  2243,  2254,  2260,  2266,  2272,  2288,
1073 >    2287,  2313,  2313,  2314,  2314,  2314,  2316,  2336,  2347,  2346,
1074 >    2373,  2373,  2374,  2374,  2374,  2376,  2382,  2392,  2394,  2394,
1075 >    2395,  2395,  2397,  2415,  2414,  2435,  2435,  2436,  2436,  2436,
1076 >    2438,  2444,  2454,  2456,  2456,  2457,  2458,  2459,  2460,  2461,
1077 >    2462,  2463,  2464,  2465,  2466,  2467,  2468,  2469,  2470,  2471,
1078 >    2472,  2473,  2474,  2475,  2476,  2477,  2478,  2479,  2480,  2481,
1079 >    2482,  2483,  2484,  2485,  2486,  2487,  2488,  2489,  2490,  2491,
1080 >    2492,  2493,  2494,  2495,  2496,  2497,  2498,  2499,  2500,  2501,
1081 >    2502,  2503,  2506,  2511,  2516,  2521,  2526,  2532,  2537,  2542,
1082 >    2547,  2552,  2557,  2562,  2567,  2572,  2577,  2582,  2587,  2592,
1083 >    2597,  2602,  2608,  2613,  2618,  2623,  2628,  2633,  2638,  2643,
1084 >    2646,  2651,  2654,  2659,  2664,  2669,  2674,  2679,  2684,  2689,
1085 >    2694,  2699,  2704,  2709,  2714,  2720,  2719,  2724,  2724,  2725,
1086 >    2728,  2731,  2734,  2737,  2740,  2743,  2746,  2749,  2752,  2755,
1087 >    2758,  2761,  2764,  2767,  2770,  2773,  2776,  2779,  2782,  2785,
1088 >    2788,  2794,  2793,  2798,  2798,  2799,  2802,  2805,  2808,  2811,
1089 >    2814,  2817,  2820,  2823,  2826,  2829,  2832,  2835,  2838,  2841,
1090 >    2844,  2847,  2850,  2853,  2856,  2861,  2866,  2871,  2880,  2882,
1091 >    2882,  2883,  2884,  2885,  2886,  2887,  2888,  2889,  2890,  2891,
1092 >    2892,  2893,  2894,  2895,  2897,  2902,  2907,  2912,  2917,  2922,
1093 >    2927,  2932,  2937,  2942,  2947,  2952,  2961,  2963,  2963,  2964,
1094 >    2965,  2966,  2967,  2968,  2969,  2970,  2971,  2972,  2973,  2975,
1095 >    2981,  2997,  3006,  3012,  3018,  3024,  3033,  3039
1096   };
1097   #endif
1098  
1099 < #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1099 > #if YYDEBUG || YYERROR_VERBOSE || 0
1100   /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1101     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1102   static const char *const yytname[] =
1103   {
1104 <  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ACTION", "ADMIN",
1105 <  "AFTYPE", "T_ALLOW", "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME",
1106 <  "AUTOCONN", "T_BLOCK", "BURST_AWAY", "BURST_TOPICWHO", "BYTES", "KBYTES",
1107 <  "MBYTES", "GBYTES", "TBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CAN_IDLE",
1108 <  "CHANNEL", "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CIPHER_PREFERENCE",
1109 <  "CLASS", "COMPRESSED", "COMPRESSION_LEVEL", "CONNECT", "CONNECTFREQ",
1110 <  "CRYPTLINK", "DEFAULT_CIPHER_PREFERENCE", "DEFAULT_FLOODCOUNT",
1111 <  "DEFAULT_SPLIT_SERVER_COUNT", "DEFAULT_SPLIT_USER_COUNT", "DENY",
1112 <  "DESCRIPTION", "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1113 <  "DISABLE_HIDDEN", "DISABLE_LOCAL_CHANNELS", "DISABLE_REMOTE_COMMANDS",
1114 <  "DOTS_IN_IDENT", "DURATION", "EGDPOOL_PATH", "EMAIL", "ENABLE",
1115 <  "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT", "FAILED_OPER_NOTICE",
1116 <  "IRCD_FLAGS", "FLATTEN_LINKS", "FFAILED_OPERLOG", "FKILLLOG",
1117 <  "FKLINELOG", "FGLINELOG", "FIOERRLOG", "FOPERLOG", "FOPERSPYLOG",
1118 <  "FUSERLOG", "GECOS", "GENERAL", "GLINE", "GLINES", "GLINE_EXEMPT",
1119 <  "GLINE_LOG", "GLINE_TIME", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1120 <  "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1121 <  "HIDDEN_ADMIN", "HIDDEN_NAME", "HIDDEN_OPER", "HIDE_SERVER_IPS",
1122 <  "HIDE_SERVERS", "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK", "IDLETIME",
1123 <  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "IP", "KILL",
1124 <  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KLINE_REASON",
1125 <  "KLINE_WITH_REASON", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1126 <  "LINKS_DELAY", "LISTEN", "T_LOG", "LOGGING", "LOG_LEVEL", "MAX_ACCEPT",
1127 <  "MAX_BANS", "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1128 <  "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1129 <  "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1130 <  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1131 <  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1132 <  "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1133 <  "NOT", "NUMBER", "NUMBER_PER_IDENT", "NUMBER_PER_CIDR", "NUMBER_PER_IP",
1134 <  "NUMBER_PER_IP_GLOBAL", "OPERATOR", "OPERS_BYPASS_CALLERID", "OPER_LOG",
1135 <  "OPER_ONLY_UMODES", "OPER_PASS_RESV", "OPER_SPY_T", "OPER_UMODES",
1136 <  "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "PACE_WAIT", "PACE_WAIT_SIMPLE",
1137 <  "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME", "PING_WARNING", "PORT",
1138 <  "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT", "REDIRSERV", "REGEX_T",
1139 <  "REHASH", "TREJECT_HOLD_TIME", "REMOTE", "REMOTEBAN",
1140 <  "RESTRICT_CHANNELS", "RESTRICTED", "RSA_PRIVATE_KEY_FILE",
1141 <  "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE", "T_SSL_CONNECTION_METHOD",
1142 <  "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT", "SECONDS", "MINUTES",
1143 <  "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD", "SERVERHIDE",
1144 <  "SERVERINFO", "SERVLINK_PATH", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1145 <  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SILENT", "SPOOF",
1146 <  "SPOOF_NOTICE", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1147 <  "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL",
1148 <  "TMASKED", "T_REJECT", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS",
1149 <  "T_ALL", "T_BOTS", "T_SOFTCALLERID", "T_CALLERID", "T_CCONN",
1150 <  "T_CCONN_FULL", "T_CLIENT_FLOOD", "T_DEAF", "T_DEBUG", "T_DRONE",
1151 <  "T_EXTERNAL", "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS",
1152 <  "T_LOGPATH", "T_L_CRIT", "T_L_DEBUG", "T_L_ERROR", "T_L_INFO",
1153 <  "T_L_NOTICE", "T_L_TRACE", "T_L_WARN", "T_MAX_CLIENTS", "T_NCHANGE",
1154 <  "T_OPERWALL", "T_REJ", "T_SERVER", "T_SERVNOTICE", "T_SKILL", "T_SPY",
1155 <  "T_SSL", "T_UMODES", "T_UNAUTH", "T_UNRESV", "T_UNXLINE", "T_WALLOP",
1156 <  "THROTTLE_TIME", "TOPICBURST", "TRUE_NO_OPER_FLOOD", "TKLINE", "TXLINE",
1157 <  "TRESV", "UNKLINE", "USER", "USE_EGD", "USE_EXCEPT", "USE_INVEX",
1158 <  "USE_KNOCK", "USE_LOGGING", "USE_WHOIS_ACTUALLY", "VHOST", "VHOST6",
1159 <  "XLINE", "WARN", "WARN_NO_NLINE", "';'", "'}'", "'{'", "'='", "','",
1160 <  "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1161 <  "sizespec", "modules_entry", "modules_items", "modules_item",
1162 <  "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1163 <  "serverinfo_item", "serverinfo_ssl_connection_method", "$@1",
1164 <  "method_types", "method_type_item", "serverinfo_ssl_certificate_file",
1165 <  "serverinfo_rsa_private_key_file", "serverinfo_name", "serverinfo_sid",
1166 <  "serverinfo_description", "serverinfo_network_name",
1104 >  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1105 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN",
1106 >  "AWAY_COUNT", "AWAY_TIME", "BYTES", "KBYTES", "MBYTES", "CALLER_ID_WAIT",
1107 >  "CAN_FLOOD", "CHANNEL", "CHECK_CACHE", "CIDR_BITLEN_IPV4",
1108 >  "CIDR_BITLEN_IPV6", "CLASS", "CLOSE", "CONNECT", "CONNECTFREQ",
1109 >  "CYCLE_ON_HOST_CHANGE", "DEFAULT_FLOODCOUNT", "DEFAULT_JOIN_FLOOD_COUNT",
1110 >  "DEFAULT_JOIN_FLOOD_TIME", "DEFAULT_MAX_CLIENTS", "DENY", "DESCRIPTION",
1111 >  "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1112 >  "DISABLE_REMOTE_COMMANDS", "DLINE_MIN_CIDR", "DLINE_MIN_CIDR6",
1113 >  "DOTS_IN_IDENT", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1114 >  "FAILED_OPER_NOTICE", "FLATTEN_LINKS", "FLATTEN_LINKS_DELAY",
1115 >  "FLATTEN_LINKS_FILE", "GECOS", "GENERAL", "HIDDEN", "HIDDEN_NAME",
1116 >  "HIDE_CHANS", "HIDE_IDLE", "HIDE_IDLE_FROM_OPERS", "HIDE_SERVER_IPS",
1117 >  "HIDE_SERVERS", "HIDE_SERVICES", "HOST", "HUB", "HUB_MASK",
1118 >  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "INVITE_CLIENT_COUNT",
1119 >  "INVITE_CLIENT_TIME", "INVITE_DELAY_CHANNEL", "IP", "IRCD_AUTH",
1120 >  "IRCD_FLAGS", "IRCD_SID", "JOIN", "KILL", "KILL_CHASE_TIME_LIMIT",
1121 >  "KLINE", "KLINE_EXEMPT", "KLINE_MIN_CIDR", "KLINE_MIN_CIDR6",
1122 >  "KNOCK_CLIENT_COUNT", "KNOCK_CLIENT_TIME", "KNOCK_DELAY_CHANNEL",
1123 >  "LEAF_MASK", "LIBGEOIP_DATABASE_OPTIONS", "LIBGEOIP_IPV4_DATABASE_FILE",
1124 >  "LIBGEOIP_IPV6_DATABASE_FILE", "LISTEN", "MASK", "MAX_ACCEPT",
1125 >  "MAX_BANS", "MAX_CHANNELS", "MAX_GLOBAL", "MAX_IDLE", "MAX_INVITES",
1126 >  "MAX_LOCAL", "MAX_NICK_CHANGES", "MAX_NICK_LENGTH", "MAX_NICK_TIME",
1127 >  "MAX_NUMBER", "MAX_TARGETS", "MAX_TOPIC_LENGTH", "MAX_WATCH",
1128 >  "MEMORY_CACHE", "MIN_IDLE", "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE",
1129 >  "MMAP_CACHE", "MODULE", "MODULES", "MOTD", "NAME", "NEED_IDENT",
1130 >  "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME", "NICK", "NO_OPER_FLOOD",
1131 >  "NO_TILDE", "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP",
1132 >  "OPER_ONLY_UMODES", "OPER_UMODES", "OPERATOR", "OPERS_BYPASS_CALLERID",
1133 >  "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1134 >  "PING_TIME", "PORT", "QSTRING", "RANDOM_IDLE", "REASON", "REDIRPORT",
1135 >  "REDIRSERV", "REHASH", "REMOTE", "REMOTEBAN", "RESV", "RESV_EXEMPT",
1136 >  "RSA_PRIVATE_KEY_FILE", "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS",
1137 >  "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ", "SERVERHIDE", "SERVERINFO",
1138 >  "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE", "SQUIT", "SSL_CERTIFICATE_FILE",
1139 >  "SSL_CERTIFICATE_FINGERPRINT", "SSL_CONNECTION_REQUIRED",
1140 >  "SSL_DH_ELLIPTIC_CURVE", "SSL_DH_PARAM_FILE",
1141 >  "SSL_MESSAGE_DIGEST_ALGORITHM", "STANDARD", "STATS_E_DISABLED",
1142 >  "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY", "STATS_M_OPER_ONLY",
1143 >  "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "STATS_U_OPER_ONLY", "T_ALL",
1144 >  "T_BOTS", "T_CALLERID", "T_CCONN", "T_COMMAND", "T_CLUSTER", "T_DEAF",
1145 >  "T_DEBUG", "T_DLINE", "T_EXTERNAL", "T_FARCONNECT", "T_FILE", "T_FULL",
1146 >  "T_GLOBOPS", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_LOG",
1147 >  "T_NCHANGE", "T_NONONREG", "T_OPME", "T_PREPEND", "T_PSEUDO", "T_RECVQ",
1148 >  "T_REJ", "T_RESTART", "T_SERVER", "T_SERVICE", "T_SERVNOTICE", "T_SET",
1149 >  "T_SHARED", "T_SIZE", "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL",
1150 >  "T_SSL_CIPHER_LIST", "T_TARGET", "T_UMODES", "T_UNAUTH", "T_UNDLINE",
1151 >  "T_UNLIMITED", "T_UNRESV", "T_UNXLINE", "T_WALLOP", "T_WALLOPS",
1152 >  "T_WEBIRC", "TBOOL", "THROTTLE_COUNT", "THROTTLE_TIME",
1153 >  "TKLINE_EXPIRE_NOTICES", "TMASKED", "TS_MAX_DELTA", "TS_WARN_DELTA",
1154 >  "TWODOTS", "TYPE", "UNKLINE", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1155 >  "WARN_NO_CONNECT_BLOCK", "WHOIS", "WHOWAS_HISTORY_LENGTH", "XLINE",
1156 >  "XLINE_EXEMPT", "';'", "'}'", "'{'", "'='", "','", "':'", "$accept",
1157 >  "conf", "conf_item", "timespec_", "timespec", "sizespec_", "sizespec",
1158 >  "modules_entry", "modules_items", "modules_item", "modules_module",
1159 >  "modules_path", "serverinfo_entry", "serverinfo_items",
1160 >  "serverinfo_item", "serverinfo_ssl_certificate_file",
1161 >  "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1162 >  "serverinfo_ssl_cipher_list", "serverinfo_ssl_message_digest_algorithm",
1163 >  "serverinfo_ssl_dh_elliptic_curve",
1164 >  "serverinfo_libgeoip_database_options", "$@1", "options_items",
1165 >  "options_item", "serverinfo_libgeoip_ipv4_database_file",
1166 >  "serverinfo_libgeoip_ipv6_database_file", "serverinfo_name",
1167 >  "serverinfo_sid", "serverinfo_description", "serverinfo_network_name",
1168    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1169 <  "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1170 <  "admin_item", "admin_name", "admin_email", "admin_description",
1171 <  "logging_entry", "logging_items", "logging_item", "logging_path",
1172 <  "logging_oper_log", "logging_fuserlog", "logging_ffailed_operlog",
1173 <  "logging_foperlog", "logging_foperspylog", "logging_fglinelog",
1174 <  "logging_fklinelog", "logging_ioerrlog", "logging_killlog",
1175 <  "logging_log_level", "logging_use_logging", "oper_entry", "$@2",
1176 <  "oper_name_b", "oper_items", "oper_item", "oper_name", "oper_name_t",
1177 <  "oper_user", "oper_password", "oper_encrypted",
1178 <  "oper_rsa_public_key_file", "oper_class", "oper_umodes", "$@3",
1179 <  "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@4",
1180 <  "oper_flags_items", "oper_flags_item", "$@5", "$@6",
1181 <  "oper_flags_item_atom", "class_entry", "$@7", "class_name_b",
1182 <  "class_items", "class_item", "class_name", "class_name_t",
1183 <  "class_ping_time", "class_ping_warning", "class_number_per_ip",
1184 <  "class_connectfreq", "class_max_number", "class_max_global",
1185 <  "class_max_local", "class_max_ident", "class_sendq",
1186 <  "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1187 <  "class_number_per_cidr", "listen_entry", "$@8", "listen_flags", "$@9",
1188 <  "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1189 <  "listen_port", "$@10", "port_items", "port_item", "listen_address",
1190 <  "listen_host", "auth_entry", "$@11", "auth_items", "auth_item",
1191 <  "auth_user", "auth_passwd", "auth_class", "auth_encrypted", "auth_flags",
1192 <  "$@12", "auth_flags_items", "auth_flags_item", "$@13", "$@14",
1193 <  "auth_flags_item_atom", "auth_spoof", "auth_redir_serv",
1194 <  "auth_redir_port", "resv_entry", "$@15", "resv_items", "resv_item",
1195 <  "resv_creason", "resv_channel", "resv_nick", "shared_entry", "$@16",
1169 >  "serverinfo_default_max_clients", "serverinfo_max_nick_length",
1170 >  "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1171 >  "admin_items", "admin_item", "admin_name", "admin_email",
1172 >  "admin_description", "motd_entry", "$@2", "motd_items", "motd_item",
1173 >  "motd_mask", "motd_file", "pseudo_entry", "$@3", "pseudo_items",
1174 >  "pseudo_item", "pseudo_command", "pseudo_name", "pseudo_prepend",
1175 >  "pseudo_target", "logging_entry", "logging_items", "logging_item",
1176 >  "logging_use_logging", "logging_file_entry", "$@4", "logging_file_items",
1177 >  "logging_file_item", "logging_file_name", "logging_file_size",
1178 >  "logging_file_type", "$@5", "logging_file_type_items",
1179 >  "logging_file_type_item", "oper_entry", "$@6", "oper_items", "oper_item",
1180 >  "oper_name", "oper_user", "oper_password", "oper_whois",
1181 >  "oper_encrypted", "oper_ssl_certificate_fingerprint",
1182 >  "oper_ssl_connection_required", "oper_class", "oper_umodes", "$@7",
1183 >  "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@8",
1184 >  "oper_flags_items", "oper_flags_item", "class_entry", "$@9",
1185 >  "class_items", "class_item", "class_name", "class_ping_time",
1186 >  "class_number_per_ip", "class_connectfreq", "class_max_channels",
1187 >  "class_max_number", "class_max_global", "class_max_local", "class_sendq",
1188 >  "class_recvq", "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1189 >  "class_number_per_cidr", "class_min_idle", "class_max_idle",
1190 >  "class_flags", "$@10", "class_flags_items", "class_flags_item",
1191 >  "listen_entry", "$@11", "listen_flags", "$@12", "listen_flags_items",
1192 >  "listen_flags_item", "listen_items", "listen_item", "listen_port",
1193 >  "$@13", "port_items", "port_item", "listen_address", "listen_host",
1194 >  "auth_entry", "$@14", "auth_items", "auth_item", "auth_user",
1195 >  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@15",
1196 >  "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1197 >  "auth_redir_port", "resv_entry", "$@16", "resv_items", "resv_item",
1198 >  "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1199 >  "service_items", "service_item", "service_name", "shared_entry", "$@17",
1200    "shared_items", "shared_item", "shared_name", "shared_user",
1201 <  "shared_type", "$@17", "shared_types", "shared_type_item",
1202 <  "cluster_entry", "$@18", "cluster_items", "cluster_item", "cluster_name",
1203 <  "cluster_type", "$@19", "cluster_types", "cluster_type_item",
1204 <  "connect_entry", "$@20", "connect_name_b", "connect_items",
1205 <  "connect_item", "connect_name", "connect_name_t", "connect_host",
1206 <  "connect_vhost", "connect_send_password", "connect_accept_password",
1207 <  "connect_port", "connect_aftype", "connect_flags", "$@21",
1208 <  "connect_flags_items", "connect_flags_item", "$@22", "$@23",
1209 <  "connect_flags_item_atom", "connect_rsa_public_key_file",
1210 <  "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1211 <  "connect_class", "connect_cipher_preference", "kill_entry", "$@24",
1519 <  "kill_type", "$@25", "kill_type_items", "kill_type_item", "kill_items",
1520 <  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@26",
1201 >  "shared_type", "$@18", "shared_types", "shared_type_item",
1202 >  "cluster_entry", "$@19", "cluster_items", "cluster_item", "cluster_name",
1203 >  "cluster_type", "$@20", "cluster_types", "cluster_type_item",
1204 >  "connect_entry", "$@21", "connect_items", "connect_item", "connect_name",
1205 >  "connect_host", "connect_vhost", "connect_send_password",
1206 >  "connect_accept_password", "connect_ssl_certificate_fingerprint",
1207 >  "connect_port", "connect_aftype", "connect_flags", "$@22",
1208 >  "connect_flags_items", "connect_flags_item", "connect_encrypted",
1209 >  "connect_hub_mask", "connect_leaf_mask", "connect_class",
1210 >  "connect_ssl_cipher_list", "kill_entry", "$@23", "kill_items",
1211 >  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@24",
1212    "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1213 <  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@27",
1523 <  "gecos_flags", "$@28", "gecos_flags_items", "gecos_flags_item",
1213 >  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@25",
1214    "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1215 <  "general_entry", "general_items", "general_item", "general_max_watch",
1216 <  "general_gline_min_cidr", "general_gline_min_cidr6",
1217 <  "general_burst_away", "general_use_whois_actually",
1218 <  "general_reject_hold_time", "general_tkline_expire_notices",
1219 <  "general_kill_chase_time_limit", "general_hide_spoof_ips",
1220 <  "general_ignore_bogus_ts", "general_disable_remote_commands",
1221 <  "general_failed_oper_notice", "general_anti_nick_flood",
1222 <  "general_max_nick_time", "general_max_nick_changes",
1223 <  "general_max_accept", "general_anti_spam_exit_message_time",
1224 <  "general_ts_warn_delta", "general_ts_max_delta",
1225 <  "general_havent_read_conf", "general_kline_with_reason",
1226 <  "general_kline_reason", "general_invisible_on_connect",
1227 <  "general_warn_no_nline", "general_stats_e_disabled",
1228 <  "general_stats_o_oper_only", "general_stats_P_oper_only",
1215 >  "general_entry", "general_items", "general_item", "general_away_count",
1216 >  "general_away_time", "general_max_watch",
1217 >  "general_whowas_history_length", "general_cycle_on_host_change",
1218 >  "general_dline_min_cidr", "general_dline_min_cidr6",
1219 >  "general_kline_min_cidr", "general_kline_min_cidr6",
1220 >  "general_tkline_expire_notices", "general_kill_chase_time_limit",
1221 >  "general_ignore_bogus_ts", "general_failed_oper_notice",
1222 >  "general_anti_nick_flood", "general_max_nick_time",
1223 >  "general_max_nick_changes", "general_max_accept",
1224 >  "general_anti_spam_exit_message_time", "general_ts_warn_delta",
1225 >  "general_ts_max_delta", "general_invisible_on_connect",
1226 >  "general_warn_no_connect_block", "general_stats_e_disabled",
1227 >  "general_stats_m_oper_only", "general_stats_o_oper_only",
1228 >  "general_stats_P_oper_only", "general_stats_u_oper_only",
1229    "general_stats_k_oper_only", "general_stats_i_oper_only",
1230    "general_pace_wait", "general_caller_id_wait",
1231    "general_opers_bypass_callerid", "general_pace_wait_simple",
1232 <  "general_short_motd", "general_no_oper_flood",
1233 <  "general_true_no_oper_flood", "general_oper_pass_resv",
1234 <  "general_message_locale", "general_idletime", "general_dots_in_ident",
1235 <  "general_max_targets", "general_servlink_path",
1236 <  "general_default_cipher_preference", "general_compression_level",
1547 <  "general_use_egd", "general_egdpool_path", "general_ping_cookie",
1548 <  "general_disable_auth", "general_throttle_time", "general_oper_umodes",
1549 <  "$@29", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1550 <  "$@30", "umode_items", "umode_item", "general_min_nonwildcard",
1232 >  "general_short_motd", "general_no_oper_flood", "general_dots_in_ident",
1233 >  "general_max_targets", "general_ping_cookie", "general_disable_auth",
1234 >  "general_throttle_count", "general_throttle_time", "general_oper_umodes",
1235 >  "$@26", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1236 >  "$@27", "umode_items", "umode_item", "general_min_nonwildcard",
1237    "general_min_nonwildcard_simple", "general_default_floodcount",
1552  "general_client_flood", "gline_entry", "$@31", "gline_items",
1553  "gline_item", "gline_enable", "gline_duration", "gline_logging", "$@32",
1554  "gline_logging_types", "gline_logging_type_item", "gline_user",
1555  "gline_server", "gline_action", "$@33", "gdeny_types", "gdeny_type_item",
1238    "channel_entry", "channel_items", "channel_item",
1239 <  "channel_disable_fake_channels", "channel_restrict_channels",
1240 <  "channel_disable_local_channels", "channel_use_except",
1241 <  "channel_use_invex", "channel_use_knock", "channel_knock_delay",
1242 <  "channel_knock_delay_channel", "channel_max_chans_per_user",
1243 <  "channel_quiet_on_ban", "channel_max_bans",
1244 <  "channel_default_split_user_count", "channel_default_split_server_count",
1563 <  "channel_no_create_on_split", "channel_no_join_on_split",
1564 <  "channel_burst_topicwho", "channel_jflood_count", "channel_jflood_time",
1239 >  "channel_disable_fake_channels", "channel_invite_client_count",
1240 >  "channel_invite_client_time", "channel_invite_delay_channel",
1241 >  "channel_knock_client_count", "channel_knock_client_time",
1242 >  "channel_knock_delay_channel", "channel_max_channels",
1243 >  "channel_max_invites", "channel_max_bans",
1244 >  "channel_default_join_flood_count", "channel_default_join_flood_time",
1245    "serverhide_entry", "serverhide_items", "serverhide_item",
1246 <  "serverhide_flatten_links", "serverhide_hide_servers",
1247 <  "serverhide_hidden_name", "serverhide_links_delay", "serverhide_hidden",
1248 <  "serverhide_disable_hidden", "serverhide_hide_server_ips", 0
1246 >  "serverhide_flatten_links", "serverhide_flatten_links_delay",
1247 >  "serverhide_flatten_links_file", "serverhide_disable_remote_commands",
1248 >  "serverhide_hide_servers", "serverhide_hide_services",
1249 >  "serverhide_hidden_name", "serverhide_hidden",
1250 >  "serverhide_hide_server_ips", YY_NULLPTR
1251   };
1252   #endif
1253  
1254   # ifdef YYPRINT
1255 < /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1256 <   token YYLEX-NUM.  */
1255 > /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1256 >   (internal) symbol number NUM (which must be that of a token).  */
1257   static const yytype_uint16 yytoknum[] =
1258   {
1259         0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
# Line 1597 | Line 1279 | static const yytype_uint16 yytoknum[] =
1279       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1280       465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1281       475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1282 <     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1283 <     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
1602 <     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
1603 <      59,   125,   123,    61,    44
1282 >     485,   486,   487,   488,   489,    59,   125,   123,    61,    44,
1283 >      58
1284   };
1285   # endif
1286  
1287 < /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1608 < static const yytype_uint16 yyr1[] =
1609 < {
1610 <       0,   265,   266,   266,   267,   267,   267,   267,   267,   267,
1611 <     267,   267,   267,   267,   267,   267,   267,   267,   267,   267,
1612 <     267,   267,   267,   267,   267,   267,   268,   268,   269,   269,
1613 <     269,   269,   269,   269,   270,   270,   271,   271,   271,   271,
1614 <     272,   273,   273,   274,   274,   274,   275,   276,   277,   278,
1615 <     278,   279,   279,   279,   279,   279,   279,   279,   279,   279,
1616 <     279,   279,   279,   279,   281,   280,   282,   282,   283,   283,
1617 <     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
1618 <     294,   295,   296,   296,   297,   297,   297,   297,   298,   299,
1619 <     300,   301,   302,   302,   303,   303,   303,   303,   303,   303,
1620 <     303,   303,   303,   303,   303,   303,   303,   304,   305,   306,
1621 <     307,   308,   309,   310,   311,   312,   313,   314,   314,   314,
1622 <     314,   314,   314,   314,   315,   317,   316,   318,   318,   319,
1623 <     319,   320,   320,   320,   320,   320,   320,   320,   320,   320,
1624 <     321,   322,   323,   324,   325,   326,   327,   329,   328,   330,
1625 <     330,   331,   331,   331,   331,   331,   331,   331,   331,   331,
1626 <     331,   331,   331,   331,   331,   331,   331,   331,   331,   331,
1627 <     333,   332,   334,   334,   336,   335,   337,   335,   338,   338,
1628 <     338,   338,   338,   338,   338,   338,   338,   338,   338,   338,
1629 <     338,   338,   338,   338,   340,   339,   341,   341,   342,   342,
1630 <     343,   343,   343,   343,   343,   343,   343,   343,   343,   343,
1631 <     343,   343,   343,   343,   344,   345,   346,   347,   348,   349,
1632 <     350,   351,   352,   353,   354,   355,   356,   357,   359,   358,
1633 <     361,   360,   362,   362,   363,   363,   363,   364,   364,   365,
1634 <     365,   365,   365,   365,   367,   366,   368,   368,   369,   369,
1635 <     370,   371,   373,   372,   374,   374,   375,   375,   375,   375,
1636 <     375,   375,   375,   375,   375,   376,   377,   378,   379,   381,
1637 <     380,   382,   382,   384,   383,   385,   383,   386,   386,   386,
1638 <     386,   386,   386,   386,   386,   386,   386,   387,   388,   389,
1639 <     391,   390,   392,   392,   393,   393,   393,   393,   394,   395,
1640 <     396,   398,   397,   399,   399,   400,   400,   400,   400,   401,
1641 <     402,   404,   403,   405,   405,   406,   406,   406,   406,   406,
1642 <     406,   406,   406,   406,   406,   406,   408,   407,   409,   409,
1643 <     410,   410,   410,   411,   413,   412,   414,   414,   415,   415,
1644 <     415,   415,   415,   415,   415,   415,   415,   415,   415,   417,
1645 <     416,   418,   418,   419,   419,   420,   420,   420,   420,   420,
1646 <     420,   420,   420,   420,   420,   420,   420,   420,   420,   420,
1647 <     421,   422,   423,   424,   425,   426,   427,   428,   428,   430,
1648 <     429,   431,   431,   433,   432,   434,   432,   435,   435,   435,
1649 <     435,   435,   436,   437,   438,   439,   440,   441,   443,   442,
1650 <     445,   444,   446,   446,   447,   448,   448,   449,   449,   449,
1651 <     449,   450,   451,   453,   452,   454,   454,   455,   455,   455,
1652 <     456,   457,   458,   459,   459,   460,   460,   461,   463,   462,
1653 <     465,   464,   466,   466,   467,   468,   468,   469,   469,   469,
1654 <     469,   470,   471,   472,   473,   473,   474,   474,   474,   474,
1655 <     474,   474,   474,   474,   474,   474,   474,   474,   474,   474,
1656 <     474,   474,   474,   474,   474,   474,   474,   474,   474,   474,
1657 <     474,   474,   474,   474,   474,   474,   474,   474,   474,   474,
1658 <     474,   474,   474,   474,   474,   474,   474,   474,   474,   474,
1659 <     474,   474,   474,   474,   474,   474,   474,   474,   474,   474,
1660 <     474,   474,   475,   476,   477,   478,   479,   480,   481,   482,
1661 <     483,   484,   485,   486,   487,   488,   489,   490,   491,   492,
1662 <     493,   494,   495,   496,   497,   498,   499,   500,   501,   502,
1663 <     502,   503,   503,   504,   505,   506,   507,   508,   509,   510,
1664 <     511,   512,   513,   514,   515,   516,   517,   518,   519,   520,
1665 <     521,   522,   523,   525,   524,   526,   526,   527,   527,   527,
1666 <     527,   527,   527,   527,   527,   527,   527,   527,   527,   527,
1667 <     527,   527,   527,   527,   527,   527,   529,   528,   530,   530,
1668 <     531,   531,   531,   531,   531,   531,   531,   531,   531,   531,
1669 <     531,   531,   531,   531,   531,   531,   531,   531,   531,   532,
1670 <     533,   534,   535,   537,   536,   538,   538,   539,   539,   539,
1671 <     539,   539,   539,   539,   540,   541,   543,   542,   544,   544,
1672 <     545,   545,   546,   547,   549,   548,   550,   550,   551,   551,
1673 <     552,   553,   553,   554,   554,   554,   554,   554,   554,   554,
1674 <     554,   554,   554,   554,   554,   554,   554,   554,   554,   554,
1675 <     554,   554,   555,   556,   557,   558,   559,   560,   561,   562,
1676 <     563,   564,   565,   566,   567,   568,   569,   570,   571,   572,
1677 <     573,   574,   574,   575,   575,   575,   575,   575,   575,   575,
1678 <     575,   576,   577,   578,   579,   580,   581,   582
1679 < };
1287 > #define YYPACT_NINF -795
1288  
1289 < /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1290 < static const yytype_uint8 yyr2[] =
1289 > #define yypact_value_is_default(Yystate) \
1290 >  (!!((Yystate) == (-795)))
1291 >
1292 > #define YYTABLE_NINF -143
1293 >
1294 > #define yytable_value_is_error(Yytable_value) \
1295 >  0
1296 >
1297 >  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1298 >     STATE-NUM.  */
1299 > static const yytype_int16 yypact[] =
1300   {
1301 <       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1302 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1303 <       1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1304 <       3,     3,     3,     3,     0,     1,     2,     3,     3,     3,
1305 <       5,     2,     1,     1,     1,     2,     4,     4,     5,     2,
1306 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1307 <       1,     1,     1,     2,     0,     5,     3,     1,     1,     1,
1308 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1309 <       4,     5,     2,     1,     1,     1,     1,     2,     4,     4,
1310 <       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1311 <       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
1312 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1313 <       4,     4,     4,     4,     4,     0,     7,     0,     1,     2,
1314 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
1315 <       4,     1,     4,     4,     4,     4,     4,     0,     5,     3,
1316 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1317 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1318 <       0,     5,     3,     1,     0,     3,     0,     2,     1,     1,
1319 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1320 <       1,     1,     1,     1,     0,     7,     0,     1,     2,     1,
1321 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1322 <       1,     1,     1,     2,     4,     1,     4,     4,     4,     4,
1323 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     6,
1324 <       0,     5,     3,     1,     1,     1,     1,     2,     1,     1,
1325 <       1,     1,     1,     2,     0,     5,     3,     1,     1,     3,
1326 <       4,     4,     0,     6,     2,     1,     1,     1,     1,     1,
1327 <       1,     1,     1,     1,     2,     4,     4,     4,     4,     0,
1328 <       5,     3,     1,     0,     3,     0,     2,     1,     1,     1,
1329 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1330 <       0,     6,     2,     1,     1,     1,     1,     2,     4,     4,
1331 <       4,     0,     6,     2,     1,     1,     1,     1,     2,     4,
1332 <       4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1333 <       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
1334 <       1,     1,     2,     4,     0,     5,     3,     1,     1,     1,
1335 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1336 <       7,     0,     1,     2,     1,     1,     1,     1,     1,     1,
1337 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
1338 <       4,     1,     4,     4,     4,     4,     4,     4,     4,     0,
1339 <       5,     3,     1,     0,     3,     0,     2,     1,     1,     1,
1340 <       1,     1,     4,     4,     4,     4,     4,     4,     0,     6,
1341 <       0,     5,     3,     1,     1,     2,     1,     1,     1,     1,
1342 <       1,     4,     4,     0,     6,     2,     1,     1,     1,     1,
1343 <       4,     4,     5,     2,     1,     1,     1,     4,     0,     6,
1344 <       0,     5,     3,     1,     1,     2,     1,     1,     1,     1,
1345 <       1,     4,     4,     5,     2,     1,     1,     1,     1,     1,
1346 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1347 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1348 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1349 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1350 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1351 <       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
1352 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1353 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1354 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1355 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1356 <       4,     4,     4,     0,     5,     3,     1,     1,     1,     1,
1357 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1358 <       1,     1,     1,     1,     1,     1,     0,     5,     3,     1,
1359 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1360 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
1361 <       4,     4,     4,     0,     6,     2,     1,     1,     1,     1,
1362 <       1,     1,     1,     1,     4,     4,     0,     5,     3,     1,
1363 <       1,     1,     4,     4,     0,     5,     3,     1,     1,     1,
1364 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1365 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1366 <       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
1367 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1368 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1369 <       1,     4,     4,     4,     4,     4,     4,     4
1301 >    -795,   693,  -795,   -43,  -217,  -212,  -795,  -795,  -795,  -210,
1302 >    -795,  -194,  -795,  -795,  -795,  -174,  -795,  -795,  -795,  -165,
1303 >    -163,  -795,  -157,  -795,  -152,  -795,  -795,  -795,  -795,  -795,
1304 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1305 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1306 >    -795,   322,   953,  -137,  -128,  -123,    14,  -106,   376,  -100,
1307 >     -88,   -70,    80,   -62,   -53,   -51,   948,   520,   -42,     2,
1308 >     -17,    12,   -16,  -169,  -104,   -11,    -4,     9,  -795,  -795,
1309 >    -795,  -795,  -795,    42,    44,    58,    75,    99,   113,   115,
1310 >     120,   121,   123,   124,   128,   161,  -795,  -795,  -795,  -795,
1311 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,   705,
1312 >     514,    15,  -795,   129,    91,  -795,  -795,    48,  -795,   130,
1313 >     131,   132,   134,   138,   140,   141,   146,   149,   151,   153,
1314 >     154,   155,   160,   166,   168,   171,   172,   177,   178,   179,
1315 >     181,   184,   186,   187,  -795,  -795,   188,   189,   191,   192,
1316 >     193,   199,   200,   201,   203,   204,   205,   206,   207,   209,
1317 >     210,   213,   215,   216,   217,    51,  -795,  -795,  -795,  -795,
1318 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1319 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1320 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1321 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1322 >    -795,  -795,  -795,   413,    81,    39,    83,   218,   220,    40,
1323 >    -795,  -795,  -795,    11,   355,    30,  -795,   224,   225,   226,
1324 >     228,   230,   232,   234,   236,   237,   250,  -795,  -795,  -795,
1325 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,    84,   242,   243,
1326 >     247,   249,  -795,   252,   253,   254,   257,   264,   265,   266,
1327 >     267,   268,   270,   274,   275,   276,   278,   280,   152,  -795,
1328 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1329 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1330 >      41,   164,   282,    28,  -795,  -795,  -795,   136,   401,  -795,
1331 >     284,    23,  -795,  -795,   196,  -795,   245,   306,   395,   292,
1332 >    -795,   414,   415,   315,   418,   415,   415,   419,   415,   415,
1333 >     421,   437,   438,   320,  -795,   321,   319,   323,   325,  -795,
1334 >     327,   328,   329,   330,   333,   336,   337,   338,   340,   341,
1335 >     345,   346,   248,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1336 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1337 >     324,   347,   350,   352,   358,   364,   366,  -795,   371,   372,
1338 >     377,   379,   380,   381,   383,    50,  -795,  -795,  -795,  -795,
1339 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1340 >    -795,  -795,   384,   385,    20,  -795,  -795,  -795,   430,   389,
1341 >    -795,  -795,   387,   390,    27,  -795,  -795,  -795,   344,   415,
1342 >     513,   415,   415,   420,   519,   422,   521,   523,   525,   426,
1343 >     427,   428,   415,   534,   535,   536,   538,   415,   539,   542,
1344 >     543,   547,   446,   396,   408,   448,   415,   415,   449,   450,
1345 >     454,  -197,  -190,   455,   457,   459,   472,   577,   415,   480,
1346 >     415,   415,   482,   585,   466,  -795,   467,   469,   476,  -795,
1347 >     483,   488,   489,   491,   492,   169,  -795,  -795,  -795,  -795,
1348 >    -795,  -795,  -795,  -795,  -795,  -795,   493,   494,    61,  -795,
1349 >    -795,  -795,   470,   499,   500,  -795,   507,  -795,     3,  -795,
1350 >    -795,  -795,  -795,  -795,   582,   588,   485,  -795,   511,   509,
1351 >     512,    21,  -795,  -795,  -795,   518,   516,   517,  -795,   522,
1352 >     526,   528,   529,  -795,   530,   531,   119,  -795,  -795,  -795,
1353 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,   524,   544,
1354 >     545,   546,    49,  -795,  -795,  -795,  -795,   502,   540,   415,
1355 >     633,   554,   635,   556,   557,   558,   550,  -795,  -795,   590,
1356 >     648,   561,   651,   548,   659,   660,   675,   676,   666,   668,
1357 >     672,   673,   674,   677,   678,   679,   680,   682,   686,   578,
1358 >    -795,   580,   579,  -795,    55,  -795,  -795,  -795,  -795,   600,
1359 >     584,  -795,   111,   587,   586,   589,   592,   594,   135,  -795,
1360 >    -795,  -795,  -795,  -795,   695,   591,  -795,   593,   595,  -795,
1361 >     596,    16,  -795,  -795,  -795,  -795,   601,   602,   603,  -795,
1362 >     604,   541,   605,   608,   609,   610,   611,   612,   613,   614,
1363 >     615,   616,   618,  -795,  -795,   711,   721,   415,   619,   744,
1364 >     747,   415,   750,   754,   415,   741,   760,   761,   415,   762,
1365 >     762,   642,  -795,  -795,   752,  -138,   753,   667,   757,   763,
1366 >     652,   766,   767,   782,   774,   775,   778,   781,   681,  -795,
1367 >     783,   785,   684,  -795,   687,  -795,   786,   792,   689,  -795,
1368 >     690,   691,   694,   699,   700,   702,   707,   716,   718,   724,
1369 >     725,   726,   727,   729,   731,   734,   735,   739,   740,   742,
1370 >     746,   749,   755,   759,   764,   770,   685,   765,   769,   771,
1371 >     772,   773,   784,   787,   788,   789,   791,   796,   797,   799,
1372 >     801,   802,   805,   806,   808,   809,   810,   811,  -795,  -795,
1373 >     793,   712,   692,   818,   842,   837,   859,   860,   812,  -795,
1374 >     861,   867,   813,  -795,  -795,   870,   877,   779,   896,   814,
1375 >    -795,   815,   816,  -795,  -795,   885,   890,   817,  -795,  -795,
1376 >     892,   819,   820,   893,   899,   925,   838,   821,   927,   928,
1377 >     822,  -795,  -795,   932,   933,   934,   828,  -795,   829,   830,
1378 >     831,   832,   833,   834,   835,   836,   839,  -795,   840,   841,
1379 >     843,   844,   305,   845,   846,   847,   848,   849,   850,   851,
1380 >     852,   853,   854,   855,   856,   857,   858,   862,  -795,  -795,
1381 >     944,   863,   864,  -795,   865,  -795,   259,  -795,   945,   949,
1382 >     966,   967,   868,  -795,   869,  -795,  -795,   968,   871,   970,
1383 >     872,  -795,  -795,  -795,  -795,  -795,   415,   415,   415,   415,
1384 >     415,   415,   415,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1385 >    -795,  -795,  -795,  -795,  -795,  -795,   873,   875,   876,   -38,
1386 >     878,   879,   880,   881,   882,   883,   884,   886,   887,   888,
1387 >      85,   889,   891,  -795,   894,   895,   897,   898,   900,   901,
1388 >     902,    -1,   903,   904,   905,   906,   907,   908,   909,  -795,
1389 >     910,   911,  -795,  -795,   912,   913,  -795,  -795,  -795,  -795,
1390 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1391 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1392 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1393 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1394 >    -795,  -795,  -191,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1395 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1396 >    -795,  -795,  -795,  -795,  -795,  -795,  -171,  -795,  -795,  -795,
1397 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1398 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,   914,
1399 >     915,   417,   916,   917,   918,   919,   920,  -795,   921,   922,
1400 >    -795,   923,   924,   -30,   937,   866,  -795,  -795,  -795,  -795,
1401 >     926,   929,  -795,   930,   931,   478,   935,   936,   938,   939,
1402 >     730,   940,   941,  -795,   942,   943,   946,  -795,  -795,  -795,
1403 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1404 >    -795,  -795,  -795,  -795,  -795,  -162,  -795,  -795,  -795,  -795,
1405 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1406 >    -795,  -795,   947,   532,  -795,  -795,   950,   874,   951,  -795,
1407 >      53,  -795,  -795,  -795,  -795,   952,   955,   956,   957,  -795,
1408 >    -795,   958,   800,   959,  -795,  -795,  -795,  -795,  -795,  -795,
1409 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -116,  -795,  -795,
1410 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,   762,
1411 >     762,   762,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1412 >    -795,  -795,  -795,  -795,  -795,   -37,  -795,  -795,  -795,  -795,
1413 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,   770,
1414 >    -795,   685,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1415 >    -795,  -795,  -795,  -795,   -29,  -795,  -795,  -795,  -795,  -795,
1416 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,    -9,  -795,
1417 >     988,   896,   960,  -795,  -795,  -795,  -795,  -795,  -795,   961,
1418 >    -795,   962,   963,  -795,  -795,   964,   965,  -795,  -795,   969,
1419 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1420 >    -795,  -795,    77,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1421 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1422 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1423 >      94,  -795,  -795,  -795,  -795,  -795,  -795,  -795,   305,  -795,
1424 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1425 >     104,  -795,  -795,   978,  -103,   972,   971,  -795,  -795,  -795,
1426 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1427 >    -795,  -795,  -795,   105,  -795,  -795,  -795,   -38,  -795,  -795,
1428 >    -795,  -795,    -1,  -795,  -795,  -795,   417,  -795,   -30,  -795,
1429 >    -795,  -795,   986,   989,   993,   992,   997,  1000,  -795,   478,
1430 >    -795,   730,  -795,  -795,   532,   973,   976,   977,   576,  -795,
1431 >    -795,   800,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1432 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1433 >    -795,  -795,  -795,  -795,  -795,  -795,   110,  -795,  -795,  -795,
1434 >     576,  -795
1435   };
1436  
1437 < /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
1438 <   Performed when YYTABLE doesn't specify something else to do.  Zero
1439 <   means the default is an error.  */
1437 >  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1438 >     Performed when YYTABLE does not specify something else to do.  Zero
1439 >     means the default is an error.  */
1440   static const yytype_uint16 yydefact[] =
1441   {
1442 <       2,     0,     1,     0,     0,     0,   194,   349,   413,     0,
1443 <     428,     0,   603,   252,   398,   228,     0,     0,   125,   290,
1444 <       0,     0,   301,   326,     3,    23,    11,     4,     5,     6,
1445 <       8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1446 <      22,    20,    21,     7,    12,    24,    25,     0,     0,   196,
1447 <     351,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1766 <       0,   127,     0,     0,     0,     0,     0,     0,     0,     0,
1767 <       0,     0,    83,    84,    86,    85,   651,     0,     0,     0,
1768 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1769 <       0,     0,     0,     0,     0,     0,   632,   650,   645,   633,
1770 <     634,   635,   636,   638,   639,   640,   641,   637,   642,   643,
1771 <     644,   646,   647,   648,   649,   215,     0,   197,   371,     0,
1772 <     352,     0,   426,     0,     0,   424,   425,     0,   501,     0,
1773 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1442 >       2,     0,     1,     0,     0,     0,   247,   410,   458,     0,
1443 >     473,     0,   313,   449,   289,     0,   113,   165,   347,     0,
1444 >       0,   388,     0,   122,     0,   364,     3,    23,    11,     4,
1445 >      24,    25,     5,     6,     8,     9,    10,    13,    14,    15,
1446 >      16,    17,    18,    19,    20,    22,    21,     7,    12,    26,
1447 >      27,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1448         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1449 +       0,     0,     0,     0,     0,     0,     0,     0,   105,   106,
1450 +     108,   107,   643,     0,     0,     0,     0,     0,     0,     0,
1451 +       0,     0,     0,     0,     0,     0,   630,   642,   632,   633,
1452 +     634,   635,   636,   637,   638,   639,   631,   640,   641,     0,
1453 +       0,     0,   471,     0,     0,   469,   470,     0,   531,     0,
1454         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1776       0,   576,     0,   553,     0,     0,     0,     0,     0,     0,
1455         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1456 <       0,     0,     0,     0,     0,   445,   500,   495,   496,   493,
1779 <     497,   498,   494,   456,   446,   447,   485,   448,   449,   450,
1780 <     451,   452,   453,   454,   455,   490,   457,   458,   459,   460,
1781 <     499,   462,   467,   463,   465,   464,   479,   480,   466,   468,
1782 <     469,   470,   471,   473,   472,   461,   475,   484,   486,   487,
1783 <     476,   477,   491,   492,   489,   478,   474,   482,   483,   481,
1784 <     488,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1785 <       0,     0,     0,     0,     0,     0,     0,     0,     0,    93,
1786 <      94,    95,    98,   105,    99,   103,   100,   101,   104,   102,
1787 <      96,    97,     0,     0,     0,     0,    42,    43,    44,   141,
1788 <       0,   128,     0,   680,     0,     0,     0,     0,     0,     0,
1789 <       0,     0,   672,   673,   674,   678,   675,   677,   676,   679,
1790 <       0,     0,     0,     0,     0,     0,     0,     0,    64,     0,
1791 <       0,     0,     0,     0,    50,    62,    61,    58,    51,    60,
1792 <      54,    55,    56,    52,    59,    57,    53,     0,     0,    87,
1793 <       0,     0,     0,     0,    82,     0,     0,     0,     0,     0,
1456 >       0,     0,     0,     0,   601,   575,     0,     0,     0,     0,
1457         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1458 <       0,     0,     0,     0,   631,     0,     0,   419,     0,     0,
1459 <       0,   416,   417,   418,     0,     0,   423,   440,     0,     0,
1460 <     430,   439,     0,   436,   437,   438,     0,     0,     0,     0,
1458 >       0,     0,     0,     0,     0,     0,   484,   485,   486,   529,
1459 >     493,   530,   524,   525,   526,   527,   523,   497,   487,   488,
1460 >     489,   490,   491,   492,   494,   495,   496,   498,   499,   528,
1461 >     503,   504,   505,   506,   502,   501,   507,   514,   515,   508,
1462 >     509,   510,   500,   512,   521,   522,   519,   520,   513,   511,
1463 >     517,   518,   516,     0,     0,     0,     0,     0,     0,     0,
1464 >      46,    47,    48,     0,     0,     0,   668,     0,     0,     0,
1465 >       0,     0,     0,     0,     0,     0,     0,   658,   659,   660,
1466 >     661,   662,   663,   664,   666,   665,   667,     0,     0,     0,
1467 >       0,     0,    82,     0,     0,     0,     0,     0,     0,     0,
1468 >       0,     0,     0,     0,     0,     0,     0,     0,     0,    54,
1469 >      69,    66,    64,    70,    71,    65,    72,    73,    74,    55,
1470 >      68,    58,    59,    60,    56,    67,    61,    62,    63,    57,
1471 >       0,     0,     0,     0,   137,   138,   139,     0,     0,   362,
1472 >       0,     0,   360,   361,     0,   109,     0,     0,     0,     0,
1473 >     104,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1474 >       0,     0,     0,     0,   629,     0,     0,     0,     0,   283,
1475         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1476 +       0,     0,     0,   250,   251,   254,   256,   257,   258,   259,
1477 +     260,   261,   262,   263,   252,   253,   255,   264,   265,   266,
1478 +       0,     0,     0,     0,     0,     0,     0,   438,     0,     0,
1479 +       0,     0,     0,     0,     0,     0,   413,   414,   415,   416,
1480 +     417,   418,   419,   421,   420,   423,   427,   424,   425,   426,
1481 +     422,   464,     0,     0,     0,   461,   462,   463,     0,     0,
1482 +     468,   479,     0,     0,     0,   476,   477,   478,     0,     0,
1483         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1484         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1485         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1486         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1487 <       0,     0,   444,   613,   624,     0,     0,   616,     0,     0,
1488 <       0,   606,   607,   608,   609,   610,   611,   612,     0,     0,
1489 <       0,   269,     0,     0,     0,     0,     0,     0,   255,   256,
1490 <     257,   258,   263,   259,   260,   261,   262,   410,     0,   400,
1491 <       0,   409,     0,   406,   407,   408,     0,   230,     0,     0,
1492 <       0,   240,     0,   238,   239,   241,   242,   106,     0,     0,
1487 >       0,     0,     0,     0,     0,   483,     0,     0,     0,   330,
1488 >       0,     0,     0,     0,     0,     0,   316,   317,   318,   319,
1489 >     324,   320,   321,   322,   323,   455,     0,     0,     0,   452,
1490 >     453,   454,     0,     0,     0,   291,     0,   301,     0,   299,
1491 >     300,   302,   303,    49,     0,     0,     0,    45,     0,     0,
1492 >       0,     0,   116,   117,   118,     0,     0,     0,   214,     0,
1493 >       0,     0,     0,   188,     0,     0,     0,   168,   169,   170,
1494 >     171,   172,   175,   176,   177,   174,   173,   178,     0,     0,
1495 >       0,     0,     0,   350,   351,   352,   353,     0,     0,     0,
1496 >       0,     0,     0,     0,     0,     0,     0,   657,    75,     0,
1497         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1810       0,    92,    45,     0,     0,     0,    41,     0,     0,     0,
1811       0,     0,     0,   293,   294,   295,   296,     0,     0,     0,
1812       0,     0,     0,     0,     0,   671,    63,     0,     0,     0,
1498         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1499 <      49,     0,     0,   311,     0,     0,   304,   305,   306,   307,
1500 <       0,     0,   334,     0,   329,   330,   331,     0,     0,     0,
1501 <      81,     0,     0,     0,     0,     0,    26,     0,     0,     0,
1499 >      53,     0,     0,   396,     0,   391,   392,   393,   140,     0,
1500 >       0,   136,     0,     0,     0,     0,     0,     0,     0,   125,
1501 >     126,   128,   127,   129,     0,     0,   359,     0,     0,   374,
1502 >       0,     0,   367,   368,   369,   370,     0,     0,     0,   103,
1503 >       0,    28,     0,     0,     0,     0,     0,     0,     0,     0,
1504 >       0,     0,     0,   628,   267,     0,     0,     0,     0,     0,
1505         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1506 <     630,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1507 <       0,     0,     0,     0,     0,     0,   199,   200,   203,   204,
1508 <     206,   207,   208,   209,   210,   211,   212,   201,   202,   205,
1821 <       0,     0,     0,     0,     0,     0,   379,     0,     0,     0,
1822 <       0,     0,     0,     0,     0,     0,   354,   355,   356,   357,
1823 <     358,   359,   361,   360,   362,   367,   366,   363,   364,   365,
1824 <     368,     0,     0,     0,   415,     0,   422,     0,     0,     0,
1825 <       0,   435,     0,     0,     0,     0,     0,     0,     0,     0,
1506 >       0,     0,   249,   428,     0,     0,     0,     0,     0,     0,
1507 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   412,
1508 >       0,     0,     0,   460,     0,   467,     0,     0,     0,   475,
1509         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1510         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1511         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1512         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1513 <       0,     0,     0,    34,     0,     0,     0,     0,     0,     0,
1514 <     443,     0,     0,     0,     0,     0,     0,     0,   605,   264,
1515 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   254,
1516 <       0,     0,     0,     0,   405,   243,     0,     0,     0,     0,
1834 <       0,   237,     0,     0,     0,     0,     0,     0,     0,     0,
1513 >       0,     0,     0,     0,     0,     0,     0,     0,   482,   325,
1514 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   315,
1515 >       0,     0,     0,   451,   304,     0,     0,     0,     0,     0,
1516 >     298,     0,     0,    44,   119,     0,     0,     0,   115,   179,
1517         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1518 <      91,     0,     0,    40,     0,     0,     0,   170,     0,     0,
1519 <       0,   147,     0,     0,   130,   131,   132,   133,   136,   137,
1838 <     135,   134,   138,   297,     0,     0,     0,     0,   292,     0,
1839 <       0,     0,     0,     0,     0,     0,   670,     0,     0,     0,
1840 <       0,     0,     0,     0,     0,     0,     0,     0,     0,    48,
1841 <     308,     0,     0,     0,     0,   303,   332,     0,     0,     0,
1842 <     328,    90,    89,    88,   667,   664,   663,   652,   654,    26,
1843 <      26,    26,    26,    26,    28,    27,   658,   659,   662,   660,
1844 <     665,   666,   668,   669,   661,   653,   655,   656,   657,   213,
1518 >       0,   167,   354,     0,     0,     0,     0,   349,     0,     0,
1519 >       0,     0,     0,     0,     0,     0,     0,   656,     0,     0,
1520         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1521 <       0,     0,     0,     0,   198,   369,     0,     0,     0,     0,
1521 >       0,     0,     0,     0,     0,     0,     0,     0,    52,   394,
1522 >       0,     0,     0,   390,     0,   135,     0,   130,     0,     0,
1523 >       0,     0,     0,   124,     0,   358,   371,     0,     0,     0,
1524 >       0,   366,   112,   111,   110,   654,    28,    28,    28,    28,
1525 >      28,    28,    28,    30,    29,   655,   644,   645,   646,   647,
1526 >     648,   649,   650,   653,   651,   652,     0,     0,     0,     0,
1527         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1528 <       0,   353,     0,     0,   414,   427,     0,     0,     0,   429,
1529 <     514,   518,   505,   534,   547,   546,   601,   551,   512,   543,
1530 <     549,   513,   503,   504,   521,   510,   542,   511,   524,   509,
1531 <     523,   522,   517,   516,   515,   544,   502,   541,   599,   600,
1532 <     538,   535,   580,   596,   597,   581,   582,   583,   584,   591,
1533 <     585,   594,   598,   587,   592,   588,   593,   586,   590,   589,
1534 <     595,     0,   579,   540,   557,   573,   574,   558,   559,   560,
1535 <     561,   568,   562,   571,   575,   564,   569,   565,   570,   563,
1536 <     567,   566,   572,     0,   556,   533,   536,   550,   507,   545,
1537 <     508,   537,   526,   531,   532,   529,   530,   527,   528,   520,
1538 <     519,    34,    34,    34,    36,    35,   602,   552,   539,   548,
1539 <     506,   525,     0,     0,     0,     0,     0,     0,   604,     0,
1540 <       0,   275,     0,     0,     0,     0,     0,   253,     0,     0,
1541 <       0,   399,     0,     0,     0,   248,   244,   247,   229,   110,
1542 <     116,   114,   113,   115,   111,   112,   109,   117,   123,   118,
1543 <     122,   120,   121,   119,   108,   107,   124,    46,    47,   139,
1544 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   129,
1545 <       0,     0,     0,   291,   686,   681,   685,   683,   687,   682,
1546 <     684,    74,    80,    72,    76,    75,    71,    70,    68,    69,
1547 <       0,    67,    73,    79,    77,    78,     0,     0,     0,   302,
1548 <       0,     0,   327,    29,    30,    31,    32,    33,     0,     0,
1549 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1550 <       0,   195,     0,     0,     0,     0,     0,     0,   385,     0,
1551 <       0,     0,     0,     0,     0,     0,     0,   350,   420,   421,
1552 <     441,   442,   434,     0,   433,   577,     0,   554,     0,    37,
1553 <      38,    39,   629,   628,     0,   627,   615,   614,   621,   620,
1554 <       0,   619,   623,   622,   267,   268,   273,     0,   272,     0,
1555 <     266,   289,   288,   287,   265,   412,   404,     0,   403,   411,
1556 <     235,   236,   234,     0,   233,   251,   250,     0,     0,     0,
1557 <       0,     0,   176,     0,     0,     0,     0,     0,   126,   299,
1558 <     300,   298,    65,     0,   309,   315,   321,   325,   324,   323,
1559 <     320,   316,   319,   322,   317,   318,     0,   314,   310,   333,
1560 <     338,   344,   348,   347,   346,   343,   339,   342,   345,   340,
1561 <     341,     0,   337,   225,   226,   219,   221,   223,   222,   220,
1562 <     214,   227,   218,   216,   217,   224,   375,   377,   378,   397,
1563 <     396,   393,   383,     0,   382,     0,   372,   394,   395,   370,
1564 <     376,   392,   374,   373,   431,     0,   578,   555,   625,     0,
1565 <     617,     0,     0,   270,   275,   281,   282,   278,   284,   280,
1566 <     279,   286,   283,   285,   277,   276,   401,     0,   231,     0,
1567 <     249,   246,   245,   146,   144,   174,     0,   173,     0,   140,
1568 <     143,   145,   151,   167,   168,   152,   153,   154,   155,   162,
1569 <     156,   165,   169,   158,   163,   159,   164,   157,   161,   160,
1570 <     166,     0,   150,   142,    66,   312,     0,   335,     0,     0,
1571 <     380,   385,   389,   390,   387,   388,   391,   386,   432,   626,
1572 <     618,   274,   271,   402,   232,     0,   171,   176,   186,   184,
1573 <     193,   183,   178,   187,   191,   180,   188,   190,   185,   179,
1574 <     192,   189,   181,   182,   177,   148,     0,   313,   336,   384,
1575 <     381,   175,   172,   149
1528 >      38,     0,     0,   248,     0,     0,     0,     0,     0,     0,
1529 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   411,
1530 >       0,     0,   459,   472,     0,     0,   474,   545,   549,   532,
1531 >     533,   564,   536,   627,   572,   537,   538,   569,   544,   543,
1532 >     552,   542,   539,   540,   548,   547,   546,   570,   534,   625,
1533 >     626,   568,   611,   605,   621,   606,   607,   608,   616,   624,
1534 >     609,   618,   622,   612,   623,   613,   617,   610,   620,   615,
1535 >     614,   619,     0,   604,   584,   585,   586,   579,   597,   580,
1536 >     581,   582,   592,   600,   583,   594,   598,   588,   599,   589,
1537 >     593,   587,   596,   591,   590,   595,     0,   578,   565,   563,
1538 >     566,   571,   567,   554,   561,   562,   559,   560,   555,   556,
1539 >     557,   558,   573,   574,   541,   551,   550,   553,   535,     0,
1540 >       0,     0,     0,     0,     0,     0,     0,   314,     0,     0,
1541 >     450,     0,     0,     0,   309,   305,   308,   290,    50,    51,
1542 >       0,     0,   114,     0,     0,     0,     0,     0,     0,     0,
1543 >       0,     0,     0,   166,     0,     0,     0,   348,   672,   669,
1544 >     670,   671,   676,   675,   677,   673,   674,    99,    94,   102,
1545 >      93,    89,    87,    88,    86,     0,    85,    90,    91,   100,
1546 >     101,    92,    96,    95,    77,    76,    81,    78,    80,    79,
1547 >      97,    98,     0,     0,   389,   141,     0,     0,     0,   153,
1548 >       0,   145,   146,   148,   147,     0,     0,     0,     0,   123,
1549 >     363,     0,     0,     0,   365,    31,    32,    33,    34,    35,
1550 >      36,    37,   278,   279,   271,   288,   287,     0,   286,   272,
1551 >     274,   282,   275,   273,   281,   268,   280,   270,   269,    38,
1552 >      38,    38,    40,    39,   276,   277,   433,   436,   437,   447,
1553 >     444,   430,   445,   442,   443,     0,   441,   446,   429,   435,
1554 >     432,   434,   448,   431,   465,   466,   480,   481,   602,     0,
1555 >     576,     0,   328,   329,   339,   335,   336,   338,   343,   340,
1556 >     341,   334,   342,   337,     0,   333,   327,   346,   345,   344,
1557 >     326,   457,   456,   312,   311,   296,   297,   295,     0,   294,
1558 >       0,     0,     0,   120,   121,   187,   184,   234,   246,   221,
1559 >     230,     0,   219,   224,   240,     0,   233,   238,   244,   223,
1560 >     226,   235,   237,   241,   231,   239,   227,   245,   229,   236,
1561 >     225,   228,     0,   217,   180,   182,   185,   186,   197,   198,
1562 >     199,   192,   210,   193,   194,   195,   205,   213,   196,   207,
1563 >     211,   201,   212,   202,   206,   200,   209,   204,   203,   208,
1564 >       0,   191,   181,   183,   357,   355,   356,    83,     0,   395,
1565 >     400,   406,   409,   402,   408,   403,   407,   405,   401,   404,
1566 >       0,   399,   149,     0,     0,     0,     0,   144,   132,   131,
1567 >     133,   134,   372,   378,   384,   387,   380,   386,   381,   385,
1568 >     383,   379,   382,     0,   377,   373,   284,     0,    41,    42,
1569 >      43,   439,     0,   603,   577,   331,     0,   292,     0,   310,
1570 >     307,   306,     0,     0,     0,     0,     0,     0,   215,     0,
1571 >     189,     0,    84,   397,     0,     0,     0,     0,     0,   143,
1572 >     375,     0,   285,   440,   332,   293,   220,   243,   218,   242,
1573 >     232,   222,   216,   190,   398,   150,   152,   151,   163,   162,
1574 >     158,   160,   164,   161,   157,   159,     0,   156,   376,   154,
1575 >       0,   155
1576   };
1577  
1578 < /* YYDEFGOTO[NTERM-NUM].  */
1579 < static const yytype_int16 yydefgoto[] =
1578 >  /* YYPGOTO[NTERM-NUM].  */
1579 > static const yytype_int16 yypgoto[] =
1580   {
1581 <      -1,     1,    24,   834,   835,   984,   985,    25,   275,   276,
1582 <     277,   278,    26,   313,   314,   315,   534,  1070,  1071,   316,
1583 <     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
1584 <      27,    71,    72,    73,    74,    75,    28,   258,   259,   260,
1585 <     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
1586 <     271,    29,    61,   280,   773,   774,   775,   281,   776,   777,
1587 <     778,   779,   780,   781,  1046,  1301,  1302,   782,  1042,  1276,
1588 <    1277,  1325,  1278,  1344,    30,    49,   116,   595,   596,   597,
1589 <     117,   598,   599,   600,   601,   602,   603,   604,   605,   606,
1590 <     607,   608,   609,    31,    58,   481,   736,  1163,  1164,   482,
1591 <     483,   484,  1169,  1016,  1017,   485,   486,    32,    56,   457,
1592 <     458,   459,   460,   461,   462,   463,   722,  1147,  1148,  1252,
1593 <    1149,  1265,   464,   465,   466,    33,    62,   512,   513,   514,
1594 <     515,   516,    34,    65,   545,   546,   547,   548,   549,   812,
1595 <    1196,  1197,    35,    66,   553,   554,   555,   556,   818,  1211,
1596 <    1212,    36,    50,   119,   625,   626,   627,   120,   628,   629,
1597 <     630,   631,   632,   633,   634,   871,  1233,  1234,  1309,  1235,
1598 <    1317,   635,   636,   637,   638,   639,   640,    37,    57,   471,
1599 <     731,  1157,  1158,   472,   473,   474,   475,    38,    51,   360,
1600 <     361,   362,   363,    39,   124,   125,   126,    40,    53,   371,
1601 <     649,  1123,  1124,   372,   373,   374,   375,    41,   184,   185,
1602 <     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1603 <     196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1604 <     206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1605 <     216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
1606 <     226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
1607 <     410,   963,   964,   236,   408,   941,   942,   237,   238,   239,
1608 <     240,    42,    55,   440,   441,   442,   443,   444,   714,  1140,
1609 <    1141,   445,   446,   447,   711,  1134,  1135,    43,    95,    96,
1610 <      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1931 <     107,   108,   109,   110,   111,   112,   113,   114,    44,   291,
1932 <     292,   293,   294,   295,   296,   297,   298,   299
1581 >    -795,  -795,  -795,  -794,  -310,  -769,  -639,  -795,  -795,   979,
1582 >    -795,  -795,  -795,  -795,   954,  -795,  -795,  -795,  -795,  -795,
1583 >    -795,  -795,  -795,  -795,   -66,  -795,  -795,  -795,  -795,  -795,
1584 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1585 >    1086,  -795,  -795,  -795,  -795,  -795,  -795,   671,  -795,  -795,
1586 >    -795,  -795,  -795,   581,  -795,  -795,  -795,  -795,  -795,  -795,
1587 >     974,  -795,  -795,  -795,  -795,   107,  -795,  -795,  -795,  -795,
1588 >    -795,  -151,  -795,  -795,  -795,   664,  -795,  -795,  -795,  -795,
1589 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -108,  -795,  -795,
1590 >    -795,  -121,  -795,  -795,  -795,   975,  -795,  -795,  -795,  -795,
1591 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1592 >    -795,  -795,  -795,  -795,   -83,  -795,  -795,  -795,  -795,  -795,
1593 >     -92,  -795,   708,  -795,  -795,  -795,    36,  -795,  -795,  -795,
1594 >    -795,  -795,   723,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1595 >     -77,  -795,  -795,  -795,  -795,  -795,  -795,   683,  -795,  -795,
1596 >    -795,  -795,  -795,   980,  -795,  -795,  -795,  -795,   599,  -795,
1597 >    -795,  -795,  -795,  -795,   -94,  -795,  -795,  -795,   639,  -795,
1598 >    -795,  -795,  -795,   -80,  -795,  -795,  -795,   981,  -795,  -795,
1599 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,   -56,
1600 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,   743,  -795,
1601 >    -795,  -795,  -795,  -795,   823,  -795,  -795,  -795,  -795,  1104,
1602 >    -795,  -795,  -795,  -795,   824,  -795,  -795,  -795,  -795,  1054,
1603 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1604 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1605 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1606 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
1607 >    -795,  -795,  -795,  -795,    89,  -795,  -795,  -795,    95,  -795,
1608 >    -795,  -795,  -795,  -795,  1128,  -795,  -795,  -795,  -795,  -795,
1609 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,   990,
1610 >    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795
1611   };
1612  
1613 < /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1614 <   STATE-NUM.  */
1937 < #define YYPACT_NINF -949
1938 < static const yytype_int16 yypact[] =
1613 >  /* YYDEFGOTO[NTERM-NUM].  */
1614 > static const yytype_int16 yydefgoto[] =
1615   {
1616 <    -949,   670,  -949,  -256,  -248,  -245,  -949,  -949,  -949,  -212,
1617 <    -949,  -205,  -949,  -949,  -949,  -949,  -189,  -183,  -949,  -949,
1618 <    -154,  -152,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1619 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1620 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,    22,   642,  -127,
1621 <     -31,  -132,     5,  -125,   415,  -119,   -98,   -89,   -86,   578,
1622 <      14,    -8,   -75,   664,   313,   -74,   -61,   -45,   -46,   -37,
1623 <     -23,    31,  -949,  -949,  -949,  -949,  -949,   -22,    15,    30,
1624 <      33,    41,    42,    47,    48,    50,    61,    62,    70,    78,
1625 <      79,    80,    86,    90,    93,    94,  -949,  -949,  -949,  -949,
1626 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1627 <    -949,  -949,  -949,  -949,  -949,  -949,   -44,  -949,  -949,    89,
1628 <    -949,    20,  -949,    99,     2,  -949,  -949,   140,  -949,   100,
1629 <     104,   106,   111,   113,   115,   122,   123,   126,   127,   128,
1630 <     129,   131,   133,   135,   136,   137,   145,   147,   148,   151,
1631 <     155,   156,   157,   159,   163,   165,   167,   169,   174,   175,
1632 <     177,  -949,   178,  -949,   186,   187,   188,   193,   194,   197,
1633 <     199,   200,   205,   206,   209,   210,   211,   212,   213,   214,
1634 <     219,   220,   225,   228,    10,  -949,  -949,  -949,  -949,  -949,
1635 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1636 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1637 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1638 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1639 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1640 <    -949,   364,   308,    92,   318,    17,   229,   230,   231,   232,
1641 <     236,   237,   241,   242,   244,   245,   248,   250,   226,  -949,
1642 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1643 <    -949,  -949,    63,   251,   252,    60,  -949,  -949,  -949,  -949,
1644 <     182,  -949,    24,  -949,   253,   254,   255,   260,   270,   271,
1645 <     272,   192,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1970 <      72,   273,   274,   275,   276,   279,   281,   282,  -949,   285,
1971 <     286,   287,   288,   132,  -949,  -949,  -949,  -949,  -949,  -949,
1972 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,   183,   102,  -949,
1973 <     222,   293,   336,   299,  -949,   198,   431,   432,   368,   369,
1974 <     436,   436,   440,   441,   376,   379,   446,   436,   381,   390,
1975 <     391,   392,   393,   332,  -949,   726,   521,  -949,   330,   331,
1976 <      76,  -949,  -949,  -949,   442,   338,  -949,  -949,   333,   337,
1977 <    -949,  -949,    57,  -949,  -949,  -949,   404,   436,   408,   436,
1978 <     482,   461,   486,   423,   424,   491,   470,   429,   496,   497,
1979 <     498,   434,   436,   445,   447,   436,   493,   450,   517,   518,
1980 <     436,   522,   523,   499,   526,   528,   463,   464,   400,   469,
1981 <     405,   436,   436,   475,   436,   514,   488,   489,   492,  -131,
1982 <    -110,   494,   501,   436,   436,   548,   436,   504,   505,   506,
1983 <     510,   428,  -949,  -949,  -949,   420,   427,  -949,   430,   448,
1984 <     112,  -949,  -949,  -949,  -949,  -949,  -949,  -949,   435,   454,
1985 <     457,  -949,   459,   462,   465,   466,   467,   118,  -949,  -949,
1986 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,   468,  -949,
1987 <     472,  -949,    74,  -949,  -949,  -949,   449,  -949,   474,   483,
1988 <     490,  -949,    29,  -949,  -949,  -949,  -949,  -949,   555,   557,
1989 <     560,   571,   573,   579,   599,   601,   360,   602,   604,   561,
1990 <     502,  -949,  -949,   608,   611,   507,  -949,   305,   511,   503,
1991 <     512,   515,   152,  -949,  -949,  -949,  -949,   568,   577,   580,
1992 <     626,   583,   584,   436,   524,  -949,  -949,   634,   586,   637,
1993 <     638,   639,   640,   641,   532,   646,   672,   648,   651,   547,
1994 <    -949,   551,   549,  -949,   550,    69,  -949,  -949,  -949,  -949,
1995 <     558,   556,  -949,    75,  -949,  -949,  -949,   562,   563,   564,
1996 <    -949,   565,   566,   569,   572,   576,   207,   582,   587,   588,
1997 <     589,   592,   593,   594,   597,   598,   603,   607,   609,   610,
1998 <    -949,   615,   574,   581,   605,   616,   617,   618,   619,   620,
1999 <     622,   623,   624,   625,   628,   116,  -949,  -949,  -949,  -949,
2000 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2001 <     629,   632,   645,   649,   650,   652,  -949,   653,   654,   655,
2002 <     656,   660,   665,   667,   668,   160,  -949,  -949,  -949,  -949,
2003 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2004 <    -949,   675,   686,   678,  -949,   681,  -949,   687,   690,   682,
2005 <     688,  -949,   689,   691,   693,   694,   695,   696,   700,   704,
2006 <     705,   707,   708,   715,   718,   722,   723,   725,   727,   728,
2007 <     730,   731,   732,   733,   737,   741,   742,   744,   745,   747,
2008 <     748,   749,   750,   751,   692,   752,   729,   753,   754,   755,
2009 <     756,   757,   758,   759,   760,   761,   762,   763,   764,   765,
2010 <     767,   768,   769,    49,   770,   771,   772,   773,   774,   775,
2011 <    -949,   683,   436,   712,   776,   709,   711,   777,  -949,  -949,
2012 <     797,   714,   778,   799,   783,   833,   836,   873,   780,  -949,
2013 <     883,   779,   885,   784,  -949,  -949,   782,   890,   893,   796,
2014 <     787,  -949,   788,   789,   790,   791,   792,   793,   794,   795,
2015 <     798,   800,   801,   802,   803,   804,   805,   806,   807,   808,
2016 <    -949,   809,   810,  -949,   811,   812,   813,  -949,   814,   815,
2017 <     816,  -949,   817,   181,  -949,  -949,  -949,  -949,  -949,  -949,
2018 <    -949,  -949,  -949,  -949,   903,   904,   906,   821,  -949,   822,
2019 <     823,   824,   825,   826,   827,   828,  -949,   829,   830,   831,
2020 <     832,   834,   835,   837,   -80,   838,   839,   840,   841,  -949,
2021 <    -949,   919,   842,   920,   843,  -949,  -949,   921,   844,   846,
2022 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,   436,
2023 <     436,   436,   436,   436,  -949,  -949,  -949,  -949,  -949,  -949,
2024 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2025 <     962,   965,   436,   971,   973,   977,   978,   957,   980,   981,
2026 <     436,   436,   548,   853,  -949,  -949,   961,  -117,   963,   964,
2027 <     918,   855,   966,   967,   968,   969,   992,   972,   974,   975,
2028 <     864,  -949,   866,   869,  -949,  -949,   870,   871,   662,  -949,
2029 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2030 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2031 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2032 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2033 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2034 <    -949,  -244,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2035 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2036 <    -949,  -949,  -949,  -236,  -949,  -949,  -949,  -949,  -949,  -949,
2037 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2038 <    -949,   548,   548,   548,  -949,  -949,  -949,  -949,  -949,  -949,
2039 <    -949,  -949,    -3,   872,   874,    -2,   875,   876,  -949,   877,
2040 <     878,  1003,   879,   880,   881,   882,   884,  -949,   886,   703,
2041 <     887,  -949,   -63,   888,   889,   676,   891,  -949,  -949,  -949,
2042 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2043 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2044 <     990,   948,   894,   997,   998,   999,   895,  1000,   896,  -949,
2045 <     899,   900,   901,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2046 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2047 <    -224,  -949,  -949,  -949,  -949,  -949,   902,   570,   905,  -949,
2048 <     907,   627,  -949,  -949,  -949,  -949,  -949,  -949,   908,   909,
2049 <     910,   911,   912,   913,   914,   915,   916,   917,   922,   923,
2050 <     924,  -949,   925,   926,   927,   928,   929,   930,  1024,   931,
2051 <     932,   933,   934,   935,   936,   937,   938,  -949,  -949,  -949,
2052 <    -949,  -949,  -949,  -219,  -949,  -949,   692,  -949,   729,  -949,
2053 <    -949,  -949,  -949,  -949,  -216,  -949,  -949,  -949,  -949,  -949,
2054 <    -213,  -949,  -949,  -949,  -949,  -949,  -949,  -158,  -949,   630,
2055 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -149,  -949,  -949,
2056 <    -949,  -949,  -949,  -129,  -949,  -949,  -949,  1032,   796,   939,
2057 <     940,   941,  1034,   942,   943,   944,   766,   945,  -949,  -949,
2058 <    -949,  -949,  -949,   -80,  -949,  -949,  -949,  -949,  -949,  -949,
2059 <    -949,  -949,  -949,  -949,  -949,  -949,  -106,  -949,  -949,  -949,
2060 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2061 <    -949,   -25,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2062 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2063 <    -949,  -949,  -949,    38,  -949,     0,  -949,  -949,  -949,  -949,
2064 <    -949,  -949,  -949,  -949,  -949,   662,  -949,  -949,  -949,    -3,
2065 <    -949,    -2,   630,  -949,  1003,  -949,  -949,  -949,  -949,  -949,
2066 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,   703,  -949,   -63,
2067 <    -949,  -949,  -949,  -949,  -949,  -949,    56,  -949,   553,  -949,
2068 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2069 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2070 <    -949,    88,  -949,  -949,  -949,  -949,   570,  -949,   627,     0,
2071 <    -949,  1024,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2072 <    -949,  -949,  -949,  -949,  -949,   553,  -949,  1034,  -949,  -949,
2073 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2074 <    -949,  -949,  -949,  -949,  -949,  -949,   766,  -949,  -949,  -949,
2075 <    -949,  -949,  -949,  -949
1616 >      -1,     1,    26,   833,   834,  1102,  1103,    27,   219,   220,
1617 >     221,   222,    28,   268,   269,   270,   271,   272,   273,   274,
1618 >     275,   276,   553,  1035,  1036,   277,   278,   279,   280,   281,
1619 >     282,   283,   284,   285,   286,   287,   288,   289,    29,    77,
1620 >      78,    79,    80,    81,    30,    63,   501,   502,   503,   504,
1621 >      31,    70,   588,   589,   590,   591,   592,   593,    32,   293,
1622 >     294,   295,   296,   297,  1060,  1061,  1062,  1063,  1064,  1245,
1623 >    1326,  1327,    33,    64,   516,   517,   518,   519,   520,   521,
1624 >     522,   523,   524,   525,   526,   757,  1220,  1221,   527,   752,
1625 >    1192,  1193,    34,    53,   342,   343,   344,   345,   346,   347,
1626 >     348,   349,   350,   351,   352,   353,   354,   355,   356,   357,
1627 >     358,   359,   628,  1087,  1088,    35,    61,   487,   737,  1158,
1628 >    1159,   488,   489,   490,  1162,   995,   996,   491,   492,    36,
1629 >      59,   465,   466,   467,   468,   469,   470,   471,   722,  1144,
1630 >    1145,   472,   473,   474,    37,    65,   532,   533,   534,   535,
1631 >     536,    38,   301,   302,   303,    39,    72,   601,   602,   603,
1632 >     604,   605,   818,  1263,  1264,    40,    68,   574,   575,   576,
1633 >     577,   801,  1240,  1241,    41,    54,   375,   376,   377,   378,
1634 >     379,   380,   381,   382,   383,   384,   385,   650,  1115,  1116,
1635 >     386,   387,   388,   389,   390,    42,    60,   478,   479,   480,
1636 >     481,    43,    55,   394,   395,   396,   397,    44,   114,   115,
1637 >     116,    45,    57,   404,   405,   406,   407,    46,   165,   166,
1638 >     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1639 >     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1640 >     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1641 >     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1642 >     207,   208,   434,   956,   957,   209,   433,   932,   933,   210,
1643 >     211,   212,    47,    95,    96,    97,    98,    99,   100,   101,
1644 >     102,   103,   104,   105,   106,   107,   108,    48,   236,   237,
1645 >     238,   239,   240,   241,   242,   243,   244,   245,   246
1646   };
1647  
1648 < /* YYPGOTO[NTERM-NUM].  */
1649 < static const yytype_int16 yypgoto[] =
1648 >  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1649 >     positive, shift that token.  If negative, reduce the rule whose
1650 >     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1651 > static const yytype_int16 yytable[] =
1652   {
1653 <    -949,  -949,  -949,  -427,  -340,  -948,  -423,  -949,  -949,   946,
1654 <    -949,  -949,  -949,  -949,   865,  -949,  -949,  -949,  -293,  -949,
1655 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1656 <    -949,  -949,  1095,  -949,  -949,  -949,  -949,  -949,   643,  -949,
1657 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1658 <    -949,  -949,  -949,  -949,  -949,   406,  -949,  -949,  -949,  -949,
1659 <    -949,  -949,  -949,  -949,  -949,  -949,  -166,  -949,  -949,  -949,
1660 <    -146,  -949,  -949,  -118,  -949,  -949,  -949,  -949,   613,  -949,
1661 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1662 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,   -60,  -949,
1663 <     724,  -949,  -949,  -949,    43,  -949,  -949,  -949,  -949,  -949,
1664 <     781,  -949,  -949,  -949,  -949,  -949,  -949,  -949,   -42,  -949,
1665 <    -949,   -39,  -949,  -949,  -949,  -949,  -949,  -949,   698,  -949,
1666 <    -949,  -949,  -949,  -949,  -949,   669,  -949,  -949,  -949,  -949,
1667 <    -949,   -91,  -949,  -949,  -949,   663,  -949,  -949,  -949,  -949,
1668 <     -90,  -949,  -949,  -949,  -949,   595,  -949,  -949,  -949,  -949,
1669 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,   -94,  -949,  -949,
1670 <     -87,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1671 <    -949,  -949,   -48,  -949,   785,  -949,  -949,  -949,  -949,  -949,
1672 <     863,  -949,  -949,  -949,  -949,  1100,  -949,  -949,  -949,  -949,
1673 <    -949,  -949,   -20,  -949,   854,  -949,  -949,  -949,  -949,  1043,
1674 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1675 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1676 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1677 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1678 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1679 <    -949,  -949,   101,  -949,  -949,  -949,   105,  -949,  -949,  -949,
1680 <    -949,  -949,  -949,  -949,   818,  -949,  -949,  -949,  -949,  -949,
1681 <     -21,  -949,  -949,  -949,  -949,  -949,   -17,  -949,  -949,  1133,
1682 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1683 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1684 <     949,  -949,  -949,  -949,  -949,  -949,  -949,  -949
1653 >     861,   862,   612,   291,   482,   615,   616,  1113,   618,   619,
1654 >      73,   860,   498,   299,  1085,   112,   391,   597,  1155,   703,
1655 >      51,   391,   498,   704,   299,    52,   705,    56,   401,   291,
1656 >     706,   528,  1075,  1076,  1077,  1078,  1079,  1080,  1081,    74,
1657 >     482,   216,   571,    58,  1128,   865,   866,    75,  1129,   401,
1658 >     528,   360,   118,   361,  1056,   362,   571,   119,   120,   483,
1659 >     121,   122,   475,    62,  1130,   123,   305,   484,  1131,   485,
1660 >     363,   529,    66,  1227,    67,   124,   125,  1228,   113,   392,
1661 >      69,   216,   475,   126,   392,    71,   127,   128,   129,   364,
1662 >     529,  1086,   112,   130,   499,   483,  1099,  1100,  1101,   671,
1663 >     109,   673,   674,   484,   499,   485,   365,  1296,   366,   110,
1664 >     131,   132,   684,   530,   111,    76,   367,   689,   300,  1266,
1665 >     505,   133,   598,  1267,   134,   135,   698,   699,   368,   300,
1666 >     486,   117,   530,   402,   306,   136,   583,   213,   712,   506,
1667 >     714,   715,   137,   217,   138,   393,   139,   572,   140,   214,
1668 >     393,   141,   142,   247,   402,   113,   369,   403,   507,  1057,
1669 >     531,   572,    82,   143,   218,  1156,   486,   215,   144,   145,
1670 >     456,   146,   147,   148,  1157,   223,   149,   370,   403,   531,
1671 >     248,  -142,   249,   217,   224,   508,   225,    83,    84,   457,
1672 >     500,   476,    49,    50,    85,   290,   371,   597,  1271,   860,
1673 >     500,   150,  1272,  1114,   218,   372,  1275,  -142,   458,   250,
1674 >    1276,   476,   151,   152,   153,   154,   155,   156,   157,   251,
1675 >     298,   304,    86,    87,    88,   509,  1277,   307,   292,   770,
1676 >    1278,   252,   253,   254,   308,   459,    89,    90,    91,   739,
1677 >     599,   584,   510,   600,   255,   309,    92,    93,   256,   325,
1678 >      94,   226,   820,  1058,   292,   373,   662,   747,   257,   595,
1679 >    1056,   258,   259,   668,   580,   573,   326,   327,   158,   159,
1680 >     160,   328,   161,   162,   511,   512,   496,  1059,   374,   573,
1681 >     311,   163,   312,   164,   227,   766,   658,   454,   477,  1246,
1682 >     260,   802,   460,   228,   229,   230,   313,   732,   231,   232,
1683 >     461,   462,   598,   233,   234,   235,   261,   585,   477,   262,
1684 >     263,   264,  1288,   314,   329,   582,  1289,   848,   493,   548,
1685 >     463,   852,  1031,    73,   855,   586,   513,   399,   859,  1290,
1686 >    1268,  1269,  1270,  1291,   330,   331,   332,   315,   333,  1293,
1687 >    1300,   587,   334,  1294,  1301,  1329,   514,   335,   806,  1330,
1688 >     515,   316,    74,   317,   336,   760,   505,   265,   318,   319,
1689 >      75,   320,   321,   337,   338,  1057,   322,   398,   408,   409,
1690 >     410,   812,   411,   606,   339,   506,   412,   118,   413,   414,
1691 >     266,   267,   119,   120,   415,   121,   122,   416,   569,   417,
1692 >     123,   418,   419,   420,   507,   340,   464,   323,   421,   578,
1693 >     124,   125,   583,  1032,   422,   728,   423,  1033,   126,   424,
1694 >     425,   127,   128,   129,   456,   426,   427,   428,   130,   429,
1695 >     599,   508,   430,   600,   431,   432,   435,   436,    76,   437,
1696 >     438,   439,  1134,   457,   607,   131,   132,   440,   441,   442,
1697 >     341,   443,   444,   445,   446,   447,   133,   448,   449,   134,
1698 >     135,   450,   458,   451,   452,   453,   494,  1135,   495,  1058,
1699 >     136,   509,   537,   538,   539,  1034,   540,   137,   541,   138,
1700 >     542,   139,   543,   140,   544,   545,   141,   142,   510,   459,
1701 >     549,   550,  1167,  1059,   641,   551,   546,   552,   143,  1136,
1702 >     554,   555,   556,   144,   145,   557,   146,   147,   148,  1168,
1703 >    1169,   149,   558,   559,   560,   561,   562,   584,   563,  1170,
1704 >     511,   512,   564,   565,   566,   360,   567,   361,   568,   362,
1705 >     579,   247,   594,   608,  1137,  1138,   150,   609,   610,   611,
1706 >    1139,   613,   614,   617,   363,   620,   460,   151,   152,   153,
1707 >     154,   155,   156,   157,   461,   462,  1171,  1172,   248,  1173,
1708 >     249,   621,   622,   364,  1140,   623,   624,   625,   664,   643,
1709 >     670,   626,   513,   627,   463,   629,   630,   631,   632,  1141,
1710 >     365,   633,   366,   585,   634,   635,   636,   250,   637,   638,
1711 >     367,  1174,   514,   639,   640,   644,   515,   251,   645,  1175,
1712 >     646,   586,   368,   158,   159,   160,   647,   161,   162,   252,
1713 >     253,   254,   648,  1230,   649,  1297,   163,   587,   164,   651,
1714 >     652,  1176,   255,  1177,  1178,   653,   256,   654,   655,   656,
1715 >     369,   657,   660,   661,   665,   666,   257,   672,   667,   258,
1716 >     259,  1179,  1142,   676,   695,   678,   675,   679,   677,   680,
1717 >     464,   370,   681,   682,   683,  1318,   696,  1319,   685,   686,
1718 >     687,  1143,   688,   690,  1180,   611,   691,   692,   260,  1181,
1719 >     371,   693,   694,  1182,   697,   700,   701,  1183,  1231,   372,
1720 >     702,   707,  1184,   708,   261,   709,  1185,   262,   263,   264,
1721 >     826,   827,   828,   829,   830,   831,   832,  1186,   710,  1187,
1722 >    1188,   711,  1189,     2,     3,  1320,   713,     4,   716,   717,
1723 >    1232,   718,   719,  1190,   778,   734,   325,   720,  1233,     5,
1724 >     741,  1191,  1321,     6,   721,     7,   742,  1234,   768,   373,
1725 >     743,   723,     8,   326,   327,   265,   724,   725,   328,   726,
1726 >     727,   730,   731,   934,     9,   935,   936,   735,   736,    10,
1727 >      11,  1235,   374,  1236,  1237,   738,   744,   745,   266,   267,
1728 >     746,  1322,  1323,   749,   750,   751,   769,  1238,    12,   762,
1729 >     753,   771,    13,   773,   754,  1239,   755,   756,   758,   759,
1730 >     772,   329,   774,   775,   776,    14,   779,   780,  1198,   781,
1731 >    1199,  1200,   763,   764,   765,   777,   782,   783,   784,   785,
1732 >     786,   330,   331,   332,   787,   333,   788,    15,    16,   334,
1733 >     789,   790,   791,  1324,   335,   792,   793,   794,   795,  1325,
1734 >     796,   336,    17,   798,   797,   799,   804,   800,   912,   805,
1735 >     337,   338,   807,   814,   808,   846,   815,   809,   816,    18,
1736 >     810,   339,   811,   817,   819,   847,   822,   823,   824,   825,
1737 >     835,    19,    20,   836,   837,   838,   839,   840,   841,   842,
1738 >     843,   844,   340,   845,   937,   938,   939,   849,   850,   940,
1739 >     941,   851,   942,   943,   853,   944,    21,   945,   854,   856,
1740 >     946,  1253,   947,   948,   857,   858,   860,   863,   949,    22,
1741 >     864,   867,   950,   868,    23,   869,   951,   952,   953,    24,
1742 >     871,   870,    25,   954,   872,   873,   874,   341,   955,  1201,
1743 >    1202,  1203,   875,   876,  1204,  1205,   877,  1206,  1207,   878,
1744 >    1208,   880,  1209,   881,   884,  1210,   879,  1211,  1212,   882,
1745 >     885,   979,   883,  1213,   886,   887,   888,  1214,   980,   889,
1746 >     981,  1215,  1216,  1217,   890,   891,  1254,   892,  1218,   913,
1747 >     914,   915,   893,  1219,   916,   917,   982,   918,   919,   226,
1748 >     920,   894,   921,   895,    82,   922,   983,   923,   924,   896,
1749 >     897,   898,   899,   925,   900,   984,   901,   926,  1255,   902,
1750 >     903,   927,   928,   929,   904,   905,  1256,   906,   930,    83,
1751 >      84,   907,   227,   931,   908,  1257,    85,   985,   986,   988,
1752 >     909,   228,   229,   230,   910,   989,   231,   232,   991,   911,
1753 >     958,   233,   234,   235,   959,   992,   960,   961,   962,  1258,
1754 >     994,  1259,  1260,  1000,    86,    87,    88,   993,  1001,   963,
1755 >    1003,  1006,   964,   965,   966,  1261,   967,  1007,    89,    90,
1756 >      91,   968,   969,  1262,   970,  1004,   971,   972,    92,    93,
1757 >     973,   974,    94,   975,   976,   977,   978,   987,   990,   997,
1758 >     998,   999,  1002,  1008,  1009,  1011,  1012,  1013,  1005,  1010,
1759 >    1014,  1015,  1016,  1017,  1018,  1019,  1020,  1021,  1022,  1023,
1760 >    1024,  1025,  1052,  1065,  1026,  1027,  1028,  1066,  1029,  1030,
1761 >    1037,  1038,  1039,  1040,  1041,  1042,  1043,  1044,  1045,  1046,
1762 >    1047,  1048,  1049,  1050,  1067,  1068,  1071,  1051,  1073,  1054,
1763 >    1055,  1053,  1279,  1069,  1070,  1161,  1295,  1074,  1082,  1072,
1764 >    1083,  1084,  1243,  1089,  1090,  1091,  1092,  1093,  1094,  1095,
1765 >    1306,  1096,  1097,  1098,  1104,  1307,  1105,  1308,  1309,  1106,
1766 >    1107,  1310,  1108,  1109,  1311,  1110,  1111,  1112,  1117,  1118,
1767 >    1119,  1120,  1121,  1122,  1123,  1124,  1125,  1126,  1127,  1132,
1768 >    1133,  1146,  1147,  1148,  1149,  1150,  1151,  1152,  1153,  1154,
1769 >    1160,  1163,  1292,   310,  1164,  1165,  1166,  1247,  1312,   813,
1770 >    1194,  1195,   748,  1196,  1197,  1222,  1223,  1224,  1225,  1331,
1771 >     761,  1226,  1229,  1313,  1302,  1242,  1305,  1248,   729,  1244,
1772 >    1249,  1250,  1251,  1252,  1265,  1281,   740,  1280,   497,  1304,
1773 >     821,  1282,  1283,  1284,  1285,  1286,  1299,  1328,  1315,  1287,
1774 >    1298,  1316,  1317,   803,  1314,   767,  1303,   663,   400,   455,
1775 >    1274,   733,   570,   324,  1273,     0,   547,     0,   669,     0,
1776 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1777 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1778 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1779 >       0,     0,     0,     0,     0,     0,     0,   581,     0,     0,
1780 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1781 >       0,   596,     0,     0,     0,     0,     0,     0,     0,     0,
1782 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1783 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1784 >       0,     0,     0,     0,     0,     0,     0,   642,     0,     0,
1785 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1786 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1787 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1788 >       0,     0,     0,     0,     0,     0,   659
1789   };
1790  
1791 < /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
2116 <   positive, shift that token.  If negative, reduce the rule which
2117 <   number is the opposite.  If YYTABLE_NINF, syntax error.  */
2118 < #define YYTABLE_NINF -1
2119 < static const yytype_uint16 yytable[] =
1791 > static const yytype_int16 yycheck[] =
1792   {
1793 <     567,   568,   704,   122,    45,    46,   122,   574,  1132,  1138,
1794 <    1312,   128,  1313,  1160,    47,   272,  1125,    48,   129,   130,
1795 <    1126,   357,   131,    67,  1127,   508,   115,  1314,  1128,   132,
1796 <     476,  1315,    67,  1129,  1130,  1131,  1182,   653,   133,   655,
1797 <    1183,  1244,   134,   135,  1248,  1245,   509,  1250,  1249,   136,
1798 <      52,  1251,   668,   137,   138,   671,   139,    54,   367,    68,
1799 <     676,   272,   140,   981,   982,   983,   695,   696,    68,    69,
1800 <     541,   687,   688,    59,   690,   467,   550,   357,    69,    60,
1801 <     141,   142,   477,   701,   702,   143,   705,   697,   698,  1068,
1802 <    1069,   123,   144,   467,   123,    76,   145,   146,   147,  1103,
1803 <    1104,   148,  1253,   550,   149,   150,  1254,    77,    63,   358,
1804 <      64,  1266,   478,   433,   151,  1267,   434,   581,   479,   448,
1805 <     152,   153,   118,   154,   155,   156,   157,   158,    78,    79,
1806 <     121,  1268,   273,   300,    80,  1269,    81,   127,   159,   582,
1807 <     583,   367,    70,   241,   449,   279,   584,   160,   510,   161,
1808 <     162,    70,   163,   508,  1305,   164,   165,   435,  1306,   166,
1809 <     436,   610,   274,   611,   242,   358,   612,   450,  1161,   301,
1810 <     167,   451,  1162,   243,   509,   359,   244,   368,   273,   511,
1811 <     703,   480,   764,   795,   541,   613,   614,   282,   327,   542,
1812 <      82,    83,   168,   283,   169,   551,  1133,  1139,   170,    84,
1813 <      85,   328,   171,   172,   173,   174,   175,   765,   274,   615,
1814 <     176,   177,   369,   616,   437,   329,   302,   330,   355,   178,
1815 <      86,    87,   551,   585,   586,   587,   331,   245,   588,   468,
1816 <     766,   359,   438,   284,   767,  1307,   589,    88,    89,  1308,
1817 <     332,   335,  1316,   617,   370,   618,   285,   468,    90,   590,
1818 <     591,   179,   303,   180,   304,   305,   543,    91,   619,   181,
1819 <     368,   469,   552,   365,   182,   452,   592,   593,   286,   183,
1820 <     287,   431,   288,   289,   453,   454,   510,   487,   336,   469,
1821 <     620,   246,   247,   248,   249,   250,   251,   252,   253,   552,
1822 <     740,   290,   333,   337,   594,   369,   338,   306,  1310,   307,
1823 <     308,   768,  1311,   542,   339,   340,   764,   511,   455,   448,
1824 <     341,   342,   621,   343,   300,   309,  1326,   544,   650,   476,
1825 <    1327,   505,   470,   502,   344,   345,   622,   370,   769,   254,
1826 <     814,   765,   526,   346,   449,   733,   819,   643,   566,   623,
1827 <     470,   347,   348,   349,    92,    93,    94,   770,  1345,   350,
1828 <     301,   356,  1346,   351,   766,   353,   352,   450,   767,   310,
1829 <     439,   451,   364,   376,   255,   433,   456,   377,   434,   378,
1830 <     543,   477,   993,   717,   379,   557,   380,   863,   381,   728,
1831 <     829,   830,   831,   832,   833,   382,   383,   311,   312,   384,
1832 <     385,   386,   387,   539,   388,   561,   389,   302,   390,   391,
1833 <     392,   478,  1083,  1084,  1085,  1086,  1087,   479,   393,   435,
1834 <     394,   395,   436,   787,   396,   624,   128,   771,   397,   398,
1835 <     399,   880,   400,   129,   130,   768,   401,   131,   402,   772,
1836 <     403,   544,   404,   303,   132,   304,   305,   405,   406,  1100,
1837 <     407,   409,  1048,   133,   507,   256,   558,   134,   135,   411,
1838 <     412,   413,   769,   524,   136,   452,   414,   415,   137,   138,
1839 <     416,   139,   417,   418,   453,   454,   437,   140,   419,   420,
1840 <     480,   770,   421,   422,   423,   424,   425,   426,   306,   257,
1841 <     307,   308,   427,   428,   438,   141,   142,   500,   429,   559,
1842 <     143,   430,   488,   489,   490,   491,   309,   144,   455,   492,
1843 <     493,   145,   146,   147,   494,   495,   148,   496,   497,   149,
1844 <     150,   498,  1090,   499,   503,   504,   517,   518,   519,   151,
1845 <    1098,  1099,   610,   520,   611,   152,   153,   612,   154,   155,
1846 <     156,   157,   158,   521,   522,   523,   527,   528,   529,   530,
1847 <     310,   771,   531,   159,   532,   533,   613,   614,   535,   536,
1848 <     537,   538,   160,   772,   161,   162,   456,   163,  1328,   560,
1849 <     164,   165,   562,   563,   166,   564,   565,   566,   311,   312,
1850 <     615,   569,   570,   571,   616,   167,   572,   573,   575,   245,
1851 <     750,   751,   752,   753,   754,   755,   756,   576,   577,   578,
1852 <     579,  1329,   580,   641,   642,   645,   647,   168,   646,   169,
1853 <     648,   652,  1330,   170,   617,   654,   618,   171,   172,   173,
1854 <     174,   175,   439,   656,   657,   176,   177,   658,  1331,   619,
1855 <     659,   660,   661,   662,   178,  1332,   663,   664,   665,   666,
1856 <    1333,   667,  1334,   246,   247,   248,   249,   250,   251,   252,
1857 <     253,   620,   669,    76,   670,  1335,   672,   673,   674,   675,
1858 <    1255,  1256,   679,   677,   678,    77,   179,   680,   180,   681,
1859 <     682,   683,  1185,   684,   181,   283,   685,   691,   686,   182,
1860 <       2,     3,   689,   621,   183,     4,    78,    79,  1336,   703,
1861 <    1257,   254,    80,   712,    81,   692,   693,   622,   710,   694,
1862 <     713,   699,     5,   715,  1337,   719,     6,  1258,   700,     7,
1863 <     623,   706,   707,   708,  1259,   284,     8,   709,   742,   735,
1864 <     743,   716,  1338,   744,  1339,  1340,   255,   720,   285,  1200,
1865 <     721,     9,   723,  1260,   745,   724,   746,   581,   725,   726,
1866 <     727,   730,   747,    10,    11,   732,    12,   737,    82,    83,
1867 <     286,  1186,   287,    13,   288,   289,   738,    84,    85,   582,
1868 <     583,  1261,   748,   739,   749,   757,   584,   758,   759,  1262,
1869 <      14,   761,   760,   290,   762,   789,   784,   763,    86,    87,
1870 <      15,   783,    16,  1187,   790,   785,   624,   791,   786,   792,
1871 <     793,   794,  1341,   798,   796,    88,    89,   797,  1188,    17,
1872 <     799,   800,   801,   802,   803,   804,    90,   256,  1201,   805,
1873 <    1342,   807,  1263,   806,   808,    91,    18,   809,  1189,  1190,
1874 <    1343,   810,   811,   813,  1191,  1192,  1193,  1194,   816,   817,
1875 <    1122,  1264,   821,   822,   823,   824,   825,  1195,   882,   826,
1876 <    1202,   257,   827,   585,   586,   587,   828,   850,   588,   883,
1877 <     886,    19,   836,   887,   851,  1203,   589,   837,   838,   839,
1878 <      20,    21,   840,   841,   842,    22,    23,   843,   844,   590,
1879 <     591,  1156,   996,   845,   997,  1204,  1205,   846,   852,   847,
1880 <     848,  1206,  1207,  1208,  1209,   849,   592,   593,  1167,   853,
1881 <     854,   855,   856,   857,  1210,   858,   859,   860,   861,   865,
1882 <    1304,   862,    92,    93,    94,   866,   922,   923,   924,   925,
1883 <     926,   501,   927,   928,   594,   929,   930,   931,   867,   994,
1884 <     932,  1000,   868,   869,  1003,   870,   872,   873,   874,   875,
1885 <     933,   934,   935,   876,   936,   937,   938,  1015,   877,   939,
1886 <     878,   879,   940,   944,   945,   946,   947,   948,   884,   949,
1887 <     950,   885,   951,   952,   953,   888,   992,   954,   889,   890,
1888 <     999,   891,  1002,   892,   893,   894,   895,   955,   956,   957,
1889 <     896,   958,   959,   960,   897,   898,   961,   899,   900,   962,
1890 <    1282,  1283,  1284,  1285,  1286,   901,  1287,  1288,   902,  1289,
1891 <    1290,  1291,   903,   904,  1292,   905,  1004,   906,   907,  1005,
1892 <     908,   909,   910,   911,  1293,  1294,  1295,   912,  1296,  1297,
1893 <    1298,   913,   914,  1299,   915,   916,  1300,   917,   918,   919,
1894 <     920,   921,   943,   965,   966,   967,   968,   969,   970,   971,
1895 <     972,   973,   974,   975,   976,   977,  1006,   978,   979,   980,
1896 <     986,   987,   988,   989,   990,   991,  1008,   998,  1010,   995,
1897 <    1007,  1001,  1009,  1013,  1011,  1012,  1014,  1018,  1019,  1020,
1898 <    1021,  1022,  1023,  1024,  1025,  1026,  1050,  1051,  1027,  1052,
1899 <    1028,  1029,  1030,  1031,  1032,  1033,  1034,  1035,  1036,  1037,
1900 <    1038,  1039,  1076,  1078,  1080,  1040,  1041,  1043,  1044,  1045,
1901 <    1047,  1053,  1054,  1055,  1056,  1057,  1058,  1059,  1060,  1061,
1902 <    1062,  1063,  1064,  1088,  1065,  1066,  1089,  1067,  1072,  1073,
1903 <    1074,  1075,  1091,  1079,  1092,  1077,  1082,  1081,  1093,  1094,
1904 <    1095,  1096,  1097,  1101,  1102,  1107,  1105,  1106,  1108,  1109,
1905 <    1110,  1111,  1112,  1113,  1117,  1114,  1118,  1115,  1116,  1119,
1906 <    1120,  1121,  1136,  1146,  1137,  1142,  1143,  1144,  1145,  1150,
1907 <    1151,  1152,  1153,  1170,  1154,  1171,  1155,  1159,  1165,  1166,
1908 <    1173,  1174,  1175,  1177,  1232,  1168,  1178,  1172,  1176,  1179,
1909 <    1180,  1181,  1184,  1270,  1275,  1198,   334,  1199,  1213,  1214,
1910 <    1215,  1216,  1217,  1218,  1219,  1220,  1221,  1222,   540,  1049,
1911 <    1353,  1352,  1223,  1224,  1225,  1226,  1227,  1228,  1229,  1230,
1912 <    1231,  1236,  1237,  1238,  1239,  1240,  1241,  1242,  1243,  1272,
1913 <    1273,  1274,  1279,  1280,  1281,  1303,   741,  1351,   864,  1324,
1914 <     788,  1271,  1322,  1321,   815,  1347,   820,  1350,  1348,  1323,
1915 <     881,   506,  1349,   644,   366,  1318,   651,   432,   354,  1247,
1916 <    1320,  1246,  1319,     0,     0,     0,     0,     0,   729,     0,
1917 <     525,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1918 <       0,     0,     0,     0,     0,     0,     0,   734,   718
1793 >     639,   640,   312,     1,     1,   315,   316,     8,   318,   319,
1794 >       1,   114,     1,     1,    52,     1,     1,     1,    48,   216,
1795 >     237,     1,     1,   220,     1,   237,   216,   237,     1,     1,
1796 >     220,     1,   826,   827,   828,   829,   830,   831,   832,    30,
1797 >       1,     1,     1,   237,   235,   183,   184,    38,   239,     1,
1798 >       1,     1,     1,     3,     1,     5,     1,     6,     7,    56,
1799 >       9,    10,     1,   237,   235,    14,   235,    64,   239,    66,
1800 >      20,    41,   237,   235,   237,    24,    25,   239,    64,    64,
1801 >     237,     1,     1,    32,    64,   237,    35,    36,    37,    39,
1802 >      41,   129,     1,    42,    83,    56,    11,    12,    13,   409,
1803 >     237,   411,   412,    64,    83,    66,    56,   210,    58,   237,
1804 >      59,    60,   422,    83,   237,   106,    66,   427,   106,   235,
1805 >       1,    70,   106,   239,    73,    74,   436,   437,    78,   106,
1806 >     127,   237,    83,   106,   238,    84,     1,   237,   448,    20,
1807 >     450,   451,    91,   103,    93,   130,    95,   106,    97,   237,
1808 >     130,   100,   101,     1,   106,    64,   106,   130,    39,   106,
1809 >     130,   106,     1,   112,   124,   195,   127,   237,   117,   118,
1810 >       1,   120,   121,   122,   204,   237,   125,   127,   130,   130,
1811 >      28,   179,    30,   103,   237,    66,   237,    26,    27,    20,
1812 >     179,   130,   235,   236,    33,   237,   146,     1,   235,   114,
1813 >     179,   150,   239,   204,   124,   155,   235,   179,    39,    57,
1814 >     239,   130,   161,   162,   163,   164,   165,   166,   167,    67,
1815 >     237,   237,    61,    62,    63,   106,   235,   238,   226,   539,
1816 >     239,    79,    80,    81,   238,    66,    75,    76,    77,   236,
1817 >     224,   106,   123,   227,    92,   236,    85,    86,    96,     1,
1818 >      89,     1,   236,   200,   226,   205,   236,   236,   106,   236,
1819 >       1,   109,   110,   236,   236,   224,    18,    19,   217,   218,
1820 >     219,    23,   221,   222,   155,   156,   236,   224,   228,   224,
1821 >     238,   230,   238,   232,    34,   236,   236,   236,   227,   236,
1822 >     138,   236,   123,    43,    44,    45,   238,   236,    48,    49,
1823 >     131,   132,   106,    53,    54,    55,   154,   172,   227,   157,
1824 >     158,   159,   235,   238,    66,   179,   239,   627,   235,   235,
1825 >     151,   631,    17,     1,   634,   190,   207,   236,   638,   235,
1826 >    1099,  1100,  1101,   239,    86,    87,    88,   238,    90,   235,
1827 >     235,   206,    94,   239,   239,   235,   227,    99,   237,   239,
1828 >     231,   238,    30,   238,   106,   236,     1,   205,   238,   238,
1829 >      38,   238,   238,   115,   116,   106,   238,   238,   238,   238,
1830 >     238,   236,   238,   128,   126,    20,   238,     1,   238,   238,
1831 >     228,   229,     6,     7,   238,     9,    10,   238,   236,   238,
1832 >      14,   238,   238,   238,    39,   147,   227,   236,   238,   235,
1833 >      24,    25,     1,    98,   238,   236,   238,   102,    32,   238,
1834 >     238,    35,    36,    37,     1,   238,   238,   238,    42,   238,
1835 >     224,    66,   238,   227,   238,   238,   238,   238,   106,   238,
1836 >     238,   238,    15,    20,   128,    59,    60,   238,   238,   238,
1837 >     192,   238,   238,   238,   238,   238,    70,   238,   238,    73,
1838 >      74,   238,    39,   238,   238,   238,   238,    40,   238,   200,
1839 >      84,   106,   238,   238,   238,   160,   238,    91,   238,    93,
1840 >     238,    95,   238,    97,   238,   238,   100,   101,   123,    66,
1841 >     238,   238,     4,   224,   236,   238,   236,   238,   112,    72,
1842 >     238,   238,   238,   117,   118,   238,   120,   121,   122,    21,
1843 >      22,   125,   238,   238,   238,   238,   238,   106,   238,    31,
1844 >     155,   156,   238,   238,   238,     1,   238,     3,   238,     5,
1845 >     238,     1,   238,   128,   107,   108,   150,   235,   114,   114,
1846 >     113,   216,   114,   114,    20,   114,   123,   161,   162,   163,
1847 >     164,   165,   166,   167,   131,   132,    68,    69,    28,    71,
1848 >      30,   114,   114,    39,   137,   235,   235,   238,   128,   235,
1849 >     216,   238,   207,   238,   151,   238,   238,   238,   238,   152,
1850 >      56,   238,    58,   172,   238,   238,   238,    57,   238,   238,
1851 >      66,   103,   227,   238,   238,   238,   231,    67,   238,   111,
1852 >     238,   190,    78,   217,   218,   219,   238,   221,   222,    79,
1853 >      80,    81,   238,    71,   238,  1244,   230,   206,   232,   238,
1854 >     238,   133,    92,   135,   136,   238,    96,   238,   238,   238,
1855 >     106,   238,   238,   238,   235,   238,   106,   114,   238,   109,
1856 >     110,   153,   215,   114,   238,   114,   216,   114,   216,   114,
1857 >     227,   127,   216,   216,   216,    69,   238,    71,   114,   114,
1858 >     114,   234,   114,   114,   176,   114,   114,   114,   138,   181,
1859 >     146,   114,   216,   185,   216,   216,   216,   189,   136,   155,
1860 >     216,   216,   194,   216,   154,   216,   198,   157,   158,   159,
1861 >     139,   140,   141,   142,   143,   144,   145,   209,   216,   211,
1862 >     212,   114,   214,     0,     1,   119,   216,     4,   216,   114,
1863 >     168,   235,   235,   225,   114,   235,     1,   238,   176,    16,
1864 >     128,   233,   136,    20,   238,    22,   128,   185,   216,   205,
1865 >     235,   238,    29,    18,    19,   205,   238,   238,    23,   238,
1866 >     238,   238,   238,    48,    41,    50,    51,   238,   238,    46,
1867 >      47,   209,   228,   211,   212,   238,   235,   238,   228,   229,
1868 >     238,   175,   176,   235,   238,   238,   216,   225,    65,   235,
1869 >     238,   128,    69,   128,   238,   233,   238,   238,   238,   238,
1870 >     216,    66,   216,   216,   216,    82,   128,   216,    48,   128,
1871 >      50,    51,   238,   238,   238,   235,   238,   128,   128,   114,
1872 >     114,    86,    87,    88,   128,    90,   128,   104,   105,    94,
1873 >     128,   128,   128,   227,    99,   128,   128,   128,   128,   233,
1874 >     128,   106,   119,   235,   128,   235,   216,   238,    48,   235,
1875 >     115,   116,   235,   128,   238,   114,   235,   238,   235,   136,
1876 >     238,   126,   238,   238,   238,   114,   235,   235,   235,   235,
1877 >     235,   148,   149,   235,   235,   235,   235,   235,   235,   235,
1878 >     235,   235,   147,   235,   169,   170,   171,   238,   114,   174,
1879 >     175,   114,   177,   178,   114,   180,   173,   182,   114,   128,
1880 >     185,    71,   187,   188,   114,   114,   114,   235,   193,   186,
1881 >     128,   128,   197,   216,   191,   128,   201,   202,   203,   196,
1882 >     238,   128,   199,   208,   128,   128,   114,   192,   213,   169,
1883 >     170,   171,   128,   128,   174,   175,   128,   177,   178,   128,
1884 >     180,   128,   182,   128,   128,   185,   235,   187,   188,   235,
1885 >     128,   128,   235,   193,   235,   235,   235,   197,   216,   235,
1886 >     238,   201,   202,   203,   235,   235,   136,   235,   208,   169,
1887 >     170,   171,   235,   213,   174,   175,   128,   177,   178,     1,
1888 >     180,   235,   182,   235,     1,   185,   114,   187,   188,   235,
1889 >     235,   235,   235,   193,   235,   128,   235,   197,   168,   235,
1890 >     235,   201,   202,   203,   235,   235,   176,   235,   208,    26,
1891 >      27,   235,    34,   213,   235,   185,    33,   128,   128,   128,
1892 >     235,    43,    44,    45,   235,   128,    48,    49,   128,   235,
1893 >     235,    53,    54,    55,   235,   128,   235,   235,   235,   209,
1894 >     114,   211,   212,   128,    61,    62,    63,   238,   128,   235,
1895 >     128,   128,   235,   235,   235,   225,   235,   128,    75,    76,
1896 >      77,   235,   235,   233,   235,   216,   235,   235,    85,    86,
1897 >     235,   235,    89,   235,   235,   235,   235,   235,   235,   235,
1898 >     235,   235,   235,   128,   216,   128,   128,   235,   238,   238,
1899 >     128,   128,   128,   235,   235,   235,   235,   235,   235,   235,
1900 >     235,   235,   128,   128,   235,   235,   235,   128,   235,   235,
1901 >     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
1902 >     235,   235,   235,   235,   128,   128,   128,   235,   128,   235,
1903 >     235,   238,   114,   235,   235,   239,   128,   235,   235,   238,
1904 >     235,   235,   238,   235,   235,   235,   235,   235,   235,   235,
1905 >     134,   235,   235,   235,   235,   136,   235,   134,   136,   235,
1906 >     235,   134,   235,   235,   134,   235,   235,   235,   235,   235,
1907 >     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
1908 >     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
1909 >     223,   235,  1228,    77,   235,   235,   235,  1060,  1289,   588,
1910 >     235,   235,   501,   235,   235,   235,   235,   235,   235,  1330,
1911 >     516,   235,   235,  1291,  1267,   235,  1278,   235,   465,   238,
1912 >     235,   235,   235,   235,   235,   235,   488,  1161,   219,  1276,
1913 >     601,   240,   240,   240,   240,   240,   235,  1301,   235,   240,
1914 >     238,   235,   235,   574,  1294,   532,  1272,   394,   114,   165,
1915 >    1131,   478,   268,    95,  1129,    -1,   236,    -1,   404,    -1,
1916 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1917 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1918 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1919 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,   293,    -1,    -1,
1920 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1921 >      -1,   301,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1922 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1923 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1924 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,   342,    -1,    -1,
1925 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1926 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1927 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1928 >      -1,    -1,    -1,    -1,    -1,    -1,   375
1929   };
1930  
1931 < #define yypact_value_is_default(yystate) \
1932 <  ((yystate) == (-949))
1933 <
2252 < #define yytable_value_is_error(yytable_value) \
2253 <  YYID (0)
2254 <
2255 < static const yytype_int16 yycheck[] =
1931 >  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1932 >     symbol of state STATE-NUM.  */
1933 > static const yytype_uint16 yystos[] =
1934   {
1935 <     340,   341,   425,     1,   260,   261,     1,   347,    11,    11,
1936 <      10,     1,    12,    76,   262,     1,   260,   262,     8,     9,
1937 <     264,     1,    12,     1,   260,     1,   153,    27,   264,    19,
1938 <       1,    31,     1,   981,   982,   983,   260,   377,    28,   379,
1939 <     264,   260,    32,    33,   260,   264,    22,   260,   264,    39,
1940 <     262,   264,   392,    43,    44,   395,    46,   262,     1,    37,
1941 <     400,     1,    52,    14,    15,    16,   197,   198,    37,    47,
1942 <       1,   411,   412,   262,   414,     1,     1,     1,    47,   262,
1943 <      70,    71,    53,   423,   424,    75,   426,   197,   198,   169,
1944 <     170,    89,    82,     1,    89,     1,    86,    87,    88,   216,
1945 <     217,    91,   260,     1,    94,    95,   264,    13,   262,    89,
1946 <     262,   260,    83,     1,   104,   264,     4,     1,    89,     1,
1947 <     110,   111,   153,   113,   114,   115,   116,   117,    34,    35,
1948 <     262,   260,   118,     1,    40,   264,    42,   262,   128,    23,
1949 <      24,     1,   120,   262,    26,   153,    30,   137,   124,   139,
1950 <     140,   120,   142,     1,   260,   145,   146,    45,   264,   149,
1951 <      48,     1,   148,     3,   262,    89,     6,    49,   231,    37,
1952 <     160,    53,   235,   262,    22,   155,   262,   120,   118,   155,
1953 <     131,   152,     1,   523,     1,    25,    26,   262,   262,   120,
1954 <      96,    97,   182,     1,   184,   120,   199,   199,   188,   105,
1955 <     106,   262,   192,   193,   194,   195,   196,    26,   148,    49,
1956 <     200,   201,   155,    53,   102,   260,    84,   263,   262,   209,
1957 <     126,   127,   120,   107,   108,   109,   263,     1,   112,   155,
1958 <      49,   155,   120,    41,    53,   260,   120,   143,   144,   264,
1959 <     263,   263,   242,    83,   187,    85,    54,   155,   154,   133,
1960 <     134,   241,   120,   243,   122,   123,   187,   163,    98,   249,
1961 <     120,   187,   187,   261,   254,   147,   150,   151,    76,   259,
1962 <      78,   261,    80,    81,   156,   157,   124,   260,   263,   187,
1963 <     120,    55,    56,    57,    58,    59,    60,    61,    62,   187,
1964 <     261,    99,   261,   263,   178,   155,   263,   165,   260,   167,
1965 <     168,   120,   264,   120,   263,   263,     1,   155,   190,     1,
1966 <     263,   263,   152,   263,     1,   183,   260,   248,   261,     1,
1967 <     264,   261,   248,   260,   263,   263,   166,   187,   147,   103,
1968 <     261,    26,   260,   263,    26,   261,   261,   261,   131,   179,
1969 <     248,   263,   263,   263,   250,   251,   252,   166,   260,   263,
1970 <      37,   262,   264,   263,    49,   261,   263,    49,    53,   227,
1971 <     248,    53,   263,   263,   138,     1,   248,   263,     4,   263,
1972 <     187,    53,   712,   261,   263,   153,   263,   261,   263,   261,
1973 <     173,   174,   175,   176,   177,   263,   263,   255,   256,   263,
1974 <     263,   263,   263,   261,   263,   197,   263,    84,   263,   263,
1975 <     263,    83,   829,   830,   831,   832,   833,    89,   263,    45,
1976 <     263,   263,    48,   261,   263,   255,     1,   236,   263,   263,
1977 <     263,   261,   263,     8,     9,   120,   263,    12,   263,   248,
1978 <     263,   248,   263,   120,    19,   122,   123,   263,   263,   862,
1979 <     263,   263,   261,    28,   262,   219,   153,    32,    33,   263,
1980 <     263,   263,   147,   261,    39,   147,   263,   263,    43,    44,
1981 <     263,    46,   263,   263,   156,   157,   102,    52,   263,   263,
1982 <     152,   166,   263,   263,   263,   263,   263,   263,   165,   253,
1983 <     167,   168,   263,   263,   120,    70,    71,   261,   263,   153,
1984 <      75,   263,   263,   263,   263,   263,   183,    82,   190,   263,
1985 <     263,    86,    87,    88,   263,   263,    91,   263,   263,    94,
1986 <      95,   263,   852,   263,   263,   263,   263,   263,   263,   104,
1987 <     860,   861,     1,   263,     3,   110,   111,     6,   113,   114,
1988 <     115,   116,   117,   263,   263,   263,   263,   263,   263,   263,
1989 <     227,   236,   263,   128,   263,   263,    25,    26,   263,   263,
1990 <     263,   263,   137,   248,   139,   140,   248,   142,     5,   260,
1991 <     145,   146,   131,   131,   149,   197,   197,   131,   255,   256,
1992 <      49,   131,   131,   197,    53,   160,   197,   131,   197,     1,
1993 <     220,   221,   222,   223,   224,   225,   226,   197,   197,   197,
1994 <     197,    38,   260,   263,   263,   153,   263,   182,   260,   184,
1995 <     263,   197,    49,   188,    83,   197,    85,   192,   193,   194,
1996 <     195,   196,   248,   131,   153,   200,   201,   131,    65,    98,
1997 <     197,   197,   131,   153,   209,    72,   197,   131,   131,   131,
1998 <      77,   197,    79,    55,    56,    57,    58,    59,    60,    61,
1999 <      62,   120,   197,     1,   197,    92,   153,   197,   131,   131,
2000 <      20,    21,   153,   131,   131,    13,   241,   131,   243,   131,
2001 <     197,   197,    92,   263,   249,     1,   197,   153,   263,   254,
2002 <       0,     1,   197,   152,   259,     5,    34,    35,   125,   131,
2003 <      50,   103,    40,   263,    42,   197,   197,   166,   260,   197,
2004 <     263,   197,    22,   263,   141,   260,    26,    67,   197,    29,
2005 <     179,   197,   197,   197,    74,    41,    36,   197,   153,   260,
2006 <     153,   263,   159,   153,   161,   162,   138,   263,    54,    92,
2007 <     263,    51,   263,    93,   153,   263,   153,     1,   263,   263,
2008 <     263,   263,   153,    63,    64,   263,    66,   263,    96,    97,
2009 <      76,   171,    78,    73,    80,    81,   263,   105,   106,    23,
2010 <      24,   121,   153,   263,   153,   153,    30,   153,   197,   129,
2011 <      90,   153,   260,    99,   153,   197,   263,   260,   126,   127,
2012 <     100,   260,   102,   203,   197,   263,   255,   197,   263,   153,
2013 <     197,   197,   229,   197,   260,   143,   144,   153,   218,   119,
2014 <     153,   153,   153,   153,   153,   263,   154,   219,   171,   153,
2015 <     247,   153,   172,   131,   153,   163,   136,   260,   238,   239,
2016 <     257,   260,   263,   263,   244,   245,   246,   247,   260,   263,
2017 <     158,   191,   260,   260,   260,   260,   260,   257,   153,   260,
2018 <     203,   253,   260,   107,   108,   109,   260,   263,   112,   153,
2019 <     153,   171,   260,   153,   263,   218,   120,   260,   260,   260,
2020 <     180,   181,   260,   260,   260,   185,   186,   260,   260,   133,
2021 <     134,   158,   153,   260,   153,   238,   239,   260,   263,   260,
2022 <     260,   244,   245,   246,   247,   260,   150,   151,   202,   263,
2023 <     263,   263,   263,   263,   257,   263,   263,   263,   263,   260,
2024 <    1183,   263,   250,   251,   252,   263,   204,   205,   206,   207,
2025 <     208,   258,   210,   211,   178,   213,   214,   215,   263,   197,
2026 <     218,   197,   263,   263,   131,   263,   263,   263,   263,   263,
2027 <     228,   229,   230,   263,   232,   233,   234,   131,   263,   237,
2028 <     263,   263,   240,   204,   205,   206,   207,   208,   260,   210,
2029 <     211,   260,   213,   214,   215,   263,   263,   218,   260,   260,
2030 <     153,   260,   153,   260,   260,   260,   260,   228,   229,   230,
2031 <     260,   232,   233,   234,   260,   260,   237,   260,   260,   240,
2032 <     204,   205,   206,   207,   208,   260,   210,   211,   260,   213,
2033 <     214,   215,   260,   260,   218,   260,   153,   260,   260,   153,
2034 <     260,   260,   260,   260,   228,   229,   230,   260,   232,   233,
2035 <     234,   260,   260,   237,   260,   260,   240,   260,   260,   260,
2036 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2037 <     260,   260,   260,   260,   260,   260,   153,   260,   260,   260,
2038 <     260,   260,   260,   260,   260,   260,   153,   260,   153,   263,
2039 <     260,   263,   263,   153,   260,   263,   153,   260,   260,   260,
2040 <     260,   260,   260,   260,   260,   260,   153,   153,   260,   153,
2041 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2042 <     260,   260,   153,   153,   153,   263,   263,   263,   263,   263,
2043 <     263,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2044 <     260,   260,   260,   131,   260,   260,   131,   260,   260,   260,
2045 <     260,   260,   131,   260,   131,   263,   260,   263,   131,   131,
2046 <     153,   131,   131,   260,   153,   197,   153,   153,   263,   153,
2047 <     153,   153,   153,   131,   260,   153,   260,   153,   153,   260,
2048 <     260,   260,   260,   130,   260,   260,   260,   260,   260,   260,
2049 <     260,   260,   260,   153,   260,   197,   260,   260,   260,   260,
2050 <     153,   153,   153,   153,   130,   264,   260,   263,   263,   260,
2051 <     260,   260,   260,   131,   130,   260,    71,   260,   260,   260,
2052 <     260,   260,   260,   260,   260,   260,   260,   260,   313,   773,
2053 <    1346,  1327,   260,   260,   260,   260,   260,   260,   260,   260,
2054 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2055 <     260,   260,   260,   260,   260,   260,   482,  1325,   595,  1269,
2056 <     512,  1168,  1254,  1252,   545,  1306,   553,  1311,  1308,  1267,
2057 <     625,   275,  1309,   360,   124,  1245,   372,   184,    95,  1128,
2058 <    1251,  1126,  1249,    -1,    -1,    -1,    -1,    -1,   457,    -1,
2059 <     291,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2060 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,   472,   440
1935 >       0,   242,     0,     1,     4,    16,    20,    22,    29,    41,
1936 >      46,    47,    65,    69,    82,   104,   105,   119,   136,   148,
1937 >     149,   173,   186,   191,   196,   199,   243,   248,   253,   279,
1938 >     285,   291,   299,   313,   333,   356,   370,   385,   392,   396,
1939 >     406,   415,   436,   442,   448,   452,   458,   513,   528,   235,
1940 >     236,   237,   237,   334,   416,   443,   237,   453,   237,   371,
1941 >     437,   357,   237,   286,   314,   386,   237,   237,   407,   237,
1942 >     292,   237,   397,     1,    30,    38,   106,   280,   281,   282,
1943 >     283,   284,     1,    26,    27,    33,    61,    62,    63,    75,
1944 >      76,    77,    85,    86,    89,   514,   515,   516,   517,   518,
1945 >     519,   520,   521,   522,   523,   524,   525,   526,   527,   237,
1946 >     237,   237,     1,    64,   449,   450,   451,   237,     1,     6,
1947 >       7,     9,    10,    14,    24,    25,    32,    35,    36,    37,
1948 >      42,    59,    60,    70,    73,    74,    84,    91,    93,    95,
1949 >      97,   100,   101,   112,   117,   118,   120,   121,   122,   125,
1950 >     150,   161,   162,   163,   164,   165,   166,   167,   217,   218,
1951 >     219,   221,   222,   230,   232,   459,   460,   461,   462,   463,
1952 >     464,   465,   466,   467,   468,   469,   470,   471,   472,   473,
1953 >     474,   475,   476,   477,   478,   479,   480,   481,   482,   483,
1954 >     484,   485,   486,   487,   488,   489,   490,   491,   492,   493,
1955 >     494,   495,   496,   497,   498,   499,   500,   501,   502,   506,
1956 >     510,   511,   512,   237,   237,   237,     1,   103,   124,   249,
1957 >     250,   251,   252,   237,   237,   237,     1,    34,    43,    44,
1958 >      45,    48,    49,    53,    54,    55,   529,   530,   531,   532,
1959 >     533,   534,   535,   536,   537,   538,   539,     1,    28,    30,
1960 >      57,    67,    79,    80,    81,    92,    96,   106,   109,   110,
1961 >     138,   154,   157,   158,   159,   205,   228,   229,   254,   255,
1962 >     256,   257,   258,   259,   260,   261,   262,   266,   267,   268,
1963 >     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
1964 >     237,     1,   226,   300,   301,   302,   303,   304,   237,     1,
1965 >     106,   393,   394,   395,   237,   235,   238,   238,   238,   236,
1966 >     281,   238,   238,   238,   238,   238,   238,   238,   238,   238,
1967 >     238,   238,   238,   236,   515,     1,    18,    19,    23,    66,
1968 >      86,    87,    88,    90,    94,    99,   106,   115,   116,   126,
1969 >     147,   192,   335,   336,   337,   338,   339,   340,   341,   342,
1970 >     343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
1971 >       1,     3,     5,    20,    39,    56,    58,    66,    78,   106,
1972 >     127,   146,   155,   205,   228,   417,   418,   419,   420,   421,
1973 >     422,   423,   424,   425,   426,   427,   431,   432,   433,   434,
1974 >     435,     1,    64,   130,   444,   445,   446,   447,   238,   236,
1975 >     450,     1,   106,   130,   454,   455,   456,   457,   238,   238,
1976 >     238,   238,   238,   238,   238,   238,   238,   238,   238,   238,
1977 >     238,   238,   238,   238,   238,   238,   238,   238,   238,   238,
1978 >     238,   238,   238,   507,   503,   238,   238,   238,   238,   238,
1979 >     238,   238,   238,   238,   238,   238,   238,   238,   238,   238,
1980 >     238,   238,   238,   238,   236,   460,     1,    20,    39,    66,
1981 >     123,   131,   132,   151,   227,   372,   373,   374,   375,   376,
1982 >     377,   378,   382,   383,   384,     1,   130,   227,   438,   439,
1983 >     440,   441,     1,    56,    64,    66,   127,   358,   362,   363,
1984 >     364,   368,   369,   235,   238,   238,   236,   250,     1,    83,
1985 >     179,   287,   288,   289,   290,     1,    20,    39,    66,   106,
1986 >     123,   155,   156,   207,   227,   231,   315,   316,   317,   318,
1987 >     319,   320,   321,   322,   323,   324,   325,   329,     1,    41,
1988 >      83,   130,   387,   388,   389,   390,   391,   238,   238,   238,
1989 >     238,   238,   238,   238,   238,   238,   236,   530,   235,   238,
1990 >     238,   238,   238,   263,   238,   238,   238,   238,   238,   238,
1991 >     238,   238,   238,   238,   238,   238,   238,   238,   238,   236,
1992 >     255,     1,   106,   224,   408,   409,   410,   411,   235,   238,
1993 >     236,   301,   179,     1,   106,   172,   190,   206,   293,   294,
1994 >     295,   296,   297,   298,   238,   236,   394,     1,   106,   224,
1995 >     227,   398,   399,   400,   401,   402,   128,   128,   128,   235,
1996 >     114,   114,   245,   216,   114,   245,   245,   114,   245,   245,
1997 >     114,   114,   114,   235,   235,   238,   238,   238,   353,   238,
1998 >     238,   238,   238,   238,   238,   238,   238,   238,   238,   238,
1999 >     238,   236,   336,   235,   238,   238,   238,   238,   238,   238,
2000 >     428,   238,   238,   238,   238,   238,   238,   238,   236,   418,
2001 >     238,   238,   236,   445,   128,   235,   238,   238,   236,   455,
2002 >     216,   245,   114,   245,   245,   216,   114,   216,   114,   114,
2003 >     114,   216,   216,   216,   245,   114,   114,   114,   114,   245,
2004 >     114,   114,   114,   114,   216,   238,   238,   216,   245,   245,
2005 >     216,   216,   216,   216,   220,   216,   220,   216,   216,   216,
2006 >     216,   114,   245,   216,   245,   245,   216,   114,   235,   235,
2007 >     238,   238,   379,   238,   238,   238,   238,   238,   236,   373,
2008 >     238,   238,   236,   439,   235,   238,   238,   359,   238,   236,
2009 >     363,   128,   128,   235,   235,   238,   238,   236,   288,   235,
2010 >     238,   238,   330,   238,   238,   238,   238,   326,   238,   238,
2011 >     236,   316,   235,   238,   238,   238,   236,   388,   216,   216,
2012 >     245,   128,   216,   128,   216,   216,   216,   235,   114,   128,
2013 >     216,   128,   238,   128,   128,   114,   114,   128,   128,   128,
2014 >     128,   128,   128,   128,   128,   128,   128,   128,   235,   235,
2015 >     238,   412,   236,   409,   216,   235,   237,   235,   238,   238,
2016 >     238,   238,   236,   294,   128,   235,   235,   238,   403,   238,
2017 >     236,   399,   235,   235,   235,   235,   139,   140,   141,   142,
2018 >     143,   144,   145,   244,   245,   235,   235,   235,   235,   235,
2019 >     235,   235,   235,   235,   235,   235,   114,   114,   245,   238,
2020 >     114,   114,   245,   114,   114,   245,   128,   114,   114,   245,
2021 >     114,   247,   247,   235,   128,   183,   184,   128,   216,   128,
2022 >     128,   238,   128,   128,   114,   128,   128,   128,   128,   235,
2023 >     128,   128,   235,   235,   128,   128,   235,   235,   235,   235,
2024 >     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
2025 >     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
2026 >     235,   235,    48,   169,   170,   171,   174,   175,   177,   178,
2027 >     180,   182,   185,   187,   188,   193,   197,   201,   202,   203,
2028 >     208,   213,   508,   509,    48,    50,    51,   169,   170,   171,
2029 >     174,   175,   177,   178,   180,   182,   185,   187,   188,   193,
2030 >     197,   201,   202,   203,   208,   213,   504,   505,   235,   235,
2031 >     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
2032 >     235,   235,   235,   235,   235,   235,   235,   235,   235,   128,
2033 >     216,   238,   128,   114,   128,   128,   128,   235,   128,   128,
2034 >     235,   128,   128,   238,   114,   366,   367,   235,   235,   235,
2035 >     128,   128,   235,   128,   216,   238,   128,   128,   128,   216,
2036 >     238,   128,   128,   235,   128,   128,   128,   235,   235,   235,
2037 >     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
2038 >     235,    17,    98,   102,   160,   264,   265,   235,   235,   235,
2039 >     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
2040 >     235,   235,   128,   238,   235,   235,     1,   106,   200,   224,
2041 >     305,   306,   307,   308,   309,   128,   128,   128,   128,   235,
2042 >     235,   128,   238,   128,   235,   244,   244,   244,   244,   244,
2043 >     244,   244,   235,   235,   235,    52,   129,   354,   355,   235,
2044 >     235,   235,   235,   235,   235,   235,   235,   235,   235,    11,
2045 >      12,    13,   246,   247,   235,   235,   235,   235,   235,   235,
2046 >     235,   235,   235,     8,   204,   429,   430,   235,   235,   235,
2047 >     235,   235,   235,   235,   235,   235,   235,   235,   235,   239,
2048 >     235,   239,   235,   235,    15,    40,    72,   107,   108,   113,
2049 >     137,   152,   215,   234,   380,   381,   235,   235,   235,   235,
2050 >     235,   235,   235,   235,   235,    48,   195,   204,   360,   361,
2051 >     223,   239,   365,   235,   235,   235,   235,     4,    21,    22,
2052 >      31,    68,    69,    71,   103,   111,   133,   135,   136,   153,
2053 >     176,   181,   185,   189,   194,   198,   209,   211,   212,   214,
2054 >     225,   233,   331,   332,   235,   235,   235,   235,    48,    50,
2055 >      51,   169,   170,   171,   174,   175,   177,   178,   180,   182,
2056 >     185,   187,   188,   193,   197,   201,   202,   203,   208,   213,
2057 >     327,   328,   235,   235,   235,   235,   235,   235,   239,   235,
2058 >      71,   136,   168,   176,   185,   209,   211,   212,   225,   233,
2059 >     413,   414,   235,   238,   238,   310,   236,   306,   235,   235,
2060 >     235,   235,   235,    71,   136,   168,   176,   185,   209,   211,
2061 >     212,   225,   233,   404,   405,   235,   235,   239,   246,   246,
2062 >     246,   235,   239,   509,   505,   235,   239,   235,   239,   114,
2063 >     367,   235,   240,   240,   240,   240,   240,   240,   235,   239,
2064 >     235,   239,   265,   235,   239,   128,   210,   247,   238,   235,
2065 >     235,   239,   355,   430,   381,   361,   134,   136,   134,   136,
2066 >     134,   134,   332,   328,   414,   235,   235,   235,    69,    71,
2067 >     119,   136,   175,   176,   227,   233,   311,   312,   405,   235,
2068 >     239,   312
2069   };
2070  
2071 < /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2072 <   symbol of state STATE-NUM.  */
2387 < static const yytype_uint16 yystos[] =
2071 >  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
2072 > static const yytype_uint16 yyr1[] =
2073   {
2074 <       0,   266,     0,     1,     5,    22,    26,    29,    36,    51,
2075 <      63,    64,    66,    73,    90,   100,   102,   119,   136,   171,
2076 <     180,   181,   185,   186,   267,   272,   277,   295,   301,   316,
2077 <     339,   358,   372,   390,   397,   407,   416,   442,   452,   458,
2078 <     462,   472,   536,   552,   573,   260,   261,   262,   262,   340,
2079 <     417,   453,   262,   463,   262,   537,   373,   443,   359,   262,
2080 <     262,   317,   391,   262,   262,   398,   408,     1,    37,    47,
2081 <     120,   296,   297,   298,   299,   300,     1,    13,    34,    35,
2082 <      40,    42,    96,    97,   105,   106,   126,   127,   143,   144,
2083 <     154,   163,   250,   251,   252,   553,   554,   555,   556,   557,
2084 <     558,   559,   560,   561,   562,   563,   564,   565,   566,   567,
2085 <     568,   569,   570,   571,   572,   153,   341,   345,   153,   418,
2086 <     422,   262,     1,    89,   459,   460,   461,   262,     1,     8,
2087 <       9,    12,    19,    28,    32,    33,    39,    43,    44,    46,
2088 <      52,    70,    71,    75,    82,    86,    87,    88,    91,    94,
2089 <      95,   104,   110,   111,   113,   114,   115,   116,   117,   128,
2090 <     137,   139,   140,   142,   145,   146,   149,   160,   182,   184,
2091 <     188,   192,   193,   194,   195,   196,   200,   201,   209,   241,
2092 <     243,   249,   254,   259,   473,   474,   475,   476,   477,   478,
2074 >       0,   241,   242,   242,   243,   243,   243,   243,   243,   243,
2075 >     243,   243,   243,   243,   243,   243,   243,   243,   243,   243,
2076 >     243,   243,   243,   243,   243,   243,   243,   243,   244,   244,
2077 >     245,   245,   245,   245,   245,   245,   245,   245,   246,   246,
2078 >     247,   247,   247,   247,   248,   249,   249,   250,   250,   250,
2079 >     251,   252,   253,   254,   254,   255,   255,   255,   255,   255,
2080 >     255,   255,   255,   255,   255,   255,   255,   255,   255,   255,
2081 >     255,   255,   255,   255,   255,   255,   256,   257,   258,   259,
2082 >     260,   261,   263,   262,   264,   264,   265,   265,   265,   265,
2083 >     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
2084 >     276,   277,   278,   279,   280,   280,   281,   281,   281,   281,
2085 >     282,   283,   284,   286,   285,   287,   287,   288,   288,   288,
2086 >     289,   290,   292,   291,   293,   293,   294,   294,   294,   294,
2087 >     294,   295,   296,   297,   298,   299,   300,   300,   301,   301,
2088 >     301,   302,   304,   303,   305,   305,   306,   306,   306,   306,
2089 >     307,   308,   308,   310,   309,   311,   311,   312,   312,   312,
2090 >     312,   312,   312,   312,   312,   314,   313,   315,   315,   316,
2091 >     316,   316,   316,   316,   316,   316,   316,   316,   316,   316,
2092 >     317,   318,   319,   320,   321,   322,   323,   324,   326,   325,
2093 >     327,   327,   328,   328,   328,   328,   328,   328,   328,   328,
2094 >     328,   328,   328,   328,   328,   328,   328,   328,   328,   328,
2095 >     328,   328,   328,   328,   330,   329,   331,   331,   332,   332,
2096 >     332,   332,   332,   332,   332,   332,   332,   332,   332,   332,
2097 >     332,   332,   332,   332,   332,   332,   332,   332,   332,   332,
2098 >     332,   332,   332,   332,   332,   332,   332,   334,   333,   335,
2099 >     335,   336,   336,   336,   336,   336,   336,   336,   336,   336,
2100 >     336,   336,   336,   336,   336,   336,   336,   336,   337,   338,
2101 >     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
2102 >     349,   350,   351,   353,   352,   354,   354,   355,   355,   357,
2103 >     356,   359,   358,   360,   360,   361,   361,   361,   362,   362,
2104 >     363,   363,   363,   363,   363,   365,   364,   366,   366,   367,
2105 >     367,   368,   369,   371,   370,   372,   372,   373,   373,   373,
2106 >     373,   373,   373,   373,   373,   373,   374,   375,   376,   377,
2107 >     379,   378,   380,   380,   381,   381,   381,   381,   381,   381,
2108 >     381,   381,   381,   381,   382,   383,   384,   386,   385,   387,
2109 >     387,   388,   388,   388,   388,   389,   390,   391,   392,   393,
2110 >     393,   394,   394,   395,   397,   396,   398,   398,   399,   399,
2111 >     399,   399,   400,   401,   403,   402,   404,   404,   405,   405,
2112 >     405,   405,   405,   405,   405,   405,   405,   405,   407,   406,
2113 >     408,   408,   409,   409,   409,   410,   412,   411,   413,   413,
2114 >     414,   414,   414,   414,   414,   414,   414,   414,   414,   414,
2115 >     416,   415,   417,   417,   418,   418,   418,   418,   418,   418,
2116 >     418,   418,   418,   418,   418,   418,   418,   418,   418,   419,
2117 >     420,   421,   422,   423,   424,   425,   426,   426,   428,   427,
2118 >     429,   429,   430,   430,   431,   432,   433,   434,   435,   437,
2119 >     436,   438,   438,   439,   439,   439,   440,   441,   443,   442,
2120 >     444,   444,   445,   445,   445,   446,   447,   448,   449,   449,
2121 >     450,   450,   451,   453,   452,   454,   454,   455,   455,   455,
2122 >     456,   457,   458,   459,   459,   460,   460,   460,   460,   460,
2123 >     460,   460,   460,   460,   460,   460,   460,   460,   460,   460,
2124 >     460,   460,   460,   460,   460,   460,   460,   460,   460,   460,
2125 >     460,   460,   460,   460,   460,   460,   460,   460,   460,   460,
2126 >     460,   460,   460,   460,   460,   460,   460,   460,   460,   460,
2127 >     460,   460,   461,   462,   463,   464,   465,   466,   467,   468,
2128 >     469,   470,   471,   472,   473,   474,   475,   476,   477,   478,
2129       479,   480,   481,   482,   483,   484,   485,   486,   487,   488,
2130 <     489,   490,   491,   492,   493,   494,   495,   496,   497,   498,
2131 <     499,   500,   501,   502,   503,   504,   505,   506,   507,   508,
2132 <     509,   510,   511,   512,   513,   514,   515,   516,   517,   518,
2133 <     519,   520,   521,   522,   523,   524,   528,   532,   533,   534,
2134 <     535,   262,   262,   262,   262,     1,    55,    56,    57,    58,
2135 <      59,    60,    61,    62,   103,   138,   219,   253,   302,   303,
2136 <     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
2137 <     314,   315,     1,   118,   148,   273,   274,   275,   276,   153,
2138 <     318,   322,   262,     1,    41,    54,    76,    78,    80,    81,
2139 <      99,   574,   575,   576,   577,   578,   579,   580,   581,   582,
2140 <       1,    37,    84,   120,   122,   123,   165,   167,   168,   183,
2141 <     227,   255,   256,   278,   279,   280,   284,   285,   286,   287,
2421 <     288,   289,   290,   291,   292,   293,   294,   262,   262,   260,
2422 <     263,   263,   263,   261,   297,   263,   263,   263,   263,   263,
2423 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
2424 <     263,   263,   263,   261,   554,   262,   262,     1,    89,   155,
2425 <     454,   455,   456,   457,   263,   261,   460,     1,   120,   155,
2426 <     187,   464,   468,   469,   470,   471,   263,   263,   263,   263,
2427 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
2428 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
2429 <     263,   263,   263,   263,   263,   263,   263,   263,   529,   263,
2430 <     525,   263,   263,   263,   263,   263,   263,   263,   263,   263,
2431 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
2432 <     263,   261,   474,     1,     4,    45,    48,   102,   120,   248,
2433 <     538,   539,   540,   541,   542,   546,   547,   548,     1,    26,
2434 <      49,    53,   147,   156,   157,   190,   248,   374,   375,   376,
2435 <     377,   378,   379,   380,   387,   388,   389,     1,   155,   187,
2436 <     248,   444,   448,   449,   450,   451,     1,    53,    83,    89,
2437 <     152,   360,   364,   365,   366,   370,   371,   260,   263,   263,
2438 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
2439 <     261,   303,   260,   263,   263,   261,   274,   262,     1,    22,
2440 <     124,   155,   392,   393,   394,   395,   396,   263,   263,   263,
2441 <     263,   263,   263,   263,   261,   575,   260,   263,   263,   263,
2442 <     263,   263,   263,   263,   281,   263,   263,   263,   263,   261,
2443 <     279,     1,   120,   187,   248,   399,   400,   401,   402,   403,
2444 <       1,   120,   187,   409,   410,   411,   412,   153,   153,   153,
2445 <     260,   197,   131,   131,   197,   197,   131,   269,   269,   131,
2446 <     131,   197,   197,   131,   269,   197,   197,   197,   197,   197,
2447 <     260,     1,    23,    24,    30,   107,   108,   109,   112,   120,
2448 <     133,   134,   150,   151,   178,   342,   343,   344,   346,   347,
2449 <     348,   349,   350,   351,   352,   353,   354,   355,   356,   357,
2450 <       1,     3,     6,    25,    26,    49,    53,    83,    85,    98,
2451 <     120,   152,   166,   179,   255,   419,   420,   421,   423,   424,
2452 <     425,   426,   427,   428,   429,   436,   437,   438,   439,   440,
2453 <     441,   263,   263,   261,   455,   153,   260,   263,   263,   465,
2454 <     261,   469,   197,   269,   197,   269,   131,   153,   131,   197,
2455 <     197,   131,   153,   197,   131,   131,   131,   197,   269,   197,
2456 <     197,   269,   153,   197,   131,   131,   269,   131,   131,   153,
2457 <     131,   131,   197,   197,   263,   197,   263,   269,   269,   197,
2458 <     269,   153,   197,   197,   197,   197,   198,   197,   198,   197,
2459 <     197,   269,   269,   131,   271,   269,   197,   197,   197,   197,
2460 <     260,   549,   263,   263,   543,   263,   263,   261,   539,   260,
2461 <     263,   263,   381,   263,   263,   263,   263,   263,   261,   375,
2462 <     263,   445,   263,   261,   449,   260,   361,   263,   263,   263,
2463 <     261,   365,   153,   153,   153,   153,   153,   153,   153,   153,
2464 <     220,   221,   222,   223,   224,   225,   226,   153,   153,   197,
2465 <     260,   153,   153,   260,     1,    26,    49,    53,   120,   147,
2466 <     166,   236,   248,   319,   320,   321,   323,   324,   325,   326,
2467 <     327,   328,   332,   260,   263,   263,   263,   261,   393,   197,
2468 <     197,   197,   153,   197,   197,   269,   260,   153,   197,   153,
2469 <     153,   153,   153,   153,   263,   153,   131,   153,   153,   260,
2470 <     260,   263,   404,   263,   261,   400,   260,   263,   413,   261,
2471 <     410,   260,   260,   260,   260,   260,   260,   260,   260,   173,
2472 <     174,   175,   176,   177,   268,   269,   260,   260,   260,   260,
2473 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2474 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
2475 <     263,   263,   263,   261,   343,   260,   263,   263,   263,   263,
2476 <     263,   430,   263,   263,   263,   263,   263,   263,   263,   263,
2477 <     261,   420,   153,   153,   260,   260,   153,   153,   263,   260,
2478 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2479 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2480 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2481 <     260,   260,   204,   205,   206,   207,   208,   210,   211,   213,
2482 <     214,   215,   218,   228,   229,   230,   232,   233,   234,   237,
2483 <     240,   530,   531,   260,   204,   205,   206,   207,   208,   210,
2484 <     211,   213,   214,   215,   218,   228,   229,   230,   232,   233,
2485 <     234,   237,   240,   526,   527,   260,   260,   260,   260,   260,
2486 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2487 <     260,    14,    15,    16,   270,   271,   260,   260,   260,   260,
2488 <     260,   260,   263,   269,   197,   263,   153,   153,   260,   153,
2489 <     197,   263,   153,   131,   153,   153,   153,   260,   153,   263,
2490 <     153,   260,   263,   153,   153,   131,   368,   369,   260,   260,
2491 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2492 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2493 <     263,   263,   333,   263,   263,   263,   329,   263,   261,   320,
2494 <     153,   153,   153,   260,   260,   260,   260,   260,   260,   260,
2495 <     260,   260,   260,   260,   260,   260,   260,   260,   169,   170,
2496 <     282,   283,   260,   260,   260,   260,   153,   263,   153,   260,
2497 <     153,   263,   260,   268,   268,   268,   268,   268,   131,   131,
2498 <     269,   131,   131,   131,   131,   153,   131,   131,   269,   269,
2499 <     271,   260,   153,   216,   217,   153,   153,   197,   263,   153,
2500 <     153,   153,   153,   131,   153,   153,   153,   260,   260,   260,
2501 <     260,   260,   158,   466,   467,   260,   264,   260,   264,   270,
2502 <     270,   270,    11,   199,   550,   551,   260,   260,    11,   199,
2503 <     544,   545,   260,   260,   260,   260,   130,   382,   383,   385,
2504 <     260,   260,   260,   260,   260,   260,   158,   446,   447,   260,
2505 <      76,   231,   235,   362,   363,   260,   260,   202,   264,   367,
2506 <     153,   197,   263,   153,   153,   153,   263,   153,   260,   260,
2507 <     260,   260,   260,   264,   260,    92,   171,   203,   218,   238,
2508 <     239,   244,   245,   246,   247,   257,   405,   406,   260,   260,
2509 <      92,   171,   203,   218,   238,   239,   244,   245,   246,   247,
2510 <     257,   414,   415,   260,   260,   260,   260,   260,   260,   260,
2511 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2512 <     260,   260,   130,   431,   432,   434,   260,   260,   260,   260,
2513 <     260,   260,   260,   260,   260,   264,   531,   527,   260,   264,
2514 <     260,   264,   384,   260,   264,    20,    21,    50,    67,    74,
2515 <      93,   121,   129,   172,   191,   386,   260,   264,   260,   264,
2516 <     131,   369,   260,   260,   260,   130,   334,   335,   337,   260,
2517 <     260,   260,   204,   205,   206,   207,   208,   210,   211,   213,
2518 <     214,   215,   218,   228,   229,   230,   232,   233,   234,   237,
2519 <     240,   330,   331,   260,   283,   260,   264,   260,   264,   433,
2520 <     260,   264,    10,    12,    27,    31,   242,   435,   467,   551,
2521 <     545,   386,   383,   447,   363,   336,   260,   264,     5,    38,
2522 <      49,    65,    72,    77,    79,    92,   125,   141,   159,   161,
2523 <     162,   229,   247,   257,   338,   260,   264,   406,   415,   435,
2524 <     432,   338,   335,   331
2130 >     488,   489,   489,   490,   491,   492,   493,   494,   495,   496,
2131 >     497,   498,   499,   500,   501,   503,   502,   504,   504,   505,
2132 >     505,   505,   505,   505,   505,   505,   505,   505,   505,   505,
2133 >     505,   505,   505,   505,   505,   505,   505,   505,   505,   505,
2134 >     505,   507,   506,   508,   508,   509,   509,   509,   509,   509,
2135 >     509,   509,   509,   509,   509,   509,   509,   509,   509,   509,
2136 >     509,   509,   509,   509,   509,   510,   511,   512,   513,   514,
2137 >     514,   515,   515,   515,   515,   515,   515,   515,   515,   515,
2138 >     515,   515,   515,   515,   516,   517,   518,   519,   520,   521,
2139 >     522,   523,   524,   525,   526,   527,   528,   529,   529,   530,
2140 >     530,   530,   530,   530,   530,   530,   530,   530,   530,   531,
2141 >     532,   533,   534,   535,   536,   537,   538,   539
2142   };
2143  
2144 < #define yyerrok         (yyerrstatus = 0)
2145 < #define yyclearin       (yychar = YYEMPTY)
2146 < #define YYEMPTY         (-2)
2147 < #define YYEOF           0
2148 <
2149 < #define YYACCEPT        goto yyacceptlab
2150 < #define YYABORT         goto yyabortlab
2151 < #define YYERROR         goto yyerrorlab
2152 <
2153 <
2154 < /* Like YYERROR except do call yyerror.  This remains here temporarily
2155 <   to ease the transition to the new meaning of YYERROR, for GCC.
2156 <   Once GCC version 2 has supplanted version 1, this can go.  However,
2157 <   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
2158 <   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2159 <   discussed.  */
2160 <
2161 < #define YYFAIL          goto yyerrlab
2162 < #if defined YYFAIL
2163 <  /* This is here to suppress warnings from the GCC cpp's
2164 <     -Wunused-macros.  Normally we don't worry about that warning, but
2165 <     some users do, and we want to make it easy for users to remove
2166 <     YYFAIL uses, which will produce warnings from Bison 2.5.  */
2167 < #endif
2168 <
2169 < #define YYRECOVERING()  (!!yyerrstatus)
2144 >  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
2145 > static const yytype_uint8 yyr2[] =
2146 > {
2147 >       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
2148 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2149 >       1,     1,     1,     1,     1,     1,     2,     2,     0,     1,
2150 >       2,     3,     3,     3,     3,     3,     3,     3,     0,     1,
2151 >       2,     3,     3,     3,     5,     2,     1,     1,     1,     2,
2152 >       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
2153 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2154 >       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
2155 >       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
2156 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2157 >       4,     4,     4,     5,     2,     1,     1,     1,     1,     2,
2158 >       4,     4,     4,     0,     6,     2,     1,     1,     1,     2,
2159 >       4,     4,     0,     6,     2,     1,     1,     1,     1,     1,
2160 >       2,     4,     4,     4,     4,     5,     2,     1,     1,     1,
2161 >       2,     4,     0,     6,     2,     1,     1,     1,     1,     2,
2162 >       4,     4,     4,     0,     5,     3,     1,     1,     1,     1,
2163 >       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
2164 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
2165 >       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
2166 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2167 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2168 >       1,     1,     1,     1,     0,     5,     3,     1,     3,     1,
2169 >       3,     1,     3,     1,     1,     1,     1,     1,     1,     1,
2170 >       1,     1,     3,     1,     1,     1,     1,     1,     1,     1,
2171 >       1,     1,     3,     3,     1,     1,     1,     0,     6,     2,
2172 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2173 >       1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
2174 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2175 >       4,     4,     4,     0,     5,     3,     1,     1,     1,     0,
2176 >       6,     0,     5,     3,     1,     1,     1,     1,     2,     1,
2177 >       1,     1,     1,     1,     2,     0,     5,     3,     1,     1,
2178 >       3,     4,     4,     0,     6,     2,     1,     1,     1,     1,
2179 >       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
2180 >       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
2181 >       1,     1,     1,     1,     4,     4,     4,     0,     6,     2,
2182 >       1,     1,     1,     1,     2,     4,     4,     4,     5,     2,
2183 >       1,     1,     1,     4,     0,     6,     2,     1,     1,     1,
2184 >       1,     2,     4,     4,     0,     5,     3,     1,     1,     1,
2185 >       1,     1,     1,     1,     1,     1,     1,     1,     0,     6,
2186 >       2,     1,     1,     1,     2,     4,     0,     5,     3,     1,
2187 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2188 >       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
2189 >       1,     1,     1,     1,     1,     1,     1,     1,     2,     4,
2190 >       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
2191 >       3,     1,     1,     1,     4,     4,     4,     4,     4,     0,
2192 >       6,     2,     1,     1,     1,     1,     4,     4,     0,     6,
2193 >       2,     1,     1,     1,     1,     4,     4,     5,     2,     1,
2194 >       1,     1,     4,     0,     6,     2,     1,     1,     1,     1,
2195 >       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
2196 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2197 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2198 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2199 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2200 >       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
2201 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2202 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2203 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2204 >       4,     4,     4,     4,     4,     0,     5,     3,     1,     1,
2205 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2206 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2207 >       1,     0,     5,     3,     1,     1,     1,     1,     1,     1,
2208 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2209 >       1,     1,     1,     1,     1,     4,     4,     4,     5,     2,
2210 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2211 >       1,     1,     1,     1,     4,     4,     4,     4,     4,     4,
2212 >       4,     4,     4,     4,     4,     4,     5,     2,     1,     1,
2213 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
2214 >       4,     4,     4,     4,     4,     4,     4,     4
2215 > };
2216  
2554 #define YYBACKUP(Token, Value)                                  \
2555 do                                                              \
2556  if (yychar == YYEMPTY && yylen == 1)                          \
2557    {                                                           \
2558      yychar = (Token);                                         \
2559      yylval = (Value);                                         \
2560      YYPOPSTACK (1);                                           \
2561      goto yybackup;                                            \
2562    }                                                           \
2563  else                                                          \
2564    {                                                           \
2565      yyerror (YY_("syntax error: cannot back up")); \
2566      YYERROR;                                                  \
2567    }                                                           \
2568 while (YYID (0))
2569
2570
2571 #define YYTERROR        1
2572 #define YYERRCODE       256
2573
2574
2575 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2576   If N is 0, then set CURRENT to the empty location which ends
2577   the previous symbol: RHS[0] (always defined).  */
2578
2579 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2580 #ifndef YYLLOC_DEFAULT
2581 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2582    do                                                                  \
2583      if (YYID (N))                                                    \
2584        {                                                               \
2585          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2586          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2587          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2588          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2589        }                                                               \
2590      else                                                              \
2591        {                                                               \
2592          (Current).first_line   = (Current).last_line   =              \
2593            YYRHSLOC (Rhs, 0).last_line;                                \
2594          (Current).first_column = (Current).last_column =              \
2595            YYRHSLOC (Rhs, 0).last_column;                              \
2596        }                                                               \
2597    while (YYID (0))
2598 #endif
2217  
2218 + #define yyerrok         (yyerrstatus = 0)
2219 + #define yyclearin       (yychar = YYEMPTY)
2220 + #define YYEMPTY         (-2)
2221 + #define YYEOF           0
2222 +
2223 + #define YYACCEPT        goto yyacceptlab
2224 + #define YYABORT         goto yyabortlab
2225 + #define YYERROR         goto yyerrorlab
2226  
2601 /* This macro is provided for backward compatibility. */
2227  
2228 < #ifndef YY_LOCATION_PRINT
2604 < # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2605 < #endif
2228 > #define YYRECOVERING()  (!!yyerrstatus)
2229  
2230 + #define YYBACKUP(Token, Value)                                  \
2231 + do                                                              \
2232 +  if (yychar == YYEMPTY)                                        \
2233 +    {                                                           \
2234 +      yychar = (Token);                                         \
2235 +      yylval = (Value);                                         \
2236 +      YYPOPSTACK (yylen);                                       \
2237 +      yystate = *yyssp;                                         \
2238 +      goto yybackup;                                            \
2239 +    }                                                           \
2240 +  else                                                          \
2241 +    {                                                           \
2242 +      yyerror (YY_("syntax error: cannot back up")); \
2243 +      YYERROR;                                                  \
2244 +    }                                                           \
2245 + while (0)
2246 +
2247 + /* Error token number */
2248 + #define YYTERROR        1
2249 + #define YYERRCODE       256
2250  
2608 /* YYLEX -- calling `yylex' with the right arguments.  */
2251  
2610 #ifdef YYLEX_PARAM
2611 # define YYLEX yylex (YYLEX_PARAM)
2612 #else
2613 # define YYLEX yylex ()
2614 #endif
2252  
2253   /* Enable debugging if requested.  */
2254   #if YYDEBUG
# Line 2621 | Line 2258 | while (YYID (0))
2258   #  define YYFPRINTF fprintf
2259   # endif
2260  
2261 < # define YYDPRINTF(Args)                        \
2262 < do {                                            \
2263 <  if (yydebug)                                  \
2264 <    YYFPRINTF Args;                             \
2265 < } while (YYID (0))
2629 <
2630 < # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2631 < do {                                                                      \
2632 <  if (yydebug)                                                            \
2633 <    {                                                                     \
2634 <      YYFPRINTF (stderr, "%s ", Title);                                   \
2635 <      yy_symbol_print (stderr,                                            \
2636 <                  Type, Value); \
2637 <      YYFPRINTF (stderr, "\n");                                           \
2638 <    }                                                                     \
2639 < } while (YYID (0))
2261 > # define YYDPRINTF(Args)                        \
2262 > do {                                            \
2263 >  if (yydebug)                                  \
2264 >    YYFPRINTF Args;                             \
2265 > } while (0)
2266  
2267 + /* This macro is provided for backward compatibility. */
2268 + #ifndef YY_LOCATION_PRINT
2269 + # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2270 + #endif
2271 +
2272 +
2273 + # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2274 + do {                                                                      \
2275 +  if (yydebug)                                                            \
2276 +    {                                                                     \
2277 +      YYFPRINTF (stderr, "%s ", Title);                                   \
2278 +      yy_symbol_print (stderr,                                            \
2279 +                  Type, Value); \
2280 +      YYFPRINTF (stderr, "\n");                                           \
2281 +    }                                                                     \
2282 + } while (0)
2283  
2642 /*--------------------------------.
2643 | Print this symbol on YYOUTPUT.  |
2644 `--------------------------------*/
2284  
2285 < /*ARGSUSED*/
2286 < #if (defined __STDC__ || defined __C99__FUNC__ \
2287 <     || defined __cplusplus || defined _MSC_VER)
2285 > /*----------------------------------------.
2286 > | Print this symbol's value on YYOUTPUT.  |
2287 > `----------------------------------------*/
2288 >
2289   static void
2290   yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2651 #else
2652 static void
2653 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
2654    FILE *yyoutput;
2655    int yytype;
2656    YYSTYPE const * const yyvaluep;
2657 #endif
2291   {
2292 +  FILE *yyo = yyoutput;
2293 +  YYUSE (yyo);
2294    if (!yyvaluep)
2295      return;
2296   # ifdef YYPRINT
2297    if (yytype < YYNTOKENS)
2298      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2664 # else
2665  YYUSE (yyoutput);
2299   # endif
2300 <  switch (yytype)
2668 <    {
2669 <      default:
2670 <        break;
2671 <    }
2300 >  YYUSE (yytype);
2301   }
2302  
2303  
# Line 2676 | Line 2305 | yy_symbol_value_print (yyoutput, yytype,
2305   | Print this symbol on YYOUTPUT.  |
2306   `--------------------------------*/
2307  
2679 #if (defined __STDC__ || defined __C99__FUNC__ \
2680     || defined __cplusplus || defined _MSC_VER)
2308   static void
2309   yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2683 #else
2684 static void
2685 yy_symbol_print (yyoutput, yytype, yyvaluep)
2686    FILE *yyoutput;
2687    int yytype;
2688    YYSTYPE const * const yyvaluep;
2689 #endif
2310   {
2311 <  if (yytype < YYNTOKENS)
2312 <    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2693 <  else
2694 <    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2311 >  YYFPRINTF (yyoutput, "%s %s (",
2312 >             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2313  
2314    yy_symbol_value_print (yyoutput, yytype, yyvaluep);
2315    YYFPRINTF (yyoutput, ")");
# Line 2702 | Line 2320 | yy_symbol_print (yyoutput, yytype, yyval
2320   | TOP (included).                                                   |
2321   `------------------------------------------------------------------*/
2322  
2705 #if (defined __STDC__ || defined __C99__FUNC__ \
2706     || defined __cplusplus || defined _MSC_VER)
2323   static void
2324   yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2709 #else
2710 static void
2711 yy_stack_print (yybottom, yytop)
2712    yytype_int16 *yybottom;
2713    yytype_int16 *yytop;
2714 #endif
2325   {
2326    YYFPRINTF (stderr, "Stack now");
2327    for (; yybottom <= yytop; yybottom++)
# Line 2722 | Line 2332 | yy_stack_print (yybottom, yytop)
2332    YYFPRINTF (stderr, "\n");
2333   }
2334  
2335 < # define YY_STACK_PRINT(Bottom, Top)                            \
2336 < do {                                                            \
2337 <  if (yydebug)                                                  \
2338 <    yy_stack_print ((Bottom), (Top));                           \
2339 < } while (YYID (0))
2335 > # define YY_STACK_PRINT(Bottom, Top)                            \
2336 > do {                                                            \
2337 >  if (yydebug)                                                  \
2338 >    yy_stack_print ((Bottom), (Top));                           \
2339 > } while (0)
2340  
2341  
2342   /*------------------------------------------------.
2343   | Report that the YYRULE is going to be reduced.  |
2344   `------------------------------------------------*/
2345  
2736 #if (defined __STDC__ || defined __C99__FUNC__ \
2737     || defined __cplusplus || defined _MSC_VER)
2738 static void
2739 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
2740 #else
2346   static void
2347 < yy_reduce_print (yyvsp, yyrule)
2743 <    YYSTYPE *yyvsp;
2744 <    int yyrule;
2745 < #endif
2347 > yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
2348   {
2349 +  unsigned long int yylno = yyrline[yyrule];
2350    int yynrhs = yyr2[yyrule];
2351    int yyi;
2749  unsigned long int yylno = yyrline[yyrule];
2352    YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2353 <             yyrule - 1, yylno);
2353 >             yyrule - 1, yylno);
2354    /* The symbols being reduced.  */
2355    for (yyi = 0; yyi < yynrhs; yyi++)
2356      {
2357        YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2358 <      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
2359 <                       &(yyvsp[(yyi + 1) - (yynrhs)])
2360 <                                       );
2358 >      yy_symbol_print (stderr,
2359 >                       yystos[yyssp[yyi + 1 - yynrhs]],
2360 >                       &(yyvsp[(yyi + 1) - (yynrhs)])
2361 >                                              );
2362        YYFPRINTF (stderr, "\n");
2363      }
2364   }
2365  
2366 < # define YY_REDUCE_PRINT(Rule)          \
2367 < do {                                    \
2368 <  if (yydebug)                          \
2369 <    yy_reduce_print (yyvsp, Rule); \
2370 < } while (YYID (0))
2366 > # define YY_REDUCE_PRINT(Rule)          \
2367 > do {                                    \
2368 >  if (yydebug)                          \
2369 >    yy_reduce_print (yyssp, yyvsp, Rule); \
2370 > } while (0)
2371  
2372   /* Nonzero means print parse trace.  It is left uninitialized so that
2373     multiple parsers can coexist.  */
# Line 2778 | Line 2381 | int yydebug;
2381  
2382  
2383   /* YYINITDEPTH -- initial size of the parser's stacks.  */
2384 < #ifndef YYINITDEPTH
2384 > #ifndef YYINITDEPTH
2385   # define YYINITDEPTH 200
2386   #endif
2387  
# Line 2801 | Line 2404 | int yydebug;
2404   #   define yystrlen strlen
2405   #  else
2406   /* Return the length of YYSTR.  */
2804 #if (defined __STDC__ || defined __C99__FUNC__ \
2805     || defined __cplusplus || defined _MSC_VER)
2407   static YYSIZE_T
2408   yystrlen (const char *yystr)
2808 #else
2809 static YYSIZE_T
2810 yystrlen (yystr)
2811    const char *yystr;
2812 #endif
2409   {
2410    YYSIZE_T yylen;
2411    for (yylen = 0; yystr[yylen]; yylen++)
# Line 2825 | Line 2421 | yystrlen (yystr)
2421   #  else
2422   /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2423     YYDEST.  */
2828 #if (defined __STDC__ || defined __C99__FUNC__ \
2829     || defined __cplusplus || defined _MSC_VER)
2424   static char *
2425   yystpcpy (char *yydest, const char *yysrc)
2832 #else
2833 static char *
2834 yystpcpy (yydest, yysrc)
2835    char *yydest;
2836    const char *yysrc;
2837 #endif
2426   {
2427    char *yyd = yydest;
2428    const char *yys = yysrc;
# Line 2864 | Line 2452 | yytnamerr (char *yyres, const char *yyst
2452        char const *yyp = yystr;
2453  
2454        for (;;)
2455 <        switch (*++yyp)
2456 <          {
2457 <          case '\'':
2458 <          case ',':
2459 <            goto do_not_strip_quotes;
2460 <
2461 <          case '\\':
2462 <            if (*++yyp != '\\')
2463 <              goto do_not_strip_quotes;
2464 <            /* Fall through.  */
2465 <          default:
2466 <            if (yyres)
2467 <              yyres[yyn] = *yyp;
2468 <            yyn++;
2469 <            break;
2470 <
2471 <          case '"':
2472 <            if (yyres)
2473 <              yyres[yyn] = '\0';
2474 <            return yyn;
2475 <          }
2455 >        switch (*++yyp)
2456 >          {
2457 >          case '\'':
2458 >          case ',':
2459 >            goto do_not_strip_quotes;
2460 >
2461 >          case '\\':
2462 >            if (*++yyp != '\\')
2463 >              goto do_not_strip_quotes;
2464 >            /* Fall through.  */
2465 >          default:
2466 >            if (yyres)
2467 >              yyres[yyn] = *yyp;
2468 >            yyn++;
2469 >            break;
2470 >
2471 >          case '"':
2472 >            if (yyres)
2473 >              yyres[yyn] = '\0';
2474 >            return yyn;
2475 >          }
2476      do_not_strip_quotes: ;
2477      }
2478  
# Line 2907 | Line 2495 | static int
2495   yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2496                  yytype_int16 *yyssp, int yytoken)
2497   {
2498 <  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
2498 >  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
2499    YYSIZE_T yysize = yysize0;
2912  YYSIZE_T yysize1;
2500    enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2501    /* Internationalized format string. */
2502 <  const char *yyformat = 0;
2502 >  const char *yyformat = YY_NULLPTR;
2503    /* Arguments of yyformat. */
2504    char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2505    /* Number of reported tokens (one for the "unexpected", one per
# Line 2920 | Line 2507 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2507    int yycount = 0;
2508  
2509    /* There are many possibilities here to consider:
2923     - Assume YYFAIL is not used.  It's too flawed to consider.  See
2924       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
2925       for details.  YYERROR is fine as it does not invoke this
2926       function.
2510       - If this state is a consistent state with a default action, then
2511         the only way this function was invoked is if the default action
2512         is an error action.  In that case, don't check for expected
# Line 2972 | Line 2555 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2555                      break;
2556                    }
2557                  yyarg[yycount++] = yytname[yyx];
2558 <                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
2559 <                if (! (yysize <= yysize1
2560 <                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2561 <                  return 2;
2562 <                yysize = yysize1;
2558 >                {
2559 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2560 >                  if (! (yysize <= yysize1
2561 >                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2562 >                    return 2;
2563 >                  yysize = yysize1;
2564 >                }
2565                }
2566          }
2567      }
# Line 2996 | Line 2581 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2581   # undef YYCASE_
2582      }
2583  
2584 <  yysize1 = yysize + yystrlen (yyformat);
2585 <  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2586 <    return 2;
2587 <  yysize = yysize1;
2584 >  {
2585 >    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2586 >    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2587 >      return 2;
2588 >    yysize = yysize1;
2589 >  }
2590  
2591    if (*yymsg_alloc < yysize)
2592      {
# Line 3036 | Line 2623 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2623   | Release the memory associated to this symbol.  |
2624   `-----------------------------------------------*/
2625  
3039 /*ARGSUSED*/
3040 #if (defined __STDC__ || defined __C99__FUNC__ \
3041     || defined __cplusplus || defined _MSC_VER)
2626   static void
2627   yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
3044 #else
3045 static void
3046 yydestruct (yymsg, yytype, yyvaluep)
3047    const char *yymsg;
3048    int yytype;
3049    YYSTYPE *yyvaluep;
3050 #endif
2628   {
2629    YYUSE (yyvaluep);
3053
2630    if (!yymsg)
2631      yymsg = "Deleting";
2632    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2633  
2634 <  switch (yytype)
2635 <    {
2636 <
3061 <      default:
3062 <        break;
3063 <    }
2634 >  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2635 >  YYUSE (yytype);
2636 >  YY_IGNORE_MAYBE_UNINITIALIZED_END
2637   }
2638  
2639  
3067 /* Prevent warnings from -Wmissing-prototypes.  */
3068 #ifdef YYPARSE_PARAM
3069 #if defined __STDC__ || defined __cplusplus
3070 int yyparse (void *YYPARSE_PARAM);
3071 #else
3072 int yyparse ();
3073 #endif
3074 #else /* ! YYPARSE_PARAM */
3075 #if defined __STDC__ || defined __cplusplus
3076 int yyparse (void);
3077 #else
3078 int yyparse ();
3079 #endif
3080 #endif /* ! YYPARSE_PARAM */
2640  
2641  
2642   /* The lookahead symbol.  */
# Line 3085 | Line 2644 | int yychar;
2644  
2645   /* The semantic value of the lookahead symbol.  */
2646   YYSTYPE yylval;
3088
2647   /* Number of syntax errors so far.  */
2648   int yynerrs;
2649  
# Line 3094 | Line 2652 | int yynerrs;
2652   | yyparse.  |
2653   `----------*/
2654  
3097 #ifdef YYPARSE_PARAM
3098 #if (defined __STDC__ || defined __C99__FUNC__ \
3099     || defined __cplusplus || defined _MSC_VER)
3100 int
3101 yyparse (void *YYPARSE_PARAM)
3102 #else
3103 int
3104 yyparse (YYPARSE_PARAM)
3105    void *YYPARSE_PARAM;
3106 #endif
3107 #else /* ! YYPARSE_PARAM */
3108 #if (defined __STDC__ || defined __C99__FUNC__ \
3109     || defined __cplusplus || defined _MSC_VER)
2655   int
2656   yyparse (void)
3112 #else
3113 int
3114 yyparse ()
3115
3116 #endif
3117 #endif
2657   {
2658      int yystate;
2659      /* Number of tokens to shift before error messages enabled.  */
2660      int yyerrstatus;
2661  
2662      /* The stacks and their tools:
2663 <       `yyss': related to states.
2664 <       `yyvs': related to semantic values.
2663 >       'yyss': related to states.
2664 >       'yyvs': related to semantic values.
2665  
2666 <       Refer to the stacks thru separate pointers, to allow yyoverflow
2666 >       Refer to the stacks through separate pointers, to allow yyoverflow
2667         to reallocate them elsewhere.  */
2668  
2669      /* The state stack.  */
# Line 3142 | Line 2681 | yyparse ()
2681    int yyn;
2682    int yyresult;
2683    /* Lookahead token as an internal (translated) token number.  */
2684 <  int yytoken;
2684 >  int yytoken = 0;
2685    /* The variables used to return semantic value and location from the
2686       action routines.  */
2687    YYSTYPE yyval;
# Line 3160 | Line 2699 | yyparse ()
2699       Keep to zero when no symbol should be popped.  */
2700    int yylen = 0;
2701  
2702 <  yytoken = 0;
2703 <  yyss = yyssa;
3165 <  yyvs = yyvsa;
2702 >  yyssp = yyss = yyssa;
2703 >  yyvsp = yyvs = yyvsa;
2704    yystacksize = YYINITDEPTH;
2705  
2706    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 3171 | Line 2709 | yyparse ()
2709    yyerrstatus = 0;
2710    yynerrs = 0;
2711    yychar = YYEMPTY; /* Cause a token to be read.  */
3174
3175  /* Initialize stack pointers.
3176     Waste one element of value and location stack
3177     so that they stay on the same level as the state stack.
3178     The wasted elements are never initialized.  */
3179  yyssp = yyss;
3180  yyvsp = yyvs;
3181
2712    goto yysetstate;
2713  
2714   /*------------------------------------------------------------.
# Line 3199 | Line 2729 | yyparse ()
2729  
2730   #ifdef yyoverflow
2731        {
2732 <        /* Give user a chance to reallocate the stack.  Use copies of
2733 <           these so that the &'s don't force the real ones into
2734 <           memory.  */
2735 <        YYSTYPE *yyvs1 = yyvs;
2736 <        yytype_int16 *yyss1 = yyss;
2737 <
2738 <        /* Each stack pointer address is followed by the size of the
2739 <           data in use in that stack, in bytes.  This used to be a
2740 <           conditional around just the two extra args, but that might
2741 <           be undefined if yyoverflow is a macro.  */
2742 <        yyoverflow (YY_("memory exhausted"),
2743 <                    &yyss1, yysize * sizeof (*yyssp),
2744 <                    &yyvs1, yysize * sizeof (*yyvsp),
2745 <                    &yystacksize);
2732 >        /* Give user a chance to reallocate the stack.  Use copies of
2733 >           these so that the &'s don't force the real ones into
2734 >           memory.  */
2735 >        YYSTYPE *yyvs1 = yyvs;
2736 >        yytype_int16 *yyss1 = yyss;
2737 >
2738 >        /* Each stack pointer address is followed by the size of the
2739 >           data in use in that stack, in bytes.  This used to be a
2740 >           conditional around just the two extra args, but that might
2741 >           be undefined if yyoverflow is a macro.  */
2742 >        yyoverflow (YY_("memory exhausted"),
2743 >                    &yyss1, yysize * sizeof (*yyssp),
2744 >                    &yyvs1, yysize * sizeof (*yyvsp),
2745 >                    &yystacksize);
2746  
2747 <        yyss = yyss1;
2748 <        yyvs = yyvs1;
2747 >        yyss = yyss1;
2748 >        yyvs = yyvs1;
2749        }
2750   #else /* no yyoverflow */
2751   # ifndef YYSTACK_RELOCATE
# Line 3223 | Line 2753 | yyparse ()
2753   # else
2754        /* Extend the stack our own way.  */
2755        if (YYMAXDEPTH <= yystacksize)
2756 <        goto yyexhaustedlab;
2756 >        goto yyexhaustedlab;
2757        yystacksize *= 2;
2758        if (YYMAXDEPTH < yystacksize)
2759 <        yystacksize = YYMAXDEPTH;
2759 >        yystacksize = YYMAXDEPTH;
2760  
2761        {
2762 <        yytype_int16 *yyss1 = yyss;
2763 <        union yyalloc *yyptr =
2764 <          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2765 <        if (! yyptr)
2766 <          goto yyexhaustedlab;
2767 <        YYSTACK_RELOCATE (yyss_alloc, yyss);
2768 <        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2762 >        yytype_int16 *yyss1 = yyss;
2763 >        union yyalloc *yyptr =
2764 >          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2765 >        if (! yyptr)
2766 >          goto yyexhaustedlab;
2767 >        YYSTACK_RELOCATE (yyss_alloc, yyss);
2768 >        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2769   #  undef YYSTACK_RELOCATE
2770 <        if (yyss1 != yyssa)
2771 <          YYSTACK_FREE (yyss1);
2770 >        if (yyss1 != yyssa)
2771 >          YYSTACK_FREE (yyss1);
2772        }
2773   # endif
2774   #endif /* no yyoverflow */
# Line 3247 | Line 2777 | yyparse ()
2777        yyvsp = yyvs + yysize - 1;
2778  
2779        YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2780 <                  (unsigned long int) yystacksize));
2780 >                  (unsigned long int) yystacksize));
2781  
2782        if (yyss + yystacksize - 1 <= yyssp)
2783 <        YYABORT;
2783 >        YYABORT;
2784      }
2785  
2786    YYDPRINTF ((stderr, "Entering state %d\n", yystate));
# Line 3279 | Line 2809 | yybackup:
2809    if (yychar == YYEMPTY)
2810      {
2811        YYDPRINTF ((stderr, "Reading a token: "));
2812 <      yychar = YYLEX;
2812 >      yychar = yylex ();
2813      }
2814  
2815    if (yychar <= YYEOF)
# Line 3319 | Line 2849 | yybackup:
2849    yychar = YYEMPTY;
2850  
2851    yystate = yyn;
2852 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2853    *++yyvsp = yylval;
2854 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
2855  
2856    goto yynewstate;
2857  
# Line 3342 | Line 2874 | yyreduce:
2874    yylen = yyr2[yyn];
2875  
2876    /* If YYLEN is nonzero, implement the default value of the action:
2877 <     `$$ = $1'.
2877 >     '$$ = $1'.
2878  
2879       Otherwise, the following line sets YYVAL to garbage.
2880       This behavior is undocumented and Bison
# Line 3355 | Line 2887 | yyreduce:
2887    YY_REDUCE_PRINT (yyn);
2888    switch (yyn)
2889      {
2890 <        case 26:
2891 <
3360 < /* Line 1806 of yacc.c  */
3361 < #line 423 "ircd_parser.y"
2890 >        case 28:
2891 > #line 410 "conf_parser.y" /* yacc.c:1646  */
2892      { (yyval.number) = 0; }
2893 <    break;
3364 <
3365 <  case 28:
3366 <
3367 < /* Line 1806 of yacc.c  */
3368 < #line 425 "ircd_parser.y"
3369 <    {
3370 <                        (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3371 <                }
3372 <    break;
3373 <
3374 <  case 29:
3375 <
3376 < /* Line 1806 of yacc.c  */
3377 < #line 429 "ircd_parser.y"
3378 <    {
3379 <                        (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3380 <                }
2893 > #line 2894 "conf_parser.c" /* yacc.c:1646  */
2894      break;
2895  
2896    case 30:
2897 <
2898 < /* Line 1806 of yacc.c  */
2899 < #line 433 "ircd_parser.y"
3387 <    {
3388 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3389 <                }
2897 > #line 411 "conf_parser.y" /* yacc.c:1646  */
2898 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2899 > #line 2900 "conf_parser.c" /* yacc.c:1646  */
2900      break;
2901  
2902    case 31:
2903 <
2904 < /* Line 1806 of yacc.c  */
2905 < #line 437 "ircd_parser.y"
3396 <    {
3397 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3398 <                }
2903 > #line 412 "conf_parser.y" /* yacc.c:1646  */
2904 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2905 > #line 2906 "conf_parser.c" /* yacc.c:1646  */
2906      break;
2907  
2908    case 32:
2909 <
2910 < /* Line 1806 of yacc.c  */
2911 < #line 441 "ircd_parser.y"
3405 <    {
3406 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3407 <                }
2909 > #line 413 "conf_parser.y" /* yacc.c:1646  */
2910 >    { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); }
2911 > #line 2912 "conf_parser.c" /* yacc.c:1646  */
2912      break;
2913  
2914    case 33:
2915 <
2916 < /* Line 1806 of yacc.c  */
2917 < #line 445 "ircd_parser.y"
3414 <    {
3415 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3416 <                }
2915 > #line 414 "conf_parser.y" /* yacc.c:1646  */
2916 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); }
2917 > #line 2918 "conf_parser.c" /* yacc.c:1646  */
2918      break;
2919  
2920    case 34:
2921 + #line 415 "conf_parser.y" /* yacc.c:1646  */
2922 +    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); }
2923 + #line 2924 "conf_parser.c" /* yacc.c:1646  */
2924 +    break;
2925  
2926 < /* Line 1806 of yacc.c  */
2927 < #line 450 "ircd_parser.y"
2928 <    { (yyval.number) = 0; }
2926 >  case 35:
2927 > #line 416 "conf_parser.y" /* yacc.c:1646  */
2928 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); }
2929 > #line 2930 "conf_parser.c" /* yacc.c:1646  */
2930      break;
2931  
2932    case 36:
2933 <
2934 < /* Line 1806 of yacc.c  */
2935 < #line 451 "ircd_parser.y"
3430 <    { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
2933 > #line 417 "conf_parser.y" /* yacc.c:1646  */
2934 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); }
2935 > #line 2936 "conf_parser.c" /* yacc.c:1646  */
2936      break;
2937  
2938    case 37:
2939 <
2940 < /* Line 1806 of yacc.c  */
2941 < #line 452 "ircd_parser.y"
3437 <    { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
2939 > #line 418 "conf_parser.y" /* yacc.c:1646  */
2940 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); }
2941 > #line 2942 "conf_parser.c" /* yacc.c:1646  */
2942      break;
2943  
2944    case 38:
2945 + #line 421 "conf_parser.y" /* yacc.c:1646  */
2946 +    { (yyval.number) = 0; }
2947 + #line 2948 "conf_parser.c" /* yacc.c:1646  */
2948 +    break;
2949  
2950 < /* Line 1806 of yacc.c  */
2951 < #line 453 "ircd_parser.y"
2952 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
2950 >  case 40:
2951 > #line 422 "conf_parser.y" /* yacc.c:1646  */
2952 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2953 > #line 2954 "conf_parser.c" /* yacc.c:1646  */
2954      break;
2955  
2956 <  case 39:
2956 >  case 41:
2957 > #line 423 "conf_parser.y" /* yacc.c:1646  */
2958 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2959 > #line 2960 "conf_parser.c" /* yacc.c:1646  */
2960 >    break;
2961  
2962 < /* Line 1806 of yacc.c  */
2963 < #line 454 "ircd_parser.y"
2964 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
2962 >  case 42:
2963 > #line 424 "conf_parser.y" /* yacc.c:1646  */
2964 >    { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); }
2965 > #line 2966 "conf_parser.c" /* yacc.c:1646  */
2966      break;
2967  
2968 <  case 46:
2968 >  case 43:
2969 > #line 425 "conf_parser.y" /* yacc.c:1646  */
2970 >    { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); }
2971 > #line 2972 "conf_parser.c" /* yacc.c:1646  */
2972 >    break;
2973  
2974 < /* Line 1806 of yacc.c  */
2975 < #line 468 "ircd_parser.y"
2974 >  case 50:
2975 > #line 438 "conf_parser.y" /* yacc.c:1646  */
2976      {
2977    if (conf_parser_ctx.pass == 2)
2978      add_conf_module(libio_basename(yylval.string));
2979   }
2980 + #line 2981 "conf_parser.c" /* yacc.c:1646  */
2981      break;
2982  
2983 <  case 47:
2984 <
3466 < /* Line 1806 of yacc.c  */
3467 < #line 474 "ircd_parser.y"
2983 >  case 51:
2984 > #line 444 "conf_parser.y" /* yacc.c:1646  */
2985      {
2986    if (conf_parser_ctx.pass == 2)
2987      mod_add_path(yylval.string);
2988   }
2989 + #line 2990 "conf_parser.c" /* yacc.c:1646  */
2990      break;
2991  
2992 <  case 64:
2993 <
3476 < /* Line 1806 of yacc.c  */
3477 < #line 494 "ircd_parser.y"
2992 >  case 76:
2993 > #line 480 "conf_parser.y" /* yacc.c:1646  */
2994      {
2995 < #ifdef HAVE_LIBCRYPTO
2996 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
2997 <    ServerInfo.tls_version = 0;
2998 < #endif
2995 >  if (conf_parser_ctx.pass == 2)
2996 >  {
2997 >    xfree(ConfigServerInfo.ssl_certificate_file);
2998 >    ConfigServerInfo.ssl_certificate_file = xstrdup(yylval.string);
2999 >  }
3000   }
3001 + #line 3002 "conf_parser.c" /* yacc.c:1646  */
3002      break;
3003  
3004 <  case 65:
3005 <
3488 < /* Line 1806 of yacc.c  */
3489 < #line 500 "ircd_parser.y"
3004 >  case 77:
3005 > #line 489 "conf_parser.y" /* yacc.c:1646  */
3006      {
3007 < #ifdef HAVE_LIBCRYPTO
3492 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3007 >  if (conf_parser_ctx.pass == 2)
3008    {
3009 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_SSLV3))
3010 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3496 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_TLSV1))
3497 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3009 >    xfree(ConfigServerInfo.rsa_private_key_file);
3010 >    ConfigServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3011    }
3499 #endif
3012   }
3013 + #line 3014 "conf_parser.c" /* yacc.c:1646  */
3014      break;
3015  
3016 <  case 68:
3017 <
3505 < /* Line 1806 of yacc.c  */
3506 < #line 514 "ircd_parser.y"
3016 >  case 78:
3017 > #line 498 "conf_parser.y" /* yacc.c:1646  */
3018      {
3019 < #ifdef HAVE_LIBCRYPTO
3020 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3021 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_SSLV3;
3022 < #endif
3019 >  if (conf_parser_ctx.pass == 2)
3020 >  {
3021 >    xfree(ConfigServerInfo.ssl_dh_param_file);
3022 >    ConfigServerInfo.ssl_dh_param_file = xstrdup(yylval.string);
3023 >  }
3024   }
3025 + #line 3026 "conf_parser.c" /* yacc.c:1646  */
3026      break;
3027  
3028 <  case 69:
3029 <
3517 < /* Line 1806 of yacc.c  */
3518 < #line 520 "ircd_parser.y"
3028 >  case 79:
3029 > #line 507 "conf_parser.y" /* yacc.c:1646  */
3030      {
3031 < #ifdef HAVE_LIBCRYPTO
3032 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3033 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_TLSV1;
3034 < #endif
3031 >  if (conf_parser_ctx.pass == 2)
3032 >  {
3033 >    xfree(ConfigServerInfo.ssl_cipher_list);
3034 >    ConfigServerInfo.ssl_cipher_list = xstrdup(yylval.string);
3035 >  }
3036   }
3037 + #line 3038 "conf_parser.c" /* yacc.c:1646  */
3038      break;
3039  
3040 <  case 70:
3041 <
3529 < /* Line 1806 of yacc.c  */
3530 < #line 528 "ircd_parser.y"
3040 >  case 80:
3041 > #line 516 "conf_parser.y" /* yacc.c:1646  */
3042      {
3043 < #ifdef HAVE_LIBCRYPTO
3533 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3043 >  if (conf_parser_ctx.pass == 2)
3044    {
3045 <    if (!ServerInfo.rsa_private_key_file)
3046 <    {
3047 <      yyerror("No rsa_private_key_file specified, SSL disabled");
3048 <      break;
3049 <    }
3050 <
3541 <    if (SSL_CTX_use_certificate_file(ServerInfo.server_ctx, yylval.string,
3542 <                                     SSL_FILETYPE_PEM) <= 0)
3543 <    {
3544 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3545 <      break;
3546 <    }
3547 <
3548 <    if (SSL_CTX_use_PrivateKey_file(ServerInfo.server_ctx, ServerInfo.rsa_private_key_file,
3549 <                                    SSL_FILETYPE_PEM) <= 0)
3550 <    {
3551 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3552 <      break;
3553 <    }
3045 >    xfree(ConfigServerInfo.ssl_message_digest_algorithm);
3046 >    ConfigServerInfo.ssl_message_digest_algorithm = xstrdup(yylval.string);
3047 >  }
3048 > }
3049 > #line 3050 "conf_parser.c" /* yacc.c:1646  */
3050 >    break;
3051  
3052 <    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx))
3052 >  case 81:
3053 > #line 525 "conf_parser.y" /* yacc.c:1646  */
3054      {
3055 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3056 <      break;
3057 <    }
3055 >  if (conf_parser_ctx.pass == 2)
3056 >  {
3057 >    xfree(ConfigServerInfo.ssl_dh_elliptic_curve);
3058 >    ConfigServerInfo.ssl_dh_elliptic_curve = xstrdup(yylval.string);
3059    }
3561 #endif
3060   }
3061 + #line 3062 "conf_parser.c" /* yacc.c:1646  */
3062      break;
3063  
3064 <  case 71:
3065 <
3567 < /* Line 1806 of yacc.c  */
3568 < #line 562 "ircd_parser.y"
3064 >  case 82:
3065 > #line 534 "conf_parser.y" /* yacc.c:1646  */
3066      {
3570 #ifdef HAVE_LIBCRYPTO
3067    if (conf_parser_ctx.pass == 1)
3068 <  {
3069 <    BIO *file;
3068 >    ConfigServerInfo.libgeoip_database_options = 0;
3069 > }
3070 > #line 3071 "conf_parser.c" /* yacc.c:1646  */
3071 >    break;
3072  
3073 <    if (ServerInfo.rsa_private_key)
3073 >  case 86:
3074 > #line 541 "conf_parser.y" /* yacc.c:1646  */
3075      {
3076 <      RSA_free(ServerInfo.rsa_private_key);
3077 <      ServerInfo.rsa_private_key = NULL;
3078 <    }
3076 > #ifdef HAVE_LIBGEOIP
3077 >  if (conf_parser_ctx.pass == 1)
3078 >    ConfigServerInfo.libgeoip_database_options |= GEOIP_STANDARD;
3079 > #endif
3080 > }
3081 > #line 3082 "conf_parser.c" /* yacc.c:1646  */
3082 >    break;
3083  
3084 <    if (ServerInfo.rsa_private_key_file)
3084 >  case 87:
3085 > #line 547 "conf_parser.y" /* yacc.c:1646  */
3086      {
3087 <      MyFree(ServerInfo.rsa_private_key_file);
3088 <      ServerInfo.rsa_private_key_file = NULL;
3089 <    }
3090 <
3091 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3087 > #ifdef HAVE_LIBGEOIP
3088 >  if (conf_parser_ctx.pass == 1)
3089 >    ConfigServerInfo.libgeoip_database_options |= GEOIP_MEMORY_CACHE;
3090 > #endif
3091 > }
3092 > #line 3093 "conf_parser.c" /* yacc.c:1646  */
3093 >    break;
3094  
3095 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3095 >  case 88:
3096 > #line 553 "conf_parser.y" /* yacc.c:1646  */
3097      {
3098 <      yyerror("File open failed, ignoring");
3099 <      break;
3100 <    }
3101 <
3102 <    ServerInfo.rsa_private_key = (RSA *)PEM_read_bio_RSAPrivateKey(file, NULL,
3103 <      0, NULL);
3104 <
3598 <    BIO_set_close(file, BIO_CLOSE);
3599 <    BIO_free(file);
3098 > #ifdef HAVE_LIBGEOIP
3099 >  if (conf_parser_ctx.pass == 1)
3100 >    ConfigServerInfo.libgeoip_database_options |= GEOIP_MMAP_CACHE;
3101 > #endif
3102 > }
3103 > #line 3104 "conf_parser.c" /* yacc.c:1646  */
3104 >    break;
3105  
3106 <    if (ServerInfo.rsa_private_key == NULL)
3106 >  case 89:
3107 > #line 559 "conf_parser.y" /* yacc.c:1646  */
3108      {
3109 <      yyerror("Couldn't extract key, ignoring");
3110 <      break;
3111 <    }
3109 > #ifdef HAVE_LIBGEOIP
3110 >  if (conf_parser_ctx.pass == 1)
3111 >    ConfigServerInfo.libgeoip_database_options |= GEOIP_CHECK_CACHE;
3112 > #endif
3113 > }
3114 > #line 3115 "conf_parser.c" /* yacc.c:1646  */
3115 >    break;
3116  
3117 <    if (!RSA_check_key(ServerInfo.rsa_private_key))
3117 >  case 90:
3118 > #line 567 "conf_parser.y" /* yacc.c:1646  */
3119      {
3120 <      RSA_free(ServerInfo.rsa_private_key);
3121 <      ServerInfo.rsa_private_key = NULL;
3120 >  if (conf_parser_ctx.pass == 2)
3121 >  {
3122 >    xfree(ConfigServerInfo.libgeoip_ipv4_database_file);
3123 >    ConfigServerInfo.libgeoip_ipv4_database_file = xstrdup(yylval.string);
3124  
3125 <      yyerror("Invalid key, ignoring");
3126 <      break;
3127 <    }
3125 > #ifdef HAVE_LIBGEOIP
3126 >    if (GeoIPv4_ctx)
3127 >      GeoIP_delete(GeoIPv4_ctx);
3128 >    GeoIPv4_ctx = GeoIP_open(yylval.string, ConfigServerInfo.libgeoip_database_options);
3129 > #endif
3130 >  }
3131 > }
3132 > #line 3133 "conf_parser.c" /* yacc.c:1646  */
3133 >    break;
3134  
3135 <    /* require 2048 bit (256 byte) key */
3136 <    if (RSA_size(ServerInfo.rsa_private_key) != 256)
3135 >  case 91:
3136 > #line 582 "conf_parser.y" /* yacc.c:1646  */
3137      {
3138 <      RSA_free(ServerInfo.rsa_private_key);
3139 <      ServerInfo.rsa_private_key = NULL;
3138 >  if (conf_parser_ctx.pass == 2)
3139 >  {
3140 >    xfree(ConfigServerInfo.libgeoip_ipv6_database_file);
3141 >    ConfigServerInfo.libgeoip_ipv6_database_file = xstrdup(yylval.string);
3142  
3143 <      yyerror("Not a 2048 bit key, ignoring");
3144 <    }
3145 <  }
3143 > #ifdef HAVE_LIBGEOIP
3144 >    if (GeoIPv6_ctx)
3145 >      GeoIP_delete(GeoIPv6_ctx);
3146 >    GeoIPv6_ctx = GeoIP_open(yylval.string, ConfigServerInfo.libgeoip_database_options);
3147   #endif
3148 +  }
3149   }
3150 + #line 3151 "conf_parser.c" /* yacc.c:1646  */
3151      break;
3152  
3153 <  case 72:
3154 <
3631 < /* Line 1806 of yacc.c  */
3632 < #line 622 "ircd_parser.y"
3153 >  case 92:
3154 > #line 597 "conf_parser.y" /* yacc.c:1646  */
3155      {
3156 <  /* this isn't rehashable */
3157 <  if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3156 >  /* This isn't rehashable */
3157 >  if (conf_parser_ctx.pass == 2 && !ConfigServerInfo.name)
3158    {
3159      if (valid_servname(yylval.string))
3160 <      DupString(ServerInfo.name, yylval.string);
3160 >      ConfigServerInfo.name = xstrdup(yylval.string);
3161      else
3162      {
3163 <      ilog(L_ERROR, "Ignoring serverinfo::name -- invalid name. Aborting.");
3164 <      exit(0);
3163 >      conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3164 >      exit(EXIT_FAILURE);
3165      }
3166    }
3167   }
3168 + #line 3169 "conf_parser.c" /* yacc.c:1646  */
3169      break;
3170  
3171 <  case 73:
3172 <
3650 < /* Line 1806 of yacc.c  */
3651 < #line 637 "ircd_parser.y"
3171 >  case 93:
3172 > #line 612 "conf_parser.y" /* yacc.c:1646  */
3173      {
3174 <  /* this isn't rehashable */
3175 <  if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3174 >  /* This isn't rehashable */
3175 >  if (conf_parser_ctx.pass == 2 && !ConfigServerInfo.sid)
3176    {
3177      if (valid_sid(yylval.string))
3178 <      DupString(ServerInfo.sid, yylval.string);
3178 >      ConfigServerInfo.sid = xstrdup(yylval.string);
3179      else
3180      {
3181 <      ilog(L_ERROR, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
3182 <      exit(0);
3181 >      conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3182 >      exit(EXIT_FAILURE);
3183      }
3184    }
3185   }
3186 + #line 3187 "conf_parser.c" /* yacc.c:1646  */
3187      break;
3188  
3189 <  case 74:
3190 <
3669 < /* Line 1806 of yacc.c  */
3670 < #line 652 "ircd_parser.y"
3189 >  case 94:
3190 > #line 627 "conf_parser.y" /* yacc.c:1646  */
3191      {
3192    if (conf_parser_ctx.pass == 2)
3193    {
3194 <    MyFree(ServerInfo.description);
3195 <    DupString(ServerInfo.description,yylval.string);
3194 >    xfree(ConfigServerInfo.description);
3195 >    ConfigServerInfo.description = xstrdup(yylval.string);
3196 >    strlcpy(me.info, ConfigServerInfo.description, sizeof(me.info));
3197    }
3198   }
3199 + #line 3200 "conf_parser.c" /* yacc.c:1646  */
3200      break;
3201  
3202 <  case 75:
3203 <
3682 < /* Line 1806 of yacc.c  */
3683 < #line 661 "ircd_parser.y"
3202 >  case 95:
3203 > #line 637 "conf_parser.y" /* yacc.c:1646  */
3204      {
3205    if (conf_parser_ctx.pass == 2)
3206    {
3207      char *p;
3208  
3209 <    if ((p = strchr(yylval.string, ' ')) != NULL)
3210 <      p = '\0';
3209 >    if ((p = strchr(yylval.string, ' ')))
3210 >      *p = '\0';
3211  
3212 <    MyFree(ServerInfo.network_name);
3213 <    DupString(ServerInfo.network_name, yylval.string);
3212 >    xfree(ConfigServerInfo.network_name);
3213 >    ConfigServerInfo.network_name = xstrdup(yylval.string);
3214    }
3215   }
3216 + #line 3217 "conf_parser.c" /* yacc.c:1646  */
3217      break;
3218  
3219 <  case 76:
3220 <
3700 < /* Line 1806 of yacc.c  */
3701 < #line 675 "ircd_parser.y"
3219 >  case 96:
3220 > #line 651 "conf_parser.y" /* yacc.c:1646  */
3221      {
3222 <  if (conf_parser_ctx.pass == 2)
3704 <  {
3705 <    MyFree(ServerInfo.network_desc);
3706 <    DupString(ServerInfo.network_desc, yylval.string);
3707 <  }
3708 < }
3222 >  if (conf_parser_ctx.pass != 2)
3223      break;
3224  
3225 <  case 77:
3225 >  xfree(ConfigServerInfo.network_desc);
3226 >  ConfigServerInfo.network_desc = xstrdup(yylval.string);
3227 > }
3228 > #line 3229 "conf_parser.c" /* yacc.c:1646  */
3229 >    break;
3230  
3231 < /* Line 1806 of yacc.c  */
3232 < #line 684 "ircd_parser.y"
3231 >  case 97:
3232 > #line 660 "conf_parser.y" /* yacc.c:1646  */
3233      {
3234    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3235    {
# Line 3724 | Line 3242 | yyreduce:
3242      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3243  
3244      if (getaddrinfo(yylval.string, NULL, &hints, &res))
3245 <      ilog(L_ERROR, "Invalid netmask for server vhost(%s)", yylval.string);
3245 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3246      else
3247      {
3248 <      assert(res != NULL);
3248 >      assert(res);
3249  
3250 <      memcpy(&ServerInfo.ip, res->ai_addr, res->ai_addrlen);
3251 <      ServerInfo.ip.ss.ss_family = res->ai_family;
3252 <      ServerInfo.ip.ss_len = res->ai_addrlen;
3250 >      memcpy(&ConfigServerInfo.ip, res->ai_addr, res->ai_addrlen);
3251 >      ConfigServerInfo.ip.ss.ss_family = res->ai_family;
3252 >      ConfigServerInfo.ip.ss_len = res->ai_addrlen;
3253        freeaddrinfo(res);
3254  
3255 <      ServerInfo.specific_ipv4_vhost = 1;
3255 >      ConfigServerInfo.specific_ipv4_vhost = 1;
3256      }
3257    }
3258   }
3259 + #line 3260 "conf_parser.c" /* yacc.c:1646  */
3260      break;
3261  
3262 <  case 78:
3263 <
3745 < /* Line 1806 of yacc.c  */
3746 < #line 712 "ircd_parser.y"
3262 >  case 98:
3263 > #line 688 "conf_parser.y" /* yacc.c:1646  */
3264      {
3748 #ifdef IPV6
3265    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3266    {
3267      struct addrinfo hints, *res;
# Line 3757 | Line 3273 | yyreduce:
3273      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3274  
3275      if (getaddrinfo(yylval.string, NULL, &hints, &res))
3276 <      ilog(L_ERROR, "Invalid netmask for server vhost6(%s)", yylval.string);
3276 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3277      else
3278      {
3279 <      assert(res != NULL);
3279 >      assert(res);
3280  
3281 <      memcpy(&ServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3282 <      ServerInfo.ip6.ss.ss_family = res->ai_family;
3283 <      ServerInfo.ip6.ss_len = res->ai_addrlen;
3281 >      memcpy(&ConfigServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3282 >      ConfigServerInfo.ip6.ss.ss_family = res->ai_family;
3283 >      ConfigServerInfo.ip6.ss_len = res->ai_addrlen;
3284        freeaddrinfo(res);
3285  
3286 <      ServerInfo.specific_ipv6_vhost = 1;
3286 >      ConfigServerInfo.specific_ipv6_vhost = 1;
3287      }
3288    }
3773 #endif
3289   }
3290 + #line 3291 "conf_parser.c" /* yacc.c:1646  */
3291      break;
3292  
3293 <  case 79:
3294 <
3779 < /* Line 1806 of yacc.c  */
3780 < #line 742 "ircd_parser.y"
3293 >  case 99:
3294 > #line 716 "conf_parser.y" /* yacc.c:1646  */
3295      {
3296 <  if (conf_parser_ctx.pass == 2)
3296 >  if (conf_parser_ctx.pass != 2)
3297 >    break;
3298 >
3299 >  if ((yyvsp[-1].number) < MAXCLIENTS_MIN)
3300    {
3301 <    recalc_fdlimit(NULL);
3301 >    char buf[IRCD_BUFSIZE] = "";
3302  
3303 <    if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3304 <    {
3305 <      char buf[IRCD_BUFSIZE];
3789 <      ircsprintf(buf, "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3790 <      yyerror(buf);
3791 <    }
3792 <    else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3793 <    {
3794 <      char buf[IRCD_BUFSIZE];
3795 <      ircsprintf(buf, "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3796 <      yyerror(buf);
3797 <    }
3798 <    else
3799 <      ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3303 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3304 >    conf_error_report(buf);
3305 >    ConfigServerInfo.default_max_clients = MAXCLIENTS_MIN;
3306    }
3307 < }
3308 <    break;
3309 <
3804 <  case 80:
3307 >  else if ((yyvsp[-1].number) > MAXCLIENTS_MAX)
3308 >  {
3309 >    char buf[IRCD_BUFSIZE] = "";
3310  
3311 < /* Line 1806 of yacc.c  */
3312 < #line 765 "ircd_parser.y"
3313 <    {
3314 <  if (conf_parser_ctx.pass == 2)
3315 <    ServerInfo.hub = yylval.number;
3311 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3312 >    conf_error_report(buf);
3313 >    ConfigServerInfo.default_max_clients = MAXCLIENTS_MAX;
3314 >  }
3315 >  else
3316 >    ConfigServerInfo.default_max_clients = (yyvsp[-1].number);
3317   }
3318 + #line 3319 "conf_parser.c" /* yacc.c:1646  */
3319      break;
3320  
3321 <  case 88:
3322 <
3816 < /* Line 1806 of yacc.c  */
3817 < #line 780 "ircd_parser.y"
3321 >  case 100:
3322 > #line 741 "conf_parser.y" /* yacc.c:1646  */
3323      {
3324 <  if (conf_parser_ctx.pass == 2)
3820 <  {
3821 <    MyFree(AdminInfo.name);
3822 <    DupString(AdminInfo.name, yylval.string);
3823 <  }
3824 < }
3324 >  if (conf_parser_ctx.pass != 2)
3325      break;
3326  
3327 <  case 89:
3828 <
3829 < /* Line 1806 of yacc.c  */
3830 < #line 789 "ircd_parser.y"
3831 <    {
3832 <  if (conf_parser_ctx.pass == 2)
3327 >  if ((yyvsp[-1].number) < 9)
3328    {
3329 <    MyFree(AdminInfo.email);
3330 <    DupString(AdminInfo.email, yylval.string);
3329 >    conf_error_report("max_nick_length too low, setting to 9");
3330 >    ConfigServerInfo.max_nick_length = 9;
3331    }
3332 < }
3838 <    break;
3839 <
3840 <  case 90:
3841 <
3842 < /* Line 1806 of yacc.c  */
3843 < #line 798 "ircd_parser.y"
3844 <    {
3845 <  if (conf_parser_ctx.pass == 2)
3332 >  else if ((yyvsp[-1].number) > NICKLEN)
3333    {
3334 <    MyFree(AdminInfo.description);
3335 <    DupString(AdminInfo.description, yylval.string);
3334 >    char buf[IRCD_BUFSIZE] = "";
3335 >
3336 >    snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3337 >    conf_error_report(buf);
3338 >    ConfigServerInfo.max_nick_length = NICKLEN;
3339    }
3340 +  else
3341 +    ConfigServerInfo.max_nick_length = (yyvsp[-1].number);
3342   }
3343 + #line 3344 "conf_parser.c" /* yacc.c:1646  */
3344      break;
3345  
3346 <  case 107:
3347 <
3855 < /* Line 1806 of yacc.c  */
3856 < #line 825 "ircd_parser.y"
3346 >  case 101:
3347 > #line 763 "conf_parser.y" /* yacc.c:1646  */
3348      {
3349 <                        }
3349 >  if (conf_parser_ctx.pass != 2)
3350      break;
3351  
3352 <  case 108:
3352 >  if ((yyvsp[-1].number) < 80)
3353 >  {
3354 >    conf_error_report("max_topic_length too low, setting to 80");
3355 >    ConfigServerInfo.max_topic_length = 80;
3356 >  }
3357 >  else if ((yyvsp[-1].number) > TOPICLEN)
3358 >  {
3359 >    char buf[IRCD_BUFSIZE] = "";
3360  
3361 < /* Line 1806 of yacc.c  */
3362 < #line 829 "ircd_parser.y"
3363 <    {
3364 <                        }
3361 >    snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3362 >    conf_error_report(buf);
3363 >    ConfigServerInfo.max_topic_length = TOPICLEN;
3364 >  }
3365 >  else
3366 >    ConfigServerInfo.max_topic_length = (yyvsp[-1].number);
3367 > }
3368 > #line 3369 "conf_parser.c" /* yacc.c:1646  */
3369      break;
3370  
3371 <  case 109:
3372 <
3871 < /* Line 1806 of yacc.c  */
3872 < #line 833 "ircd_parser.y"
3371 >  case 102:
3372 > #line 785 "conf_parser.y" /* yacc.c:1646  */
3373      {
3374    if (conf_parser_ctx.pass == 2)
3375 <    strlcpy(ConfigLoggingEntry.userlog, yylval.string,
3876 <            sizeof(ConfigLoggingEntry.userlog));
3375 >    ConfigServerInfo.hub = yylval.number;
3376   }
3377 + #line 3378 "conf_parser.c" /* yacc.c:1646  */
3378      break;
3379  
3380    case 110:
3381 <
3882 < /* Line 1806 of yacc.c  */
3883 < #line 840 "ircd_parser.y"
3381 > #line 803 "conf_parser.y" /* yacc.c:1646  */
3382      {
3383 <  if (conf_parser_ctx.pass == 2)
3886 <    strlcpy(ConfigLoggingEntry.failed_operlog, yylval.string,
3887 <            sizeof(ConfigLoggingEntry.failed_operlog));
3888 < }
3383 >  if (conf_parser_ctx.pass != 2)
3384      break;
3385  
3386 <  case 111:
3387 <
3893 < /* Line 1806 of yacc.c  */
3894 < #line 847 "ircd_parser.y"
3895 <    {
3896 <  if (conf_parser_ctx.pass == 2)
3897 <    strlcpy(ConfigLoggingEntry.operlog, yylval.string,
3898 <            sizeof(ConfigLoggingEntry.operlog));
3386 >  xfree(ConfigAdminInfo.name);
3387 >  ConfigAdminInfo.name = xstrdup(yylval.string);
3388   }
3389 + #line 3390 "conf_parser.c" /* yacc.c:1646  */
3390      break;
3391  
3392 <  case 112:
3393 <
3904 < /* Line 1806 of yacc.c  */
3905 < #line 854 "ircd_parser.y"
3392 >  case 111:
3393 > #line 812 "conf_parser.y" /* yacc.c:1646  */
3394      {
3395 <  if (conf_parser_ctx.pass == 2)
3908 <    strlcpy(ConfigLoggingEntry.operspylog, yylval.string,
3909 <            sizeof(ConfigLoggingEntry.operspylog));
3910 < }
3395 >  if (conf_parser_ctx.pass != 2)
3396      break;
3397  
3398 <  case 113:
3399 <
3915 < /* Line 1806 of yacc.c  */
3916 < #line 861 "ircd_parser.y"
3917 <    {
3918 <  if (conf_parser_ctx.pass == 2)
3919 <    strlcpy(ConfigLoggingEntry.glinelog, yylval.string,
3920 <            sizeof(ConfigLoggingEntry.glinelog));
3398 >  xfree(ConfigAdminInfo.email);
3399 >  ConfigAdminInfo.email = xstrdup(yylval.string);
3400   }
3401 + #line 3402 "conf_parser.c" /* yacc.c:1646  */
3402      break;
3403  
3404 <  case 114:
3405 <
3926 < /* Line 1806 of yacc.c  */
3927 < #line 868 "ircd_parser.y"
3404 >  case 112:
3405 > #line 821 "conf_parser.y" /* yacc.c:1646  */
3406      {
3407 <  if (conf_parser_ctx.pass == 2)
3930 <    strlcpy(ConfigLoggingEntry.klinelog, yylval.string,
3931 <            sizeof(ConfigLoggingEntry.klinelog));
3932 < }
3407 >  if (conf_parser_ctx.pass != 2)
3408      break;
3409  
3410 <  case 115:
3411 <
3937 < /* Line 1806 of yacc.c  */
3938 < #line 875 "ircd_parser.y"
3939 <    {
3940 <  if (conf_parser_ctx.pass == 2)
3941 <    strlcpy(ConfigLoggingEntry.ioerrlog, yylval.string,
3942 <            sizeof(ConfigLoggingEntry.ioerrlog));
3410 >  xfree(ConfigAdminInfo.description);
3411 >  ConfigAdminInfo.description = xstrdup(yylval.string);
3412   }
3413 + #line 3414 "conf_parser.c" /* yacc.c:1646  */
3414      break;
3415  
3416 <  case 116:
3417 <
3948 < /* Line 1806 of yacc.c  */
3949 < #line 882 "ircd_parser.y"
3416 >  case 113:
3417 > #line 834 "conf_parser.y" /* yacc.c:1646  */
3418      {
3419    if (conf_parser_ctx.pass == 2)
3420 <    strlcpy(ConfigLoggingEntry.killlog, yylval.string,
3953 <            sizeof(ConfigLoggingEntry.killlog));
3420 >    reset_block_state();
3421   }
3422 + #line 3423 "conf_parser.c" /* yacc.c:1646  */
3423      break;
3424  
3425 <  case 117:
3425 >  case 114:
3426 > #line 838 "conf_parser.y" /* yacc.c:1646  */
3427 >    {
3428 >  dlink_node *node = NULL;
3429  
3430 < /* Line 1806 of yacc.c  */
3960 < #line 889 "ircd_parser.y"
3961 <    {
3962 <  if (conf_parser_ctx.pass == 2)
3963 <    set_log_level(L_CRIT);
3964 < }
3430 >  if (conf_parser_ctx.pass != 2)
3431      break;
3432  
3433 <  case 118:
3968 <
3969 < /* Line 1806 of yacc.c  */
3970 < #line 893 "ircd_parser.y"
3971 <    {
3972 <  if (conf_parser_ctx.pass == 2)
3973 <    set_log_level(L_ERROR);
3974 < }
3433 >  if (!block_state.file.buf[0])
3434      break;
3435  
3436 <  case 119:
3437 <
3979 < /* Line 1806 of yacc.c  */
3980 < #line 897 "ircd_parser.y"
3981 <    {
3982 <  if (conf_parser_ctx.pass == 2)
3983 <    set_log_level(L_WARN);
3436 >  DLINK_FOREACH(node, block_state.mask.list.head)
3437 >    motd_add(node->data, block_state.file.buf);
3438   }
3439 + #line 3440 "conf_parser.c" /* yacc.c:1646  */
3440      break;
3441  
3442    case 120:
3443 <
3989 < /* Line 1806 of yacc.c  */
3990 < #line 901 "ircd_parser.y"
3443 > #line 855 "conf_parser.y" /* yacc.c:1646  */
3444      {
3445    if (conf_parser_ctx.pass == 2)
3446 <    set_log_level(L_NOTICE);
3446 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3447   }
3448 + #line 3449 "conf_parser.c" /* yacc.c:1646  */
3449      break;
3450  
3451    case 121:
3452 <
3999 < /* Line 1806 of yacc.c  */
4000 < #line 905 "ircd_parser.y"
3452 > #line 861 "conf_parser.y" /* yacc.c:1646  */
3453      {
3454    if (conf_parser_ctx.pass == 2)
3455 <    set_log_level(L_TRACE);
3455 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3456   }
3457 + #line 3458 "conf_parser.c" /* yacc.c:1646  */
3458      break;
3459  
3460    case 122:
3461 <
4009 < /* Line 1806 of yacc.c  */
4010 < #line 909 "ircd_parser.y"
3461 > #line 871 "conf_parser.y" /* yacc.c:1646  */
3462      {
3463    if (conf_parser_ctx.pass == 2)
3464 <    set_log_level(L_INFO);
3464 >    reset_block_state();
3465   }
3466 + #line 3467 "conf_parser.c" /* yacc.c:1646  */
3467      break;
3468  
3469    case 123:
3470 <
4019 < /* Line 1806 of yacc.c  */
4020 < #line 913 "ircd_parser.y"
3470 > #line 875 "conf_parser.y" /* yacc.c:1646  */
3471      {
3472 <  if (conf_parser_ctx.pass == 2)
4023 <    set_log_level(L_DEBUG);
4024 < }
3472 >  if (conf_parser_ctx.pass != 2)
3473      break;
3474  
3475 <  case 124:
3476 <
3477 < /* Line 1806 of yacc.c  */
3478 < #line 919 "ircd_parser.y"
4031 <    {
4032 <  if (conf_parser_ctx.pass == 2)
4033 <    ConfigLoggingEntry.use_logging = yylval.number;
4034 < }
3475 >  if (!block_state.command.buf[0] ||
3476 >      !block_state.name.buf[0] ||
3477 >      !block_state.nick.buf[0] ||
3478 >      !block_state.host.buf[0])
3479      break;
3480  
3481 <  case 125:
3482 <
4039 < /* Line 1806 of yacc.c  */
4040 < #line 928 "ircd_parser.y"
4041 <    {
4042 <  if (conf_parser_ctx.pass == 2)
4043 <  {
4044 <    yy_conf = make_conf_item(OPER_TYPE);
4045 <    yy_aconf = map_to_conf(yy_conf);
4046 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
4047 <  }
4048 <  else
4049 <  {
4050 <    MyFree(class_name);
4051 <    class_name = NULL;
4052 <  }
3481 >  pseudo_register(block_state.name.buf, block_state.nick.buf, block_state.host.buf,
3482 >                  block_state.prepend.buf, block_state.command.buf);
3483   }
3484 + #line 3485 "conf_parser.c" /* yacc.c:1646  */
3485      break;
3486  
3487 <  case 126:
3488 <
4058 < /* Line 1806 of yacc.c  */
4059 < #line 941 "ircd_parser.y"
3487 >  case 131:
3488 > #line 893 "conf_parser.y" /* yacc.c:1646  */
3489      {
3490    if (conf_parser_ctx.pass == 2)
3491 <  {
4063 <    struct CollectItem *yy_tmp;
4064 <    dlink_node *ptr;
4065 <    dlink_node *next_ptr;
4066 <
4067 <    conf_add_class_to_conf(yy_conf, class_name);
4068 <
4069 <    /* Now, make sure there is a copy of the "base" given oper
4070 <     * block in each of the collected copies
4071 <     */
4072 <
4073 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4074 <    {
4075 <      struct AccessItem *new_aconf;
4076 <      struct ConfItem *new_conf;
4077 <      yy_tmp = ptr->data;
4078 <
4079 <      new_conf = make_conf_item(OPER_TYPE);
4080 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
4081 <
4082 <      new_aconf->flags = yy_aconf->flags;
4083 <
4084 <      if (yy_conf->name != NULL)
4085 <        DupString(new_conf->name, yy_conf->name);
4086 <      if (yy_tmp->user != NULL)
4087 <        DupString(new_aconf->user, yy_tmp->user);
4088 <      else
4089 <        DupString(new_aconf->user, "*");
4090 <      if (yy_tmp->host != NULL)
4091 <        DupString(new_aconf->host, yy_tmp->host);
4092 <      else
4093 <        DupString(new_aconf->host, "*");
4094 <      conf_add_class_to_conf(new_conf, class_name);
4095 <      if (yy_aconf->passwd != NULL)
4096 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4097 <
4098 <      new_aconf->port = yy_aconf->port;
4099 < #ifdef HAVE_LIBCRYPTO
4100 <      if (yy_aconf->rsa_public_key_file != NULL)
4101 <      {
4102 <        BIO *file;
4103 <
4104 <        DupString(new_aconf->rsa_public_key_file,
4105 <                  yy_aconf->rsa_public_key_file);
4106 <
4107 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
4108 <        new_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file,
4109 <                                                           NULL, 0, NULL);
4110 <        BIO_set_close(file, BIO_CLOSE);
4111 <        BIO_free(file);
4112 <      }
4113 < #endif
4114 <
4115 < #ifdef HAVE_LIBCRYPTO
4116 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
4117 <          && yy_tmp->host)
4118 < #else
4119 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
4120 < #endif
4121 <      {
4122 <        conf_add_class_to_conf(new_conf, class_name);
4123 <        if (yy_tmp->name != NULL)
4124 <          DupString(new_conf->name, yy_tmp->name);
4125 <      }
4126 <
4127 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4128 <      free_collect_item(yy_tmp);
4129 <    }
4130 <
4131 <    yy_conf = NULL;
4132 <    yy_aconf = NULL;
4133 <
4134 <
4135 <    MyFree(class_name);
4136 <    class_name = NULL;
4137 <  }
3491 >    strlcpy(block_state.command.buf, yylval.string, sizeof(block_state.command.buf));
3492   }
3493 + #line 3494 "conf_parser.c" /* yacc.c:1646  */
3494      break;
3495  
3496 <  case 140:
3497 <
4143 < /* Line 1806 of yacc.c  */
4144 < #line 1028 "ircd_parser.y"
3496 >  case 132:
3497 > #line 899 "conf_parser.y" /* yacc.c:1646  */
3498      {
3499    if (conf_parser_ctx.pass == 2)
3500 <  {
4148 <    if (strlen(yylval.string) > OPERNICKLEN)
4149 <      yylval.string[OPERNICKLEN] = '\0';
4150 <
4151 <    MyFree(yy_conf->name);
4152 <    DupString(yy_conf->name, yylval.string);
4153 <  }
3500 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3501   }
3502 + #line 3503 "conf_parser.c" /* yacc.c:1646  */
3503      break;
3504  
3505 <  case 141:
3506 <
4159 < /* Line 1806 of yacc.c  */
4160 < #line 1040 "ircd_parser.y"
3505 >  case 133:
3506 > #line 905 "conf_parser.y" /* yacc.c:1646  */
3507      {
3508    if (conf_parser_ctx.pass == 2)
3509 <  {
4164 <    if (strlen(yylval.string) > OPERNICKLEN)
4165 <      yylval.string[OPERNICKLEN] = '\0';
4166 <
4167 <    MyFree(yy_conf->name);
4168 <    DupString(yy_conf->name, yylval.string);
4169 <  }
3509 >    strlcpy(block_state.prepend.buf, yylval.string, sizeof(block_state.prepend.buf));
3510   }
3511 + #line 3512 "conf_parser.c" /* yacc.c:1646  */
3512      break;
3513  
3514 <  case 142:
3515 <
4175 < /* Line 1806 of yacc.c  */
4176 < #line 1052 "ircd_parser.y"
3514 >  case 134:
3515 > #line 911 "conf_parser.y" /* yacc.c:1646  */
3516      {
3517    if (conf_parser_ctx.pass == 2)
3518    {
# Line 4181 | Line 3520 | yyreduce:
3520  
3521      nuh.nuhmask  = yylval.string;
3522      nuh.nickptr  = NULL;
3523 <    nuh.userptr  = userbuf;
3524 <    nuh.hostptr  = hostbuf;
4186 <
3523 >    nuh.userptr  = block_state.nick.buf;
3524 >    nuh.hostptr  = block_state.host.buf;
3525      nuh.nicksize = 0;
3526 <    nuh.usersize = sizeof(userbuf);
3527 <    nuh.hostsize = sizeof(hostbuf);
3526 >    nuh.usersize = sizeof(block_state.nick.buf);
3527 >    nuh.hostsize = sizeof(block_state.host.buf);
3528  
3529      split_nuh(&nuh);
4192
4193    if (yy_aconf->user == NULL)
4194    {
4195      DupString(yy_aconf->user, userbuf);
4196      DupString(yy_aconf->host, hostbuf);
4197    }
4198    else
4199    {
4200      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
4201
4202      DupString(yy_tmp->user, userbuf);
4203      DupString(yy_tmp->host, hostbuf);
4204
4205      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4206    }
3530    }
3531   }
3532 + #line 3533 "conf_parser.c" /* yacc.c:1646  */
3533      break;
3534  
3535 <  case 143:
3536 <
4213 < /* Line 1806 of yacc.c  */
4214 < #line 1086 "ircd_parser.y"
3535 >  case 141:
3536 > #line 939 "conf_parser.y" /* yacc.c:1646  */
3537      {
3538    if (conf_parser_ctx.pass == 2)
3539 <  {
4218 <    if (yy_aconf->passwd != NULL)
4219 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4220 <
4221 <    MyFree(yy_aconf->passwd);
4222 <    DupString(yy_aconf->passwd, yylval.string);
4223 <  }
3539 >    ConfigLog.use_logging = yylval.number;
3540   }
3541 + #line 3542 "conf_parser.c" /* yacc.c:1646  */
3542      break;
3543  
3544 <  case 144:
3545 <
4229 < /* Line 1806 of yacc.c  */
4230 < #line 1098 "ircd_parser.y"
3544 >  case 142:
3545 > #line 945 "conf_parser.y" /* yacc.c:1646  */
3546      {
3547    if (conf_parser_ctx.pass == 2)
3548 <  {
4234 <    if (yylval.number)
4235 <      SetConfEncrypted(yy_aconf);
4236 <    else
4237 <      ClearConfEncrypted(yy_aconf);
4238 <  }
3548 >    reset_block_state();
3549   }
3550 + #line 3551 "conf_parser.c" /* yacc.c:1646  */
3551      break;
3552  
3553 <  case 145:
3554 <
4244 < /* Line 1806 of yacc.c  */
4245 < #line 1109 "ircd_parser.y"
4246 <    {
4247 < #ifdef HAVE_LIBCRYPTO
4248 <  if (conf_parser_ctx.pass == 2)
4249 <  {
4250 <    BIO *file;
4251 <
4252 <    if (yy_aconf->rsa_public_key != NULL)
4253 <    {
4254 <      RSA_free(yy_aconf->rsa_public_key);
4255 <      yy_aconf->rsa_public_key = NULL;
4256 <    }
4257 <
4258 <    if (yy_aconf->rsa_public_key_file != NULL)
4259 <    {
4260 <      MyFree(yy_aconf->rsa_public_key_file);
4261 <      yy_aconf->rsa_public_key_file = NULL;
4262 <    }
4263 <
4264 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
4265 <    file = BIO_new_file(yylval.string, "r");
4266 <
4267 <    if (file == NULL)
4268 <    {
4269 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
4270 <      break;
4271 <    }
4272 <
4273 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
4274 <
4275 <    if (yy_aconf->rsa_public_key == NULL)
3553 >  case 143:
3554 > #line 949 "conf_parser.y" /* yacc.c:1646  */
3555      {
3556 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3557 <      break;
4279 <    }
3556 >  if (conf_parser_ctx.pass != 2)
3557 >    break;
3558  
3559 <    BIO_set_close(file, BIO_CLOSE);
3560 <    BIO_free(file);
3561 <  }
4284 < #endif /* HAVE_LIBCRYPTO */
3559 >  if (block_state.type.value && block_state.file.buf[0])
3560 >    log_set_file(block_state.type.value, block_state.size.value,
3561 >                 block_state.file.buf);
3562   }
3563 + #line 3564 "conf_parser.c" /* yacc.c:1646  */
3564      break;
3565  
3566 <  case 146:
3567 <
4290 < /* Line 1806 of yacc.c  */
4291 < #line 1151 "ircd_parser.y"
3566 >  case 150:
3567 > #line 965 "conf_parser.y" /* yacc.c:1646  */
3568      {
3569 <  if (conf_parser_ctx.pass == 2)
4294 <  {
4295 <    MyFree(class_name);
4296 <    DupString(class_name, yylval.string);
4297 <  }
4298 < }
3569 >  if (conf_parser_ctx.pass != 2)
3570      break;
3571  
3572 <  case 147:
4302 <
4303 < /* Line 1806 of yacc.c  */
4304 < #line 1160 "ircd_parser.y"
4305 <    {
4306 <  if (conf_parser_ctx.pass == 2)
4307 <    yy_aconf->modes = 0;
3572 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3573   }
3574 + #line 3575 "conf_parser.c" /* yacc.c:1646  */
3575      break;
3576  
3577    case 151:
3578 <
4313 < /* Line 1806 of yacc.c  */
4314 < #line 1167 "ircd_parser.y"
3578 > #line 973 "conf_parser.y" /* yacc.c:1646  */
3579      {
3580 <  if (conf_parser_ctx.pass == 2)
4317 <    yy_aconf->modes |= UMODE_BOTS;
3580 >  block_state.size.value = (yyvsp[-1].number);
3581   }
3582 + #line 3583 "conf_parser.c" /* yacc.c:1646  */
3583      break;
3584  
3585    case 152:
3586 <
4323 < /* Line 1806 of yacc.c  */
4324 < #line 1171 "ircd_parser.y"
3586 > #line 976 "conf_parser.y" /* yacc.c:1646  */
3587      {
3588 <  if (conf_parser_ctx.pass == 2)
4327 <    yy_aconf->modes |= UMODE_CCONN;
3588 >  block_state.size.value = 0;
3589   }
3590 + #line 3591 "conf_parser.c" /* yacc.c:1646  */
3591      break;
3592  
3593    case 153:
3594 <
4333 < /* Line 1806 of yacc.c  */
4334 < #line 1175 "ircd_parser.y"
4335 <    {
4336 <  if (conf_parser_ctx.pass == 2)
4337 <    yy_aconf->modes |= UMODE_CCONN_FULL;
4338 < }
4339 <    break;
4340 <
4341 <  case 154:
4342 <
4343 < /* Line 1806 of yacc.c  */
4344 < #line 1179 "ircd_parser.y"
3594 > #line 981 "conf_parser.y" /* yacc.c:1646  */
3595      {
3596    if (conf_parser_ctx.pass == 2)
3597 <    yy_aconf->modes |= UMODE_DEAF;
4348 < }
4349 <    break;
4350 <
4351 <  case 155:
4352 <
4353 < /* Line 1806 of yacc.c  */
4354 < #line 1183 "ircd_parser.y"
4355 <    {
4356 <  if (conf_parser_ctx.pass == 2)
4357 <    yy_aconf->modes |= UMODE_DEBUG;
4358 < }
4359 <    break;
4360 <
4361 <  case 156:
4362 <
4363 < /* Line 1806 of yacc.c  */
4364 < #line 1187 "ircd_parser.y"
4365 <    {
4366 <  if (conf_parser_ctx.pass == 2)
4367 <    yy_aconf->modes |= UMODE_FULL;
3597 >    block_state.type.value = 0;
3598   }
3599 + #line 3600 "conf_parser.c" /* yacc.c:1646  */
3600      break;
3601  
3602    case 157:
3603 <
4373 < /* Line 1806 of yacc.c  */
4374 < #line 1191 "ircd_parser.y"
3603 > #line 988 "conf_parser.y" /* yacc.c:1646  */
3604      {
3605    if (conf_parser_ctx.pass == 2)
3606 <    yy_aconf->modes |= UMODE_SKILL;
3606 >    block_state.type.value = LOG_TYPE_USER;
3607   }
3608 + #line 3609 "conf_parser.c" /* yacc.c:1646  */
3609      break;
3610  
3611    case 158:
3612 <
4383 < /* Line 1806 of yacc.c  */
4384 < #line 1195 "ircd_parser.y"
3612 > #line 992 "conf_parser.y" /* yacc.c:1646  */
3613      {
3614    if (conf_parser_ctx.pass == 2)
3615 <    yy_aconf->modes |= UMODE_NCHANGE;
3615 >    block_state.type.value = LOG_TYPE_OPER;
3616   }
3617 + #line 3618 "conf_parser.c" /* yacc.c:1646  */
3618      break;
3619  
3620    case 159:
3621 <
4393 < /* Line 1806 of yacc.c  */
4394 < #line 1199 "ircd_parser.y"
3621 > #line 996 "conf_parser.y" /* yacc.c:1646  */
3622      {
3623    if (conf_parser_ctx.pass == 2)
3624 <    yy_aconf->modes |= UMODE_REJ;
3624 >    block_state.type.value = LOG_TYPE_XLINE;
3625   }
3626 + #line 3627 "conf_parser.c" /* yacc.c:1646  */
3627      break;
3628  
3629    case 160:
3630 <
4403 < /* Line 1806 of yacc.c  */
4404 < #line 1203 "ircd_parser.y"
3630 > #line 1000 "conf_parser.y" /* yacc.c:1646  */
3631      {
3632    if (conf_parser_ctx.pass == 2)
3633 <    yy_aconf->modes |= UMODE_UNAUTH;
3633 >    block_state.type.value = LOG_TYPE_RESV;
3634   }
3635 + #line 3636 "conf_parser.c" /* yacc.c:1646  */
3636      break;
3637  
3638    case 161:
3639 <
4413 < /* Line 1806 of yacc.c  */
4414 < #line 1207 "ircd_parser.y"
3639 > #line 1004 "conf_parser.y" /* yacc.c:1646  */
3640      {
3641    if (conf_parser_ctx.pass == 2)
3642 <    yy_aconf->modes |= UMODE_SPY;
3642 >    block_state.type.value = LOG_TYPE_DLINE;
3643   }
3644 + #line 3645 "conf_parser.c" /* yacc.c:1646  */
3645      break;
3646  
3647    case 162:
3648 <
4423 < /* Line 1806 of yacc.c  */
4424 < #line 1211 "ircd_parser.y"
3648 > #line 1008 "conf_parser.y" /* yacc.c:1646  */
3649      {
3650    if (conf_parser_ctx.pass == 2)
3651 <    yy_aconf->modes |= UMODE_EXTERNAL;
3651 >    block_state.type.value = LOG_TYPE_KLINE;
3652   }
3653 + #line 3654 "conf_parser.c" /* yacc.c:1646  */
3654      break;
3655  
3656    case 163:
3657 <
4433 < /* Line 1806 of yacc.c  */
4434 < #line 1215 "ircd_parser.y"
3657 > #line 1012 "conf_parser.y" /* yacc.c:1646  */
3658      {
3659    if (conf_parser_ctx.pass == 2)
3660 <    yy_aconf->modes |= UMODE_OPERWALL;
3660 >    block_state.type.value = LOG_TYPE_KILL;
3661   }
3662 + #line 3663 "conf_parser.c" /* yacc.c:1646  */
3663      break;
3664  
3665    case 164:
3666 <
4443 < /* Line 1806 of yacc.c  */
4444 < #line 1219 "ircd_parser.y"
3666 > #line 1016 "conf_parser.y" /* yacc.c:1646  */
3667      {
3668    if (conf_parser_ctx.pass == 2)
3669 <    yy_aconf->modes |= UMODE_SERVNOTICE;
3669 >    block_state.type.value = LOG_TYPE_DEBUG;
3670   }
3671 + #line 3672 "conf_parser.c" /* yacc.c:1646  */
3672      break;
3673  
3674    case 165:
3675 <
4453 < /* Line 1806 of yacc.c  */
4454 < #line 1223 "ircd_parser.y"
3675 > #line 1026 "conf_parser.y" /* yacc.c:1646  */
3676      {
3677 <  if (conf_parser_ctx.pass == 2)
3678 <    yy_aconf->modes |= UMODE_INVISIBLE;
3677 >  if (conf_parser_ctx.pass != 2)
3678 >    break;
3679 >
3680 >  reset_block_state();
3681 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3682   }
3683 + #line 3684 "conf_parser.c" /* yacc.c:1646  */
3684      break;
3685  
3686    case 166:
3687 <
4463 < /* Line 1806 of yacc.c  */
4464 < #line 1227 "ircd_parser.y"
3687 > #line 1033 "conf_parser.y" /* yacc.c:1646  */
3688      {
3689 <  if (conf_parser_ctx.pass == 2)
3690 <    yy_aconf->modes |= UMODE_WALLOP;
3691 < }
3689 >  dlink_node *node = NULL;
3690 >
3691 >  if (conf_parser_ctx.pass != 2)
3692 >    break;
3693 >
3694 >  if (!block_state.name.buf[0])
3695 >    break;
3696 >
3697 >  if (!block_state.rpass.buf[0])
3698      break;
3699  
3700 <  case 167:
3700 >  DLINK_FOREACH(node, block_state.mask.list.head)
3701 >  {
3702 >    struct MaskItem *conf = NULL;
3703 >    struct split_nuh_item nuh;
3704 >    char *s = node->data;
3705 >
3706 >    if (EmptyString(s))
3707 >      continue;
3708 >
3709 >    nuh.nuhmask  = s;
3710 >    nuh.nickptr  = NULL;
3711 >    nuh.userptr  = block_state.user.buf;
3712 >    nuh.hostptr  = block_state.host.buf;
3713 >    nuh.nicksize = 0;
3714 >    nuh.usersize = sizeof(block_state.user.buf);
3715 >    nuh.hostsize = sizeof(block_state.host.buf);
3716 >    split_nuh(&nuh);
3717 >
3718 >    conf         = conf_make(CONF_OPER);
3719 >    conf->name   = xstrdup(block_state.name.buf);
3720 >    conf->user   = xstrdup(block_state.user.buf);
3721 >    conf->host   = xstrdup(block_state.host.buf);
3722 >
3723 >    if (block_state.cert.buf[0])
3724 >      conf->certfp = xstrdup(block_state.cert.buf);
3725 >
3726 >    if (block_state.rpass.buf[0])
3727 >      conf->passwd = xstrdup(block_state.rpass.buf);
3728 >
3729 >    if (block_state.whois.buf[0])
3730 >      conf->whois = xstrdup(block_state.whois.buf);
3731 >
3732 >    conf->flags = block_state.flags.value;
3733 >    conf->modes = block_state.modes.value;
3734 >    conf->port  = block_state.port.value;
3735 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3736 >
3737 >    conf_add_class_to_conf(conf, block_state.class.buf);
3738 >  }
3739 > }
3740 > #line 3741 "conf_parser.c" /* yacc.c:1646  */
3741 >    break;
3742  
3743 < /* Line 1806 of yacc.c  */
3744 < #line 1231 "ircd_parser.y"
3743 >  case 180:
3744 > #line 1100 "conf_parser.y" /* yacc.c:1646  */
3745      {
3746    if (conf_parser_ctx.pass == 2)
3747 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
3747 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3748   }
3749 + #line 3750 "conf_parser.c" /* yacc.c:1646  */
3750      break;
3751  
3752 <  case 168:
3753 <
4483 < /* Line 1806 of yacc.c  */
4484 < #line 1235 "ircd_parser.y"
3752 >  case 181:
3753 > #line 1106 "conf_parser.y" /* yacc.c:1646  */
3754      {
3755    if (conf_parser_ctx.pass == 2)
3756 <    yy_aconf->modes |= UMODE_CALLERID;
3756 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3757   }
3758 + #line 3759 "conf_parser.c" /* yacc.c:1646  */
3759      break;
3760  
3761 <  case 169:
3762 <
4493 < /* Line 1806 of yacc.c  */
4494 < #line 1239 "ircd_parser.y"
3761 >  case 182:
3762 > #line 1112 "conf_parser.y" /* yacc.c:1646  */
3763      {
3764    if (conf_parser_ctx.pass == 2)
3765 <    yy_aconf->modes |= UMODE_LOCOPS;
3765 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3766   }
3767 + #line 3768 "conf_parser.c" /* yacc.c:1646  */
3768      break;
3769  
3770 <  case 170:
3771 <
4503 < /* Line 1806 of yacc.c  */
4504 < #line 1245 "ircd_parser.y"
3770 >  case 183:
3771 > #line 1118 "conf_parser.y" /* yacc.c:1646  */
3772      {
3773 +  if (conf_parser_ctx.pass == 2)
3774 +    strlcpy(block_state.whois.buf, yylval.string, sizeof(block_state.whois.buf));
3775   }
3776 + #line 3777 "conf_parser.c" /* yacc.c:1646  */
3777      break;
3778  
3779 <  case 174:
3779 >  case 184:
3780 > #line 1124 "conf_parser.y" /* yacc.c:1646  */
3781 >    {
3782 >  if (conf_parser_ctx.pass != 2)
3783 >    break;
3784  
3785 < /* Line 1806 of yacc.c  */
3786 < #line 1249 "ircd_parser.y"
3787 <    { not_atom = 1; }
3785 >  if (yylval.number)
3786 >    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3787 >  else
3788 >    block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3789 > }
3790 > #line 3791 "conf_parser.c" /* yacc.c:1646  */
3791      break;
3792  
3793 <  case 176:
3793 >  case 185:
3794 > #line 1135 "conf_parser.y" /* yacc.c:1646  */
3795 >    {
3796 >  if (conf_parser_ctx.pass == 2)
3797 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
3798 > }
3799 > #line 3800 "conf_parser.c" /* yacc.c:1646  */
3800 >    break;
3801  
3802 < /* Line 1806 of yacc.c  */
3803 < #line 1250 "ircd_parser.y"
3804 <    { not_atom = 0; }
3802 >  case 186:
3803 > #line 1141 "conf_parser.y" /* yacc.c:1646  */
3804 >    {
3805 >  if (conf_parser_ctx.pass != 2)
3806      break;
3807  
3808 <  case 178:
3808 >  if (yylval.number)
3809 >    block_state.flags.value |= CONF_FLAGS_SSL;
3810 >  else
3811 >    block_state.flags.value &= ~CONF_FLAGS_SSL;
3812 > }
3813 > #line 3814 "conf_parser.c" /* yacc.c:1646  */
3814 >    break;
3815  
3816 < /* Line 1806 of yacc.c  */
3817 < #line 1253 "ircd_parser.y"
3816 >  case 187:
3817 > #line 1152 "conf_parser.y" /* yacc.c:1646  */
3818      {
3819    if (conf_parser_ctx.pass == 2)
3820 <  {
4530 <    if (not_atom)yy_aconf->port &= ~OPER_FLAG_GLOBAL_KILL;
4531 <    else yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4532 <  }
3820 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3821   }
3822 + #line 3823 "conf_parser.c" /* yacc.c:1646  */
3823      break;
3824  
3825 <  case 179:
3826 <
4538 < /* Line 1806 of yacc.c  */
4539 < #line 1260 "ircd_parser.y"
3825 >  case 188:
3826 > #line 1158 "conf_parser.y" /* yacc.c:1646  */
3827      {
3828    if (conf_parser_ctx.pass == 2)
3829 <  {
4543 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REMOTE;
4544 <    else yy_aconf->port |= OPER_FLAG_REMOTE;
4545 <  }
3829 >    block_state.modes.value = 0;
3830   }
3831 + #line 3832 "conf_parser.c" /* yacc.c:1646  */
3832      break;
3833  
3834 <  case 180:
3835 <
4551 < /* Line 1806 of yacc.c  */
4552 < #line 1267 "ircd_parser.y"
3834 >  case 192:
3835 > #line 1165 "conf_parser.y" /* yacc.c:1646  */
3836      {
3837    if (conf_parser_ctx.pass == 2)
3838 <  {
4556 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_K;
4557 <    else yy_aconf->port |= OPER_FLAG_K;
4558 <  }
3838 >    block_state.modes.value |= UMODE_BOTS;
3839   }
3840 + #line 3841 "conf_parser.c" /* yacc.c:1646  */
3841      break;
3842  
3843 <  case 181:
3844 <
4564 < /* Line 1806 of yacc.c  */
4565 < #line 1274 "ircd_parser.y"
3843 >  case 193:
3844 > #line 1169 "conf_parser.y" /* yacc.c:1646  */
3845      {
3846    if (conf_parser_ctx.pass == 2)
3847 <  {
4569 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_UNKLINE;
4570 <    else yy_aconf->port |= OPER_FLAG_UNKLINE;
4571 <  }
3847 >    block_state.modes.value |= UMODE_CCONN;
3848   }
3849 + #line 3850 "conf_parser.c" /* yacc.c:1646  */
3850      break;
3851  
3852 <  case 182:
3853 <
4577 < /* Line 1806 of yacc.c  */
4578 < #line 1281 "ircd_parser.y"
3852 >  case 194:
3853 > #line 1173 "conf_parser.y" /* yacc.c:1646  */
3854      {
3855    if (conf_parser_ctx.pass == 2)
3856 <  {
4582 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_X;
4583 <    else yy_aconf->port |= OPER_FLAG_X;
4584 <  }
3856 >    block_state.modes.value |= UMODE_DEAF;
3857   }
3858 + #line 3859 "conf_parser.c" /* yacc.c:1646  */
3859      break;
3860  
3861 <  case 183:
3862 <
4590 < /* Line 1806 of yacc.c  */
4591 < #line 1288 "ircd_parser.y"
3861 >  case 195:
3862 > #line 1177 "conf_parser.y" /* yacc.c:1646  */
3863      {
3864    if (conf_parser_ctx.pass == 2)
3865 <  {
4595 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_GLINE;
4596 <    else yy_aconf->port |= OPER_FLAG_GLINE;
4597 <  }
3865 >    block_state.modes.value |= UMODE_DEBUG;
3866   }
3867 + #line 3868 "conf_parser.c" /* yacc.c:1646  */
3868      break;
3869  
3870 <  case 184:
3871 <
4603 < /* Line 1806 of yacc.c  */
4604 < #line 1295 "ircd_parser.y"
3870 >  case 196:
3871 > #line 1181 "conf_parser.y" /* yacc.c:1646  */
3872      {
3873    if (conf_parser_ctx.pass == 2)
3874 <  {
4608 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_DIE;
4609 <    else yy_aconf->port |= OPER_FLAG_DIE;
4610 <  }
3874 >    block_state.modes.value |= UMODE_FULL;
3875   }
3876 + #line 3877 "conf_parser.c" /* yacc.c:1646  */
3877      break;
3878  
3879 <  case 185:
3880 <
4616 < /* Line 1806 of yacc.c  */
4617 < #line 1302 "ircd_parser.y"
3879 >  case 197:
3880 > #line 1185 "conf_parser.y" /* yacc.c:1646  */
3881      {
3882    if (conf_parser_ctx.pass == 2)
3883 <  {
4621 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REHASH;
4622 <    else yy_aconf->port |= OPER_FLAG_REHASH;
4623 <  }
3883 >    block_state.modes.value |= UMODE_HIDDEN;
3884   }
3885 + #line 3886 "conf_parser.c" /* yacc.c:1646  */
3886      break;
3887  
3888 <  case 186:
3889 <
4629 < /* Line 1806 of yacc.c  */
4630 < #line 1309 "ircd_parser.y"
3888 >  case 198:
3889 > #line 1189 "conf_parser.y" /* yacc.c:1646  */
3890      {
3891    if (conf_parser_ctx.pass == 2)
3892 <  {
4634 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_ADMIN;
4635 <    else yy_aconf->port |= OPER_FLAG_ADMIN;
4636 <  }
3892 >    block_state.modes.value |= UMODE_HIDECHANS;
3893   }
3894 + #line 3895 "conf_parser.c" /* yacc.c:1646  */
3895      break;
3896  
3897 <  case 187:
3898 <
4642 < /* Line 1806 of yacc.c  */
4643 < #line 1316 "ircd_parser.y"
3897 >  case 199:
3898 > #line 1193 "conf_parser.y" /* yacc.c:1646  */
3899      {
3900    if (conf_parser_ctx.pass == 2)
3901 <  {
4647 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_HIDDEN_ADMIN;
4648 <    else yy_aconf->port |= OPER_FLAG_HIDDEN_ADMIN;
4649 <  }
3901 >    block_state.modes.value |= UMODE_HIDEIDLE;
3902   }
3903 + #line 3904 "conf_parser.c" /* yacc.c:1646  */
3904      break;
3905  
3906 <  case 188:
3907 <
4655 < /* Line 1806 of yacc.c  */
4656 < #line 1323 "ircd_parser.y"
3906 >  case 200:
3907 > #line 1197 "conf_parser.y" /* yacc.c:1646  */
3908      {
3909    if (conf_parser_ctx.pass == 2)
3910 <  {
4660 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_N;
4661 <    else yy_aconf->port |= OPER_FLAG_N;
4662 <  }
3910 >    block_state.modes.value |= UMODE_SKILL;
3911   }
3912 + #line 3913 "conf_parser.c" /* yacc.c:1646  */
3913      break;
3914  
3915 <  case 189:
3916 <
4668 < /* Line 1806 of yacc.c  */
4669 < #line 1330 "ircd_parser.y"
3915 >  case 201:
3916 > #line 1201 "conf_parser.y" /* yacc.c:1646  */
3917      {
3918    if (conf_parser_ctx.pass == 2)
3919 <  {
4673 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_OPERWALL;
4674 <    else yy_aconf->port |= OPER_FLAG_OPERWALL;
4675 <  }
3919 >    block_state.modes.value |= UMODE_NCHANGE;
3920   }
3921 + #line 3922 "conf_parser.c" /* yacc.c:1646  */
3922      break;
3923  
3924 <  case 190:
3925 <
4681 < /* Line 1806 of yacc.c  */
4682 < #line 1337 "ircd_parser.y"
3924 >  case 202:
3925 > #line 1205 "conf_parser.y" /* yacc.c:1646  */
3926      {
3927    if (conf_parser_ctx.pass == 2)
3928 <  {
4686 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_OPER_SPY;
4687 <    else yy_aconf->port |= OPER_FLAG_OPER_SPY;
4688 <  }
3928 >    block_state.modes.value |= UMODE_REJ;
3929   }
3930 + #line 3931 "conf_parser.c" /* yacc.c:1646  */
3931      break;
3932  
3933 <  case 191:
3934 <
4694 < /* Line 1806 of yacc.c  */
4695 < #line 1344 "ircd_parser.y"
3933 >  case 203:
3934 > #line 1209 "conf_parser.y" /* yacc.c:1646  */
3935      {
3936    if (conf_parser_ctx.pass == 2)
3937 <  {
4699 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_HIDDEN_OPER;
4700 <    else yy_aconf->port |= OPER_FLAG_HIDDEN_OPER;
4701 <  }
3937 >    block_state.modes.value |= UMODE_UNAUTH;
3938   }
3939 + #line 3940 "conf_parser.c" /* yacc.c:1646  */
3940      break;
3941  
3942 <  case 192:
3943 <
4707 < /* Line 1806 of yacc.c  */
4708 < #line 1351 "ircd_parser.y"
3942 >  case 204:
3943 > #line 1213 "conf_parser.y" /* yacc.c:1646  */
3944      {
3945    if (conf_parser_ctx.pass == 2)
3946 <  {
4712 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REMOTEBAN;
4713 <    else yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4714 <  }
3946 >    block_state.modes.value |= UMODE_SPY;
3947   }
3948 + #line 3949 "conf_parser.c" /* yacc.c:1646  */
3949      break;
3950  
3951 <  case 193:
3952 <
4720 < /* Line 1806 of yacc.c  */
4721 < #line 1358 "ircd_parser.y"
3951 >  case 205:
3952 > #line 1217 "conf_parser.y" /* yacc.c:1646  */
3953      {
3954    if (conf_parser_ctx.pass == 2)
3955 <  {
4725 <    if (not_atom) ClearConfEncrypted(yy_aconf);
4726 <    else SetConfEncrypted(yy_aconf);
4727 <  }
3955 >    block_state.modes.value |= UMODE_EXTERNAL;
3956   }
3957 + #line 3958 "conf_parser.c" /* yacc.c:1646  */
3958      break;
3959  
3960 <  case 194:
3961 <
4733 < /* Line 1806 of yacc.c  */
4734 < #line 1371 "ircd_parser.y"
3960 >  case 206:
3961 > #line 1221 "conf_parser.y" /* yacc.c:1646  */
3962      {
3963 <  if (conf_parser_ctx.pass == 1)
3964 <  {
4738 <    yy_conf = make_conf_item(CLASS_TYPE);
4739 <    yy_class = map_to_conf(yy_conf);
4740 <  }
3963 >  if (conf_parser_ctx.pass == 2)
3964 >    block_state.modes.value |= UMODE_SERVNOTICE;
3965   }
3966 + #line 3967 "conf_parser.c" /* yacc.c:1646  */
3967      break;
3968  
3969 <  case 195:
3970 <
4746 < /* Line 1806 of yacc.c  */
4747 < #line 1378 "ircd_parser.y"
3969 >  case 207:
3970 > #line 1225 "conf_parser.y" /* yacc.c:1646  */
3971      {
3972 <  if (conf_parser_ctx.pass == 1)
3973 <  {
3974 <    struct ConfItem *cconf = NULL;
3975 <    struct ClassItem *class = NULL;
3972 >  if (conf_parser_ctx.pass == 2)
3973 >    block_state.modes.value |= UMODE_INVISIBLE;
3974 > }
3975 > #line 3976 "conf_parser.c" /* yacc.c:1646  */
3976 >    break;
3977  
3978 <    if (yy_class_name == NULL)
3979 <      delete_conf_item(yy_conf);
4756 <    else
3978 >  case 208:
3979 > #line 1229 "conf_parser.y" /* yacc.c:1646  */
3980      {
3981 <      cconf = find_exact_name_conf(CLASS_TYPE, yy_class_name, NULL, NULL);
3982 <
4760 <      if (cconf != NULL)                /* The class existed already */
4761 <      {
4762 <        int user_count = 0;
4763 <
4764 <        rebuild_cidr_class(cconf, yy_class);
4765 <
4766 <        class = map_to_conf(cconf);
4767 <
4768 <        user_count = class->curr_user_count;
4769 <        memcpy(class, yy_class, sizeof(*class));
4770 <        class->curr_user_count = user_count;
4771 <        class->active = 1;
4772 <
4773 <        delete_conf_item(yy_conf);
4774 <
4775 <        MyFree(cconf->name);            /* Allows case change of class name */
4776 <        cconf->name = yy_class_name;
4777 <      }
4778 <      else      /* Brand new class */
4779 <      {
4780 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4781 <        yy_conf->name = yy_class_name;
4782 <        yy_class->active = 1;
4783 <      }
4784 <    }
4785 <
4786 <    yy_class_name = NULL;
4787 <  }
3981 >  if (conf_parser_ctx.pass == 2)
3982 >    block_state.modes.value |= UMODE_WALLOP;
3983   }
3984 + #line 3985 "conf_parser.c" /* yacc.c:1646  */
3985      break;
3986  
3987 <  case 214:
3988 <
4793 < /* Line 1806 of yacc.c  */
4794 < #line 1438 "ircd_parser.y"
3987 >  case 209:
3988 > #line 1233 "conf_parser.y" /* yacc.c:1646  */
3989      {
3990 <  if (conf_parser_ctx.pass == 1)
3991 <  {
4798 <    MyFree(yy_class_name);
4799 <    DupString(yy_class_name, yylval.string);
4800 <  }
3990 >  if (conf_parser_ctx.pass == 2)
3991 >    block_state.modes.value |= UMODE_SOFTCALLERID;
3992   }
3993 + #line 3994 "conf_parser.c" /* yacc.c:1646  */
3994      break;
3995  
3996 <  case 215:
3997 <
4806 < /* Line 1806 of yacc.c  */
4807 < #line 1447 "ircd_parser.y"
3996 >  case 210:
3997 > #line 1237 "conf_parser.y" /* yacc.c:1646  */
3998      {
3999 <  if (conf_parser_ctx.pass == 1)
4000 <  {
4811 <    MyFree(yy_class_name);
4812 <    DupString(yy_class_name, yylval.string);
4813 <  }
3999 >  if (conf_parser_ctx.pass == 2)
4000 >    block_state.modes.value |= UMODE_CALLERID;
4001   }
4002 + #line 4003 "conf_parser.c" /* yacc.c:1646  */
4003      break;
4004  
4005 <  case 216:
4005 >  case 211:
4006 > #line 1241 "conf_parser.y" /* yacc.c:1646  */
4007 >    {
4008 >  if (conf_parser_ctx.pass == 2)
4009 >    block_state.modes.value |= UMODE_LOCOPS;
4010 > }
4011 > #line 4012 "conf_parser.c" /* yacc.c:1646  */
4012 >    break;
4013  
4014 < /* Line 1806 of yacc.c  */
4015 < #line 1456 "ircd_parser.y"
4014 >  case 212:
4015 > #line 1245 "conf_parser.y" /* yacc.c:1646  */
4016      {
4017 <  if (conf_parser_ctx.pass == 1)
4018 <    PingFreq(yy_class) = (yyvsp[(3) - (4)].number);
4017 >  if (conf_parser_ctx.pass == 2)
4018 >    block_state.modes.value |= UMODE_REGONLY;
4019   }
4020 + #line 4021 "conf_parser.c" /* yacc.c:1646  */
4021      break;
4022  
4023 <  case 217:
4023 >  case 213:
4024 > #line 1249 "conf_parser.y" /* yacc.c:1646  */
4025 >    {
4026 >  if (conf_parser_ctx.pass == 2)
4027 >    block_state.modes.value |= UMODE_FARCONNECT;
4028 > }
4029 > #line 4030 "conf_parser.c" /* yacc.c:1646  */
4030 >    break;
4031  
4032 < /* Line 1806 of yacc.c  */
4033 < #line 1462 "ircd_parser.y"
4032 >  case 214:
4033 > #line 1255 "conf_parser.y" /* yacc.c:1646  */
4034      {
4035 <  if (conf_parser_ctx.pass == 1)
4036 <    PingWarning(yy_class) = (yyvsp[(3) - (4)].number);
4035 >  if (conf_parser_ctx.pass == 2)
4036 >    block_state.port.value = 0;
4037   }
4038 + #line 4039 "conf_parser.c" /* yacc.c:1646  */
4039      break;
4040  
4041    case 218:
4042 <
4839 < /* Line 1806 of yacc.c  */
4840 < #line 1468 "ircd_parser.y"
4042 > #line 1262 "conf_parser.y" /* yacc.c:1646  */
4043      {
4044 <  if (conf_parser_ctx.pass == 1)
4045 <    MaxPerIp(yy_class) = (yyvsp[(3) - (4)].number);
4044 >  if (conf_parser_ctx.pass == 2)
4045 >    block_state.port.value |= OPER_FLAG_KILL_REMOTE;
4046   }
4047 + #line 4048 "conf_parser.c" /* yacc.c:1646  */
4048      break;
4049  
4050    case 219:
4051 <
4849 < /* Line 1806 of yacc.c  */
4850 < #line 1474 "ircd_parser.y"
4051 > #line 1266 "conf_parser.y" /* yacc.c:1646  */
4052      {
4053 <  if (conf_parser_ctx.pass == 1)
4054 <    ConFreq(yy_class) = (yyvsp[(3) - (4)].number);
4053 >  if (conf_parser_ctx.pass == 2)
4054 >    block_state.port.value |= OPER_FLAG_KILL;
4055   }
4056 + #line 4057 "conf_parser.c" /* yacc.c:1646  */
4057      break;
4058  
4059    case 220:
4060 <
4859 < /* Line 1806 of yacc.c  */
4860 < #line 1480 "ircd_parser.y"
4060 > #line 1270 "conf_parser.y" /* yacc.c:1646  */
4061      {
4062 <  if (conf_parser_ctx.pass == 1)
4063 <    MaxTotal(yy_class) = (yyvsp[(3) - (4)].number);
4062 >  if (conf_parser_ctx.pass == 2)
4063 >    block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
4064   }
4065 + #line 4066 "conf_parser.c" /* yacc.c:1646  */
4066      break;
4067  
4068    case 221:
4069 <
4869 < /* Line 1806 of yacc.c  */
4870 < #line 1486 "ircd_parser.y"
4069 > #line 1274 "conf_parser.y" /* yacc.c:1646  */
4070      {
4071 <  if (conf_parser_ctx.pass == 1)
4072 <    MaxGlobal(yy_class) = (yyvsp[(3) - (4)].number);
4071 >  if (conf_parser_ctx.pass == 2)
4072 >    block_state.port.value |= OPER_FLAG_CONNECT;
4073   }
4074 + #line 4075 "conf_parser.c" /* yacc.c:1646  */
4075      break;
4076  
4077    case 222:
4078 <
4879 < /* Line 1806 of yacc.c  */
4880 < #line 1492 "ircd_parser.y"
4078 > #line 1278 "conf_parser.y" /* yacc.c:1646  */
4079      {
4080 <  if (conf_parser_ctx.pass == 1)
4081 <    MaxLocal(yy_class) = (yyvsp[(3) - (4)].number);
4080 >  if (conf_parser_ctx.pass == 2)
4081 >    block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
4082   }
4083 + #line 4084 "conf_parser.c" /* yacc.c:1646  */
4084      break;
4085  
4086    case 223:
4087 <
4889 < /* Line 1806 of yacc.c  */
4890 < #line 1498 "ircd_parser.y"
4087 > #line 1282 "conf_parser.y" /* yacc.c:1646  */
4088      {
4089 <  if (conf_parser_ctx.pass == 1)
4090 <    MaxIdent(yy_class) = (yyvsp[(3) - (4)].number);
4089 >  if (conf_parser_ctx.pass == 2)
4090 >    block_state.port.value |= OPER_FLAG_SQUIT;
4091   }
4092 + #line 4093 "conf_parser.c" /* yacc.c:1646  */
4093      break;
4094  
4095    case 224:
4096 <
4899 < /* Line 1806 of yacc.c  */
4900 < #line 1504 "ircd_parser.y"
4096 > #line 1286 "conf_parser.y" /* yacc.c:1646  */
4097      {
4098 <  if (conf_parser_ctx.pass == 1)
4099 <    MaxSendq(yy_class) = (yyvsp[(3) - (4)].number);
4098 >  if (conf_parser_ctx.pass == 2)
4099 >    block_state.port.value |= OPER_FLAG_KLINE;
4100   }
4101 + #line 4102 "conf_parser.c" /* yacc.c:1646  */
4102      break;
4103  
4104    case 225:
4105 <
4909 < /* Line 1806 of yacc.c  */
4910 < #line 1510 "ircd_parser.y"
4105 > #line 1290 "conf_parser.y" /* yacc.c:1646  */
4106      {
4107 <  if (conf_parser_ctx.pass == 1)
4108 <    CidrBitlenIPV4(yy_class) = (yyvsp[(3) - (4)].number);
4107 >  if (conf_parser_ctx.pass == 2)
4108 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4109   }
4110 + #line 4111 "conf_parser.c" /* yacc.c:1646  */
4111      break;
4112  
4113    case 226:
4114 <
4919 < /* Line 1806 of yacc.c  */
4920 < #line 1516 "ircd_parser.y"
4114 > #line 1294 "conf_parser.y" /* yacc.c:1646  */
4115      {
4116 <  if (conf_parser_ctx.pass == 1)
4117 <    CidrBitlenIPV6(yy_class) = (yyvsp[(3) - (4)].number);
4116 >  if (conf_parser_ctx.pass == 2)
4117 >    block_state.port.value |= OPER_FLAG_DLINE;
4118   }
4119 + #line 4120 "conf_parser.c" /* yacc.c:1646  */
4120      break;
4121  
4122    case 227:
4123 <
4929 < /* Line 1806 of yacc.c  */
4930 < #line 1522 "ircd_parser.y"
4123 > #line 1298 "conf_parser.y" /* yacc.c:1646  */
4124      {
4125 <  if (conf_parser_ctx.pass == 1)
4126 <    NumberPerCidr(yy_class) = (yyvsp[(3) - (4)].number);
4125 >  if (conf_parser_ctx.pass == 2)
4126 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4127   }
4128 + #line 4129 "conf_parser.c" /* yacc.c:1646  */
4129      break;
4130  
4131    case 228:
4132 <
4939 < /* Line 1806 of yacc.c  */
4940 < #line 1531 "ircd_parser.y"
4132 > #line 1302 "conf_parser.y" /* yacc.c:1646  */
4133      {
4134    if (conf_parser_ctx.pass == 2)
4135 <  {
4944 <    listener_address = NULL;
4945 <    listener_flags = 0;
4946 <  }
4135 >    block_state.port.value |= OPER_FLAG_XLINE;
4136   }
4137 + #line 4138 "conf_parser.c" /* yacc.c:1646  */
4138      break;
4139  
4140    case 229:
4141 <
4952 < /* Line 1806 of yacc.c  */
4953 < #line 1538 "ircd_parser.y"
4141 > #line 1306 "conf_parser.y" /* yacc.c:1646  */
4142      {
4143    if (conf_parser_ctx.pass == 2)
4144 <  {
4957 <    MyFree(listener_address);
4958 <    listener_address = NULL;
4959 <  }
4144 >    block_state.port.value |= OPER_FLAG_UNXLINE;
4145   }
4146 + #line 4147 "conf_parser.c" /* yacc.c:1646  */
4147      break;
4148  
4149    case 230:
4150 <
4965 < /* Line 1806 of yacc.c  */
4966 < #line 1547 "ircd_parser.y"
4150 > #line 1310 "conf_parser.y" /* yacc.c:1646  */
4151      {
4152 <  listener_flags = 0;
4152 >  if (conf_parser_ctx.pass == 2)
4153 >    block_state.port.value |= OPER_FLAG_DIE;
4154   }
4155 + #line 4156 "conf_parser.c" /* yacc.c:1646  */
4156      break;
4157  
4158 <  case 234:
4159 <
4974 < /* Line 1806 of yacc.c  */
4975 < #line 1553 "ircd_parser.y"
4158 >  case 231:
4159 > #line 1314 "conf_parser.y" /* yacc.c:1646  */
4160      {
4161    if (conf_parser_ctx.pass == 2)
4162 <    listener_flags |= LISTENER_SSL;
4162 >    block_state.port.value |= OPER_FLAG_RESTART;
4163   }
4164 + #line 4165 "conf_parser.c" /* yacc.c:1646  */
4165      break;
4166  
4167 <  case 235:
4168 <
4984 < /* Line 1806 of yacc.c  */
4985 < #line 1557 "ircd_parser.y"
4167 >  case 232:
4168 > #line 1318 "conf_parser.y" /* yacc.c:1646  */
4169      {
4170    if (conf_parser_ctx.pass == 2)
4171 <    listener_flags |= LISTENER_HIDDEN;
4171 >    block_state.port.value |= OPER_FLAG_REHASH_REMOTE;
4172   }
4173 + #line 4174 "conf_parser.c" /* yacc.c:1646  */
4174      break;
4175  
4176 <  case 236:
4177 <
4994 < /* Line 1806 of yacc.c  */
4995 < #line 1561 "ircd_parser.y"
4176 >  case 233:
4177 > #line 1322 "conf_parser.y" /* yacc.c:1646  */
4178      {
4179    if (conf_parser_ctx.pass == 2)
4180 <    listener_flags |= LISTENER_SERVER;
4180 >    block_state.port.value |= OPER_FLAG_REHASH;
4181   }
4182 + #line 4183 "conf_parser.c" /* yacc.c:1646  */
4183      break;
4184  
4185 <  case 244:
4186 <
5004 < /* Line 1806 of yacc.c  */
5005 < #line 1571 "ircd_parser.y"
5006 <    { listener_flags = 0; }
5007 <    break;
5008 <
5009 <  case 248:
5010 <
5011 < /* Line 1806 of yacc.c  */
5012 < #line 1576 "ircd_parser.y"
4185 >  case 234:
4186 > #line 1326 "conf_parser.y" /* yacc.c:1646  */
4187      {
4188    if (conf_parser_ctx.pass == 2)
4189 <  {
5016 <    if ((listener_flags & LISTENER_SSL))
5017 < #ifdef HAVE_LIBCRYPTO
5018 <      if (!ServerInfo.server_ctx)
5019 < #endif
5020 <      {
5021 <        yyerror("SSL not available - port closed");
5022 <        break;
5023 <      }
5024 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
5025 <  }
4189 >    block_state.port.value |= OPER_FLAG_ADMIN;
4190   }
4191 + #line 4192 "conf_parser.c" /* yacc.c:1646  */
4192      break;
4193  
4194 <  case 249:
4195 <
5031 < /* Line 1806 of yacc.c  */
5032 < #line 1590 "ircd_parser.y"
4194 >  case 235:
4195 > #line 1330 "conf_parser.y" /* yacc.c:1646  */
4196      {
4197    if (conf_parser_ctx.pass == 2)
4198 <  {
5036 <    int i;
5037 <
5038 <    if ((listener_flags & LISTENER_SSL))
5039 < #ifdef HAVE_LIBCRYPTO
5040 <      if (!ServerInfo.server_ctx)
5041 < #endif
5042 <      {
5043 <        yyerror("SSL not available - port closed");
5044 <        break;
5045 <      }
5046 <
5047 <    for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
5048 <      add_listener(i, listener_address, listener_flags);
5049 <  }
4198 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4199   }
4200 + #line 4201 "conf_parser.c" /* yacc.c:1646  */
4201      break;
4202  
4203 <  case 250:
4204 <
5055 < /* Line 1806 of yacc.c  */
5056 < #line 1610 "ircd_parser.y"
4203 >  case 236:
4204 > #line 1334 "conf_parser.y" /* yacc.c:1646  */
4205      {
4206    if (conf_parser_ctx.pass == 2)
4207 <  {
5060 <    MyFree(listener_address);
5061 <    DupString(listener_address, yylval.string);
5062 <  }
4207 >    block_state.port.value |= OPER_FLAG_WALLOPS;
4208   }
4209 + #line 4210 "conf_parser.c" /* yacc.c:1646  */
4210      break;
4211  
4212 <  case 251:
4213 <
5068 < /* Line 1806 of yacc.c  */
5069 < #line 1619 "ircd_parser.y"
4212 >  case 237:
4213 > #line 1338 "conf_parser.y" /* yacc.c:1646  */
4214      {
4215    if (conf_parser_ctx.pass == 2)
4216 <  {
5073 <    MyFree(listener_address);
5074 <    DupString(listener_address, yylval.string);
5075 <  }
4216 >    block_state.port.value |= OPER_FLAG_LOCOPS;
4217   }
4218 + #line 4219 "conf_parser.c" /* yacc.c:1646  */
4219      break;
4220  
4221 <  case 252:
4222 <
5081 < /* Line 1806 of yacc.c  */
5082 < #line 1631 "ircd_parser.y"
4221 >  case 238:
4222 > #line 1342 "conf_parser.y" /* yacc.c:1646  */
4223      {
4224    if (conf_parser_ctx.pass == 2)
4225 <  {
5086 <    yy_conf = make_conf_item(CLIENT_TYPE);
5087 <    yy_aconf = map_to_conf(yy_conf);
5088 <  }
5089 <  else
5090 <  {
5091 <    MyFree(class_name);
5092 <    class_name = NULL;
5093 <  }
4225 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4226   }
4227 + #line 4228 "conf_parser.c" /* yacc.c:1646  */
4228      break;
4229  
4230 <  case 253:
4231 <
5099 < /* Line 1806 of yacc.c  */
5100 < #line 1643 "ircd_parser.y"
4230 >  case 239:
4231 > #line 1346 "conf_parser.y" /* yacc.c:1646  */
4232      {
4233    if (conf_parser_ctx.pass == 2)
4234 <  {
4235 <    struct CollectItem *yy_tmp = NULL;
4236 <    dlink_node *ptr = NULL, *next_ptr = NULL;
4234 >    block_state.port.value |= OPER_FLAG_SET;
4235 > }
4236 > #line 4237 "conf_parser.c" /* yacc.c:1646  */
4237 >    break;
4238  
4239 <    if (yy_aconf->user && yy_aconf->host)
4239 >  case 240:
4240 > #line 1350 "conf_parser.y" /* yacc.c:1646  */
4241      {
4242 <      conf_add_class_to_conf(yy_conf, class_name);
4243 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
4244 <    }
4245 <    else
4246 <      delete_conf_item(yy_conf);
4242 >  if (conf_parser_ctx.pass == 2)
4243 >    block_state.port.value |= OPER_FLAG_MODULE;
4244 > }
4245 > #line 4246 "conf_parser.c" /* yacc.c:1646  */
4246 >    break;
4247  
4248 <    /* copy over settings from first struct */
4249 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4248 >  case 241:
4249 > #line 1354 "conf_parser.y" /* yacc.c:1646  */
4250      {
4251 <      struct AccessItem *new_aconf;
4252 <      struct ConfItem *new_conf;
5120 <
5121 <      new_conf = make_conf_item(CLIENT_TYPE);
5122 <      new_aconf = map_to_conf(new_conf);
5123 <
5124 <      yy_tmp = ptr->data;
5125 <
5126 <      assert(yy_tmp->user && yy_tmp->host);
5127 <
5128 <      if (yy_aconf->passwd != NULL)
5129 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5130 <      if (yy_conf->name != NULL)
5131 <        DupString(new_conf->name, yy_conf->name);
5132 <      if (yy_aconf->passwd != NULL)
5133 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5134 <
5135 <      new_aconf->flags = yy_aconf->flags;
5136 <      new_aconf->port  = yy_aconf->port;
5137 <
5138 <      DupString(new_aconf->user, yy_tmp->user);
5139 <      collapse(new_aconf->user);
5140 <
5141 <      DupString(new_aconf->host, yy_tmp->host);
5142 <      collapse(new_aconf->host);
5143 <
5144 <      conf_add_class_to_conf(new_conf, class_name);
5145 <      add_conf_by_address(CONF_CLIENT, new_aconf);
5146 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
5147 <      free_collect_item(yy_tmp);
5148 <    }
5149 <
5150 <    MyFree(class_name);
5151 <    class_name = NULL;
5152 <    yy_conf = NULL;
5153 <    yy_aconf = NULL;
5154 <  }
4251 >  if (conf_parser_ctx.pass == 2)
4252 >    block_state.port.value |= OPER_FLAG_OPME;
4253   }
4254 + #line 4255 "conf_parser.c" /* yacc.c:1646  */
4255      break;
4256  
4257 <  case 265:
4258 <
5160 < /* Line 1806 of yacc.c  */
5161 < #line 1705 "ircd_parser.y"
4257 >  case 242:
4258 > #line 1358 "conf_parser.y" /* yacc.c:1646  */
4259      {
4260    if (conf_parser_ctx.pass == 2)
4261 <  {
4262 <    struct CollectItem *yy_tmp = NULL;
4263 <    struct split_nuh_item nuh;
4264 <
5168 <    nuh.nuhmask  = yylval.string;
5169 <    nuh.nickptr  = NULL;
5170 <    nuh.userptr  = userbuf;
5171 <    nuh.hostptr  = hostbuf;
5172 <
5173 <    nuh.nicksize = 0;
5174 <    nuh.usersize = sizeof(userbuf);
5175 <    nuh.hostsize = sizeof(hostbuf);
5176 <
5177 <    split_nuh(&nuh);
4261 >    block_state.port.value |= OPER_FLAG_NICK_RESV;
4262 > }
4263 > #line 4264 "conf_parser.c" /* yacc.c:1646  */
4264 >    break;
4265  
4266 <    if (yy_aconf->user == NULL)
4267 <    {
5181 <      DupString(yy_aconf->user, userbuf);
5182 <      DupString(yy_aconf->host, hostbuf);
5183 <    }
5184 <    else
4266 >  case 243:
4267 > #line 1362 "conf_parser.y" /* yacc.c:1646  */
4268      {
4269 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4270 <
5188 <      DupString(yy_tmp->user, userbuf);
5189 <      DupString(yy_tmp->host, hostbuf);
5190 <
5191 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
5192 <    }
5193 <  }
4269 >  if (conf_parser_ctx.pass == 2)
4270 >    block_state.port.value |= OPER_FLAG_JOIN_RESV;
4271   }
4272 + #line 4273 "conf_parser.c" /* yacc.c:1646  */
4273      break;
4274  
4275 <  case 266:
4276 <
5199 < /* Line 1806 of yacc.c  */
5200 < #line 1742 "ircd_parser.y"
4275 >  case 244:
4276 > #line 1366 "conf_parser.y" /* yacc.c:1646  */
4277      {
4278    if (conf_parser_ctx.pass == 2)
4279 <  {
5204 <    /* be paranoid */
5205 <    if (yy_aconf->passwd != NULL)
5206 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5207 <
5208 <    MyFree(yy_aconf->passwd);
5209 <    DupString(yy_aconf->passwd, yylval.string);
5210 <  }
4279 >    block_state.port.value |= OPER_FLAG_RESV;
4280   }
4281 + #line 4282 "conf_parser.c" /* yacc.c:1646  */
4282      break;
4283  
4284 <  case 267:
4285 <
5216 < /* Line 1806 of yacc.c  */
5217 < #line 1755 "ircd_parser.y"
4284 >  case 245:
4285 > #line 1370 "conf_parser.y" /* yacc.c:1646  */
4286      {
4287    if (conf_parser_ctx.pass == 2)
4288 <  {
5221 <    MyFree(class_name);
5222 <    DupString(class_name, yylval.string);
5223 <  }
4288 >    block_state.port.value |= OPER_FLAG_UNRESV;
4289   }
4290 + #line 4291 "conf_parser.c" /* yacc.c:1646  */
4291      break;
4292  
4293 <  case 268:
4294 <
5229 < /* Line 1806 of yacc.c  */
5230 < #line 1764 "ircd_parser.y"
4293 >  case 246:
4294 > #line 1374 "conf_parser.y" /* yacc.c:1646  */
4295      {
4296    if (conf_parser_ctx.pass == 2)
4297 <  {
5234 <    if (yylval.number)
5235 <      SetConfEncrypted(yy_aconf);
5236 <    else
5237 <      ClearConfEncrypted(yy_aconf);
5238 <  }
4297 >    block_state.port.value |= OPER_FLAG_CLOSE;
4298   }
4299 + #line 4300 "conf_parser.c" /* yacc.c:1646  */
4300      break;
4301  
4302 <  case 269:
4303 <
5244 < /* Line 1806 of yacc.c  */
5245 < #line 1775 "ircd_parser.y"
4302 >  case 247:
4303 > #line 1384 "conf_parser.y" /* yacc.c:1646  */
4304      {
4305 < }
4305 >  if (conf_parser_ctx.pass != 1)
4306      break;
4307  
4308 <  case 273:
4308 >  reset_block_state();
4309  
4310 < /* Line 1806 of yacc.c  */
4311 < #line 1779 "ircd_parser.y"
4312 <    { not_atom = 1; }
4310 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4311 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4312 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4313 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4314 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4315 > }
4316 > #line 4317 "conf_parser.c" /* yacc.c:1646  */
4317      break;
4318  
4319 <  case 275:
4319 >  case 248:
4320 > #line 1396 "conf_parser.y" /* yacc.c:1646  */
4321 >    {
4322 >  struct ClassItem *class = NULL;
4323  
4324 < /* Line 1806 of yacc.c  */
5260 < #line 1780 "ircd_parser.y"
5261 <    { not_atom = 0; }
4324 >  if (conf_parser_ctx.pass != 1)
4325      break;
4326  
4327 <  case 277:
4327 >  if (!block_state.class.buf[0])
4328 >    break;
4329  
4330 < /* Line 1806 of yacc.c  */
4331 < #line 1783 "ircd_parser.y"
4332 <    {
4333 <  if (conf_parser_ctx.pass == 2)
4330 >  if (!(class = class_find(block_state.class.buf, 0)))
4331 >    class = class_make();
4332 >
4333 >  class->active = 1;
4334 >  xfree(class->name);
4335 >  class->name = xstrdup(block_state.class.buf);
4336 >  class->ping_freq = block_state.ping_freq.value;
4337 >  class->max_perip = block_state.max_perip.value;
4338 >  class->con_freq = block_state.con_freq.value;
4339 >  class->max_total = block_state.max_total.value;
4340 >  class->max_global = block_state.max_global.value;
4341 >  class->max_local = block_state.max_local.value;
4342 >  class->max_sendq = block_state.max_sendq.value;
4343 >  class->max_recvq = block_state.max_recvq.value;
4344 >  class->max_channels = block_state.max_channels.value;
4345 >
4346 >  if (block_state.min_idle.value > block_state.max_idle.value)
4347    {
4348 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_SPOOF_NOTICE;
4349 <    else yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
4348 >    block_state.min_idle.value = 0;
4349 >    block_state.max_idle.value = 0;
4350 >    block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4351    }
4352 +
4353 +  class->flags = block_state.flags.value;
4354 +  class->min_idle = block_state.min_idle.value;
4355 +  class->max_idle = block_state.max_idle.value;
4356 +
4357 +  rebuild_cidr_list(class);
4358 +
4359 +  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4360 +  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4361 +  class->number_per_cidr = block_state.number_per_cidr.value;
4362   }
4363 + #line 4364 "conf_parser.c" /* yacc.c:1646  */
4364      break;
4365  
4366 <  case 278:
4367 <
5279 < /* Line 1806 of yacc.c  */
5280 < #line 1790 "ircd_parser.y"
4366 >  case 268:
4367 > #line 1459 "conf_parser.y" /* yacc.c:1646  */
4368      {
4369 <  if (conf_parser_ctx.pass == 2)
4370 <  {
5284 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NOLIMIT;
5285 <    else yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
5286 <  }
4369 >  if (conf_parser_ctx.pass == 1)
4370 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4371   }
4372 + #line 4373 "conf_parser.c" /* yacc.c:1646  */
4373      break;
4374  
4375 <  case 279:
4376 <
5292 < /* Line 1806 of yacc.c  */
5293 < #line 1797 "ircd_parser.y"
4375 >  case 269:
4376 > #line 1465 "conf_parser.y" /* yacc.c:1646  */
4377      {
4378 <  if (conf_parser_ctx.pass == 2)
4379 <  {
5297 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTKLINE;
5298 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
5299 <  }
4378 >  if (conf_parser_ctx.pass == 1)
4379 >    block_state.ping_freq.value = (yyvsp[-1].number);
4380   }
4381 + #line 4382 "conf_parser.c" /* yacc.c:1646  */
4382      break;
4383  
4384 <  case 280:
4385 <
5305 < /* Line 1806 of yacc.c  */
5306 < #line 1804 "ircd_parser.y"
4384 >  case 270:
4385 > #line 1471 "conf_parser.y" /* yacc.c:1646  */
4386      {
4387 <  if (conf_parser_ctx.pass == 2)
4388 <  {
5310 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NEED_IDENTD;
5311 <    else yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
5312 <  }
4387 >  if (conf_parser_ctx.pass == 1)
4388 >    block_state.max_perip.value = (yyvsp[-1].number);
4389   }
4390 + #line 4391 "conf_parser.c" /* yacc.c:1646  */
4391      break;
4392  
4393 <  case 281:
4394 <
5318 < /* Line 1806 of yacc.c  */
5319 < #line 1811 "ircd_parser.y"
4393 >  case 271:
4394 > #line 1477 "conf_parser.y" /* yacc.c:1646  */
4395      {
4396 <  if (conf_parser_ctx.pass == 2)
4397 <  {
5323 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_CAN_FLOOD;
5324 <    else yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
5325 <  }
4396 >  if (conf_parser_ctx.pass == 1)
4397 >    block_state.con_freq.value = (yyvsp[-1].number);
4398   }
4399 + #line 4400 "conf_parser.c" /* yacc.c:1646  */
4400      break;
4401  
4402 <  case 282:
4403 <
5331 < /* Line 1806 of yacc.c  */
5332 < #line 1818 "ircd_parser.y"
4402 >  case 272:
4403 > #line 1483 "conf_parser.y" /* yacc.c:1646  */
4404      {
4405 <  if (conf_parser_ctx.pass == 2)
4406 <  {
5336 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_IDLE_LINED;
5337 <    else yy_aconf->flags |= CONF_FLAGS_IDLE_LINED;
5338 <  }
4405 >  if (conf_parser_ctx.pass == 1)
4406 >    block_state.max_channels.value = (yyvsp[-1].number);
4407   }
4408 + #line 4409 "conf_parser.c" /* yacc.c:1646  */
4409      break;
4410  
4411 <  case 283:
4412 <
5344 < /* Line 1806 of yacc.c  */
5345 < #line 1825 "ircd_parser.y"
4411 >  case 273:
4412 > #line 1489 "conf_parser.y" /* yacc.c:1646  */
4413      {
4414 <  if (conf_parser_ctx.pass == 2)
4415 <  {
5349 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NO_TILDE;
5350 <    else yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
5351 <  }
4414 >  if (conf_parser_ctx.pass == 1)
4415 >    block_state.max_total.value = (yyvsp[-1].number);
4416   }
4417 + #line 4418 "conf_parser.c" /* yacc.c:1646  */
4418      break;
4419  
4420 <  case 284:
4421 <
5357 < /* Line 1806 of yacc.c  */
5358 < #line 1832 "ircd_parser.y"
4420 >  case 274:
4421 > #line 1495 "conf_parser.y" /* yacc.c:1646  */
4422      {
4423 <  if (conf_parser_ctx.pass == 2)
4424 <  {
5362 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTGLINE;
5363 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
5364 <  }
4423 >  if (conf_parser_ctx.pass == 1)
4424 >    block_state.max_global.value = (yyvsp[-1].number);
4425   }
4426 + #line 4427 "conf_parser.c" /* yacc.c:1646  */
4427      break;
4428  
4429 <  case 285:
4430 <
5370 < /* Line 1806 of yacc.c  */
5371 < #line 1839 "ircd_parser.y"
4429 >  case 275:
4430 > #line 1501 "conf_parser.y" /* yacc.c:1646  */
4431      {
4432 <  if (conf_parser_ctx.pass == 2)
4433 <  {
5375 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTRESV;
5376 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
5377 <  }
4432 >  if (conf_parser_ctx.pass == 1)
4433 >    block_state.max_local.value = (yyvsp[-1].number);
4434   }
4435 + #line 4436 "conf_parser.c" /* yacc.c:1646  */
4436      break;
4437  
4438 <  case 286:
4439 <
5383 < /* Line 1806 of yacc.c  */
5384 < #line 1846 "ircd_parser.y"
4438 >  case 276:
4439 > #line 1507 "conf_parser.y" /* yacc.c:1646  */
4440      {
4441 <  if (conf_parser_ctx.pass == 2)
4442 <  {
5388 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NEED_PASSWORD;
5389 <    else yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
5390 <  }
4441 >  if (conf_parser_ctx.pass == 1)
4442 >    block_state.max_sendq.value = (yyvsp[-1].number);
4443   }
4444 + #line 4445 "conf_parser.c" /* yacc.c:1646  */
4445      break;
4446  
4447 <  case 287:
4448 <
5396 < /* Line 1806 of yacc.c  */
5397 < #line 1856 "ircd_parser.y"
4447 >  case 277:
4448 > #line 1513 "conf_parser.y" /* yacc.c:1646  */
4449      {
4450 <  if (conf_parser_ctx.pass == 2)
4451 <  {
4452 <    MyFree(yy_conf->name);
4450 >  if (conf_parser_ctx.pass == 1)
4451 >    if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX)
4452 >      block_state.max_recvq.value = (yyvsp[-1].number);
4453 > }
4454 > #line 4455 "conf_parser.c" /* yacc.c:1646  */
4455 >    break;
4456  
4457 <    if (strlen(yylval.string) < HOSTLEN)
4458 <    {    
5405 <      DupString(yy_conf->name, yylval.string);
5406 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
5407 <    }
5408 <    else
4457 >  case 278:
4458 > #line 1520 "conf_parser.y" /* yacc.c:1646  */
4459      {
4460 <      ilog(L_ERROR, "Spoofs must be less than %d..ignoring it", HOSTLEN);
4461 <      yy_conf->name = NULL;
5412 <    }
5413 <  }
4460 >  if (conf_parser_ctx.pass == 1)
4461 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number);
4462   }
4463 + #line 4464 "conf_parser.c" /* yacc.c:1646  */
4464      break;
4465  
4466 <  case 288:
4467 <
5419 < /* Line 1806 of yacc.c  */
5420 < #line 1875 "ircd_parser.y"
4466 >  case 279:
4467 > #line 1526 "conf_parser.y" /* yacc.c:1646  */
4468      {
4469 <  if (conf_parser_ctx.pass == 2)
4470 <  {
5424 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5425 <    MyFree(yy_conf->name);
5426 <    DupString(yy_conf->name, yylval.string);
5427 <  }
4469 >  if (conf_parser_ctx.pass == 1)
4470 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number);
4471   }
4472 + #line 4473 "conf_parser.c" /* yacc.c:1646  */
4473      break;
4474  
4475 <  case 289:
4476 <
5433 < /* Line 1806 of yacc.c  */
5434 < #line 1885 "ircd_parser.y"
4475 >  case 280:
4476 > #line 1532 "conf_parser.y" /* yacc.c:1646  */
4477      {
4478 <  if (conf_parser_ctx.pass == 2)
4479 <  {
5438 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5439 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5440 <  }
4478 >  if (conf_parser_ctx.pass == 1)
4479 >    block_state.number_per_cidr.value = (yyvsp[-1].number);
4480   }
4481 + #line 4482 "conf_parser.c" /* yacc.c:1646  */
4482      break;
4483  
4484 <  case 290:
4485 <
5446 < /* Line 1806 of yacc.c  */
5447 < #line 1898 "ircd_parser.y"
4484 >  case 281:
4485 > #line 1538 "conf_parser.y" /* yacc.c:1646  */
4486      {
4487 <  if (conf_parser_ctx.pass == 2)
5450 <  {
5451 <    MyFree(resv_reason);
5452 <    resv_reason = NULL;
5453 <  }
5454 < }
4487 >  if (conf_parser_ctx.pass != 1)
4488      break;
4489  
4490 <  case 291:
4490 >  block_state.min_idle.value = (yyvsp[-1].number);
4491 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4492 > }
4493 > #line 4494 "conf_parser.c" /* yacc.c:1646  */
4494 >    break;
4495  
4496 < /* Line 1806 of yacc.c  */
4497 < #line 1905 "ircd_parser.y"
4496 >  case 282:
4497 > #line 1547 "conf_parser.y" /* yacc.c:1646  */
4498      {
4499 <  if (conf_parser_ctx.pass == 2)
4500 <  {
4501 <    MyFree(resv_reason);
4502 <    resv_reason = NULL;
4503 <  }
4499 >  if (conf_parser_ctx.pass != 1)
4500 >    break;
4501 >
4502 >  block_state.max_idle.value = (yyvsp[-1].number);
4503 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4504   }
4505 + #line 4506 "conf_parser.c" /* yacc.c:1646  */
4506      break;
4507  
4508 <  case 298:
4508 >  case 283:
4509 > #line 1556 "conf_parser.y" /* yacc.c:1646  */
4510 >    {
4511 >  if (conf_parser_ctx.pass == 1)
4512 >    block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4513 > }
4514 > #line 4515 "conf_parser.c" /* yacc.c:1646  */
4515 >    break;
4516  
4517 < /* Line 1806 of yacc.c  */
4518 < #line 1917 "ircd_parser.y"
4517 >  case 287:
4518 > #line 1563 "conf_parser.y" /* yacc.c:1646  */
4519      {
4520 <  if (conf_parser_ctx.pass == 2)
4521 <  {
5477 <    MyFree(resv_reason);
5478 <    DupString(resv_reason, yylval.string);
5479 <  }
4520 >  if (conf_parser_ctx.pass == 1)
4521 >    block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4522   }
4523 + #line 4524 "conf_parser.c" /* yacc.c:1646  */
4524      break;
4525  
4526 <  case 299:
4526 >  case 288:
4527 > #line 1567 "conf_parser.y" /* yacc.c:1646  */
4528 >    {
4529 >  if (conf_parser_ctx.pass == 1)
4530 >    block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4531 > }
4532 > #line 4533 "conf_parser.c" /* yacc.c:1646  */
4533 >    break;
4534  
4535 < /* Line 1806 of yacc.c  */
4536 < #line 1926 "ircd_parser.y"
4535 >  case 289:
4536 > #line 1577 "conf_parser.y" /* yacc.c:1646  */
4537      {
4538    if (conf_parser_ctx.pass == 2)
4539 <  {
5490 <    if (IsChanPrefix(*yylval.string))
5491 <    {
5492 <      char def_reason[] = "No reason";
5493 <
5494 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5495 <    }
5496 <  }
5497 <  /* ignore it for now.. but we really should make a warning if
5498 <   * its an erroneous name --fl_ */
4539 >    reset_block_state();
4540   }
4541 + #line 4542 "conf_parser.c" /* yacc.c:1646  */
4542      break;
4543  
4544 <  case 300:
4544 >  case 291:
4545 > #line 1583 "conf_parser.y" /* yacc.c:1646  */
4546 >    {
4547 >  block_state.flags.value = 0;
4548 > }
4549 > #line 4550 "conf_parser.c" /* yacc.c:1646  */
4550 >    break;
4551  
4552 < /* Line 1806 of yacc.c  */
4553 < #line 1941 "ircd_parser.y"
4552 >  case 295:
4553 > #line 1589 "conf_parser.y" /* yacc.c:1646  */
4554      {
4555    if (conf_parser_ctx.pass == 2)
4556 <  {
5509 <    char def_reason[] = "No reason";
5510 <
5511 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5512 <  }
4556 >    block_state.flags.value |= LISTENER_SSL;
4557   }
4558 + #line 4559 "conf_parser.c" /* yacc.c:1646  */
4559      break;
4560  
4561 <  case 301:
4562 <
5518 < /* Line 1806 of yacc.c  */
5519 < #line 1954 "ircd_parser.y"
4561 >  case 296:
4562 > #line 1593 "conf_parser.y" /* yacc.c:1646  */
4563      {
4564    if (conf_parser_ctx.pass == 2)
4565 <  {
5523 <    yy_conf = make_conf_item(ULINE_TYPE);
5524 <    yy_match_item = map_to_conf(yy_conf);
5525 <    yy_match_item->action = SHARED_ALL;
5526 <  }
4565 >    block_state.flags.value |= LISTENER_HIDDEN;
4566   }
4567 + #line 4568 "conf_parser.c" /* yacc.c:1646  */
4568      break;
4569  
4570 <  case 302:
4571 <
5532 < /* Line 1806 of yacc.c  */
5533 < #line 1962 "ircd_parser.y"
4570 >  case 297:
4571 > #line 1597 "conf_parser.y" /* yacc.c:1646  */
4572      {
4573    if (conf_parser_ctx.pass == 2)
4574 <  {
5537 <    yy_conf = NULL;
5538 <  }
4574 >   block_state.flags.value |= LISTENER_SERVER;
4575   }
4576 + #line 4577 "conf_parser.c" /* yacc.c:1646  */
4577      break;
4578  
4579 <  case 309:
4579 >  case 305:
4580 > #line 1605 "conf_parser.y" /* yacc.c:1646  */
4581 >    { block_state.flags.value = 0; }
4582 > #line 4583 "conf_parser.c" /* yacc.c:1646  */
4583 >    break;
4584  
4585 < /* Line 1806 of yacc.c  */
4586 < #line 1973 "ircd_parser.y"
4585 >  case 309:
4586 > #line 1610 "conf_parser.y" /* yacc.c:1646  */
4587      {
4588    if (conf_parser_ctx.pass == 2)
4589    {
4590 <    MyFree(yy_conf->name);
4591 <    DupString(yy_conf->name, yylval.string);
4590 > #ifndef HAVE_TLS
4591 >    if (block_state.flags.value & LISTENER_SSL)
4592 >    {
4593 >      conf_error_report("TLS not available - port closed");
4594 >      break;
4595 >    }
4596 > #endif
4597 >    listener_add((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4598    }
4599   }
4600 + #line 4601 "conf_parser.c" /* yacc.c:1646  */
4601      break;
4602  
4603    case 310:
4604 <
5557 < /* Line 1806 of yacc.c  */
5558 < #line 1982 "ircd_parser.y"
4604 > #line 1623 "conf_parser.y" /* yacc.c:1646  */
4605      {
4606    if (conf_parser_ctx.pass == 2)
4607    {
4608 <    struct split_nuh_item nuh;
4609 <
4610 <    nuh.nuhmask  = yylval.string;
4611 <    nuh.nickptr  = NULL;
4612 <    nuh.userptr  = userbuf;
4613 <    nuh.hostptr  = hostbuf;
4614 <
5569 <    nuh.nicksize = 0;
5570 <    nuh.usersize = sizeof(userbuf);
5571 <    nuh.hostsize = sizeof(hostbuf);
5572 <
5573 <    split_nuh(&nuh);
4608 > #ifndef HAVE_TLS
4609 >    if (block_state.flags.value & LISTENER_SSL)
4610 >    {
4611 >      conf_error_report("TLS not available - port closed");
4612 >      break;
4613 >    }
4614 > #endif
4615  
4616 <    DupString(yy_match_item->user, userbuf);
4617 <    DupString(yy_match_item->host, hostbuf);
4616 >    for (int i = (yyvsp[-2].number); i <= (yyvsp[0].number); ++i)
4617 >      listener_add(i, block_state.addr.buf, block_state.flags.value);
4618    }
4619   }
4620 + #line 4621 "conf_parser.c" /* yacc.c:1646  */
4621      break;
4622  
4623    case 311:
4624 <
5583 < /* Line 1806 of yacc.c  */
5584 < #line 2004 "ircd_parser.y"
4624 > #line 1640 "conf_parser.y" /* yacc.c:1646  */
4625      {
4626    if (conf_parser_ctx.pass == 2)
4627 <    yy_match_item->action = 0;
4627 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4628   }
4629 + #line 4630 "conf_parser.c" /* yacc.c:1646  */
4630      break;
4631  
4632 <  case 315:
4633 <
5593 < /* Line 1806 of yacc.c  */
5594 < #line 2011 "ircd_parser.y"
4632 >  case 312:
4633 > #line 1646 "conf_parser.y" /* yacc.c:1646  */
4634      {
4635    if (conf_parser_ctx.pass == 2)
4636 <    yy_match_item->action |= SHARED_KLINE;
4636 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4637   }
4638 + #line 4639 "conf_parser.c" /* yacc.c:1646  */
4639      break;
4640  
4641 <  case 316:
4642 <
5603 < /* Line 1806 of yacc.c  */
5604 < #line 2015 "ircd_parser.y"
4641 >  case 313:
4642 > #line 1656 "conf_parser.y" /* yacc.c:1646  */
4643      {
4644    if (conf_parser_ctx.pass == 2)
4645 <    yy_match_item->action |= SHARED_TKLINE;
4645 >    reset_block_state();
4646   }
4647 + #line 4648 "conf_parser.c" /* yacc.c:1646  */
4648      break;
4649  
4650 <  case 317:
4651 <
5613 < /* Line 1806 of yacc.c  */
5614 < #line 2019 "ircd_parser.y"
4650 >  case 314:
4651 > #line 1660 "conf_parser.y" /* yacc.c:1646  */
4652      {
4653 <  if (conf_parser_ctx.pass == 2)
4654 <    yy_match_item->action |= SHARED_UNKLINE;
4655 < }
4653 >  dlink_node *node = NULL;
4654 >
4655 >  if (conf_parser_ctx.pass != 2)
4656      break;
4657  
4658 <  case 318:
4658 >  DLINK_FOREACH(node, block_state.mask.list.head)
4659 >  {
4660 >    struct MaskItem *conf = NULL;
4661 >    struct split_nuh_item nuh;
4662 >    char *s = node->data;
4663  
4664 < /* Line 1806 of yacc.c  */
4665 < #line 2023 "ircd_parser.y"
5625 <    {
5626 <  if (conf_parser_ctx.pass == 2)
5627 <    yy_match_item->action |= SHARED_XLINE;
5628 < }
5629 <    break;
4664 >    if (EmptyString(s))
4665 >      continue;
4666  
4667 <  case 319:
4667 >    nuh.nuhmask  = s;
4668 >    nuh.nickptr  = NULL;
4669 >    nuh.userptr  = block_state.user.buf;
4670 >    nuh.hostptr  = block_state.host.buf;
4671 >    nuh.nicksize = 0;
4672 >    nuh.usersize = sizeof(block_state.user.buf);
4673 >    nuh.hostsize = sizeof(block_state.host.buf);
4674 >    split_nuh(&nuh);
4675  
4676 < /* Line 1806 of yacc.c  */
4677 < #line 2027 "ircd_parser.y"
4678 <    {
5636 <  if (conf_parser_ctx.pass == 2)
5637 <    yy_match_item->action |= SHARED_TXLINE;
5638 < }
5639 <    break;
4676 >    conf        = conf_make(CONF_CLIENT);
4677 >    conf->user  = xstrdup(block_state.user.buf);
4678 >    conf->host  = xstrdup(block_state.host.buf);
4679  
4680 <  case 320:
4680 >    if (block_state.rpass.buf[0])
4681 >      conf->passwd = xstrdup(block_state.rpass.buf);
4682 >    if (block_state.name.buf[0])
4683 >      conf->name = xstrdup(block_state.name.buf);
4684  
4685 < /* Line 1806 of yacc.c  */
4686 < #line 2031 "ircd_parser.y"
4687 <    {
4688 <  if (conf_parser_ctx.pass == 2)
4689 <    yy_match_item->action |= SHARED_UNXLINE;
4685 >    conf->flags = block_state.flags.value;
4686 >    conf->port  = block_state.port.value;
4687 >
4688 >    conf_add_class_to_conf(conf, block_state.class.buf);
4689 >    add_conf_by_address(CONF_CLIENT, conf);
4690 >  }
4691   }
4692 + #line 4693 "conf_parser.c" /* yacc.c:1646  */
4693      break;
4694  
4695 <  case 321:
4696 <
5653 < /* Line 1806 of yacc.c  */
5654 < #line 2035 "ircd_parser.y"
4695 >  case 326:
4696 > #line 1713 "conf_parser.y" /* yacc.c:1646  */
4697      {
4698    if (conf_parser_ctx.pass == 2)
4699 <    yy_match_item->action |= SHARED_RESV;
4699 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4700   }
4701 + #line 4702 "conf_parser.c" /* yacc.c:1646  */
4702      break;
4703  
4704 <  case 322:
4705 <
5663 < /* Line 1806 of yacc.c  */
5664 < #line 2039 "ircd_parser.y"
4704 >  case 327:
4705 > #line 1719 "conf_parser.y" /* yacc.c:1646  */
4706      {
4707    if (conf_parser_ctx.pass == 2)
4708 <    yy_match_item->action |= SHARED_TRESV;
4708 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4709   }
4710 + #line 4711 "conf_parser.c" /* yacc.c:1646  */
4711      break;
4712  
4713 <  case 323:
4714 <
5673 < /* Line 1806 of yacc.c  */
5674 < #line 2043 "ircd_parser.y"
4713 >  case 328:
4714 > #line 1725 "conf_parser.y" /* yacc.c:1646  */
4715      {
4716    if (conf_parser_ctx.pass == 2)
4717 <    yy_match_item->action |= SHARED_UNRESV;
4717 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4718   }
4719 + #line 4720 "conf_parser.c" /* yacc.c:1646  */
4720      break;
4721  
4722 <  case 324:
4723 <
5683 < /* Line 1806 of yacc.c  */
5684 < #line 2047 "ircd_parser.y"
4722 >  case 329:
4723 > #line 1731 "conf_parser.y" /* yacc.c:1646  */
4724      {
4725    if (conf_parser_ctx.pass == 2)
4726 <    yy_match_item->action |= SHARED_LOCOPS;
4726 >  {
4727 >    if (yylval.number)
4728 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4729 >    else
4730 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4731 >  }
4732   }
4733 + #line 4734 "conf_parser.c" /* yacc.c:1646  */
4734      break;
4735  
4736 <  case 325:
4737 <
5693 < /* Line 1806 of yacc.c  */
5694 < #line 2051 "ircd_parser.y"
4736 >  case 330:
4737 > #line 1742 "conf_parser.y" /* yacc.c:1646  */
4738      {
4739    if (conf_parser_ctx.pass == 2)
4740 <    yy_match_item->action = SHARED_ALL;
4740 >    block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4741   }
4742 + #line 4743 "conf_parser.c" /* yacc.c:1646  */
4743      break;
4744  
4745 <  case 326:
4746 <
5703 < /* Line 1806 of yacc.c  */
5704 < #line 2060 "ircd_parser.y"
4745 >  case 334:
4746 > #line 1749 "conf_parser.y" /* yacc.c:1646  */
4747      {
4748    if (conf_parser_ctx.pass == 2)
4749 <  {
5708 <    yy_conf = make_conf_item(CLUSTER_TYPE);
5709 <    yy_conf->flags = SHARED_ALL;
5710 <  }
4749 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4750   }
4751 + #line 4752 "conf_parser.c" /* yacc.c:1646  */
4752      break;
4753  
4754 <  case 327:
4755 <
5716 < /* Line 1806 of yacc.c  */
5717 < #line 2067 "ircd_parser.y"
4754 >  case 335:
4755 > #line 1753 "conf_parser.y" /* yacc.c:1646  */
4756      {
4757    if (conf_parser_ctx.pass == 2)
4758 <  {
5721 <    if (yy_conf->name == NULL)
5722 <      DupString(yy_conf->name, "*");
5723 <    yy_conf = NULL;
5724 <  }
4758 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4759   }
4760 + #line 4761 "conf_parser.c" /* yacc.c:1646  */
4761      break;
4762  
4763 <  case 333:
4764 <
5730 < /* Line 1806 of yacc.c  */
5731 < #line 2080 "ircd_parser.y"
4763 >  case 336:
4764 > #line 1757 "conf_parser.y" /* yacc.c:1646  */
4765      {
4766    if (conf_parser_ctx.pass == 2)
4767 <    DupString(yy_conf->name, yylval.string);
4767 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4768   }
4769 + #line 4770 "conf_parser.c" /* yacc.c:1646  */
4770      break;
4771  
4772 <  case 334:
4773 <
5740 < /* Line 1806 of yacc.c  */
5741 < #line 2086 "ircd_parser.y"
4772 >  case 337:
4773 > #line 1761 "conf_parser.y" /* yacc.c:1646  */
4774      {
4775    if (conf_parser_ctx.pass == 2)
4776 <    yy_conf->flags = 0;
4776 >    block_state.flags.value |= CONF_FLAGS_EXEMPTXLINE;
4777   }
4778 + #line 4779 "conf_parser.c" /* yacc.c:1646  */
4779      break;
4780  
4781    case 338:
4782 <
5750 < /* Line 1806 of yacc.c  */
5751 < #line 2093 "ircd_parser.y"
4782 > #line 1765 "conf_parser.y" /* yacc.c:1646  */
4783      {
4784    if (conf_parser_ctx.pass == 2)
4785 <    yy_conf->flags |= SHARED_KLINE;
4785 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4786   }
4787 + #line 4788 "conf_parser.c" /* yacc.c:1646  */
4788      break;
4789  
4790    case 339:
4791 <
5760 < /* Line 1806 of yacc.c  */
5761 < #line 2097 "ircd_parser.y"
4791 > #line 1769 "conf_parser.y" /* yacc.c:1646  */
4792      {
4793    if (conf_parser_ctx.pass == 2)
4794 <    yy_conf->flags |= SHARED_TKLINE;
4794 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4795   }
4796 + #line 4797 "conf_parser.c" /* yacc.c:1646  */
4797      break;
4798  
4799    case 340:
4800 <
5770 < /* Line 1806 of yacc.c  */
5771 < #line 2101 "ircd_parser.y"
4800 > #line 1773 "conf_parser.y" /* yacc.c:1646  */
4801      {
4802    if (conf_parser_ctx.pass == 2)
4803 <    yy_conf->flags |= SHARED_UNKLINE;
4803 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4804   }
4805 + #line 4806 "conf_parser.c" /* yacc.c:1646  */
4806      break;
4807  
4808    case 341:
4809 <
5780 < /* Line 1806 of yacc.c  */
5781 < #line 2105 "ircd_parser.y"
4809 > #line 1777 "conf_parser.y" /* yacc.c:1646  */
4810      {
4811    if (conf_parser_ctx.pass == 2)
4812 <    yy_conf->flags |= SHARED_XLINE;
4812 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4813   }
4814 + #line 4815 "conf_parser.c" /* yacc.c:1646  */
4815      break;
4816  
4817    case 342:
4818 <
5790 < /* Line 1806 of yacc.c  */
5791 < #line 2109 "ircd_parser.y"
4818 > #line 1781 "conf_parser.y" /* yacc.c:1646  */
4819      {
4820    if (conf_parser_ctx.pass == 2)
4821 <    yy_conf->flags |= SHARED_TXLINE;
4821 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
4822   }
4823 + #line 4824 "conf_parser.c" /* yacc.c:1646  */
4824      break;
4825  
4826    case 343:
4827 <
5800 < /* Line 1806 of yacc.c  */
5801 < #line 2113 "ircd_parser.y"
4827 > #line 1785 "conf_parser.y" /* yacc.c:1646  */
4828      {
4829    if (conf_parser_ctx.pass == 2)
4830 <    yy_conf->flags |= SHARED_UNXLINE;
4830 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4831   }
4832 + #line 4833 "conf_parser.c" /* yacc.c:1646  */
4833      break;
4834  
4835    case 344:
4836 <
5810 < /* Line 1806 of yacc.c  */
5811 < #line 2117 "ircd_parser.y"
4836 > #line 1791 "conf_parser.y" /* yacc.c:1646  */
4837      {
4838 <  if (conf_parser_ctx.pass == 2)
4839 <    yy_conf->flags |= SHARED_RESV;
4838 >  if (conf_parser_ctx.pass != 2)
4839 >    break;
4840 >
4841 >  if (valid_hostname(yylval.string))
4842 >  {
4843 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4844 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4845 >  }
4846 >  else
4847 >    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4848   }
4849 + #line 4850 "conf_parser.c" /* yacc.c:1646  */
4850      break;
4851  
4852    case 345:
4853 <
5820 < /* Line 1806 of yacc.c  */
5821 < #line 2121 "ircd_parser.y"
4853 > #line 1805 "conf_parser.y" /* yacc.c:1646  */
4854      {
4855 <  if (conf_parser_ctx.pass == 2)
4856 <    yy_conf->flags |= SHARED_TRESV;
4855 >  if (conf_parser_ctx.pass != 2)
4856 >    break;
4857 >
4858 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4859 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4860   }
4861 + #line 4862 "conf_parser.c" /* yacc.c:1646  */
4862      break;
4863  
4864    case 346:
4865 <
5830 < /* Line 1806 of yacc.c  */
5831 < #line 2125 "ircd_parser.y"
4865 > #line 1814 "conf_parser.y" /* yacc.c:1646  */
4866      {
4867 <  if (conf_parser_ctx.pass == 2)
4868 <    yy_conf->flags |= SHARED_UNRESV;
4867 >  if (conf_parser_ctx.pass != 2)
4868 >    break;
4869 >
4870 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4871 >  block_state.port.value = (yyvsp[-1].number);
4872   }
4873 + #line 4874 "conf_parser.c" /* yacc.c:1646  */
4874      break;
4875  
4876    case 347:
4877 <
5840 < /* Line 1806 of yacc.c  */
5841 < #line 2129 "ircd_parser.y"
4877 > #line 1827 "conf_parser.y" /* yacc.c:1646  */
4878      {
4879 <  if (conf_parser_ctx.pass == 2)
4880 <    yy_conf->flags |= SHARED_LOCOPS;
4879 >  if (conf_parser_ctx.pass != 2)
4880 >    break;
4881 >
4882 >  reset_block_state();
4883 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4884   }
4885 + #line 4886 "conf_parser.c" /* yacc.c:1646  */
4886      break;
4887  
4888    case 348:
4889 + #line 1834 "conf_parser.y" /* yacc.c:1646  */
4890 +    {
4891 +  if (conf_parser_ctx.pass != 2)
4892 +    break;
4893 +
4894 +  resv_make(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4895 + }
4896 + #line 4897 "conf_parser.c" /* yacc.c:1646  */
4897 +    break;
4898  
4899 < /* Line 1806 of yacc.c  */
4900 < #line 2133 "ircd_parser.y"
4899 >  case 355:
4900 > #line 1845 "conf_parser.y" /* yacc.c:1646  */
4901      {
4902    if (conf_parser_ctx.pass == 2)
4903 <    yy_conf->flags = SHARED_ALL;
4903 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4904   }
4905 + #line 4906 "conf_parser.c" /* yacc.c:1646  */
4906      break;
4907  
4908 <  case 349:
4909 <
5860 < /* Line 1806 of yacc.c  */
5861 < #line 2142 "ircd_parser.y"
4908 >  case 356:
4909 > #line 1851 "conf_parser.y" /* yacc.c:1646  */
4910      {
4911    if (conf_parser_ctx.pass == 2)
4912 <  {
5865 <    yy_conf = make_conf_item(SERVER_TYPE);
5866 <    yy_aconf = (struct AccessItem *)map_to_conf(yy_conf);
5867 <    yy_aconf->passwd = NULL;
5868 <    /* defaults */
5869 <    yy_aconf->port = PORTNUM;
5870 <
5871 <    if (ConfigFileEntry.burst_away)
5872 <      yy_aconf->flags = CONF_FLAGS_BURST_AWAY;
5873 <  }
5874 <  else
5875 <  {
5876 <    MyFree(class_name);
5877 <    class_name = NULL;
5878 <  }
4912 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4913   }
4914 + #line 4915 "conf_parser.c" /* yacc.c:1646  */
4915      break;
4916  
4917 <  case 350:
4918 <
5884 < /* Line 1806 of yacc.c  */
5885 < #line 2160 "ircd_parser.y"
4917 >  case 357:
4918 > #line 1857 "conf_parser.y" /* yacc.c:1646  */
4919      {
4920    if (conf_parser_ctx.pass == 2)
4921 <  {
4922 <    struct CollectItem *yy_hconf=NULL;
4923 <    struct CollectItem *yy_lconf=NULL;
4924 <    dlink_node *ptr;
5892 <    dlink_node *next_ptr;
5893 < #ifdef HAVE_LIBCRYPTO
5894 <    if (yy_aconf->host &&
5895 <        ((yy_aconf->passwd && yy_aconf->spasswd) ||
5896 <         (yy_aconf->rsa_public_key && IsConfCryptLink(yy_aconf))))
5897 < #else /* !HAVE_LIBCRYPTO */
5898 <      if (yy_aconf->host && !IsConfCryptLink(yy_aconf) &&
5899 <          yy_aconf->passwd && yy_aconf->spasswd)
5900 < #endif /* !HAVE_LIBCRYPTO */
5901 <        {
5902 <          if (conf_add_server(yy_conf, class_name) == -1)
5903 <          {
5904 <            delete_conf_item(yy_conf);
5905 <            yy_conf = NULL;
5906 <            yy_aconf = NULL;
5907 <          }
5908 <        }
5909 <        else
5910 <        {
5911 <          /* Even if yy_conf ->name is NULL
5912 <           * should still unhook any hub/leaf confs still pending
5913 <           */
5914 <          unhook_hub_leaf_confs();
5915 <
5916 <          if (yy_conf->name != NULL)
5917 <          {
5918 < #ifndef HAVE_LIBCRYPTO
5919 <            if (IsConfCryptLink(yy_aconf))
5920 <              yyerror("Ignoring connect block -- no OpenSSL support");
5921 < #else
5922 <            if (IsConfCryptLink(yy_aconf) && !yy_aconf->rsa_public_key)
5923 <              yyerror("Ignoring connect block -- missing key");
5924 < #endif
5925 <            if (yy_aconf->host == NULL)
5926 <              yyerror("Ignoring connect block -- missing host");
5927 <            else if (!IsConfCryptLink(yy_aconf) &&
5928 <                    (!yy_aconf->passwd || !yy_aconf->spasswd))
5929 <              yyerror("Ignoring connect block -- missing password");
5930 <          }
5931 <
5932 <
5933 <          /* XXX
5934 <           * This fixes a try_connections() core (caused by invalid class_ptr
5935 <           * pointers) reported by metalrock. That's an ugly fix, but there
5936 <           * is currently no better way. The entire config subsystem needs an
5937 <           * rewrite ASAP. make_conf_item() shouldn't really add things onto
5938 <           * a doubly linked list immediately without any sanity checks!  -Michael
5939 <           */
5940 <          delete_conf_item(yy_conf);
5941 <
5942 <          yy_aconf = NULL;
5943 <          yy_conf = NULL;
5944 <        }
5945 <
5946 <      /*
5947 <       * yy_conf is still pointing at the server that is having
5948 <       * a connect block built for it. This means, y_aconf->name
5949 <       * points to the actual irc name this server will be known as.
5950 <       * Now this new server has a set or even just one hub_mask (or leaf_mask)
5951 <       * given in the link list at yy_hconf. Fill in the HUB confs
5952 <       * from this link list now.
5953 <       */        
5954 <      DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
5955 <      {
5956 <        struct ConfItem *new_hub_conf;
5957 <        struct MatchItem *match_item;
5958 <
5959 <        yy_hconf = ptr->data;
5960 <
5961 <        /* yy_conf == NULL is a fatal error for this connect block! */
5962 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5963 <        {
5964 <          new_hub_conf = make_conf_item(HUB_TYPE);
5965 <          match_item = (struct MatchItem *)map_to_conf(new_hub_conf);
5966 <          DupString(new_hub_conf->name, yy_conf->name);
5967 <          if (yy_hconf->user != NULL)
5968 <            DupString(match_item->user, yy_hconf->user);
5969 <          else
5970 <            DupString(match_item->user, "*");
5971 <          if (yy_hconf->host != NULL)
5972 <            DupString(match_item->host, yy_hconf->host);
5973 <          else
5974 <            DupString(match_item->host, "*");
5975 <        }
5976 <        dlinkDelete(&yy_hconf->node, &hub_conf_list);
5977 <        free_collect_item(yy_hconf);
5978 <      }
5979 <
5980 <      /* Ditto for the LEAF confs */
5981 <
5982 <      DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
5983 <      {
5984 <        struct ConfItem *new_leaf_conf;
5985 <        struct MatchItem *match_item;
4921 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4922 > }
4923 > #line 4924 "conf_parser.c" /* yacc.c:1646  */
4924 >    break;
4925  
4926 <        yy_lconf = ptr->data;
4926 >  case 363:
4927 > #line 1872 "conf_parser.y" /* yacc.c:1646  */
4928 >    {
4929 >  if (conf_parser_ctx.pass != 2)
4930 >    break;
4931  
4932 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
4933 <        {
4934 <          new_leaf_conf = make_conf_item(LEAF_TYPE);
4935 <          match_item = (struct MatchItem *)map_to_conf(new_leaf_conf);
5993 <          DupString(new_leaf_conf->name, yy_conf->name);
5994 <          if (yy_lconf->user != NULL)
5995 <            DupString(match_item->user, yy_lconf->user);
5996 <          else
5997 <            DupString(match_item->user, "*");
5998 <          if (yy_lconf->host != NULL)
5999 <            DupString(match_item->host, yy_lconf->host);
6000 <          else
6001 <            DupString(match_item->host, "*");
6002 <        }
6003 <        dlinkDelete(&yy_lconf->node, &leaf_conf_list);
6004 <        free_collect_item(yy_lconf);
6005 <      }
6006 <      MyFree(class_name);
6007 <      class_name = NULL;
6008 <      yy_conf = NULL;
6009 <      yy_aconf = NULL;
4932 >  if (valid_servname(yylval.string))
4933 >  {
4934 >    struct ServiceItem *service = service_make();
4935 >    service->name = xstrdup(yylval.string);
4936    }
4937   }
4938 + #line 4939 "conf_parser.c" /* yacc.c:1646  */
4939      break;
4940  
4941 <  case 370:
4942 <
6016 < /* Line 1806 of yacc.c  */
6017 < #line 2298 "ircd_parser.y"
4941 >  case 364:
4942 > #line 1888 "conf_parser.y" /* yacc.c:1646  */
4943      {
4944 <  if (conf_parser_ctx.pass == 2)
4945 <  {
6021 <    if (yy_conf->name != NULL)
6022 <      yyerror("Multiple connect name entry");
4944 >  if (conf_parser_ctx.pass != 2)
4945 >    break;
4946  
4947 <    MyFree(yy_conf->name);
4948 <    DupString(yy_conf->name, yylval.string);
4949 <  }
4947 >  reset_block_state();
4948 >
4949 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4950 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
4951 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4952 >  block_state.flags.value = SHARED_ALL;
4953   }
4954 + #line 4955 "conf_parser.c" /* yacc.c:1646  */
4955      break;
4956  
4957 <  case 371:
4958 <
6032 < /* Line 1806 of yacc.c  */
6033 < #line 2310 "ircd_parser.y"
4957 >  case 365:
4958 > #line 1899 "conf_parser.y" /* yacc.c:1646  */
4959      {
4960 <  if (conf_parser_ctx.pass == 2)
4961 <  {
6037 <    if (yy_conf->name != NULL)
6038 <      yyerror("Multiple connect name entry");
4960 >  if (conf_parser_ctx.pass != 2)
4961 >    break;
4962  
4963 <    MyFree(yy_conf->name);
4964 <    DupString(yy_conf->name, yylval.string);
4965 <  }
4963 >  struct SharedItem *shared = shared_make();
4964 >  shared->type = block_state.flags.value;
4965 >  shared->server = xstrdup(block_state.name.buf);
4966 >  shared->user = xstrdup(block_state.user.buf);
4967 >  shared->host = xstrdup(block_state.host.buf);
4968   }
4969 + #line 4970 "conf_parser.c" /* yacc.c:1646  */
4970      break;
4971  
4972    case 372:
4973 <
6048 < /* Line 1806 of yacc.c  */
6049 < #line 2322 "ircd_parser.y"
4973 > #line 1914 "conf_parser.y" /* yacc.c:1646  */
4974      {
4975    if (conf_parser_ctx.pass == 2)
4976 <  {
6053 <    MyFree(yy_aconf->host);
6054 <    DupString(yy_aconf->host, yylval.string);
6055 <  }
4976 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4977   }
4978 + #line 4979 "conf_parser.c" /* yacc.c:1646  */
4979      break;
4980  
4981    case 373:
4982 <
6061 < /* Line 1806 of yacc.c  */
6062 < #line 2331 "ircd_parser.y"
4982 > #line 1920 "conf_parser.y" /* yacc.c:1646  */
4983      {
4984    if (conf_parser_ctx.pass == 2)
4985    {
4986 <    struct addrinfo hints, *res;
6067 <
6068 <    memset(&hints, 0, sizeof(hints));
4986 >    struct split_nuh_item nuh;
4987  
4988 <    hints.ai_family   = AF_UNSPEC;
4989 <    hints.ai_socktype = SOCK_STREAM;
4990 <    hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
4988 >    nuh.nuhmask  = yylval.string;
4989 >    nuh.nickptr  = NULL;
4990 >    nuh.userptr  = block_state.user.buf;
4991 >    nuh.hostptr  = block_state.host.buf;
4992  
4993 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
4994 <      ilog(L_ERROR, "Invalid netmask for server vhost(%s)", yylval.string);
4995 <    else
6077 <    {
6078 <      assert(res != NULL);
4993 >    nuh.nicksize = 0;
4994 >    nuh.usersize = sizeof(block_state.user.buf);
4995 >    nuh.hostsize = sizeof(block_state.host.buf);
4996  
4997 <      memcpy(&yy_aconf->my_ipnum, res->ai_addr, res->ai_addrlen);
6081 <      yy_aconf->my_ipnum.ss.ss_family = res->ai_family;
6082 <      yy_aconf->my_ipnum.ss_len = res->ai_addrlen;
6083 <      freeaddrinfo(res);
6084 <    }
4997 >    split_nuh(&nuh);
4998    }
4999   }
5000 + #line 5001 "conf_parser.c" /* yacc.c:1646  */
5001      break;
5002  
5003    case 374:
5004 <
6091 < /* Line 1806 of yacc.c  */
6092 < #line 2357 "ircd_parser.y"
5004 > #line 1939 "conf_parser.y" /* yacc.c:1646  */
5005      {
5006    if (conf_parser_ctx.pass == 2)
5007 <  {
6096 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
6097 <      yyerror("Server passwords cannot begin with a colon");
6098 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
6099 <      yyerror("Server passwords cannot contain spaces");
6100 <    else {
6101 <      if (yy_aconf->spasswd != NULL)
6102 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
6103 <
6104 <      MyFree(yy_aconf->spasswd);
6105 <      DupString(yy_aconf->spasswd, yylval.string);
6106 <    }
6107 <  }
5007 >    block_state.flags.value = 0;
5008   }
5009 + #line 5010 "conf_parser.c" /* yacc.c:1646  */
5010      break;
5011  
5012 <  case 375:
5013 <
6113 < /* Line 1806 of yacc.c  */
6114 < #line 2375 "ircd_parser.y"
5012 >  case 378:
5013 > #line 1946 "conf_parser.y" /* yacc.c:1646  */
5014      {
5015    if (conf_parser_ctx.pass == 2)
5016 <  {
6118 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
6119 <      yyerror("Server passwords cannot begin with a colon");
6120 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
6121 <      yyerror("Server passwords cannot contain spaces");
6122 <    else {
6123 <      if (yy_aconf->passwd != NULL)
6124 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
6125 <
6126 <      MyFree(yy_aconf->passwd);
6127 <      DupString(yy_aconf->passwd, yylval.string);
6128 <    }
6129 <  }
5016 >    block_state.flags.value |= SHARED_KLINE;
5017   }
5018 + #line 5019 "conf_parser.c" /* yacc.c:1646  */
5019      break;
5020  
5021 <  case 376:
5022 <
6135 < /* Line 1806 of yacc.c  */
6136 < #line 2393 "ircd_parser.y"
5021 >  case 379:
5022 > #line 1950 "conf_parser.y" /* yacc.c:1646  */
5023      {
5024    if (conf_parser_ctx.pass == 2)
5025 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5025 >    block_state.flags.value |= SHARED_UNKLINE;
5026   }
5027 + #line 5028 "conf_parser.c" /* yacc.c:1646  */
5028      break;
5029  
5030 <  case 377:
5031 <
6145 < /* Line 1806 of yacc.c  */
6146 < #line 2399 "ircd_parser.y"
5030 >  case 380:
5031 > #line 1954 "conf_parser.y" /* yacc.c:1646  */
5032      {
5033    if (conf_parser_ctx.pass == 2)
5034 <    yy_aconf->aftype = AF_INET;
5034 >    block_state.flags.value |= SHARED_DLINE;
5035   }
5036 + #line 5037 "conf_parser.c" /* yacc.c:1646  */
5037      break;
5038  
5039 <  case 378:
5040 <
6155 < /* Line 1806 of yacc.c  */
6156 < #line 2403 "ircd_parser.y"
5039 >  case 381:
5040 > #line 1958 "conf_parser.y" /* yacc.c:1646  */
5041      {
6158 #ifdef IPV6
5042    if (conf_parser_ctx.pass == 2)
5043 <    yy_aconf->aftype = AF_INET6;
6161 < #endif
5043 >    block_state.flags.value |= SHARED_UNDLINE;
5044   }
5045 + #line 5046 "conf_parser.c" /* yacc.c:1646  */
5046      break;
5047  
5048 <  case 379:
5049 <
6167 < /* Line 1806 of yacc.c  */
6168 < #line 2411 "ircd_parser.y"
5048 >  case 382:
5049 > #line 1962 "conf_parser.y" /* yacc.c:1646  */
5050      {
5051 +  if (conf_parser_ctx.pass == 2)
5052 +    block_state.flags.value |= SHARED_XLINE;
5053   }
5054 + #line 5055 "conf_parser.c" /* yacc.c:1646  */
5055      break;
5056  
5057    case 383:
5058 <
6175 < /* Line 1806 of yacc.c  */
6176 < #line 2415 "ircd_parser.y"
6177 <    { not_atom = 1; }
6178 <    break;
6179 <
6180 <  case 385:
6181 <
6182 < /* Line 1806 of yacc.c  */
6183 < #line 2416 "ircd_parser.y"
6184 <    { not_atom = 0; }
6185 <    break;
6186 <
6187 <  case 387:
6188 <
6189 < /* Line 1806 of yacc.c  */
6190 < #line 2419 "ircd_parser.y"
5058 > #line 1966 "conf_parser.y" /* yacc.c:1646  */
5059      {
5060    if (conf_parser_ctx.pass == 2)
5061 < #ifndef HAVE_LIBZ
6194 <    yyerror("Ignoring flags = compressed; -- no zlib support");
6195 < #else
6196 < {
6197 <   if (not_atom)ClearConfCompressed(yy_aconf);
6198 <   else SetConfCompressed(yy_aconf);
6199 < }
6200 < #endif
5061 >    block_state.flags.value |= SHARED_UNXLINE;
5062   }
5063 + #line 5064 "conf_parser.c" /* yacc.c:1646  */
5064      break;
5065  
5066 <  case 388:
5067 <
6206 < /* Line 1806 of yacc.c  */
6207 < #line 2430 "ircd_parser.y"
5066 >  case 384:
5067 > #line 1970 "conf_parser.y" /* yacc.c:1646  */
5068      {
5069    if (conf_parser_ctx.pass == 2)
5070 <  {
6211 <    if (not_atom)ClearConfCryptLink(yy_aconf);
6212 <    else SetConfCryptLink(yy_aconf);
6213 <  }
5070 >    block_state.flags.value |= SHARED_RESV;
5071   }
5072 + #line 5073 "conf_parser.c" /* yacc.c:1646  */
5073      break;
5074  
5075 <  case 389:
5076 <
6219 < /* Line 1806 of yacc.c  */
6220 < #line 2437 "ircd_parser.y"
5075 >  case 385:
5076 > #line 1974 "conf_parser.y" /* yacc.c:1646  */
5077      {
5078    if (conf_parser_ctx.pass == 2)
5079 <  {
6224 <    if (not_atom)ClearConfAllowAutoConn(yy_aconf);
6225 <    else SetConfAllowAutoConn(yy_aconf);
6226 <  }
5079 >    block_state.flags.value |= SHARED_UNRESV;
5080   }
5081 + #line 5082 "conf_parser.c" /* yacc.c:1646  */
5082      break;
5083  
5084 <  case 390:
5085 <
6232 < /* Line 1806 of yacc.c  */
6233 < #line 2444 "ircd_parser.y"
5084 >  case 386:
5085 > #line 1978 "conf_parser.y" /* yacc.c:1646  */
5086      {
5087    if (conf_parser_ctx.pass == 2)
5088 <  {
6237 <    if (not_atom)ClearConfAwayBurst(yy_aconf);
6238 <    else SetConfAwayBurst(yy_aconf);
6239 <  }
5088 >    block_state.flags.value |= SHARED_LOCOPS;
5089   }
5090 + #line 5091 "conf_parser.c" /* yacc.c:1646  */
5091      break;
5092  
5093 <  case 391:
5094 <
6245 < /* Line 1806 of yacc.c  */
6246 < #line 2451 "ircd_parser.y"
5093 >  case 387:
5094 > #line 1982 "conf_parser.y" /* yacc.c:1646  */
5095      {
5096    if (conf_parser_ctx.pass == 2)
5097 <  {
6250 <    if (not_atom)ClearConfTopicBurst(yy_aconf);
6251 <    else SetConfTopicBurst(yy_aconf);
6252 <  }
5097 >    block_state.flags.value = SHARED_ALL;
5098   }
5099 + #line 5100 "conf_parser.c" /* yacc.c:1646  */
5100      break;
5101  
5102 <  case 392:
5103 <
6258 < /* Line 1806 of yacc.c  */
6259 < #line 2461 "ircd_parser.y"
6260 <    {
6261 < #ifdef HAVE_LIBCRYPTO
6262 <  if (conf_parser_ctx.pass == 2)
6263 <  {
6264 <    BIO *file;
6265 <
6266 <    if (yy_aconf->rsa_public_key != NULL)
6267 <    {
6268 <      RSA_free(yy_aconf->rsa_public_key);
6269 <      yy_aconf->rsa_public_key = NULL;
6270 <    }
6271 <
6272 <    if (yy_aconf->rsa_public_key_file != NULL)
6273 <    {
6274 <      MyFree(yy_aconf->rsa_public_key_file);
6275 <      yy_aconf->rsa_public_key_file = NULL;
6276 <    }
6277 <
6278 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
6279 <
6280 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
6281 <    {
6282 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
6283 <      break;
6284 <    }
6285 <
6286 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
6287 <
6288 <    if (yy_aconf->rsa_public_key == NULL)
5102 >  case 388:
5103 > #line 1992 "conf_parser.y" /* yacc.c:1646  */
5104      {
5105 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
6291 <      break;
6292 <    }
6293 <      
6294 <    BIO_set_close(file, BIO_CLOSE);
6295 <    BIO_free(file);
6296 <  }
6297 < #endif /* HAVE_LIBCRYPTO */
6298 < }
5105 >  if (conf_parser_ctx.pass != 2)
5106      break;
5107  
5108 <  case 393:
5108 >  reset_block_state();
5109  
5110 < /* Line 1806 of yacc.c  */
5111 < #line 2502 "ircd_parser.y"
6305 <    {
6306 <  if (conf_parser_ctx.pass == 2)
6307 <  {
6308 <    if (yylval.number)
6309 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
6310 <    else
6311 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
6312 <  }
5110 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5111 >  block_state.flags.value = CLUSTER_ALL;
5112   }
5113 + #line 5114 "conf_parser.c" /* yacc.c:1646  */
5114      break;
5115  
5116 <  case 394:
5117 <
6318 < /* Line 1806 of yacc.c  */
6319 < #line 2513 "ircd_parser.y"
5116 >  case 389:
5117 > #line 2001 "conf_parser.y" /* yacc.c:1646  */
5118      {
5119 <  if (conf_parser_ctx.pass == 2)
5120 <  {
6323 <    struct CollectItem *yy_tmp;
5119 >  if (conf_parser_ctx.pass != 2)
5120 >    break;
5121  
5122 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
5123 <    DupString(yy_tmp->host, yylval.string);
5124 <    DupString(yy_tmp->user, "*");
6328 <    dlinkAdd(yy_tmp, &yy_tmp->node, &hub_conf_list);
6329 <  }
5122 >  struct ClusterItem *cluster = cluster_make();
5123 >  cluster->type = block_state.flags.value;
5124 >  cluster->server = xstrdup(block_state.name.buf);
5125   }
5126 + #line 5127 "conf_parser.c" /* yacc.c:1646  */
5127      break;
5128  
5129    case 395:
5130 <
6335 < /* Line 1806 of yacc.c  */
6336 < #line 2526 "ircd_parser.y"
5130 > #line 2014 "conf_parser.y" /* yacc.c:1646  */
5131      {
5132    if (conf_parser_ctx.pass == 2)
5133 <  {
6340 <    struct CollectItem *yy_tmp;
6341 <
6342 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6343 <    DupString(yy_tmp->host, yylval.string);
6344 <    DupString(yy_tmp->user, "*");
6345 <    dlinkAdd(yy_tmp, &yy_tmp->node, &leaf_conf_list);
6346 <  }
5133 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5134   }
5135 + #line 5136 "conf_parser.c" /* yacc.c:1646  */
5136      break;
5137  
5138    case 396:
5139 <
6352 < /* Line 1806 of yacc.c  */
6353 < #line 2539 "ircd_parser.y"
5139 > #line 2020 "conf_parser.y" /* yacc.c:1646  */
5140      {
5141    if (conf_parser_ctx.pass == 2)
5142 <  {
6357 <    MyFree(class_name);
6358 <    DupString(class_name, yylval.string);
6359 <  }
5142 >    block_state.flags.value = 0;
5143   }
5144 + #line 5145 "conf_parser.c" /* yacc.c:1646  */
5145      break;
5146  
5147 <  case 397:
5148 <
6365 < /* Line 1806 of yacc.c  */
6366 < #line 2548 "ircd_parser.y"
6367 <    {
6368 < #ifdef HAVE_LIBCRYPTO
6369 <  if (conf_parser_ctx.pass == 2)
6370 <  {
6371 <    struct EncCapability *ecap;
6372 <    const char *cipher_name;
6373 <    int found = 0;
6374 <
6375 <    yy_aconf->cipher_preference = NULL;
6376 <    cipher_name = yylval.string;
6377 <
6378 <    for (ecap = CipherTable; ecap->name; ecap++)
5147 >  case 400:
5148 > #line 2027 "conf_parser.y" /* yacc.c:1646  */
5149      {
6380      if ((irccmp(ecap->name, cipher_name) == 0) &&
6381          (ecap->cap & CAP_ENC_MASK))
6382      {
6383        yy_aconf->cipher_preference = ecap;
6384        found = 1;
6385        break;
6386      }
6387    }
6388
6389    if (!found)
6390      yyerror("Invalid cipher");
6391  }
6392 #else
5150    if (conf_parser_ctx.pass == 2)
5151 <    yyerror("Ignoring cipher_preference -- no OpenSSL support");
6395 < #endif
5151 >    block_state.flags.value |= CLUSTER_KLINE;
5152   }
5153 + #line 5154 "conf_parser.c" /* yacc.c:1646  */
5154      break;
5155  
5156 <  case 398:
5157 <
6401 < /* Line 1806 of yacc.c  */
6402 < #line 2583 "ircd_parser.y"
5156 >  case 401:
5157 > #line 2031 "conf_parser.y" /* yacc.c:1646  */
5158      {
5159    if (conf_parser_ctx.pass == 2)
5160 <  {
6406 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
6407 <    regex_ban = 0;
6408 <  }
5160 >    block_state.flags.value |= CLUSTER_UNKLINE;
5161   }
5162 + #line 5163 "conf_parser.c" /* yacc.c:1646  */
5163      break;
5164  
5165 <  case 399:
5166 <
6414 < /* Line 1806 of yacc.c  */
6415 < #line 2590 "ircd_parser.y"
5165 >  case 402:
5166 > #line 2035 "conf_parser.y" /* yacc.c:1646  */
5167      {
5168    if (conf_parser_ctx.pass == 2)
5169 <  {
6419 <    if (userbuf[0] && hostbuf[0])
6420 <    {
6421 <      if (regex_ban)
6422 <      {
6423 < #ifdef HAVE_LIBPCRE
6424 <        void *exp_user = NULL;
6425 <        void *exp_host = NULL;
6426 <        const char *errptr = NULL;
6427 <
6428 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
6429 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
6430 <        {
6431 <          ilog(L_ERROR, "Failed to add regular expression based K-Line: %s",
6432 <               errptr);
6433 <          break;
6434 <        }
6435 <
6436 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
6437 <        yy_aconf->regexuser = exp_user;
6438 <        yy_aconf->regexhost = exp_host;
6439 <
6440 <        DupString(yy_aconf->user, userbuf);
6441 <        DupString(yy_aconf->host, hostbuf);
6442 <
6443 <        if (reasonbuf[0])
6444 <          DupString(yy_aconf->reason, reasonbuf);
6445 <        else
6446 <          DupString(yy_aconf->reason, "No reason");
6447 < #else
6448 <        ilog(L_ERROR, "Failed to add regular expression based K-Line: no PCRE support");
6449 <        break;
6450 < #endif
6451 <      }
6452 <      else
6453 <      {
6454 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
6455 <
6456 <        DupString(yy_aconf->user, userbuf);
6457 <        DupString(yy_aconf->host, hostbuf);
6458 <
6459 <        if (reasonbuf[0])
6460 <          DupString(yy_aconf->reason, reasonbuf);
6461 <        else
6462 <          DupString(yy_aconf->reason, "No reason");
6463 <        add_conf_by_address(CONF_KILL, yy_aconf);
6464 <      }
6465 <    }
6466 <
6467 <    yy_aconf = NULL;
6468 <  }
5169 >    block_state.flags.value |= CLUSTER_DLINE;
5170   }
5171 + #line 5172 "conf_parser.c" /* yacc.c:1646  */
5172      break;
5173  
5174 <  case 400:
5175 <
6474 < /* Line 1806 of yacc.c  */
6475 < #line 2646 "ircd_parser.y"
5174 >  case 403:
5175 > #line 2039 "conf_parser.y" /* yacc.c:1646  */
5176      {
5177 +  if (conf_parser_ctx.pass == 2)
5178 +    block_state.flags.value |= CLUSTER_UNDLINE;
5179   }
5180 + #line 5181 "conf_parser.c" /* yacc.c:1646  */
5181      break;
5182  
5183    case 404:
5184 <
6482 < /* Line 1806 of yacc.c  */
6483 < #line 2651 "ircd_parser.y"
5184 > #line 2043 "conf_parser.y" /* yacc.c:1646  */
5185      {
5186    if (conf_parser_ctx.pass == 2)
5187 <    regex_ban = 1;
5187 >    block_state.flags.value |= CLUSTER_XLINE;
5188   }
5189 + #line 5190 "conf_parser.c" /* yacc.c:1646  */
5190      break;
5191  
5192 <  case 411:
5193 <
6492 < /* Line 1806 of yacc.c  */
6493 < #line 2660 "ircd_parser.y"
5192 >  case 405:
5193 > #line 2047 "conf_parser.y" /* yacc.c:1646  */
5194      {
5195    if (conf_parser_ctx.pass == 2)
5196 <  {
6497 <    struct split_nuh_item nuh;
6498 <
6499 <    nuh.nuhmask  = yylval.string;
6500 <    nuh.nickptr  = NULL;
6501 <    nuh.userptr  = userbuf;
6502 <    nuh.hostptr  = hostbuf;
6503 <
6504 <    nuh.nicksize = 0;
6505 <    nuh.usersize = sizeof(userbuf);
6506 <    nuh.hostsize = sizeof(hostbuf);
6507 <
6508 <    split_nuh(&nuh);
6509 <  }
5196 >    block_state.flags.value |= CLUSTER_UNXLINE;
5197   }
5198 + #line 5199 "conf_parser.c" /* yacc.c:1646  */
5199      break;
5200  
5201 <  case 412:
5202 <
6515 < /* Line 1806 of yacc.c  */
6516 < #line 2679 "ircd_parser.y"
5201 >  case 406:
5202 > #line 2051 "conf_parser.y" /* yacc.c:1646  */
5203      {
5204    if (conf_parser_ctx.pass == 2)
5205 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5205 >    block_state.flags.value |= CLUSTER_RESV;
5206   }
5207 + #line 5208 "conf_parser.c" /* yacc.c:1646  */
5208      break;
5209  
5210 <  case 413:
5211 <
6525 < /* Line 1806 of yacc.c  */
6526 < #line 2688 "ircd_parser.y"
5210 >  case 407:
5211 > #line 2055 "conf_parser.y" /* yacc.c:1646  */
5212      {
5213    if (conf_parser_ctx.pass == 2)
5214 <    hostbuf[0] = reasonbuf[0] = '\0';
5214 >    block_state.flags.value |= CLUSTER_UNRESV;
5215   }
5216 + #line 5217 "conf_parser.c" /* yacc.c:1646  */
5217      break;
5218  
5219 <  case 414:
5220 <
6535 < /* Line 1806 of yacc.c  */
6536 < #line 2692 "ircd_parser.y"
5219 >  case 408:
5220 > #line 2059 "conf_parser.y" /* yacc.c:1646  */
5221      {
5222    if (conf_parser_ctx.pass == 2)
5223 <  {
6540 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
6541 <    {
6542 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
6543 <      DupString(yy_aconf->host, hostbuf);
6544 <
6545 <      if (reasonbuf[0])
6546 <        DupString(yy_aconf->reason, reasonbuf);
6547 <      else
6548 <        DupString(yy_aconf->reason, "No reason");
6549 <      add_conf_by_address(CONF_DLINE, yy_aconf);
6550 <      yy_aconf = NULL;
6551 <    }
6552 <  }
5223 >    block_state.flags.value |= CLUSTER_LOCOPS;
5224   }
5225 + #line 5226 "conf_parser.c" /* yacc.c:1646  */
5226      break;
5227  
5228 <  case 420:
5229 <
6558 < /* Line 1806 of yacc.c  */
6559 < #line 2714 "ircd_parser.y"
5228 >  case 409:
5229 > #line 2063 "conf_parser.y" /* yacc.c:1646  */
5230      {
5231    if (conf_parser_ctx.pass == 2)
5232 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5232 >    block_state.flags.value = CLUSTER_ALL;
5233   }
5234 + #line 5235 "conf_parser.c" /* yacc.c:1646  */
5235      break;
5236  
5237 <  case 421:
5238 <
6568 < /* Line 1806 of yacc.c  */
6569 < #line 2720 "ircd_parser.y"
5237 >  case 410:
5238 > #line 2073 "conf_parser.y" /* yacc.c:1646  */
5239      {
5240 <  if (conf_parser_ctx.pass == 2)
5241 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
6573 < }
5240 >
5241 >  if (conf_parser_ctx.pass != 2)
5242      break;
5243  
5244 <  case 427:
5244 >  reset_block_state();
5245 >  block_state.aftype.value = AF_INET;
5246 >  block_state.port.value = PORTNUM;
5247 > }
5248 > #line 5249 "conf_parser.c" /* yacc.c:1646  */
5249 >    break;
5250  
5251 < /* Line 1806 of yacc.c  */
5252 < #line 2734 "ircd_parser.y"
6580 <    {
6581 <  if (conf_parser_ctx.pass == 2)
6582 <  {
6583 <    if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5251 >  case 411:
5252 > #line 2082 "conf_parser.y" /* yacc.c:1646  */
5253      {
5254 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5255 <      DupString(yy_aconf->host, yylval.string);
5254 >  struct MaskItem *conf = NULL;
5255 >  struct addrinfo hints, *res;
5256  
5257 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
6589 <      yy_aconf = NULL;
6590 <    }
6591 <  }
6592 < }
5257 >  if (conf_parser_ctx.pass != 2)
5258      break;
5259  
5260 <  case 428:
5260 >  if (!block_state.name.buf[0] ||
5261 >      !block_state.host.buf[0])
5262 >    break;
5263  
5264 < /* Line 1806 of yacc.c  */
5265 < #line 2752 "ircd_parser.y"
6599 <    {
6600 <  if (conf_parser_ctx.pass == 2)
6601 <  {
6602 <    regex_ban = 0;
6603 <    reasonbuf[0] = gecos_name[0] = '\0';
6604 <  }
6605 < }
5264 >  if (!block_state.rpass.buf[0] ||
5265 >      !block_state.spass.buf[0])
5266      break;
5267  
5268 <  case 429:
5268 >  if (has_wildcards(block_state.name.buf) ||
5269 >      has_wildcards(block_state.host.buf))
5270 >    break;
5271  
5272 < /* Line 1806 of yacc.c  */
5273 < #line 2759 "ircd_parser.y"
5274 <    {
5275 <  if (conf_parser_ctx.pass == 2)
5276 <  {
5277 <    if (gecos_name[0])
5278 <    {
5279 <      if (regex_ban)
6618 <      {
6619 < #ifdef HAVE_LIBPCRE
6620 <        void *exp_p = NULL;
6621 <        const char *errptr = NULL;
5272 >  conf = conf_make(CONF_SERVER);
5273 >  conf->port = block_state.port.value;
5274 >  conf->flags = block_state.flags.value;
5275 >  conf->aftype = block_state.aftype.value;
5276 >  conf->host = xstrdup(block_state.host.buf);
5277 >  conf->name = xstrdup(block_state.name.buf);
5278 >  conf->passwd = xstrdup(block_state.rpass.buf);
5279 >  conf->spasswd = xstrdup(block_state.spass.buf);
5280  
5281 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
5282 <        {
6625 <          ilog(L_ERROR, "Failed to add regular expression based X-Line: %s",
6626 <               errptr);
6627 <          break;
6628 <        }
5281 >  if (block_state.cert.buf[0])
5282 >    conf->certfp = xstrdup(block_state.cert.buf);
5283  
5284 <        yy_conf = make_conf_item(RXLINE_TYPE);
5285 <        yy_conf->regexpname = exp_p;
6632 < #else
6633 <        ilog(L_ERROR, "Failed to add regular expression based X-Line: no PCRE support");
6634 <        break;
6635 < #endif
6636 <      }
6637 <      else
6638 <        yy_conf = make_conf_item(XLINE_TYPE);
5284 >  if (block_state.ciph.buf[0])
5285 >    conf->cipher_list = xstrdup(block_state.ciph.buf);
5286  
5287 <      yy_match_item = map_to_conf(yy_conf);
5288 <      DupString(yy_conf->name, gecos_name);
5287 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5288 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5289  
5290 <      if (reasonbuf[0])
5291 <        DupString(yy_match_item->reason, reasonbuf);
5292 <      else
6646 <        DupString(yy_match_item->reason, "No reason");
6647 <    }
6648 <  }
6649 < }
6650 <    break;
5290 >  if (block_state.bind.buf[0])
5291 >  {
5292 >    memset(&hints, 0, sizeof(hints));
5293  
5294 <  case 430:
5294 >    hints.ai_family   = AF_UNSPEC;
5295 >    hints.ai_socktype = SOCK_STREAM;
5296 >    hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5297  
5298 < /* Line 1806 of yacc.c  */
5299 < #line 2799 "ircd_parser.y"
5298 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5299 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5300 >    else
5301      {
5302 +      assert(res);
5303 +
5304 +      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5305 +      conf->bind.ss.ss_family = res->ai_family;
5306 +      conf->bind.ss_len = res->ai_addrlen;
5307 +      freeaddrinfo(res);
5308 +    }
5309 +  }
5310 +
5311 +  conf_add_class_to_conf(conf, block_state.class.buf);
5312 +  lookup_confhost(conf);
5313   }
5314 + #line 5315 "conf_parser.c" /* yacc.c:1646  */
5315      break;
5316  
5317 <  case 434:
5318 <
6662 < /* Line 1806 of yacc.c  */
6663 < #line 2804 "ircd_parser.y"
5317 >  case 429:
5318 > #line 2162 "conf_parser.y" /* yacc.c:1646  */
5319      {
5320    if (conf_parser_ctx.pass == 2)
5321 <    regex_ban = 1;
5321 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5322   }
5323 + #line 5324 "conf_parser.c" /* yacc.c:1646  */
5324      break;
5325  
5326 <  case 441:
5327 <
6672 < /* Line 1806 of yacc.c  */
6673 < #line 2813 "ircd_parser.y"
5326 >  case 430:
5327 > #line 2168 "conf_parser.y" /* yacc.c:1646  */
5328      {
5329    if (conf_parser_ctx.pass == 2)
5330 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5330 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5331   }
5332 + #line 5333 "conf_parser.c" /* yacc.c:1646  */
5333      break;
5334  
5335 <  case 442:
5336 <
6682 < /* Line 1806 of yacc.c  */
6683 < #line 2819 "ircd_parser.y"
5335 >  case 431:
5336 > #line 2174 "conf_parser.y" /* yacc.c:1646  */
5337      {
5338    if (conf_parser_ctx.pass == 2)
5339 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5339 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5340   }
5341 + #line 5342 "conf_parser.c" /* yacc.c:1646  */
5342      break;
5343  
5344 <  case 502:
5345 <
6692 < /* Line 1806 of yacc.c  */
6693 < #line 2864 "ircd_parser.y"
5344 >  case 432:
5345 > #line 2180 "conf_parser.y" /* yacc.c:1646  */
5346      {
5347 <  ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
6696 < }
5347 >  if (conf_parser_ctx.pass != 2)
5348      break;
5349  
5350 <  case 503:
5350 >  if ((yyvsp[-1].string)[0] == ':')
5351 >    conf_error_report("Server passwords cannot begin with a colon");
5352 >  else if (strchr((yyvsp[-1].string), ' '))
5353 >    conf_error_report("Server passwords cannot contain spaces");
5354 >  else
5355 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5356 > }
5357 > #line 5358 "conf_parser.c" /* yacc.c:1646  */
5358 >    break;
5359  
5360 < /* Line 1806 of yacc.c  */
5361 < #line 2869 "ircd_parser.y"
5360 >  case 433:
5361 > #line 2193 "conf_parser.y" /* yacc.c:1646  */
5362      {
5363 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
6705 < }
5363 >  if (conf_parser_ctx.pass != 2)
5364      break;
5365  
5366 <  case 504:
5366 >  if ((yyvsp[-1].string)[0] == ':')
5367 >    conf_error_report("Server passwords cannot begin with a colon");
5368 >  else if (strchr((yyvsp[-1].string), ' '))
5369 >    conf_error_report("Server passwords cannot contain spaces");
5370 >  else
5371 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5372 > }
5373 > #line 5374 "conf_parser.c" /* yacc.c:1646  */
5374 >    break;
5375  
5376 < /* Line 1806 of yacc.c  */
5377 < #line 2874 "ircd_parser.y"
5376 >  case 434:
5377 > #line 2206 "conf_parser.y" /* yacc.c:1646  */
5378      {
5379 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5379 >  if (conf_parser_ctx.pass == 2)
5380 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5381   }
5382 + #line 5383 "conf_parser.c" /* yacc.c:1646  */
5383      break;
5384  
5385 <  case 505:
5386 <
6719 < /* Line 1806 of yacc.c  */
6720 < #line 2879 "ircd_parser.y"
5385 >  case 435:
5386 > #line 2212 "conf_parser.y" /* yacc.c:1646  */
5387      {
5388 <  ConfigFileEntry.burst_away = yylval.number;
5388 >  if (conf_parser_ctx.pass == 2)
5389 >    block_state.port.value = (yyvsp[-1].number);
5390   }
5391 + #line 5392 "conf_parser.c" /* yacc.c:1646  */
5392      break;
5393  
5394 <  case 506:
5395 <
6728 < /* Line 1806 of yacc.c  */
6729 < #line 2884 "ircd_parser.y"
5394 >  case 436:
5395 > #line 2218 "conf_parser.y" /* yacc.c:1646  */
5396      {
5397 <  ConfigFileEntry.use_whois_actually = yylval.number;
5397 >  if (conf_parser_ctx.pass == 2)
5398 >    block_state.aftype.value = AF_INET;
5399   }
5400 + #line 5401 "conf_parser.c" /* yacc.c:1646  */
5401      break;
5402  
5403 <  case 507:
5404 <
6737 < /* Line 1806 of yacc.c  */
6738 < #line 2889 "ircd_parser.y"
5403 >  case 437:
5404 > #line 2222 "conf_parser.y" /* yacc.c:1646  */
5405      {
5406 <  GlobalSetOptions.rejecttime = yylval.number;
5406 >  if (conf_parser_ctx.pass == 2)
5407 >    block_state.aftype.value = AF_INET6;
5408   }
5409 + #line 5410 "conf_parser.c" /* yacc.c:1646  */
5410      break;
5411  
5412 <  case 508:
5413 <
6746 < /* Line 1806 of yacc.c  */
6747 < #line 2894 "ircd_parser.y"
5412 >  case 438:
5413 > #line 2228 "conf_parser.y" /* yacc.c:1646  */
5414      {
5415 <  ConfigFileEntry.tkline_expire_notices = yylval.number;
5415 >  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5416   }
5417 + #line 5418 "conf_parser.c" /* yacc.c:1646  */
5418      break;
5419  
5420 <  case 509:
5421 <
6755 < /* Line 1806 of yacc.c  */
6756 < #line 2899 "ircd_parser.y"
5420 >  case 442:
5421 > #line 2234 "conf_parser.y" /* yacc.c:1646  */
5422      {
5423 <  ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5423 >  if (conf_parser_ctx.pass == 2)
5424 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5425   }
5426 + #line 5427 "conf_parser.c" /* yacc.c:1646  */
5427      break;
5428  
5429 <  case 510:
5430 <
6764 < /* Line 1806 of yacc.c  */
6765 < #line 2904 "ircd_parser.y"
5429 >  case 443:
5430 > #line 2238 "conf_parser.y" /* yacc.c:1646  */
5431      {
5432 <  ConfigFileEntry.hide_spoof_ips = yylval.number;
5432 >  if (conf_parser_ctx.pass == 2)
5433 >    block_state.flags.value |= CONF_FLAGS_SSL;
5434   }
5435 + #line 5436 "conf_parser.c" /* yacc.c:1646  */
5436      break;
5437  
5438 <  case 511:
5439 <
6773 < /* Line 1806 of yacc.c  */
6774 < #line 2909 "ircd_parser.y"
5438 >  case 444:
5439 > #line 2244 "conf_parser.y" /* yacc.c:1646  */
5440      {
5441 <  ConfigFileEntry.ignore_bogus_ts = yylval.number;
5441 >  if (conf_parser_ctx.pass == 2)
5442 >  {
5443 >    if (yylval.number)
5444 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5445 >    else
5446 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5447 >  }
5448   }
5449 + #line 5450 "conf_parser.c" /* yacc.c:1646  */
5450      break;
5451  
5452 <  case 512:
5453 <
6782 < /* Line 1806 of yacc.c  */
6783 < #line 2914 "ircd_parser.y"
5452 >  case 445:
5453 > #line 2255 "conf_parser.y" /* yacc.c:1646  */
5454      {
5455 <  ConfigFileEntry.disable_remote = yylval.number;
5455 >  if (conf_parser_ctx.pass == 2)
5456 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5457   }
5458 + #line 5459 "conf_parser.c" /* yacc.c:1646  */
5459      break;
5460  
5461 <  case 513:
5462 <
6791 < /* Line 1806 of yacc.c  */
6792 < #line 2919 "ircd_parser.y"
5461 >  case 446:
5462 > #line 2261 "conf_parser.y" /* yacc.c:1646  */
5463      {
5464 <  ConfigFileEntry.failed_oper_notice = yylval.number;
5464 >  if (conf_parser_ctx.pass == 2)
5465 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5466   }
5467 + #line 5468 "conf_parser.c" /* yacc.c:1646  */
5468      break;
5469  
5470 <  case 514:
5471 <
6800 < /* Line 1806 of yacc.c  */
6801 < #line 2924 "ircd_parser.y"
5470 >  case 447:
5471 > #line 2267 "conf_parser.y" /* yacc.c:1646  */
5472      {
5473 <  ConfigFileEntry.anti_nick_flood = yylval.number;
5473 >  if (conf_parser_ctx.pass == 2)
5474 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5475   }
5476 + #line 5477 "conf_parser.c" /* yacc.c:1646  */
5477      break;
5478  
5479 <  case 515:
5480 <
6809 < /* Line 1806 of yacc.c  */
6810 < #line 2929 "ircd_parser.y"
5479 >  case 448:
5480 > #line 2273 "conf_parser.y" /* yacc.c:1646  */
5481      {
5482 <  ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5482 > #ifdef HAVE_TLS
5483 >  if (conf_parser_ctx.pass == 2)
5484 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5485 > #else
5486 >  if (conf_parser_ctx.pass == 2)
5487 >    conf_error_report("Ignoring connect::ciphers -- no TLS support");
5488 > #endif
5489   }
5490 + #line 5491 "conf_parser.c" /* yacc.c:1646  */
5491      break;
5492  
5493 <  case 516:
5494 <
6818 < /* Line 1806 of yacc.c  */
6819 < #line 2934 "ircd_parser.y"
5493 >  case 449:
5494 > #line 2288 "conf_parser.y" /* yacc.c:1646  */
5495      {
5496 <  ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5496 >  if (conf_parser_ctx.pass == 2)
5497 >    reset_block_state();
5498   }
5499 + #line 5500 "conf_parser.c" /* yacc.c:1646  */
5500      break;
5501  
5502 <  case 517:
5503 <
6827 < /* Line 1806 of yacc.c  */
6828 < #line 2939 "ircd_parser.y"
5502 >  case 450:
5503 > #line 2292 "conf_parser.y" /* yacc.c:1646  */
5504      {
5505 <  ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5506 < }
5505 >  struct MaskItem *conf = NULL;
5506 >
5507 >  if (conf_parser_ctx.pass != 2)
5508 >    break;
5509 >
5510 >  if (!block_state.user.buf[0] ||
5511 >      !block_state.host.buf[0])
5512      break;
5513  
5514 <  case 518:
5514 >  conf = conf_make(CONF_KLINE);
5515 >  conf->user = xstrdup(block_state.user.buf);
5516 >  conf->host = xstrdup(block_state.host.buf);
5517  
5518 < /* Line 1806 of yacc.c  */
5519 < #line 2944 "ircd_parser.y"
5520 <    {
5521 <  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5518 >  if (block_state.rpass.buf[0])
5519 >    conf->reason = xstrdup(block_state.rpass.buf);
5520 >  else
5521 >    conf->reason = xstrdup(CONF_NOREASON);
5522 >  add_conf_by_address(CONF_KLINE, conf);
5523   }
5524 + #line 5525 "conf_parser.c" /* yacc.c:1646  */
5525      break;
5526  
5527 <  case 519:
5528 <
6845 < /* Line 1806 of yacc.c  */
6846 < #line 2949 "ircd_parser.y"
5527 >  case 456:
5528 > #line 2317 "conf_parser.y" /* yacc.c:1646  */
5529      {
5530 <  ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5530 >
5531 >  if (conf_parser_ctx.pass == 2)
5532 >  {
5533 >    struct split_nuh_item nuh;
5534 >
5535 >    nuh.nuhmask  = yylval.string;
5536 >    nuh.nickptr  = NULL;
5537 >    nuh.userptr  = block_state.user.buf;
5538 >    nuh.hostptr  = block_state.host.buf;
5539 >
5540 >    nuh.nicksize = 0;
5541 >    nuh.usersize = sizeof(block_state.user.buf);
5542 >    nuh.hostsize = sizeof(block_state.host.buf);
5543 >
5544 >    split_nuh(&nuh);
5545 >  }
5546   }
5547 + #line 5548 "conf_parser.c" /* yacc.c:1646  */
5548      break;
5549  
5550 <  case 520:
5551 <
6854 < /* Line 1806 of yacc.c  */
6855 < #line 2954 "ircd_parser.y"
5550 >  case 457:
5551 > #line 2337 "conf_parser.y" /* yacc.c:1646  */
5552      {
5553    if (conf_parser_ctx.pass == 2)
5554 <    ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5554 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5555   }
5556 + #line 5557 "conf_parser.c" /* yacc.c:1646  */
5557      break;
5558  
5559 <  case 521:
5560 <
6864 < /* Line 1806 of yacc.c  */
6865 < #line 2960 "ircd_parser.y"
5559 >  case 458:
5560 > #line 2347 "conf_parser.y" /* yacc.c:1646  */
5561      {
5562 <  if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
5563 <  {
6869 <    ilog(L_CRIT, "You haven't read your config file properly.");
6870 <    ilog(L_CRIT, "There is a line in the example conf that will kill your server if not removed.");
6871 <    ilog(L_CRIT, "Consider actually reading/editing the conf file, and removing this line.");
6872 <    exit(0);
6873 <  }
5562 >  if (conf_parser_ctx.pass == 2)
5563 >    reset_block_state();
5564   }
5565 + #line 5566 "conf_parser.c" /* yacc.c:1646  */
5566      break;
5567  
5568 <  case 522:
5569 <
6879 < /* Line 1806 of yacc.c  */
6880 < #line 2971 "ircd_parser.y"
5568 >  case 459:
5569 > #line 2351 "conf_parser.y" /* yacc.c:1646  */
5570      {
5571 <  ConfigFileEntry.kline_with_reason = yylval.number;
5572 < }
5571 >  struct MaskItem *conf = NULL;
5572 >
5573 >  if (conf_parser_ctx.pass != 2)
5574      break;
5575  
5576 <  case 523:
5576 >  if (!block_state.addr.buf[0])
5577 >    break;
5578  
5579 < /* Line 1806 of yacc.c  */
6889 < #line 2976 "ircd_parser.y"
6890 <    {
6891 <  if (conf_parser_ctx.pass == 2)
5579 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5580    {
5581 <    MyFree(ConfigFileEntry.kline_reason);
5582 <    DupString(ConfigFileEntry.kline_reason, yylval.string);
5581 >    conf = conf_make(CONF_DLINE);
5582 >    conf->host = xstrdup(block_state.addr.buf);
5583 >
5584 >    if (block_state.rpass.buf[0])
5585 >      conf->reason = xstrdup(block_state.rpass.buf);
5586 >    else
5587 >      conf->reason = xstrdup(CONF_NOREASON);
5588 >    add_conf_by_address(CONF_DLINE, conf);
5589    }
5590   }
5591 + #line 5592 "conf_parser.c" /* yacc.c:1646  */
5592      break;
5593  
5594 <  case 524:
5595 <
6901 < /* Line 1806 of yacc.c  */
6902 < #line 2985 "ircd_parser.y"
5594 >  case 465:
5595 > #line 2377 "conf_parser.y" /* yacc.c:1646  */
5596      {
5597 <  ConfigFileEntry.invisible_on_connect = yylval.number;
5597 >  if (conf_parser_ctx.pass == 2)
5598 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5599   }
5600 + #line 5601 "conf_parser.c" /* yacc.c:1646  */
5601      break;
5602  
5603 <  case 525:
5604 <
6910 < /* Line 1806 of yacc.c  */
6911 < #line 2990 "ircd_parser.y"
5603 >  case 466:
5604 > #line 2383 "conf_parser.y" /* yacc.c:1646  */
5605      {
5606 <  ConfigFileEntry.warn_no_nline = yylval.number;
5606 >  if (conf_parser_ctx.pass == 2)
5607 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5608   }
5609 + #line 5610 "conf_parser.c" /* yacc.c:1646  */
5610      break;
5611  
5612 <  case 526:
5613 <
6919 < /* Line 1806 of yacc.c  */
6920 < #line 2995 "ircd_parser.y"
5612 >  case 472:
5613 > #line 2398 "conf_parser.y" /* yacc.c:1646  */
5614      {
5615 <  ConfigFileEntry.stats_e_disabled = yylval.number;
5615 >  if (conf_parser_ctx.pass == 2)
5616 >  {
5617 >    if (*yylval.string && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5618 >    {
5619 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5620 >      conf->host = xstrdup(yylval.string);
5621 >
5622 >      add_conf_by_address(CONF_EXEMPT, conf);
5623 >    }
5624 >  }
5625   }
5626 + #line 5627 "conf_parser.c" /* yacc.c:1646  */
5627      break;
5628  
5629 <  case 527:
5630 <
6928 < /* Line 1806 of yacc.c  */
6929 < #line 3000 "ircd_parser.y"
5629 >  case 473:
5630 > #line 2415 "conf_parser.y" /* yacc.c:1646  */
5631      {
5632 <  ConfigFileEntry.stats_o_oper_only = yylval.number;
5632 >  if (conf_parser_ctx.pass == 2)
5633 >    reset_block_state();
5634   }
5635 + #line 5636 "conf_parser.c" /* yacc.c:1646  */
5636      break;
5637  
5638 <  case 528:
5639 <
6937 < /* Line 1806 of yacc.c  */
6938 < #line 3005 "ircd_parser.y"
5638 >  case 474:
5639 > #line 2419 "conf_parser.y" /* yacc.c:1646  */
5640      {
5641 <  ConfigFileEntry.stats_P_oper_only = yylval.number;
6941 < }
5641 >  if (conf_parser_ctx.pass != 2)
5642      break;
5643  
5644 <  case 529:
5644 >  if (!block_state.name.buf[0])
5645 >    break;
5646  
5647 < /* Line 1806 of yacc.c  */
5648 < #line 3010 "ircd_parser.y"
5649 <    {
5650 <  ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5647 >  struct GecosItem *gecos = gecos_make();
5648 >  gecos->mask = xstrdup(block_state.name.buf);
5649 >
5650 >  if (block_state.rpass.buf[0])
5651 >    gecos->reason = xstrdup(block_state.rpass.buf);
5652 >  else
5653 >    gecos->reason = xstrdup(CONF_NOREASON);
5654   }
5655 + #line 5656 "conf_parser.c" /* yacc.c:1646  */
5656      break;
5657  
5658 <  case 530:
5659 <
6955 < /* Line 1806 of yacc.c  */
6956 < #line 3013 "ircd_parser.y"
5658 >  case 480:
5659 > #line 2439 "conf_parser.y" /* yacc.c:1646  */
5660      {
5661 <  ConfigFileEntry.stats_k_oper_only = 1;
5661 >  if (conf_parser_ctx.pass == 2)
5662 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5663   }
5664 + #line 5665 "conf_parser.c" /* yacc.c:1646  */
5665      break;
5666  
5667 <  case 531:
5668 <
6964 < /* Line 1806 of yacc.c  */
6965 < #line 3018 "ircd_parser.y"
5667 >  case 481:
5668 > #line 2445 "conf_parser.y" /* yacc.c:1646  */
5669      {
5670 <  ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5670 >  if (conf_parser_ctx.pass == 2)
5671 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5672   }
5673 + #line 5674 "conf_parser.c" /* yacc.c:1646  */
5674      break;
5675  
5676    case 532:
5677 <
6973 < /* Line 1806 of yacc.c  */
6974 < #line 3021 "ircd_parser.y"
5677 > #line 2507 "conf_parser.y" /* yacc.c:1646  */
5678      {
5679 <  ConfigFileEntry.stats_i_oper_only = 1;
5679 >  ConfigGeneral.away_count = (yyvsp[-1].number);
5680   }
5681 + #line 5682 "conf_parser.c" /* yacc.c:1646  */
5682      break;
5683  
5684    case 533:
5685 <
6982 < /* Line 1806 of yacc.c  */
6983 < #line 3026 "ircd_parser.y"
5685 > #line 2512 "conf_parser.y" /* yacc.c:1646  */
5686      {
5687 <  ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5687 >  ConfigGeneral.away_time = (yyvsp[-1].number);
5688   }
5689 + #line 5690 "conf_parser.c" /* yacc.c:1646  */
5690      break;
5691  
5692    case 534:
5693 <
6991 < /* Line 1806 of yacc.c  */
6992 < #line 3031 "ircd_parser.y"
5693 > #line 2517 "conf_parser.y" /* yacc.c:1646  */
5694      {
5695 <  ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5695 >  ConfigGeneral.max_watch = (yyvsp[-1].number);
5696   }
5697 + #line 5698 "conf_parser.c" /* yacc.c:1646  */
5698      break;
5699  
5700    case 535:
5701 <
7000 < /* Line 1806 of yacc.c  */
7001 < #line 3036 "ircd_parser.y"
5701 > #line 2522 "conf_parser.y" /* yacc.c:1646  */
5702      {
5703 <  ConfigFileEntry.opers_bypass_callerid = yylval.number;
5703 >  ConfigGeneral.whowas_history_length = (yyvsp[-1].number);
5704   }
5705 + #line 5706 "conf_parser.c" /* yacc.c:1646  */
5706      break;
5707  
5708    case 536:
5709 <
7009 < /* Line 1806 of yacc.c  */
7010 < #line 3041 "ircd_parser.y"
5709 > #line 2527 "conf_parser.y" /* yacc.c:1646  */
5710      {
5711 <  ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
5711 >  if (conf_parser_ctx.pass == 2)
5712 >    ConfigGeneral.cycle_on_host_change = yylval.number;
5713   }
5714 + #line 5715 "conf_parser.c" /* yacc.c:1646  */
5715      break;
5716  
5717    case 537:
5718 <
7018 < /* Line 1806 of yacc.c  */
7019 < #line 3046 "ircd_parser.y"
5718 > #line 2533 "conf_parser.y" /* yacc.c:1646  */
5719      {
5720 <  ConfigFileEntry.short_motd = yylval.number;
5720 >  ConfigGeneral.dline_min_cidr = (yyvsp[-1].number);
5721   }
5722 + #line 5723 "conf_parser.c" /* yacc.c:1646  */
5723      break;
5724  
5725    case 538:
5726 <
7027 < /* Line 1806 of yacc.c  */
7028 < #line 3051 "ircd_parser.y"
5726 > #line 2538 "conf_parser.y" /* yacc.c:1646  */
5727      {
5728 <  ConfigFileEntry.no_oper_flood = yylval.number;
5728 >  ConfigGeneral.dline_min_cidr6 = (yyvsp[-1].number);
5729   }
5730 + #line 5731 "conf_parser.c" /* yacc.c:1646  */
5731      break;
5732  
5733    case 539:
5734 <
7036 < /* Line 1806 of yacc.c  */
7037 < #line 3056 "ircd_parser.y"
5734 > #line 2543 "conf_parser.y" /* yacc.c:1646  */
5735      {
5736 <  ConfigFileEntry.true_no_oper_flood = yylval.number;
5736 >  ConfigGeneral.kline_min_cidr = (yyvsp[-1].number);
5737   }
5738 + #line 5739 "conf_parser.c" /* yacc.c:1646  */
5739      break;
5740  
5741    case 540:
5742 <
7045 < /* Line 1806 of yacc.c  */
7046 < #line 3061 "ircd_parser.y"
5742 > #line 2548 "conf_parser.y" /* yacc.c:1646  */
5743      {
5744 <  ConfigFileEntry.oper_pass_resv = yylval.number;
5744 >  ConfigGeneral.kline_min_cidr6 = (yyvsp[-1].number);
5745   }
5746 + #line 5747 "conf_parser.c" /* yacc.c:1646  */
5747      break;
5748  
5749    case 541:
5750 <
7054 < /* Line 1806 of yacc.c  */
7055 < #line 3066 "ircd_parser.y"
5750 > #line 2553 "conf_parser.y" /* yacc.c:1646  */
5751      {
5752 <  if (conf_parser_ctx.pass == 2)
7058 <  {
7059 <    if (strlen(yylval.string) > LOCALE_LENGTH-2)
7060 <      yylval.string[LOCALE_LENGTH-1] = '\0';
7061 <
7062 <    set_locale(yylval.string);
7063 <  }
5752 >  ConfigGeneral.tkline_expire_notices = yylval.number;
5753   }
5754 + #line 5755 "conf_parser.c" /* yacc.c:1646  */
5755      break;
5756  
5757    case 542:
5758 <
7069 < /* Line 1806 of yacc.c  */
7070 < #line 3077 "ircd_parser.y"
5758 > #line 2558 "conf_parser.y" /* yacc.c:1646  */
5759      {
5760 <  ConfigFileEntry.idletime = (yyvsp[(3) - (4)].number);
5760 >  ConfigGeneral.kill_chase_time_limit = (yyvsp[-1].number);
5761   }
5762 + #line 5763 "conf_parser.c" /* yacc.c:1646  */
5763      break;
5764  
5765    case 543:
5766 <
7078 < /* Line 1806 of yacc.c  */
7079 < #line 3082 "ircd_parser.y"
5766 > #line 2563 "conf_parser.y" /* yacc.c:1646  */
5767      {
5768 <  ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
5768 >  ConfigGeneral.ignore_bogus_ts = yylval.number;
5769   }
5770 + #line 5771 "conf_parser.c" /* yacc.c:1646  */
5771      break;
5772  
5773    case 544:
5774 <
7087 < /* Line 1806 of yacc.c  */
7088 < #line 3087 "ircd_parser.y"
5774 > #line 2568 "conf_parser.y" /* yacc.c:1646  */
5775      {
5776 <  ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
5776 >  ConfigGeneral.failed_oper_notice = yylval.number;
5777   }
5778 + #line 5779 "conf_parser.c" /* yacc.c:1646  */
5779      break;
5780  
5781    case 545:
5782 <
7096 < /* Line 1806 of yacc.c  */
7097 < #line 3092 "ircd_parser.y"
5782 > #line 2573 "conf_parser.y" /* yacc.c:1646  */
5783      {
5784 <  if (conf_parser_ctx.pass == 2)
7100 <  {
7101 <    MyFree(ConfigFileEntry.servlink_path);
7102 <    DupString(ConfigFileEntry.servlink_path, yylval.string);
7103 <  }
5784 >  ConfigGeneral.anti_nick_flood = yylval.number;
5785   }
5786 + #line 5787 "conf_parser.c" /* yacc.c:1646  */
5787      break;
5788  
5789    case 546:
5790 <
7109 < /* Line 1806 of yacc.c  */
7110 < #line 3101 "ircd_parser.y"
5790 > #line 2578 "conf_parser.y" /* yacc.c:1646  */
5791      {
5792 < #ifdef HAVE_LIBCRYPTO
7113 <  if (conf_parser_ctx.pass == 2)
7114 <  {
7115 <    struct EncCapability *ecap;
7116 <    const char *cipher_name;
7117 <    int found = 0;
7118 <
7119 <    ConfigFileEntry.default_cipher_preference = NULL;
7120 <    cipher_name = yylval.string;
7121 <
7122 <    for (ecap = CipherTable; ecap->name; ecap++)
7123 <    {
7124 <      if ((irccmp(ecap->name, cipher_name) == 0) &&
7125 <          (ecap->cap & CAP_ENC_MASK))
7126 <      {
7127 <        ConfigFileEntry.default_cipher_preference = ecap;
7128 <        found = 1;
7129 <        break;
7130 <      }
7131 <    }
7132 <
7133 <    if (!found)
7134 <      yyerror("Invalid cipher");
7135 <  }
7136 < #else
7137 <  if (conf_parser_ctx.pass == 2)
7138 <    yyerror("Ignoring default_cipher_preference -- no OpenSSL support");
7139 < #endif
5792 >  ConfigGeneral.max_nick_time = (yyvsp[-1].number);
5793   }
5794 + #line 5795 "conf_parser.c" /* yacc.c:1646  */
5795      break;
5796  
5797    case 547:
5798 <
7145 < /* Line 1806 of yacc.c  */
7146 < #line 3133 "ircd_parser.y"
5798 > #line 2583 "conf_parser.y" /* yacc.c:1646  */
5799      {
5800 <  if (conf_parser_ctx.pass == 2)
7149 <  {
7150 <    ConfigFileEntry.compression_level = (yyvsp[(3) - (4)].number);
7151 < #ifndef HAVE_LIBZ
7152 <    yyerror("Ignoring compression_level -- no zlib support");
7153 < #else
7154 <    if ((ConfigFileEntry.compression_level < 1) ||
7155 <        (ConfigFileEntry.compression_level > 9))
7156 <    {
7157 <      yyerror("Ignoring invalid compression_level, using default");
7158 <      ConfigFileEntry.compression_level = 0;
7159 <    }
7160 < #endif
7161 <  }
5800 >  ConfigGeneral.max_nick_changes = (yyvsp[-1].number);
5801   }
5802 + #line 5803 "conf_parser.c" /* yacc.c:1646  */
5803      break;
5804  
5805    case 548:
5806 <
7167 < /* Line 1806 of yacc.c  */
7168 < #line 3151 "ircd_parser.y"
5806 > #line 2588 "conf_parser.y" /* yacc.c:1646  */
5807      {
5808 <  ConfigFileEntry.use_egd = yylval.number;
5808 >  ConfigGeneral.max_accept = (yyvsp[-1].number);
5809   }
5810 + #line 5811 "conf_parser.c" /* yacc.c:1646  */
5811      break;
5812  
5813    case 549:
5814 <
7176 < /* Line 1806 of yacc.c  */
7177 < #line 3156 "ircd_parser.y"
5814 > #line 2593 "conf_parser.y" /* yacc.c:1646  */
5815      {
5816 <  if (conf_parser_ctx.pass == 2)
7180 <  {
7181 <    MyFree(ConfigFileEntry.egdpool_path);
7182 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
7183 <  }
5816 >  ConfigGeneral.anti_spam_exit_message_time = (yyvsp[-1].number);
5817   }
5818 + #line 5819 "conf_parser.c" /* yacc.c:1646  */
5819      break;
5820  
5821    case 550:
5822 <
7189 < /* Line 1806 of yacc.c  */
7190 < #line 3165 "ircd_parser.y"
5822 > #line 2598 "conf_parser.y" /* yacc.c:1646  */
5823      {
5824 <  ConfigFileEntry.ping_cookie = yylval.number;
5824 >  ConfigGeneral.ts_warn_delta = (yyvsp[-1].number);
5825   }
5826 + #line 5827 "conf_parser.c" /* yacc.c:1646  */
5827      break;
5828  
5829    case 551:
5830 <
7198 < /* Line 1806 of yacc.c  */
7199 < #line 3170 "ircd_parser.y"
5830 > #line 2603 "conf_parser.y" /* yacc.c:1646  */
5831      {
5832 <  ConfigFileEntry.disable_auth = yylval.number;
5832 >  if (conf_parser_ctx.pass == 2)
5833 >    ConfigGeneral.ts_max_delta = (yyvsp[-1].number);
5834   }
5835 + #line 5836 "conf_parser.c" /* yacc.c:1646  */
5836      break;
5837  
5838    case 552:
5839 <
7207 < /* Line 1806 of yacc.c  */
7208 < #line 3175 "ircd_parser.y"
5839 > #line 2609 "conf_parser.y" /* yacc.c:1646  */
5840      {
5841 <  ConfigFileEntry.throttle_time = yylval.number;
5841 >  ConfigGeneral.invisible_on_connect = yylval.number;
5842   }
5843 + #line 5844 "conf_parser.c" /* yacc.c:1646  */
5844      break;
5845  
5846    case 553:
5847 + #line 2614 "conf_parser.y" /* yacc.c:1646  */
5848 +    {
5849 +  ConfigGeneral.warn_no_connect_block = yylval.number;
5850 + }
5851 + #line 5852 "conf_parser.c" /* yacc.c:1646  */
5852 +    break;
5853  
5854 < /* Line 1806 of yacc.c  */
5855 < #line 3180 "ircd_parser.y"
5854 >  case 554:
5855 > #line 2619 "conf_parser.y" /* yacc.c:1646  */
5856      {
5857 <  ConfigFileEntry.oper_umodes = 0;
5857 >  ConfigGeneral.stats_e_disabled = yylval.number;
5858   }
5859 + #line 5860 "conf_parser.c" /* yacc.c:1646  */
5860      break;
5861  
5862 <  case 557:
5862 >  case 555:
5863 > #line 2624 "conf_parser.y" /* yacc.c:1646  */
5864 >    {
5865 >  ConfigGeneral.stats_m_oper_only = yylval.number;
5866 > }
5867 > #line 5868 "conf_parser.c" /* yacc.c:1646  */
5868 >    break;
5869  
5870 < /* Line 1806 of yacc.c  */
5871 < #line 3186 "ircd_parser.y"
5870 >  case 556:
5871 > #line 2629 "conf_parser.y" /* yacc.c:1646  */
5872      {
5873 <  ConfigFileEntry.oper_umodes |= UMODE_BOTS;
5873 >  ConfigGeneral.stats_o_oper_only = yylval.number;
5874   }
5875 + #line 5876 "conf_parser.c" /* yacc.c:1646  */
5876      break;
5877  
5878 <  case 558:
5878 >  case 557:
5879 > #line 2634 "conf_parser.y" /* yacc.c:1646  */
5880 >    {
5881 >  ConfigGeneral.stats_P_oper_only = yylval.number;
5882 > }
5883 > #line 5884 "conf_parser.c" /* yacc.c:1646  */
5884 >    break;
5885  
5886 < /* Line 1806 of yacc.c  */
5887 < #line 3189 "ircd_parser.y"
5886 >  case 558:
5887 > #line 2639 "conf_parser.y" /* yacc.c:1646  */
5888      {
5889 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN;
5889 >  ConfigGeneral.stats_u_oper_only = yylval.number;
5890   }
5891 + #line 5892 "conf_parser.c" /* yacc.c:1646  */
5892      break;
5893  
5894    case 559:
5895 <
7243 < /* Line 1806 of yacc.c  */
7244 < #line 3192 "ircd_parser.y"
5895 > #line 2644 "conf_parser.y" /* yacc.c:1646  */
5896      {
5897 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
5897 >  ConfigGeneral.stats_k_oper_only = 2 * yylval.number;
5898   }
5899 + #line 5900 "conf_parser.c" /* yacc.c:1646  */
5900      break;
5901  
5902    case 560:
5903 <
7252 < /* Line 1806 of yacc.c  */
7253 < #line 3195 "ircd_parser.y"
5903 > #line 2647 "conf_parser.y" /* yacc.c:1646  */
5904      {
5905 <  ConfigFileEntry.oper_umodes |= UMODE_DEAF;
5905 >  ConfigGeneral.stats_k_oper_only = 1;
5906   }
5907 + #line 5908 "conf_parser.c" /* yacc.c:1646  */
5908      break;
5909  
5910    case 561:
5911 <
7261 < /* Line 1806 of yacc.c  */
7262 < #line 3198 "ircd_parser.y"
5911 > #line 2652 "conf_parser.y" /* yacc.c:1646  */
5912      {
5913 <  ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
5913 >  ConfigGeneral.stats_i_oper_only = 2 * yylval.number;
5914   }
5915 + #line 5916 "conf_parser.c" /* yacc.c:1646  */
5916      break;
5917  
5918    case 562:
5919 <
7270 < /* Line 1806 of yacc.c  */
7271 < #line 3201 "ircd_parser.y"
5919 > #line 2655 "conf_parser.y" /* yacc.c:1646  */
5920      {
5921 <  ConfigFileEntry.oper_umodes |= UMODE_FULL;
5921 >  ConfigGeneral.stats_i_oper_only = 1;
5922   }
5923 + #line 5924 "conf_parser.c" /* yacc.c:1646  */
5924      break;
5925  
5926    case 563:
5927 <
7279 < /* Line 1806 of yacc.c  */
7280 < #line 3204 "ircd_parser.y"
5927 > #line 2660 "conf_parser.y" /* yacc.c:1646  */
5928      {
5929 <  ConfigFileEntry.oper_umodes |= UMODE_SKILL;
5929 >  ConfigGeneral.pace_wait = (yyvsp[-1].number);
5930   }
5931 + #line 5932 "conf_parser.c" /* yacc.c:1646  */
5932      break;
5933  
5934    case 564:
5935 <
7288 < /* Line 1806 of yacc.c  */
7289 < #line 3207 "ircd_parser.y"
5935 > #line 2665 "conf_parser.y" /* yacc.c:1646  */
5936      {
5937 <  ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
5937 >  ConfigGeneral.caller_id_wait = (yyvsp[-1].number);
5938   }
5939 + #line 5940 "conf_parser.c" /* yacc.c:1646  */
5940      break;
5941  
5942    case 565:
5943 <
7297 < /* Line 1806 of yacc.c  */
7298 < #line 3210 "ircd_parser.y"
5943 > #line 2670 "conf_parser.y" /* yacc.c:1646  */
5944      {
5945 <  ConfigFileEntry.oper_umodes |= UMODE_REJ;
5945 >  ConfigGeneral.opers_bypass_callerid = yylval.number;
5946   }
5947 + #line 5948 "conf_parser.c" /* yacc.c:1646  */
5948      break;
5949  
5950    case 566:
5951 <
7306 < /* Line 1806 of yacc.c  */
7307 < #line 3213 "ircd_parser.y"
5951 > #line 2675 "conf_parser.y" /* yacc.c:1646  */
5952      {
5953 <  ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
5953 >  ConfigGeneral.pace_wait_simple = (yyvsp[-1].number);
5954   }
5955 + #line 5956 "conf_parser.c" /* yacc.c:1646  */
5956      break;
5957  
5958    case 567:
5959 <
7315 < /* Line 1806 of yacc.c  */
7316 < #line 3216 "ircd_parser.y"
5959 > #line 2680 "conf_parser.y" /* yacc.c:1646  */
5960      {
5961 <  ConfigFileEntry.oper_umodes |= UMODE_SPY;
5961 >  ConfigGeneral.short_motd = yylval.number;
5962   }
5963 + #line 5964 "conf_parser.c" /* yacc.c:1646  */
5964      break;
5965  
5966    case 568:
5967 <
7324 < /* Line 1806 of yacc.c  */
7325 < #line 3219 "ircd_parser.y"
5967 > #line 2685 "conf_parser.y" /* yacc.c:1646  */
5968      {
5969 <  ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
5969 >  ConfigGeneral.no_oper_flood = yylval.number;
5970   }
5971 + #line 5972 "conf_parser.c" /* yacc.c:1646  */
5972      break;
5973  
5974    case 569:
5975 <
7333 < /* Line 1806 of yacc.c  */
7334 < #line 3222 "ircd_parser.y"
5975 > #line 2690 "conf_parser.y" /* yacc.c:1646  */
5976      {
5977 <  ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
5977 >  ConfigGeneral.dots_in_ident = (yyvsp[-1].number);
5978   }
5979 + #line 5980 "conf_parser.c" /* yacc.c:1646  */
5980      break;
5981  
5982    case 570:
5983 <
7342 < /* Line 1806 of yacc.c  */
7343 < #line 3225 "ircd_parser.y"
5983 > #line 2695 "conf_parser.y" /* yacc.c:1646  */
5984      {
5985 <  ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
5985 >  ConfigGeneral.max_targets = (yyvsp[-1].number);
5986   }
5987 + #line 5988 "conf_parser.c" /* yacc.c:1646  */
5988      break;
5989  
5990    case 571:
5991 <
7351 < /* Line 1806 of yacc.c  */
7352 < #line 3228 "ircd_parser.y"
5991 > #line 2700 "conf_parser.y" /* yacc.c:1646  */
5992      {
5993 <  ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
5993 >  ConfigGeneral.ping_cookie = yylval.number;
5994   }
5995 + #line 5996 "conf_parser.c" /* yacc.c:1646  */
5996      break;
5997  
5998    case 572:
5999 <
7360 < /* Line 1806 of yacc.c  */
7361 < #line 3231 "ircd_parser.y"
5999 > #line 2705 "conf_parser.y" /* yacc.c:1646  */
6000      {
6001 <  ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6001 >  ConfigGeneral.disable_auth = yylval.number;
6002   }
6003 + #line 6004 "conf_parser.c" /* yacc.c:1646  */
6004      break;
6005  
6006    case 573:
6007 <
7369 < /* Line 1806 of yacc.c  */
7370 < #line 3234 "ircd_parser.y"
6007 > #line 2710 "conf_parser.y" /* yacc.c:1646  */
6008      {
6009 <  ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6009 >  ConfigGeneral.throttle_count = (yyvsp[-1].number);
6010   }
6011 + #line 6012 "conf_parser.c" /* yacc.c:1646  */
6012      break;
6013  
6014    case 574:
6015 <
7378 < /* Line 1806 of yacc.c  */
7379 < #line 3237 "ircd_parser.y"
6015 > #line 2715 "conf_parser.y" /* yacc.c:1646  */
6016      {
6017 <  ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6017 >  ConfigGeneral.throttle_time = (yyvsp[-1].number);
6018   }
6019 + #line 6020 "conf_parser.c" /* yacc.c:1646  */
6020      break;
6021  
6022    case 575:
6023 <
7387 < /* Line 1806 of yacc.c  */
7388 < #line 3240 "ircd_parser.y"
6023 > #line 2720 "conf_parser.y" /* yacc.c:1646  */
6024      {
6025 <  ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6025 >  ConfigGeneral.oper_umodes = 0;
6026   }
6027 + #line 6028 "conf_parser.c" /* yacc.c:1646  */
6028      break;
6029  
6030 <  case 576:
6031 <
7396 < /* Line 1806 of yacc.c  */
7397 < #line 3245 "ircd_parser.y"
6030 >  case 579:
6031 > #line 2726 "conf_parser.y" /* yacc.c:1646  */
6032      {
6033 <  ConfigFileEntry.oper_only_umodes = 0;
6033 >  ConfigGeneral.oper_umodes |= UMODE_BOTS;
6034   }
6035 + #line 6036 "conf_parser.c" /* yacc.c:1646  */
6036      break;
6037  
6038    case 580:
6039 <
7405 < /* Line 1806 of yacc.c  */
7406 < #line 3251 "ircd_parser.y"
6039 > #line 2729 "conf_parser.y" /* yacc.c:1646  */
6040      {
6041 <  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6041 >  ConfigGeneral.oper_umodes |= UMODE_CCONN;
6042   }
6043 + #line 6044 "conf_parser.c" /* yacc.c:1646  */
6044      break;
6045  
6046    case 581:
6047 <
7414 < /* Line 1806 of yacc.c  */
7415 < #line 3254 "ircd_parser.y"
6047 > #line 2732 "conf_parser.y" /* yacc.c:1646  */
6048      {
6049 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6049 >  ConfigGeneral.oper_umodes |= UMODE_DEAF;
6050   }
6051 + #line 6052 "conf_parser.c" /* yacc.c:1646  */
6052      break;
6053  
6054    case 582:
6055 <
7423 < /* Line 1806 of yacc.c  */
7424 < #line 3257 "ircd_parser.y"
6055 > #line 2735 "conf_parser.y" /* yacc.c:1646  */
6056      {
6057 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6057 >  ConfigGeneral.oper_umodes |= UMODE_DEBUG;
6058   }
6059 + #line 6060 "conf_parser.c" /* yacc.c:1646  */
6060      break;
6061  
6062    case 583:
6063 <
7432 < /* Line 1806 of yacc.c  */
7433 < #line 3260 "ircd_parser.y"
6063 > #line 2738 "conf_parser.y" /* yacc.c:1646  */
6064      {
6065 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6065 >  ConfigGeneral.oper_umodes |= UMODE_FULL;
6066   }
6067 + #line 6068 "conf_parser.c" /* yacc.c:1646  */
6068      break;
6069  
6070    case 584:
6071 <
7441 < /* Line 1806 of yacc.c  */
7442 < #line 3263 "ircd_parser.y"
6071 > #line 2741 "conf_parser.y" /* yacc.c:1646  */
6072      {
6073 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6073 >  ConfigGeneral.oper_umodes |= UMODE_HIDDEN;
6074   }
6075 + #line 6076 "conf_parser.c" /* yacc.c:1646  */
6076      break;
6077  
6078    case 585:
6079 <
6080 < /* Line 1806 of yacc.c  */
6081 < #line 3266 "ircd_parser.y"
7452 <    {
7453 <  ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6079 > #line 2744 "conf_parser.y" /* yacc.c:1646  */
6080 >    {
6081 >  ConfigGeneral.oper_umodes |= UMODE_HIDECHANS;
6082   }
6083 + #line 6084 "conf_parser.c" /* yacc.c:1646  */
6084      break;
6085  
6086    case 586:
6087 <
7459 < /* Line 1806 of yacc.c  */
7460 < #line 3269 "ircd_parser.y"
6087 > #line 2747 "conf_parser.y" /* yacc.c:1646  */
6088      {
6089 <  ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6089 >  ConfigGeneral.oper_umodes |= UMODE_HIDEIDLE;
6090   }
6091 + #line 6092 "conf_parser.c" /* yacc.c:1646  */
6092      break;
6093  
6094    case 587:
6095 <
7468 < /* Line 1806 of yacc.c  */
7469 < #line 3272 "ircd_parser.y"
6095 > #line 2750 "conf_parser.y" /* yacc.c:1646  */
6096      {
6097 <  ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6097 >  ConfigGeneral.oper_umodes |= UMODE_SKILL;
6098   }
6099 + #line 6100 "conf_parser.c" /* yacc.c:1646  */
6100      break;
6101  
6102    case 588:
6103 <
7477 < /* Line 1806 of yacc.c  */
7478 < #line 3275 "ircd_parser.y"
6103 > #line 2753 "conf_parser.y" /* yacc.c:1646  */
6104      {
6105 <  ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6105 >  ConfigGeneral.oper_umodes |= UMODE_NCHANGE;
6106   }
6107 + #line 6108 "conf_parser.c" /* yacc.c:1646  */
6108      break;
6109  
6110    case 589:
6111 <
7486 < /* Line 1806 of yacc.c  */
7487 < #line 3278 "ircd_parser.y"
6111 > #line 2756 "conf_parser.y" /* yacc.c:1646  */
6112      {
6113 <  ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6113 >  ConfigGeneral.oper_umodes |= UMODE_REJ;
6114   }
6115 + #line 6116 "conf_parser.c" /* yacc.c:1646  */
6116      break;
6117  
6118    case 590:
6119 <
7495 < /* Line 1806 of yacc.c  */
7496 < #line 3281 "ircd_parser.y"
6119 > #line 2759 "conf_parser.y" /* yacc.c:1646  */
6120      {
6121 <  ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6121 >  ConfigGeneral.oper_umodes |= UMODE_UNAUTH;
6122   }
6123 + #line 6124 "conf_parser.c" /* yacc.c:1646  */
6124      break;
6125  
6126    case 591:
6127 <
7504 < /* Line 1806 of yacc.c  */
7505 < #line 3284 "ircd_parser.y"
6127 > #line 2762 "conf_parser.y" /* yacc.c:1646  */
6128      {
6129 <  ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6129 >  ConfigGeneral.oper_umodes |= UMODE_SPY;
6130   }
6131 + #line 6132 "conf_parser.c" /* yacc.c:1646  */
6132      break;
6133  
6134    case 592:
6135 <
7513 < /* Line 1806 of yacc.c  */
7514 < #line 3287 "ircd_parser.y"
6135 > #line 2765 "conf_parser.y" /* yacc.c:1646  */
6136      {
6137 <  ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6137 >  ConfigGeneral.oper_umodes |= UMODE_EXTERNAL;
6138   }
6139 + #line 6140 "conf_parser.c" /* yacc.c:1646  */
6140      break;
6141  
6142    case 593:
6143 <
7522 < /* Line 1806 of yacc.c  */
7523 < #line 3290 "ircd_parser.y"
6143 > #line 2768 "conf_parser.y" /* yacc.c:1646  */
6144      {
6145 <  ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6145 >  ConfigGeneral.oper_umodes |= UMODE_SERVNOTICE;
6146   }
6147 + #line 6148 "conf_parser.c" /* yacc.c:1646  */
6148      break;
6149  
6150    case 594:
6151 <
7531 < /* Line 1806 of yacc.c  */
7532 < #line 3293 "ircd_parser.y"
6151 > #line 2771 "conf_parser.y" /* yacc.c:1646  */
6152      {
6153 <  ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6153 >  ConfigGeneral.oper_umodes |= UMODE_INVISIBLE;
6154   }
6155 + #line 6156 "conf_parser.c" /* yacc.c:1646  */
6156      break;
6157  
6158    case 595:
6159 <
7540 < /* Line 1806 of yacc.c  */
7541 < #line 3296 "ircd_parser.y"
6159 > #line 2774 "conf_parser.y" /* yacc.c:1646  */
6160      {
6161 <  ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6161 >  ConfigGeneral.oper_umodes |= UMODE_WALLOP;
6162   }
6163 + #line 6164 "conf_parser.c" /* yacc.c:1646  */
6164      break;
6165  
6166    case 596:
6167 <
7549 < /* Line 1806 of yacc.c  */
7550 < #line 3299 "ircd_parser.y"
6167 > #line 2777 "conf_parser.y" /* yacc.c:1646  */
6168      {
6169 <  ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6169 >  ConfigGeneral.oper_umodes |= UMODE_SOFTCALLERID;
6170   }
6171 + #line 6172 "conf_parser.c" /* yacc.c:1646  */
6172      break;
6173  
6174    case 597:
6175 <
7558 < /* Line 1806 of yacc.c  */
7559 < #line 3302 "ircd_parser.y"
6175 > #line 2780 "conf_parser.y" /* yacc.c:1646  */
6176      {
6177 <  ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6177 >  ConfigGeneral.oper_umodes |= UMODE_CALLERID;
6178   }
6179 + #line 6180 "conf_parser.c" /* yacc.c:1646  */
6180      break;
6181  
6182    case 598:
6183 <
7567 < /* Line 1806 of yacc.c  */
7568 < #line 3305 "ircd_parser.y"
6183 > #line 2783 "conf_parser.y" /* yacc.c:1646  */
6184      {
6185 <  ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6185 >  ConfigGeneral.oper_umodes |= UMODE_LOCOPS;
6186   }
6187 + #line 6188 "conf_parser.c" /* yacc.c:1646  */
6188      break;
6189  
6190    case 599:
6191 <
7576 < /* Line 1806 of yacc.c  */
7577 < #line 3310 "ircd_parser.y"
6191 > #line 2786 "conf_parser.y" /* yacc.c:1646  */
6192      {
6193 <  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6193 >  ConfigGeneral.oper_umodes |= UMODE_REGONLY;
6194   }
6195 + #line 6196 "conf_parser.c" /* yacc.c:1646  */
6196      break;
6197  
6198    case 600:
6199 <
7585 < /* Line 1806 of yacc.c  */
7586 < #line 3315 "ircd_parser.y"
6199 > #line 2789 "conf_parser.y" /* yacc.c:1646  */
6200      {
6201 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6201 >  ConfigGeneral.oper_umodes |= UMODE_FARCONNECT;
6202   }
6203 + #line 6204 "conf_parser.c" /* yacc.c:1646  */
6204      break;
6205  
6206    case 601:
6207 <
7594 < /* Line 1806 of yacc.c  */
7595 < #line 3320 "ircd_parser.y"
6207 > #line 2794 "conf_parser.y" /* yacc.c:1646  */
6208      {
6209 <  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6209 >  ConfigGeneral.oper_only_umodes = 0;
6210   }
6211 + #line 6212 "conf_parser.c" /* yacc.c:1646  */
6212      break;
6213  
6214 <  case 602:
6215 <
7603 < /* Line 1806 of yacc.c  */
7604 < #line 3325 "ircd_parser.y"
6214 >  case 605:
6215 > #line 2800 "conf_parser.y" /* yacc.c:1646  */
6216      {
6217 <  ConfigFileEntry.client_flood = (yyvsp[(3) - (4)].number);
6217 >  ConfigGeneral.oper_only_umodes |= UMODE_BOTS;
6218   }
6219 + #line 6220 "conf_parser.c" /* yacc.c:1646  */
6220      break;
6221  
6222 <  case 603:
6223 <
7612 < /* Line 1806 of yacc.c  */
7613 < #line 3334 "ircd_parser.y"
6222 >  case 606:
6223 > #line 2803 "conf_parser.y" /* yacc.c:1646  */
6224      {
6225 <  if (conf_parser_ctx.pass == 2)
7616 <  {
7617 <    yy_conf = make_conf_item(GDENY_TYPE);
7618 <    yy_aconf = map_to_conf(yy_conf);
7619 <  }
6225 >  ConfigGeneral.oper_only_umodes |= UMODE_CCONN;
6226   }
6227 + #line 6228 "conf_parser.c" /* yacc.c:1646  */
6228      break;
6229  
6230 <  case 604:
6231 <
7625 < /* Line 1806 of yacc.c  */
7626 < #line 3341 "ircd_parser.y"
7627 <    {
7628 <  if (conf_parser_ctx.pass == 2)
7629 <  {
7630 <    /*
7631 <     * since we re-allocate yy_conf/yy_aconf after the end of action=, at the
7632 <     * end we will have one extra, so we should free it.
7633 <     */
7634 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
6230 >  case 607:
6231 > #line 2806 "conf_parser.y" /* yacc.c:1646  */
6232      {
6233 <      delete_conf_item(yy_conf);
7637 <      yy_conf = NULL;
7638 <      yy_aconf = NULL;
7639 <    }
7640 <  }
6233 >  ConfigGeneral.oper_only_umodes |= UMODE_DEAF;
6234   }
6235 + #line 6236 "conf_parser.c" /* yacc.c:1646  */
6236      break;
6237  
6238 <  case 614:
6239 <
7646 < /* Line 1806 of yacc.c  */
7647 < #line 3367 "ircd_parser.y"
6238 >  case 608:
6239 > #line 2809 "conf_parser.y" /* yacc.c:1646  */
6240      {
6241 <  if (conf_parser_ctx.pass == 2)
7650 <    ConfigFileEntry.glines = yylval.number;
6241 >  ConfigGeneral.oper_only_umodes |= UMODE_DEBUG;
6242   }
6243 + #line 6244 "conf_parser.c" /* yacc.c:1646  */
6244      break;
6245  
6246 <  case 615:
6247 <
7656 < /* Line 1806 of yacc.c  */
7657 < #line 3373 "ircd_parser.y"
6246 >  case 609:
6247 > #line 2812 "conf_parser.y" /* yacc.c:1646  */
6248      {
6249 <  if (conf_parser_ctx.pass == 2)
7660 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
6249 >  ConfigGeneral.oper_only_umodes |= UMODE_FULL;
6250   }
6251 + #line 6252 "conf_parser.c" /* yacc.c:1646  */
6252      break;
6253  
6254 <  case 616:
6255 <
7666 < /* Line 1806 of yacc.c  */
7667 < #line 3379 "ircd_parser.y"
6254 >  case 610:
6255 > #line 2815 "conf_parser.y" /* yacc.c:1646  */
6256      {
6257 <  if (conf_parser_ctx.pass == 2)
7670 <    ConfigFileEntry.gline_logging = 0;
6257 >  ConfigGeneral.oper_only_umodes |= UMODE_SKILL;
6258   }
6259 + #line 6260 "conf_parser.c" /* yacc.c:1646  */
6260      break;
6261  
6262 <  case 620:
6263 <
7676 < /* Line 1806 of yacc.c  */
7677 < #line 3385 "ircd_parser.y"
6262 >  case 611:
6263 > #line 2818 "conf_parser.y" /* yacc.c:1646  */
6264      {
6265 <  if (conf_parser_ctx.pass == 2)
7680 <    ConfigFileEntry.gline_logging |= GDENY_REJECT;
6265 >  ConfigGeneral.oper_only_umodes |= UMODE_HIDDEN;
6266   }
6267 + #line 6268 "conf_parser.c" /* yacc.c:1646  */
6268      break;
6269  
6270 <  case 621:
6271 <
7686 < /* Line 1806 of yacc.c  */
7687 < #line 3389 "ircd_parser.y"
6270 >  case 612:
6271 > #line 2821 "conf_parser.y" /* yacc.c:1646  */
6272      {
6273 <  if (conf_parser_ctx.pass == 2)
7690 <    ConfigFileEntry.gline_logging |= GDENY_BLOCK;
6273 >  ConfigGeneral.oper_only_umodes |= UMODE_NCHANGE;
6274   }
6275 + #line 6276 "conf_parser.c" /* yacc.c:1646  */
6276      break;
6277  
6278 <  case 622:
6279 <
7696 < /* Line 1806 of yacc.c  */
7697 < #line 3395 "ircd_parser.y"
6278 >  case 613:
6279 > #line 2824 "conf_parser.y" /* yacc.c:1646  */
6280      {
6281 <  if (conf_parser_ctx.pass == 2)
6282 <  {
6283 <    struct split_nuh_item nuh;
6284 <
7703 <    nuh.nuhmask  = yylval.string;
7704 <    nuh.nickptr  = NULL;
7705 <    nuh.userptr  = userbuf;
7706 <    nuh.hostptr  = hostbuf;
7707 <
7708 <    nuh.nicksize = 0;
7709 <    nuh.usersize = sizeof(userbuf);
7710 <    nuh.hostsize = sizeof(hostbuf);
7711 <
7712 <    split_nuh(&nuh);
6281 >  ConfigGeneral.oper_only_umodes |= UMODE_REJ;
6282 > }
6283 > #line 6284 "conf_parser.c" /* yacc.c:1646  */
6284 >    break;
6285  
6286 <    if (yy_aconf->user == NULL)
6287 <    {
7716 <      DupString(yy_aconf->user, userbuf);
7717 <      DupString(yy_aconf->host, hostbuf);
7718 <    }
7719 <    else
6286 >  case 614:
6287 > #line 2827 "conf_parser.y" /* yacc.c:1646  */
6288      {
6289 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
7722 <
7723 <      DupString(yy_tmp->user, userbuf);
7724 <      DupString(yy_tmp->host, hostbuf);
7725 <
7726 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
7727 <    }
7728 <  }
6289 >  ConfigGeneral.oper_only_umodes |= UMODE_UNAUTH;
6290   }
6291 + #line 6292 "conf_parser.c" /* yacc.c:1646  */
6292      break;
6293  
6294 <  case 623:
6295 <
7734 < /* Line 1806 of yacc.c  */
7735 < #line 3429 "ircd_parser.y"
6294 >  case 615:
6295 > #line 2830 "conf_parser.y" /* yacc.c:1646  */
6296      {
6297 <  if (conf_parser_ctx.pass == 2)  
7738 <  {
7739 <    MyFree(yy_conf->name);
7740 <    DupString(yy_conf->name, yylval.string);
7741 <  }
6297 >  ConfigGeneral.oper_only_umodes |= UMODE_SPY;
6298   }
6299 + #line 6300 "conf_parser.c" /* yacc.c:1646  */
6300      break;
6301  
6302 <  case 624:
6303 <
7747 < /* Line 1806 of yacc.c  */
7748 < #line 3438 "ircd_parser.y"
6302 >  case 616:
6303 > #line 2833 "conf_parser.y" /* yacc.c:1646  */
6304      {
6305 <  if (conf_parser_ctx.pass == 2)
7751 <    yy_aconf->flags = 0;
6305 >  ConfigGeneral.oper_only_umodes |= UMODE_EXTERNAL;
6306   }
6307 + #line 6308 "conf_parser.c" /* yacc.c:1646  */
6308      break;
6309  
6310 <  case 625:
6311 <
7757 < /* Line 1806 of yacc.c  */
7758 < #line 3442 "ircd_parser.y"
6310 >  case 617:
6311 > #line 2836 "conf_parser.y" /* yacc.c:1646  */
6312      {
6313 <  if (conf_parser_ctx.pass == 2)
6314 <  {
6315 <    struct CollectItem *yy_tmp = NULL;
6316 <    dlink_node *ptr, *next_ptr;
6313 >  ConfigGeneral.oper_only_umodes |= UMODE_SERVNOTICE;
6314 > }
6315 > #line 6316 "conf_parser.c" /* yacc.c:1646  */
6316 >    break;
6317  
6318 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
6318 >  case 618:
6319 > #line 2839 "conf_parser.y" /* yacc.c:1646  */
6320      {
6321 <      struct AccessItem *new_aconf;
7768 <      struct ConfItem *new_conf;
7769 <
7770 <      yy_tmp = ptr->data;
7771 <      new_conf = make_conf_item(GDENY_TYPE);
7772 <      new_aconf = map_to_conf(new_conf);
7773 <
7774 <      new_aconf->flags = yy_aconf->flags;
7775 <
7776 <      if (yy_conf->name != NULL)
7777 <        DupString(new_conf->name, yy_conf->name);
7778 <      else
7779 <        DupString(new_conf->name, "*");
7780 <      if (yy_aconf->user != NULL)
7781 <         DupString(new_aconf->user, yy_tmp->user);
7782 <      else  
7783 <        DupString(new_aconf->user, "*");
7784 <      if (yy_aconf->host != NULL)
7785 <        DupString(new_aconf->host, yy_tmp->host);
7786 <      else
7787 <        DupString(new_aconf->host, "*");
7788 <
7789 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
7790 <    }
7791 <
7792 <    /*
7793 <     * In case someone has fed us with more than one action= after user/name
7794 <     * which would leak memory  -Michael
7795 <     */
7796 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
7797 <      delete_conf_item(yy_conf);
7798 <
7799 <    yy_conf = make_conf_item(GDENY_TYPE);
7800 <    yy_aconf = map_to_conf(yy_conf);
7801 <  }
6321 >  ConfigGeneral.oper_only_umodes |= UMODE_INVISIBLE;
6322   }
6323 + #line 6324 "conf_parser.c" /* yacc.c:1646  */
6324      break;
6325  
6326 <  case 628:
6327 <
7807 < /* Line 1806 of yacc.c  */
7808 < #line 3489 "ircd_parser.y"
6326 >  case 619:
6327 > #line 2842 "conf_parser.y" /* yacc.c:1646  */
6328      {
6329 <  if (conf_parser_ctx.pass == 2)
7811 <    yy_aconf->flags |= GDENY_REJECT;
6329 >  ConfigGeneral.oper_only_umodes |= UMODE_WALLOP;
6330   }
6331 + #line 6332 "conf_parser.c" /* yacc.c:1646  */
6332      break;
6333  
6334 <  case 629:
6335 <
7817 < /* Line 1806 of yacc.c  */
7818 < #line 3493 "ircd_parser.y"
6334 >  case 620:
6335 > #line 2845 "conf_parser.y" /* yacc.c:1646  */
6336      {
6337 <  if (conf_parser_ctx.pass == 2)
7821 <    yy_aconf->flags |= GDENY_BLOCK;
6337 >  ConfigGeneral.oper_only_umodes |= UMODE_SOFTCALLERID;
6338   }
6339 + #line 6340 "conf_parser.c" /* yacc.c:1646  */
6340      break;
6341  
6342 <  case 652:
6343 <
7827 < /* Line 1806 of yacc.c  */
7828 < #line 3517 "ircd_parser.y"
6342 >  case 621:
6343 > #line 2848 "conf_parser.y" /* yacc.c:1646  */
6344      {
6345 <  ConfigChannel.disable_fake_channels = yylval.number;
6345 >  ConfigGeneral.oper_only_umodes |= UMODE_CALLERID;
6346   }
6347 + #line 6348 "conf_parser.c" /* yacc.c:1646  */
6348      break;
6349  
6350 <  case 653:
6351 <
7836 < /* Line 1806 of yacc.c  */
7837 < #line 3522 "ircd_parser.y"
6350 >  case 622:
6351 > #line 2851 "conf_parser.y" /* yacc.c:1646  */
6352      {
6353 <  ConfigChannel.restrict_channels = yylval.number;
6353 >  ConfigGeneral.oper_only_umodes |= UMODE_LOCOPS;
6354   }
6355 + #line 6356 "conf_parser.c" /* yacc.c:1646  */
6356      break;
6357  
6358 <  case 654:
6359 <
7845 < /* Line 1806 of yacc.c  */
7846 < #line 3527 "ircd_parser.y"
6358 >  case 623:
6359 > #line 2854 "conf_parser.y" /* yacc.c:1646  */
6360      {
6361 <  ConfigChannel.disable_local_channels = yylval.number;
6361 >  ConfigGeneral.oper_only_umodes |= UMODE_REGONLY;
6362   }
6363 + #line 6364 "conf_parser.c" /* yacc.c:1646  */
6364      break;
6365  
6366 <  case 655:
6367 <
7854 < /* Line 1806 of yacc.c  */
7855 < #line 3532 "ircd_parser.y"
6366 >  case 624:
6367 > #line 2857 "conf_parser.y" /* yacc.c:1646  */
6368      {
6369 <  ConfigChannel.use_except = yylval.number;
6369 >  ConfigGeneral.oper_only_umodes |= UMODE_FARCONNECT;
6370   }
6371 + #line 6372 "conf_parser.c" /* yacc.c:1646  */
6372      break;
6373  
6374 <  case 656:
6375 <
7863 < /* Line 1806 of yacc.c  */
7864 < #line 3537 "ircd_parser.y"
6374 >  case 625:
6375 > #line 2862 "conf_parser.y" /* yacc.c:1646  */
6376      {
6377 <  ConfigChannel.use_invex = yylval.number;
6377 >  ConfigGeneral.min_nonwildcard = (yyvsp[-1].number);
6378   }
6379 + #line 6380 "conf_parser.c" /* yacc.c:1646  */
6380      break;
6381  
6382 <  case 657:
6383 <
7872 < /* Line 1806 of yacc.c  */
7873 < #line 3542 "ircd_parser.y"
6382 >  case 626:
6383 > #line 2867 "conf_parser.y" /* yacc.c:1646  */
6384      {
6385 <  ConfigChannel.use_knock = yylval.number;
6385 >  ConfigGeneral.min_nonwildcard_simple = (yyvsp[-1].number);
6386   }
6387 + #line 6388 "conf_parser.c" /* yacc.c:1646  */
6388      break;
6389  
6390 <  case 658:
6391 <
7881 < /* Line 1806 of yacc.c  */
7882 < #line 3547 "ircd_parser.y"
6390 >  case 627:
6391 > #line 2872 "conf_parser.y" /* yacc.c:1646  */
6392      {
6393 <  ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6393 >  ConfigGeneral.default_floodcount = (yyvsp[-1].number);
6394   }
6395 + #line 6396 "conf_parser.c" /* yacc.c:1646  */
6396      break;
6397  
6398 <  case 659:
6399 <
7890 < /* Line 1806 of yacc.c  */
7891 < #line 3552 "ircd_parser.y"
6398 >  case 644:
6399 > #line 2898 "conf_parser.y" /* yacc.c:1646  */
6400      {
6401 <  ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6401 >  ConfigChannel.disable_fake_channels = yylval.number;
6402   }
6403 + #line 6404 "conf_parser.c" /* yacc.c:1646  */
6404      break;
6405  
6406 <  case 660:
6407 <
7899 < /* Line 1806 of yacc.c  */
7900 < #line 3557 "ircd_parser.y"
6406 >  case 645:
6407 > #line 2903 "conf_parser.y" /* yacc.c:1646  */
6408      {
6409 <  ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6409 >  ConfigChannel.invite_client_count = (yyvsp[-1].number);
6410   }
6411 + #line 6412 "conf_parser.c" /* yacc.c:1646  */
6412      break;
6413  
6414 <  case 661:
6415 <
7908 < /* Line 1806 of yacc.c  */
7909 < #line 3562 "ircd_parser.y"
6414 >  case 646:
6415 > #line 2908 "conf_parser.y" /* yacc.c:1646  */
6416      {
6417 <  ConfigChannel.quiet_on_ban = yylval.number;
6417 >  ConfigChannel.invite_client_time = (yyvsp[-1].number);
6418   }
6419 + #line 6420 "conf_parser.c" /* yacc.c:1646  */
6420      break;
6421  
6422 <  case 662:
6423 <
7917 < /* Line 1806 of yacc.c  */
7918 < #line 3567 "ircd_parser.y"
6422 >  case 647:
6423 > #line 2913 "conf_parser.y" /* yacc.c:1646  */
6424      {
6425 <  ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6425 >  ConfigChannel.invite_delay_channel = (yyvsp[-1].number);
6426   }
6427 + #line 6428 "conf_parser.c" /* yacc.c:1646  */
6428      break;
6429  
6430 <  case 663:
6431 <
7926 < /* Line 1806 of yacc.c  */
7927 < #line 3572 "ircd_parser.y"
6430 >  case 648:
6431 > #line 2918 "conf_parser.y" /* yacc.c:1646  */
6432      {
6433 <  ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6433 >  ConfigChannel.knock_client_count = (yyvsp[-1].number);
6434   }
6435 + #line 6436 "conf_parser.c" /* yacc.c:1646  */
6436      break;
6437  
6438 <  case 664:
6439 <
7935 < /* Line 1806 of yacc.c  */
7936 < #line 3577 "ircd_parser.y"
6438 >  case 649:
6439 > #line 2923 "conf_parser.y" /* yacc.c:1646  */
6440      {
6441 <  ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6441 >  ConfigChannel.knock_client_time = (yyvsp[-1].number);
6442   }
6443 + #line 6444 "conf_parser.c" /* yacc.c:1646  */
6444      break;
6445  
6446 <  case 665:
6447 <
7944 < /* Line 1806 of yacc.c  */
7945 < #line 3582 "ircd_parser.y"
6446 >  case 650:
6447 > #line 2928 "conf_parser.y" /* yacc.c:1646  */
6448      {
6449 <  ConfigChannel.no_create_on_split = yylval.number;
6449 >  ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6450   }
6451 + #line 6452 "conf_parser.c" /* yacc.c:1646  */
6452      break;
6453  
6454 <  case 666:
6455 <
7953 < /* Line 1806 of yacc.c  */
7954 < #line 3587 "ircd_parser.y"
6454 >  case 651:
6455 > #line 2933 "conf_parser.y" /* yacc.c:1646  */
6456      {
6457 <  ConfigChannel.no_join_on_split = yylval.number;
6457 >  ConfigChannel.max_channels = (yyvsp[-1].number);
6458   }
6459 + #line 6460 "conf_parser.c" /* yacc.c:1646  */
6460      break;
6461  
6462 <  case 667:
6463 <
7962 < /* Line 1806 of yacc.c  */
7963 < #line 3592 "ircd_parser.y"
6462 >  case 652:
6463 > #line 2938 "conf_parser.y" /* yacc.c:1646  */
6464      {
6465 <  ConfigChannel.burst_topicwho = yylval.number;
6465 >  ConfigChannel.max_invites = (yyvsp[-1].number);
6466   }
6467 + #line 6468 "conf_parser.c" /* yacc.c:1646  */
6468      break;
6469  
6470 <  case 668:
6471 <
7971 < /* Line 1806 of yacc.c  */
7972 < #line 3597 "ircd_parser.y"
6470 >  case 653:
6471 > #line 2943 "conf_parser.y" /* yacc.c:1646  */
6472      {
6473 <  GlobalSetOptions.joinfloodcount = yylval.number;
6473 >  ConfigChannel.max_bans = (yyvsp[-1].number);
6474   }
6475 + #line 6476 "conf_parser.c" /* yacc.c:1646  */
6476      break;
6477  
6478 <  case 669:
6479 <
7980 < /* Line 1806 of yacc.c  */
7981 < #line 3602 "ircd_parser.y"
6478 >  case 654:
6479 > #line 2948 "conf_parser.y" /* yacc.c:1646  */
6480      {
6481 <  GlobalSetOptions.joinfloodtime = yylval.number;
6481 >  ConfigChannel.default_join_flood_count = yylval.number;
6482   }
6483 + #line 6484 "conf_parser.c" /* yacc.c:1646  */
6484      break;
6485  
6486 <  case 681:
6487 <
7989 < /* Line 1806 of yacc.c  */
7990 < #line 3621 "ircd_parser.y"
6486 >  case 655:
6487 > #line 2953 "conf_parser.y" /* yacc.c:1646  */
6488      {
6489 <  if (conf_parser_ctx.pass == 2)
7993 <    ConfigServerHide.flatten_links = yylval.number;
6489 >  ConfigChannel.default_join_flood_time = (yyvsp[-1].number);
6490   }
6491 + #line 6492 "conf_parser.c" /* yacc.c:1646  */
6492      break;
6493  
6494 <  case 682:
6495 <
7999 < /* Line 1806 of yacc.c  */
8000 < #line 3627 "ircd_parser.y"
6494 >  case 669:
6495 > #line 2976 "conf_parser.y" /* yacc.c:1646  */
6496      {
6497    if (conf_parser_ctx.pass == 2)
6498 <    ConfigServerHide.hide_servers = yylval.number;
6498 >    ConfigServerHide.flatten_links = yylval.number;
6499   }
6500 + #line 6501 "conf_parser.c" /* yacc.c:1646  */
6501      break;
6502  
6503 <  case 683:
6504 <
8009 < /* Line 1806 of yacc.c  */
8010 < #line 3633 "ircd_parser.y"
6503 >  case 670:
6504 > #line 2982 "conf_parser.y" /* yacc.c:1646  */
6505      {
6506    if (conf_parser_ctx.pass == 2)
6507    {
6508 <    MyFree(ConfigServerHide.hidden_name);
6509 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6508 >    if ((yyvsp[-1].number) > 0)
6509 >    {
6510 >      event_write_links_file.when = (yyvsp[-1].number);
6511 >      event_add(&event_write_links_file, NULL);
6512 >    }
6513 >    else
6514 >     event_delete(&event_write_links_file);
6515 >
6516 >    ConfigServerHide.flatten_links_delay = (yyvsp[-1].number);
6517    }
6518   }
6519 + #line 6520 "conf_parser.c" /* yacc.c:1646  */
6520      break;
6521  
6522 <  case 684:
6523 <
8022 < /* Line 1806 of yacc.c  */
8023 < #line 3642 "ircd_parser.y"
6522 >  case 671:
6523 > #line 2998 "conf_parser.y" /* yacc.c:1646  */
6524      {
6525    if (conf_parser_ctx.pass == 2)
6526    {
6527 <    if (((yyvsp[(3) - (4)].number) > 0) && ConfigServerHide.links_disabled == 1)
6528 <    {
8029 <      eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[(3) - (4)].number));
8030 <      ConfigServerHide.links_disabled = 0;
8031 <    }
8032 <
8033 <    ConfigServerHide.links_delay = (yyvsp[(3) - (4)].number);
6527 >    xfree(ConfigServerHide.flatten_links_file);
6528 >    ConfigServerHide.flatten_links_file = xstrdup(yylval.string);
6529    }
6530   }
6531 + #line 6532 "conf_parser.c" /* yacc.c:1646  */
6532      break;
6533  
6534 <  case 685:
6534 >  case 672:
6535 > #line 3007 "conf_parser.y" /* yacc.c:1646  */
6536 >    {
6537 >  if (conf_parser_ctx.pass == 2)
6538 >    ConfigServerHide.disable_remote_commands = yylval.number;
6539 > }
6540 > #line 6541 "conf_parser.c" /* yacc.c:1646  */
6541 >    break;
6542  
6543 < /* Line 1806 of yacc.c  */
6544 < #line 3656 "ircd_parser.y"
6543 >  case 673:
6544 > #line 3013 "conf_parser.y" /* yacc.c:1646  */
6545      {
6546    if (conf_parser_ctx.pass == 2)
6547 <    ConfigServerHide.hidden = yylval.number;
6547 >    ConfigServerHide.hide_servers = yylval.number;
6548   }
6549 + #line 6550 "conf_parser.c" /* yacc.c:1646  */
6550      break;
6551  
6552 <  case 686:
6552 >  case 674:
6553 > #line 3019 "conf_parser.y" /* yacc.c:1646  */
6554 >    {
6555 >  if (conf_parser_ctx.pass == 2)
6556 >    ConfigServerHide.hide_services = yylval.number;
6557 > }
6558 > #line 6559 "conf_parser.c" /* yacc.c:1646  */
6559 >    break;
6560  
6561 < /* Line 1806 of yacc.c  */
6562 < #line 3662 "ircd_parser.y"
6561 >  case 675:
6562 > #line 3025 "conf_parser.y" /* yacc.c:1646  */
6563      {
6564    if (conf_parser_ctx.pass == 2)
6565 <    ConfigServerHide.disable_hidden = yylval.number;
6565 >  {
6566 >    xfree(ConfigServerHide.hidden_name);
6567 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6568 >  }
6569   }
6570 + #line 6571 "conf_parser.c" /* yacc.c:1646  */
6571      break;
6572  
6573 <  case 687:
6573 >  case 676:
6574 > #line 3034 "conf_parser.y" /* yacc.c:1646  */
6575 >    {
6576 >  if (conf_parser_ctx.pass == 2)
6577 >    ConfigServerHide.hidden = yylval.number;
6578 > }
6579 > #line 6580 "conf_parser.c" /* yacc.c:1646  */
6580 >    break;
6581  
6582 < /* Line 1806 of yacc.c  */
6583 < #line 3668 "ircd_parser.y"
6582 >  case 677:
6583 > #line 3040 "conf_parser.y" /* yacc.c:1646  */
6584      {
6585    if (conf_parser_ctx.pass == 2)
6586      ConfigServerHide.hide_server_ips = yylval.number;
6587   }
6588 + #line 6589 "conf_parser.c" /* yacc.c:1646  */
6589      break;
6590  
6591  
6592 <
8070 < /* Line 1806 of yacc.c  */
8071 < #line 8072 "ircd_parser.c"
6592 > #line 6593 "conf_parser.c" /* yacc.c:1646  */
6593        default: break;
6594      }
6595    /* User semantic actions sometimes alter yychar, and that requires
# Line 8090 | Line 6611 | yyreduce:
6611  
6612    *++yyvsp = yyval;
6613  
6614 <  /* Now `shift' the result of the reduction.  Determine what state
6614 >  /* Now 'shift' the result of the reduction.  Determine what state
6615       that goes to, based on the state we popped back to and the rule
6616       number reduced by.  */
6617  
# Line 8105 | Line 6626 | yyreduce:
6626    goto yynewstate;
6627  
6628  
6629 < /*------------------------------------.
6630 < | yyerrlab -- here on detecting error |
6631 < `------------------------------------*/
6629 > /*--------------------------------------.
6630 > | yyerrlab -- here on detecting error.  |
6631 > `--------------------------------------*/
6632   yyerrlab:
6633    /* Make sure we have latest lookahead translation.  See comments at
6634       user semantic actions for why this is necessary.  */
# Line 8158 | Line 6679 | yyerrlab:
6679    if (yyerrstatus == 3)
6680      {
6681        /* If just tried and failed to reuse lookahead token after an
6682 <         error, discard it.  */
6682 >         error, discard it.  */
6683  
6684        if (yychar <= YYEOF)
6685 <        {
6686 <          /* Return failure if at end of input.  */
6687 <          if (yychar == YYEOF)
6688 <            YYABORT;
6689 <        }
6685 >        {
6686 >          /* Return failure if at end of input.  */
6687 >          if (yychar == YYEOF)
6688 >            YYABORT;
6689 >        }
6690        else
6691 <        {
6692 <          yydestruct ("Error: discarding",
6693 <                      yytoken, &yylval);
6694 <          yychar = YYEMPTY;
6695 <        }
6691 >        {
6692 >          yydestruct ("Error: discarding",
6693 >                      yytoken, &yylval);
6694 >          yychar = YYEMPTY;
6695 >        }
6696      }
6697  
6698    /* Else will try to reuse lookahead token after shifting the error
# Line 8190 | Line 6711 | yyerrorlab:
6711    if (/*CONSTCOND*/ 0)
6712       goto yyerrorlab;
6713  
6714 <  /* Do not reclaim the symbols of the rule which action triggered
6714 >  /* Do not reclaim the symbols of the rule whose action triggered
6715       this YYERROR.  */
6716    YYPOPSTACK (yylen);
6717    yylen = 0;
# Line 8203 | Line 6724 | yyerrorlab:
6724   | yyerrlab1 -- common code for both syntax error and YYERROR.  |
6725   `-------------------------------------------------------------*/
6726   yyerrlab1:
6727 <  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6727 >  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6728  
6729    for (;;)
6730      {
6731        yyn = yypact[yystate];
6732        if (!yypact_value_is_default (yyn))
6733 <        {
6734 <          yyn += YYTERROR;
6735 <          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6736 <            {
6737 <              yyn = yytable[yyn];
6738 <              if (0 < yyn)
6739 <                break;
6740 <            }
6741 <        }
6733 >        {
6734 >          yyn += YYTERROR;
6735 >          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6736 >            {
6737 >              yyn = yytable[yyn];
6738 >              if (0 < yyn)
6739 >                break;
6740 >            }
6741 >        }
6742  
6743        /* Pop the current state because it cannot handle the error token.  */
6744        if (yyssp == yyss)
6745 <        YYABORT;
6745 >        YYABORT;
6746  
6747  
6748        yydestruct ("Error: popping",
6749 <                  yystos[yystate], yyvsp);
6749 >                  yystos[yystate], yyvsp);
6750        YYPOPSTACK (1);
6751        yystate = *yyssp;
6752        YY_STACK_PRINT (yyss, yyssp);
6753      }
6754  
6755 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6756    *++yyvsp = yylval;
6757 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6758  
6759  
6760    /* Shift the error token.  */
# Line 8255 | Line 6778 | yyabortlab:
6778    yyresult = 1;
6779    goto yyreturn;
6780  
6781 < #if !defined(yyoverflow) || YYERROR_VERBOSE
6781 > #if !defined yyoverflow || YYERROR_VERBOSE
6782   /*-------------------------------------------------.
6783   | yyexhaustedlab -- memory exhaustion comes here.  |
6784   `-------------------------------------------------*/
# Line 8274 | Line 6797 | yyreturn:
6797        yydestruct ("Cleanup: discarding lookahead",
6798                    yytoken, &yylval);
6799      }
6800 <  /* Do not reclaim the symbols of the rule which action triggered
6800 >  /* Do not reclaim the symbols of the rule whose action triggered
6801       this YYABORT or YYACCEPT.  */
6802    YYPOPSTACK (yylen);
6803    YY_STACK_PRINT (yyss, yyssp);
6804    while (yyssp != yyss)
6805      {
6806        yydestruct ("Cleanup: popping",
6807 <                  yystos[*yyssp], yyvsp);
6807 >                  yystos[*yyssp], yyvsp);
6808        YYPOPSTACK (1);
6809      }
6810   #ifndef yyoverflow
# Line 8292 | Line 6815 | yyreturn:
6815    if (yymsg != yymsgbuf)
6816      YYSTACK_FREE (yymsg);
6817   #endif
6818 <  /* Make sure YYID is used.  */
8296 <  return YYID (yyresult);
6818 >  return yyresult;
6819   }
8298
8299
8300

Diff Legend

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