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-7.2/src/ircd_parser.c (file contents), Revision 1009 by michael, Sun Sep 13 15:02:30 2009 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (file contents), Revision 2228 by michael, Thu Jun 13 19:46:30 2013 UTC

# Line 1 | Line 1
1 + /* A Bison parser, made by GNU Bison 2.7.12-4996.  */
2  
3 < /* A Bison parser, made by GNU Bison 2.4.1.  */
3 <
4 < /* Skeleton implementation for Bison's Yacc-like parsers in C
3 > /* Bison implementation for Yacc-like parsers in C
4    
5 <      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
7 <   Free Software Foundation, Inc.
5 >      Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
6    
7     This program is free software: you can redistribute it and/or modify
8     it under the terms of the GNU General Public License as published by
# Line 46 | Line 44
44   #define YYBISON 1
45  
46   /* Bison version.  */
47 < #define YYBISON_VERSION "2.4.1"
47 > #define YYBISON_VERSION "2.7.12-4996"
48  
49   /* Skeleton name.  */
50   #define YYSKELETON_NAME "yacc.c"
# Line 60 | Line 58
58   /* Pull parsers.  */
59   #define YYPULL 1
60  
63 /* Using locations.  */
64 #define YYLSP_NEEDED 0
61  
62  
63  
64   /* Copy the first part of user declarations.  */
65 <
66 < /* Line 189 of yacc.c  */
71 < #line 25 "ircd_parser.y"
65 > /* Line 371 of yacc.c  */
66 > #line 25 "conf_parser.y"
67  
68  
69   #define YY_NO_UNPUT
# Line 76 | Line 71
71   #include <string.h>
72  
73   #include "config.h"
79 #ifdef HAVE_LIBPCRE
80 #include <pcre.h>
81 #endif
74   #include "stdinc.h"
75   #include "ircd.h"
84 #include "tools.h"
76   #include "list.h"
77 < #include "s_conf.h"
77 > #include "conf.h"
78 > #include "conf_class.h"
79   #include "event.h"
80 < #include "s_log.h"
80 > #include "log.h"
81   #include "client.h"     /* for UMODE_ALL only */
82   #include "irc_string.h"
91 #include "irc_getaddrinfo.h"
92 #include "sprintf_irc.h"
83   #include "memory.h"
84   #include "modules.h"
85   #include "s_serv.h"
# Line 99 | Line 89
89   #include "resv.h"
90   #include "numeric.h"
91   #include "s_user.h"
92 + #include "motd.h"
93  
94   #ifdef HAVE_LIBCRYPTO
95   #include <openssl/rsa.h>
96   #include <openssl/bio.h>
97   #include <openssl/pem.h>
98 + #include <openssl/dh.h>
99   #endif
100  
101 < static char *class_name = NULL;
110 < static struct ConfItem *yy_conf = NULL;
111 < static struct AccessItem *yy_aconf = NULL;
112 < static struct MatchItem *yy_match_item = NULL;
113 < static struct ClassItem *yy_class = NULL;
114 < static char *yy_class_name = NULL;
115 <
116 < static dlink_list col_conf_list  = { NULL, NULL, 0 };
117 < static dlink_list hub_conf_list  = { NULL, NULL, 0 };
118 < static dlink_list leaf_conf_list = { NULL, NULL, 0 };
119 < static unsigned int listener_flags = 0;
120 < static unsigned int regex_ban = 0;
121 < static char userbuf[IRCD_BUFSIZE];
122 < static char hostbuf[IRCD_BUFSIZE];
123 < static char reasonbuf[REASONLEN + 1];
124 < static char gecos_name[REALLEN * 4];
125 <
126 < extern dlink_list gdeny_items; /* XXX */
127 <
128 < static char *resv_reason = NULL;
129 < static char *listener_address = NULL;
130 < static int not_atom = 0;
101 > #include "rsa.h"
102  
103 < struct CollectItem
133 < {
134 <  dlink_node node;
135 <  char *name;
136 <  char *user;
137 <  char *host;
138 <  char *passwd;
139 <  int  port;
140 <  int  flags;
141 < #ifdef HAVE_LIBCRYPTO
142 <  char *rsa_public_key_file;
143 <  RSA *rsa_public_key;
144 < #endif
145 < };
103 > int yylex(void);
104  
105 < static void
148 < free_collect_item(struct CollectItem *item)
105 > static struct
106   {
107 <  MyFree(item->name);
108 <  MyFree(item->user);
109 <  MyFree(item->host);
110 <  MyFree(item->passwd);
111 < #ifdef HAVE_LIBCRYPTO
112 <  MyFree(item->rsa_public_key_file);
113 < #endif
114 <  MyFree(item);
115 < }
107 >  struct {
108 >    dlink_list list;
109 >  } mask,
110 >    leaf,
111 >    hub;
112 >
113 >  struct {
114 >    char buf[IRCD_BUFSIZE];
115 >  } name,
116 >    user,
117 >    host,
118 >    addr,
119 >    bind,
120 >    file,
121 >    ciph,
122 >    cert,
123 >    rpass,
124 >    spass,
125 >    class;
126 >
127 >  struct {
128 >    unsigned int value;
129 >  } flags,
130 >    modes,
131 >    size,
132 >    type,
133 >    port,
134 >    aftype,
135 >    ping_freq,
136 >    max_perip,
137 >    con_freq,
138 >    min_idle,
139 >    max_idle,
140 >    max_total,
141 >    max_global,
142 >    max_local,
143 >    max_ident,
144 >    max_sendq,
145 >    max_recvq,
146 >    cidr_bitlen_ipv4,
147 >    cidr_bitlen_ipv6,
148 >    number_per_cidr;
149 > } block_state;
150  
151   static void
152 < unhook_hub_leaf_confs(void)
152 > reset_block_state(void)
153   {
154 <  dlink_node *ptr;
164 <  dlink_node *next_ptr;
165 <  struct CollectItem *yy_hconf;
166 <  struct CollectItem *yy_lconf;
154 >  dlink_node *ptr = NULL, *ptr_next = NULL;
155  
156 <  DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
156 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
157    {
158 <    yy_hconf = ptr->data;
159 <    dlinkDelete(&yy_hconf->node, &hub_conf_list);
160 <    free_collect_item(yy_hconf);
158 >    MyFree(ptr->data);
159 >    dlinkDelete(ptr, &block_state.mask.list);
160 >    free_dlink_node(ptr);
161    }
162  
163 <  DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
163 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
164    {
165 <    yy_lconf = ptr->data;
166 <    dlinkDelete(&yy_lconf->node, &leaf_conf_list);
167 <    free_collect_item(yy_lconf);
165 >    MyFree(ptr->data);
166 >    dlinkDelete(ptr, &block_state.leaf.list);
167 >    free_dlink_node(ptr);
168 >  }
169 >
170 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
171 >  {
172 >    MyFree(ptr->data);
173 >    dlinkDelete(ptr, &block_state.hub.list);
174 >    free_dlink_node(ptr);
175    }
181 }
176  
177 +  memset(&block_state, 0, sizeof(block_state));
178 + }
179  
180  
181 < /* Line 189 of yacc.c  */
182 < #line 187 "ircd_parser.c"
181 > /* Line 371 of yacc.c  */
182 > #line 183 "conf_parser.c"
183  
184 < /* Enabling traces.  */
185 < #ifndef YYDEBUG
186 < # define YYDEBUG 0
187 < #endif
184 > # ifndef YY_NULL
185 > #  if defined __cplusplus && 201103L <= __cplusplus
186 > #   define YY_NULL nullptr
187 > #  else
188 > #   define YY_NULL 0
189 > #  endif
190 > # endif
191  
192   /* Enabling verbose error messages.  */
193   #ifdef YYERROR_VERBOSE
# Line 198 | Line 197 | unhook_hub_leaf_confs(void)
197   # define YYERROR_VERBOSE 0
198   #endif
199  
200 < /* Enabling the token table.  */
201 < #ifndef YYTOKEN_TABLE
202 < # define YYTOKEN_TABLE 0
200 > /* In a future release of Bison, this section will be replaced
201 >   by #include "y.tab.h".  */
202 > #ifndef YY_YY_CONF_PARSER_H_INCLUDED
203 > # define YY_YY_CONF_PARSER_H_INCLUDED
204 > /* Enabling traces.  */
205 > #ifndef YYDEBUG
206 > # define YYDEBUG 0
207 > #endif
208 > #if YYDEBUG
209 > extern int yydebug;
210   #endif
205
211  
212   /* Tokens.  */
213   #ifndef YYTOKENTYPE
# Line 211 | Line 216 | unhook_hub_leaf_confs(void)
216        know about them.  */
217     enum yytokentype {
218       ACCEPT_PASSWORD = 258,
219 <     ACTION = 259,
220 <     ADMIN = 260,
221 <     AFTYPE = 261,
222 <     T_ALLOW = 262,
223 <     ANTI_NICK_FLOOD = 263,
224 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 264,
225 <     AUTOCONN = 265,
226 <     T_BLOCK = 266,
227 <     BURST_AWAY = 267,
228 <     BURST_TOPICWHO = 268,
229 <     BYTES = 269,
230 <     KBYTES = 270,
231 <     MBYTES = 271,
232 <     GBYTES = 272,
233 <     TBYTES = 273,
234 <     CALLER_ID_WAIT = 274,
235 <     CAN_FLOOD = 275,
236 <     CAN_IDLE = 276,
237 <     CHANNEL = 277,
238 <     CIDR_BITLEN_IPV4 = 278,
239 <     CIDR_BITLEN_IPV6 = 279,
240 <     CIPHER_PREFERENCE = 280,
241 <     CLASS = 281,
242 <     COMPRESSED = 282,
243 <     COMPRESSION_LEVEL = 283,
244 <     CONNECT = 284,
245 <     CONNECTFREQ = 285,
246 <     CRYPTLINK = 286,
247 <     DEFAULT_CIPHER_PREFERENCE = 287,
248 <     DEFAULT_FLOODCOUNT = 288,
249 <     DEFAULT_SPLIT_SERVER_COUNT = 289,
250 <     DEFAULT_SPLIT_USER_COUNT = 290,
251 <     DENY = 291,
252 <     DESCRIPTION = 292,
253 <     DIE = 293,
254 <     DISABLE_AUTH = 294,
255 <     DISABLE_FAKE_CHANNELS = 295,
256 <     DISABLE_HIDDEN = 296,
257 <     DISABLE_LOCAL_CHANNELS = 297,
258 <     DISABLE_REMOTE_COMMANDS = 298,
259 <     DOT_IN_IP6_ADDR = 299,
260 <     DOTS_IN_IDENT = 300,
261 <     DURATION = 301,
262 <     EGDPOOL_PATH = 302,
263 <     EMAIL = 303,
264 <     ENABLE = 304,
265 <     ENCRYPTED = 305,
266 <     EXCEED_LIMIT = 306,
267 <     EXEMPT = 307,
268 <     FAILED_OPER_NOTICE = 308,
269 <     FAKENAME = 309,
270 <     IRCD_FLAGS = 310,
271 <     FLATTEN_LINKS = 311,
272 <     FFAILED_OPERLOG = 312,
273 <     FKILLLOG = 313,
274 <     FKLINELOG = 314,
275 <     FGLINELOG = 315,
276 <     FIOERRLOG = 316,
277 <     FOPERLOG = 317,
278 <     FOPERSPYLOG = 318,
279 <     FUSERLOG = 319,
280 <     GECOS = 320,
281 <     GENERAL = 321,
282 <     GLINE = 322,
283 <     GLINES = 323,
284 <     GLINE_EXEMPT = 324,
285 <     GLINE_LOG = 325,
286 <     GLINE_TIME = 326,
287 <     GLINE_MIN_CIDR = 327,
288 <     GLINE_MIN_CIDR6 = 328,
289 <     GLOBAL_KILL = 329,
290 <     IRCD_AUTH = 330,
291 <     NEED_IDENT = 331,
292 <     HAVENT_READ_CONF = 332,
293 <     HIDDEN = 333,
294 <     HIDDEN_ADMIN = 334,
295 <     HIDDEN_NAME = 335,
296 <     HIDDEN_OPER = 336,
297 <     HIDE_SERVER_IPS = 337,
298 <     HIDE_SERVERS = 338,
299 <     HIDE_SPOOF_IPS = 339,
300 <     HOST = 340,
301 <     HUB = 341,
302 <     HUB_MASK = 342,
303 <     IDLETIME = 343,
304 <     IGNORE_BOGUS_TS = 344,
305 <     INVISIBLE_ON_CONNECT = 345,
306 <     IP = 346,
307 <     KILL = 347,
308 <     KILL_CHASE_TIME_LIMIT = 348,
309 <     KLINE = 349,
310 <     KLINE_EXEMPT = 350,
311 <     KLINE_REASON = 351,
312 <     KLINE_WITH_REASON = 352,
313 <     KNOCK_DELAY = 353,
314 <     KNOCK_DELAY_CHANNEL = 354,
315 <     LEAF_MASK = 355,
316 <     LINKS_DELAY = 356,
317 <     LISTEN = 357,
318 <     T_LOG = 358,
319 <     LOGGING = 359,
320 <     LOG_LEVEL = 360,
321 <     MAX_ACCEPT = 361,
322 <     MAX_BANS = 362,
323 <     MAX_CHANS_PER_USER = 363,
324 <     MAX_GLOBAL = 364,
325 <     MAX_IDENT = 365,
326 <     MAX_LOCAL = 366,
327 <     MAX_NICK_CHANGES = 367,
328 <     MAX_NICK_TIME = 368,
329 <     MAX_NUMBER = 369,
330 <     MAX_TARGETS = 370,
331 <     MAX_WATCH = 371,
332 <     MESSAGE_LOCALE = 372,
333 <     MIN_NONWILDCARD = 373,
334 <     MIN_NONWILDCARD_SIMPLE = 374,
335 <     MODULE = 375,
336 <     MODULES = 376,
337 <     NAME = 377,
338 <     NEED_PASSWORD = 378,
339 <     NETWORK_DESC = 379,
340 <     NETWORK_NAME = 380,
341 <     NICK = 381,
342 <     NICK_CHANGES = 382,
343 <     NO_CREATE_ON_SPLIT = 383,
344 <     NO_JOIN_ON_SPLIT = 384,
345 <     NO_OPER_FLOOD = 385,
346 <     NO_TILDE = 386,
347 <     NOT = 387,
348 <     NUMBER = 388,
349 <     NUMBER_PER_IDENT = 389,
350 <     NUMBER_PER_CIDR = 390,
351 <     NUMBER_PER_IP = 391,
352 <     NUMBER_PER_IP_GLOBAL = 392,
353 <     OPERATOR = 393,
354 <     OPERS_BYPASS_CALLERID = 394,
355 <     OPER_LOG = 395,
356 <     OPER_ONLY_UMODES = 396,
357 <     OPER_PASS_RESV = 397,
358 <     OPER_SPY_T = 398,
359 <     OPER_UMODES = 399,
360 <     JOIN_FLOOD_COUNT = 400,
361 <     JOIN_FLOOD_TIME = 401,
362 <     PACE_WAIT = 402,
363 <     PACE_WAIT_SIMPLE = 403,
364 <     PASSWORD = 404,
365 <     PATH = 405,
366 <     PING_COOKIE = 406,
367 <     PING_TIME = 407,
368 <     PING_WARNING = 408,
369 <     PORT = 409,
370 <     QSTRING = 410,
371 <     QUIET_ON_BAN = 411,
372 <     REASON = 412,
373 <     REDIRPORT = 413,
374 <     REDIRSERV = 414,
375 <     REGEX_T = 415,
376 <     REHASH = 416,
377 <     TREJECT_HOLD_TIME = 417,
378 <     REMOTE = 418,
379 <     REMOTEBAN = 419,
380 <     RESTRICT_CHANNELS = 420,
381 <     RESTRICTED = 421,
382 <     RSA_PRIVATE_KEY_FILE = 422,
383 <     RSA_PUBLIC_KEY_FILE = 423,
384 <     SSL_CERTIFICATE_FILE = 424,
385 <     T_SSL_CONNECTION_METHOD = 425,
386 <     T_SSLV3 = 426,
387 <     T_TLSV1 = 427,
388 <     RESV = 428,
389 <     RESV_EXEMPT = 429,
390 <     SECONDS = 430,
391 <     MINUTES = 431,
392 <     HOURS = 432,
393 <     DAYS = 433,
394 <     WEEKS = 434,
395 <     SENDQ = 435,
396 <     SEND_PASSWORD = 436,
397 <     SERVERHIDE = 437,
398 <     SERVERINFO = 438,
399 <     SERVLINK_PATH = 439,
400 <     IRCD_SID = 440,
401 <     TKLINE_EXPIRE_NOTICES = 441,
219 >     ADMIN = 259,
220 >     AFTYPE = 260,
221 >     ANTI_NICK_FLOOD = 261,
222 >     ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
223 >     AUTOCONN = 263,
224 >     BYTES = 264,
225 >     KBYTES = 265,
226 >     MBYTES = 266,
227 >     CALLER_ID_WAIT = 267,
228 >     CAN_FLOOD = 268,
229 >     CHANNEL = 269,
230 >     CIDR_BITLEN_IPV4 = 270,
231 >     CIDR_BITLEN_IPV6 = 271,
232 >     CLASS = 272,
233 >     CONNECT = 273,
234 >     CONNECTFREQ = 274,
235 >     DEFAULT_FLOODCOUNT = 275,
236 >     DEFAULT_SPLIT_SERVER_COUNT = 276,
237 >     DEFAULT_SPLIT_USER_COUNT = 277,
238 >     DENY = 278,
239 >     DESCRIPTION = 279,
240 >     DIE = 280,
241 >     DISABLE_AUTH = 281,
242 >     DISABLE_FAKE_CHANNELS = 282,
243 >     DISABLE_REMOTE_COMMANDS = 283,
244 >     DOTS_IN_IDENT = 284,
245 >     EGDPOOL_PATH = 285,
246 >     EMAIL = 286,
247 >     ENCRYPTED = 287,
248 >     EXCEED_LIMIT = 288,
249 >     EXEMPT = 289,
250 >     FAILED_OPER_NOTICE = 290,
251 >     FLATTEN_LINKS = 291,
252 >     GECOS = 292,
253 >     GENERAL = 293,
254 >     GLINE = 294,
255 >     GLINE_DURATION = 295,
256 >     GLINE_ENABLE = 296,
257 >     GLINE_EXEMPT = 297,
258 >     GLINE_MIN_CIDR = 298,
259 >     GLINE_MIN_CIDR6 = 299,
260 >     GLINE_REQUEST_DURATION = 300,
261 >     GLOBAL_KILL = 301,
262 >     HAVENT_READ_CONF = 302,
263 >     HIDDEN = 303,
264 >     HIDDEN_NAME = 304,
265 >     HIDE_IDLE_FROM_OPERS = 305,
266 >     HIDE_SERVER_IPS = 306,
267 >     HIDE_SERVERS = 307,
268 >     HIDE_SERVICES = 308,
269 >     HIDE_SPOOF_IPS = 309,
270 >     HOST = 310,
271 >     HUB = 311,
272 >     HUB_MASK = 312,
273 >     IGNORE_BOGUS_TS = 313,
274 >     INVISIBLE_ON_CONNECT = 314,
275 >     IP = 315,
276 >     IRCD_AUTH = 316,
277 >     IRCD_FLAGS = 317,
278 >     IRCD_SID = 318,
279 >     JOIN_FLOOD_COUNT = 319,
280 >     JOIN_FLOOD_TIME = 320,
281 >     KILL = 321,
282 >     KILL_CHASE_TIME_LIMIT = 322,
283 >     KLINE = 323,
284 >     KLINE_EXEMPT = 324,
285 >     KNOCK_DELAY = 325,
286 >     KNOCK_DELAY_CHANNEL = 326,
287 >     LEAF_MASK = 327,
288 >     LINKS_DELAY = 328,
289 >     LISTEN = 329,
290 >     MASK = 330,
291 >     MAX_ACCEPT = 331,
292 >     MAX_BANS = 332,
293 >     MAX_CHANS_PER_OPER = 333,
294 >     MAX_CHANS_PER_USER = 334,
295 >     MAX_GLOBAL = 335,
296 >     MAX_IDENT = 336,
297 >     MAX_IDLE = 337,
298 >     MAX_LOCAL = 338,
299 >     MAX_NICK_CHANGES = 339,
300 >     MAX_NICK_LENGTH = 340,
301 >     MAX_NICK_TIME = 341,
302 >     MAX_NUMBER = 342,
303 >     MAX_TARGETS = 343,
304 >     MAX_TOPIC_LENGTH = 344,
305 >     MAX_WATCH = 345,
306 >     MIN_IDLE = 346,
307 >     MIN_NONWILDCARD = 347,
308 >     MIN_NONWILDCARD_SIMPLE = 348,
309 >     MODULE = 349,
310 >     MODULES = 350,
311 >     MOTD = 351,
312 >     NAME = 352,
313 >     NEED_IDENT = 353,
314 >     NEED_PASSWORD = 354,
315 >     NETWORK_DESC = 355,
316 >     NETWORK_NAME = 356,
317 >     NICK = 357,
318 >     NO_CREATE_ON_SPLIT = 358,
319 >     NO_JOIN_ON_SPLIT = 359,
320 >     NO_OPER_FLOOD = 360,
321 >     NO_TILDE = 361,
322 >     NUMBER = 362,
323 >     NUMBER_PER_CIDR = 363,
324 >     NUMBER_PER_IP = 364,
325 >     OPER_ONLY_UMODES = 365,
326 >     OPER_PASS_RESV = 366,
327 >     OPER_UMODES = 367,
328 >     OPERATOR = 368,
329 >     OPERS_BYPASS_CALLERID = 369,
330 >     PACE_WAIT = 370,
331 >     PACE_WAIT_SIMPLE = 371,
332 >     PASSWORD = 372,
333 >     PATH = 373,
334 >     PING_COOKIE = 374,
335 >     PING_TIME = 375,
336 >     PORT = 376,
337 >     QSTRING = 377,
338 >     RANDOM_IDLE = 378,
339 >     REASON = 379,
340 >     REDIRPORT = 380,
341 >     REDIRSERV = 381,
342 >     REHASH = 382,
343 >     REMOTE = 383,
344 >     REMOTEBAN = 384,
345 >     RESV = 385,
346 >     RESV_EXEMPT = 386,
347 >     RSA_PRIVATE_KEY_FILE = 387,
348 >     RSA_PUBLIC_KEY_FILE = 388,
349 >     SECONDS = 389,
350 >     MINUTES = 390,
351 >     HOURS = 391,
352 >     DAYS = 392,
353 >     WEEKS = 393,
354 >     MONTHS = 394,
355 >     YEARS = 395,
356 >     SEND_PASSWORD = 396,
357 >     SENDQ = 397,
358 >     SERVERHIDE = 398,
359 >     SERVERINFO = 399,
360 >     SHORT_MOTD = 400,
361 >     SPOOF = 401,
362 >     SPOOF_NOTICE = 402,
363 >     SQUIT = 403,
364 >     SSL_CERTIFICATE_FILE = 404,
365 >     SSL_DH_PARAM_FILE = 405,
366 >     STATS_E_DISABLED = 406,
367 >     STATS_I_OPER_ONLY = 407,
368 >     STATS_K_OPER_ONLY = 408,
369 >     STATS_O_OPER_ONLY = 409,
370 >     STATS_P_OPER_ONLY = 410,
371 >     T_ALL = 411,
372 >     T_BOTS = 412,
373 >     T_CALLERID = 413,
374 >     T_CCONN = 414,
375 >     T_CLUSTER = 415,
376 >     T_DEAF = 416,
377 >     T_DEBUG = 417,
378 >     T_DLINE = 418,
379 >     T_EXTERNAL = 419,
380 >     T_FARCONNECT = 420,
381 >     T_FILE = 421,
382 >     T_FINGERPRINT = 422,
383 >     T_FULL = 423,
384 >     T_GLOBOPS = 424,
385 >     T_INVISIBLE = 425,
386 >     T_IPV4 = 426,
387 >     T_IPV6 = 427,
388 >     T_LOCOPS = 428,
389 >     T_LOG = 429,
390 >     T_MAX_CLIENTS = 430,
391 >     T_NCHANGE = 431,
392 >     T_NONONREG = 432,
393 >     T_OPERWALL = 433,
394 >     T_RECVQ = 434,
395 >     T_REJ = 435,
396 >     T_RESTART = 436,
397 >     T_SERVER = 437,
398 >     T_SERVICE = 438,
399 >     T_SERVICES_NAME = 439,
400 >     T_SERVNOTICE = 440,
401 >     T_SET = 441,
402       T_SHARED = 442,
403 <     T_CLUSTER = 443,
404 <     TYPE = 444,
405 <     SHORT_MOTD = 445,
406 <     SILENT = 446,
407 <     SPOOF = 447,
408 <     SPOOF_NOTICE = 448,
409 <     STATS_E_DISABLED = 449,
410 <     STATS_I_OPER_ONLY = 450,
411 <     STATS_K_OPER_ONLY = 451,
412 <     STATS_O_OPER_ONLY = 452,
413 <     STATS_P_OPER_ONLY = 453,
414 <     TBOOL = 454,
415 <     TMASKED = 455,
416 <     T_REJECT = 456,
417 <     TS_MAX_DELTA = 457,
418 <     TS_WARN_DELTA = 458,
419 <     TWODOTS = 459,
420 <     T_ALL = 460,
421 <     T_BOTS = 461,
422 <     T_SOFTCALLERID = 462,
423 <     T_CALLERID = 463,
424 <     T_CCONN = 464,
425 <     T_CCONN_FULL = 465,
426 <     T_CLIENT_FLOOD = 466,
427 <     T_DEAF = 467,
428 <     T_DEBUG = 468,
429 <     T_DRONE = 469,
430 <     T_EXTERNAL = 470,
431 <     T_FULL = 471,
432 <     T_INVISIBLE = 472,
433 <     T_IPV4 = 473,
434 <     T_IPV6 = 474,
435 <     T_LOCOPS = 475,
436 <     T_LOGPATH = 476,
437 <     T_L_CRIT = 477,
438 <     T_L_DEBUG = 478,
434 <     T_L_ERROR = 479,
435 <     T_L_INFO = 480,
436 <     T_L_NOTICE = 481,
437 <     T_L_TRACE = 482,
438 <     T_L_WARN = 483,
439 <     T_MAX_CLIENTS = 484,
440 <     T_NCHANGE = 485,
441 <     T_OPERWALL = 486,
442 <     T_REJ = 487,
443 <     T_SERVER = 488,
444 <     T_SERVNOTICE = 489,
445 <     T_SKILL = 490,
446 <     T_SPY = 491,
447 <     T_SSL = 492,
448 <     T_UMODES = 493,
449 <     T_UNAUTH = 494,
450 <     T_UNRESV = 495,
451 <     T_UNXLINE = 496,
452 <     T_WALLOP = 497,
453 <     THROTTLE_TIME = 498,
454 <     TOPICBURST = 499,
455 <     TRUE_NO_OPER_FLOOD = 500,
456 <     TKLINE = 501,
457 <     TXLINE = 502,
458 <     TRESV = 503,
459 <     UNKLINE = 504,
460 <     USER = 505,
461 <     USE_EGD = 506,
462 <     USE_EXCEPT = 507,
463 <     USE_INVEX = 508,
464 <     USE_KNOCK = 509,
465 <     USE_LOGGING = 510,
466 <     USE_WHOIS_ACTUALLY = 511,
467 <     VHOST = 512,
468 <     VHOST6 = 513,
469 <     XLINE = 514,
470 <     WARN = 515,
471 <     WARN_NO_NLINE = 516
403 >     T_SIZE = 443,
404 >     T_SKILL = 444,
405 >     T_SOFTCALLERID = 445,
406 >     T_SPY = 446,
407 >     T_SSL = 447,
408 >     T_SSL_CIPHER_LIST = 448,
409 >     T_SSL_CLIENT_METHOD = 449,
410 >     T_SSL_SERVER_METHOD = 450,
411 >     T_SSLV3 = 451,
412 >     T_TLSV1 = 452,
413 >     T_UMODES = 453,
414 >     T_UNAUTH = 454,
415 >     T_UNDLINE = 455,
416 >     T_UNLIMITED = 456,
417 >     T_UNRESV = 457,
418 >     T_UNXLINE = 458,
419 >     T_WALLOP = 459,
420 >     T_WALLOPS = 460,
421 >     T_WEBIRC = 461,
422 >     TBOOL = 462,
423 >     THROTTLE_TIME = 463,
424 >     TKLINE_EXPIRE_NOTICES = 464,
425 >     TMASKED = 465,
426 >     TRUE_NO_OPER_FLOOD = 466,
427 >     TS_MAX_DELTA = 467,
428 >     TS_WARN_DELTA = 468,
429 >     TWODOTS = 469,
430 >     TYPE = 470,
431 >     UNKLINE = 471,
432 >     USE_EGD = 472,
433 >     USE_LOGGING = 473,
434 >     USER = 474,
435 >     VHOST = 475,
436 >     VHOST6 = 476,
437 >     WARN_NO_NLINE = 477,
438 >     XLINE = 478
439     };
440   #endif
441   /* Tokens.  */
442   #define ACCEPT_PASSWORD 258
443 < #define ACTION 259
444 < #define ADMIN 260
445 < #define AFTYPE 261
446 < #define T_ALLOW 262
447 < #define ANTI_NICK_FLOOD 263
448 < #define ANTI_SPAM_EXIT_MESSAGE_TIME 264
449 < #define AUTOCONN 265
450 < #define T_BLOCK 266
451 < #define BURST_AWAY 267
452 < #define BURST_TOPICWHO 268
453 < #define BYTES 269
454 < #define KBYTES 270
455 < #define MBYTES 271
456 < #define GBYTES 272
457 < #define TBYTES 273
458 < #define CALLER_ID_WAIT 274
459 < #define CAN_FLOOD 275
460 < #define CAN_IDLE 276
461 < #define CHANNEL 277
462 < #define CIDR_BITLEN_IPV4 278
463 < #define CIDR_BITLEN_IPV6 279
464 < #define CIPHER_PREFERENCE 280
465 < #define CLASS 281
466 < #define COMPRESSED 282
467 < #define COMPRESSION_LEVEL 283
468 < #define CONNECT 284
469 < #define CONNECTFREQ 285
470 < #define CRYPTLINK 286
471 < #define DEFAULT_CIPHER_PREFERENCE 287
472 < #define DEFAULT_FLOODCOUNT 288
473 < #define DEFAULT_SPLIT_SERVER_COUNT 289
474 < #define DEFAULT_SPLIT_USER_COUNT 290
475 < #define DENY 291
476 < #define DESCRIPTION 292
477 < #define DIE 293
478 < #define DISABLE_AUTH 294
479 < #define DISABLE_FAKE_CHANNELS 295
480 < #define DISABLE_HIDDEN 296
481 < #define DISABLE_LOCAL_CHANNELS 297
482 < #define DISABLE_REMOTE_COMMANDS 298
483 < #define DOT_IN_IP6_ADDR 299
484 < #define DOTS_IN_IDENT 300
485 < #define DURATION 301
486 < #define EGDPOOL_PATH 302
487 < #define EMAIL 303
488 < #define ENABLE 304
489 < #define ENCRYPTED 305
490 < #define EXCEED_LIMIT 306
491 < #define EXEMPT 307
492 < #define FAILED_OPER_NOTICE 308
493 < #define FAKENAME 309
494 < #define IRCD_FLAGS 310
495 < #define FLATTEN_LINKS 311
496 < #define FFAILED_OPERLOG 312
497 < #define FKILLLOG 313
498 < #define FKLINELOG 314
499 < #define FGLINELOG 315
500 < #define FIOERRLOG 316
501 < #define FOPERLOG 317
502 < #define FOPERSPYLOG 318
503 < #define FUSERLOG 319
504 < #define GECOS 320
505 < #define GENERAL 321
506 < #define GLINE 322
507 < #define GLINES 323
508 < #define GLINE_EXEMPT 324
509 < #define GLINE_LOG 325
510 < #define GLINE_TIME 326
511 < #define GLINE_MIN_CIDR 327
512 < #define GLINE_MIN_CIDR6 328
513 < #define GLOBAL_KILL 329
514 < #define IRCD_AUTH 330
515 < #define NEED_IDENT 331
516 < #define HAVENT_READ_CONF 332
517 < #define HIDDEN 333
518 < #define HIDDEN_ADMIN 334
519 < #define HIDDEN_NAME 335
520 < #define HIDDEN_OPER 336
521 < #define HIDE_SERVER_IPS 337
522 < #define HIDE_SERVERS 338
523 < #define HIDE_SPOOF_IPS 339
524 < #define HOST 340
525 < #define HUB 341
526 < #define HUB_MASK 342
527 < #define IDLETIME 343
528 < #define IGNORE_BOGUS_TS 344
529 < #define INVISIBLE_ON_CONNECT 345
530 < #define IP 346
531 < #define KILL 347
532 < #define KILL_CHASE_TIME_LIMIT 348
533 < #define KLINE 349
534 < #define KLINE_EXEMPT 350
535 < #define KLINE_REASON 351
536 < #define KLINE_WITH_REASON 352
537 < #define KNOCK_DELAY 353
538 < #define KNOCK_DELAY_CHANNEL 354
539 < #define LEAF_MASK 355
540 < #define LINKS_DELAY 356
541 < #define LISTEN 357
542 < #define T_LOG 358
543 < #define LOGGING 359
544 < #define LOG_LEVEL 360
545 < #define MAX_ACCEPT 361
546 < #define MAX_BANS 362
547 < #define MAX_CHANS_PER_USER 363
548 < #define MAX_GLOBAL 364
549 < #define MAX_IDENT 365
550 < #define MAX_LOCAL 366
551 < #define MAX_NICK_CHANGES 367
552 < #define MAX_NICK_TIME 368
553 < #define MAX_NUMBER 369
554 < #define MAX_TARGETS 370
555 < #define MAX_WATCH 371
556 < #define MESSAGE_LOCALE 372
557 < #define MIN_NONWILDCARD 373
558 < #define MIN_NONWILDCARD_SIMPLE 374
559 < #define MODULE 375
560 < #define MODULES 376
561 < #define NAME 377
562 < #define NEED_PASSWORD 378
563 < #define NETWORK_DESC 379
564 < #define NETWORK_NAME 380
565 < #define NICK 381
566 < #define NICK_CHANGES 382
567 < #define NO_CREATE_ON_SPLIT 383
568 < #define NO_JOIN_ON_SPLIT 384
569 < #define NO_OPER_FLOOD 385
570 < #define NO_TILDE 386
571 < #define NOT 387
572 < #define NUMBER 388
573 < #define NUMBER_PER_IDENT 389
574 < #define NUMBER_PER_CIDR 390
575 < #define NUMBER_PER_IP 391
576 < #define NUMBER_PER_IP_GLOBAL 392
577 < #define OPERATOR 393
578 < #define OPERS_BYPASS_CALLERID 394
579 < #define OPER_LOG 395
580 < #define OPER_ONLY_UMODES 396
581 < #define OPER_PASS_RESV 397
582 < #define OPER_SPY_T 398
583 < #define OPER_UMODES 399
584 < #define JOIN_FLOOD_COUNT 400
585 < #define JOIN_FLOOD_TIME 401
586 < #define PACE_WAIT 402
587 < #define PACE_WAIT_SIMPLE 403
588 < #define PASSWORD 404
589 < #define PATH 405
590 < #define PING_COOKIE 406
591 < #define PING_TIME 407
592 < #define PING_WARNING 408
593 < #define PORT 409
594 < #define QSTRING 410
595 < #define QUIET_ON_BAN 411
596 < #define REASON 412
597 < #define REDIRPORT 413
598 < #define REDIRSERV 414
599 < #define REGEX_T 415
600 < #define REHASH 416
601 < #define TREJECT_HOLD_TIME 417
602 < #define REMOTE 418
603 < #define REMOTEBAN 419
604 < #define RESTRICT_CHANNELS 420
605 < #define RESTRICTED 421
606 < #define RSA_PRIVATE_KEY_FILE 422
607 < #define RSA_PUBLIC_KEY_FILE 423
608 < #define SSL_CERTIFICATE_FILE 424
609 < #define T_SSL_CONNECTION_METHOD 425
610 < #define T_SSLV3 426
611 < #define T_TLSV1 427
612 < #define RESV 428
613 < #define RESV_EXEMPT 429
614 < #define SECONDS 430
615 < #define MINUTES 431
616 < #define HOURS 432
617 < #define DAYS 433
618 < #define WEEKS 434
619 < #define SENDQ 435
620 < #define SEND_PASSWORD 436
621 < #define SERVERHIDE 437
622 < #define SERVERINFO 438
623 < #define SERVLINK_PATH 439
624 < #define IRCD_SID 440
625 < #define TKLINE_EXPIRE_NOTICES 441
443 > #define ADMIN 259
444 > #define AFTYPE 260
445 > #define ANTI_NICK_FLOOD 261
446 > #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
447 > #define AUTOCONN 263
448 > #define BYTES 264
449 > #define KBYTES 265
450 > #define MBYTES 266
451 > #define CALLER_ID_WAIT 267
452 > #define CAN_FLOOD 268
453 > #define CHANNEL 269
454 > #define CIDR_BITLEN_IPV4 270
455 > #define CIDR_BITLEN_IPV6 271
456 > #define CLASS 272
457 > #define CONNECT 273
458 > #define CONNECTFREQ 274
459 > #define DEFAULT_FLOODCOUNT 275
460 > #define DEFAULT_SPLIT_SERVER_COUNT 276
461 > #define DEFAULT_SPLIT_USER_COUNT 277
462 > #define DENY 278
463 > #define DESCRIPTION 279
464 > #define DIE 280
465 > #define DISABLE_AUTH 281
466 > #define DISABLE_FAKE_CHANNELS 282
467 > #define DISABLE_REMOTE_COMMANDS 283
468 > #define DOTS_IN_IDENT 284
469 > #define EGDPOOL_PATH 285
470 > #define EMAIL 286
471 > #define ENCRYPTED 287
472 > #define EXCEED_LIMIT 288
473 > #define EXEMPT 289
474 > #define FAILED_OPER_NOTICE 290
475 > #define FLATTEN_LINKS 291
476 > #define GECOS 292
477 > #define GENERAL 293
478 > #define GLINE 294
479 > #define GLINE_DURATION 295
480 > #define GLINE_ENABLE 296
481 > #define GLINE_EXEMPT 297
482 > #define GLINE_MIN_CIDR 298
483 > #define GLINE_MIN_CIDR6 299
484 > #define GLINE_REQUEST_DURATION 300
485 > #define GLOBAL_KILL 301
486 > #define HAVENT_READ_CONF 302
487 > #define HIDDEN 303
488 > #define HIDDEN_NAME 304
489 > #define HIDE_IDLE_FROM_OPERS 305
490 > #define HIDE_SERVER_IPS 306
491 > #define HIDE_SERVERS 307
492 > #define HIDE_SERVICES 308
493 > #define HIDE_SPOOF_IPS 309
494 > #define HOST 310
495 > #define HUB 311
496 > #define HUB_MASK 312
497 > #define IGNORE_BOGUS_TS 313
498 > #define INVISIBLE_ON_CONNECT 314
499 > #define IP 315
500 > #define IRCD_AUTH 316
501 > #define IRCD_FLAGS 317
502 > #define IRCD_SID 318
503 > #define JOIN_FLOOD_COUNT 319
504 > #define JOIN_FLOOD_TIME 320
505 > #define KILL 321
506 > #define KILL_CHASE_TIME_LIMIT 322
507 > #define KLINE 323
508 > #define KLINE_EXEMPT 324
509 > #define KNOCK_DELAY 325
510 > #define KNOCK_DELAY_CHANNEL 326
511 > #define LEAF_MASK 327
512 > #define LINKS_DELAY 328
513 > #define LISTEN 329
514 > #define MASK 330
515 > #define MAX_ACCEPT 331
516 > #define MAX_BANS 332
517 > #define MAX_CHANS_PER_OPER 333
518 > #define MAX_CHANS_PER_USER 334
519 > #define MAX_GLOBAL 335
520 > #define MAX_IDENT 336
521 > #define MAX_IDLE 337
522 > #define MAX_LOCAL 338
523 > #define MAX_NICK_CHANGES 339
524 > #define MAX_NICK_LENGTH 340
525 > #define MAX_NICK_TIME 341
526 > #define MAX_NUMBER 342
527 > #define MAX_TARGETS 343
528 > #define MAX_TOPIC_LENGTH 344
529 > #define MAX_WATCH 345
530 > #define MIN_IDLE 346
531 > #define MIN_NONWILDCARD 347
532 > #define MIN_NONWILDCARD_SIMPLE 348
533 > #define MODULE 349
534 > #define MODULES 350
535 > #define MOTD 351
536 > #define NAME 352
537 > #define NEED_IDENT 353
538 > #define NEED_PASSWORD 354
539 > #define NETWORK_DESC 355
540 > #define NETWORK_NAME 356
541 > #define NICK 357
542 > #define NO_CREATE_ON_SPLIT 358
543 > #define NO_JOIN_ON_SPLIT 359
544 > #define NO_OPER_FLOOD 360
545 > #define NO_TILDE 361
546 > #define NUMBER 362
547 > #define NUMBER_PER_CIDR 363
548 > #define NUMBER_PER_IP 364
549 > #define OPER_ONLY_UMODES 365
550 > #define OPER_PASS_RESV 366
551 > #define OPER_UMODES 367
552 > #define OPERATOR 368
553 > #define OPERS_BYPASS_CALLERID 369
554 > #define PACE_WAIT 370
555 > #define PACE_WAIT_SIMPLE 371
556 > #define PASSWORD 372
557 > #define PATH 373
558 > #define PING_COOKIE 374
559 > #define PING_TIME 375
560 > #define PORT 376
561 > #define QSTRING 377
562 > #define RANDOM_IDLE 378
563 > #define REASON 379
564 > #define REDIRPORT 380
565 > #define REDIRSERV 381
566 > #define REHASH 382
567 > #define REMOTE 383
568 > #define REMOTEBAN 384
569 > #define RESV 385
570 > #define RESV_EXEMPT 386
571 > #define RSA_PRIVATE_KEY_FILE 387
572 > #define RSA_PUBLIC_KEY_FILE 388
573 > #define SECONDS 389
574 > #define MINUTES 390
575 > #define HOURS 391
576 > #define DAYS 392
577 > #define WEEKS 393
578 > #define MONTHS 394
579 > #define YEARS 395
580 > #define SEND_PASSWORD 396
581 > #define SENDQ 397
582 > #define SERVERHIDE 398
583 > #define SERVERINFO 399
584 > #define SHORT_MOTD 400
585 > #define SPOOF 401
586 > #define SPOOF_NOTICE 402
587 > #define SQUIT 403
588 > #define SSL_CERTIFICATE_FILE 404
589 > #define SSL_DH_PARAM_FILE 405
590 > #define STATS_E_DISABLED 406
591 > #define STATS_I_OPER_ONLY 407
592 > #define STATS_K_OPER_ONLY 408
593 > #define STATS_O_OPER_ONLY 409
594 > #define STATS_P_OPER_ONLY 410
595 > #define T_ALL 411
596 > #define T_BOTS 412
597 > #define T_CALLERID 413
598 > #define T_CCONN 414
599 > #define T_CLUSTER 415
600 > #define T_DEAF 416
601 > #define T_DEBUG 417
602 > #define T_DLINE 418
603 > #define T_EXTERNAL 419
604 > #define T_FARCONNECT 420
605 > #define T_FILE 421
606 > #define T_FINGERPRINT 422
607 > #define T_FULL 423
608 > #define T_GLOBOPS 424
609 > #define T_INVISIBLE 425
610 > #define T_IPV4 426
611 > #define T_IPV6 427
612 > #define T_LOCOPS 428
613 > #define T_LOG 429
614 > #define T_MAX_CLIENTS 430
615 > #define T_NCHANGE 431
616 > #define T_NONONREG 432
617 > #define T_OPERWALL 433
618 > #define T_RECVQ 434
619 > #define T_REJ 435
620 > #define T_RESTART 436
621 > #define T_SERVER 437
622 > #define T_SERVICE 438
623 > #define T_SERVICES_NAME 439
624 > #define T_SERVNOTICE 440
625 > #define T_SET 441
626   #define T_SHARED 442
627 < #define T_CLUSTER 443
628 < #define TYPE 444
629 < #define SHORT_MOTD 445
630 < #define SILENT 446
631 < #define SPOOF 447
632 < #define SPOOF_NOTICE 448
633 < #define STATS_E_DISABLED 449
634 < #define STATS_I_OPER_ONLY 450
635 < #define STATS_K_OPER_ONLY 451
636 < #define STATS_O_OPER_ONLY 452
637 < #define STATS_P_OPER_ONLY 453
638 < #define TBOOL 454
639 < #define TMASKED 455
640 < #define T_REJECT 456
641 < #define TS_MAX_DELTA 457
642 < #define TS_WARN_DELTA 458
643 < #define TWODOTS 459
644 < #define T_ALL 460
645 < #define T_BOTS 461
646 < #define T_SOFTCALLERID 462
647 < #define T_CALLERID 463
648 < #define T_CCONN 464
649 < #define T_CCONN_FULL 465
650 < #define T_CLIENT_FLOOD 466
651 < #define T_DEAF 467
652 < #define T_DEBUG 468
653 < #define T_DRONE 469
654 < #define T_EXTERNAL 470
655 < #define T_FULL 471
656 < #define T_INVISIBLE 472
657 < #define T_IPV4 473
658 < #define T_IPV6 474
659 < #define T_LOCOPS 475
660 < #define T_LOGPATH 476
661 < #define T_L_CRIT 477
662 < #define T_L_DEBUG 478
696 < #define T_L_ERROR 479
697 < #define T_L_INFO 480
698 < #define T_L_NOTICE 481
699 < #define T_L_TRACE 482
700 < #define T_L_WARN 483
701 < #define T_MAX_CLIENTS 484
702 < #define T_NCHANGE 485
703 < #define T_OPERWALL 486
704 < #define T_REJ 487
705 < #define T_SERVER 488
706 < #define T_SERVNOTICE 489
707 < #define T_SKILL 490
708 < #define T_SPY 491
709 < #define T_SSL 492
710 < #define T_UMODES 493
711 < #define T_UNAUTH 494
712 < #define T_UNRESV 495
713 < #define T_UNXLINE 496
714 < #define T_WALLOP 497
715 < #define THROTTLE_TIME 498
716 < #define TOPICBURST 499
717 < #define TRUE_NO_OPER_FLOOD 500
718 < #define TKLINE 501
719 < #define TXLINE 502
720 < #define TRESV 503
721 < #define UNKLINE 504
722 < #define USER 505
723 < #define USE_EGD 506
724 < #define USE_EXCEPT 507
725 < #define USE_INVEX 508
726 < #define USE_KNOCK 509
727 < #define USE_LOGGING 510
728 < #define USE_WHOIS_ACTUALLY 511
729 < #define VHOST 512
730 < #define VHOST6 513
731 < #define XLINE 514
732 < #define WARN 515
733 < #define WARN_NO_NLINE 516
734 <
627 > #define T_SIZE 443
628 > #define T_SKILL 444
629 > #define T_SOFTCALLERID 445
630 > #define T_SPY 446
631 > #define T_SSL 447
632 > #define T_SSL_CIPHER_LIST 448
633 > #define T_SSL_CLIENT_METHOD 449
634 > #define T_SSL_SERVER_METHOD 450
635 > #define T_SSLV3 451
636 > #define T_TLSV1 452
637 > #define T_UMODES 453
638 > #define T_UNAUTH 454
639 > #define T_UNDLINE 455
640 > #define T_UNLIMITED 456
641 > #define T_UNRESV 457
642 > #define T_UNXLINE 458
643 > #define T_WALLOP 459
644 > #define T_WALLOPS 460
645 > #define T_WEBIRC 461
646 > #define TBOOL 462
647 > #define THROTTLE_TIME 463
648 > #define TKLINE_EXPIRE_NOTICES 464
649 > #define TMASKED 465
650 > #define TRUE_NO_OPER_FLOOD 466
651 > #define TS_MAX_DELTA 467
652 > #define TS_WARN_DELTA 468
653 > #define TWODOTS 469
654 > #define TYPE 470
655 > #define UNKLINE 471
656 > #define USE_EGD 472
657 > #define USE_LOGGING 473
658 > #define USER 474
659 > #define VHOST 475
660 > #define VHOST6 476
661 > #define WARN_NO_NLINE 477
662 > #define XLINE 478
663  
664  
665  
666   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
667   typedef union YYSTYPE
668   {
669 <
670 < /* Line 214 of yacc.c  */
743 < #line 138 "ircd_parser.y"
669 > /* Line 387 of yacc.c  */
670 > #line 140 "conf_parser.y"
671  
672    int number;
673    char *string;
674  
675  
676 <
677 < /* Line 214 of yacc.c  */
751 < #line 752 "ircd_parser.c"
676 > /* Line 387 of yacc.c  */
677 > #line 678 "conf_parser.c"
678   } YYSTYPE;
679   # define YYSTYPE_IS_TRIVIAL 1
680   # define yystype YYSTYPE /* obsolescent; will be withdrawn */
681   # define YYSTYPE_IS_DECLARED 1
682   #endif
683  
684 + extern YYSTYPE yylval;
685  
686 < /* Copy the second part of user declarations.  */
686 > #ifdef YYPARSE_PARAM
687 > #if defined __STDC__ || defined __cplusplus
688 > int yyparse (void *YYPARSE_PARAM);
689 > #else
690 > int yyparse ();
691 > #endif
692 > #else /* ! YYPARSE_PARAM */
693 > #if defined __STDC__ || defined __cplusplus
694 > int yyparse (void);
695 > #else
696 > int yyparse ();
697 > #endif
698 > #endif /* ! YYPARSE_PARAM */
699 >
700 > #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
701  
702 + /* Copy the second part of user declarations.  */
703  
704 < /* Line 264 of yacc.c  */
705 < #line 764 "ircd_parser.c"
704 > /* Line 390 of yacc.c  */
705 > #line 706 "conf_parser.c"
706  
707   #ifdef short
708   # undef short
# Line 810 | Line 752 | typedef short int yytype_int16;
752   #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
753  
754   #ifndef YY_
755 < # if YYENABLE_NLS
755 > # if defined YYENABLE_NLS && YYENABLE_NLS
756   #  if ENABLE_NLS
757   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
758 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
758 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
759   #  endif
760   # endif
761   # ifndef YY_
762 < #  define YY_(msgid) msgid
762 > #  define YY_(Msgid) Msgid
763 > # endif
764 > #endif
765 >
766 > #ifndef __attribute__
767 > /* This feature is available in gcc versions 2.5 and later.  */
768 > # if (! defined __GNUC__ || __GNUC__ < 2 \
769 >      || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
770 > #  define __attribute__(Spec) /* empty */
771   # endif
772   #endif
773  
774   /* Suppress unused-variable warnings by "using" E.  */
775   #if ! defined lint || defined __GNUC__
776 < # define YYUSE(e) ((void) (e))
776 > # define YYUSE(E) ((void) (E))
777   #else
778 < # define YYUSE(e) /* empty */
778 > # define YYUSE(E) /* empty */
779   #endif
780  
781 +
782   /* Identity function, used to suppress warnings about constant conditions.  */
783   #ifndef lint
784 < # define YYID(n) (n)
784 > # define YYID(N) (N)
785   #else
786   #if (defined __STDC__ || defined __C99__FUNC__ \
787       || defined __cplusplus || defined _MSC_VER)
# Line 863 | Line 814 | YYID (yyi)
814   #    define alloca _alloca
815   #   else
816   #    define YYSTACK_ALLOC alloca
817 < #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
817 > #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
818       || defined __cplusplus || defined _MSC_VER)
819   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
820 < #     ifndef _STDLIB_H
821 < #      define _STDLIB_H 1
820 >      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
821 > #     ifndef EXIT_SUCCESS
822 > #      define EXIT_SUCCESS 0
823   #     endif
824   #    endif
825   #   endif
# Line 890 | Line 842 | YYID (yyi)
842   #  ifndef YYSTACK_ALLOC_MAXIMUM
843   #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
844   #  endif
845 < #  if (defined __cplusplus && ! defined _STDLIB_H \
845 > #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
846         && ! ((defined YYMALLOC || defined malloc) \
847               && (defined YYFREE || defined free)))
848   #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
849 < #   ifndef _STDLIB_H
850 < #    define _STDLIB_H 1
849 > #   ifndef EXIT_SUCCESS
850 > #    define EXIT_SUCCESS 0
851   #   endif
852   #  endif
853   #  ifndef YYMALLOC
854   #   define YYMALLOC malloc
855 < #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
855 > #   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
856       || defined __cplusplus || defined _MSC_VER)
857   void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
858   #   endif
859   #  endif
860   #  ifndef YYFREE
861   #   define YYFREE free
862 < #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
862 > #   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
863       || defined __cplusplus || defined _MSC_VER)
864   void free (void *); /* INFRINGES ON USER NAME SPACE */
865   #   endif
# Line 936 | Line 888 | union yyalloc
888       ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
889        + YYSTACK_GAP_MAXIMUM)
890  
891 < /* Copy COUNT objects from FROM to TO.  The source and destination do
940 <   not overlap.  */
941 < # ifndef YYCOPY
942 < #  if defined __GNUC__ && 1 < __GNUC__
943 < #   define YYCOPY(To, From, Count) \
944 <      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
945 < #  else
946 < #   define YYCOPY(To, From, Count)              \
947 <      do                                        \
948 <        {                                       \
949 <          YYSIZE_T yyi;                         \
950 <          for (yyi = 0; yyi < (Count); yyi++)   \
951 <            (To)[yyi] = (From)[yyi];            \
952 <        }                                       \
953 <      while (YYID (0))
954 < #  endif
955 < # endif
891 > # define YYCOPY_NEEDED 1
892  
893   /* Relocate STACK from its old location to the new one.  The
894     local variables YYSIZE and YYSTACKSIZE give the old and new number of
# Line 972 | Line 908 | union yyalloc
908  
909   #endif
910  
911 + #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
912 + /* Copy COUNT objects from SRC to DST.  The source and destination do
913 +   not overlap.  */
914 + # ifndef YYCOPY
915 + #  if defined __GNUC__ && 1 < __GNUC__
916 + #   define YYCOPY(Dst, Src, Count) \
917 +      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
918 + #  else
919 + #   define YYCOPY(Dst, Src, Count)              \
920 +      do                                        \
921 +        {                                       \
922 +          YYSIZE_T yyi;                         \
923 +          for (yyi = 0; yyi < (Count); yyi++)   \
924 +            (Dst)[yyi] = (Src)[yyi];            \
925 +        }                                       \
926 +      while (YYID (0))
927 + #  endif
928 + # endif
929 + #endif /* !YYCOPY_NEEDED */
930 +
931   /* YYFINAL -- State number of the termination state.  */
932   #define YYFINAL  2
933   /* YYLAST -- Last index in YYTABLE.  */
934 < #define YYLAST   1413
934 > #define YYLAST   1221
935  
936   /* YYNTOKENS -- Number of terminals.  */
937 < #define YYNTOKENS  267
937 > #define YYNTOKENS  230
938   /* YYNNTS -- Number of nonterminals.  */
939 < #define YYNNTS  346
939 > #define YYNNTS  288
940   /* YYNRULES -- Number of rules.  */
941 < #define YYNRULES  743
941 > #define YYNRULES  648
942   /* YYNRULES -- Number of states.  */
943 < #define YYNSTATES  1494
943 > #define YYNSTATES  1270
944  
945   /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
946   #define YYUNDEFTOK  2
947 < #define YYMAXUTOK   516
947 > #define YYMAXUTOK   478
948  
949   #define YYTRANSLATE(YYX)                                                \
950    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
951  
952   /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
953 < static const yytype_uint16 yytranslate[] =
953 > static const yytype_uint8 yytranslate[] =
954   {
955         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
956         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
957         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
958         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
959 <       2,     2,     2,     2,   266,     2,     2,     2,     2,     2,
960 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   262,
961 <       2,   265,     2,     2,     2,     2,     2,     2,     2,     2,
959 >       2,     2,     2,     2,   228,     2,     2,     2,     2,     2,
960 >       2,     2,     2,     2,     2,     2,     2,     2,   229,   224,
961 >       2,   227,     2,     2,     2,     2,     2,     2,     2,     2,
962         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
963         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
964         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
965         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
966         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
967 <       2,     2,     2,   264,     2,   263,     2,     2,     2,     2,
967 >       2,     2,     2,   226,     2,   225,     2,     2,     2,     2,
968         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
969         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
970         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 1043 | Line 999 | static const yytype_uint16 yytranslate[]
999       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1000       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1001       205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1002 <     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1047 <     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1048 <     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1049 <     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1050 <     255,   256,   257,   258,   259,   260,   261
1002 >     215,   216,   217,   218,   219,   220,   221,   222,   223
1003   };
1004  
1005   #if YYDEBUG
# Line 1057 | Line 1009 | static const yytype_uint16 yyprhs[] =
1009   {
1010         0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
1011        19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
1012 <      39,    41,    43,    45,    47,    50,    53,    54,    56,    59,
1013 <      63,    67,    71,    75,    79,    80,    82,    85,    89,    93,
1014 <      97,   103,   106,   108,   110,   112,   115,   120,   125,   131,
1015 <     134,   136,   138,   140,   142,   144,   146,   148,   150,   152,
1016 <     154,   156,   158,   160,   163,   164,   170,   174,   176,   178,
1017 <     180,   185,   190,   195,   200,   205,   210,   215,   220,   225,
1018 <     230,   235,   241,   244,   246,   248,   250,   252,   255,   260,
1019 <     265,   270,   276,   279,   281,   283,   285,   287,   289,   291,
1020 <     293,   295,   297,   299,   301,   303,   305,   308,   313,   318,
1021 <     323,   328,   333,   338,   343,   348,   353,   358,   363,   368,
1022 <     373,   378,   383,   388,   393,   398,   399,   407,   408,   410,
1023 <     413,   415,   417,   419,   421,   423,   425,   427,   429,   431,
1024 <     433,   435,   437,   439,   441,   443,   445,   447,   449,   451,
1025 <     453,   455,   457,   459,   462,   467,   469,   474,   479,   484,
1026 <     489,   494,   495,   501,   505,   507,   509,   511,   513,   515,
1027 <     517,   519,   521,   523,   525,   527,   529,   531,   533,   535,
1028 <     537,   539,   541,   543,   545,   550,   555,   560,   565,   570,
1029 <     575,   580,   585,   590,   595,   600,   605,   610,   615,   616,
1030 <     622,   626,   628,   629,   633,   634,   637,   639,   641,   643,
1031 <     645,   647,   649,   651,   653,   655,   657,   659,   661,   663,
1032 <     665,   667,   669,   670,   678,   679,   681,   684,   686,   688,
1033 <     690,   692,   694,   696,   698,   700,   702,   704,   706,   708,
1034 <     710,   712,   715,   720,   722,   727,   732,   737,   742,   747,
1035 <     752,   757,   762,   767,   772,   777,   782,   783,   790,   791,
1036 <     797,   801,   803,   805,   807,   809,   812,   814,   816,   818,
1037 <     820,   822,   825,   826,   832,   836,   838,   840,   844,   849,
1038 <     854,   855,   862,   865,   867,   869,   871,   873,   875,   877,
1039 <     879,   881,   883,   885,   887,   889,   891,   893,   895,   897,
1040 <     899,   902,   907,   912,   917,   922,   927,   928,   934,   938,
1041 <     940,   941,   945,   946,   949,   951,   953,   955,   957,   959,
1042 <     961,   963,   965,   967,   969,   974,   979,   984,   989,   994,
1043 <     999,  1004,  1009,  1014,  1019,  1020,  1027,  1030,  1032,  1034,
1044 <    1036,  1038,  1041,  1046,  1051,  1056,  1057,  1064,  1067,  1069,
1045 <    1071,  1073,  1075,  1078,  1083,  1088,  1089,  1095,  1099,  1101,
1046 <    1103,  1105,  1107,  1109,  1111,  1113,  1115,  1117,  1119,  1121,
1047 <    1123,  1124,  1131,  1134,  1136,  1138,  1140,  1143,  1148,  1149,
1048 <    1155,  1159,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,
1049 <    1177,  1179,  1181,  1183,  1184,  1192,  1193,  1195,  1198,  1200,
1050 <    1202,  1204,  1206,  1208,  1210,  1212,  1214,  1216,  1218,  1220,
1051 <    1222,  1224,  1226,  1228,  1230,  1232,  1234,  1236,  1238,  1241,
1052 <    1246,  1248,  1253,  1258,  1263,  1268,  1273,  1278,  1283,  1288,
1053 <    1289,  1295,  1299,  1301,  1302,  1306,  1307,  1310,  1312,  1314,
1054 <    1316,  1318,  1320,  1325,  1330,  1335,  1340,  1345,  1350,  1355,
1055 <    1360,  1365,  1370,  1371,  1378,  1379,  1385,  1389,  1391,  1393,
1056 <    1396,  1398,  1400,  1402,  1404,  1406,  1411,  1416,  1417,  1424,
1057 <    1427,  1429,  1431,  1433,  1435,  1440,  1445,  1451,  1454,  1456,
1058 <    1458,  1460,  1465,  1466,  1473,  1474,  1480,  1484,  1486,  1488,
1059 <    1491,  1493,  1495,  1497,  1499,  1501,  1506,  1511,  1517,  1520,
1060 <    1522,  1524,  1526,  1528,  1530,  1532,  1534,  1536,  1538,  1540,
1061 <    1542,  1544,  1546,  1548,  1550,  1552,  1554,  1556,  1558,  1560,
1062 <    1562,  1564,  1566,  1568,  1570,  1572,  1574,  1576,  1578,  1580,
1063 <    1582,  1584,  1586,  1588,  1590,  1592,  1594,  1596,  1598,  1600,
1064 <    1602,  1604,  1606,  1608,  1610,  1612,  1614,  1616,  1618,  1620,
1065 <    1622,  1624,  1626,  1628,  1630,  1632,  1634,  1636,  1641,  1646,
1066 <    1651,  1656,  1661,  1666,  1671,  1676,  1681,  1686,  1691,  1696,
1067 <    1701,  1706,  1711,  1716,  1721,  1726,  1731,  1736,  1741,  1746,
1068 <    1751,  1756,  1761,  1766,  1771,  1776,  1781,  1786,  1791,  1796,
1069 <    1801,  1806,  1811,  1816,  1821,  1826,  1831,  1836,  1841,  1846,
1070 <    1851,  1856,  1861,  1866,  1871,  1876,  1881,  1886,  1891,  1892,
1071 <    1898,  1902,  1904,  1906,  1908,  1910,  1912,  1914,  1916,  1918,
1072 <    1920,  1922,  1924,  1926,  1928,  1930,  1932,  1934,  1936,  1938,
1073 <    1940,  1942,  1943,  1949,  1953,  1955,  1957,  1959,  1961,  1963,
1074 <    1965,  1967,  1969,  1971,  1973,  1975,  1977,  1979,  1981,  1983,
1123 <    1985,  1987,  1989,  1991,  1993,  1998,  2003,  2008,  2013,  2018,
1124 <    2019,  2026,  2029,  2031,  2033,  2035,  2037,  2039,  2041,  2043,
1125 <    2045,  2050,  2055,  2056,  2062,  2066,  2068,  2070,  2072,  2077,
1126 <    2082,  2083,  2089,  2093,  2095,  2097,  2099,  2105,  2108,  2110,
1127 <    2112,  2114,  2116,  2118,  2120,  2122,  2124,  2126,  2128,  2130,
1128 <    2132,  2134,  2136,  2138,  2140,  2142,  2144,  2146,  2148,  2153,
1129 <    2158,  2163,  2168,  2173,  2178,  2183,  2188,  2193,  2198,  2203,
1130 <    2208,  2213,  2218,  2223,  2228,  2233,  2238,  2244,  2247,  2249,
1131 <    2251,  2253,  2255,  2257,  2259,  2261,  2263,  2265,  2270,  2275,
1132 <    2280,  2285,  2290,  2295
1012 >      39,    41,    43,    45,    47,    49,    52,    55,    56,    58,
1013 >      61,    65,    69,    73,    77,    81,    85,    89,    90,    92,
1014 >      95,    99,   103,   107,   113,   116,   118,   120,   122,   125,
1015 >     130,   135,   141,   144,   146,   148,   150,   152,   154,   156,
1016 >     158,   160,   162,   164,   166,   168,   170,   172,   174,   176,
1017 >     178,   180,   183,   188,   193,   197,   199,   201,   203,   207,
1018 >     209,   211,   213,   218,   223,   228,   233,   238,   243,   248,
1019 >     253,   258,   263,   268,   273,   278,   283,   288,   294,   297,
1020 >     299,   301,   303,   305,   308,   313,   318,   323,   324,   331,
1021 >     334,   336,   338,   340,   343,   348,   353,   359,   362,   364,
1022 >     366,   368,   371,   376,   377,   384,   387,   389,   391,   393,
1023 >     395,   398,   403,   408,   413,   414,   420,   424,   426,   428,
1024 >     430,   432,   434,   436,   438,   440,   441,   448,   451,   453,
1025 >     455,   457,   459,   461,   463,   465,   467,   469,   471,   474,
1026 >     479,   484,   489,   494,   499,   504,   509,   510,   516,   520,
1027 >     522,   524,   526,   528,   530,   532,   534,   536,   538,   540,
1028 >     542,   544,   546,   548,   550,   552,   554,   556,   558,   560,
1029 >     562,   564,   565,   571,   575,   577,   581,   583,   587,   589,
1030 >     593,   595,   597,   599,   601,   603,   605,   607,   609,   611,
1031 >     613,   615,   617,   619,   621,   623,   625,   627,   629,   630,
1032 >     637,   640,   642,   644,   646,   648,   650,   652,   654,   656,
1033 >     658,   660,   662,   664,   666,   668,   670,   672,   674,   677,
1034 >     682,   687,   692,   697,   702,   707,   712,   717,   722,   727,
1035 >     732,   737,   742,   747,   752,   753,   759,   763,   765,   767,
1036 >     769,   770,   777,   778,   784,   788,   790,   792,   794,   796,
1037 >     799,   801,   803,   805,   807,   809,   812,   813,   819,   823,
1038 >     825,   827,   831,   836,   841,   842,   849,   852,   854,   856,
1039 >     858,   860,   862,   864,   866,   868,   870,   873,   878,   883,
1040 >     888,   893,   894,   900,   904,   906,   908,   910,   912,   914,
1041 >     916,   918,   920,   922,   924,   926,   931,   936,   941,   942,
1042 >     949,   952,   954,   956,   958,   960,   963,   968,   973,   978,
1043 >     984,   987,   989,   991,   993,   998,   999,  1006,  1009,  1011,
1044 >    1013,  1015,  1017,  1020,  1025,  1030,  1031,  1037,  1041,  1043,
1045 >    1045,  1047,  1049,  1051,  1053,  1055,  1057,  1059,  1061,  1063,
1046 >    1064,  1071,  1074,  1076,  1078,  1080,  1083,  1088,  1089,  1095,
1047 >    1099,  1101,  1103,  1105,  1107,  1109,  1111,  1113,  1115,  1117,
1048 >    1119,  1121,  1122,  1129,  1132,  1134,  1136,  1138,  1140,  1142,
1049 >    1144,  1146,  1148,  1150,  1152,  1154,  1156,  1158,  1160,  1162,
1050 >    1165,  1170,  1175,  1180,  1185,  1190,  1195,  1200,  1205,  1210,
1051 >    1211,  1217,  1221,  1223,  1225,  1227,  1232,  1237,  1242,  1247,
1052 >    1252,  1253,  1260,  1263,  1265,  1267,  1269,  1271,  1276,  1281,
1053 >    1282,  1289,  1292,  1294,  1296,  1298,  1300,  1305,  1310,  1316,
1054 >    1319,  1321,  1323,  1325,  1330,  1331,  1338,  1341,  1343,  1345,
1055 >    1347,  1349,  1354,  1359,  1365,  1368,  1370,  1372,  1374,  1376,
1056 >    1378,  1380,  1382,  1384,  1386,  1388,  1390,  1392,  1394,  1396,
1057 >    1398,  1400,  1402,  1404,  1406,  1408,  1410,  1412,  1414,  1416,
1058 >    1418,  1420,  1422,  1424,  1426,  1428,  1430,  1432,  1434,  1436,
1059 >    1438,  1440,  1442,  1444,  1446,  1448,  1450,  1452,  1454,  1456,
1060 >    1458,  1460,  1462,  1464,  1466,  1471,  1476,  1481,  1486,  1491,
1061 >    1496,  1501,  1506,  1511,  1516,  1521,  1526,  1531,  1536,  1541,
1062 >    1546,  1551,  1556,  1561,  1566,  1571,  1576,  1581,  1586,  1591,
1063 >    1596,  1601,  1606,  1611,  1616,  1621,  1626,  1631,  1636,  1641,
1064 >    1646,  1651,  1656,  1661,  1666,  1671,  1676,  1681,  1686,  1687,
1065 >    1693,  1697,  1699,  1701,  1703,  1705,  1707,  1709,  1711,  1713,
1066 >    1715,  1717,  1719,  1721,  1723,  1725,  1727,  1729,  1731,  1733,
1067 >    1735,  1737,  1739,  1741,  1742,  1748,  1752,  1754,  1756,  1758,
1068 >    1760,  1762,  1764,  1766,  1768,  1770,  1772,  1774,  1776,  1778,
1069 >    1780,  1782,  1784,  1786,  1788,  1790,  1792,  1794,  1796,  1801,
1070 >    1806,  1811,  1817,  1820,  1822,  1824,  1826,  1828,  1830,  1832,
1071 >    1834,  1836,  1838,  1840,  1842,  1844,  1846,  1848,  1853,  1858,
1072 >    1863,  1868,  1873,  1878,  1883,  1888,  1893,  1898,  1903,  1908,
1073 >    1914,  1917,  1919,  1921,  1923,  1925,  1927,  1929,  1931,  1933,
1074 >    1935,  1937,  1942,  1947,  1952,  1957,  1962,  1967,  1972
1075   };
1076  
1077   /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1078   static const yytype_int16 yyrhs[] =
1079   {
1080 <     268,     0,    -1,    -1,   268,   269,    -1,   297,    -1,   303,
1081 <      -1,   318,    -1,   582,    -1,   355,    -1,   374,    -1,   388,
1082 <      -1,   279,    -1,   603,    -1,   414,    -1,   421,    -1,   431,
1083 <      -1,   440,    -1,   471,    -1,   481,    -1,   487,    -1,   501,
1084 <      -1,   566,    -1,   491,    -1,   274,    -1,     1,   262,    -1,
1085 <       1,   263,    -1,    -1,   271,    -1,   133,   270,    -1,   133,
1086 <     175,   270,    -1,   133,   176,   270,    -1,   133,   177,   270,
1087 <      -1,   133,   178,   270,    -1,   133,   179,   270,    -1,    -1,
1088 <     273,    -1,   133,   272,    -1,   133,    14,   272,    -1,   133,
1089 <      15,   272,    -1,   133,    16,   272,    -1,   121,   264,   275,
1090 <     263,   262,    -1,   275,   276,    -1,   276,    -1,   277,    -1,
1091 <     278,    -1,     1,   262,    -1,   120,   265,   155,   262,    -1,
1092 <     150,   265,   155,   262,    -1,   183,   264,   280,   263,   262,
1093 <      -1,   280,   281,    -1,   281,    -1,   288,    -1,   293,    -1,
1094 <     296,    -1,   290,    -1,   291,    -1,   292,    -1,   295,    -1,
1095 <     287,    -1,   294,    -1,   289,    -1,   286,    -1,   282,    -1,
1096 <       1,   262,    -1,    -1,   170,   283,   265,   284,   262,    -1,
1097 <     284,   266,   285,    -1,   285,    -1,   171,    -1,   172,    -1,
1098 <     169,   265,   155,   262,    -1,   167,   265,   155,   262,    -1,
1099 <     122,   265,   155,   262,    -1,   185,   265,   155,   262,    -1,
1100 <      37,   265,   155,   262,    -1,   125,   265,   155,   262,    -1,
1101 <     124,   265,   155,   262,    -1,   257,   265,   155,   262,    -1,
1102 <     258,   265,   155,   262,    -1,   229,   265,   133,   262,    -1,
1103 <      86,   265,   199,   262,    -1,     5,   264,   298,   263,   262,
1104 <      -1,   298,   299,    -1,   299,    -1,   300,    -1,   302,    -1,
1105 <     301,    -1,     1,   262,    -1,   122,   265,   155,   262,    -1,
1106 <      48,   265,   155,   262,    -1,    37,   265,   155,   262,    -1,
1107 <     104,   264,   304,   263,   262,    -1,   304,   305,    -1,   305,
1108 <      -1,   306,    -1,   307,    -1,   316,    -1,   317,    -1,   308,
1109 <      -1,   310,    -1,   312,    -1,   313,    -1,   315,    -1,   311,
1110 <      -1,   314,    -1,   309,    -1,     1,   262,    -1,   221,   265,
1111 <     155,   262,    -1,   140,   265,   155,   262,    -1,    64,   265,
1112 <     155,   262,    -1,    57,   265,   155,   262,    -1,    62,   265,
1113 <     155,   262,    -1,    63,   265,   155,   262,    -1,    60,   265,
1114 <     155,   262,    -1,    59,   265,   155,   262,    -1,    61,   265,
1115 <     155,   262,    -1,    58,   265,   155,   262,    -1,   105,   265,
1116 <     222,   262,    -1,   105,   265,   224,   262,    -1,   105,   265,
1117 <     228,   262,    -1,   105,   265,   226,   262,    -1,   105,   265,
1118 <     227,   262,    -1,   105,   265,   225,   262,    -1,   105,   265,
1119 <     223,   262,    -1,   255,   265,   199,   262,    -1,    -1,   138,
1120 <     319,   320,   264,   321,   263,   262,    -1,    -1,   324,    -1,
1121 <     321,   322,    -1,   322,    -1,   323,    -1,   325,    -1,   326,
1122 <      -1,   345,    -1,   346,    -1,   330,    -1,   329,    -1,   334,
1123 <      -1,   335,    -1,   337,    -1,   338,    -1,   339,    -1,   340,
1124 <      -1,   341,    -1,   336,    -1,   342,    -1,   343,    -1,   344,
1125 <      -1,   347,    -1,   327,    -1,   328,    -1,   348,    -1,     1,
1126 <     262,    -1,   122,   265,   155,   262,    -1,   155,    -1,   250,
1127 <     265,   155,   262,    -1,   149,   265,   155,   262,    -1,    50,
1128 <     265,   199,   262,    -1,   168,   265,   155,   262,    -1,    26,
1129 <     265,   155,   262,    -1,    -1,   238,   331,   265,   332,   262,
1130 <      -1,   332,   266,   333,    -1,   333,    -1,   206,    -1,   209,
1131 <      -1,   210,    -1,   212,    -1,   213,    -1,   216,    -1,   235,
1132 <      -1,   230,    -1,   232,    -1,   239,    -1,   236,    -1,   215,
1133 <      -1,   231,    -1,   234,    -1,   217,    -1,   242,    -1,   207,
1134 <      -1,   208,    -1,   220,    -1,    74,   265,   199,   262,    -1,
1135 <     163,   265,   199,   262,    -1,   164,   265,   199,   262,    -1,
1136 <      94,   265,   199,   262,    -1,   259,   265,   199,   262,    -1,
1137 <     249,   265,   199,   262,    -1,    67,   265,   199,   262,    -1,
1138 <     127,   265,   199,   262,    -1,    38,   265,   199,   262,    -1,
1139 <     161,   265,   199,   262,    -1,     5,   265,   199,   262,    -1,
1140 <      79,   265,   199,   262,    -1,    81,   265,   199,   262,    -1,
1141 <     231,   265,   199,   262,    -1,    -1,    55,   349,   265,   350,
1142 <     262,    -1,   350,   266,   351,    -1,   351,    -1,    -1,   132,
1143 <     352,   354,    -1,    -1,   353,   354,    -1,    74,    -1,   163,
1144 <      -1,    94,    -1,   249,    -1,   259,    -1,    67,    -1,    38,
1145 <      -1,   161,    -1,     5,    -1,    79,    -1,   127,    -1,   231,
1146 <      -1,   143,    -1,    81,    -1,   164,    -1,    50,    -1,    -1,
1147 <      26,   356,   357,   264,   358,   263,   262,    -1,    -1,   361,
1148 <      -1,   358,   359,    -1,   359,    -1,   360,    -1,   371,    -1,
1149 <     372,    -1,   362,    -1,   363,    -1,   373,    -1,   364,    -1,
1150 <     365,    -1,   366,    -1,   367,    -1,   368,    -1,   369,    -1,
1151 <     370,    -1,     1,   262,    -1,   122,   265,   155,   262,    -1,
1152 <     155,    -1,   152,   265,   271,   262,    -1,   153,   265,   271,
1153 <     262,    -1,   136,   265,   133,   262,    -1,    30,   265,   271,
1154 <     262,    -1,   114,   265,   133,   262,    -1,   109,   265,   133,
1155 <     262,    -1,   111,   265,   133,   262,    -1,   110,   265,   133,
1156 <     262,    -1,   180,   265,   273,   262,    -1,    23,   265,   133,
1157 <     262,    -1,    24,   265,   133,   262,    -1,   135,   265,   133,
1158 <     262,    -1,    -1,   102,   375,   264,   380,   263,   262,    -1,
1159 <      -1,    55,   377,   265,   378,   262,    -1,   378,   266,   379,
1160 <      -1,   379,    -1,   237,    -1,    78,    -1,   233,    -1,   380,
1161 <     381,    -1,   381,    -1,   382,    -1,   376,    -1,   386,    -1,
1162 <     387,    -1,     1,   262,    -1,    -1,   154,   265,   384,   383,
1163 <     262,    -1,   384,   266,   385,    -1,   385,    -1,   133,    -1,
1164 <     133,   204,   133,    -1,    91,   265,   155,   262,    -1,    85,
1165 <     265,   155,   262,    -1,    -1,    75,   389,   264,   390,   263,
1166 <     262,    -1,   390,   391,    -1,   391,    -1,   392,    -1,   393,
1167 <      -1,   395,    -1,   397,    -1,   404,    -1,   405,    -1,   406,
1168 <      -1,   408,    -1,   409,    -1,   410,    -1,   394,    -1,   411,
1169 <      -1,   412,    -1,   407,    -1,   413,    -1,   396,    -1,     1,
1170 <     262,    -1,   250,   265,   155,   262,    -1,   149,   265,   155,
1171 <     262,    -1,   193,   265,   199,   262,    -1,    26,   265,   155,
1172 <     262,    -1,    50,   265,   199,   262,    -1,    -1,    55,   398,
1173 <     265,   399,   262,    -1,   399,   266,   400,    -1,   400,    -1,
1174 <      -1,   132,   401,   403,    -1,    -1,   402,   403,    -1,   193,
1175 <      -1,    51,    -1,    95,    -1,    76,    -1,    20,    -1,    21,
1176 <      -1,   131,    -1,    69,    -1,   174,    -1,   123,    -1,    95,
1177 <     265,   199,   262,    -1,    76,   265,   199,   262,    -1,    51,
1178 <     265,   199,   262,    -1,    20,   265,   199,   262,    -1,   131,
1179 <     265,   199,   262,    -1,    69,   265,   199,   262,    -1,   192,
1180 <     265,   155,   262,    -1,   159,   265,   155,   262,    -1,   158,
1181 <     265,   133,   262,    -1,   123,   265,   199,   262,    -1,    -1,
1182 <     173,   415,   264,   416,   263,   262,    -1,   416,   417,    -1,
1183 <     417,    -1,   418,    -1,   419,    -1,   420,    -1,     1,   262,
1184 <      -1,   157,   265,   155,   262,    -1,    22,   265,   155,   262,
1185 <      -1,   126,   265,   155,   262,    -1,    -1,   187,   422,   264,
1186 <     423,   263,   262,    -1,   423,   424,    -1,   424,    -1,   425,
1187 <      -1,   426,    -1,   427,    -1,     1,   262,    -1,   122,   265,
1188 <     155,   262,    -1,   250,   265,   155,   262,    -1,    -1,   189,
1189 <     428,   265,   429,   262,    -1,   429,   266,   430,    -1,   430,
1190 <      -1,    94,    -1,   246,    -1,   249,    -1,   259,    -1,   247,
1191 <      -1,   241,    -1,   173,    -1,   248,    -1,   240,    -1,   220,
1192 <      -1,   205,    -1,    -1,   188,   432,   264,   433,   263,   262,
1193 <      -1,   433,   434,    -1,   434,    -1,   435,    -1,   436,    -1,
1194 <       1,   262,    -1,   122,   265,   155,   262,    -1,    -1,   189,
1195 <     437,   265,   438,   262,    -1,   438,   266,   439,    -1,   439,
1196 <      -1,    94,    -1,   246,    -1,   249,    -1,   259,    -1,   247,
1197 <      -1,   241,    -1,   173,    -1,   248,    -1,   240,    -1,   220,
1198 <      -1,   205,    -1,    -1,    29,   441,   442,   264,   443,   263,
1199 <     262,    -1,    -1,   446,    -1,   443,   444,    -1,   444,    -1,
1200 <     445,    -1,   447,    -1,   448,    -1,   449,    -1,   450,    -1,
1201 <     452,    -1,   451,    -1,   453,    -1,   454,    -1,   467,    -1,
1202 <     468,    -1,   469,    -1,   465,    -1,   462,    -1,   464,    -1,
1203 <     463,    -1,   461,    -1,   470,    -1,   466,    -1,     1,   262,
1204 <      -1,   122,   265,   155,   262,    -1,   155,    -1,    85,   265,
1205 <     155,   262,    -1,   257,   265,   155,   262,    -1,   181,   265,
1206 <     155,   262,    -1,     3,   265,   155,   262,    -1,   154,   265,
1207 <     133,   262,    -1,     6,   265,   218,   262,    -1,     6,   265,
1208 <     219,   262,    -1,    54,   265,   155,   262,    -1,    -1,    55,
1209 <     455,   265,   456,   262,    -1,   456,   266,   457,    -1,   457,
1210 <      -1,    -1,   132,   458,   460,    -1,    -1,   459,   460,    -1,
1211 <      27,    -1,    31,    -1,    10,    -1,    12,    -1,   244,    -1,
1212 <     168,   265,   155,   262,    -1,    50,   265,   199,   262,    -1,
1213 <      31,   265,   199,   262,    -1,    27,   265,   199,   262,    -1,
1214 <      10,   265,   199,   262,    -1,   244,   265,   199,   262,    -1,
1215 <      87,   265,   155,   262,    -1,   100,   265,   155,   262,    -1,
1216 <      26,   265,   155,   262,    -1,    25,   265,   155,   262,    -1,
1217 <      -1,    92,   472,   264,   477,   263,   262,    -1,    -1,   189,
1218 <     474,   265,   475,   262,    -1,   475,   266,   476,    -1,   476,
1219 <      -1,   160,    -1,   477,   478,    -1,   478,    -1,   479,    -1,
1220 <     480,    -1,   473,    -1,     1,    -1,   250,   265,   155,   262,
1221 <      -1,   157,   265,   155,   262,    -1,    -1,    36,   482,   264,
1222 <     483,   263,   262,    -1,   483,   484,    -1,   484,    -1,   485,
1223 <      -1,   486,    -1,     1,    -1,    91,   265,   155,   262,    -1,
1224 <     157,   265,   155,   262,    -1,    52,   264,   488,   263,   262,
1225 <      -1,   488,   489,    -1,   489,    -1,   490,    -1,     1,    -1,
1226 <      91,   265,   155,   262,    -1,    -1,    65,   492,   264,   497,
1227 <     263,   262,    -1,    -1,   189,   494,   265,   495,   262,    -1,
1228 <     495,   266,   496,    -1,   496,    -1,   160,    -1,   497,   498,
1229 <      -1,   498,    -1,   499,    -1,   500,    -1,   493,    -1,     1,
1230 <      -1,   122,   265,   155,   262,    -1,   157,   265,   155,   262,
1231 <      -1,    66,   264,   502,   263,   262,    -1,   502,   503,    -1,
1232 <     503,    -1,   512,    -1,   513,    -1,   515,    -1,   516,    -1,
1233 <     517,    -1,   518,    -1,   519,    -1,   520,    -1,   521,    -1,
1234 <     522,    -1,   511,    -1,   524,    -1,   525,    -1,   526,    -1,
1235 <     527,    -1,   543,    -1,   529,    -1,   531,    -1,   533,    -1,
1236 <     532,    -1,   536,    -1,   530,    -1,   537,    -1,   538,    -1,
1237 <     539,    -1,   540,    -1,   542,    -1,   541,    -1,   557,    -1,
1238 <     544,    -1,   548,    -1,   549,    -1,   553,    -1,   534,    -1,
1239 <     535,    -1,   563,    -1,   561,    -1,   562,    -1,   545,    -1,
1240 <     514,    -1,   546,    -1,   547,    -1,   564,    -1,   552,    -1,
1241 <     523,    -1,   565,    -1,   550,    -1,   551,    -1,   507,    -1,
1242 <     510,    -1,   505,    -1,   506,    -1,   508,    -1,   509,    -1,
1243 <     528,    -1,   504,    -1,     1,    -1,   116,   265,   133,   262,
1244 <      -1,    72,   265,   133,   262,    -1,    73,   265,   133,   262,
1245 <      -1,    12,   265,   199,   262,    -1,   256,   265,   199,   262,
1246 <      -1,   162,   265,   271,   262,    -1,   186,   265,   199,   262,
1247 <      -1,    93,   265,   133,   262,    -1,    84,   265,   199,   262,
1248 <      -1,    89,   265,   199,   262,    -1,    43,   265,   199,   262,
1249 <      -1,    53,   265,   199,   262,    -1,     8,   265,   199,   262,
1250 <      -1,   113,   265,   271,   262,    -1,   112,   265,   133,   262,
1251 <      -1,   106,   265,   133,   262,    -1,     9,   265,   271,   262,
1252 <      -1,   203,   265,   271,   262,    -1,   202,   265,   271,   262,
1253 <      -1,    77,   265,   133,   262,    -1,    97,   265,   199,   262,
1254 <      -1,    96,   265,   155,   262,    -1,    90,   265,   199,   262,
1255 <      -1,   261,   265,   199,   262,    -1,   194,   265,   199,   262,
1256 <      -1,   197,   265,   199,   262,    -1,   198,   265,   199,   262,
1257 <      -1,   196,   265,   199,   262,    -1,   196,   265,   200,   262,
1258 <      -1,   195,   265,   199,   262,    -1,   195,   265,   200,   262,
1259 <      -1,   147,   265,   271,   262,    -1,    19,   265,   271,   262,
1260 <      -1,   139,   265,   199,   262,    -1,   148,   265,   271,   262,
1261 <      -1,   190,   265,   199,   262,    -1,   130,   265,   199,   262,
1262 <      -1,   245,   265,   199,   262,    -1,   142,   265,   199,   262,
1263 <      -1,   117,   265,   155,   262,    -1,    88,   265,   271,   262,
1264 <      -1,    45,   265,   133,   262,    -1,   115,   265,   133,   262,
1265 <      -1,   184,   265,   155,   262,    -1,    32,   265,   155,   262,
1266 <      -1,    28,   265,   133,   262,    -1,   251,   265,   199,   262,
1267 <      -1,    47,   265,   155,   262,    -1,   151,   265,   199,   262,
1268 <      -1,    39,   265,   199,   262,    -1,   243,   265,   271,   262,
1269 <      -1,    -1,   144,   554,   265,   555,   262,    -1,   555,   266,
1270 <     556,    -1,   556,    -1,   206,    -1,   209,    -1,   210,    -1,
1271 <     212,    -1,   213,    -1,   216,    -1,   235,    -1,   230,    -1,
1272 <     232,    -1,   239,    -1,   236,    -1,   215,    -1,   231,    -1,
1273 <     234,    -1,   217,    -1,   242,    -1,   207,    -1,   208,    -1,
1274 <     220,    -1,    -1,   141,   558,   265,   559,   262,    -1,   559,
1275 <     266,   560,    -1,   560,    -1,   206,    -1,   209,    -1,   210,
1276 <      -1,   212,    -1,   213,    -1,   216,    -1,   235,    -1,   230,
1277 <      -1,   232,    -1,   239,    -1,   236,    -1,   215,    -1,   231,
1336 <      -1,   234,    -1,   217,    -1,   242,    -1,   207,    -1,   208,
1337 <      -1,   220,    -1,   118,   265,   133,   262,    -1,   119,   265,
1338 <     133,   262,    -1,    33,   265,   133,   262,    -1,   211,   265,
1339 <     273,   262,    -1,    44,   265,   199,   262,    -1,    -1,    68,
1340 <     567,   264,   568,   263,   262,    -1,   568,   569,    -1,   569,
1341 <      -1,   570,    -1,   571,    -1,   572,    -1,   576,    -1,   577,
1342 <      -1,   578,    -1,     1,    -1,    49,   265,   199,   262,    -1,
1343 <      46,   265,   271,   262,    -1,    -1,   104,   573,   265,   574,
1344 <     262,    -1,   574,   266,   575,    -1,   575,    -1,   201,    -1,
1345 <      11,    -1,   250,   265,   155,   262,    -1,   122,   265,   155,
1346 <     262,    -1,    -1,     4,   579,   265,   580,   262,    -1,   580,
1347 <     266,   581,    -1,   581,    -1,   201,    -1,    11,    -1,    22,
1348 <     264,   583,   263,   262,    -1,   583,   584,    -1,   584,    -1,
1349 <     587,    -1,   588,    -1,   589,    -1,   590,    -1,   595,    -1,
1350 <     591,    -1,   592,    -1,   593,    -1,   594,    -1,   596,    -1,
1351 <     597,    -1,   598,    -1,   586,    -1,   599,    -1,   600,    -1,
1352 <     601,    -1,   602,    -1,   585,    -1,     1,    -1,    40,   265,
1353 <     199,   262,    -1,   165,   265,   199,   262,    -1,    42,   265,
1354 <     199,   262,    -1,   252,   265,   199,   262,    -1,   253,   265,
1355 <     199,   262,    -1,   254,   265,   199,   262,    -1,    98,   265,
1356 <     271,   262,    -1,    99,   265,   271,   262,    -1,   108,   265,
1357 <     133,   262,    -1,   156,   265,   199,   262,    -1,   107,   265,
1358 <     133,   262,    -1,    35,   265,   133,   262,    -1,    34,   265,
1359 <     133,   262,    -1,   128,   265,   199,   262,    -1,   129,   265,
1360 <     199,   262,    -1,    13,   265,   199,   262,    -1,   145,   265,
1361 <     133,   262,    -1,   146,   265,   271,   262,    -1,   182,   264,
1362 <     604,   263,   262,    -1,   604,   605,    -1,   605,    -1,   606,
1363 <      -1,   607,    -1,   609,    -1,   611,    -1,   610,    -1,   608,
1364 <      -1,   612,    -1,     1,    -1,    56,   265,   199,   262,    -1,
1365 <      83,   265,   199,   262,    -1,    80,   265,   155,   262,    -1,
1366 <     101,   265,   271,   262,    -1,    78,   265,   199,   262,    -1,
1367 <      41,   265,   199,   262,    -1,    82,   265,   199,   262,    -1
1080 >     231,     0,    -1,    -1,   231,   232,    -1,   266,    -1,   278,
1081 >      -1,   292,    -1,   492,    -1,   311,    -1,   334,    -1,   348,
1082 >      -1,   242,    -1,   507,    -1,   363,    -1,   370,    -1,   374,
1083 >      -1,   384,    -1,   393,    -1,   414,    -1,   420,    -1,   426,
1084 >      -1,   436,    -1,   430,    -1,   237,    -1,   272,    -1,     1,
1085 >     224,    -1,     1,   225,    -1,    -1,   234,    -1,   107,   233,
1086 >      -1,   107,   134,   233,    -1,   107,   135,   233,    -1,   107,
1087 >     136,   233,    -1,   107,   137,   233,    -1,   107,   138,   233,
1088 >      -1,   107,   139,   233,    -1,   107,   140,   233,    -1,    -1,
1089 >     236,    -1,   107,   235,    -1,   107,     9,   235,    -1,   107,
1090 >      10,   235,    -1,   107,    11,   235,    -1,    95,   226,   238,
1091 >     225,   224,    -1,   238,   239,    -1,   239,    -1,   240,    -1,
1092 >     241,    -1,     1,   224,    -1,    94,   227,   122,   224,    -1,
1093 >     118,   227,   122,   224,    -1,   144,   226,   243,   225,   224,
1094 >      -1,   243,   244,    -1,   244,    -1,   255,    -1,   260,    -1,
1095 >     265,    -1,   257,    -1,   258,    -1,   259,    -1,   262,    -1,
1096 >     263,    -1,   264,    -1,   253,    -1,   252,    -1,   261,    -1,
1097 >     256,    -1,   251,    -1,   245,    -1,   246,    -1,   254,    -1,
1098 >       1,   224,    -1,   194,   227,   247,   224,    -1,   195,   227,
1099 >     249,   224,    -1,   247,   228,   248,    -1,   248,    -1,   196,
1100 >      -1,   197,    -1,   249,   228,   250,    -1,   250,    -1,   196,
1101 >      -1,   197,    -1,   149,   227,   122,   224,    -1,   132,   227,
1102 >     122,   224,    -1,   150,   227,   122,   224,    -1,   193,   227,
1103 >     122,   224,    -1,    97,   227,   122,   224,    -1,    63,   227,
1104 >     122,   224,    -1,    24,   227,   122,   224,    -1,   101,   227,
1105 >     122,   224,    -1,   100,   227,   122,   224,    -1,   220,   227,
1106 >     122,   224,    -1,   221,   227,   122,   224,    -1,   175,   227,
1107 >     107,   224,    -1,    85,   227,   107,   224,    -1,    89,   227,
1108 >     107,   224,    -1,    56,   227,   207,   224,    -1,     4,   226,
1109 >     267,   225,   224,    -1,   267,   268,    -1,   268,    -1,   269,
1110 >      -1,   271,    -1,   270,    -1,     1,   224,    -1,    97,   227,
1111 >     122,   224,    -1,    31,   227,   122,   224,    -1,    24,   227,
1112 >     122,   224,    -1,    -1,    96,   273,   226,   274,   225,   224,
1113 >      -1,   274,   275,    -1,   275,    -1,   276,    -1,   277,    -1,
1114 >       1,   224,    -1,    75,   227,   122,   224,    -1,   166,   227,
1115 >     122,   224,    -1,   174,   226,   279,   225,   224,    -1,   279,
1116 >     280,    -1,   280,    -1,   281,    -1,   282,    -1,     1,   224,
1117 >      -1,   218,   227,   207,   224,    -1,    -1,   283,   166,   226,
1118 >     284,   225,   224,    -1,   284,   285,    -1,   285,    -1,   286,
1119 >      -1,   288,    -1,   287,    -1,     1,   224,    -1,    97,   227,
1120 >     122,   224,    -1,   188,   227,   236,   224,    -1,   188,   227,
1121 >     201,   224,    -1,    -1,   215,   289,   227,   290,   224,    -1,
1122 >     290,   228,   291,    -1,   291,    -1,   219,    -1,   113,    -1,
1123 >      39,    -1,   163,    -1,    68,    -1,    66,    -1,   162,    -1,
1124 >      -1,   113,   293,   226,   294,   225,   224,    -1,   294,   295,
1125 >      -1,   295,    -1,   296,    -1,   297,    -1,   298,    -1,   303,
1126 >      -1,   302,    -1,   299,    -1,   300,    -1,   301,    -1,   307,
1127 >      -1,     1,   224,    -1,    97,   227,   122,   224,    -1,   219,
1128 >     227,   122,   224,    -1,   117,   227,   122,   224,    -1,    32,
1129 >     227,   207,   224,    -1,   133,   227,   122,   224,    -1,   167,
1130 >     227,   122,   224,    -1,    17,   227,   122,   224,    -1,    -1,
1131 >     198,   304,   227,   305,   224,    -1,   305,   228,   306,    -1,
1132 >     306,    -1,   157,    -1,   159,    -1,   161,    -1,   162,    -1,
1133 >     168,    -1,    48,    -1,   189,    -1,   176,    -1,   180,    -1,
1134 >     199,    -1,   191,    -1,   164,    -1,   178,    -1,   185,    -1,
1135 >     170,    -1,   204,    -1,   190,    -1,   158,    -1,   173,    -1,
1136 >     177,    -1,   165,    -1,    -1,    62,   308,   227,   309,   224,
1137 >      -1,   309,   228,   310,    -1,   310,    -1,    66,   229,   128,
1138 >      -1,    66,    -1,    18,   229,   128,    -1,    18,    -1,   148,
1139 >     229,   128,    -1,   148,    -1,    68,    -1,   216,    -1,   163,
1140 >      -1,   200,    -1,   223,    -1,    39,    -1,    25,    -1,   181,
1141 >      -1,   127,    -1,     4,    -1,   178,    -1,   169,    -1,   205,
1142 >      -1,   173,    -1,   129,    -1,   186,    -1,    94,    -1,    -1,
1143 >      17,   312,   226,   313,   225,   224,    -1,   313,   314,    -1,
1144 >     314,    -1,   315,    -1,   325,    -1,   326,    -1,   316,    -1,
1145 >     327,    -1,   317,    -1,   318,    -1,   319,    -1,   320,    -1,
1146 >     321,    -1,   322,    -1,   323,    -1,   324,    -1,   328,    -1,
1147 >     329,    -1,   330,    -1,     1,   224,    -1,    97,   227,   122,
1148 >     224,    -1,   120,   227,   234,   224,    -1,   109,   227,   107,
1149 >     224,    -1,    19,   227,   234,   224,    -1,    87,   227,   107,
1150 >     224,    -1,    80,   227,   107,   224,    -1,    83,   227,   107,
1151 >     224,    -1,    81,   227,   107,   224,    -1,   142,   227,   236,
1152 >     224,    -1,   179,   227,   236,   224,    -1,    15,   227,   107,
1153 >     224,    -1,    16,   227,   107,   224,    -1,   108,   227,   107,
1154 >     224,    -1,    91,   227,   234,   224,    -1,    82,   227,   234,
1155 >     224,    -1,    -1,    62,   331,   227,   332,   224,    -1,   332,
1156 >     228,   333,    -1,   333,    -1,   123,    -1,    50,    -1,    -1,
1157 >      74,   335,   226,   340,   225,   224,    -1,    -1,    62,   337,
1158 >     227,   338,   224,    -1,   338,   228,   339,    -1,   339,    -1,
1159 >     192,    -1,    48,    -1,   182,    -1,   340,   341,    -1,   341,
1160 >      -1,   342,    -1,   336,    -1,   346,    -1,   347,    -1,     1,
1161 >     224,    -1,    -1,   121,   227,   344,   343,   224,    -1,   344,
1162 >     228,   345,    -1,   345,    -1,   107,    -1,   107,   214,   107,
1163 >      -1,    60,   227,   122,   224,    -1,    55,   227,   122,   224,
1164 >      -1,    -1,    61,   349,   226,   350,   225,   224,    -1,   350,
1165 >     351,    -1,   351,    -1,   352,    -1,   353,    -1,   354,    -1,
1166 >     356,    -1,   360,    -1,   361,    -1,   362,    -1,   355,    -1,
1167 >       1,   224,    -1,   219,   227,   122,   224,    -1,   117,   227,
1168 >     122,   224,    -1,    17,   227,   122,   224,    -1,    32,   227,
1169 >     207,   224,    -1,    -1,    62,   357,   227,   358,   224,    -1,
1170 >     358,   228,   359,    -1,   359,    -1,   147,    -1,    33,    -1,
1171 >      69,    -1,    98,    -1,    13,    -1,   106,    -1,    42,    -1,
1172 >     131,    -1,   206,    -1,    99,    -1,   146,   227,   122,   224,
1173 >      -1,   126,   227,   122,   224,    -1,   125,   227,   107,   224,
1174 >      -1,    -1,   130,   364,   226,   365,   225,   224,    -1,   365,
1175 >     366,    -1,   366,    -1,   367,    -1,   368,    -1,   369,    -1,
1176 >       1,   224,    -1,    75,   227,   122,   224,    -1,   124,   227,
1177 >     122,   224,    -1,    34,   227,   122,   224,    -1,   183,   226,
1178 >     371,   225,   224,    -1,   371,   372,    -1,   372,    -1,   373,
1179 >      -1,     1,    -1,    97,   227,   122,   224,    -1,    -1,   187,
1180 >     375,   226,   376,   225,   224,    -1,   376,   377,    -1,   377,
1181 >      -1,   378,    -1,   379,    -1,   380,    -1,     1,   224,    -1,
1182 >      97,   227,   122,   224,    -1,   219,   227,   122,   224,    -1,
1183 >      -1,   215,   381,   227,   382,   224,    -1,   382,   228,   383,
1184 >      -1,   383,    -1,    68,    -1,   216,    -1,   163,    -1,   200,
1185 >      -1,   223,    -1,   203,    -1,   130,    -1,   202,    -1,   173,
1186 >      -1,   156,    -1,    -1,   160,   385,   226,   386,   225,   224,
1187 >      -1,   386,   387,    -1,   387,    -1,   388,    -1,   389,    -1,
1188 >       1,   224,    -1,    97,   227,   122,   224,    -1,    -1,   215,
1189 >     390,   227,   391,   224,    -1,   391,   228,   392,    -1,   392,
1190 >      -1,    68,    -1,   216,    -1,   163,    -1,   200,    -1,   223,
1191 >      -1,   203,    -1,   130,    -1,   202,    -1,   173,    -1,   156,
1192 >      -1,    -1,    18,   394,   226,   395,   225,   224,    -1,   395,
1193 >     396,    -1,   396,    -1,   397,    -1,   398,    -1,   399,    -1,
1194 >     400,    -1,   401,    -1,   402,    -1,   404,    -1,   403,    -1,
1195 >     413,    -1,   405,    -1,   410,    -1,   411,    -1,   412,    -1,
1196 >     409,    -1,     1,   224,    -1,    97,   227,   122,   224,    -1,
1197 >      55,   227,   122,   224,    -1,   220,   227,   122,   224,    -1,
1198 >     141,   227,   122,   224,    -1,     3,   227,   122,   224,    -1,
1199 >     167,   227,   122,   224,    -1,   121,   227,   107,   224,    -1,
1200 >       5,   227,   171,   224,    -1,     5,   227,   172,   224,    -1,
1201 >      -1,    62,   406,   227,   407,   224,    -1,   407,   228,   408,
1202 >      -1,   408,    -1,     8,    -1,   192,    -1,    32,   227,   207,
1203 >     224,    -1,    57,   227,   122,   224,    -1,    72,   227,   122,
1204 >     224,    -1,    17,   227,   122,   224,    -1,   193,   227,   122,
1205 >     224,    -1,    -1,    66,   415,   226,   416,   225,   224,    -1,
1206 >     416,   417,    -1,   417,    -1,   418,    -1,   419,    -1,     1,
1207 >      -1,   219,   227,   122,   224,    -1,   124,   227,   122,   224,
1208 >      -1,    -1,    23,   421,   226,   422,   225,   224,    -1,   422,
1209 >     423,    -1,   423,    -1,   424,    -1,   425,    -1,     1,    -1,
1210 >      60,   227,   122,   224,    -1,   124,   227,   122,   224,    -1,
1211 >      34,   226,   427,   225,   224,    -1,   427,   428,    -1,   428,
1212 >      -1,   429,    -1,     1,    -1,    60,   227,   122,   224,    -1,
1213 >      -1,    37,   431,   226,   432,   225,   224,    -1,   432,   433,
1214 >      -1,   433,    -1,   434,    -1,   435,    -1,     1,    -1,    97,
1215 >     227,   122,   224,    -1,   124,   227,   122,   224,    -1,    38,
1216 >     226,   437,   225,   224,    -1,   437,   438,    -1,   438,    -1,
1217 >     447,    -1,   448,    -1,   449,    -1,   450,    -1,   451,    -1,
1218 >     452,    -1,   453,    -1,   454,    -1,   455,    -1,   456,    -1,
1219 >     446,    -1,   458,    -1,   459,    -1,   473,    -1,   461,    -1,
1220 >     463,    -1,   465,    -1,   464,    -1,   468,    -1,   462,    -1,
1221 >     469,    -1,   470,    -1,   471,    -1,   472,    -1,   485,    -1,
1222 >     474,    -1,   475,    -1,   476,    -1,   481,    -1,   466,    -1,
1223 >     467,    -1,   491,    -1,   489,    -1,   490,    -1,   480,    -1,
1224 >     457,    -1,   478,    -1,   479,    -1,   445,    -1,   440,    -1,
1225 >     441,    -1,   442,    -1,   443,    -1,   444,    -1,   460,    -1,
1226 >     439,    -1,   477,    -1,     1,    -1,    90,   227,   107,   224,
1227 >      -1,    41,   227,   207,   224,    -1,    40,   227,   234,   224,
1228 >      -1,    45,   227,   234,   224,    -1,    43,   227,   107,   224,
1229 >      -1,    44,   227,   107,   224,    -1,   209,   227,   207,   224,
1230 >      -1,    67,   227,   234,   224,    -1,    54,   227,   207,   224,
1231 >      -1,    58,   227,   207,   224,    -1,    35,   227,   207,   224,
1232 >      -1,     6,   227,   207,   224,    -1,    86,   227,   234,   224,
1233 >      -1,    84,   227,   107,   224,    -1,    76,   227,   107,   224,
1234 >      -1,     7,   227,   234,   224,    -1,   213,   227,   234,   224,
1235 >      -1,   212,   227,   234,   224,    -1,    47,   227,   107,   224,
1236 >      -1,    59,   227,   207,   224,    -1,   222,   227,   207,   224,
1237 >      -1,   151,   227,   207,   224,    -1,   154,   227,   207,   224,
1238 >      -1,   155,   227,   207,   224,    -1,   153,   227,   207,   224,
1239 >      -1,   153,   227,   210,   224,    -1,   152,   227,   207,   224,
1240 >      -1,   152,   227,   210,   224,    -1,   115,   227,   234,   224,
1241 >      -1,    12,   227,   234,   224,    -1,   114,   227,   207,   224,
1242 >      -1,   116,   227,   234,   224,    -1,   145,   227,   207,   224,
1243 >      -1,   105,   227,   207,   224,    -1,   211,   227,   207,   224,
1244 >      -1,   111,   227,   207,   224,    -1,    29,   227,   107,   224,
1245 >      -1,    88,   227,   107,   224,    -1,   217,   227,   207,   224,
1246 >      -1,    30,   227,   122,   224,    -1,   184,   227,   122,   224,
1247 >      -1,   119,   227,   207,   224,    -1,    26,   227,   207,   224,
1248 >      -1,   208,   227,   234,   224,    -1,    -1,   112,   482,   227,
1249 >     483,   224,    -1,   483,   228,   484,    -1,   484,    -1,   157,
1250 >      -1,   159,    -1,   161,    -1,   162,    -1,   168,    -1,    48,
1251 >      -1,   189,    -1,   176,    -1,   180,    -1,   199,    -1,   191,
1252 >      -1,   164,    -1,   178,    -1,   185,    -1,   170,    -1,   204,
1253 >      -1,   190,    -1,   158,    -1,   173,    -1,   177,    -1,   165,
1254 >      -1,    -1,   110,   486,   227,   487,   224,    -1,   487,   228,
1255 >     488,    -1,   488,    -1,   157,    -1,   159,    -1,   161,    -1,
1256 >     162,    -1,   168,    -1,   189,    -1,    48,    -1,   176,    -1,
1257 >     180,    -1,   199,    -1,   191,    -1,   164,    -1,   178,    -1,
1258 >     185,    -1,   170,    -1,   204,    -1,   190,    -1,   158,    -1,
1259 >     173,    -1,   177,    -1,   165,    -1,    92,   227,   107,   224,
1260 >      -1,    93,   227,   107,   224,    -1,    20,   227,   107,   224,
1261 >      -1,    14,   226,   493,   225,   224,    -1,   493,   494,    -1,
1262 >     494,    -1,   500,    -1,   496,    -1,   497,    -1,   498,    -1,
1263 >     499,    -1,   501,    -1,   502,    -1,   503,    -1,   504,    -1,
1264 >     505,    -1,   506,    -1,   495,    -1,     1,    -1,    27,   227,
1265 >     207,   224,    -1,    70,   227,   234,   224,    -1,    71,   227,
1266 >     234,   224,    -1,    79,   227,   107,   224,    -1,    78,   227,
1267 >     107,   224,    -1,    77,   227,   107,   224,    -1,    22,   227,
1268 >     107,   224,    -1,    21,   227,   107,   224,    -1,   103,   227,
1269 >     207,   224,    -1,   104,   227,   207,   224,    -1,    64,   227,
1270 >     107,   224,    -1,    65,   227,   234,   224,    -1,   143,   226,
1271 >     508,   225,   224,    -1,   508,   509,    -1,   509,    -1,   510,
1272 >      -1,   511,    -1,   512,    -1,   513,    -1,   515,    -1,   516,
1273 >      -1,   514,    -1,   517,    -1,     1,    -1,    36,   227,   207,
1274 >     224,    -1,    28,   227,   207,   224,    -1,    52,   227,   207,
1275 >     224,    -1,    53,   227,   207,   224,    -1,    49,   227,   122,
1276 >     224,    -1,    73,   227,   234,   224,    -1,    48,   227,   207,
1277 >     224,    -1,    51,   227,   207,   224,    -1
1278   };
1279  
1280   /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1281   static const yytype_uint16 yyrline[] =
1282   {
1283 <       0,   403,   403,   404,   407,   408,   409,   410,   411,   412,
1284 <     413,   414,   415,   416,   417,   418,   419,   420,   421,   422,
1285 <     423,   424,   425,   426,   427,   428,   432,   432,   433,   437,
1286 <     441,   445,   449,   453,   459,   459,   460,   461,   462,   463,
1287 <     470,   473,   473,   474,   474,   474,   476,   484,   493,   495,
1288 <     495,   496,   496,   497,   497,   498,   498,   499,   500,   500,
1289 <     501,   501,   502,   503,   507,   506,   521,   521,   522,   526,
1290 <     532,   566,   626,   640,   655,   664,   678,   687,   715,   745,
1291 <     768,   790,   792,   792,   793,   793,   794,   794,   796,   805,
1292 <     814,   827,   829,   830,   832,   832,   833,   834,   834,   835,
1293 <     835,   836,   836,   837,   837,   838,   839,   841,   845,   849,
1294 <     856,   863,   870,   877,   884,   891,   898,   905,   909,   913,
1295 <     917,   921,   925,   929,   935,   945,   944,  1038,  1038,  1039,
1296 <    1039,  1040,  1040,  1040,  1040,  1041,  1041,  1042,  1042,  1042,
1297 <    1043,  1043,  1043,  1044,  1044,  1044,  1045,  1045,  1045,  1045,
1298 <    1046,  1046,  1047,  1047,  1049,  1061,  1073,  1107,  1119,  1130,
1299 <    1172,  1182,  1181,  1187,  1187,  1188,  1192,  1196,  1200,  1204,
1300 <    1208,  1212,  1216,  1220,  1224,  1228,  1232,  1236,  1240,  1244,
1301 <    1248,  1252,  1256,  1260,  1266,  1277,  1288,  1299,  1310,  1321,
1302 <    1332,  1343,  1354,  1365,  1376,  1387,  1398,  1409,  1421,  1420,
1303 <    1424,  1424,  1425,  1425,  1426,  1426,  1428,  1435,  1442,  1449,
1304 <    1456,  1463,  1470,  1477,  1484,  1491,  1498,  1505,  1512,  1519,
1305 <    1526,  1533,  1547,  1546,  1596,  1596,  1598,  1598,  1599,  1600,
1306 <    1600,  1601,  1602,  1603,  1604,  1605,  1606,  1607,  1608,  1609,
1307 <    1610,  1611,  1613,  1622,  1631,  1637,  1643,  1649,  1655,  1661,
1308 <    1667,  1673,  1679,  1685,  1691,  1697,  1707,  1706,  1723,  1722,
1309 <    1727,  1727,  1728,  1732,  1736,  1744,  1744,  1745,  1745,  1745,
1310 <    1745,  1745,  1747,  1747,  1749,  1749,  1751,  1765,  1785,  1794,
1311 <    1807,  1806,  1875,  1875,  1876,  1876,  1876,  1876,  1877,  1877,
1312 <    1878,  1878,  1878,  1879,  1879,  1880,  1880,  1880,  1881,  1881,
1313 <    1881,  1883,  1920,  1933,  1944,  1953,  1965,  1964,  1968,  1968,
1314 <    1969,  1969,  1970,  1970,  1972,  1980,  1987,  1994,  2001,  2008,
1315 <    2015,  2022,  2029,  2036,  2045,  2056,  2067,  2078,  2089,  2100,
1316 <    2112,  2131,  2141,  2150,  2166,  2165,  2181,  2181,  2182,  2182,
1317 <    2182,  2182,  2184,  2193,  2208,  2222,  2221,  2237,  2237,  2238,
1318 <    2238,  2238,  2238,  2240,  2249,  2272,  2271,  2277,  2277,  2278,
1319 <    2282,  2286,  2290,  2294,  2298,  2302,  2306,  2310,  2314,  2318,
1320 <    2328,  2327,  2344,  2344,  2345,  2345,  2345,  2347,  2354,  2353,
1321 <    2359,  2359,  2360,  2364,  2368,  2372,  2376,  2380,  2384,  2388,
1322 <    2392,  2396,  2400,  2410,  2409,  2555,  2555,  2556,  2556,  2557,
1323 <    2557,  2557,  2558,  2558,  2559,  2559,  2560,  2560,  2560,  2561,
1324 <    2561,  2561,  2562,  2562,  2562,  2563,  2563,  2564,  2564,  2566,
1325 <    2578,  2590,  2599,  2625,  2643,  2661,  2667,  2671,  2679,  2689,
1326 <    2688,  2692,  2692,  2693,  2693,  2694,  2694,  2696,  2707,  2714,
1327 <    2721,  2728,  2738,  2779,  2790,  2801,  2816,  2827,  2838,  2851,
1328 <    2864,  2873,  2909,  2908,  2972,  2971,  2975,  2975,  2976,  2982,
1329 <    2982,  2983,  2983,  2983,  2983,  2985,  3004,  3014,  3013,  3036,
1330 <    3036,  3037,  3037,  3037,  3039,  3045,  3054,  3056,  3056,  3057,
1331 <    3057,  3059,  3078,  3077,  3125,  3124,  3128,  3128,  3129,  3135,
1332 <    3135,  3136,  3136,  3136,  3136,  3138,  3144,  3153,  3156,  3156,
1333 <    3157,  3157,  3158,  3158,  3159,  3159,  3160,  3160,  3161,  3161,
1334 <    3162,  3162,  3163,  3163,  3164,  3164,  3165,  3165,  3166,  3166,
1335 <    3167,  3167,  3168,  3168,  3169,  3169,  3170,  3170,  3171,  3171,
1336 <    3172,  3172,  3173,  3173,  3174,  3174,  3175,  3175,  3176,  3176,
1337 <    3177,  3178,  3178,  3179,  3179,  3180,  3180,  3181,  3181,  3182,
1338 <    3182,  3183,  3183,  3184,  3184,  3185,  3186,  3189,  3194,  3199,
1339 <    3204,  3209,  3214,  3219,  3224,  3229,  3234,  3239,  3244,  3249,
1340 <    3254,  3259,  3264,  3269,  3274,  3279,  3285,  3296,  3301,  3310,
1341 <    3315,  3320,  3325,  3330,  3335,  3338,  3343,  3346,  3351,  3356,
1342 <    3361,  3366,  3371,  3376,  3381,  3386,  3391,  3402,  3407,  3412,
1343 <    3417,  3426,  3458,  3476,  3481,  3490,  3495,  3500,  3506,  3505,
1344 <    3510,  3510,  3511,  3514,  3517,  3520,  3523,  3526,  3529,  3532,
1345 <    3535,  3538,  3541,  3544,  3547,  3550,  3553,  3556,  3559,  3562,
1346 <    3565,  3571,  3570,  3575,  3575,  3576,  3579,  3582,  3585,  3588,
1347 <    3591,  3594,  3597,  3600,  3603,  3606,  3609,  3612,  3615,  3618,
1438 <    3621,  3624,  3627,  3630,  3635,  3640,  3645,  3650,  3655,  3664,
1439 <    3663,  3687,  3687,  3688,  3689,  3690,  3691,  3692,  3693,  3694,
1440 <    3696,  3702,  3709,  3708,  3713,  3713,  3714,  3718,  3724,  3758,
1441 <    3768,  3767,  3817,  3817,  3818,  3822,  3831,  3834,  3834,  3835,
1442 <    3835,  3836,  3836,  3837,  3837,  3838,  3838,  3839,  3839,  3840,
1443 <    3841,  3841,  3842,  3842,  3843,  3843,  3844,  3844,  3846,  3851,
1444 <    3856,  3861,  3866,  3871,  3876,  3881,  3886,  3891,  3896,  3901,
1445 <    3906,  3911,  3916,  3921,  3926,  3931,  3939,  3942,  3942,  3943,
1446 <    3943,  3944,  3945,  3946,  3946,  3947,  3948,  3950,  3956,  3962,
1447 <    3971,  3985,  3991,  3997
1283 >       0,   367,   367,   368,   371,   372,   373,   374,   375,   376,
1284 >     377,   378,   379,   380,   381,   382,   383,   384,   385,   386,
1285 >     387,   388,   389,   390,   391,   392,   393,   397,   397,   398,
1286 >     402,   406,   410,   414,   418,   422,   426,   432,   432,   433,
1287 >     434,   435,   436,   443,   446,   446,   447,   447,   447,   449,
1288 >     455,   462,   464,   464,   465,   465,   466,   466,   467,   467,
1289 >     468,   468,   469,   469,   470,   470,   471,   471,   472,   472,
1290 >     473,   474,   477,   478,   480,   480,   481,   487,   495,   495,
1291 >     496,   502,   510,   552,   611,   639,   647,   662,   677,   686,
1292 >     700,   709,   737,   767,   792,   814,   836,   845,   847,   847,
1293 >     848,   848,   849,   849,   851,   860,   869,   882,   881,   899,
1294 >     899,   900,   900,   900,   902,   908,   917,   918,   918,   920,
1295 >     920,   921,   923,   930,   930,   943,   944,   946,   946,   947,
1296 >     947,   949,   957,   960,   966,   965,   971,   971,   972,   976,
1297 >     980,   984,   988,   992,   996,  1007,  1006,  1086,  1086,  1087,
1298 >    1087,  1087,  1088,  1088,  1088,  1089,  1089,  1090,  1090,  1092,
1299 >    1098,  1104,  1110,  1121,  1127,  1134,  1141,  1140,  1146,  1146,
1300 >    1147,  1151,  1155,  1159,  1163,  1167,  1171,  1175,  1179,  1183,
1301 >    1187,  1191,  1195,  1199,  1203,  1207,  1211,  1215,  1219,  1223,
1302 >    1227,  1234,  1233,  1239,  1239,  1240,  1244,  1248,  1252,  1256,
1303 >    1260,  1264,  1268,  1272,  1276,  1280,  1284,  1288,  1292,  1296,
1304 >    1300,  1304,  1308,  1312,  1316,  1320,  1324,  1328,  1339,  1338,
1305 >    1399,  1399,  1400,  1401,  1401,  1402,  1403,  1404,  1405,  1406,
1306 >    1407,  1408,  1409,  1410,  1410,  1411,  1412,  1413,  1414,  1416,
1307 >    1422,  1428,  1434,  1440,  1446,  1452,  1458,  1464,  1470,  1477,
1308 >    1483,  1489,  1495,  1504,  1514,  1513,  1519,  1519,  1520,  1524,
1309 >    1535,  1534,  1541,  1540,  1545,  1545,  1546,  1550,  1554,  1560,
1310 >    1560,  1561,  1561,  1561,  1561,  1561,  1563,  1563,  1565,  1565,
1311 >    1567,  1581,  1601,  1607,  1617,  1616,  1658,  1658,  1659,  1659,
1312 >    1659,  1659,  1660,  1660,  1660,  1661,  1661,  1663,  1669,  1675,
1313 >    1681,  1693,  1692,  1698,  1698,  1699,  1703,  1707,  1711,  1715,
1314 >    1719,  1723,  1727,  1731,  1735,  1741,  1755,  1764,  1778,  1777,
1315 >    1792,  1792,  1793,  1793,  1793,  1793,  1795,  1801,  1807,  1817,
1316 >    1819,  1819,  1820,  1820,  1822,  1838,  1837,  1862,  1862,  1863,
1317 >    1863,  1863,  1863,  1865,  1871,  1891,  1890,  1896,  1896,  1897,
1318 >    1901,  1905,  1909,  1913,  1917,  1921,  1925,  1929,  1933,  1943,
1319 >    1942,  1963,  1963,  1964,  1964,  1964,  1966,  1973,  1972,  1978,
1320 >    1978,  1979,  1983,  1987,  1991,  1995,  1999,  2003,  2007,  2011,
1321 >    2015,  2025,  2024,  2094,  2094,  2095,  2095,  2095,  2096,  2096,
1322 >    2096,  2097,  2097,  2097,  2098,  2098,  2098,  2099,  2099,  2100,
1323 >    2102,  2108,  2114,  2120,  2133,  2146,  2153,  2159,  2163,  2172,
1324 >    2171,  2176,  2176,  2177,  2181,  2187,  2198,  2204,  2210,  2216,
1325 >    2232,  2231,  2257,  2257,  2258,  2258,  2258,  2260,  2280,  2290,
1326 >    2289,  2316,  2316,  2317,  2317,  2317,  2319,  2325,  2334,  2336,
1327 >    2336,  2337,  2337,  2339,  2357,  2356,  2379,  2379,  2380,  2380,
1328 >    2380,  2382,  2388,  2397,  2400,  2400,  2401,  2401,  2402,  2402,
1329 >    2403,  2403,  2404,  2404,  2405,  2405,  2406,  2407,  2408,  2408,
1330 >    2409,  2409,  2410,  2410,  2411,  2411,  2412,  2412,  2413,  2413,
1331 >    2414,  2414,  2415,  2415,  2416,  2416,  2417,  2417,  2418,  2418,
1332 >    2419,  2419,  2420,  2421,  2422,  2422,  2423,  2423,  2424,  2425,
1333 >    2426,  2427,  2427,  2428,  2431,  2436,  2442,  2448,  2454,  2459,
1334 >    2464,  2469,  2474,  2479,  2484,  2489,  2494,  2499,  2504,  2509,
1335 >    2514,  2519,  2525,  2536,  2541,  2546,  2551,  2556,  2561,  2564,
1336 >    2569,  2572,  2577,  2582,  2587,  2592,  2597,  2602,  2607,  2612,
1337 >    2617,  2622,  2627,  2632,  2641,  2650,  2655,  2660,  2666,  2665,
1338 >    2670,  2670,  2671,  2674,  2677,  2680,  2683,  2686,  2689,  2692,
1339 >    2695,  2698,  2701,  2704,  2707,  2710,  2713,  2716,  2719,  2722,
1340 >    2725,  2728,  2731,  2737,  2736,  2741,  2741,  2742,  2745,  2748,
1341 >    2751,  2754,  2757,  2760,  2763,  2766,  2769,  2772,  2775,  2778,
1342 >    2781,  2784,  2787,  2790,  2793,  2796,  2799,  2802,  2807,  2812,
1343 >    2817,  2826,  2829,  2829,  2830,  2831,  2831,  2832,  2832,  2833,
1344 >    2834,  2835,  2836,  2837,  2837,  2838,  2838,  2840,  2845,  2850,
1345 >    2855,  2860,  2865,  2870,  2875,  2880,  2885,  2890,  2895,  2903,
1346 >    2906,  2906,  2907,  2907,  2908,  2909,  2910,  2911,  2911,  2912,
1347 >    2913,  2915,  2921,  2927,  2933,  2939,  2948,  2962,  2968
1348   };
1349   #endif
1350  
1351 < #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1351 > #if YYDEBUG || YYERROR_VERBOSE || 0
1352   /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1353     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1354   static const char *const yytname[] =
1355   {
1356 <  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ACTION", "ADMIN",
1357 <  "AFTYPE", "T_ALLOW", "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME",
1358 <  "AUTOCONN", "T_BLOCK", "BURST_AWAY", "BURST_TOPICWHO", "BYTES", "KBYTES",
1359 <  "MBYTES", "GBYTES", "TBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CAN_IDLE",
1360 <  "CHANNEL", "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CIPHER_PREFERENCE",
1361 <  "CLASS", "COMPRESSED", "COMPRESSION_LEVEL", "CONNECT", "CONNECTFREQ",
1362 <  "CRYPTLINK", "DEFAULT_CIPHER_PREFERENCE", "DEFAULT_FLOODCOUNT",
1363 <  "DEFAULT_SPLIT_SERVER_COUNT", "DEFAULT_SPLIT_USER_COUNT", "DENY",
1364 <  "DESCRIPTION", "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1365 <  "DISABLE_HIDDEN", "DISABLE_LOCAL_CHANNELS", "DISABLE_REMOTE_COMMANDS",
1366 <  "DOT_IN_IP6_ADDR", "DOTS_IN_IDENT", "DURATION", "EGDPOOL_PATH", "EMAIL",
1367 <  "ENABLE", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT", "FAILED_OPER_NOTICE",
1368 <  "FAKENAME", "IRCD_FLAGS", "FLATTEN_LINKS", "FFAILED_OPERLOG", "FKILLLOG",
1369 <  "FKLINELOG", "FGLINELOG", "FIOERRLOG", "FOPERLOG", "FOPERSPYLOG",
1370 <  "FUSERLOG", "GECOS", "GENERAL", "GLINE", "GLINES", "GLINE_EXEMPT",
1371 <  "GLINE_LOG", "GLINE_TIME", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1372 <  "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1373 <  "HIDDEN_ADMIN", "HIDDEN_NAME", "HIDDEN_OPER", "HIDE_SERVER_IPS",
1374 <  "HIDE_SERVERS", "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK", "IDLETIME",
1375 <  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "IP", "KILL",
1376 <  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KLINE_REASON",
1377 <  "KLINE_WITH_REASON", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1378 <  "LINKS_DELAY", "LISTEN", "T_LOG", "LOGGING", "LOG_LEVEL", "MAX_ACCEPT",
1379 <  "MAX_BANS", "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1380 <  "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1381 <  "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1382 <  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1383 <  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1384 <  "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1385 <  "NOT", "NUMBER", "NUMBER_PER_IDENT", "NUMBER_PER_CIDR", "NUMBER_PER_IP",
1386 <  "NUMBER_PER_IP_GLOBAL", "OPERATOR", "OPERS_BYPASS_CALLERID", "OPER_LOG",
1387 <  "OPER_ONLY_UMODES", "OPER_PASS_RESV", "OPER_SPY_T", "OPER_UMODES",
1388 <  "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "PACE_WAIT", "PACE_WAIT_SIMPLE",
1389 <  "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME", "PING_WARNING", "PORT",
1390 <  "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT", "REDIRSERV", "REGEX_T",
1391 <  "REHASH", "TREJECT_HOLD_TIME", "REMOTE", "REMOTEBAN",
1392 <  "RESTRICT_CHANNELS", "RESTRICTED", "RSA_PRIVATE_KEY_FILE",
1393 <  "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE", "T_SSL_CONNECTION_METHOD",
1394 <  "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT", "SECONDS", "MINUTES",
1395 <  "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD", "SERVERHIDE",
1396 <  "SERVERINFO", "SERVLINK_PATH", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1397 <  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SILENT", "SPOOF",
1398 <  "SPOOF_NOTICE", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1399 <  "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL",
1400 <  "TMASKED", "T_REJECT", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS",
1401 <  "T_ALL", "T_BOTS", "T_SOFTCALLERID", "T_CALLERID", "T_CCONN",
1402 <  "T_CCONN_FULL", "T_CLIENT_FLOOD", "T_DEAF", "T_DEBUG", "T_DRONE",
1403 <  "T_EXTERNAL", "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS",
1404 <  "T_LOGPATH", "T_L_CRIT", "T_L_DEBUG", "T_L_ERROR", "T_L_INFO",
1505 <  "T_L_NOTICE", "T_L_TRACE", "T_L_WARN", "T_MAX_CLIENTS", "T_NCHANGE",
1506 <  "T_OPERWALL", "T_REJ", "T_SERVER", "T_SERVNOTICE", "T_SKILL", "T_SPY",
1507 <  "T_SSL", "T_UMODES", "T_UNAUTH", "T_UNRESV", "T_UNXLINE", "T_WALLOP",
1508 <  "THROTTLE_TIME", "TOPICBURST", "TRUE_NO_OPER_FLOOD", "TKLINE", "TXLINE",
1509 <  "TRESV", "UNKLINE", "USER", "USE_EGD", "USE_EXCEPT", "USE_INVEX",
1510 <  "USE_KNOCK", "USE_LOGGING", "USE_WHOIS_ACTUALLY", "VHOST", "VHOST6",
1511 <  "XLINE", "WARN", "WARN_NO_NLINE", "';'", "'}'", "'{'", "'='", "','",
1356 >  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1357 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1358 >  "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1359 >  "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1360 >  "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1361 >  "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1362 >  "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1363 >  "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1364 >  "FAILED_OPER_NOTICE", "FLATTEN_LINKS", "GECOS", "GENERAL", "GLINE",
1365 >  "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT", "GLINE_MIN_CIDR",
1366 >  "GLINE_MIN_CIDR6", "GLINE_REQUEST_DURATION", "GLOBAL_KILL",
1367 >  "HAVENT_READ_CONF", "HIDDEN", "HIDDEN_NAME", "HIDE_IDLE_FROM_OPERS",
1368 >  "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SERVICES", "HIDE_SPOOF_IPS",
1369 >  "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1370 >  "IP", "IRCD_AUTH", "IRCD_FLAGS", "IRCD_SID", "JOIN_FLOOD_COUNT",
1371 >  "JOIN_FLOOD_TIME", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE",
1372 >  "KLINE_EXEMPT", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1373 >  "LINKS_DELAY", "LISTEN", "MASK", "MAX_ACCEPT", "MAX_BANS",
1374 >  "MAX_CHANS_PER_OPER", "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT",
1375 >  "MAX_IDLE", "MAX_LOCAL", "MAX_NICK_CHANGES", "MAX_NICK_LENGTH",
1376 >  "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS", "MAX_TOPIC_LENGTH",
1377 >  "MAX_WATCH", "MIN_IDLE", "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE",
1378 >  "MODULE", "MODULES", "MOTD", "NAME", "NEED_IDENT", "NEED_PASSWORD",
1379 >  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NO_CREATE_ON_SPLIT",
1380 >  "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE", "NUMBER",
1381 >  "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1382 >  "OPER_UMODES", "OPERATOR", "OPERS_BYPASS_CALLERID", "PACE_WAIT",
1383 >  "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME",
1384 >  "PORT", "QSTRING", "RANDOM_IDLE", "REASON", "REDIRPORT", "REDIRSERV",
1385 >  "REHASH", "REMOTE", "REMOTEBAN", "RESV", "RESV_EXEMPT",
1386 >  "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE", "SECONDS", "MINUTES",
1387 >  "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ",
1388 >  "SERVERHIDE", "SERVERINFO", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1389 >  "SQUIT", "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE", "STATS_E_DISABLED",
1390 >  "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY",
1391 >  "STATS_P_OPER_ONLY", "T_ALL", "T_BOTS", "T_CALLERID", "T_CCONN",
1392 >  "T_CLUSTER", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1393 >  "T_FARCONNECT", "T_FILE", "T_FINGERPRINT", "T_FULL", "T_GLOBOPS",
1394 >  "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_LOG", "T_MAX_CLIENTS",
1395 >  "T_NCHANGE", "T_NONONREG", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_RESTART",
1396 >  "T_SERVER", "T_SERVICE", "T_SERVICES_NAME", "T_SERVNOTICE", "T_SET",
1397 >  "T_SHARED", "T_SIZE", "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL",
1398 >  "T_SSL_CIPHER_LIST", "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD",
1399 >  "T_SSLV3", "T_TLSV1", "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED",
1400 >  "T_UNRESV", "T_UNXLINE", "T_WALLOP", "T_WALLOPS", "T_WEBIRC", "TBOOL",
1401 >  "THROTTLE_TIME", "TKLINE_EXPIRE_NOTICES", "TMASKED",
1402 >  "TRUE_NO_OPER_FLOOD", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "TYPE",
1403 >  "UNKLINE", "USE_EGD", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1404 >  "WARN_NO_NLINE", "XLINE", "';'", "'}'", "'{'", "'='", "','", "':'",
1405    "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1406    "sizespec", "modules_entry", "modules_items", "modules_item",
1407    "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1408 <  "serverinfo_item", "serverinfo_ssl_connection_method", "$@1",
1409 <  "method_types", "method_type_item", "serverinfo_ssl_certificate_file",
1410 <  "serverinfo_rsa_private_key_file", "serverinfo_name", "serverinfo_sid",
1408 >  "serverinfo_item", "serverinfo_ssl_client_method",
1409 >  "serverinfo_ssl_server_method", "client_method_types",
1410 >  "client_method_type_item", "server_method_types",
1411 >  "server_method_type_item", "serverinfo_ssl_certificate_file",
1412 >  "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1413 >  "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1414    "serverinfo_description", "serverinfo_network_name",
1415    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1416 <  "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1417 <  "admin_item", "admin_name", "admin_email", "admin_description",
1418 <  "logging_entry", "logging_items", "logging_item", "logging_path",
1419 <  "logging_oper_log", "logging_fuserlog", "logging_ffailed_operlog",
1420 <  "logging_foperlog", "logging_foperspylog", "logging_fglinelog",
1421 <  "logging_fklinelog", "logging_ioerrlog", "logging_killlog",
1422 <  "logging_log_level", "logging_use_logging", "oper_entry", "$@2",
1423 <  "oper_name_b", "oper_items", "oper_item", "oper_name", "oper_name_t",
1424 <  "oper_user", "oper_password", "oper_encrypted",
1425 <  "oper_rsa_public_key_file", "oper_class", "oper_umodes", "$@3",
1426 <  "oper_umodes_items", "oper_umodes_item", "oper_global_kill",
1427 <  "oper_remote", "oper_remoteban", "oper_kline", "oper_xline",
1428 <  "oper_unkline", "oper_gline", "oper_nick_changes", "oper_die",
1429 <  "oper_rehash", "oper_admin", "oper_hidden_admin", "oper_hidden_oper",
1430 <  "oper_operwall", "oper_flags", "$@4", "oper_flags_items",
1431 <  "oper_flags_item", "$@5", "$@6", "oper_flags_item_atom", "class_entry",
1432 <  "$@7", "class_name_b", "class_items", "class_item", "class_name",
1537 <  "class_name_t", "class_ping_time", "class_ping_warning",
1538 <  "class_number_per_ip", "class_connectfreq", "class_max_number",
1539 <  "class_max_global", "class_max_local", "class_max_ident", "class_sendq",
1416 >  "serverinfo_max_clients", "serverinfo_max_nick_length",
1417 >  "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1418 >  "admin_items", "admin_item", "admin_name", "admin_email",
1419 >  "admin_description", "motd_entry", "$@1", "motd_items", "motd_item",
1420 >  "motd_mask", "motd_file", "logging_entry", "logging_items",
1421 >  "logging_item", "logging_use_logging", "logging_file_entry", "$@2",
1422 >  "logging_file_items", "logging_file_item", "logging_file_name",
1423 >  "logging_file_size", "logging_file_type", "$@3",
1424 >  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@4",
1425 >  "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1426 >  "oper_encrypted", "oper_rsa_public_key_file", "oper_fingerprint",
1427 >  "oper_class", "oper_umodes", "$@5", "oper_umodes_items",
1428 >  "oper_umodes_item", "oper_flags", "$@6", "oper_flags_items",
1429 >  "oper_flags_item", "class_entry", "$@7", "class_items", "class_item",
1430 >  "class_name", "class_ping_time", "class_number_per_ip",
1431 >  "class_connectfreq", "class_max_number", "class_max_global",
1432 >  "class_max_local", "class_max_ident", "class_sendq", "class_recvq",
1433    "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1434 <  "class_number_per_cidr", "listen_entry", "$@8", "listen_flags", "$@9",
1435 <  "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1436 <  "listen_port", "$@10", "port_items", "port_item", "listen_address",
1437 <  "listen_host", "auth_entry", "$@11", "auth_items", "auth_item",
1438 <  "auth_user", "auth_passwd", "auth_spoof_notice", "auth_class",
1439 <  "auth_encrypted", "auth_flags", "$@12", "auth_flags_items",
1440 <  "auth_flags_item", "$@13", "$@14", "auth_flags_item_atom",
1441 <  "auth_kline_exempt", "auth_need_ident", "auth_exceed_limit",
1442 <  "auth_can_flood", "auth_no_tilde", "auth_gline_exempt", "auth_spoof",
1443 <  "auth_redir_serv", "auth_redir_port", "auth_need_password", "resv_entry",
1444 <  "$@15", "resv_items", "resv_item", "resv_creason", "resv_channel",
1445 <  "resv_nick", "shared_entry", "$@16", "shared_items", "shared_item",
1446 <  "shared_name", "shared_user", "shared_type", "$@17", "shared_types",
1447 <  "shared_type_item", "cluster_entry", "$@18", "cluster_items",
1448 <  "cluster_item", "cluster_name", "cluster_type", "$@19", "cluster_types",
1449 <  "cluster_type_item", "connect_entry", "$@20", "connect_name_b",
1557 <  "connect_items", "connect_item", "connect_name", "connect_name_t",
1434 >  "class_number_per_cidr", "class_min_idle", "class_max_idle",
1435 >  "class_flags", "$@8", "class_flags_items", "class_flags_item",
1436 >  "listen_entry", "$@9", "listen_flags", "$@10", "listen_flags_items",
1437 >  "listen_flags_item", "listen_items", "listen_item", "listen_port",
1438 >  "$@11", "port_items", "port_item", "listen_address", "listen_host",
1439 >  "auth_entry", "$@12", "auth_items", "auth_item", "auth_user",
1440 >  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@13",
1441 >  "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1442 >  "auth_redir_port", "resv_entry", "$@14", "resv_items", "resv_item",
1443 >  "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1444 >  "service_items", "service_item", "service_name", "shared_entry", "$@15",
1445 >  "shared_items", "shared_item", "shared_name", "shared_user",
1446 >  "shared_type", "$@16", "shared_types", "shared_type_item",
1447 >  "cluster_entry", "$@17", "cluster_items", "cluster_item", "cluster_name",
1448 >  "cluster_type", "$@18", "cluster_types", "cluster_type_item",
1449 >  "connect_entry", "$@19", "connect_items", "connect_item", "connect_name",
1450    "connect_host", "connect_vhost", "connect_send_password",
1451 <  "connect_accept_password", "connect_port", "connect_aftype",
1452 <  "connect_fakename", "connect_flags", "$@21", "connect_flags_items",
1453 <  "connect_flags_item", "$@22", "$@23", "connect_flags_item_atom",
1454 <  "connect_rsa_public_key_file", "connect_encrypted", "connect_cryptlink",
1455 <  "connect_compressed", "connect_auto", "connect_topicburst",
1456 <  "connect_hub_mask", "connect_leaf_mask", "connect_class",
1457 <  "connect_cipher_preference", "kill_entry", "$@24", "kill_type", "$@25",
1458 <  "kill_type_items", "kill_type_item", "kill_items", "kill_item",
1567 <  "kill_user", "kill_reason", "deny_entry", "$@26", "deny_items",
1568 <  "deny_item", "deny_ip", "deny_reason", "exempt_entry", "exempt_items",
1569 <  "exempt_item", "exempt_ip", "gecos_entry", "$@27", "gecos_flags", "$@28",
1570 <  "gecos_flags_items", "gecos_flags_item", "gecos_items", "gecos_item",
1451 >  "connect_accept_password", "connect_fingerprint", "connect_port",
1452 >  "connect_aftype", "connect_flags", "$@20", "connect_flags_items",
1453 >  "connect_flags_item", "connect_encrypted", "connect_hub_mask",
1454 >  "connect_leaf_mask", "connect_class", "connect_ssl_cipher_list",
1455 >  "kill_entry", "$@21", "kill_items", "kill_item", "kill_user",
1456 >  "kill_reason", "deny_entry", "$@22", "deny_items", "deny_item",
1457 >  "deny_ip", "deny_reason", "exempt_entry", "exempt_items", "exempt_item",
1458 >  "exempt_ip", "gecos_entry", "$@23", "gecos_items", "gecos_item",
1459    "gecos_name", "gecos_reason", "general_entry", "general_items",
1460 <  "general_item", "general_max_watch", "general_gline_min_cidr",
1461 <  "general_gline_min_cidr6", "general_burst_away",
1462 <  "general_use_whois_actually", "general_reject_hold_time",
1460 >  "general_item", "general_max_watch", "general_gline_enable",
1461 >  "general_gline_duration", "general_gline_request_duration",
1462 >  "general_gline_min_cidr", "general_gline_min_cidr6",
1463    "general_tkline_expire_notices", "general_kill_chase_time_limit",
1464    "general_hide_spoof_ips", "general_ignore_bogus_ts",
1465 <  "general_disable_remote_commands", "general_failed_oper_notice",
1466 <  "general_anti_nick_flood", "general_max_nick_time",
1467 <  "general_max_nick_changes", "general_max_accept",
1468 <  "general_anti_spam_exit_message_time", "general_ts_warn_delta",
1469 <  "general_ts_max_delta", "general_havent_read_conf",
1470 <  "general_kline_with_reason", "general_kline_reason",
1471 <  "general_invisible_on_connect", "general_warn_no_nline",
1472 <  "general_stats_e_disabled", "general_stats_o_oper_only",
1473 <  "general_stats_P_oper_only", "general_stats_k_oper_only",
1474 <  "general_stats_i_oper_only", "general_pace_wait",
1475 <  "general_caller_id_wait", "general_opers_bypass_callerid",
1476 <  "general_pace_wait_simple", "general_short_motd",
1477 <  "general_no_oper_flood", "general_true_no_oper_flood",
1478 <  "general_oper_pass_resv", "general_message_locale", "general_idletime",
1591 <  "general_dots_in_ident", "general_max_targets", "general_servlink_path",
1592 <  "general_default_cipher_preference", "general_compression_level",
1593 <  "general_use_egd", "general_egdpool_path", "general_ping_cookie",
1465 >  "general_failed_oper_notice", "general_anti_nick_flood",
1466 >  "general_max_nick_time", "general_max_nick_changes",
1467 >  "general_max_accept", "general_anti_spam_exit_message_time",
1468 >  "general_ts_warn_delta", "general_ts_max_delta",
1469 >  "general_havent_read_conf", "general_invisible_on_connect",
1470 >  "general_warn_no_nline", "general_stats_e_disabled",
1471 >  "general_stats_o_oper_only", "general_stats_P_oper_only",
1472 >  "general_stats_k_oper_only", "general_stats_i_oper_only",
1473 >  "general_pace_wait", "general_caller_id_wait",
1474 >  "general_opers_bypass_callerid", "general_pace_wait_simple",
1475 >  "general_short_motd", "general_no_oper_flood",
1476 >  "general_true_no_oper_flood", "general_oper_pass_resv",
1477 >  "general_dots_in_ident", "general_max_targets", "general_use_egd",
1478 >  "general_egdpool_path", "general_services_name", "general_ping_cookie",
1479    "general_disable_auth", "general_throttle_time", "general_oper_umodes",
1480 <  "$@29", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1481 <  "$@30", "umode_items", "umode_item", "general_min_nonwildcard",
1480 >  "$@24", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1481 >  "$@25", "umode_items", "umode_item", "general_min_nonwildcard",
1482    "general_min_nonwildcard_simple", "general_default_floodcount",
1483 <  "general_client_flood", "general_dot_in_ip6_addr", "gline_entry", "$@31",
1484 <  "gline_items", "gline_item", "gline_enable", "gline_duration",
1485 <  "gline_logging", "$@32", "gline_logging_types",
1486 <  "gline_logging_type_item", "gline_user", "gline_server", "gline_action",
1602 <  "$@33", "gdeny_types", "gdeny_type_item", "channel_entry",
1603 <  "channel_items", "channel_item", "channel_disable_fake_channels",
1604 <  "channel_restrict_channels", "channel_disable_local_channels",
1605 <  "channel_use_except", "channel_use_invex", "channel_use_knock",
1606 <  "channel_knock_delay", "channel_knock_delay_channel",
1607 <  "channel_max_chans_per_user", "channel_quiet_on_ban", "channel_max_bans",
1483 >  "channel_entry", "channel_items", "channel_item",
1484 >  "channel_disable_fake_channels", "channel_knock_delay",
1485 >  "channel_knock_delay_channel", "channel_max_chans_per_user",
1486 >  "channel_max_chans_per_oper", "channel_max_bans",
1487    "channel_default_split_user_count", "channel_default_split_server_count",
1488    "channel_no_create_on_split", "channel_no_join_on_split",
1489 <  "channel_burst_topicwho", "channel_jflood_count", "channel_jflood_time",
1490 <  "serverhide_entry", "serverhide_items", "serverhide_item",
1491 <  "serverhide_flatten_links", "serverhide_hide_servers",
1492 <  "serverhide_hidden_name", "serverhide_links_delay", "serverhide_hidden",
1493 <  "serverhide_disable_hidden", "serverhide_hide_server_ips", 0
1489 >  "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1490 >  "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1491 >  "serverhide_disable_remote_commands", "serverhide_hide_servers",
1492 >  "serverhide_hide_services", "serverhide_hidden_name",
1493 >  "serverhide_links_delay", "serverhide_hidden",
1494 >  "serverhide_hide_server_ips", YY_NULL
1495   };
1496   #endif
1497  
# Line 1642 | Line 1522 | static const yytype_uint16 yytoknum[] =
1522       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1523       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1524       465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1525 <     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1646 <     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1647 <     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
1648 <     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
1649 <     515,   516,    59,   125,   123,    61,    44
1525 >     475,   476,   477,   478,    59,   125,   123,    61,    44,    58
1526   };
1527   # endif
1528  
1529   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1530   static const yytype_uint16 yyr1[] =
1531   {
1532 <       0,   267,   268,   268,   269,   269,   269,   269,   269,   269,
1533 <     269,   269,   269,   269,   269,   269,   269,   269,   269,   269,
1534 <     269,   269,   269,   269,   269,   269,   270,   270,   271,   271,
1535 <     271,   271,   271,   271,   272,   272,   273,   273,   273,   273,
1536 <     274,   275,   275,   276,   276,   276,   277,   278,   279,   280,
1537 <     280,   281,   281,   281,   281,   281,   281,   281,   281,   281,
1538 <     281,   281,   281,   281,   283,   282,   284,   284,   285,   285,
1539 <     286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
1540 <     296,   297,   298,   298,   299,   299,   299,   299,   300,   301,
1541 <     302,   303,   304,   304,   305,   305,   305,   305,   305,   305,
1542 <     305,   305,   305,   305,   305,   305,   305,   306,   307,   308,
1543 <     309,   310,   311,   312,   313,   314,   315,   316,   316,   316,
1544 <     316,   316,   316,   316,   317,   319,   318,   320,   320,   321,
1545 <     321,   322,   322,   322,   322,   322,   322,   322,   322,   322,
1546 <     322,   322,   322,   322,   322,   322,   322,   322,   322,   322,
1547 <     322,   322,   322,   322,   323,   324,   325,   326,   327,   328,
1548 <     329,   331,   330,   332,   332,   333,   333,   333,   333,   333,
1549 <     333,   333,   333,   333,   333,   333,   333,   333,   333,   333,
1550 <     333,   333,   333,   333,   334,   335,   336,   337,   338,   339,
1551 <     340,   341,   342,   343,   344,   345,   346,   347,   349,   348,
1552 <     350,   350,   352,   351,   353,   351,   354,   354,   354,   354,
1553 <     354,   354,   354,   354,   354,   354,   354,   354,   354,   354,
1554 <     354,   354,   356,   355,   357,   357,   358,   358,   359,   359,
1555 <     359,   359,   359,   359,   359,   359,   359,   359,   359,   359,
1556 <     359,   359,   360,   361,   362,   363,   364,   365,   366,   367,
1557 <     368,   369,   370,   371,   372,   373,   375,   374,   377,   376,
1558 <     378,   378,   379,   379,   379,   380,   380,   381,   381,   381,
1559 <     381,   381,   383,   382,   384,   384,   385,   385,   386,   387,
1560 <     389,   388,   390,   390,   391,   391,   391,   391,   391,   391,
1561 <     391,   391,   391,   391,   391,   391,   391,   391,   391,   391,
1562 <     391,   392,   393,   394,   395,   396,   398,   397,   399,   399,
1563 <     401,   400,   402,   400,   403,   403,   403,   403,   403,   403,
1564 <     403,   403,   403,   403,   404,   405,   406,   407,   408,   409,
1565 <     410,   411,   412,   413,   415,   414,   416,   416,   417,   417,
1566 <     417,   417,   418,   419,   420,   422,   421,   423,   423,   424,
1567 <     424,   424,   424,   425,   426,   428,   427,   429,   429,   430,
1568 <     430,   430,   430,   430,   430,   430,   430,   430,   430,   430,
1569 <     432,   431,   433,   433,   434,   434,   434,   435,   437,   436,
1570 <     438,   438,   439,   439,   439,   439,   439,   439,   439,   439,
1571 <     439,   439,   439,   441,   440,   442,   442,   443,   443,   444,
1572 <     444,   444,   444,   444,   444,   444,   444,   444,   444,   444,
1573 <     444,   444,   444,   444,   444,   444,   444,   444,   444,   445,
1574 <     446,   447,   448,   449,   450,   451,   452,   452,   453,   455,
1575 <     454,   456,   456,   458,   457,   459,   457,   460,   460,   460,
1576 <     460,   460,   461,   462,   463,   464,   465,   466,   467,   468,
1577 <     469,   470,   472,   471,   474,   473,   475,   475,   476,   477,
1578 <     477,   478,   478,   478,   478,   479,   480,   482,   481,   483,
1579 <     483,   484,   484,   484,   485,   486,   487,   488,   488,   489,
1580 <     489,   490,   492,   491,   494,   493,   495,   495,   496,   497,
1581 <     497,   498,   498,   498,   498,   499,   500,   501,   502,   502,
1582 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1583 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1584 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1585 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1586 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1587 <     503,   503,   503,   503,   503,   503,   503,   504,   505,   506,
1588 <     507,   508,   509,   510,   511,   512,   513,   514,   515,   516,
1589 <     517,   518,   519,   520,   521,   522,   523,   524,   525,   526,
1590 <     527,   528,   529,   530,   531,   531,   532,   532,   533,   534,
1591 <     535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
1592 <     545,   546,   547,   548,   549,   550,   551,   552,   554,   553,
1593 <     555,   555,   556,   556,   556,   556,   556,   556,   556,   556,
1594 <     556,   556,   556,   556,   556,   556,   556,   556,   556,   556,
1595 <     556,   558,   557,   559,   559,   560,   560,   560,   560,   560,
1596 <     560,   560,   560,   560,   560,   560,   560,   560,   560,   560,
1721 <     560,   560,   560,   560,   561,   562,   563,   564,   565,   567,
1722 <     566,   568,   568,   569,   569,   569,   569,   569,   569,   569,
1723 <     570,   571,   573,   572,   574,   574,   575,   575,   576,   577,
1724 <     579,   578,   580,   580,   581,   581,   582,   583,   583,   584,
1725 <     584,   584,   584,   584,   584,   584,   584,   584,   584,   584,
1726 <     584,   584,   584,   584,   584,   584,   584,   584,   585,   586,
1727 <     587,   588,   589,   590,   591,   592,   593,   594,   595,   596,
1728 <     597,   598,   599,   600,   601,   602,   603,   604,   604,   605,
1729 <     605,   605,   605,   605,   605,   605,   605,   606,   607,   608,
1730 <     609,   610,   611,   612
1532 >       0,   230,   231,   231,   232,   232,   232,   232,   232,   232,
1533 >     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
1534 >     232,   232,   232,   232,   232,   232,   232,   233,   233,   234,
1535 >     234,   234,   234,   234,   234,   234,   234,   235,   235,   236,
1536 >     236,   236,   236,   237,   238,   238,   239,   239,   239,   240,
1537 >     241,   242,   243,   243,   244,   244,   244,   244,   244,   244,
1538 >     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
1539 >     244,   244,   245,   246,   247,   247,   248,   248,   249,   249,
1540 >     250,   250,   251,   252,   253,   254,   255,   256,   257,   258,
1541 >     259,   260,   261,   262,   263,   264,   265,   266,   267,   267,
1542 >     268,   268,   268,   268,   269,   270,   271,   273,   272,   274,
1543 >     274,   275,   275,   275,   276,   277,   278,   279,   279,   280,
1544 >     280,   280,   281,   283,   282,   284,   284,   285,   285,   285,
1545 >     285,   286,   287,   287,   289,   288,   290,   290,   291,   291,
1546 >     291,   291,   291,   291,   291,   293,   292,   294,   294,   295,
1547 >     295,   295,   295,   295,   295,   295,   295,   295,   295,   296,
1548 >     297,   298,   299,   300,   301,   302,   304,   303,   305,   305,
1549 >     306,   306,   306,   306,   306,   306,   306,   306,   306,   306,
1550 >     306,   306,   306,   306,   306,   306,   306,   306,   306,   306,
1551 >     306,   308,   307,   309,   309,   310,   310,   310,   310,   310,
1552 >     310,   310,   310,   310,   310,   310,   310,   310,   310,   310,
1553 >     310,   310,   310,   310,   310,   310,   310,   310,   312,   311,
1554 >     313,   313,   314,   314,   314,   314,   314,   314,   314,   314,
1555 >     314,   314,   314,   314,   314,   314,   314,   314,   314,   315,
1556 >     316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
1557 >     326,   327,   328,   329,   331,   330,   332,   332,   333,   333,
1558 >     335,   334,   337,   336,   338,   338,   339,   339,   339,   340,
1559 >     340,   341,   341,   341,   341,   341,   343,   342,   344,   344,
1560 >     345,   345,   346,   347,   349,   348,   350,   350,   351,   351,
1561 >     351,   351,   351,   351,   351,   351,   351,   352,   353,   354,
1562 >     355,   357,   356,   358,   358,   359,   359,   359,   359,   359,
1563 >     359,   359,   359,   359,   359,   360,   361,   362,   364,   363,
1564 >     365,   365,   366,   366,   366,   366,   367,   368,   369,   370,
1565 >     371,   371,   372,   372,   373,   375,   374,   376,   376,   377,
1566 >     377,   377,   377,   378,   379,   381,   380,   382,   382,   383,
1567 >     383,   383,   383,   383,   383,   383,   383,   383,   383,   385,
1568 >     384,   386,   386,   387,   387,   387,   388,   390,   389,   391,
1569 >     391,   392,   392,   392,   392,   392,   392,   392,   392,   392,
1570 >     392,   394,   393,   395,   395,   396,   396,   396,   396,   396,
1571 >     396,   396,   396,   396,   396,   396,   396,   396,   396,   396,
1572 >     397,   398,   399,   400,   401,   402,   403,   404,   404,   406,
1573 >     405,   407,   407,   408,   408,   409,   410,   411,   412,   413,
1574 >     415,   414,   416,   416,   417,   417,   417,   418,   419,   421,
1575 >     420,   422,   422,   423,   423,   423,   424,   425,   426,   427,
1576 >     427,   428,   428,   429,   431,   430,   432,   432,   433,   433,
1577 >     433,   434,   435,   436,   437,   437,   438,   438,   438,   438,
1578 >     438,   438,   438,   438,   438,   438,   438,   438,   438,   438,
1579 >     438,   438,   438,   438,   438,   438,   438,   438,   438,   438,
1580 >     438,   438,   438,   438,   438,   438,   438,   438,   438,   438,
1581 >     438,   438,   438,   438,   438,   438,   438,   438,   438,   438,
1582 >     438,   438,   438,   438,   439,   440,   441,   442,   443,   444,
1583 >     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1584 >     455,   456,   457,   458,   459,   460,   461,   462,   463,   463,
1585 >     464,   464,   465,   466,   467,   468,   469,   470,   471,   472,
1586 >     473,   474,   475,   476,   477,   478,   479,   480,   482,   481,
1587 >     483,   483,   484,   484,   484,   484,   484,   484,   484,   484,
1588 >     484,   484,   484,   484,   484,   484,   484,   484,   484,   484,
1589 >     484,   484,   484,   486,   485,   487,   487,   488,   488,   488,
1590 >     488,   488,   488,   488,   488,   488,   488,   488,   488,   488,
1591 >     488,   488,   488,   488,   488,   488,   488,   488,   489,   490,
1592 >     491,   492,   493,   493,   494,   494,   494,   494,   494,   494,
1593 >     494,   494,   494,   494,   494,   494,   494,   495,   496,   497,
1594 >     498,   499,   500,   501,   502,   503,   504,   505,   506,   507,
1595 >     508,   508,   509,   509,   509,   509,   509,   509,   509,   509,
1596 >     509,   510,   511,   512,   513,   514,   515,   516,   517
1597   };
1598  
1599   /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
# Line 1735 | Line 1601 | static const yytype_uint8 yyr2[] =
1601   {
1602         0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1603         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1604 <       1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1605 <       3,     3,     3,     3,     0,     1,     2,     3,     3,     3,
1606 <       5,     2,     1,     1,     1,     2,     4,     4,     5,     2,
1741 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1742 <       1,     1,     1,     2,     0,     5,     3,     1,     1,     1,
1743 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1744 <       4,     5,     2,     1,     1,     1,     1,     2,     4,     4,
1604 >       1,     1,     1,     1,     1,     2,     2,     0,     1,     2,
1605 >       3,     3,     3,     3,     3,     3,     3,     0,     1,     2,
1606 >       3,     3,     3,     5,     2,     1,     1,     1,     2,     4,
1607         4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1746       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
1747       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1748       4,     4,     4,     4,     4,     0,     7,     0,     1,     2,
1749       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1608         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1609 <       1,     1,     1,     2,     4,     1,     4,     4,     4,     4,
1610 <       4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1611 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1612 <       1,     1,     1,     1,     4,     4,     4,     4,     4,     4,
1613 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
1614 <       3,     1,     0,     3,     0,     2,     1,     1,     1,     1,
1615 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1616 <       1,     1,     0,     7,     0,     1,     2,     1,     1,     1,
1617 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1618 <       1,     2,     4,     1,     4,     4,     4,     4,     4,     4,
1761 <       4,     4,     4,     4,     4,     4,     0,     6,     0,     5,
1762 <       3,     1,     1,     1,     1,     2,     1,     1,     1,     1,
1763 <       1,     2,     0,     5,     3,     1,     1,     3,     4,     4,
1764 <       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
1609 >       1,     2,     4,     4,     3,     1,     1,     1,     3,     1,
1610 >       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
1611 >       4,     4,     4,     4,     4,     4,     4,     5,     2,     1,
1612 >       1,     1,     1,     2,     4,     4,     4,     0,     6,     2,
1613 >       1,     1,     1,     2,     4,     4,     5,     2,     1,     1,
1614 >       1,     2,     4,     0,     6,     2,     1,     1,     1,     1,
1615 >       2,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1616 >       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1617 >       1,     1,     1,     1,     1,     1,     1,     1,     2,     4,
1618 >       4,     4,     4,     4,     4,     4,     0,     5,     3,     1,
1619         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1766       2,     4,     4,     4,     4,     4,     0,     5,     3,     1,
1767       0,     3,     0,     2,     1,     1,     1,     1,     1,     1,
1768       1,     1,     1,     1,     4,     4,     4,     4,     4,     4,
1769       4,     4,     4,     4,     0,     6,     2,     1,     1,     1,
1770       1,     2,     4,     4,     4,     0,     6,     2,     1,     1,
1771       1,     1,     2,     4,     4,     0,     5,     3,     1,     1,
1620         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1621 <       0,     6,     2,     1,     1,     1,     2,     4,     0,     5,
1774 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1775 <       1,     1,     1,     0,     7,     0,     1,     2,     1,     1,
1621 >       1,     0,     5,     3,     1,     3,     1,     3,     1,     3,
1622         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1623 +       1,     1,     1,     1,     1,     1,     1,     1,     0,     6,
1624 +       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1625         1,     1,     1,     1,     1,     1,     1,     1,     2,     4,
1626 <       1,     4,     4,     4,     4,     4,     4,     4,     4,     0,
1627 <       5,     3,     1,     0,     3,     0,     2,     1,     1,     1,
1628 <       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
1629 <       4,     4,     0,     6,     0,     5,     3,     1,     1,     2,
1630 <       1,     1,     1,     1,     1,     4,     4,     0,     6,     2,
1631 <       1,     1,     1,     1,     4,     4,     5,     2,     1,     1,
1632 <       1,     4,     0,     6,     0,     5,     3,     1,     1,     2,
1633 <       1,     1,     1,     1,     1,     4,     4,     5,     2,     1,
1626 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1627 >       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1628 >       0,     6,     0,     5,     3,     1,     1,     1,     1,     2,
1629 >       1,     1,     1,     1,     1,     2,     0,     5,     3,     1,
1630 >       1,     3,     4,     4,     0,     6,     2,     1,     1,     1,
1631 >       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
1632 >       4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1633 >       1,     1,     1,     1,     1,     4,     4,     4,     0,     6,
1634 >       2,     1,     1,     1,     1,     2,     4,     4,     4,     5,
1635 >       2,     1,     1,     1,     4,     0,     6,     2,     1,     1,
1636 >       1,     1,     2,     4,     4,     0,     5,     3,     1,     1,
1637 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1638 >       6,     2,     1,     1,     1,     2,     4,     0,     5,     3,
1639         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1640 +       1,     0,     6,     2,     1,     1,     1,     1,     1,     1,
1641 +       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
1642 +       4,     4,     4,     4,     4,     4,     4,     4,     4,     0,
1643 +       5,     3,     1,     1,     1,     4,     4,     4,     4,     4,
1644 +       0,     6,     2,     1,     1,     1,     1,     4,     4,     0,
1645 +       6,     2,     1,     1,     1,     1,     4,     4,     5,     2,
1646 +       1,     1,     1,     4,     0,     6,     2,     1,     1,     1,
1647 +       1,     4,     4,     5,     2,     1,     1,     1,     1,     1,
1648         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1649         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1650         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1651         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1652 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1792 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1652 >       1,     1,     1,     1,     4,     4,     4,     4,     4,     4,
1653         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1654         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1655         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1656         4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
1657         3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1658         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1659 <       1,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1800 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1801 <       1,     1,     1,     1,     4,     4,     4,     4,     4,     0,
1802 <       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1803 <       4,     4,     0,     5,     3,     1,     1,     1,     4,     4,
1804 <       0,     5,     3,     1,     1,     1,     5,     2,     1,     1,
1659 >       1,     1,     1,     0,     5,     3,     1,     1,     1,     1,
1660         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1661         1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
1662 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1808 <       4,     4,     4,     4,     4,     4,     5,     2,     1,     1,
1662 >       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1663         1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1664 <       4,     4,     4,     4
1664 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     5,
1665 >       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1666 >       1,     4,     4,     4,     4,     4,     4,     4,     4
1667   };
1668  
1669 < /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1670 <   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
1669 > /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
1670 >   Performed when YYTABLE doesn't specify something else to do.  Zero
1671     means the default is an error.  */
1672   static const yytype_uint16 yydefact[] =
1673   {
1674 <       2,     0,     1,     0,     0,     0,   222,   393,   467,     0,
1675 <     482,     0,   659,   280,   452,   256,     0,     0,   125,   334,
1676 <       0,     0,   345,   370,     3,    23,    11,     4,     5,     6,
1677 <       8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1678 <      22,    20,    21,     7,    12,    24,    25,     0,     0,   224,
1823 <     395,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1824 <       0,   127,     0,     0,     0,     0,     0,     0,     0,     0,
1825 <       0,     0,    83,    84,    86,    85,   707,     0,     0,     0,
1826 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1827 <       0,     0,     0,     0,     0,     0,   688,   706,   701,   689,
1828 <     690,   691,   692,   694,   695,   696,   697,   693,   698,   699,
1829 <     700,   702,   703,   704,   705,   243,     0,   225,   420,     0,
1830 <     396,     0,   480,     0,     0,   478,   479,     0,   556,     0,
1674 >       2,     0,     1,     0,     0,     0,   218,   381,   429,     0,
1675 >     444,     0,   284,   420,   260,     0,   107,   145,   318,     0,
1676 >       0,   359,     0,     0,   335,     3,    23,    11,     4,    24,
1677 >       5,     6,     8,     9,    10,    13,    14,    15,    16,    17,
1678 >      18,    19,    20,    22,    21,     7,    12,    25,    26,     0,
1679         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1680         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1681 +       0,     0,     0,     0,     0,    99,   100,   102,   101,   616,
1682         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1683 <       0,     0,   631,     0,   608,     0,     0,     0,     0,     0,
1683 >       0,     0,     0,   603,   615,   605,   606,   607,   608,   604,
1684 >     609,   610,   611,   612,   613,   614,     0,     0,     0,   442,
1685 >       0,     0,   440,   441,     0,   503,     0,     0,     0,     0,
1686         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1836       0,     0,     0,     0,     0,     0,   499,   555,   550,   551,
1837     548,   552,   553,   549,   510,   500,   501,   539,   502,   503,
1838     504,   505,   506,   507,   508,   509,   544,   511,   512,   513,
1839     514,   554,   516,   521,   517,   519,   518,   533,   534,   520,
1840     522,   523,   524,   525,   527,   526,   515,   529,   538,   540,
1841     541,   530,   531,   546,   547,   543,   532,   528,   536,   537,
1842     535,   542,   545,     0,     0,     0,     0,     0,     0,     0,
1687         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1688 <       0,    93,    94,    95,    98,   105,    99,   103,   100,   101,
1845 <     104,   102,    96,    97,     0,     0,     0,     0,    42,    43,
1846 <      44,   155,     0,   128,     0,   736,     0,     0,     0,     0,
1847 <       0,     0,     0,     0,   728,   729,   730,   734,   731,   733,
1848 <     732,   735,     0,     0,     0,     0,     0,     0,     0,     0,
1849 <      64,     0,     0,     0,     0,     0,    50,    62,    61,    58,
1850 <      51,    60,    54,    55,    56,    52,    59,    57,    53,     0,
1851 <       0,    87,     0,     0,     0,     0,    82,     0,     0,     0,
1688 >       0,     0,   573,     0,   548,     0,     0,     0,     0,     0,
1689         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1690 <       0,     0,     0,     0,     0,     0,   687,     0,     0,   473,
1691 <       0,     0,     0,   470,   471,   472,     0,     0,   477,   494,
1692 <       0,     0,   484,   493,     0,   490,   491,   492,     0,     0,
1690 >       0,     0,     0,     0,   455,   501,   495,   496,   497,   498,
1691 >     499,   494,   466,   456,   457,   458,   459,   460,   461,   462,
1692 >     463,   464,   465,   491,   467,   468,   500,   470,   475,   471,
1693 >     473,   472,   485,   486,   474,   476,   477,   478,   479,   469,
1694 >     481,   482,   483,   502,   492,   493,   490,   484,   480,   488,
1695 >     489,   487,     0,     0,     0,     0,     0,     0,     0,    45,
1696 >      46,    47,     0,     0,     0,   640,     0,     0,     0,     0,
1697 >       0,     0,     0,     0,     0,   631,   632,   633,   634,   635,
1698 >     638,   636,   637,   639,     0,     0,     0,     0,     0,     0,
1699         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1700 +       0,     0,     0,    53,    68,    69,    67,    64,    63,    70,
1701 +      54,    66,    57,    58,    59,    55,    65,    60,    61,    62,
1702 +      56,     0,     0,     0,     0,   118,   119,   120,     0,   333,
1703 +       0,     0,   331,   332,     0,   103,     0,     0,     0,     0,
1704 +      98,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1705 +       0,     0,     0,     0,   602,     0,     0,     0,     0,   254,
1706         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1707 +       0,     0,     0,   221,   222,   225,   227,   228,   229,   230,
1708 +     231,   232,   233,   234,   223,   224,   226,   235,   236,   237,
1709 +       0,     0,     0,     0,     0,     0,     0,   409,     0,     0,
1710 +       0,     0,     0,     0,     0,     0,   384,   385,   386,   387,
1711 +     388,   389,   390,   392,   391,   394,   398,   395,   396,   397,
1712 +     393,   435,     0,     0,     0,   432,   433,   434,     0,     0,
1713 +     439,   450,     0,     0,     0,   447,   448,   449,     0,     0,
1714         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1715         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1716         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1861       0,     0,     0,     0,     0,   498,   669,   680,     0,     0,
1862     672,     0,     0,     0,   662,   663,   664,   665,   666,   667,
1863     668,     0,     0,     0,     0,     0,   306,     0,     0,     0,
1864       0,     0,     0,     0,     0,     0,     0,     0,     0,   283,
1865     284,   285,   294,   286,   299,   287,   288,   289,   290,   297,
1866     291,   292,   293,   295,   296,   298,   464,     0,   454,     0,
1867     463,     0,   460,   461,   462,     0,   258,     0,     0,     0,
1868     268,     0,   266,   267,   269,   270,   106,     0,     0,     0,
1717         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1718 <      92,    45,     0,     0,     0,    41,     0,     0,     0,     0,
1719 <       0,     0,   337,   338,   339,   340,     0,     0,     0,     0,
1720 <       0,     0,     0,     0,   727,    63,     0,     0,     0,     0,
1721 <       0,     0,     0,     0,     0,     0,     0,     0,     0,    49,
1722 <       0,     0,   355,     0,     0,   348,   349,   350,   351,     0,
1723 <       0,   378,     0,   373,   374,   375,     0,     0,     0,    81,
1724 <       0,     0,     0,     0,     0,    26,     0,     0,     0,     0,
1725 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   686,
1718 >       0,     0,     0,     0,     0,     0,   454,     0,     0,     0,
1719 >     301,     0,     0,     0,     0,     0,     0,   287,   288,   289,
1720 >     290,   295,   291,   292,   293,   294,   426,     0,     0,     0,
1721 >     423,   424,   425,     0,     0,     0,   262,     0,   272,     0,
1722 >     270,   271,   273,   274,    48,     0,     0,     0,    44,     0,
1723 >       0,     0,     0,   110,   111,   112,     0,     0,     0,   191,
1724 >       0,     0,     0,     0,   166,     0,     0,   148,   149,   150,
1725 >     151,   154,   155,   156,   153,   152,   157,     0,     0,     0,
1726 >       0,     0,   321,   322,   323,   324,     0,     0,     0,     0,
1727 >       0,     0,     0,     0,     0,   630,    71,     0,     0,     0,
1728         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1729 <       0,     0,     0,     0,     0,   227,   228,   231,   232,   234,
1730 <     235,   236,   237,   238,   239,   240,   229,   230,   233,     0,
1731 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   429,
1729 >       0,     0,     0,     0,     0,    52,     0,     0,   367,     0,
1730 >     362,   363,   364,   121,     0,     0,   117,     0,     0,     0,
1731 >     330,     0,     0,   345,     0,     0,   338,   339,   340,   341,
1732 >       0,     0,     0,    97,     0,     0,     0,     0,    27,     0,
1733 >       0,     0,     0,     0,     0,     0,     0,   601,   238,     0,
1734         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1735 <     398,   399,   400,   401,   402,   403,   405,   404,   406,   407,
1884 <     415,   412,   414,   413,   411,   417,   408,   409,   410,   416,
1885 <       0,     0,     0,   469,     0,   476,     0,     0,     0,     0,
1886 <     489,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1735 >       0,     0,     0,     0,     0,     0,   220,   399,     0,     0,
1736         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1737 +       0,     0,     0,   383,     0,     0,     0,   431,     0,   438,
1738 +       0,     0,     0,   446,     0,     0,     0,     0,     0,     0,
1739         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1740         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1741         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1891       0,     0,     0,    34,     0,     0,     0,     0,     0,     0,
1892     497,     0,     0,     0,     0,     0,     0,     0,   661,   300,
1742         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1743 <       0,     0,     0,     0,     0,     0,     0,   282,     0,     0,
1744 <       0,     0,   459,   271,     0,     0,     0,     0,     0,   265,
1745 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1746 <       0,     0,     0,     0,     0,     0,     0,     0,    91,     0,
1747 <       0,    40,     0,     0,     0,     0,     0,   198,     0,     0,
1748 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1749 <       0,   161,     0,     0,     0,     0,   130,   131,   132,   133,
1750 <     150,   151,   137,   136,   138,   139,   145,   140,   141,   142,
1751 <     143,   144,   146,   147,   148,   134,   135,   149,   152,   341,
1752 <       0,     0,     0,     0,   336,     0,     0,     0,     0,     0,
1753 <       0,     0,   726,     0,     0,     0,     0,     0,     0,     0,
1754 <       0,     0,     0,     0,     0,    48,   352,     0,     0,     0,
1755 <       0,   347,   376,     0,     0,     0,   372,    90,    89,    88,
1756 <     723,   720,   719,   708,   710,    26,    26,    26,    26,    26,
1757 <      28,    27,   714,   715,   718,   716,   721,   722,   724,   725,
1758 <     717,   709,   711,   712,   713,   241,     0,     0,     0,     0,
1759 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1760 <     226,   418,     0,     0,     0,     0,     0,     0,     0,     0,
1761 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1762 <       0,     0,   397,     0,     0,   468,   481,     0,     0,     0,
1763 <     483,   569,   573,   560,   589,   602,   601,   656,   606,   567,
1764 <     658,   598,   604,   568,   558,   559,   576,   565,   597,   566,
1765 <     579,   564,   578,   577,   572,   571,   570,   599,   557,   596,
1766 <     654,   655,   593,   590,   635,   651,   652,   636,   637,   638,
1767 <     639,   646,   640,   649,   653,   642,   647,   643,   648,   641,
1768 <     645,   644,   650,     0,   634,   595,   612,   628,   629,   613,
1769 <     614,   615,   616,   623,   617,   626,   630,   619,   624,   620,
1770 <     625,   618,   622,   621,   627,     0,   611,   588,   591,   605,
1771 <     562,   600,   563,   592,   581,   586,   587,   584,   585,   582,
1772 <     583,   575,   574,    34,    34,    34,    36,    35,   657,   607,
1773 <     594,   603,   561,   580,     0,     0,     0,     0,     0,     0,
1774 <     660,     0,     0,     0,     0,   312,     0,     0,     0,     0,
1775 <       0,     0,     0,     0,     0,     0,     0,   281,     0,     0,
1776 <       0,   453,     0,     0,     0,   276,   272,   275,   257,   110,
1777 <     116,   114,   113,   115,   111,   112,   109,   117,   123,   118,
1778 <     122,   120,   121,   119,   108,   107,   124,    46,    47,   153,
1779 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1780 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1781 <       0,     0,     0,   129,     0,     0,     0,   335,   742,   737,
1782 <     741,   739,   743,   738,   740,    74,    80,    72,    76,    75,
1783 <      71,    70,    68,    69,     0,    67,    73,    79,    77,    78,
1784 <       0,     0,     0,   346,     0,     0,   371,    29,    30,    31,
1785 <      32,    33,     0,     0,     0,     0,     0,     0,     0,     0,
1786 <       0,     0,     0,     0,     0,   223,     0,     0,     0,     0,
1787 <       0,     0,     0,     0,     0,     0,   435,     0,     0,     0,
1788 <       0,     0,     0,     0,     0,     0,   394,   474,   475,   495,
1789 <     496,   488,     0,   487,   632,     0,   609,     0,    37,    38,
1790 <      39,   685,   684,     0,   683,   671,   670,   677,   676,     0,
1791 <     675,   679,   678,   327,   304,   305,   326,   310,     0,   309,
1792 <       0,   329,   325,   324,   333,   328,   302,   332,   331,   330,
1793 <     303,   301,   466,   458,     0,   457,   465,   263,   264,   262,
1794 <       0,   261,   279,   278,     0,     0,     0,     0,     0,     0,
1795 <       0,   204,     0,     0,     0,     0,     0,     0,     0,     0,
1796 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   126,
1797 <     343,   344,   342,    65,     0,   353,   359,   365,   369,   368,
1798 <     367,   364,   360,   363,   366,   361,   362,     0,   358,   354,
1799 <     377,   382,   388,   392,   391,   390,   387,   383,   386,   389,
1800 <     384,   385,     0,   381,   253,   254,   247,   249,   251,   250,
1952 <     248,   242,   255,   246,   244,   245,   252,   424,   426,   427,
1953 <     446,   451,   450,   445,   444,   443,   428,   433,     0,   432,
1954 <       0,   421,   448,   449,   419,   425,   442,   423,   447,   422,
1955 <     485,     0,   633,   610,   681,     0,   673,     0,     0,   307,
1956 <     312,   318,   319,   315,   321,   317,   316,   323,   320,   322,
1957 <     314,   313,   455,     0,   259,     0,   277,   274,   273,   194,
1958 <     160,   192,   158,   202,     0,   201,     0,   190,   184,   195,
1959 <     196,   187,   154,   191,   157,   193,   185,   186,   159,   197,
1960 <     165,   181,   182,   166,   167,   168,   169,   176,   170,   179,
1961 <     183,   172,   177,   173,   178,   171,   175,   174,   180,     0,
1962 <     164,   189,   156,   188,    66,   356,     0,   379,     0,     0,
1963 <     430,   435,   439,   440,   437,   438,   441,   436,   486,   682,
1964 <     674,   311,   308,   456,   260,     0,   199,   204,   214,   212,
1965 <     221,   211,   206,   215,   219,   208,   216,   218,   213,   207,
1966 <     220,   217,   209,   210,   205,   162,     0,   357,   380,   434,
1967 <     431,   203,   200,   163
1743 >       0,     0,     0,   453,   296,     0,     0,     0,     0,     0,
1744 >       0,     0,     0,     0,   286,     0,     0,     0,   422,   275,
1745 >       0,     0,     0,     0,     0,   269,     0,     0,    43,   113,
1746 >       0,     0,     0,   109,   158,     0,     0,     0,     0,     0,
1747 >       0,     0,     0,     0,     0,   147,   325,     0,     0,     0,
1748 >       0,   320,     0,     0,     0,     0,     0,     0,     0,     0,
1749 >     629,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1750 >       0,     0,     0,     0,    76,    77,     0,    75,    80,    81,
1751 >       0,    79,     0,     0,    51,   365,     0,     0,     0,   361,
1752 >       0,   116,     0,     0,   329,   342,     0,     0,     0,     0,
1753 >     337,   106,   105,   104,   624,   623,   617,   627,    27,    27,
1754 >      27,    27,    27,    27,    27,    29,    28,   628,   618,   619,
1755 >     622,   621,   620,   625,   626,     0,     0,     0,     0,     0,
1756 >       0,     0,     0,     0,     0,     0,     0,     0,     0,    37,
1757 >       0,     0,   219,     0,     0,     0,     0,     0,     0,     0,
1758 >       0,     0,     0,     0,     0,     0,     0,     0,   382,     0,
1759 >       0,   430,   443,     0,     0,   445,   515,   519,   533,   600,
1760 >     546,   540,   543,   514,   506,   505,   508,   509,   507,   522,
1761 >     512,   513,   523,   511,   518,   517,   516,   541,   504,   598,
1762 >     599,   537,   583,   577,   594,   578,   579,   580,   588,   597,
1763 >     581,   591,   595,   584,   596,   589,   585,   590,   582,   593,
1764 >     587,   586,   592,     0,   576,   539,   557,   552,   569,   553,
1765 >     554,   555,   563,   572,   556,   566,   570,   559,   571,   564,
1766 >     560,   565,   558,   568,   562,   561,   567,     0,   551,   534,
1767 >     532,   535,   545,   536,   525,   530,   531,   528,   529,   526,
1768 >     527,   544,   547,   510,   538,   521,   520,   542,   524,     0,
1769 >       0,     0,     0,     0,     0,     0,     0,   285,     0,     0,
1770 >     421,     0,     0,     0,   280,   276,   279,   261,    49,    50,
1771 >       0,     0,   108,     0,     0,     0,     0,     0,     0,     0,
1772 >       0,     0,   146,     0,     0,     0,   319,   642,   641,   647,
1773 >     645,   648,   643,   644,   646,    88,    96,    87,    94,    95,
1774 >      86,    90,    89,    83,    82,    84,    93,    85,    72,     0,
1775 >      73,     0,    91,    92,     0,     0,   360,   122,     0,     0,
1776 >       0,   134,     0,   126,   127,   129,   128,   334,     0,     0,
1777 >       0,   336,    30,    31,    32,    33,    34,    35,    36,   249,
1778 >     250,   242,   259,   258,     0,   257,   244,   246,   253,   245,
1779 >     243,   252,   239,   251,   241,   240,    37,    37,    37,    39,
1780 >      38,   247,   248,   404,   407,   408,   418,   415,   401,   416,
1781 >     413,   414,     0,   412,   417,   400,   406,   403,   405,   419,
1782 >     402,   436,   437,   451,   452,   574,     0,   549,     0,   299,
1783 >     300,   309,   306,   311,   307,   308,   314,   310,   312,   305,
1784 >     313,     0,   304,   298,   317,   316,   315,   297,   428,   427,
1785 >     283,   282,   267,   268,   266,     0,   265,     0,     0,     0,
1786 >     114,   115,   165,   162,   210,   198,   207,   206,   196,   201,
1787 >     217,   209,   215,   200,   203,   212,   214,   211,   208,   216,
1788 >     204,   213,   202,   205,     0,   194,   159,   161,   163,   164,
1789 >     175,   170,   187,   171,   172,   173,   181,   190,   174,   184,
1790 >     188,   177,   189,   182,   178,   183,   176,   186,   180,   179,
1791 >     185,     0,   169,   160,   328,   326,   327,    74,    78,   366,
1792 >     371,   377,   380,   373,   379,   374,   378,   376,   372,   375,
1793 >       0,   370,   130,     0,     0,     0,     0,   125,   343,   349,
1794 >     355,   358,   351,   357,   352,   356,   354,   350,   353,     0,
1795 >     348,   344,   255,     0,    40,    41,    42,   410,     0,   575,
1796 >     550,   302,     0,   263,     0,   281,   278,   277,     0,     0,
1797 >       0,   192,     0,   167,     0,   368,     0,     0,     0,     0,
1798 >       0,   124,   346,     0,   256,   411,   303,   264,   197,   195,
1799 >     199,   193,   168,   369,   131,   133,   132,   140,   143,   142,
1800 >     139,   144,   141,   138,     0,   137,   347,   135,     0,   136
1801   };
1802  
1803   /* YYDEFGOTO[NTERM-NUM].  */
1804   static const yytype_int16 yydefgoto[] =
1805   {
1806 <      -1,     1,    24,   900,   901,  1056,  1057,    25,   277,   278,
1807 <     279,   280,    26,   315,   316,   317,   553,  1164,  1165,   318,
1808 <     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
1809 <      27,    71,    72,    73,    74,    75,    28,   260,   261,   262,
1810 <     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
1811 <     273,    29,    61,   282,   825,   826,   827,   283,   828,   829,
1812 <     830,   831,   832,   833,  1138,  1439,  1440,   834,   835,   836,
1813 <     837,   838,   839,   840,   841,   842,   843,   844,   845,   846,
1814 <     847,   848,  1124,  1404,  1405,  1465,  1406,  1484,    30,    49,
1815 <     116,   614,   615,   616,   117,   617,   618,   619,   620,   621,
1816 <     622,   623,   624,   625,   626,   627,   628,    31,    58,   500,
1817 <     774,  1270,  1271,   501,   502,   503,  1276,  1096,  1097,   504,
1818 <     505,    32,    56,   468,   469,   470,   471,   472,   473,   474,
1819 <     475,   754,  1248,  1249,  1378,  1250,  1391,   476,   477,   478,
1820 <     479,   480,   481,   482,   483,   484,   485,    33,    62,   531,
1821 <     532,   533,   534,   535,    34,    65,   564,   565,   566,   567,
1822 <     568,   878,  1317,  1318,    35,    66,   572,   573,   574,   575,
1823 <     884,  1332,  1333,    36,    50,   119,   649,   650,   651,   120,
1824 <     652,   653,   654,   655,   656,   657,   658,   659,   941,  1358,
1825 <    1359,  1449,  1360,  1457,   660,   661,   662,   663,   664,   665,
1826 <     666,   667,   668,   669,    37,    57,   490,   769,  1264,  1265,
1827 <     491,   492,   493,   494,    38,    51,   362,   363,   364,   365,
1828 <      39,   124,   125,   126,    40,    53,   373,   678,  1222,  1223,
1829 <     374,   375,   376,   377,    41,   185,   186,   187,   188,   189,
1830 <     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1831 <     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1832 <     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1833 <     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
1834 <     230,   231,   232,   233,   234,   235,   236,   413,  1035,  1036,
2002 <     237,   411,  1013,  1014,   238,   239,   240,   241,   242,    42,
2003 <      55,   443,   444,   445,   446,   447,   744,  1239,  1240,   448,
2004 <     449,   450,   741,  1233,  1234,    43,    95,    96,    97,    98,
2005 <      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
2006 <     109,   110,   111,   112,   113,   114,    44,   293,   294,   295,
2007 <     296,   297,   298,   299,   300,   301
1806 >      -1,     1,    25,   805,   806,  1059,  1060,    26,   218,   219,
1807 >     220,   221,    27,   262,   263,   264,   265,   766,   767,   770,
1808 >     771,   266,   267,   268,   269,   270,   271,   272,   273,   274,
1809 >     275,   276,   277,   278,   279,   280,    28,    74,    75,    76,
1810 >      77,    78,    29,    61,   492,   493,   494,   495,    30,   284,
1811 >     285,   286,   287,   288,  1022,  1023,  1024,  1025,  1026,  1195,
1812 >    1264,  1265,    31,    62,   506,   507,   508,   509,   510,   511,
1813 >     512,   513,   514,   515,   732,  1171,  1172,   516,   727,  1144,
1814 >    1145,    32,    51,   332,   333,   334,   335,   336,   337,   338,
1815 >     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
1816 >     349,   602,  1044,  1045,    33,    59,   478,   712,  1115,  1116,
1817 >     479,   480,   481,  1119,   965,   966,   482,   483,    34,    57,
1818 >     456,   457,   458,   459,   460,   461,   462,   697,  1101,  1102,
1819 >     463,   464,   465,    35,    63,   521,   522,   523,   524,   525,
1820 >      36,   291,   292,   293,    37,    69,   575,   576,   577,   578,
1821 >     579,   787,  1209,  1210,    38,    66,   559,   560,   561,   562,
1822 >     777,  1190,  1191,    39,    52,   365,   366,   367,   368,   369,
1823 >     370,   371,   372,   373,   374,   375,   624,  1072,  1073,   376,
1824 >     377,   378,   379,   380,    40,    58,   469,   470,   471,   472,
1825 >      41,    53,   384,   385,   386,   387,    42,   111,   112,   113,
1826 >      43,    55,   394,   395,   396,   397,    44,   163,   164,   165,
1827 >     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1828 >     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1829 >     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1830 >     196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1831 >     206,   207,   426,   927,   928,   208,   424,   903,   904,   209,
1832 >     210,   211,    45,    92,    93,    94,    95,    96,    97,    98,
1833 >      99,   100,   101,   102,   103,   104,   105,    46,   234,   235,
1834 >     236,   237,   238,   239,   240,   241,   242,   243
1835   };
1836  
1837   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1838     STATE-NUM.  */
1839 < #define YYPACT_NINF -952
1839 > #define YYPACT_NINF -736
1840   static const yytype_int16 yypact[] =
1841   {
1842 <    -952,   888,  -952,  -233,  -260,  -258,  -952,  -952,  -952,  -255,
1843 <    -952,  -253,  -952,  -952,  -952,  -952,  -250,  -237,  -952,  -952,
1844 <    -228,  -226,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1845 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1846 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,   302,   766,  -136,
1847 <    -112,  -199,    17,  -193,   475,  -190,  -187,  -173,  -167,   702,
1848 <       2,   -46,  -149,   361,   520,  -140,  -134,  -130,  -121,  -102,
1849 <     -84,     4,  -952,  -952,  -952,  -952,  -952,   -82,   -77,   -62,
1850 <     -57,   -51,   -33,   -30,   -25,   -16,    -5,    -4,    20,    24,
1851 <      37,    40,    46,    49,    59,   286,  -952,  -952,  -952,  -952,
1852 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1853 <    -952,  -952,  -952,  -952,  -952,  -952,    36,  -952,  -952,    63,
1854 <    -952,    19,  -952,    70,     7,  -952,  -952,   159,  -952,    71,
1855 <      76,    79,    84,    91,    98,   104,   105,   107,   108,   109,
1856 <     112,   113,   114,   116,   117,   118,   121,   125,   126,   130,
1857 <     132,   136,   140,   142,   144,   146,   148,   153,   155,   157,
1858 <     161,   164,  -952,   165,  -952,   169,   170,   171,   172,   173,
1859 <     181,   184,   185,   194,   196,   198,   199,   200,   201,   204,
1860 <     206,   209,   210,   212,   213,    23,  -952,  -952,  -952,  -952,
1861 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1862 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1863 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1864 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1865 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1866 <    -952,  -952,  -952,   552,   784,    93,    88,   217,   215,   216,
1867 <     220,   224,   225,   226,   227,   231,   232,   234,   235,   239,
1868 <     133,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1869 <    -952,  -952,  -952,  -952,   243,   241,   245,    27,  -952,  -952,
1870 <    -952,  -952,   247,  -952,    25,  -952,   248,   250,   252,   259,
1871 <     260,   261,   266,    45,  -952,  -952,  -952,  -952,  -952,  -952,
1872 <    -952,  -952,   271,   269,   270,   272,   276,   278,   279,   280,
1873 <    -952,   281,   285,   289,   290,   303,  -952,  -952,  -952,  -952,
1874 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,    56,
1875 <      62,  -952,   357,   381,   396,   296,  -952,   363,   434,   436,
1876 <     374,   375,   444,   444,   449,   450,   387,   390,   462,   444,
1877 <     397,   400,   403,   404,   405,   318,  -952,   634,   703,  -952,
1878 <     342,   343,    15,  -952,  -952,  -952,   454,   348,  -952,  -952,
1879 <     346,   353,  -952,  -952,   158,  -952,  -952,  -952,   414,   444,
1880 <     421,   444,   494,   476,   497,   433,   435,   437,   500,   483,
1881 <     440,   510,   513,   514,   451,   444,   452,   453,   516,   499,
1882 <     461,   529,   530,   444,   533,   542,   512,   543,   546,   481,
1883 <     482,   417,   484,   419,   444,   444,   486,   444,   536,   489,
1884 <     493,   495,  -150,  -141,   496,   498,   444,   444,   560,   444,
1885 <     501,   503,   509,   511,   455,  -952,  -952,  -952,   446,   456,
1886 <    -952,   457,   459,    44,  -952,  -952,  -952,  -952,  -952,  -952,
1887 <    -952,   463,   467,   468,   485,   487,  -952,   490,   506,   507,
1888 <     508,   519,   524,   526,   527,   531,   532,   544,   160,  -952,
1889 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1890 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,   548,  -952,   550,
1891 <    -952,    12,  -952,  -952,  -952,   465,  -952,   551,   553,   554,
1892 <    -952,    14,  -952,  -952,  -952,  -952,  -952,   557,   559,   561,
1893 <     564,   585,   586,   591,   592,   230,   596,   613,   577,   537,
1894 <    -952,  -952,   640,   643,   549,  -952,   574,   555,   556,   562,
1895 <     563,    32,  -952,  -952,  -952,  -952,   623,   630,   631,   665,
1896 <     632,   633,   444,   575,  -952,  -952,   681,   639,   685,   688,
1897 <     689,   690,   691,   582,   693,   565,   694,   695,   589,  -952,
1898 <     590,   593,  -952,   594,     9,  -952,  -952,  -952,  -952,   601,
1899 <     607,  -952,    33,  -952,  -952,  -952,   604,   614,   615,  -952,
1900 <     616,   619,   620,   624,   625,   189,   628,   629,   635,   636,
1901 <     637,   638,   641,   642,   644,   646,   647,   651,   654,  -952,
1902 <     656,   610,   618,   627,   655,   660,   661,   662,   663,   664,
1903 <     667,   669,   670,   671,   223,  -952,  -952,  -952,  -952,  -952,
1904 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,   657,
1905 <     672,   673,   674,   676,   679,   680,   683,   684,   686,  -952,
1906 <     687,   696,   697,   699,   700,   701,   704,   705,   706,   238,
1907 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1908 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1909 <     730,   741,   659,  -952,   668,  -952,   746,   747,   707,   711,
1910 <    -952,   712,   713,   716,   717,   719,   720,   721,   722,   723,
1911 <     724,   725,   726,   727,   729,   731,   732,   733,   734,   735,
1912 <     736,   737,   738,   739,   740,   742,   743,   744,   745,   748,
1913 <     749,   750,   751,   752,   815,   753,   871,   754,   755,   767,
1914 <     771,   774,   775,   776,   777,   778,   779,   780,   781,   782,
1915 <     786,   790,   791,   315,   793,   794,   796,   797,   798,   800,
1916 <    -952,   799,   444,   756,   801,   795,   803,   805,  -952,  -952,
1917 <     760,   812,   769,   804,   807,   809,   864,   866,   869,   870,
1918 <     918,   566,   919,   927,   886,   934,   828,  -952,   937,   829,
1919 <     938,   833,  -952,  -952,   831,   942,   943,   772,   837,  -952,
1920 <     838,   842,   846,   847,   849,   850,   857,   860,   865,   867,
1921 <     868,   872,   873,   874,   875,   879,   883,   884,  -952,   887,
1922 <     889,  -952,   890,   861,   891,   892,   893,  -952,   894,   895,
1923 <     896,   897,   898,   899,   900,   901,   902,   903,   904,   905,
1924 <     906,  -952,   907,   909,   910,   149,  -952,  -952,  -952,  -952,
1925 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1926 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1927 <     976,   977,   978,   911,  -952,   914,   915,   916,   917,   920,
1928 <     921,   922,  -952,   923,   924,   925,   926,   928,   929,   930,
1929 <     -15,   931,   932,   933,   935,  -952,  -952,   993,   936,   998,
1930 <     940,  -952,  -952,   999,   939,   941,  -952,  -952,  -952,  -952,
1931 <    -952,  -952,  -952,  -952,  -952,   444,   444,   444,   444,   444,
1932 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1933 <    -952,  -952,  -952,  -952,  -952,  -952,   813,  1022,   444,  1047,
1934 <    1048,  1056,  1063,  1043,  1066,  1067,   444,   444,   560,   944,
1935 <    -952,  -952,  1050,   -13,  1008,  1053,  1054,  1011,  1012,  1013,
1936 <    1058,   949,  1060,  1061,  1062,  1064,  1085,  1065,  1068,  1023,
1937 <    1069,   959,  -952,   963,   964,  -952,  -952,   965,   966,  1070,
1938 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1939 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1940 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1941 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1942 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1943 <    -952,  -952,  -952,  -245,  -952,  -952,  -952,  -952,  -952,  -952,
1944 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1945 <    -952,  -952,  -952,  -952,  -952,  -202,  -952,  -952,  -952,  -952,
1946 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1947 <    -952,  -952,  -952,   560,   560,   560,  -952,  -952,  -952,  -952,
1948 <    -952,  -952,  -952,  -952,     1,   967,   969,    11,   970,   971,
1949 <    -952,   972,   973,   974,   975,  1106,   979,   980,   981,   982,
1950 <     983,   984,   985,   986,   987,   988,   989,  -952,   990,  1079,
1951 <     991,  -952,     0,   992,   994,   650,   995,  -952,  -952,  -952,
1952 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1953 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1954 <    1041,  1100,  1059,  1071,   997,  1072,  1073,  1074,  1075,  1076,
1955 <    1102,  1077,  1104,  1078,  1080,  1081,  1105,  1082,  1000,  1083,
1956 <    1108,  1084,  1002,  -952,  1004,  1005,  1006,  -952,  -952,  -952,
1957 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1958 <    -952,  -952,  -952,  -952,  -174,  -952,  -952,  -952,  -952,  -952,
1959 <    1007,   534,  1016,  -952,  1024,   621,  -952,  -952,  -952,  -952,
1960 <    -952,  -952,  1025,  1026,  1027,  1028,  1029,  1030,  1031,  1032,
1961 <    1033,  1034,  1035,  1036,  1037,  -952,  1038,  1039,  1040,  1042,
1962 <    1044,  1045,  1046,  1049,  1051,  1052,  1152,  1055,  1057,  1086,
1963 <    1087,  1088,  1089,  1090,  1091,  1092,  -952,  -952,  -952,  -952,
1964 <    -952,  -952,  -148,  -952,  -952,   815,  -952,   871,  -952,  -952,
1965 <    -952,  -952,  -952,  -145,  -952,  -952,  -952,  -952,  -952,  -129,
1966 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -117,  -952,
1967 <     447,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1968 <    -952,  -952,  -952,  -952,   -35,  -952,  -952,  -952,  -952,  -952,
2142 <     -10,  -952,  -952,  -952,  1170,   772,  1093,  1094,  1095,  1096,
2143 <    1097,  1153,  1098,  1099,  1101,  1103,  1107,  1109,  1110,  1111,
2144 <    1112,  1113,  1114,  1115,  1116,   908,  1117,  1118,  1119,  -952,
2145 <    -952,  -952,  -952,  -952,   -15,  -952,  -952,  -952,  -952,  -952,
2146 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,    -8,  -952,  -952,
2147 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2148 <    -952,  -952,    35,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2149 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2150 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,    80,  -952,
2151 <      13,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2152 <    -952,  1070,  -952,  -952,  -952,     1,  -952,    11,   447,  -952,
2153 <    1106,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2154 <    -952,  -952,  -952,  1079,  -952,     0,  -952,  -952,  -952,  -952,
2155 <    -952,  -952,  -952,  -952,    89,  -952,   366,  -952,  -952,  -952,
2156 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2157 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2158 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,    95,
2159 <    -952,  -952,  -952,  -952,  -952,  -952,   534,  -952,   621,    13,
2160 <    -952,  1152,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2161 <    -952,  -952,  -952,  -952,  -952,   366,  -952,  1153,  -952,  -952,
2162 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2163 <    -952,  -952,  -952,  -952,  -952,  -952,   908,  -952,  -952,  -952,
2164 <    -952,  -952,  -952,  -952
1842 >    -736,   630,  -736,  -163,  -195,  -186,  -736,  -736,  -736,  -184,
1843 >    -736,  -174,  -736,  -736,  -736,  -172,  -736,  -736,  -736,  -148,
1844 >    -145,  -736,  -143,  -138,  -736,  -736,  -736,  -736,  -736,  -736,
1845 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1846 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,   311,
1847 >     925,  -125,   -92,   -71,    25,   -58,   424,   -53,   -50,   -38,
1848 >      49,   -22,   -20,     2,   622,   338,    27,     9,    26,    39,
1849 >    -131,   -16,    51,    70,     8,  -736,  -736,  -736,  -736,  -736,
1850 >      72,    74,    76,    80,    83,    98,   100,   103,   104,   110,
1851 >     116,   118,   325,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1852 >    -736,  -736,  -736,  -736,  -736,  -736,   650,   352,   189,  -736,
1853 >     122,    15,  -736,  -736,    65,  -736,   123,   127,   129,   131,
1854 >     132,   133,   134,   136,   137,   139,   140,   141,   143,   144,
1855 >     148,   150,   151,   152,   153,   155,   156,   158,   159,   160,
1856 >     161,   164,  -736,   165,  -736,   166,   170,   171,   178,   183,
1857 >     185,   188,   190,   191,   192,   194,   199,   205,   206,   207,
1858 >     210,   213,   214,   107,  -736,  -736,  -736,  -736,  -736,  -736,
1859 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1860 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1861 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1862 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1863 >    -736,  -736,   475,     6,   278,    48,   215,   216,    46,  -736,
1864 >    -736,  -736,    11,   489,    17,  -736,   218,   220,   221,   224,
1865 >     225,   228,   229,   230,     7,  -736,  -736,  -736,  -736,  -736,
1866 >    -736,  -736,  -736,  -736,   124,   231,   233,   235,   236,   239,
1867 >     247,   248,   250,   252,   257,   258,   259,   262,   268,   269,
1868 >     270,   271,    21,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1869 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1870 >    -736,    35,   281,   276,    18,  -736,  -736,  -736,   120,  -736,
1871 >     282,    62,  -736,  -736,     5,  -736,   291,   294,   380,   287,
1872 >    -736,   411,   413,   315,   417,   418,   418,   418,   419,   420,
1873 >     421,   323,   334,   322,  -736,   324,   320,   326,   327,  -736,
1874 >     330,   333,   335,   336,   337,   340,   341,   344,   346,   347,
1875 >     353,   356,   186,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1876 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1877 >     328,   358,   360,   361,   362,   363,   364,  -736,   367,   370,
1878 >     371,   372,   375,   377,   383,   279,  -736,  -736,  -736,  -736,
1879 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1880 >    -736,  -736,   384,   385,    22,  -736,  -736,  -736,   439,   389,
1881 >    -736,  -736,   387,   388,    20,  -736,  -736,  -736,   400,   418,
1882 >     418,   458,   410,   511,   497,   431,   418,   433,   513,   518,
1883 >     418,   519,   435,   436,   445,   418,   520,   521,   418,   548,
1884 >     552,   553,   554,   456,   450,   465,   453,   477,   418,   418,
1885 >     478,   481,   482,  -182,  -139,   483,   486,   560,   418,   490,
1886 >     491,   418,   418,   493,   494,   459,  -736,   479,   480,   484,
1887 >    -736,   495,   496,   500,   501,   502,    32,  -736,  -736,  -736,
1888 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,   507,   509,    45,
1889 >    -736,  -736,  -736,   485,   512,   515,  -736,   517,  -736,    10,
1890 >    -736,  -736,  -736,  -736,  -736,   580,   584,   514,  -736,   522,
1891 >     530,   534,    14,  -736,  -736,  -736,   524,   535,   536,  -736,
1892 >     537,   538,   539,   540,  -736,   541,    12,  -736,  -736,  -736,
1893 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,   545,   544,   549,
1894 >     550,     4,  -736,  -736,  -736,  -736,   503,   533,   565,   598,
1895 >     568,   571,   572,   418,   556,  -736,  -736,   599,   574,   602,
1896 >     638,   675,   661,   662,   663,   664,   665,   666,   682,   669,
1897 >     -98,    59,   672,   673,   573,  -736,   575,   569,  -736,    89,
1898 >    -736,  -736,  -736,  -736,   591,   576,  -736,   577,   679,   578,
1899 >    -736,   581,   582,  -736,   583,    19,  -736,  -736,  -736,  -736,
1900 >     587,   588,   596,  -736,   600,   604,   607,   608,   579,   612,
1901 >     614,   615,   616,   617,   619,   620,   621,  -736,  -736,   700,
1902 >     716,   418,   623,   719,   742,   418,   744,   746,   418,   686,
1903 >     747,   748,   418,   750,   750,   628,  -736,  -736,   751,   121,
1904 >     753,   660,   754,   758,   637,   760,   761,   763,   762,   765,
1905 >     766,   767,   648,  -736,   771,   773,   674,  -736,   684,  -736,
1906 >     774,   775,   688,  -736,   690,   692,   693,   695,   696,   703,
1907 >     704,   705,   707,   708,   709,   713,   715,   718,   721,   724,
1908 >     726,   727,   729,   731,   732,   733,   734,   735,   736,   739,
1909 >     657,   740,   701,   741,   743,   749,   752,   755,   756,   757,
1910 >     759,   764,   768,   769,   770,   776,   777,   781,   782,   783,
1911 >     784,   785,   786,  -736,  -736,   802,   678,   772,   821,   792,
1912 >     840,   844,   846,   787,  -736,   847,   848,   788,  -736,  -736,
1913 >     849,   850,   789,   867,   790,  -736,   791,   793,  -736,  -736,
1914 >     853,   855,   794,  -736,  -736,   856,   778,   795,   860,   862,
1915 >     864,   865,   796,   869,   797,  -736,  -736,   875,   876,   891,
1916 >     800,  -736,   801,   803,   806,   807,   808,   809,   810,   811,
1917 >    -736,   812,   813,   814,   815,   816,   817,   818,   819,   820,
1918 >     822,   823,   824,   825,  -736,  -736,  -194,  -736,  -736,  -736,
1919 >    -187,  -736,   826,   827,  -736,  -736,   897,   799,   828,  -736,
1920 >     829,  -736,    66,   830,  -736,  -736,   898,   831,   923,   832,
1921 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,   418,   418,
1922 >     418,   418,   418,   418,   418,  -736,  -736,  -736,  -736,  -736,
1923 >    -736,  -736,  -736,  -736,  -736,   833,   835,   836,   -36,   837,
1924 >     838,   839,   841,   842,   843,   845,   851,   852,   854,   265,
1925 >     857,   858,  -736,   859,   861,   863,   866,   868,   870,   871,
1926 >      16,   872,   873,   874,   877,   878,   879,   880,  -736,   881,
1927 >     882,  -736,  -736,   883,   884,  -736,  -736,  -736,  -736,  -736,
1928 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1929 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1930 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1931 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1932 >    -736,  -736,  -736,  -171,  -736,  -736,  -736,  -736,  -736,  -736,
1933 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1934 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -155,  -736,  -736,
1935 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1936 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,   885,
1937 >     886,   275,   887,   888,   889,   890,   892,  -736,   893,   894,
1938 >    -736,   895,   896,     0,   901,   899,  -736,  -736,  -736,  -736,
1939 >     900,   902,  -736,   904,   905,   476,   906,   907,   908,   909,
1940 >     745,   910,  -736,   911,   912,   913,  -736,  -736,  -736,  -736,
1941 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1942 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,   -98,
1943 >    -736,    59,  -736,  -736,   914,   393,  -736,  -736,   915,   916,
1944 >     917,  -736,    75,  -736,  -736,  -736,  -736,  -736,   918,   738,
1945 >     921,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1946 >    -736,  -736,  -736,  -736,  -133,  -736,  -736,  -736,  -736,  -736,
1947 >    -736,  -736,  -736,  -736,  -736,  -736,   750,   750,   750,  -736,
1948 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1949 >    -736,  -736,  -124,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1950 >    -736,  -736,  -736,  -736,  -736,  -736,   657,  -736,   701,  -736,
1951 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1952 >    -736,  -104,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1953 >    -736,  -736,  -736,  -736,  -736,   -68,  -736,   948,   867,   922,
1954 >    -736,  -736,  -736,  -736,  -736,   919,  -736,  -736,   920,  -736,
1955 >    -736,  -736,  -736,   924,  -736,  -736,  -736,  -736,  -736,  -736,
1956 >    -736,  -736,  -736,  -736,   -43,  -736,  -736,  -736,  -736,  -736,
1957 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1958 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1959 >    -736,   -30,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1960 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1961 >     -21,  -736,  -736,   942,   -90,   927,   926,  -736,  -736,  -736,
1962 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,   -15,
1963 >    -736,  -736,  -736,   -36,  -736,  -736,  -736,  -736,    16,  -736,
1964 >    -736,  -736,   275,  -736,     0,  -736,  -736,  -736,   940,   943,
1965 >     944,  -736,   476,  -736,   745,  -736,   393,   928,   931,   932,
1966 >     516,  -736,  -736,   738,  -736,  -736,  -736,  -736,  -736,  -736,
1967 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1968 >    -736,  -736,  -736,  -736,    61,  -736,  -736,  -736,   516,  -736
1969   };
1970  
1971   /* YYPGOTO[NTERM-NUM].  */
1972   static const yytype_int16 yypgoto[] =
1973   {
1974 <    -952,  -952,  -952,  -816,  -342,  -951,  -426,  -952,  -952,   578,
1975 <    -952,  -952,  -952,  -952,   541,  -952,  -952,  -952,     5,  -952,
1976 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1977 <    -952,  -952,  1234,  -952,  -952,  -952,  -952,  -952,  1122,  -952,
1978 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1979 <    -952,  -952,  -952,  -952,  -952,   491,  -952,  -952,  -952,  -952,
1980 <    -952,  -952,  -952,  -952,  -952,  -952,  -176,  -952,  -952,  -952,
1981 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1982 <    -952,  -952,  -952,  -952,  -155,  -952,  -952,  -147,  -952,  -952,
1983 <    -952,  -952,   708,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1984 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1985 <    -952,  -952,   -80,  -952,   819,  -952,  -952,  -952,    48,  -952,
1986 <    -952,  -952,  -952,  -952,   853,  -952,  -952,  -952,  -952,  -952,
1987 <    -952,  -952,  -952,   -56,  -952,  -952,   -53,  -952,  -952,  -952,
1988 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1989 <     802,  -952,  -952,  -952,  -952,  -952,  -952,   762,  -952,  -952,
1990 <    -952,  -952,  -952,  -119,  -952,  -952,  -952,   757,  -952,  -952,
1991 <    -952,  -952,  -120,  -952,  -952,  -952,  -952,   682,  -952,  -952,
1992 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1993 <    -116,  -952,  -952,  -115,  -952,  -952,  -952,  -952,  -952,  -952,
1994 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,   -63,
1995 <    -952,   841,  -952,  -952,  -952,  -952,  -952,  1021,  -952,  -952,
1996 <    -952,  -952,  1212,  -952,  -952,  -952,  -952,  -952,  -952,   -34,
1997 <    -952,   968,  -952,  -952,  -952,  -952,  1154,  -952,  -952,  -952,
1998 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1999 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2000 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2001 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2002 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,   111,
2199 <    -952,  -952,  -952,   115,  -952,  -952,  -952,  -952,  -952,  -952,
2200 <    -952,  -952,   945,  -952,  -952,  -952,  -952,  -952,   -36,  -952,
2201 <    -952,  -952,  -952,  -952,   -32,  -952,  -952,  1249,  -952,  -952,
2202 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2203 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  1120,  -952,
2204 <    -952,  -952,  -952,  -952,  -952,  -952
1974 >    -736,  -736,  -736,   -48,  -303,  -735,  -613,  -736,  -736,   903,
1975 >    -736,  -736,  -736,  -736,   929,  -736,  -736,  -736,    64,  -736,
1976 >      63,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1977 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,   996,  -736,
1978 >    -736,  -736,  -736,  -736,  -736,   585,  -736,  -736,  -736,  -736,
1979 >     804,  -736,  -736,  -736,  -736,    57,  -736,  -736,  -736,  -736,
1980 >    -736,  -188,  -736,  -736,  -736,   593,  -736,  -736,  -736,  -736,
1981 >    -736,  -736,  -736,  -736,  -736,  -736,  -150,  -736,  -736,  -736,
1982 >    -146,  -736,  -736,  -736,   834,  -736,  -736,  -736,  -736,  -736,
1983 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1984 >    -736,  -736,  -736,  -122,  -736,  -736,  -736,  -736,  -736,  -135,
1985 >    -736,   643,  -736,  -736,  -736,   -25,  -736,  -736,  -736,  -736,
1986 >    -736,   644,  -736,  -736,  -736,  -736,  -736,  -736,  -736,   -99,
1987 >    -736,  -736,  -736,  -736,  -736,  -736,   626,  -736,  -736,  -736,
1988 >    -736,  -736,   930,  -736,  -736,  -736,  -736,   566,  -736,  -736,
1989 >    -736,  -736,  -736,  -118,  -736,  -736,  -736,   592,  -736,  -736,
1990 >    -736,  -736,   -96,  -736,  -736,  -736,   798,  -736,  -736,  -736,
1991 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,   -61,  -736,
1992 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,   689,  -736,  -736,
1993 >    -736,  -736,  -736,   780,  -736,  -736,  -736,  -736,  1048,  -736,
1994 >    -736,  -736,  -736,   779,  -736,  -736,  -736,  -736,   997,  -736,
1995 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1996 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1997 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1998 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1999 >    -736,  -736,  -736,  -736,    73,  -736,  -736,  -736,    79,  -736,
2000 >    -736,  -736,  -736,  -736,  1070,  -736,  -736,  -736,  -736,  -736,
2001 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,   933,
2002 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736
2003   };
2004  
2005   /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
2006     positive, shift that token.  If negative, reduce the rule which
2007 <   number is the opposite.  If zero, do what YYDEFACT says.
2008 <   If YYTABLE_NINF, syntax error.  */
2009 < #define YYTABLE_NINF -1
2212 < static const yytype_uint16 yytable[] =
2007 >   number is the opposite.  If YYTABLE_NINF, syntax error.  */
2008 > #define YYTABLE_NINF -124
2009 > static const yytype_int16 yytable[] =
2010   {
2011 <     586,   587,   734,   274,    47,    67,    48,   593,   122,    52,
2012 <     560,    54,  1231,   486,    59,   495,   359,  1224,   122,   115,
2013 <     359,  1225,  1237,  1452,   128,  1453,   527,    60,   274,    45,
2014 <      46,   129,   130,   527,   569,   131,    63,   682,    64,   684,
2015 <    1454,    68,   132,   118,  1455,   436,   285,   528,   437,   725,
2016 <     726,   133,    69,   698,   528,   134,   135,   560,   727,   728,
2017 <    1226,   706,   136,   569,  1227,   121,   137,   138,   139,   496,
2018 <     140,   127,   717,   718,   243,   720,   141,   244,  1267,  1177,
2019 <    1178,  1179,  1180,  1181,   731,   732,   286,   735,  1303,   495,
2020 <     438,   245,  1304,   439,   486,   142,   143,   246,   123,   497,
2021 <     144,   287,  1228,  1229,  1230,   498,   360,   145,   123,   281,
2022 <     360,   146,   147,   148,  1370,   284,   149,  1374,  1371,   150,
2023 <     151,  1375,   275,   288,   329,   289,    70,   290,   291,   152,
2024 <     330,   561,   331,  1376,   247,   153,   154,  1377,   155,   156,
2025 <     157,   158,   159,   496,   332,  1379,   292,   275,   440,  1380,
2026 <     802,   529,   276,   160,   803,   570,  1162,  1163,   529,   369,
2027 <     369,   451,   161,   333,   162,   163,   441,   164,   499,   487,
2028 <     165,   166,   361,   497,   167,   804,   361,   276,   561,   498,
2029 <     452,   334,   530,   337,   570,   168,   453,   805,   338,   530,
2030 <     248,   249,   250,   251,   252,   253,   254,   255,   562,   806,
2031 <     861,   488,  1232,   339,   807,  1197,  1198,   169,   340,   170,
2032 <     454,   455,  1238,   171,   341,   456,   808,   172,   173,   174,
2033 <     175,   176,   571,   809,   600,   177,   178,  1392,   810,   457,
2034 <     811,  1393,   342,  1268,   179,   343,   458,  1269,   256,   629,
2035 <     344,   630,   499,   812,   631,   562,   601,   602,   632,   345,
2036 <     487,   571,  1394,   603,  1445,   459,  1395,  1456,  1446,   563,
2037 <     346,   347,   489,   633,   634,   635,   180,   335,   181,   636,
2038 <     367,   813,   880,   257,   182,   771,   814,   778,   672,   183,
2039 <     370,   370,   488,   460,   184,   348,   434,    76,   637,   349,
2040 <     524,   461,   638,   639,   442,   853,   885,  1447,   815,    77,
2041 <     357,  1448,   350,    67,   302,   351,   563,   747,   543,   462,
2042 <     816,   352,   817,   818,   353,   371,   371,   819,   463,   464,
2043 <      78,    79,   585,   640,   354,   641,    80,   358,    81,  1053,
2044 <    1054,  1055,   604,   605,   606,   366,   378,   607,   642,    68,
2045 <     303,   379,  1450,   489,   380,   608,  1451,   372,   372,   381,
2046 <      69,  1466,   465,   466,   258,  1467,   382,  1485,   609,   610,
2047 <     643,  1486,   285,   383,   895,   896,   897,   898,   899,   384,
2048 <     385,  1468,   386,   387,   388,   611,   612,   389,   390,   391,
2049 <     820,   392,   393,   394,    82,    83,   395,   821,   259,   304,
2050 <     396,   397,   644,    84,    85,   398,   519,   399,   822,   823,
2051 <    1065,   400,   286,   613,  1469,   401,   645,   402,   824,   403,
2052 <     467,   404,  1142,   405,    86,    87,  1470,   287,   406,   646,
2053 <     407,   679,   408,   766,    70,   305,   409,   306,   307,   410,
2054 <     412,    88,    89,  1471,   414,   415,   416,   417,   418,   288,
2055 <    1472,   289,    90,   290,   291,  1473,   419,  1474,   733,   420,
2056 <     421,    91,   788,   789,   790,   791,   792,   793,   794,   422,
2057 <    1475,   423,   292,   424,   425,   426,   427,  1381,  1382,   428,
2058 <     308,   429,   309,   310,   430,   431,   128,   432,   433,   506,
2059 <     507,   508,   647,   129,   130,   509,   929,   131,   311,   510,
2060 <     511,   512,   513,  1476,   132,   648,   514,   515,  1383,   516,
2061 <     517,   951,  1194,   133,   518,   521,   522,   134,   135,  1477,
2062 <     523,   526,   576,   536,   136,   537,  1384,   538,   137,   138,
2063 <     139,   302,   140,  1385,   539,   540,   541,  1478,   141,  1479,
2064 <    1480,   542,   312,   545,   546,   547,   577,   548,    92,    93,
2065 <      94,   549,  1386,   550,   551,   552,   554,   142,   143,   355,
2066 <     555,   578,   144,   436,   556,   557,   437,   303,   579,   145,
2067 <     313,   314,   580,   146,   147,   148,   558,   581,   149,   582,
2068 <    1387,   150,   151,   583,   584,   802,  1184,   585,  1388,   803,
2069 <     599,   152,   588,   589,  1192,  1193,   590,   153,   154,   591,
2070 <     155,   156,   157,   158,   159,   592,   594,  1481,   438,   595,
2071 <     804,   439,   596,   597,   598,   160,   304,   670,   671,   674,
2072 <     675,   676,   805,   681,   161,  1482,   162,   163,   677,   164,
2073 <     683,  1389,   165,   166,   806,  1483,   167,   685,  1306,   807,
2074 <     687,   686,   688,   691,   689,   600,   690,   168,   692,   693,
2075 <    1390,   808,   305,   694,   306,   307,   695,   696,   809,   701,
2076 <     697,   699,   700,   810,   702,   811,   440,   601,   602,   169,
2077 <     703,   170,   704,   705,   603,   171,   707,   709,   812,   172,
2078 <     173,   174,   175,   176,   441,   708,   710,   177,   178,   711,
2079 <     712,   713,   714,   715,   716,   719,   179,   308,   722,   309,
2080 <     310,   721,   723,   733,   724,   729,   813,   730,   872,  1082,
2081 <     736,   814,   737,   247,   629,   311,   630,  1307,   738,   631,
2082 <     739,   742,   780,   632,   781,  1321,   782,   740,   180,   783,
2083 <     181,   743,   745,   815,   746,   749,   182,   773,   633,   634,
2084 <     635,   183,   750,   751,   636,   816,   184,   817,   818,  1308,
2085 <     784,   785,   819,   604,   605,   606,   786,   787,   607,   312,
2086 <     752,   795,   753,   637,  1309,   755,   608,   638,   639,   248,
2087 <     249,   250,   251,   252,   253,   254,   255,    76,   796,   609,
2088 <     610,   756,   757,   758,  1310,  1311,   797,   313,   314,    77,
2089 <    1312,  1313,  1314,  1315,   759,   451,   611,   612,   640,   760,
2090 <     641,   761,   762,  1316,  1322,   799,   763,   764,   800,   798,
2091 <      78,    79,   442,   642,   452,   820,    80,   256,    81,   765,
2092 <     453,   801,   821,   768,   613,   770,   775,   849,   776,   777,
2093 <     858,   850,   855,   822,   823,   643,  1323,   851,   852,   856,
2094 <     857,   859,   860,   824,   454,   455,   863,   862,   864,   456,
2095 <     865,  1324,   257,   866,   867,   868,   869,   870,   871,   873,
2096 <     874,   875,   876,   457,  1274,   525,   559,   644,   877,   879,
2097 <     458,  1325,  1326,   882,    82,    83,   887,  1327,  1328,  1329,
2098 <    1330,   645,   883,    84,    85,   916,   888,   889,   890,   459,
2099 <    1331,   891,   892,   917,   646,   953,   893,   894,     2,     3,
2100 <     902,   903,   918,     4,    86,    87,   954,   904,   905,   906,
2101 <     907,   957,   958,   908,   909,  1095,   910,   460,   911,   912,
2102 <       5,    88,    89,   913,     6,   461,   914,     7,   915,   931,
2103 <     919,   955,    90,   258,     8,   920,   921,   922,   923,   924,
2104 <     956,    91,   925,   462,   926,   927,   928,   932,   933,   934,
2105 <       9,   935,   463,   464,   936,   937,  1182,   647,   938,   939,
2106 <    1068,   940,   942,    10,    11,  1066,    12,   259,  1069,  1071,
2107 <     648,   943,   944,    13,   945,   946,   947,  1072,  1073,   948,
2108 <     949,   950,   959,   960,   961,   962,   465,   466,   963,   964,
2109 <      14,   965,   966,   967,   968,   969,   970,   971,   972,   973,
2110 <      15,   974,    16,   975,   976,   977,   978,   979,   980,   981,
2111 <     982,   983,   984,  1074,   985,   986,   987,   988,  1076,    17,
2112 <     989,   990,   991,   992,   993,  1015,  1037,  1038,    92,    93,
2113 <      94,   994,   995,   996,   997,   998,    18,   999,  1000,  1039,
2114 <    1001,  1002,  1003,  1040,   467,  1004,  1041,  1042,  1043,  1044,
2115 <    1045,  1046,  1047,  1048,  1049,  1005,  1006,  1007,  1050,  1008,
2116 <    1009,  1010,  1051,  1052,  1011,  1058,  1059,  1012,  1060,  1061,
2117 <    1062,    19,  1063,  1077,  1064,  1078,  1067,  1070,  1079,  1080,
2118 <      20,    21,  1075,  1081,  1083,    22,    23,  1016,  1017,  1018,
2119 <    1019,  1020,  1084,  1021,  1022,  1085,  1023,  1024,  1025,  1086,
2120 <    1087,  1026,  1088,  1090,  1089,  1091,  1092,  1093,  1094,  1098,
2121 <    1099,  1027,  1028,  1029,  1100,  1030,  1031,  1032,  1101,  1102,
2122 <    1033,  1103,  1104,  1034,  1420,  1421,  1422,  1423,  1424,  1105,
2123 <    1425,  1426,  1106,  1427,  1428,  1429,  1120,  1107,  1430,  1108,
2124 <    1109,  1144,  1145,  1146,  1110,  1111,  1112,  1113,  1431,  1432,
2125 <    1433,  1114,  1434,  1435,  1436,  1115,  1116,  1437,  1170,  1117,
2126 <    1438,  1118,  1119,  1172,  1174,  1183,  1121,  1122,  1123,  1125,
2127 <    1126,  1127,  1128,  1129,  1130,  1131,  1132,  1133,  1134,  1135,
2128 <    1136,  1137,  1139,  1147,  1140,  1141,  1148,  1149,  1150,  1151,
2129 <    1185,  1186,  1152,  1153,  1154,  1155,  1156,  1157,  1158,  1187,
2130 <    1159,  1160,  1161,  1166,  1167,  1168,  1188,  1169,  1189,  1190,
2334 <    1191,  1171,  1173,  1176,  1175,  1196,  1195,  1199,  1200,  1201,
2335 <    1202,  1203,  1204,  1205,  1206,  1207,  1208,  1209,  1211,  1210,
2336 <    1212,  1216,  1214,  1213,  1215,  1217,  1218,  1219,  1220,  1235,
2337 <    1221,  1236,  1241,  1242,  1243,  1244,  1245,  1246,  1247,  1263,
2338 <    1277,  1251,  1252,  1253,  1254,  1255,  1256,  1257,  1258,  1259,
2339 <    1260,  1261,  1262,  1266,  1272,  1278,  1273,  1287,  1279,  1289,
2340 <    1293,  1275,  1281,  1297,  1299,  1295,  1300,  1301,  1302,  1305,
2341 <    1280,  1282,  1283,  1284,  1285,  1286,  1288,  1290,  1319,  1291,
2342 <    1292,  1294,  1296,  1298,  1357,  1403,  1320,  1334,  1335,  1336,
2343 <    1337,  1338,  1339,  1340,  1341,  1342,  1343,  1344,  1345,  1346,
2344 <    1347,  1348,  1349,  1396,  1350,   336,  1351,  1352,  1353,  1444,
2345 <    1493,  1354,  1492,  1355,  1356,  1464,  1143,  1361,  1491,  1362,
2346 <     779,   767,   930,  1397,  1462,  1461,   881,  1487,  1488,   886,
2347 <    1463,   952,   772,   854,  1489,  1490,   368,  1458,  1373,   435,
2348 <    1372,  1460,   680,  1459,   356,     0,     0,     0,  1363,  1364,
2349 <    1365,  1366,  1367,  1368,  1369,  1398,  1399,  1400,  1401,  1402,
2350 <    1407,  1408,     0,  1409,     0,  1410,     0,     0,     0,  1411,
2351 <       0,  1412,  1413,  1414,  1415,  1416,  1417,  1418,  1419,  1441,
2352 <    1442,  1443,   520,   673,     0,     0,     0,     0,   748,     0,
2011 >     830,   831,   589,   590,   591,   517,   571,   466,   225,    70,
2012 >     282,   473,   489,   496,  1042,   489,   109,   829,   517,   282,
2013 >     571,   391,   244,   381,  1070,   679,   109,   289,   680,   497,
2014 >    1008,    49,    71,   447,  1009,   226,   556,  1010,   518,    72,
2015 >      50,  1011,    54,   227,   498,   245,   466,   215,  1112,   448,
2016 >     215,   518,    56,  1085,    60,   228,   229,  1086,   230,   231,
2017 >     232,    47,    48,   289,   449,   474,   391,  1018,   681,  1087,
2018 >     475,   682,   476,  1088,   499,   110,  1018,   246,    64,   519,
2019 >     233,    65,   382,    67,   247,   110,   490,  1043,    68,   490,
2020 >     556,  1212,   519,   295,   450,  1213,   645,   646,   764,   765,
2021 >    1217,   106,   572,   652,  1218,    73,   248,   656,   115,   500,
2022 >     249,  1238,   661,   116,   117,   664,   572,   392,   250,   118,
2023 >    1221,   251,   252,   290,  1222,   674,   675,   119,   520,   501,
2024 >     467,   477,   557,   120,   107,   686,   121,   122,   689,   690,
2025 >     216,   520,   123,   216,   393,   502,   383,   124,   125,   451,
2026 >     126,   127,   128,   253,   129,   108,  1223,   452,   453,   290,
2027 >    1224,   130,   392,  1019,   217,   131,   132,   217,   114,   467,
2028 >     254,   255,  1019,   212,   133,  -123,   213,   491,   454,   503,
2029 >     491,  1231,  1113,   134,  -123,  1232,   557,   315,   214,   393,
2030 >     381,   135,  1114,   136,  1233,   137,   256,   138,  1234,   139,
2031 >     140,   316,   317,  1235,   222,   318,   223,  1236,  1071,  1242,
2032 >     504,   296,   141,  1243,   257,   258,   259,   142,   143,   144,
2033 >     573,   145,   146,   147,   574,   468,   148,   283,   224,   740,
2034 >     749,   505,   534,   299,   573,   714,   283,   734,   574,   722,
2035 >     389,   260,   261,   565,   789,   642,   554,   636,   319,   382,
2036 >     558,   455,   149,   281,  1020,   768,   769,   703,   150,   151,
2037 >     152,   153,   154,  1020,   468,   294,   320,   321,   322,   323,
2038 >     707,   487,   484,   324,  1056,  1057,  1058,   325,   297,   473,
2039 >     350,  1021,   351,   326,   352,  1267,   567,   569,  1091,  1268,
2040 >    1021,   155,   834,   835,   327,   328,   353,   298,   817,   301,
2041 >    1196,   302,   821,   303,   558,   824,   329,   304,  1092,   828,
2042 >     305,   354,    70,   383,   778,   156,   157,  1093,   158,   159,
2043 >     160,  1214,  1215,  1216,   161,   306,    79,   307,   330,   162,
2044 >     308,   309,   445,   474,   355,    71,   356,   310,   475,   244,
2045 >     476,   357,    72,   311,  1094,   312,    80,    81,   536,   388,
2046 >     398,   358,    82,   350,   399,   351,   400,   352,   401,   402,
2047 >     403,   404,   245,   405,   406,   331,   407,   408,   409,   353,
2048 >     410,   411,   829,  1095,  1096,   412,   359,   413,   414,   415,
2049 >     416,  1097,   417,   418,   354,   419,   420,   421,   422,    83,
2050 >      84,   423,   425,   427,   246,    85,    86,   428,   429,   477,
2051 >     360,   247,    87,    88,    89,   430,  1098,   355,    73,   356,
2052 >     431,   615,   432,   580,   357,   433,   581,   434,   435,   436,
2053 >     361,   437,  1099,   248,   358,   115,   438,   249,    90,    91,
2054 >     116,   117,   439,   440,   441,   250,   118,   442,   251,   252,
2055 >     443,   444,   485,   486,   119,   526,   362,   527,   528,   359,
2056 >     120,   529,   530,   121,   122,   531,   532,   533,   537,   123,
2057 >     538,  1180,   539,   540,   124,   125,   541,   126,   127,   128,
2058 >     253,   129,   363,   360,   542,   543,   447,   544,   130,   545,
2059 >    1124,  1100,   131,   132,   546,   547,   548,   254,   255,   549,
2060 >     496,   133,   448,   361,  1125,   550,   551,   552,   553,   364,
2061 >     134,  1126,   582,   564,   632,   563,   497,   449,   135,   568,
2062 >     136,   583,   137,   256,   138,  1127,   139,   140,   584,   362,
2063 >     585,   498,   586,  1181,   587,   588,   592,   593,   594,   141,
2064 >     595,   257,   258,   259,   142,   143,   144,   450,   145,   146,
2065 >     147,   596,  1128,   148,  1129,   363,   597,   599,   598,  1182,
2066 >     313,   499,   617,   600,   601,  1257,  1183,   603,   260,   261,
2067 >     604,   638,   605,   606,   607,   647,  1184,   608,   609,   149,
2068 >    1130,   610,   364,   611,   612,   150,   151,   152,   153,   154,
2069 >     613,  1239,  1258,   614,  1259,   618,   500,   619,   620,   621,
2070 >     622,   623,   451,  1185,   625,  1186,  1187,   626,   627,   628,
2071 >     452,   453,   629,  1131,   630,  1132,   501,   644,   155,  1188,
2072 >     631,   634,   635,   639,   640,   641,  1189,   648,   649,   650,
2073 >     654,   454,   502,   225,  1133,   655,   657,   662,   663,  1260,
2074 >       2,     3,   156,   157,     4,   158,   159,   160,   651,  1134,
2075 >     653,   161,   658,   659,     5,  1135,   162,     6,     7,  1136,
2076 >     226,   315,   660,     8,  1137,   665,   503,  1138,   227,   666,
2077 >     667,   668,  1139,   669,     9,   316,   317,    10,    11,   318,
2078 >     228,   229,   671,   230,   231,   232,  1140,   670,  1261,  1262,
2079 >     672,  1141,   685,   693,   673,   676,   588,   504,   677,   678,
2080 >     683,    12,  1142,   684,   455,   233,    13,   687,   688,  1143,
2081 >     691,   692,   716,   694,    14,   882,   717,   695,   505,   709,
2082 >     742,   696,   319,   798,   799,   800,   801,   802,   803,   804,
2083 >     745,   751,   698,   699,   753,    15,    16,   700,   701,   702,
2084 >     320,   321,   322,   323,   705,  1263,   706,   324,   718,   710,
2085 >     743,   325,   711,    17,   713,   754,   719,   326,   724,   906,
2086 >    1032,  1033,  1034,  1035,  1036,  1037,  1038,   720,   327,   328,
2087 >      18,   721,   725,   726,   728,   729,   730,   731,   733,   736,
2088 >     329,   737,   744,    19,    20,   746,   738,   739,   747,   748,
2089 >     750,   752,   755,   756,   757,   758,   759,   760,   761,   762,
2090 >      21,   763,   330,  1150,   772,   773,   776,   774,   780,   775,
2091 >     781,   783,   784,   782,    22,   785,  1199,   815,   825,   786,
2092 >     788,   791,   792,    23,   883,   884,   885,    24,   886,   887,
2093 >     793,   888,   889,   816,   794,   890,   819,   891,   795,   331,
2094 >     892,   796,   797,   893,   894,   895,   807,   896,   808,   809,
2095 >     810,   811,   897,   812,   813,   814,   898,   899,   900,   820,
2096 >     818,   822,   832,   823,   826,   827,   901,   829,   907,   908,
2097 >     909,   902,   910,   911,   840,   912,   913,   837,  1200,   914,
2098 >     843,   915,   848,   833,   916,   836,   838,   917,   918,   919,
2099 >     839,   920,   841,   842,   844,   950,   921,   845,   846,   847,
2100 >     922,   923,   924,   849,  1201,   850,   853,   854,   851,   953,
2101 >     925,  1202,  1151,  1152,  1153,   926,  1154,  1155,   852,  1156,
2102 >    1157,  1203,   855,  1158,   856,  1159,   857,   858,  1160,   859,
2103 >     860,  1161,  1162,  1163,   949,  1164,    79,   861,   862,   863,
2104 >    1165,   864,   865,   866,  1166,  1167,  1168,   867,  1204,   868,
2105 >    1205,  1206,   869,   952,  1169,   870,    80,    81,   871,  1170,
2106 >     872,   873,    82,   874,  1207,   875,   876,   877,   878,   879,
2107 >     880,  1208,   954,   881,   905,   929,   955,   930,   956,   958,
2108 >     959,   961,   962,   931,   964,   970,   932,   971,   973,   933,
2109 >     934,   935,   976,   936,   977,   974,   978,   979,   937,    83,
2110 >      84,   981,   938,   939,   940,    85,    86,   983,   984,   951,
2111 >     941,   942,    87,    88,    89,   943,   944,   945,   946,   947,
2112 >     948,   957,   960,   985,   967,   968,   963,   969,   972,  1014,
2113 >    1028,   982,   975,   980,   986,   987,  1015,   988,    90,    91,
2114 >     989,   990,   991,   992,   993,   994,   995,   996,   997,   998,
2115 >     999,  1000,  1001,  1002,  1003,  1030,  1004,  1005,  1006,  1007,
2116 >    1012,  1013,  1016,  1017,  1027,  1225,  1031,  1039,  1029,  1040,
2117 >    1041,  1046,  1047,  1048,  1237,  1049,  1050,  1051,  1248,  1052,
2118 >     300,  1249,  1250,  1177,  1178,  1053,  1054,   723,  1055,  1197,
2119 >    1269,  1061,  1062,  1063,  1252,  1064,  1251,  1065,   566,  1247,
2120 >    1066,  1244,  1067,  1226,  1068,  1069,  1074,  1075,  1076,   735,
2121 >     704,  1077,  1078,  1079,  1080,  1081,  1082,  1083,  1084,  1089,
2122 >    1090,  1103,  1104,  1105,  1106,  1117,  1107,  1108,  1109,  1110,
2123 >    1111,   488,   715,  1246,  1120,  1266,  1121,  1118,  1122,  1123,
2124 >    1146,  1147,  1148,  1149,  1173,  1174,  1175,  1176,  1179,  1192,
2125 >    1253,   790,  1198,  1193,  1194,  1211,  1227,   741,  1228,  1229,
2126 >    1241,   779,  1254,  1230,  1240,  1255,  1256,  1245,   708,   390,
2127 >     446,  1220,   314,   633,   637,  1219,   616,   535,     0,     0,
2128 >       0,     0,     0,   643,     0,     0,     0,     0,     0,     0,
2129 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2130 >       0,   555,     0,     0,     0,     0,     0,     0,     0,     0,
2131         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2132         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2133 <       0,     0,     0,   544
2133 >       0,   570
2134   };
2135  
2136 + #define yypact_value_is_default(Yystate) \
2137 +  (!!((Yystate) == (-736)))
2138 +
2139 + #define yytable_value_is_error(Yytable_value) \
2140 +  YYID (0)
2141 +
2142   static const yytype_int16 yycheck[] =
2143   {
2144 <     342,   343,   428,     1,   264,     1,   264,   349,     1,   264,
2145 <       1,   264,    11,     1,   264,     1,     1,   262,     1,   155,
2146 <       1,   266,    11,    10,     1,    12,     1,   264,     1,   262,
2147 <     263,     8,     9,     1,     1,    12,   264,   379,   264,   381,
2148 <      27,    37,    19,   155,    31,     1,     1,    22,     4,   199,
2149 <     200,    28,    48,   395,    22,    32,    33,     1,   199,   200,
2150 <     262,   403,    39,     1,   266,   264,    43,    44,    45,    55,
2151 <      47,   264,   414,   415,   264,   417,    53,   264,    78,   895,
2152 <     896,   897,   898,   899,   426,   427,    41,   429,   262,     1,
2153 <      46,   264,   266,    49,     1,    72,    73,   264,    91,    85,
2154 <      77,    56,  1053,  1054,  1055,    91,    91,    84,    91,   155,
2155 <      91,    88,    89,    90,   262,   264,    93,   262,   266,    96,
2156 <      97,   266,   120,    78,   264,    80,   122,    82,    83,   106,
2157 <     264,   122,   262,   262,     1,   112,   113,   266,   115,   116,
2158 <     117,   118,   119,    55,   265,   262,   101,   120,   104,   266,
2159 <       1,   126,   150,   130,     5,   122,   171,   172,   126,     1,
2160 <       1,     1,   139,   265,   141,   142,   122,   144,   154,   157,
2161 <     147,   148,   157,    85,   151,    26,   157,   150,   122,    91,
2162 <      20,   265,   157,   265,   122,   162,    26,    38,   265,   157,
2163 <      57,    58,    59,    60,    61,    62,    63,    64,   189,    50,
2164 <     542,   189,   201,   265,    55,   218,   219,   184,   265,   186,
2165 <      50,    51,   201,   190,   265,    55,    67,   194,   195,   196,
2166 <     197,   198,   189,    74,     1,   202,   203,   262,    79,    69,
2167 <      81,   266,   265,   233,   211,   265,    76,   237,   105,     1,
2168 <     265,     3,   154,    94,     6,   189,    23,    24,    10,   265,
2169 <     157,   189,   262,    30,   262,    95,   266,   244,   266,   250,
2170 <     265,   265,   250,    25,    26,    27,   243,   263,   245,    31,
2171 <     263,   122,   263,   140,   251,   263,   127,   263,   263,   256,
2172 <     122,   122,   189,   123,   261,   265,   263,     1,    50,   265,
2173 <     263,   131,    54,    55,   250,   263,   263,   262,   149,    13,
2174 <     264,   266,   265,     1,     1,   265,   250,   263,   263,   149,
2175 <     161,   265,   163,   164,   265,   157,   157,   168,   158,   159,
2176 <      34,    35,   133,    85,   265,    87,    40,   264,    42,    14,
2177 <      15,    16,   109,   110,   111,   265,   265,   114,   100,    37,
2178 <      37,   265,   262,   250,   265,   122,   266,   189,   189,   265,
2179 <      48,   262,   192,   193,   221,   266,   265,   262,   135,   136,
2180 <     122,   266,     1,   265,   175,   176,   177,   178,   179,   265,
2181 <     265,     5,   265,   265,   265,   152,   153,   265,   265,   265,
2182 <     231,   265,   265,   265,    98,    99,   265,   238,   255,    86,
2183 <     265,   265,   154,   107,   108,   265,   263,   265,   249,   250,
2184 <     742,   265,    41,   180,    38,   265,   168,   265,   259,   265,
2185 <     250,   265,   263,   265,   128,   129,    50,    56,   265,   181,
2186 <     265,   263,   265,   263,   122,   122,   265,   124,   125,   265,
2187 <     265,   145,   146,    67,   265,   265,   265,   265,   265,    78,
2188 <      74,    80,   156,    82,    83,    79,   265,    81,   133,   265,
2189 <     265,   165,   222,   223,   224,   225,   226,   227,   228,   265,
2190 <      94,   265,   101,   265,   265,   265,   265,    20,    21,   265,
2191 <     167,   265,   169,   170,   265,   265,     1,   265,   265,   262,
2192 <     265,   265,   244,     8,     9,   265,   263,    12,   185,   265,
2193 <     265,   265,   265,   127,    19,   257,   265,   265,    51,   265,
2194 <     265,   263,   928,    28,   265,   262,   265,    32,    33,   143,
2195 <     265,   264,   155,   265,    39,   265,    69,   265,    43,    44,
2196 <      45,     1,    47,    76,   265,   265,   265,   161,    53,   163,
2197 <     164,   265,   229,   262,   265,   265,   155,   265,   252,   253,
2198 <     254,   265,    95,   265,   265,   265,   265,    72,    73,   263,
2199 <     265,   155,    77,     1,   265,   265,     4,    37,   262,    84,
2200 <     257,   258,   199,    88,    89,    90,   263,   133,    93,   133,
2201 <     123,    96,    97,   199,   199,     1,   918,   133,   131,     5,
2202 <     262,   106,   133,   133,   926,   927,   199,   112,   113,   199,
2203 <     115,   116,   117,   118,   119,   133,   199,   231,    46,   199,
2204 <      26,    49,   199,   199,   199,   130,    86,   265,   265,   155,
2205 <     262,   265,    38,   199,   139,   249,   141,   142,   265,   144,
2206 <     199,   174,   147,   148,    50,   259,   151,   133,    94,    55,
2207 <     133,   155,   199,   133,   199,     1,   199,   162,   155,   199,
2208 <     193,    67,   122,   133,   124,   125,   133,   133,    74,   133,
2209 <     199,   199,   199,    79,   155,    81,   104,    23,    24,   184,
2210 <     199,   186,   133,   133,    30,   190,   133,   155,    94,   194,
2211 <     195,   196,   197,   198,   122,   133,   133,   202,   203,   133,
2212 <     199,   199,   265,   199,   265,   199,   211,   167,   199,   169,
2213 <     170,   155,   199,   133,   199,   199,   122,   199,   133,   133,
2214 <     199,   127,   199,     1,     1,   185,     3,   173,   199,     6,
2215 <     199,   265,   155,    10,   155,    94,   155,   262,   243,   155,
2216 <     245,   265,   265,   149,   265,   262,   251,   262,    25,    26,
2217 <      27,   256,   265,   265,    31,   161,   261,   163,   164,   205,
2218 <     155,   155,   168,   109,   110,   111,   155,   155,   114,   229,
2219 <     265,   155,   265,    50,   220,   265,   122,    54,    55,    57,
2220 <      58,    59,    60,    61,    62,    63,    64,     1,   155,   135,
2221 <     136,   265,   265,   265,   240,   241,   199,   257,   258,    13,
2222 <     246,   247,   248,   249,   265,     1,   152,   153,    85,   265,
2223 <      87,   265,   265,   259,   173,   155,   265,   265,   155,   262,
2224 <      34,    35,   250,   100,    20,   231,    40,   105,    42,   265,
2225 <      26,   262,   238,   265,   180,   265,   265,   262,   265,   265,
2226 <     155,   265,   199,   249,   250,   122,   205,   265,   265,   199,
2227 <     199,   199,   199,   259,    50,    51,   155,   262,   199,    55,
2228 <     155,   220,   140,   155,   155,   155,   155,   265,   155,   155,
2229 <     155,   262,   262,    69,   204,   277,   315,   154,   265,   265,
2230 <      76,   240,   241,   262,    98,    99,   262,   246,   247,   248,
2231 <     249,   168,   265,   107,   108,   265,   262,   262,   262,    95,
2232 <     259,   262,   262,   265,   181,   155,   262,   262,     0,     1,
2233 <     262,   262,   265,     5,   128,   129,   155,   262,   262,   262,
2234 <     262,   155,   155,   262,   262,   133,   262,   123,   262,   262,
2235 <      22,   145,   146,   262,    26,   131,   262,    29,   262,   262,
2236 <     265,   262,   156,   221,    36,   265,   265,   265,   265,   265,
2237 <     262,   165,   265,   149,   265,   265,   265,   265,   265,   265,
2238 <      52,   265,   158,   159,   265,   265,   133,   244,   265,   265,
2239 <     155,   265,   265,    65,    66,   199,    68,   255,   155,   199,
2240 <     257,   265,   265,    75,   265,   265,   265,   155,   199,   265,
2241 <     265,   265,   265,   262,   262,   262,   192,   193,   262,   262,
2242 <      92,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2243 <     102,   262,   104,   262,   262,   262,   262,   262,   262,   262,
2244 <     262,   262,   262,   199,   262,   262,   262,   262,   199,   121,
2245 <     262,   262,   262,   262,   262,   262,   262,   262,   252,   253,
2246 <     254,   206,   207,   208,   209,   210,   138,   212,   213,   262,
2247 <     215,   216,   217,   262,   250,   220,   262,   262,   262,   262,
2248 <     262,   262,   262,   262,   262,   230,   231,   232,   262,   234,
2249 <     235,   236,   262,   262,   239,   262,   262,   242,   262,   262,
2250 <     262,   173,   262,   199,   265,   199,   265,   262,   199,   199,
2251 <     182,   183,   265,   155,   155,   187,   188,   206,   207,   208,
2252 <     209,   210,   155,   212,   213,   199,   215,   216,   217,   155,
2253 <     262,   220,   155,   155,   265,   262,   265,   155,   155,   262,
2254 <     262,   230,   231,   232,   262,   234,   235,   236,   262,   262,
2255 <     239,   262,   262,   242,   206,   207,   208,   209,   210,   262,
2256 <     212,   213,   262,   215,   216,   217,   265,   262,   220,   262,
2257 <     262,   155,   155,   155,   262,   262,   262,   262,   230,   231,
2258 <     232,   262,   234,   235,   236,   262,   262,   239,   155,   262,
2259 <     242,   262,   262,   155,   155,   133,   265,   265,   265,   265,
2260 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
2261 <     265,   265,   265,   262,   265,   265,   262,   262,   262,   262,
2478 <     133,   133,   262,   262,   262,   262,   262,   262,   262,   133,
2479 <     262,   262,   262,   262,   262,   262,   133,   262,   155,   133,
2480 <     133,   265,   262,   262,   265,   155,   262,   199,   155,   155,
2481 <     199,   199,   199,   155,   265,   155,   155,   155,   133,   155,
2482 <     155,   262,   199,   155,   155,   262,   262,   262,   262,   262,
2483 <     160,   262,   262,   262,   262,   262,   262,   262,   132,   160,
2484 <     199,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2485 <     262,   262,   262,   262,   262,   155,   262,   155,   199,   155,
2486 <     155,   266,   265,   155,   262,   265,   262,   262,   262,   262,
2487 <     199,   199,   199,   199,   199,   199,   199,   199,   262,   199,
2488 <     199,   199,   199,   199,   132,   132,   262,   262,   262,   262,
2489 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2490 <     262,   262,   262,   133,   262,    71,   262,   262,   262,  1304,
2491 <    1486,   262,  1467,   262,   262,  1395,   825,   262,  1465,   262,
2492 <     501,   468,   614,  1275,  1380,  1378,   564,  1446,  1448,   572,
2493 <    1393,   649,   491,   531,  1449,  1451,   124,  1371,  1227,   185,
2494 <    1225,  1377,   374,  1375,    95,    -1,    -1,    -1,   262,   262,
2495 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2496 <     262,   262,    -1,   262,    -1,   262,    -1,    -1,    -1,   262,
2497 <      -1,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2498 <     262,   262,   260,   362,    -1,    -1,    -1,    -1,   443,    -1,
2144 >     613,   614,   305,   306,   307,     1,     1,     1,     1,     1,
2145 >       1,     1,     1,     1,    50,     1,     1,   107,     1,     1,
2146 >       1,     1,     1,     1,     8,   207,     1,     1,   210,    17,
2147 >     224,   226,    24,     1,   228,    28,     1,   224,    34,    31,
2148 >     226,   228,   226,    36,    32,    24,     1,     1,    48,    17,
2149 >       1,    34,   226,   224,   226,    48,    49,   228,    51,    52,
2150 >      53,   224,   225,     1,    32,    55,     1,     1,   207,   224,
2151 >      60,   210,    62,   228,    62,    60,     1,    56,   226,    75,
2152 >      73,   226,    60,   226,    63,    60,    75,   123,   226,    75,
2153 >       1,   224,    75,   224,    62,   228,   399,   400,   196,   197,
2154 >     224,   226,    97,   406,   228,    97,    85,   410,     1,    97,
2155 >      89,   201,   415,     6,     7,   418,    97,    97,    97,    12,
2156 >     224,   100,   101,    97,   228,   428,   429,    20,   124,   117,
2157 >     124,   121,    97,    26,   226,   438,    29,    30,   441,   442,
2158 >      94,   124,    35,    94,   124,   133,   124,    40,    41,   117,
2159 >      43,    44,    45,   132,    47,   226,   224,   125,   126,    97,
2160 >     228,    54,    97,    97,   118,    58,    59,   118,   226,   124,
2161 >     149,   150,    97,   226,    67,   166,   226,   166,   146,   167,
2162 >     166,   224,   182,    76,   166,   228,    97,     1,   226,   124,
2163 >       1,    84,   192,    86,   224,    88,   175,    90,   228,    92,
2164 >      93,    15,    16,   224,   226,    19,   226,   228,   192,   224,
2165 >     198,   227,   105,   228,   193,   194,   195,   110,   111,   112,
2166 >     215,   114,   115,   116,   219,   219,   119,   218,   226,   225,
2167 >     533,   219,   225,   225,   215,   225,   218,   225,   219,   225,
2168 >     225,   220,   221,   225,   225,   225,   225,   225,    62,    60,
2169 >     215,   219,   145,   226,   188,   196,   197,   225,   151,   152,
2170 >     153,   154,   155,   188,   219,   226,    80,    81,    82,    83,
2171 >     225,   225,   224,    87,     9,    10,    11,    91,   227,     1,
2172 >       1,   215,     3,    97,     5,   224,   166,   225,    13,   228,
2173 >     215,   184,   171,   172,   108,   109,    17,   227,   601,   227,
2174 >     225,   227,   605,   227,   215,   608,   120,   227,    33,   612,
2175 >     227,    32,     1,   124,   225,   208,   209,    42,   211,   212,
2176 >     213,  1056,  1057,  1058,   217,   227,     1,   227,   142,   222,
2177 >     227,   227,   225,    55,    55,    24,    57,   227,    60,     1,
2178 >      62,    62,    31,   227,    69,   227,    21,    22,   224,   227,
2179 >     227,    72,    27,     1,   227,     3,   227,     5,   227,   227,
2180 >     227,   227,    24,   227,   227,   179,   227,   227,   227,    17,
2181 >     227,   227,   107,    98,    99,   227,    97,   227,   227,   227,
2182 >     227,   106,   227,   227,    32,   227,   227,   227,   227,    64,
2183 >      65,   227,   227,   227,    56,    70,    71,   227,   227,   121,
2184 >     121,    63,    77,    78,    79,   227,   131,    55,    97,    57,
2185 >     227,   225,   227,   122,    62,   227,   122,   227,   227,   227,
2186 >     141,   227,   147,    85,    72,     1,   227,    89,   103,   104,
2187 >       6,     7,   227,   227,   227,    97,    12,   227,   100,   101,
2188 >     227,   227,   227,   227,    20,   227,   167,   227,   227,    97,
2189 >      26,   227,   227,    29,    30,   227,   227,   227,   227,    35,
2190 >     227,    68,   227,   227,    40,    41,   227,    43,    44,    45,
2191 >     132,    47,   193,   121,   227,   227,     1,   227,    54,   227,
2192 >       4,   206,    58,    59,   227,   227,   227,   149,   150,   227,
2193 >       1,    67,    17,   141,    18,   227,   227,   227,   227,   220,
2194 >      76,    25,   122,   227,   225,   224,    17,    32,    84,   227,
2195 >      86,   224,    88,   175,    90,    39,    92,    93,   107,   167,
2196 >     107,    32,   207,   130,   107,   107,   107,   107,   107,   105,
2197 >     207,   193,   194,   195,   110,   111,   112,    62,   114,   115,
2198 >     116,   207,    66,   119,    68,   193,   224,   227,   224,   156,
2199 >     225,    62,   224,   227,   227,    39,   163,   227,   220,   221,
2200 >     227,   122,   227,   227,   227,   107,   173,   227,   227,   145,
2201 >      94,   227,   220,   227,   227,   151,   152,   153,   154,   155,
2202 >     227,  1194,    66,   227,    68,   227,    97,   227,   227,   227,
2203 >     227,   227,   117,   200,   227,   202,   203,   227,   227,   227,
2204 >     125,   126,   227,   127,   227,   129,   117,   207,   184,   216,
2205 >     227,   227,   227,   224,   227,   227,   223,   207,   107,   122,
2206 >     107,   146,   133,     1,   148,   107,   107,   107,   107,   113,
2207 >       0,     1,   208,   209,     4,   211,   212,   213,   207,   163,
2208 >     207,   217,   207,   207,    14,   169,   222,    17,    18,   173,
2209 >      28,     1,   207,    23,   178,   107,   167,   181,    36,   107,
2210 >     107,   107,   186,   207,    34,    15,    16,    37,    38,    19,
2211 >      48,    49,   207,    51,    52,    53,   200,   227,   162,   163,
2212 >     227,   205,   122,   224,   207,   207,   107,   198,   207,   207,
2213 >     207,    61,   216,   207,   219,    73,    66,   207,   207,   223,
2214 >     207,   207,   122,   224,    74,    48,   122,   227,   219,   224,
2215 >     207,   227,    62,   134,   135,   136,   137,   138,   139,   140,
2216 >     122,   122,   227,   227,   122,    95,    96,   227,   227,   227,
2217 >      80,    81,    82,    83,   227,   219,   227,    87,   224,   227,
2218 >     207,    91,   227,   113,   227,   107,   224,    97,   224,    48,
2219 >     798,   799,   800,   801,   802,   803,   804,   227,   108,   109,
2220 >     130,   227,   227,   227,   227,   227,   227,   227,   227,   224,
2221 >     120,   227,   207,   143,   144,   207,   227,   227,   207,   207,
2222 >     224,   207,   107,   122,   122,   122,   122,   122,   122,   107,
2223 >     160,   122,   142,    48,   122,   122,   227,   224,   207,   224,
2224 >     224,   122,   224,   226,   174,   224,    68,   107,   122,   227,
2225 >     227,   224,   224,   183,   157,   158,   159,   187,   161,   162,
2226 >     224,   164,   165,   107,   224,   168,   107,   170,   224,   179,
2227 >     173,   224,   224,   176,   177,   178,   224,   180,   224,   224,
2228 >     224,   224,   185,   224,   224,   224,   189,   190,   191,   107,
2229 >     227,   107,   224,   107,   107,   107,   199,   107,   157,   158,
2230 >     159,   204,   161,   162,   227,   164,   165,   207,   130,   168,
2231 >     107,   170,   224,   122,   173,   122,   122,   176,   177,   178,
2232 >     122,   180,   122,   122,   122,   207,   185,   122,   122,   122,
2233 >     189,   190,   191,   122,   156,   122,   122,   122,   224,   107,
2234 >     199,   163,   157,   158,   159,   204,   161,   162,   224,   164,
2235 >     165,   173,   224,   168,   224,   170,   224,   224,   173,   224,
2236 >     224,   176,   177,   178,   122,   180,     1,   224,   224,   224,
2237 >     185,   224,   224,   224,   189,   190,   191,   224,   200,   224,
2238 >     202,   203,   224,   122,   199,   224,    21,    22,   224,   204,
2239 >     224,   224,    27,   224,   216,   224,   224,   224,   224,   224,
2240 >     224,   223,   122,   224,   224,   224,   122,   224,   122,   122,
2241 >     122,   122,   122,   224,   107,   122,   224,   122,   122,   224,
2242 >     224,   224,   122,   224,   122,   207,   122,   122,   224,    64,
2243 >      65,   122,   224,   224,   224,    70,    71,   122,   122,   227,
2244 >     224,   224,    77,    78,    79,   224,   224,   224,   224,   224,
2245 >     224,   224,   224,   122,   224,   224,   227,   224,   224,   122,
2246 >     122,   224,   227,   227,   224,   224,   227,   224,   103,   104,
2247 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2248 >     224,   224,   224,   224,   224,   122,   224,   224,   224,   224,
2249 >     224,   224,   224,   224,   224,   107,   224,   224,   227,   224,
2250 >     224,   224,   224,   224,   122,   224,   224,   224,   128,   224,
2251 >      74,   128,   128,  1009,  1011,   224,   224,   492,   224,  1022,
2252 >    1268,   224,   224,   224,  1234,   224,  1232,   224,   284,  1224,
2253 >     224,  1213,   224,  1118,   224,   224,   224,   224,   224,   506,
2254 >     456,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2255 >     224,   224,   224,   224,   224,   214,   224,   224,   224,   224,
2256 >     224,   218,   479,  1222,   224,  1243,   224,   228,   224,   224,
2257 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2258 >    1236,   575,   224,   227,   227,   224,   224,   521,   229,   229,
2259 >     224,   559,   224,   229,   227,   224,   224,  1218,   469,   111,
2260 >     163,  1088,    92,   365,   384,  1086,   332,   234,    -1,    -1,
2261 >      -1,    -1,    -1,   394,    -1,    -1,    -1,    -1,    -1,    -1,
2262        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2263 +      -1,   262,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2264        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2265 <      -1,    -1,    -1,   293
2265 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2266 >      -1,   291
2267   };
2268  
2269   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2270     symbol of state STATE-NUM.  */
2271   static const yytype_uint16 yystos[] =
2272   {
2273 <       0,   268,     0,     1,     5,    22,    26,    29,    36,    52,
2274 <      65,    66,    68,    75,    92,   102,   104,   121,   138,   173,
2275 <     182,   183,   187,   188,   269,   274,   279,   297,   303,   318,
2276 <     355,   374,   388,   414,   421,   431,   440,   471,   481,   487,
2277 <     491,   501,   566,   582,   603,   262,   263,   264,   264,   356,
2278 <     441,   482,   264,   492,   264,   567,   389,   472,   375,   264,
2279 <     264,   319,   415,   264,   264,   422,   432,     1,    37,    48,
2280 <     122,   298,   299,   300,   301,   302,     1,    13,    34,    35,
2281 <      40,    42,    98,    99,   107,   108,   128,   129,   145,   146,
2282 <     156,   165,   252,   253,   254,   583,   584,   585,   586,   587,
2283 <     588,   589,   590,   591,   592,   593,   594,   595,   596,   597,
2284 <     598,   599,   600,   601,   602,   155,   357,   361,   155,   442,
2285 <     446,   264,     1,    91,   488,   489,   490,   264,     1,     8,
2286 <       9,    12,    19,    28,    32,    33,    39,    43,    44,    45,
2287 <      47,    53,    72,    73,    77,    84,    88,    89,    90,    93,
2288 <      96,    97,   106,   112,   113,   115,   116,   117,   118,   119,
2289 <     130,   139,   141,   142,   144,   147,   148,   151,   162,   184,
2290 <     186,   190,   194,   195,   196,   197,   198,   202,   203,   211,
2291 <     243,   245,   251,   256,   261,   502,   503,   504,   505,   506,
2292 <     507,   508,   509,   510,   511,   512,   513,   514,   515,   516,
2293 <     517,   518,   519,   520,   521,   522,   523,   524,   525,   526,
2294 <     527,   528,   529,   530,   531,   532,   533,   534,   535,   536,
2295 <     537,   538,   539,   540,   541,   542,   543,   544,   545,   546,
2296 <     547,   548,   549,   550,   551,   552,   553,   557,   561,   562,
2297 <     563,   564,   565,   264,   264,   264,   264,     1,    57,    58,
2298 <      59,    60,    61,    62,    63,    64,   105,   140,   221,   255,
2299 <     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
2300 <     314,   315,   316,   317,     1,   120,   150,   275,   276,   277,
2301 <     278,   155,   320,   324,   264,     1,    41,    56,    78,    80,
2302 <      82,    83,   101,   604,   605,   606,   607,   608,   609,   610,
2303 <     611,   612,     1,    37,    86,   122,   124,   125,   167,   169,
2304 <     170,   185,   229,   257,   258,   280,   281,   282,   286,   287,
2305 <     288,   289,   290,   291,   292,   293,   294,   295,   296,   264,
2306 <     264,   262,   265,   265,   265,   263,   299,   265,   265,   265,
2307 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
2308 <     265,   265,   265,   265,   265,   263,   584,   264,   264,     1,
2309 <      91,   157,   483,   484,   485,   486,   265,   263,   489,     1,
2310 <     122,   157,   189,   493,   497,   498,   499,   500,   265,   265,
2311 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
2312 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
2313 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
2314 <     265,   558,   265,   554,   265,   265,   265,   265,   265,   265,
2315 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
2316 <     265,   265,   265,   265,   263,   503,     1,     4,    46,    49,
2317 <     104,   122,   250,   568,   569,   570,   571,   572,   576,   577,
2318 <     578,     1,    20,    26,    50,    51,    55,    69,    76,    95,
2319 <     123,   131,   149,   158,   159,   192,   193,   250,   390,   391,
2320 <     392,   393,   394,   395,   396,   397,   404,   405,   406,   407,
2321 <     408,   409,   410,   411,   412,   413,     1,   157,   189,   250,
2322 <     473,   477,   478,   479,   480,     1,    55,    85,    91,   154,
2323 <     376,   380,   381,   382,   386,   387,   262,   265,   265,   265,
2324 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   263,
2325 <     305,   262,   265,   265,   263,   276,   264,     1,    22,   126,
2326 <     157,   416,   417,   418,   419,   420,   265,   265,   265,   265,
2327 <     265,   265,   265,   263,   605,   262,   265,   265,   265,   265,
2328 <     265,   265,   265,   283,   265,   265,   265,   265,   263,   281,
2329 <       1,   122,   189,   250,   423,   424,   425,   426,   427,     1,
2330 <     122,   189,   433,   434,   435,   436,   155,   155,   155,   262,
2331 <     199,   133,   133,   199,   199,   133,   271,   271,   133,   133,
2332 <     199,   199,   133,   271,   199,   199,   199,   199,   199,   262,
2333 <       1,    23,    24,    30,   109,   110,   111,   114,   122,   135,
2334 <     136,   152,   153,   180,   358,   359,   360,   362,   363,   364,
2335 <     365,   366,   367,   368,   369,   370,   371,   372,   373,     1,
2336 <       3,     6,    10,    25,    26,    27,    31,    50,    54,    55,
2337 <      85,    87,   100,   122,   154,   168,   181,   244,   257,   443,
2338 <     444,   445,   447,   448,   449,   450,   451,   452,   453,   454,
2339 <     461,   462,   463,   464,   465,   466,   467,   468,   469,   470,
2340 <     265,   265,   263,   484,   155,   262,   265,   265,   494,   263,
2341 <     498,   199,   271,   199,   271,   133,   155,   133,   199,   199,
2342 <     199,   133,   155,   199,   133,   133,   133,   199,   271,   199,
2343 <     199,   133,   155,   199,   133,   133,   271,   133,   133,   155,
2344 <     133,   133,   199,   199,   265,   199,   265,   271,   271,   199,
2345 <     271,   155,   199,   199,   199,   199,   200,   199,   200,   199,
2346 <     199,   271,   271,   133,   273,   271,   199,   199,   199,   199,
2347 <     262,   579,   265,   265,   573,   265,   265,   263,   569,   262,
2348 <     265,   265,   265,   265,   398,   265,   265,   265,   265,   265,
2349 <     265,   265,   265,   265,   265,   265,   263,   391,   265,   474,
2350 <     265,   263,   478,   262,   377,   265,   265,   265,   263,   381,
2351 <     155,   155,   155,   155,   155,   155,   155,   155,   222,   223,
2352 <     224,   225,   226,   227,   228,   155,   155,   199,   262,   155,
2353 <     155,   262,     1,     5,    26,    38,    50,    55,    67,    74,
2354 <      79,    81,    94,   122,   127,   149,   161,   163,   164,   168,
2355 <     231,   238,   249,   250,   259,   321,   322,   323,   325,   326,
2356 <     327,   328,   329,   330,   334,   335,   336,   337,   338,   339,
2357 <     340,   341,   342,   343,   344,   345,   346,   347,   348,   262,
2358 <     265,   265,   265,   263,   417,   199,   199,   199,   155,   199,
2359 <     199,   271,   262,   155,   199,   155,   155,   155,   155,   155,
2360 <     265,   155,   133,   155,   155,   262,   262,   265,   428,   265,
2361 <     263,   424,   262,   265,   437,   263,   434,   262,   262,   262,
2362 <     262,   262,   262,   262,   262,   175,   176,   177,   178,   179,
2363 <     270,   271,   262,   262,   262,   262,   262,   262,   262,   262,
2364 <     262,   262,   262,   262,   262,   262,   265,   265,   265,   265,
2365 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   263,
2366 <     359,   262,   265,   265,   265,   265,   265,   265,   265,   265,
2367 <     265,   455,   265,   265,   265,   265,   265,   265,   265,   265,
2368 <     265,   263,   444,   155,   155,   262,   262,   155,   155,   265,
2369 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2370 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2371 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2372 <     262,   262,   262,   262,   206,   207,   208,   209,   210,   212,
2373 <     213,   215,   216,   217,   220,   230,   231,   232,   234,   235,
2374 <     236,   239,   242,   559,   560,   262,   206,   207,   208,   209,
2375 <     210,   212,   213,   215,   216,   217,   220,   230,   231,   232,
2376 <     234,   235,   236,   239,   242,   555,   556,   262,   262,   262,
2377 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2378 <     262,   262,   262,    14,    15,    16,   272,   273,   262,   262,
2379 <     262,   262,   262,   262,   265,   271,   199,   265,   155,   155,
2380 <     262,   199,   155,   199,   199,   265,   199,   199,   199,   199,
2381 <     199,   155,   133,   155,   155,   199,   155,   262,   155,   265,
2382 <     155,   262,   265,   155,   155,   133,   384,   385,   262,   262,
2383 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2384 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2385 <     265,   265,   265,   265,   349,   265,   265,   265,   265,   265,
2386 <     265,   265,   265,   265,   265,   265,   265,   265,   331,   265,
2387 <     265,   265,   263,   322,   155,   155,   155,   262,   262,   262,
2388 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2389 <     262,   262,   171,   172,   284,   285,   262,   262,   262,   262,
2390 <     155,   265,   155,   262,   155,   265,   262,   270,   270,   270,
2391 <     270,   270,   133,   133,   271,   133,   133,   133,   133,   155,
2392 <     133,   133,   271,   271,   273,   262,   155,   218,   219,   199,
2393 <     155,   155,   199,   199,   199,   155,   265,   155,   155,   155,
2394 <     155,   133,   155,   155,   199,   155,   262,   262,   262,   262,
2395 <     262,   160,   495,   496,   262,   266,   262,   266,   272,   272,
2396 <     272,    11,   201,   580,   581,   262,   262,    11,   201,   574,
2397 <     575,   262,   262,   262,   262,   262,   262,   132,   399,   400,
2398 <     402,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2399 <     262,   262,   262,   160,   475,   476,   262,    78,   233,   237,
2635 <     378,   379,   262,   262,   204,   266,   383,   199,   155,   199,
2636 <     199,   265,   199,   199,   199,   199,   199,   155,   199,   155,
2637 <     199,   199,   199,   155,   199,   265,   199,   155,   199,   262,
2638 <     262,   262,   262,   262,   266,   262,    94,   173,   205,   220,
2639 <     240,   241,   246,   247,   248,   249,   259,   429,   430,   262,
2640 <     262,    94,   173,   205,   220,   240,   241,   246,   247,   248,
2641 <     249,   259,   438,   439,   262,   262,   262,   262,   262,   262,
2642 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2643 <     262,   262,   262,   262,   262,   262,   262,   132,   456,   457,
2644 <     459,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2645 <     262,   266,   560,   556,   262,   266,   262,   266,   401,   262,
2646 <     266,    20,    21,    51,    69,    76,    95,   123,   131,   174,
2647 <     193,   403,   262,   266,   262,   266,   133,   385,   262,   262,
2648 <     262,   262,   262,   132,   350,   351,   353,   262,   262,   262,
2649 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2650 <     206,   207,   208,   209,   210,   212,   213,   215,   216,   217,
2651 <     220,   230,   231,   232,   234,   235,   236,   239,   242,   332,
2652 <     333,   262,   262,   262,   285,   262,   266,   262,   266,   458,
2653 <     262,   266,    10,    12,    27,    31,   244,   460,   496,   581,
2654 <     575,   403,   400,   476,   379,   352,   262,   266,     5,    38,
2655 <      50,    67,    74,    79,    81,    94,   127,   143,   161,   163,
2656 <     164,   231,   249,   259,   354,   262,   266,   430,   439,   460,
2657 <     457,   354,   351,   333
2273 >       0,   231,     0,     1,     4,    14,    17,    18,    23,    34,
2274 >      37,    38,    61,    66,    74,    95,    96,   113,   130,   143,
2275 >     144,   160,   174,   183,   187,   232,   237,   242,   266,   272,
2276 >     278,   292,   311,   334,   348,   363,   370,   374,   384,   393,
2277 >     414,   420,   426,   430,   436,   492,   507,   224,   225,   226,
2278 >     226,   312,   394,   421,   226,   431,   226,   349,   415,   335,
2279 >     226,   273,   293,   364,   226,   226,   385,   226,   226,   375,
2280 >       1,    24,    31,    97,   267,   268,   269,   270,   271,     1,
2281 >      21,    22,    27,    64,    65,    70,    71,    77,    78,    79,
2282 >     103,   104,   493,   494,   495,   496,   497,   498,   499,   500,
2283 >     501,   502,   503,   504,   505,   506,   226,   226,   226,     1,
2284 >      60,   427,   428,   429,   226,     1,     6,     7,    12,    20,
2285 >      26,    29,    30,    35,    40,    41,    43,    44,    45,    47,
2286 >      54,    58,    59,    67,    76,    84,    86,    88,    90,    92,
2287 >      93,   105,   110,   111,   112,   114,   115,   116,   119,   145,
2288 >     151,   152,   153,   154,   155,   184,   208,   209,   211,   212,
2289 >     213,   217,   222,   437,   438,   439,   440,   441,   442,   443,
2290 >     444,   445,   446,   447,   448,   449,   450,   451,   452,   453,
2291 >     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
2292 >     464,   465,   466,   467,   468,   469,   470,   471,   472,   473,
2293 >     474,   475,   476,   477,   478,   479,   480,   481,   485,   489,
2294 >     490,   491,   226,   226,   226,     1,    94,   118,   238,   239,
2295 >     240,   241,   226,   226,   226,     1,    28,    36,    48,    49,
2296 >      51,    52,    53,    73,   508,   509,   510,   511,   512,   513,
2297 >     514,   515,   516,   517,     1,    24,    56,    63,    85,    89,
2298 >      97,   100,   101,   132,   149,   150,   175,   193,   194,   195,
2299 >     220,   221,   243,   244,   245,   246,   251,   252,   253,   254,
2300 >     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
2301 >     265,   226,     1,   218,   279,   280,   281,   282,   283,     1,
2302 >      97,   371,   372,   373,   226,   224,   227,   227,   227,   225,
2303 >     268,   227,   227,   227,   227,   227,   227,   227,   227,   227,
2304 >     227,   227,   227,   225,   494,     1,    15,    16,    19,    62,
2305 >      80,    81,    82,    83,    87,    91,    97,   108,   109,   120,
2306 >     142,   179,   313,   314,   315,   316,   317,   318,   319,   320,
2307 >     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
2308 >       1,     3,     5,    17,    32,    55,    57,    62,    72,    97,
2309 >     121,   141,   167,   193,   220,   395,   396,   397,   398,   399,
2310 >     400,   401,   402,   403,   404,   405,   409,   410,   411,   412,
2311 >     413,     1,    60,   124,   422,   423,   424,   425,   227,   225,
2312 >     428,     1,    97,   124,   432,   433,   434,   435,   227,   227,
2313 >     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
2314 >     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
2315 >     227,   227,   227,   227,   486,   227,   482,   227,   227,   227,
2316 >     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
2317 >     227,   227,   227,   227,   227,   225,   438,     1,    17,    32,
2318 >      62,   117,   125,   126,   146,   219,   350,   351,   352,   353,
2319 >     354,   355,   356,   360,   361,   362,     1,   124,   219,   416,
2320 >     417,   418,   419,     1,    55,    60,    62,   121,   336,   340,
2321 >     341,   342,   346,   347,   224,   227,   227,   225,   239,     1,
2322 >      75,   166,   274,   275,   276,   277,     1,    17,    32,    62,
2323 >      97,   117,   133,   167,   198,   219,   294,   295,   296,   297,
2324 >     298,   299,   300,   301,   302,   303,   307,     1,    34,    75,
2325 >     124,   365,   366,   367,   368,   369,   227,   227,   227,   227,
2326 >     227,   227,   227,   227,   225,   509,   224,   227,   227,   227,
2327 >     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
2328 >     227,   227,   227,   227,   225,   244,     1,    97,   215,   386,
2329 >     387,   388,   389,   224,   227,   225,   280,   166,   227,   225,
2330 >     372,     1,    97,   215,   219,   376,   377,   378,   379,   380,
2331 >     122,   122,   122,   224,   107,   107,   207,   107,   107,   234,
2332 >     234,   234,   107,   107,   107,   207,   207,   224,   224,   227,
2333 >     227,   227,   331,   227,   227,   227,   227,   227,   227,   227,
2334 >     227,   227,   227,   227,   227,   225,   314,   224,   227,   227,
2335 >     227,   227,   227,   227,   406,   227,   227,   227,   227,   227,
2336 >     227,   227,   225,   396,   227,   227,   225,   423,   122,   224,
2337 >     227,   227,   225,   433,   207,   234,   234,   107,   207,   107,
2338 >     122,   207,   234,   207,   107,   107,   234,   107,   207,   207,
2339 >     207,   234,   107,   107,   234,   107,   107,   107,   107,   207,
2340 >     227,   207,   227,   207,   234,   234,   207,   207,   207,   207,
2341 >     210,   207,   210,   207,   207,   122,   234,   207,   207,   234,
2342 >     234,   207,   207,   224,   224,   227,   227,   357,   227,   227,
2343 >     227,   227,   227,   225,   351,   227,   227,   225,   417,   224,
2344 >     227,   227,   337,   227,   225,   341,   122,   122,   224,   224,
2345 >     227,   227,   225,   275,   224,   227,   227,   308,   227,   227,
2346 >     227,   227,   304,   227,   225,   295,   224,   227,   227,   227,
2347 >     225,   366,   207,   207,   207,   122,   207,   207,   207,   234,
2348 >     224,   122,   207,   122,   107,   107,   122,   122,   122,   122,
2349 >     122,   122,   107,   122,   196,   197,   247,   248,   196,   197,
2350 >     249,   250,   122,   122,   224,   224,   227,   390,   225,   387,
2351 >     207,   224,   226,   122,   224,   224,   227,   381,   227,   225,
2352 >     377,   224,   224,   224,   224,   224,   224,   224,   134,   135,
2353 >     136,   137,   138,   139,   140,   233,   234,   224,   224,   224,
2354 >     224,   224,   224,   224,   224,   107,   107,   234,   227,   107,
2355 >     107,   234,   107,   107,   234,   122,   107,   107,   234,   107,
2356 >     236,   236,   224,   122,   171,   172,   122,   207,   122,   122,
2357 >     227,   122,   122,   107,   122,   122,   122,   122,   224,   122,
2358 >     122,   224,   224,   122,   122,   224,   224,   224,   224,   224,
2359 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2360 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2361 >     224,   224,    48,   157,   158,   159,   161,   162,   164,   165,
2362 >     168,   170,   173,   176,   177,   178,   180,   185,   189,   190,
2363 >     191,   199,   204,   487,   488,   224,    48,   157,   158,   159,
2364 >     161,   162,   164,   165,   168,   170,   173,   176,   177,   178,
2365 >     180,   185,   189,   190,   191,   199,   204,   483,   484,   224,
2366 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2367 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   122,
2368 >     207,   227,   122,   107,   122,   122,   122,   224,   122,   122,
2369 >     224,   122,   122,   227,   107,   344,   345,   224,   224,   224,
2370 >     122,   122,   224,   122,   207,   227,   122,   122,   122,   122,
2371 >     227,   122,   224,   122,   122,   122,   224,   224,   224,   224,
2372 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2373 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   228,
2374 >     224,   228,   224,   224,   122,   227,   224,   224,     1,    97,
2375 >     188,   215,   284,   285,   286,   287,   288,   224,   122,   227,
2376 >     122,   224,   233,   233,   233,   233,   233,   233,   233,   224,
2377 >     224,   224,    50,   123,   332,   333,   224,   224,   224,   224,
2378 >     224,   224,   224,   224,   224,   224,     9,    10,    11,   235,
2379 >     236,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2380 >       8,   192,   407,   408,   224,   224,   224,   224,   224,   224,
2381 >     224,   224,   224,   224,   224,   224,   228,   224,   228,   224,
2382 >     224,    13,    33,    42,    69,    98,    99,   106,   131,   147,
2383 >     206,   358,   359,   224,   224,   224,   224,   224,   224,   224,
2384 >     224,   224,    48,   182,   192,   338,   339,   214,   228,   343,
2385 >     224,   224,   224,   224,     4,    18,    25,    39,    66,    68,
2386 >      94,   127,   129,   148,   163,   169,   173,   178,   181,   186,
2387 >     200,   205,   216,   223,   309,   310,   224,   224,   224,   224,
2388 >      48,   157,   158,   159,   161,   162,   164,   165,   168,   170,
2389 >     173,   176,   177,   178,   180,   185,   189,   190,   191,   199,
2390 >     204,   305,   306,   224,   224,   224,   224,   248,   250,   224,
2391 >      68,   130,   156,   163,   173,   200,   202,   203,   216,   223,
2392 >     391,   392,   224,   227,   227,   289,   225,   285,   224,    68,
2393 >     130,   156,   163,   173,   200,   202,   203,   216,   223,   382,
2394 >     383,   224,   224,   228,   235,   235,   235,   224,   228,   488,
2395 >     484,   224,   228,   224,   228,   107,   345,   224,   229,   229,
2396 >     229,   224,   228,   224,   228,   224,   228,   122,   201,   236,
2397 >     227,   224,   224,   228,   333,   408,   359,   339,   128,   128,
2398 >     128,   310,   306,   392,   224,   224,   224,    39,    66,    68,
2399 >     113,   162,   163,   219,   290,   291,   383,   224,   228,   291
2400   };
2401  
2402   #define yyerrok         (yyerrstatus = 0)
# Line 2669 | Line 2411 | static const yytype_uint16 yystos[] =
2411  
2412   /* Like YYERROR except do call yyerror.  This remains here temporarily
2413     to ease the transition to the new meaning of YYERROR, for GCC.
2414 <   Once GCC version 2 has supplanted version 1, this can go.  */
2414 >   Once GCC version 2 has supplanted version 1, this can go.  However,
2415 >   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
2416 >   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2417 >   discussed.  */
2418  
2419   #define YYFAIL          goto yyerrlab
2420 + #if defined YYFAIL
2421 +  /* This is here to suppress warnings from the GCC cpp's
2422 +     -Wunused-macros.  Normally we don't worry about that warning, but
2423 +     some users do, and we want to make it easy for users to remove
2424 +     YYFAIL uses, which will produce warnings from Bison 2.5.  */
2425 + #endif
2426  
2427   #define YYRECOVERING()  (!!yyerrstatus)
2428  
2429 < #define YYBACKUP(Token, Value)                                  \
2430 < do                                                              \
2431 <  if (yychar == YYEMPTY && yylen == 1)                          \
2432 <    {                                                           \
2433 <      yychar = (Token);                                         \
2434 <      yylval = (Value);                                         \
2435 <      yytoken = YYTRANSLATE (yychar);                           \
2436 <      YYPOPSTACK (1);                                           \
2437 <      goto yybackup;                                            \
2438 <    }                                                           \
2439 <  else                                                          \
2440 <    {                                                           \
2429 > #define YYBACKUP(Token, Value)                                  \
2430 > do                                                              \
2431 >  if (yychar == YYEMPTY)                                        \
2432 >    {                                                           \
2433 >      yychar = (Token);                                         \
2434 >      yylval = (Value);                                         \
2435 >      YYPOPSTACK (yylen);                                       \
2436 >      yystate = *yyssp;                                         \
2437 >      goto yybackup;                                            \
2438 >    }                                                           \
2439 >  else                                                          \
2440 >    {                                                           \
2441        yyerror (YY_("syntax error: cannot back up")); \
2442        YYERROR;                                                  \
2443      }                                                           \
2444   while (YYID (0))
2445  
2446 <
2446 > /* Error token number */
2447   #define YYTERROR        1
2448   #define YYERRCODE       256
2449  
2450  
2451 < /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2701 <   If N is 0, then set CURRENT to the empty location which ends
2702 <   the previous symbol: RHS[0] (always defined).  */
2703 <
2704 < #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2705 < #ifndef YYLLOC_DEFAULT
2706 < # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2707 <    do                                                                  \
2708 <      if (YYID (N))                                                    \
2709 <        {                                                               \
2710 <          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2711 <          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2712 <          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2713 <          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2714 <        }                                                               \
2715 <      else                                                              \
2716 <        {                                                               \
2717 <          (Current).first_line   = (Current).last_line   =              \
2718 <            YYRHSLOC (Rhs, 0).last_line;                                \
2719 <          (Current).first_column = (Current).last_column =              \
2720 <            YYRHSLOC (Rhs, 0).last_column;                              \
2721 <        }                                                               \
2722 <    while (YYID (0))
2723 < #endif
2724 <
2725 <
2726 < /* YY_LOCATION_PRINT -- Print the location on the stream.
2727 <   This macro was not mandated originally: define only if we know
2728 <   we won't break user code: when these are the locations we know.  */
2729 <
2451 > /* This macro is provided for backward compatibility. */
2452   #ifndef YY_LOCATION_PRINT
2453 < # if YYLTYPE_IS_TRIVIAL
2732 < #  define YY_LOCATION_PRINT(File, Loc)                  \
2733 <     fprintf (File, "%d.%d-%d.%d",                      \
2734 <              (Loc).first_line, (Loc).first_column,     \
2735 <              (Loc).last_line,  (Loc).last_column)
2736 < # else
2737 < #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2738 < # endif
2453 > # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2454   #endif
2455  
2456  
2457   /* YYLEX -- calling `yylex' with the right arguments.  */
2743
2458   #ifdef YYLEX_PARAM
2459   # define YYLEX yylex (YYLEX_PARAM)
2460   #else
# Line 2790 | Line 2504 | yy_symbol_value_print (yyoutput, yytype,
2504      YYSTYPE const * const yyvaluep;
2505   #endif
2506   {
2507 +  FILE *yyo = yyoutput;
2508 +  YYUSE (yyo);
2509    if (!yyvaluep)
2510      return;
2511   # ifdef YYPRINT
# Line 2798 | Line 2514 | yy_symbol_value_print (yyoutput, yytype,
2514   # else
2515    YYUSE (yyoutput);
2516   # endif
2517 <  switch (yytype)
2802 <    {
2803 <      default:
2804 <        break;
2805 <    }
2517 >  YYUSE (yytype);
2518   }
2519  
2520  
# Line 2927 | Line 2639 | int yydebug;
2639   # define YYMAXDEPTH 10000
2640   #endif
2641  
2930
2642  
2643   #if YYERROR_VERBOSE
2644  
# Line 3030 | Line 2741 | yytnamerr (char *yyres, const char *yyst
2741   }
2742   # endif
2743  
2744 < /* Copy into YYRESULT an error message about the unexpected token
2745 <   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
2746 <   including the terminating null byte.  If YYRESULT is null, do not
2747 <   copy anything; just return the number of bytes that would be
2748 <   copied.  As a special case, return 0 if an ordinary "syntax error"
2749 <   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
2750 <   size calculation.  */
2751 < static YYSIZE_T
2752 < yysyntax_error (char *yyresult, int yystate, int yychar)
2744 > /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2745 >   about the unexpected token YYTOKEN for the state stack whose top is
2746 >   YYSSP.
2747 >
2748 >   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
2749 >   not large enough to hold the message.  In that case, also set
2750 >   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
2751 >   required number of bytes is too large to store.  */
2752 > static int
2753 > yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2754 >                yytype_int16 *yyssp, int yytoken)
2755   {
2756 <  int yyn = yypact[yystate];
2756 >  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
2757 >  YYSIZE_T yysize = yysize0;
2758 >  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2759 >  /* Internationalized format string. */
2760 >  const char *yyformat = YY_NULL;
2761 >  /* Arguments of yyformat. */
2762 >  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2763 >  /* Number of reported tokens (one for the "unexpected", one per
2764 >     "expected"). */
2765 >  int yycount = 0;
2766 >
2767 >  /* There are many possibilities here to consider:
2768 >     - Assume YYFAIL is not used.  It's too flawed to consider.  See
2769 >       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
2770 >       for details.  YYERROR is fine as it does not invoke this
2771 >       function.
2772 >     - If this state is a consistent state with a default action, then
2773 >       the only way this function was invoked is if the default action
2774 >       is an error action.  In that case, don't check for expected
2775 >       tokens because there are none.
2776 >     - The only way there can be no lookahead present (in yychar) is if
2777 >       this state is a consistent state with a default action.  Thus,
2778 >       detecting the absence of a lookahead is sufficient to determine
2779 >       that there is no unexpected or expected token to report.  In that
2780 >       case, just report a simple "syntax error".
2781 >     - Don't assume there isn't a lookahead just because this state is a
2782 >       consistent state with a default action.  There might have been a
2783 >       previous inconsistent state, consistent state with a non-default
2784 >       action, or user semantic action that manipulated yychar.
2785 >     - Of course, the expected token list depends on states to have
2786 >       correct lookahead information, and it depends on the parser not
2787 >       to perform extra reductions after fetching a lookahead from the
2788 >       scanner and before detecting a syntax error.  Thus, state merging
2789 >       (from LALR or IELR) and default reductions corrupt the expected
2790 >       token list.  However, the list is correct for canonical LR with
2791 >       one exception: it will still contain any token that will not be
2792 >       accepted due to an error action in a later state.
2793 >  */
2794 >  if (yytoken != YYEMPTY)
2795 >    {
2796 >      int yyn = yypact[*yyssp];
2797 >      yyarg[yycount++] = yytname[yytoken];
2798 >      if (!yypact_value_is_default (yyn))
2799 >        {
2800 >          /* Start YYX at -YYN if negative to avoid negative indexes in
2801 >             YYCHECK.  In other words, skip the first -YYN actions for
2802 >             this state because they are default actions.  */
2803 >          int yyxbegin = yyn < 0 ? -yyn : 0;
2804 >          /* Stay within bounds of both yycheck and yytname.  */
2805 >          int yychecklim = YYLAST - yyn + 1;
2806 >          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2807 >          int yyx;
2808 >
2809 >          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2810 >            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
2811 >                && !yytable_value_is_error (yytable[yyx + yyn]))
2812 >              {
2813 >                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2814 >                  {
2815 >                    yycount = 1;
2816 >                    yysize = yysize0;
2817 >                    break;
2818 >                  }
2819 >                yyarg[yycount++] = yytname[yyx];
2820 >                {
2821 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2822 >                  if (! (yysize <= yysize1
2823 >                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2824 >                    return 2;
2825 >                  yysize = yysize1;
2826 >                }
2827 >              }
2828 >        }
2829 >    }
2830  
2831 <  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
3046 <    return 0;
3047 <  else
2831 >  switch (yycount)
2832      {
2833 <      int yytype = YYTRANSLATE (yychar);
2834 <      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
2835 <      YYSIZE_T yysize = yysize0;
2836 <      YYSIZE_T yysize1;
2837 <      int yysize_overflow = 0;
2838 <      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2839 <      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2840 <      int yyx;
2841 <
2842 < # if 0
2843 <      /* This is so xgettext sees the translatable formats that are
2844 <         constructed on the fly.  */
3061 <      YY_("syntax error, unexpected %s");
3062 <      YY_("syntax error, unexpected %s, expecting %s");
3063 <      YY_("syntax error, unexpected %s, expecting %s or %s");
3064 <      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
3065 <      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
3066 < # endif
3067 <      char *yyfmt;
3068 <      char const *yyf;
3069 <      static char const yyunexpected[] = "syntax error, unexpected %s";
3070 <      static char const yyexpecting[] = ", expecting %s";
3071 <      static char const yyor[] = " or %s";
3072 <      char yyformat[sizeof yyunexpected
3073 <                    + sizeof yyexpecting - 1
3074 <                    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
3075 <                       * (sizeof yyor - 1))];
3076 <      char const *yyprefix = yyexpecting;
3077 <
3078 <      /* Start YYX at -YYN if negative to avoid negative indexes in
3079 <         YYCHECK.  */
3080 <      int yyxbegin = yyn < 0 ? -yyn : 0;
3081 <
3082 <      /* Stay within bounds of both yycheck and yytname.  */
3083 <      int yychecklim = YYLAST - yyn + 1;
3084 <      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3085 <      int yycount = 1;
3086 <
3087 <      yyarg[0] = yytname[yytype];
3088 <      yyfmt = yystpcpy (yyformat, yyunexpected);
3089 <
3090 <      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3091 <        if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
3092 <          {
3093 <            if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3094 <              {
3095 <                yycount = 1;
3096 <                yysize = yysize0;
3097 <                yyformat[sizeof yyunexpected - 1] = '\0';
3098 <                break;
3099 <              }
3100 <            yyarg[yycount++] = yytname[yyx];
3101 <            yysize1 = yysize + yytnamerr (0, yytname[yyx]);
3102 <            yysize_overflow |= (yysize1 < yysize);
3103 <            yysize = yysize1;
3104 <            yyfmt = yystpcpy (yyfmt, yyprefix);
3105 <            yyprefix = yyor;
3106 <          }
3107 <
3108 <      yyf = YY_(yyformat);
3109 <      yysize1 = yysize + yystrlen (yyf);
3110 <      yysize_overflow |= (yysize1 < yysize);
3111 <      yysize = yysize1;
2833 > # define YYCASE_(N, S)                      \
2834 >      case N:                               \
2835 >        yyformat = S;                       \
2836 >      break
2837 >      YYCASE_(0, YY_("syntax error"));
2838 >      YYCASE_(1, YY_("syntax error, unexpected %s"));
2839 >      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2840 >      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2841 >      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2842 >      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2843 > # undef YYCASE_
2844 >    }
2845  
2846 <      if (yysize_overflow)
2847 <        return YYSIZE_MAXIMUM;
2846 >  {
2847 >    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2848 >    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2849 >      return 2;
2850 >    yysize = yysize1;
2851 >  }
2852  
2853 <      if (yyresult)
2854 <        {
2855 <          /* Avoid sprintf, as that infringes on the user's name space.
2856 <             Don't have undefined behavior even if the translation
2857 <             produced a string with the wrong number of "%s"s.  */
2858 <          char *yyp = yyresult;
2859 <          int yyi = 0;
3123 <          while ((*yyp = *yyf) != '\0')
3124 <            {
3125 <              if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
3126 <                {
3127 <                  yyp += yytnamerr (yyp, yyarg[yyi++]);
3128 <                  yyf += 2;
3129 <                }
3130 <              else
3131 <                {
3132 <                  yyp++;
3133 <                  yyf++;
3134 <                }
3135 <            }
3136 <        }
3137 <      return yysize;
2853 >  if (*yymsg_alloc < yysize)
2854 >    {
2855 >      *yymsg_alloc = 2 * yysize;
2856 >      if (! (yysize <= *yymsg_alloc
2857 >             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2858 >        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2859 >      return 1;
2860      }
2861 +
2862 +  /* Avoid sprintf, as that infringes on the user's name space.
2863 +     Don't have undefined behavior even if the translation
2864 +     produced a string with the wrong number of "%s"s.  */
2865 +  {
2866 +    char *yyp = *yymsg;
2867 +    int yyi = 0;
2868 +    while ((*yyp = *yyformat) != '\0')
2869 +      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2870 +        {
2871 +          yyp += yytnamerr (yyp, yyarg[yyi++]);
2872 +          yyformat += 2;
2873 +        }
2874 +      else
2875 +        {
2876 +          yyp++;
2877 +          yyformat++;
2878 +        }
2879 +  }
2880 +  return 0;
2881   }
2882   #endif /* YYERROR_VERBOSE */
3141
2883  
2884   /*-----------------------------------------------.
2885   | Release the memory associated to this symbol.  |
# Line 3163 | Line 2904 | yydestruct (yymsg, yytype, yyvaluep)
2904      yymsg = "Deleting";
2905    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2906  
2907 <  switch (yytype)
3167 <    {
3168 <
3169 <      default:
3170 <        break;
3171 <    }
2907 >  YYUSE (yytype);
2908   }
2909  
2910 < /* Prevent warnings from -Wmissing-prototypes.  */
3175 < #ifdef YYPARSE_PARAM
3176 < #if defined __STDC__ || defined __cplusplus
3177 < int yyparse (void *YYPARSE_PARAM);
3178 < #else
3179 < int yyparse ();
3180 < #endif
3181 < #else /* ! YYPARSE_PARAM */
3182 < #if defined __STDC__ || defined __cplusplus
3183 < int yyparse (void);
3184 < #else
3185 < int yyparse ();
3186 < #endif
3187 < #endif /* ! YYPARSE_PARAM */
2910 >
2911  
2912  
2913   /* The lookahead symbol.  */
2914   int yychar;
2915  
2916 +
2917 + #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2918 + # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2919 + # define YY_IGNORE_MAYBE_UNINITIALIZED_END
2920 + #endif
2921 + #ifndef YY_INITIAL_VALUE
2922 + # define YY_INITIAL_VALUE(Value) /* Nothing. */
2923 + #endif
2924 +
2925   /* The semantic value of the lookahead symbol.  */
2926 < YYSTYPE yylval;
2926 > YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
2927  
2928   /* Number of syntax errors so far.  */
2929   int yynerrs;
2930  
2931  
2932 <
2933 < /*-------------------------.
2934 < | yyparse or yypush_parse.  |
3203 < `-------------------------*/
2932 > /*----------.
2933 > | yyparse.  |
2934 > `----------*/
2935  
2936   #ifdef YYPARSE_PARAM
2937   #if (defined __STDC__ || defined __C99__FUNC__ \
# Line 3224 | Line 2955 | yyparse ()
2955   #endif
2956   #endif
2957   {
3227
3228
2958      int yystate;
2959      /* Number of tokens to shift before error messages enabled.  */
2960      int yyerrstatus;
# Line 3234 | Line 2963 | yyparse ()
2963         `yyss': related to states.
2964         `yyvs': related to semantic values.
2965  
2966 <       Refer to the stacks thru separate pointers, to allow yyoverflow
2966 >       Refer to the stacks through separate pointers, to allow yyoverflow
2967         to reallocate them elsewhere.  */
2968  
2969      /* The state stack.  */
# Line 3252 | Line 2981 | yyparse ()
2981    int yyn;
2982    int yyresult;
2983    /* Lookahead token as an internal (translated) token number.  */
2984 <  int yytoken;
2984 >  int yytoken = 0;
2985    /* The variables used to return semantic value and location from the
2986       action routines.  */
2987    YYSTYPE yyval;
# Line 3270 | Line 2999 | yyparse ()
2999       Keep to zero when no symbol should be popped.  */
3000    int yylen = 0;
3001  
3002 <  yytoken = 0;
3003 <  yyss = yyssa;
3275 <  yyvs = yyvsa;
3002 >  yyssp = yyss = yyssa;
3003 >  yyvsp = yyvs = yyvsa;
3004    yystacksize = YYINITDEPTH;
3005  
3006    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 3281 | Line 3009 | yyparse ()
3009    yyerrstatus = 0;
3010    yynerrs = 0;
3011    yychar = YYEMPTY; /* Cause a token to be read.  */
3284
3285  /* Initialize stack pointers.
3286     Waste one element of value and location stack
3287     so that they stay on the same level as the state stack.
3288     The wasted elements are never initialized.  */
3289  yyssp = yyss;
3290  yyvsp = yyvs;
3291
3012    goto yysetstate;
3013  
3014   /*------------------------------------------------------------.
# Line 3380 | Line 3100 | yybackup:
3100  
3101    /* First try to decide what to do without reference to lookahead token.  */
3102    yyn = yypact[yystate];
3103 <  if (yyn == YYPACT_NINF)
3103 >  if (yypact_value_is_default (yyn))
3104      goto yydefault;
3105  
3106    /* Not known => get a lookahead token if don't already have one.  */
# Line 3411 | Line 3131 | yybackup:
3131    yyn = yytable[yyn];
3132    if (yyn <= 0)
3133      {
3134 <      if (yyn == 0 || yyn == YYTABLE_NINF)
3135 <        goto yyerrlab;
3134 >      if (yytable_value_is_error (yyn))
3135 >        goto yyerrlab;
3136        yyn = -yyn;
3137        goto yyreduce;
3138      }
# Line 3429 | Line 3149 | yybackup:
3149    yychar = YYEMPTY;
3150  
3151    yystate = yyn;
3152 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3153    *++yyvsp = yylval;
3154 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
3155  
3156    goto yynewstate;
3157  
# Line 3465 | Line 3187 | yyreduce:
3187    YY_REDUCE_PRINT (yyn);
3188    switch (yyn)
3189      {
3190 <        case 26:
3191 <
3192 < /* Line 1455 of yacc.c  */
3471 < #line 432 "ircd_parser.y"
3190 >        case 27:
3191 > /* Line 1787 of yacc.c  */
3192 > #line 397 "conf_parser.y"
3193      { (yyval.number) = 0; }
3194      break;
3195  
3196 <  case 28:
3197 <
3198 < /* Line 1455 of yacc.c  */
3478 < #line 434 "ircd_parser.y"
3196 >  case 29:
3197 > /* Line 1787 of yacc.c  */
3198 > #line 399 "conf_parser.y"
3199      {
3200                          (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3201                  }
3202      break;
3203  
3204 <  case 29:
3205 <
3206 < /* Line 1455 of yacc.c  */
3487 < #line 438 "ircd_parser.y"
3204 >  case 30:
3205 > /* Line 1787 of yacc.c  */
3206 > #line 403 "conf_parser.y"
3207      {
3208                          (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3209                  }
3210      break;
3211  
3212 <  case 30:
3213 <
3214 < /* Line 1455 of yacc.c  */
3496 < #line 442 "ircd_parser.y"
3212 >  case 31:
3213 > /* Line 1787 of yacc.c  */
3214 > #line 407 "conf_parser.y"
3215      {
3216                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3217                  }
3218      break;
3219  
3220 <  case 31:
3221 <
3222 < /* Line 1455 of yacc.c  */
3505 < #line 446 "ircd_parser.y"
3220 >  case 32:
3221 > /* Line 1787 of yacc.c  */
3222 > #line 411 "conf_parser.y"
3223      {
3224                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3225                  }
3226      break;
3227  
3228 <  case 32:
3229 <
3230 < /* Line 1455 of yacc.c  */
3514 < #line 450 "ircd_parser.y"
3228 >  case 33:
3229 > /* Line 1787 of yacc.c  */
3230 > #line 415 "conf_parser.y"
3231      {
3232                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3233                  }
3234      break;
3235  
3236 <  case 33:
3237 <
3238 < /* Line 1455 of yacc.c  */
3523 < #line 454 "ircd_parser.y"
3236 >  case 34:
3237 > /* Line 1787 of yacc.c  */
3238 > #line 419 "conf_parser.y"
3239      {
3240                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3241                  }
3242      break;
3243  
3244 <  case 34:
3245 <
3246 < /* Line 1455 of yacc.c  */
3247 < #line 459 "ircd_parser.y"
3248 <    { (yyval.number) = 0; }
3244 >  case 35:
3245 > /* Line 1787 of yacc.c  */
3246 > #line 423 "conf_parser.y"
3247 >    {
3248 >                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[(3) - (3)].number);
3249 >                }
3250      break;
3251  
3252    case 36:
3253 <
3254 < /* Line 1455 of yacc.c  */
3255 < #line 460 "ircd_parser.y"
3256 <    { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
3253 > /* Line 1787 of yacc.c  */
3254 > #line 427 "conf_parser.y"
3255 >    {
3256 >                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 365 + (yyvsp[(3) - (3)].number);
3257 >                }
3258      break;
3259  
3260    case 37:
3261 + /* Line 1787 of yacc.c  */
3262 + #line 432 "conf_parser.y"
3263 +    { (yyval.number) = 0; }
3264 +    break;
3265  
3266 < /* Line 1455 of yacc.c  */
3267 < #line 461 "ircd_parser.y"
3268 <    { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
3266 >  case 39:
3267 > /* Line 1787 of yacc.c  */
3268 > #line 433 "conf_parser.y"
3269 >    { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
3270      break;
3271  
3272 <  case 38:
3272 >  case 40:
3273 > /* Line 1787 of yacc.c  */
3274 > #line 434 "conf_parser.y"
3275 >    { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
3276 >    break;
3277  
3278 < /* Line 1455 of yacc.c  */
3279 < #line 462 "ircd_parser.y"
3278 >  case 41:
3279 > /* Line 1787 of yacc.c  */
3280 > #line 435 "conf_parser.y"
3281      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
3282      break;
3283  
3284 <  case 39:
3285 <
3286 < /* Line 1455 of yacc.c  */
3560 < #line 463 "ircd_parser.y"
3284 >  case 42:
3285 > /* Line 1787 of yacc.c  */
3286 > #line 436 "conf_parser.y"
3287      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
3288      break;
3289  
3290 <  case 46:
3291 <
3292 < /* Line 1455 of yacc.c  */
3567 < #line 477 "ircd_parser.y"
3290 >  case 49:
3291 > /* Line 1787 of yacc.c  */
3292 > #line 450 "conf_parser.y"
3293      {
3569 #ifndef STATIC_MODULES /* NOOP in the static case */
3294    if (conf_parser_ctx.pass == 2)
3295      add_conf_module(libio_basename(yylval.string));
3572 #endif
3296   }
3297      break;
3298  
3299 <  case 47:
3300 <
3301 < /* Line 1455 of yacc.c  */
3579 < #line 485 "ircd_parser.y"
3299 >  case 50:
3300 > /* Line 1787 of yacc.c  */
3301 > #line 456 "conf_parser.y"
3302      {
3581 #ifndef STATIC_MODULES
3303    if (conf_parser_ctx.pass == 2)
3304      mod_add_path(yylval.string);
3584 #endif
3305   }
3306      break;
3307  
3308 <  case 64:
3309 <
3310 < /* Line 1455 of yacc.c  */
3591 < #line 507 "ircd_parser.y"
3308 >  case 76:
3309 > /* Line 1787 of yacc.c  */
3310 > #line 482 "conf_parser.y"
3311      {
3312 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3313 <    ServerInfo.tls_version = 0;
3312 > #ifdef HAVE_LIBCRYPTO
3313 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3314 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
3315 > #endif
3316   }
3317      break;
3318  
3319 <  case 65:
3320 <
3321 < /* Line 1455 of yacc.c  */
3601 < #line 511 "ircd_parser.y"
3319 >  case 77:
3320 > /* Line 1787 of yacc.c  */
3321 > #line 488 "conf_parser.y"
3322      {
3323 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3324 <  {
3325 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_SSLV3))
3326 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3607 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_TLSV1))
3608 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3609 <  }
3323 > #ifdef HAVE_LIBCRYPTO
3324 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3325 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
3326 > #endif
3327   }
3328      break;
3329  
3330 <  case 68:
3331 <
3332 < /* Line 1455 of yacc.c  */
3616 < #line 523 "ircd_parser.y"
3330 >  case 80:
3331 > /* Line 1787 of yacc.c  */
3332 > #line 497 "conf_parser.y"
3333      {
3334 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3335 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_SSLV3;
3334 > #ifdef HAVE_LIBCRYPTO
3335 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3336 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3337 > #endif
3338   }
3339      break;
3340  
3341 <  case 69:
3342 <
3343 < /* Line 1455 of yacc.c  */
3626 < #line 527 "ircd_parser.y"
3341 >  case 81:
3342 > /* Line 1787 of yacc.c  */
3343 > #line 503 "conf_parser.y"
3344      {
3345 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3346 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_TLSV1;
3345 > #ifdef HAVE_LIBCRYPTO
3346 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3347 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3348 > #endif
3349   }
3350      break;
3351  
3352 <  case 70:
3353 <
3354 < /* Line 1455 of yacc.c  */
3636 < #line 533 "ircd_parser.y"
3352 >  case 82:
3353 > /* Line 1787 of yacc.c  */
3354 > #line 511 "conf_parser.y"
3355      {
3356   #ifdef HAVE_LIBCRYPTO
3357    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3358    {
3359      if (!ServerInfo.rsa_private_key_file)
3360      {
3361 <      yyerror("No rsa_private_key_file specified, SSL disabled");
3361 >      conf_error_report("No rsa_private_key_file specified, SSL disabled");
3362        break;
3363      }
3364  
3365      if (SSL_CTX_use_certificate_file(ServerInfo.server_ctx, yylval.string,
3366 +                                     SSL_FILETYPE_PEM) <= 0 ||
3367 +        SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3368                                       SSL_FILETYPE_PEM) <= 0)
3369      {
3370 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3370 >      report_crypto_errors();
3371 >      conf_error_report("Could not open/read certificate file");
3372        break;
3373      }
3374  
3375      if (SSL_CTX_use_PrivateKey_file(ServerInfo.server_ctx, ServerInfo.rsa_private_key_file,
3376 +                                    SSL_FILETYPE_PEM) <= 0 ||
3377 +        SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3378                                      SSL_FILETYPE_PEM) <= 0)
3379      {
3380 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3380 >      report_crypto_errors();
3381 >      conf_error_report("Could not read RSA private key");
3382        break;
3383      }
3384  
3385 <    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx))
3385 >    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3386 >        !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3387      {
3388 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3388 >      report_crypto_errors();
3389 >      conf_error_report("Could not read RSA private key");
3390        break;
3391      }
3392    }
# Line 3668 | Line 3394 | yyreduce:
3394   }
3395      break;
3396  
3397 <  case 71:
3398 <
3399 < /* Line 1455 of yacc.c  */
3674 < #line 567 "ircd_parser.y"
3397 >  case 83:
3398 > /* Line 1787 of yacc.c  */
3399 > #line 553 "conf_parser.y"
3400      {
3401   #ifdef HAVE_LIBCRYPTO
3402 <  if (conf_parser_ctx.pass == 1)
3402 >  BIO *file = NULL;
3403 >
3404 >  if (conf_parser_ctx.pass != 1)
3405 >    break;
3406 >
3407 >  if (ServerInfo.rsa_private_key)
3408    {
3409 <    BIO *file;
3409 >    RSA_free(ServerInfo.rsa_private_key);
3410 >    ServerInfo.rsa_private_key = NULL;
3411 >  }
3412  
3413 <    if (ServerInfo.rsa_private_key)
3414 <    {
3415 <      RSA_free(ServerInfo.rsa_private_key);
3416 <      ServerInfo.rsa_private_key = NULL;
3417 <    }
3413 >  if (ServerInfo.rsa_private_key_file)
3414 >  {
3415 >    MyFree(ServerInfo.rsa_private_key_file);
3416 >    ServerInfo.rsa_private_key_file = NULL;
3417 >  }
3418  
3419 <    if (ServerInfo.rsa_private_key_file)
3420 <    {
3421 <      MyFree(ServerInfo.rsa_private_key_file);
3422 <      ServerInfo.rsa_private_key_file = NULL;
3423 <    }
3419 >  ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3420 >
3421 >  if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3422 >  {
3423 >    conf_error_report("File open failed, ignoring");
3424 >    break;
3425 >  }
3426  
3427 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3427 >  ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3428  
3429 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3430 <    {
3697 <      yyerror("File open failed, ignoring");
3698 <      break;
3699 <    }
3429 >  BIO_set_close(file, BIO_CLOSE);
3430 >  BIO_free(file);
3431  
3432 <    ServerInfo.rsa_private_key = (RSA *)PEM_read_bio_RSAPrivateKey(file, NULL,
3433 <      0, NULL);
3432 >  if (ServerInfo.rsa_private_key == NULL)
3433 >  {
3434 >    conf_error_report("Couldn't extract key, ignoring");
3435 >    break;
3436 >  }
3437 >
3438 >  if (!RSA_check_key(ServerInfo.rsa_private_key))
3439 >  {
3440 >    RSA_free(ServerInfo.rsa_private_key);
3441 >    ServerInfo.rsa_private_key = NULL;
3442  
3443 <    BIO_set_close(file, BIO_CLOSE);
3444 <    BIO_free(file);
3443 >    conf_error_report("Invalid key, ignoring");
3444 >    break;
3445 >  }
3446 >
3447 >  /* require 2048 bit (256 byte) key */
3448 >  if (RSA_size(ServerInfo.rsa_private_key) != 256)
3449 >  {
3450 >    RSA_free(ServerInfo.rsa_private_key);
3451 >    ServerInfo.rsa_private_key = NULL;
3452  
3453 <    if (ServerInfo.rsa_private_key == NULL)
3453 >    conf_error_report("Not a 2048 bit key, ignoring");
3454 >  }
3455 > #endif
3456 > }
3457 >    break;
3458 >
3459 >  case 84:
3460 > /* Line 1787 of yacc.c  */
3461 > #line 612 "conf_parser.y"
3462      {
3463 <      yyerror("Couldn't extract key, ignoring");
3464 <      break;
3465 <    }
3463 > /* TBD - XXX: error reporting */
3464 > #ifdef HAVE_LIBCRYPTO
3465 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3466 >  {
3467 >    BIO *file = BIO_new_file(yylval.string, "r");
3468  
3469 <    if (!RSA_check_key(ServerInfo.rsa_private_key))
3469 >    if (file)
3470      {
3471 <      RSA_free(ServerInfo.rsa_private_key);
3716 <      ServerInfo.rsa_private_key = NULL;
3471 >      DH *dh = PEM_read_bio_DHparams(file, NULL, NULL, NULL);
3472  
3473 <      yyerror("Invalid key, ignoring");
3719 <      break;
3720 <    }
3473 >      BIO_free(file);
3474  
3475 <    /* require 2048 bit (256 byte) key */
3476 <    if (RSA_size(ServerInfo.rsa_private_key) != 256)
3477 <    {
3478 <      RSA_free(ServerInfo.rsa_private_key);
3479 <      ServerInfo.rsa_private_key = NULL;
3475 >      if (dh)
3476 >      {
3477 >        if (DH_size(dh) < 128)
3478 >          conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3479 >        else
3480 >          SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3481  
3482 <      yyerror("Not a 2048 bit key, ignoring");
3482 >        DH_free(dh);
3483 >      }
3484      }
3485    }
3486   #endif
3487   }
3488      break;
3489  
3490 <  case 72:
3490 >  case 85:
3491 > /* Line 1787 of yacc.c  */
3492 > #line 640 "conf_parser.y"
3493 >    {
3494 > #ifdef HAVE_LIBCRYPTO
3495 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3496 >    SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3497 > #endif
3498 > }
3499 >    break;
3500  
3501 < /* Line 1455 of yacc.c  */
3502 < #line 627 "ircd_parser.y"
3501 >  case 86:
3502 > /* Line 1787 of yacc.c  */
3503 > #line 648 "conf_parser.y"
3504      {
3505    /* this isn't rehashable */
3506 <  if (conf_parser_ctx.pass == 2)
3506 >  if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3507    {
3508 <    if (ServerInfo.name == NULL)
3508 >    if (valid_servname(yylval.string))
3509 >      ServerInfo.name = xstrdup(yylval.string);
3510 >    else
3511      {
3512 <      /* the ircd will exit() in main() if we dont set one */
3513 <      if (strlen(yylval.string) <= HOSTLEN)
3747 <        DupString(ServerInfo.name, yylval.string);
3512 >      conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3513 >      exit(0);
3514      }
3515    }
3516   }
3517      break;
3518  
3519 <  case 73:
3520 <
3521 < /* Line 1455 of yacc.c  */
3756 < #line 641 "ircd_parser.y"
3519 >  case 87:
3520 > /* Line 1787 of yacc.c  */
3521 > #line 663 "conf_parser.y"
3522      {
3523    /* this isn't rehashable */
3524    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3525    {
3526      if (valid_sid(yylval.string))
3527 <      DupString(ServerInfo.sid, yylval.string);
3527 >      ServerInfo.sid = xstrdup(yylval.string);
3528      else
3529      {
3530 <      ilog(L_ERROR, "Ignoring config file entry SID -- invalid SID. Aborting.");
3530 >      conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3531        exit(0);
3532      }
3533    }
3534   }
3535      break;
3536  
3537 <  case 74:
3538 <
3539 < /* Line 1455 of yacc.c  */
3775 < #line 656 "ircd_parser.y"
3537 >  case 88:
3538 > /* Line 1787 of yacc.c  */
3539 > #line 678 "conf_parser.y"
3540      {
3541    if (conf_parser_ctx.pass == 2)
3542    {
3543      MyFree(ServerInfo.description);
3544 <    DupString(ServerInfo.description,yylval.string);
3544 >    ServerInfo.description = xstrdup(yylval.string);
3545    }
3546   }
3547      break;
3548  
3549 <  case 75:
3550 <
3551 < /* Line 1455 of yacc.c  */
3788 < #line 665 "ircd_parser.y"
3549 >  case 89:
3550 > /* Line 1787 of yacc.c  */
3551 > #line 687 "conf_parser.y"
3552      {
3553    if (conf_parser_ctx.pass == 2)
3554    {
# Line 3795 | Line 3558 | yyreduce:
3558        p = '\0';
3559  
3560      MyFree(ServerInfo.network_name);
3561 <    DupString(ServerInfo.network_name, yylval.string);
3561 >    ServerInfo.network_name = xstrdup(yylval.string);
3562    }
3563   }
3564      break;
3565  
3566 <  case 76:
3567 <
3568 < /* Line 1455 of yacc.c  */
3806 < #line 679 "ircd_parser.y"
3566 >  case 90:
3567 > /* Line 1787 of yacc.c  */
3568 > #line 701 "conf_parser.y"
3569      {
3570 <  if (conf_parser_ctx.pass == 2)
3809 <  {
3810 <    MyFree(ServerInfo.network_desc);
3811 <    DupString(ServerInfo.network_desc, yylval.string);
3812 <  }
3813 < }
3570 >  if (conf_parser_ctx.pass != 2)
3571      break;
3572  
3573 <  case 77:
3573 >  MyFree(ServerInfo.network_desc);
3574 >  ServerInfo.network_desc = xstrdup(yylval.string);
3575 > }
3576 >    break;
3577  
3578 < /* Line 1455 of yacc.c  */
3579 < #line 688 "ircd_parser.y"
3578 >  case 91:
3579 > /* Line 1787 of yacc.c  */
3580 > #line 710 "conf_parser.y"
3581      {
3582    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3583    {
# Line 3828 | Line 3589 | yyreduce:
3589      hints.ai_socktype = SOCK_STREAM;
3590      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3591  
3592 <    if (irc_getaddrinfo(yylval.string, NULL, &hints, &res))
3593 <      ilog(L_ERROR, "Invalid netmask for server vhost(%s)", yylval.string);
3592 >    if (getaddrinfo(yylval.string, NULL, &hints, &res))
3593 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3594      else
3595      {
3596        assert(res != NULL);
# Line 3837 | Line 3598 | yyreduce:
3598        memcpy(&ServerInfo.ip, res->ai_addr, res->ai_addrlen);
3599        ServerInfo.ip.ss.ss_family = res->ai_family;
3600        ServerInfo.ip.ss_len = res->ai_addrlen;
3601 <      irc_freeaddrinfo(res);
3601 >      freeaddrinfo(res);
3602  
3603        ServerInfo.specific_ipv4_vhost = 1;
3604      }
# Line 3845 | Line 3606 | yyreduce:
3606   }
3607      break;
3608  
3609 <  case 78:
3610 <
3611 < /* Line 1455 of yacc.c  */
3851 < #line 716 "ircd_parser.y"
3609 >  case 92:
3610 > /* Line 1787 of yacc.c  */
3611 > #line 738 "conf_parser.y"
3612      {
3613   #ifdef IPV6
3614    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3861 | Line 3621 | yyreduce:
3621      hints.ai_socktype = SOCK_STREAM;
3622      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3623  
3624 <    if (irc_getaddrinfo(yylval.string, NULL, &hints, &res))
3625 <      ilog(L_ERROR, "Invalid netmask for server vhost6(%s)", yylval.string);
3624 >    if (getaddrinfo(yylval.string, NULL, &hints, &res))
3625 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3626      else
3627      {
3628        assert(res != NULL);
# Line 3870 | Line 3630 | yyreduce:
3630        memcpy(&ServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3631        ServerInfo.ip6.ss.ss_family = res->ai_family;
3632        ServerInfo.ip6.ss_len = res->ai_addrlen;
3633 <      irc_freeaddrinfo(res);
3633 >      freeaddrinfo(res);
3634  
3635        ServerInfo.specific_ipv6_vhost = 1;
3636      }
# Line 3879 | Line 3639 | yyreduce:
3639   }
3640      break;
3641  
3642 <  case 79:
3643 <
3644 < /* Line 1455 of yacc.c  */
3885 < #line 746 "ircd_parser.y"
3642 >  case 93:
3643 > /* Line 1787 of yacc.c  */
3644 > #line 768 "conf_parser.y"
3645      {
3646 <  if (conf_parser_ctx.pass == 2)
3646 >  if (conf_parser_ctx.pass != 2)
3647 >    break;
3648 >
3649 >  if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3650    {
3651 <    recalc_fdlimit(NULL);
3651 >    char buf[IRCD_BUFSIZE];
3652  
3653 <    if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3654 <    {
3655 <      char buf[IRCD_BUFSIZE];
3656 <      ircsprintf(buf, "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3657 <      yyerror(buf);
3658 <    }
3659 <    else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3660 <    {
3661 <      char buf[IRCD_BUFSIZE];
3662 <      ircsprintf(buf, "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3663 <      yyerror(buf);
3902 <    }
3903 <    else
3904 <      ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3653 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3654 >    conf_error_report(buf);
3655 >    ServerInfo.max_clients = MAXCLIENTS_MIN;
3656 >  }
3657 >  else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3658 >  {
3659 >    char buf[IRCD_BUFSIZE];
3660 >
3661 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3662 >    conf_error_report(buf);
3663 >    ServerInfo.max_clients = MAXCLIENTS_MAX;
3664    }
3665 +  else
3666 +    ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3667   }
3668      break;
3669  
3670 <  case 80:
3671 <
3672 < /* Line 1455 of yacc.c  */
3912 < #line 769 "ircd_parser.y"
3670 >  case 94:
3671 > /* Line 1787 of yacc.c  */
3672 > #line 793 "conf_parser.y"
3673      {
3674 <  if (conf_parser_ctx.pass == 2)
3674 >  if (conf_parser_ctx.pass != 2)
3675 >    break;
3676 >
3677 >  if ((yyvsp[(3) - (4)].number) < 9)
3678    {
3679 <    if (yylval.number)
3680 <    {
3681 <      ServerInfo.hub = 1;
3682 <      delete_capability("HUB");
3683 <      add_capability("HUB", CAP_HUB, 1);
3684 <    }
3922 <    else if (ServerInfo.hub)
3923 <    {
3679 >    conf_error_report("max_nick_length too low, setting to 9");
3680 >    ServerInfo.max_nick_length = 9;
3681 >  }
3682 >  else if ((yyvsp[(3) - (4)].number) > NICKLEN)
3683 >  {
3684 >    char buf[IRCD_BUFSIZE];
3685  
3686 <      ServerInfo.hub = 0;
3687 <      delete_capability("HUB");
3688 <    }
3686 >    snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3687 >    conf_error_report(buf);
3688 >    ServerInfo.max_nick_length = NICKLEN;
3689    }
3690 +  else
3691 +    ServerInfo.max_nick_length = (yyvsp[(3) - (4)].number);
3692   }
3693      break;
3694  
3695 <  case 88:
3696 <
3697 < /* Line 1455 of yacc.c  */
3935 < #line 797 "ircd_parser.y"
3695 >  case 95:
3696 > /* Line 1787 of yacc.c  */
3697 > #line 815 "conf_parser.y"
3698      {
3699 <  if (conf_parser_ctx.pass == 2)
3699 >  if (conf_parser_ctx.pass != 2)
3700 >    break;
3701 >
3702 >  if ((yyvsp[(3) - (4)].number) < 80)
3703    {
3704 <    MyFree(AdminInfo.name);
3705 <    DupString(AdminInfo.name, yylval.string);
3704 >    conf_error_report("max_topic_length too low, setting to 80");
3705 >    ServerInfo.max_topic_length = 80;
3706 >  }
3707 >  else if ((yyvsp[(3) - (4)].number) > TOPICLEN)
3708 >  {
3709 >    char buf[IRCD_BUFSIZE];
3710 >
3711 >    snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3712 >    conf_error_report(buf);
3713 >    ServerInfo.max_topic_length = TOPICLEN;
3714    }
3715 +  else
3716 +    ServerInfo.max_topic_length = (yyvsp[(3) - (4)].number);
3717   }
3718      break;
3719  
3720 <  case 89:
3721 <
3722 < /* Line 1455 of yacc.c  */
3948 < #line 806 "ircd_parser.y"
3720 >  case 96:
3721 > /* Line 1787 of yacc.c  */
3722 > #line 837 "conf_parser.y"
3723      {
3724    if (conf_parser_ctx.pass == 2)
3725 <  {
3952 <    MyFree(AdminInfo.email);
3953 <    DupString(AdminInfo.email, yylval.string);
3954 <  }
3725 >    ServerInfo.hub = yylval.number;
3726   }
3727      break;
3728  
3729 <  case 90:
3730 <
3731 < /* Line 1455 of yacc.c  */
3961 < #line 815 "ircd_parser.y"
3729 >  case 104:
3730 > /* Line 1787 of yacc.c  */
3731 > #line 852 "conf_parser.y"
3732      {
3733 <  if (conf_parser_ctx.pass == 2)
3964 <  {
3965 <    MyFree(AdminInfo.description);
3966 <    DupString(AdminInfo.description, yylval.string);
3967 <  }
3968 < }
3733 >  if (conf_parser_ctx.pass != 2)
3734      break;
3735  
3736 <  case 107:
3736 >  MyFree(AdminInfo.name);
3737 >  AdminInfo.name = xstrdup(yylval.string);
3738 > }
3739 >    break;
3740  
3741 < /* Line 1455 of yacc.c  */
3742 < #line 842 "ircd_parser.y"
3741 >  case 105:
3742 > /* Line 1787 of yacc.c  */
3743 > #line 861 "conf_parser.y"
3744      {
3745 <                        }
3745 >  if (conf_parser_ctx.pass != 2)
3746      break;
3747  
3748 <  case 108:
3748 >  MyFree(AdminInfo.email);
3749 >  AdminInfo.email = xstrdup(yylval.string);
3750 > }
3751 >    break;
3752  
3753 < /* Line 1455 of yacc.c  */
3754 < #line 846 "ircd_parser.y"
3753 >  case 106:
3754 > /* Line 1787 of yacc.c  */
3755 > #line 870 "conf_parser.y"
3756      {
3757 <                        }
3757 >  if (conf_parser_ctx.pass != 2)
3758      break;
3759  
3760 <  case 109:
3760 >  MyFree(AdminInfo.description);
3761 >  AdminInfo.description = xstrdup(yylval.string);
3762 > }
3763 >    break;
3764  
3765 < /* Line 1455 of yacc.c  */
3766 < #line 850 "ircd_parser.y"
3765 >  case 107:
3766 > /* Line 1787 of yacc.c  */
3767 > #line 882 "conf_parser.y"
3768      {
3769    if (conf_parser_ctx.pass == 2)
3770 <    strlcpy(ConfigLoggingEntry.userlog, yylval.string,
3994 <            sizeof(ConfigLoggingEntry.userlog));
3770 >    reset_block_state();
3771   }
3772      break;
3773  
3774 <  case 110:
3775 <
3776 < /* Line 1455 of yacc.c  */
4001 < #line 857 "ircd_parser.y"
3774 >  case 108:
3775 > /* Line 1787 of yacc.c  */
3776 > #line 886 "conf_parser.y"
3777      {
3778 <  if (conf_parser_ctx.pass == 2)
3779 <    strlcpy(ConfigLoggingEntry.failed_operlog, yylval.string,
3780 <            sizeof(ConfigLoggingEntry.failed_operlog));
4006 < }
3778 >  dlink_node *ptr = NULL;
3779 >
3780 >  if (conf_parser_ctx.pass != 2)
3781      break;
3782  
3783 <  case 111:
3783 >  if (!block_state.file.buf[0])
3784 >    break;
3785  
3786 < /* Line 1455 of yacc.c  */
3787 < #line 864 "ircd_parser.y"
4013 <    {
4014 <  if (conf_parser_ctx.pass == 2)
4015 <    strlcpy(ConfigLoggingEntry.operlog, yylval.string,
4016 <            sizeof(ConfigLoggingEntry.operlog));
3786 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3787 >    motd_add(ptr->data, block_state.file.buf);
3788   }
3789      break;
3790  
3791 <  case 112:
3792 <
3793 < /* Line 1455 of yacc.c  */
4023 < #line 871 "ircd_parser.y"
3791 >  case 114:
3792 > /* Line 1787 of yacc.c  */
3793 > #line 903 "conf_parser.y"
3794      {
3795    if (conf_parser_ctx.pass == 2)
3796 <    strlcpy(ConfigLoggingEntry.operspylog, yylval.string,
4027 <            sizeof(ConfigLoggingEntry.operspylog));
3796 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3797   }
3798      break;
3799  
3800 <  case 113:
3801 <
3802 < /* Line 1455 of yacc.c  */
4034 < #line 878 "ircd_parser.y"
3800 >  case 115:
3801 > /* Line 1787 of yacc.c  */
3802 > #line 909 "conf_parser.y"
3803      {
3804    if (conf_parser_ctx.pass == 2)
3805 <    strlcpy(ConfigLoggingEntry.glinelog, yylval.string,
4038 <            sizeof(ConfigLoggingEntry.glinelog));
3805 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3806   }
3807      break;
3808  
3809 <  case 114:
3810 <
3811 < /* Line 1455 of yacc.c  */
4045 < #line 885 "ircd_parser.y"
3809 >  case 122:
3810 > /* Line 1787 of yacc.c  */
3811 > #line 924 "conf_parser.y"
3812      {
3813    if (conf_parser_ctx.pass == 2)
3814 <    strlcpy(ConfigLoggingEntry.klinelog, yylval.string,
4049 <            sizeof(ConfigLoggingEntry.klinelog));
3814 >    ConfigLoggingEntry.use_logging = yylval.number;
3815   }
3816      break;
3817  
3818 <  case 115:
3819 <
3820 < /* Line 1455 of yacc.c  */
4056 < #line 892 "ircd_parser.y"
3818 >  case 123:
3819 > /* Line 1787 of yacc.c  */
3820 > #line 930 "conf_parser.y"
3821      {
3822    if (conf_parser_ctx.pass == 2)
3823 <    strlcpy(ConfigLoggingEntry.ioerrlog, yylval.string,
4060 <            sizeof(ConfigLoggingEntry.ioerrlog));
3823 >    reset_block_state();
3824   }
3825      break;
3826  
3827 <  case 116:
3828 <
3829 < /* Line 1455 of yacc.c  */
4067 < #line 899 "ircd_parser.y"
3827 >  case 124:
3828 > /* Line 1787 of yacc.c  */
3829 > #line 934 "conf_parser.y"
3830      {
3831 <  if (conf_parser_ctx.pass == 2)
3832 <    strlcpy(ConfigLoggingEntry.killlog, yylval.string,
3833 <            sizeof(ConfigLoggingEntry.killlog));
3831 >  if (conf_parser_ctx.pass != 2)
3832 >    break;
3833 >
3834 >  if (block_state.type.value && block_state.file.buf[0])
3835 >    log_set_file(block_state.type.value, block_state.size.value,
3836 >                 block_state.file.buf);
3837   }
3838      break;
3839  
3840 <  case 117:
3840 >  case 131:
3841 > /* Line 1787 of yacc.c  */
3842 > #line 950 "conf_parser.y"
3843 >    {
3844 >  if (conf_parser_ctx.pass != 2)
3845 >    break;
3846  
3847 < /* Line 1455 of yacc.c  */
4078 < #line 906 "ircd_parser.y"
4079 <    {
4080 <  if (conf_parser_ctx.pass == 2)
4081 <    set_log_level(L_CRIT);
3847 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3848   }
3849      break;
3850  
3851 <  case 118:
3852 <
3853 < /* Line 1455 of yacc.c  */
4088 < #line 910 "ircd_parser.y"
3851 >  case 132:
3852 > /* Line 1787 of yacc.c  */
3853 > #line 958 "conf_parser.y"
3854      {
3855 <  if (conf_parser_ctx.pass == 2)
4091 <    set_log_level(L_ERROR);
3855 >  block_state.size.value = (yyvsp[(3) - (4)].number);
3856   }
3857      break;
3858  
3859 <  case 119:
3860 <
3861 < /* Line 1455 of yacc.c  */
4098 < #line 914 "ircd_parser.y"
3859 >  case 133:
3860 > /* Line 1787 of yacc.c  */
3861 > #line 961 "conf_parser.y"
3862      {
3863 <  if (conf_parser_ctx.pass == 2)
4101 <    set_log_level(L_WARN);
3863 >  block_state.size.value = 0;
3864   }
3865      break;
3866  
3867 <  case 120:
3868 <
3869 < /* Line 1455 of yacc.c  */
4108 < #line 918 "ircd_parser.y"
3867 >  case 134:
3868 > /* Line 1787 of yacc.c  */
3869 > #line 966 "conf_parser.y"
3870      {
3871    if (conf_parser_ctx.pass == 2)
3872 <    set_log_level(L_NOTICE);
3872 >    block_state.type.value = 0;
3873   }
3874      break;
3875  
3876 <  case 121:
3877 <
3878 < /* Line 1455 of yacc.c  */
4118 < #line 922 "ircd_parser.y"
3876 >  case 138:
3877 > /* Line 1787 of yacc.c  */
3878 > #line 973 "conf_parser.y"
3879      {
3880    if (conf_parser_ctx.pass == 2)
3881 <    set_log_level(L_TRACE);
3881 >    block_state.type.value = LOG_TYPE_USER;
3882   }
3883      break;
3884  
3885 <  case 122:
3886 <
3887 < /* Line 1455 of yacc.c  */
4128 < #line 926 "ircd_parser.y"
3885 >  case 139:
3886 > /* Line 1787 of yacc.c  */
3887 > #line 977 "conf_parser.y"
3888      {
3889    if (conf_parser_ctx.pass == 2)
3890 <    set_log_level(L_INFO);
3890 >    block_state.type.value = LOG_TYPE_OPER;
3891   }
3892      break;
3893  
3894 <  case 123:
3895 <
3896 < /* Line 1455 of yacc.c  */
4138 < #line 930 "ircd_parser.y"
3894 >  case 140:
3895 > /* Line 1787 of yacc.c  */
3896 > #line 981 "conf_parser.y"
3897      {
3898    if (conf_parser_ctx.pass == 2)
3899 <    set_log_level(L_DEBUG);
3899 >    block_state.type.value = LOG_TYPE_GLINE;
3900   }
3901      break;
3902  
3903 <  case 124:
3904 <
3905 < /* Line 1455 of yacc.c  */
4148 < #line 936 "ircd_parser.y"
3903 >  case 141:
3904 > /* Line 1787 of yacc.c  */
3905 > #line 985 "conf_parser.y"
3906      {
3907    if (conf_parser_ctx.pass == 2)
3908 <    ConfigLoggingEntry.use_logging = yylval.number;
3908 >    block_state.type.value = LOG_TYPE_DLINE;
3909   }
3910      break;
3911  
3912 <  case 125:
3913 <
3914 < /* Line 1455 of yacc.c  */
4158 < #line 945 "ircd_parser.y"
3912 >  case 142:
3913 > /* Line 1787 of yacc.c  */
3914 > #line 989 "conf_parser.y"
3915      {
3916    if (conf_parser_ctx.pass == 2)
3917 <  {
4162 <    yy_conf = make_conf_item(OPER_TYPE);
4163 <    yy_aconf = map_to_conf(yy_conf);
4164 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
4165 <  }
4166 <  else
4167 <  {
4168 <    MyFree(class_name);
4169 <    class_name = NULL;
4170 <  }
3917 >    block_state.type.value = LOG_TYPE_KLINE;
3918   }
3919      break;
3920  
3921 <  case 126:
3922 <
3923 < /* Line 1455 of yacc.c  */
4177 < #line 958 "ircd_parser.y"
3921 >  case 143:
3922 > /* Line 1787 of yacc.c  */
3923 > #line 993 "conf_parser.y"
3924      {
3925    if (conf_parser_ctx.pass == 2)
3926 <  {
3927 <    struct CollectItem *yy_tmp;
3928 <    dlink_node *ptr;
4183 <    dlink_node *next_ptr;
4184 <
4185 <    conf_add_class_to_conf(yy_conf, class_name);
4186 <
4187 <    /* Now, make sure there is a copy of the "base" given oper
4188 <     * block in each of the collected copies
4189 <     */
3926 >    block_state.type.value = LOG_TYPE_KILL;
3927 > }
3928 >    break;
3929  
3930 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3930 >  case 144:
3931 > /* Line 1787 of yacc.c  */
3932 > #line 997 "conf_parser.y"
3933      {
3934 <      struct AccessItem *new_aconf;
3935 <      struct ConfItem *new_conf;
4195 <      yy_tmp = ptr->data;
4196 <
4197 <      new_conf = make_conf_item(OPER_TYPE);
4198 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
4199 <
4200 <      new_aconf->flags = yy_aconf->flags;
4201 <
4202 <      if (yy_conf->name != NULL)
4203 <        DupString(new_conf->name, yy_conf->name);
4204 <      if (yy_tmp->user != NULL)
4205 <        DupString(new_aconf->user, yy_tmp->user);
4206 <      else
4207 <        DupString(new_aconf->user, "*");
4208 <      if (yy_tmp->host != NULL)
4209 <        DupString(new_aconf->host, yy_tmp->host);
4210 <      else
4211 <        DupString(new_aconf->host, "*");
4212 <      conf_add_class_to_conf(new_conf, class_name);
4213 <      if (yy_aconf->passwd != NULL)
4214 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4215 <
4216 <      new_aconf->port = yy_aconf->port;
4217 < #ifdef HAVE_LIBCRYPTO
4218 <      if (yy_aconf->rsa_public_key_file != NULL)
4219 <      {
4220 <        BIO *file;
4221 <
4222 <        DupString(new_aconf->rsa_public_key_file,
4223 <                  yy_aconf->rsa_public_key_file);
4224 <
4225 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
4226 <        new_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file,
4227 <                                                           NULL, 0, NULL);
4228 <        BIO_set_close(file, BIO_CLOSE);
4229 <        BIO_free(file);
4230 <      }
4231 < #endif
4232 <
4233 < #ifdef HAVE_LIBCRYPTO
4234 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
4235 <          && yy_tmp->host)
4236 < #else
4237 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
4238 < #endif
4239 <      {
4240 <        conf_add_class_to_conf(new_conf, class_name);
4241 <        if (yy_tmp->name != NULL)
4242 <          DupString(new_conf->name, yy_tmp->name);
4243 <      }
4244 <
4245 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4246 <      free_collect_item(yy_tmp);
4247 <    }
4248 <
4249 <    yy_conf = NULL;
4250 <    yy_aconf = NULL;
4251 <
4252 <
4253 <    MyFree(class_name);
4254 <    class_name = NULL;
4255 <  }
3934 >  if (conf_parser_ctx.pass == 2)
3935 >    block_state.type.value = LOG_TYPE_DEBUG;
3936   }
3937      break;
3938  
3939 <  case 154:
3940 <
3941 < /* Line 1455 of yacc.c  */
4262 < #line 1050 "ircd_parser.y"
3939 >  case 145:
3940 > /* Line 1787 of yacc.c  */
3941 > #line 1007 "conf_parser.y"
3942      {
3943 <  if (conf_parser_ctx.pass == 2)
3944 <  {
4266 <    if (strlen(yylval.string) > OPERNICKLEN)
4267 <      yylval.string[OPERNICKLEN] = '\0';
3943 >  if (conf_parser_ctx.pass != 2)
3944 >    break;
3945  
3946 <    MyFree(yy_conf->name);
3947 <    DupString(yy_conf->name, yylval.string);
4271 <  }
3946 >  reset_block_state();
3947 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3948   }
3949      break;
3950  
3951 <  case 155:
3952 <
3953 < /* Line 1455 of yacc.c  */
4278 < #line 1062 "ircd_parser.y"
3951 >  case 146:
3952 > /* Line 1787 of yacc.c  */
3953 > #line 1014 "conf_parser.y"
3954      {
3955 <  if (conf_parser_ctx.pass == 2)
4281 <  {
4282 <    if (strlen(yylval.string) > OPERNICKLEN)
4283 <      yylval.string[OPERNICKLEN] = '\0';
3955 >  dlink_node *ptr = NULL;
3956  
3957 <    MyFree(yy_conf->name);
4286 <    DupString(yy_conf->name, yylval.string);
4287 <  }
4288 < }
3957 >  if (conf_parser_ctx.pass != 2)
3958      break;
3959  
3960 <  case 156:
3960 >  if (!block_state.name.buf[0])
3961 >    break;
3962 > #ifdef HAVE_LIBCRYPTO
3963 >  if (!block_state.file.buf[0] &&
3964 >      !block_state.rpass.buf[0])
3965 >    break;
3966 > #else
3967 >  if (!block_state.rpass.buf[0])
3968 >    break;
3969 > #endif
3970  
3971 < /* Line 1455 of yacc.c  */
4294 < #line 1074 "ircd_parser.y"
4295 <    {
4296 <  if (conf_parser_ctx.pass == 2)
3971 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3972    {
3973 +    struct MaskItem *conf = NULL;
3974      struct split_nuh_item nuh;
3975  
3976 <    nuh.nuhmask  = yylval.string;
3976 >    nuh.nuhmask  = ptr->data;
3977      nuh.nickptr  = NULL;
3978 <    nuh.userptr  = userbuf;
3979 <    nuh.hostptr  = hostbuf;
4304 <
3978 >    nuh.userptr  = block_state.user.buf;
3979 >    nuh.hostptr  = block_state.host.buf;
3980      nuh.nicksize = 0;
3981 <    nuh.usersize = sizeof(userbuf);
3982 <    nuh.hostsize = sizeof(hostbuf);
4308 <
3981 >    nuh.usersize = sizeof(block_state.user.buf);
3982 >    nuh.hostsize = sizeof(block_state.host.buf);
3983      split_nuh(&nuh);
3984  
3985 <    if (yy_aconf->user == NULL)
3986 <    {
3987 <      DupString(yy_aconf->user, userbuf);
3988 <      DupString(yy_aconf->host, hostbuf);
3989 <    }
3990 <    else
3991 <    {
3992 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
3993 <
3994 <      DupString(yy_tmp->user, userbuf);
3995 <      DupString(yy_tmp->host, hostbuf);
3985 >    conf         = conf_make(CONF_OPER);
3986 >    conf->name   = xstrdup(block_state.name.buf);
3987 >    conf->user   = xstrdup(block_state.user.buf);
3988 >    conf->host   = xstrdup(block_state.host.buf);
3989 >
3990 >    if (block_state.cert.buf[0])
3991 >      conf->certfp = xstrdup(block_state.cert.buf);
3992 >
3993 >    if (block_state.rpass.buf[0])
3994 >      conf->passwd = xstrdup(block_state.rpass.buf);
3995 >
3996 >    conf->flags = block_state.flags.value;
3997 >    conf->modes = block_state.modes.value;
3998 >    conf->port  = block_state.port.value;
3999 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
4000  
4001 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4324 <    }
4325 <  }
4326 < }
4327 <    break;
4328 <
4329 <  case 157:
4001 >    conf_add_class_to_conf(conf, block_state.class.buf);
4002  
4003 < /* Line 1455 of yacc.c  */
4004 < #line 1108 "ircd_parser.y"
4003 > #ifdef HAVE_LIBCRYPTO
4004 >    if (block_state.file.buf[0])
4005      {
4006 <  if (conf_parser_ctx.pass == 2)
4007 <  {
4336 <    if (yy_aconf->passwd != NULL)
4337 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4006 >      BIO *file = NULL;
4007 >      RSA *pkey = NULL;
4008  
4009 <    MyFree(yy_aconf->passwd);
4010 <    DupString(yy_aconf->passwd, yylval.string);
4011 <  }
4012 < }
4013 <    break;
4009 >      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
4010 >      {
4011 >        conf_error_report("Ignoring rsa_public_key_file -- file doesn't exist");
4012 >        break;
4013 >      }
4014  
4015 <  case 158:
4015 >      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
4016 >        conf_error_report("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
4017  
4018 < /* Line 1455 of yacc.c  */
4019 < #line 1120 "ircd_parser.y"
4020 <    {
4021 <  if (conf_parser_ctx.pass == 2)
4022 <  {
4352 <    if (yylval.number)
4353 <      SetConfEncrypted(yy_aconf);
4354 <    else
4355 <      ClearConfEncrypted(yy_aconf);
4018 >      conf->rsa_public_key = pkey;
4019 >      BIO_set_close(file, BIO_CLOSE);
4020 >      BIO_free(file);
4021 >    }
4022 > #endif /* HAVE_LIBCRYPTO */
4023    }
4024   }
4025      break;
4026  
4027    case 159:
4028 <
4029 < /* Line 1455 of yacc.c  */
4363 < #line 1131 "ircd_parser.y"
4028 > /* Line 1787 of yacc.c  */
4029 > #line 1093 "conf_parser.y"
4030      {
4365 #ifdef HAVE_LIBCRYPTO
4031    if (conf_parser_ctx.pass == 2)
4032 <  {
4368 <    BIO *file;
4369 <
4370 <    if (yy_aconf->rsa_public_key != NULL)
4371 <    {
4372 <      RSA_free(yy_aconf->rsa_public_key);
4373 <      yy_aconf->rsa_public_key = NULL;
4374 <    }
4375 <
4376 <    if (yy_aconf->rsa_public_key_file != NULL)
4377 <    {
4378 <      MyFree(yy_aconf->rsa_public_key_file);
4379 <      yy_aconf->rsa_public_key_file = NULL;
4380 <    }
4381 <
4382 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
4383 <    file = BIO_new_file(yylval.string, "r");
4384 <
4385 <    if (file == NULL)
4386 <    {
4387 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
4388 <      break;
4389 <    }
4390 <
4391 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
4392 <
4393 <    if (yy_aconf->rsa_public_key == NULL)
4394 <    {
4395 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
4396 <      break;
4397 <    }
4398 <
4399 <    BIO_set_close(file, BIO_CLOSE);
4400 <    BIO_free(file);
4401 <  }
4402 < #endif /* HAVE_LIBCRYPTO */
4032 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4033   }
4034      break;
4035  
4036    case 160:
4037 <
4038 < /* Line 1455 of yacc.c  */
4409 < #line 1173 "ircd_parser.y"
4037 > /* Line 1787 of yacc.c  */
4038 > #line 1099 "conf_parser.y"
4039      {
4040    if (conf_parser_ctx.pass == 2)
4041 <  {
4413 <    MyFree(class_name);
4414 <    DupString(class_name, yylval.string);
4415 <  }
4041 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4042   }
4043      break;
4044  
4045    case 161:
4046 <
4047 < /* Line 1455 of yacc.c  */
4422 < #line 1182 "ircd_parser.y"
4046 > /* Line 1787 of yacc.c  */
4047 > #line 1105 "conf_parser.y"
4048      {
4049    if (conf_parser_ctx.pass == 2)
4050 <    yy_aconf->modes = 0;
4050 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4051   }
4052      break;
4053  
4054 <  case 165:
4055 <
4056 < /* Line 1455 of yacc.c  */
4432 < #line 1189 "ircd_parser.y"
4054 >  case 162:
4055 > /* Line 1787 of yacc.c  */
4056 > #line 1111 "conf_parser.y"
4057      {
4058 <  if (conf_parser_ctx.pass == 2)
4435 <    yy_aconf->modes |= UMODE_BOTS;
4436 < }
4058 >  if (conf_parser_ctx.pass != 2)
4059      break;
4060  
4061 <  case 166:
4061 >  if (yylval.number)
4062 >    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4063 >  else
4064 >    block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4065 > }
4066 >    break;
4067  
4068 < /* Line 1455 of yacc.c  */
4069 < #line 1193 "ircd_parser.y"
4068 >  case 163:
4069 > /* Line 1787 of yacc.c  */
4070 > #line 1122 "conf_parser.y"
4071      {
4072    if (conf_parser_ctx.pass == 2)
4073 <    yy_aconf->modes |= UMODE_CCONN;
4073 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
4074   }
4075      break;
4076  
4077 <  case 167:
4078 <
4079 < /* Line 1455 of yacc.c  */
4452 < #line 1197 "ircd_parser.y"
4077 >  case 164:
4078 > /* Line 1787 of yacc.c  */
4079 > #line 1128 "conf_parser.y"
4080      {
4081    if (conf_parser_ctx.pass == 2)
4082 <    yy_aconf->modes |= UMODE_CCONN_FULL;
4082 >    if (strlen(yylval.string) == SHA_DIGEST_LENGTH * 2)
4083 >      strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
4084   }
4085      break;
4086  
4087 <  case 168:
4088 <
4089 < /* Line 1455 of yacc.c  */
4462 < #line 1201 "ircd_parser.y"
4087 >  case 165:
4088 > /* Line 1787 of yacc.c  */
4089 > #line 1135 "conf_parser.y"
4090      {
4091    if (conf_parser_ctx.pass == 2)
4092 <    yy_aconf->modes |= UMODE_DEAF;
4092 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4093   }
4094      break;
4095  
4096 <  case 169:
4097 <
4098 < /* Line 1455 of yacc.c  */
4472 < #line 1205 "ircd_parser.y"
4096 >  case 166:
4097 > /* Line 1787 of yacc.c  */
4098 > #line 1141 "conf_parser.y"
4099      {
4100    if (conf_parser_ctx.pass == 2)
4101 <    yy_aconf->modes |= UMODE_DEBUG;
4101 >    block_state.modes.value = 0;
4102   }
4103      break;
4104  
4105    case 170:
4106 <
4107 < /* Line 1455 of yacc.c  */
4482 < #line 1209 "ircd_parser.y"
4106 > /* Line 1787 of yacc.c  */
4107 > #line 1148 "conf_parser.y"
4108      {
4109    if (conf_parser_ctx.pass == 2)
4110 <    yy_aconf->modes |= UMODE_FULL;
4110 >    block_state.modes.value |= UMODE_BOTS;
4111   }
4112      break;
4113  
4114    case 171:
4115 <
4116 < /* Line 1455 of yacc.c  */
4492 < #line 1213 "ircd_parser.y"
4115 > /* Line 1787 of yacc.c  */
4116 > #line 1152 "conf_parser.y"
4117      {
4118    if (conf_parser_ctx.pass == 2)
4119 <    yy_aconf->modes |= UMODE_SKILL;
4119 >    block_state.modes.value |= UMODE_CCONN;
4120   }
4121      break;
4122  
4123    case 172:
4124 <
4125 < /* Line 1455 of yacc.c  */
4502 < #line 1217 "ircd_parser.y"
4124 > /* Line 1787 of yacc.c  */
4125 > #line 1156 "conf_parser.y"
4126      {
4127    if (conf_parser_ctx.pass == 2)
4128 <    yy_aconf->modes |= UMODE_NCHANGE;
4128 >    block_state.modes.value |= UMODE_DEAF;
4129   }
4130      break;
4131  
4132    case 173:
4133 <
4134 < /* Line 1455 of yacc.c  */
4512 < #line 1221 "ircd_parser.y"
4133 > /* Line 1787 of yacc.c  */
4134 > #line 1160 "conf_parser.y"
4135      {
4136    if (conf_parser_ctx.pass == 2)
4137 <    yy_aconf->modes |= UMODE_REJ;
4137 >    block_state.modes.value |= UMODE_DEBUG;
4138   }
4139      break;
4140  
4141    case 174:
4142 <
4143 < /* Line 1455 of yacc.c  */
4522 < #line 1225 "ircd_parser.y"
4142 > /* Line 1787 of yacc.c  */
4143 > #line 1164 "conf_parser.y"
4144      {
4145    if (conf_parser_ctx.pass == 2)
4146 <    yy_aconf->modes |= UMODE_UNAUTH;
4146 >    block_state.modes.value |= UMODE_FULL;
4147   }
4148      break;
4149  
4150    case 175:
4151 <
4152 < /* Line 1455 of yacc.c  */
4532 < #line 1229 "ircd_parser.y"
4151 > /* Line 1787 of yacc.c  */
4152 > #line 1168 "conf_parser.y"
4153      {
4154    if (conf_parser_ctx.pass == 2)
4155 <    yy_aconf->modes |= UMODE_SPY;
4155 >    block_state.modes.value |= UMODE_HIDDEN;
4156   }
4157      break;
4158  
4159    case 176:
4160 <
4161 < /* Line 1455 of yacc.c  */
4542 < #line 1233 "ircd_parser.y"
4160 > /* Line 1787 of yacc.c  */
4161 > #line 1172 "conf_parser.y"
4162      {
4163    if (conf_parser_ctx.pass == 2)
4164 <    yy_aconf->modes |= UMODE_EXTERNAL;
4164 >    block_state.modes.value |= UMODE_SKILL;
4165   }
4166      break;
4167  
4168    case 177:
4169 <
4170 < /* Line 1455 of yacc.c  */
4552 < #line 1237 "ircd_parser.y"
4169 > /* Line 1787 of yacc.c  */
4170 > #line 1176 "conf_parser.y"
4171      {
4172    if (conf_parser_ctx.pass == 2)
4173 <    yy_aconf->modes |= UMODE_OPERWALL;
4173 >    block_state.modes.value |= UMODE_NCHANGE;
4174   }
4175      break;
4176  
4177    case 178:
4178 <
4179 < /* Line 1455 of yacc.c  */
4562 < #line 1241 "ircd_parser.y"
4178 > /* Line 1787 of yacc.c  */
4179 > #line 1180 "conf_parser.y"
4180      {
4181    if (conf_parser_ctx.pass == 2)
4182 <    yy_aconf->modes |= UMODE_SERVNOTICE;
4182 >    block_state.modes.value |= UMODE_REJ;
4183   }
4184      break;
4185  
4186    case 179:
4187 <
4188 < /* Line 1455 of yacc.c  */
4572 < #line 1245 "ircd_parser.y"
4187 > /* Line 1787 of yacc.c  */
4188 > #line 1184 "conf_parser.y"
4189      {
4190    if (conf_parser_ctx.pass == 2)
4191 <    yy_aconf->modes |= UMODE_INVISIBLE;
4191 >    block_state.modes.value |= UMODE_UNAUTH;
4192   }
4193      break;
4194  
4195    case 180:
4196 <
4197 < /* Line 1455 of yacc.c  */
4582 < #line 1249 "ircd_parser.y"
4196 > /* Line 1787 of yacc.c  */
4197 > #line 1188 "conf_parser.y"
4198      {
4199    if (conf_parser_ctx.pass == 2)
4200 <    yy_aconf->modes |= UMODE_WALLOP;
4200 >    block_state.modes.value |= UMODE_SPY;
4201   }
4202      break;
4203  
4204    case 181:
4205 <
4206 < /* Line 1455 of yacc.c  */
4592 < #line 1253 "ircd_parser.y"
4205 > /* Line 1787 of yacc.c  */
4206 > #line 1192 "conf_parser.y"
4207      {
4208    if (conf_parser_ctx.pass == 2)
4209 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
4209 >    block_state.modes.value |= UMODE_EXTERNAL;
4210   }
4211      break;
4212  
4213    case 182:
4214 <
4215 < /* Line 1455 of yacc.c  */
4602 < #line 1257 "ircd_parser.y"
4214 > /* Line 1787 of yacc.c  */
4215 > #line 1196 "conf_parser.y"
4216      {
4217    if (conf_parser_ctx.pass == 2)
4218 <    yy_aconf->modes |= UMODE_CALLERID;
4218 >    block_state.modes.value |= UMODE_OPERWALL;
4219   }
4220      break;
4221  
4222    case 183:
4223 <
4224 < /* Line 1455 of yacc.c  */
4612 < #line 1261 "ircd_parser.y"
4223 > /* Line 1787 of yacc.c  */
4224 > #line 1200 "conf_parser.y"
4225      {
4226    if (conf_parser_ctx.pass == 2)
4227 <    yy_aconf->modes |= UMODE_LOCOPS;
4227 >    block_state.modes.value |= UMODE_SERVNOTICE;
4228   }
4229      break;
4230  
4231    case 184:
4232 <
4233 < /* Line 1455 of yacc.c  */
4622 < #line 1267 "ircd_parser.y"
4232 > /* Line 1787 of yacc.c  */
4233 > #line 1204 "conf_parser.y"
4234      {
4235    if (conf_parser_ctx.pass == 2)
4236 <  {
4626 <    if (yylval.number)
4627 <      yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4628 <    else
4629 <      yy_aconf->port &= ~OPER_FLAG_GLOBAL_KILL;
4630 <  }
4236 >    block_state.modes.value |= UMODE_INVISIBLE;
4237   }
4238      break;
4239  
4240    case 185:
4241 <
4242 < /* Line 1455 of yacc.c  */
4637 < #line 1278 "ircd_parser.y"
4241 > /* Line 1787 of yacc.c  */
4242 > #line 1208 "conf_parser.y"
4243      {
4244    if (conf_parser_ctx.pass == 2)
4245 <  {
4641 <    if (yylval.number)
4642 <      yy_aconf->port |= OPER_FLAG_REMOTE;
4643 <    else
4644 <      yy_aconf->port &= ~OPER_FLAG_REMOTE;
4645 <  }
4245 >    block_state.modes.value |= UMODE_WALLOP;
4246   }
4247      break;
4248  
4249    case 186:
4250 <
4251 < /* Line 1455 of yacc.c  */
4652 < #line 1289 "ircd_parser.y"
4250 > /* Line 1787 of yacc.c  */
4251 > #line 1212 "conf_parser.y"
4252      {
4253    if (conf_parser_ctx.pass == 2)
4254 <  {
4656 <    if (yylval.number)
4657 <      yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4658 <    else
4659 <      yy_aconf->port &= ~OPER_FLAG_REMOTEBAN;
4660 <  }
4254 >    block_state.modes.value |= UMODE_SOFTCALLERID;
4255   }
4256      break;
4257  
4258    case 187:
4259 <
4260 < /* Line 1455 of yacc.c  */
4667 < #line 1300 "ircd_parser.y"
4259 > /* Line 1787 of yacc.c  */
4260 > #line 1216 "conf_parser.y"
4261      {
4262    if (conf_parser_ctx.pass == 2)
4263 <  {
4671 <    if (yylval.number)
4672 <      yy_aconf->port |= OPER_FLAG_K;
4673 <    else
4674 <      yy_aconf->port &= ~OPER_FLAG_K;
4675 <  }
4263 >    block_state.modes.value |= UMODE_CALLERID;
4264   }
4265      break;
4266  
4267    case 188:
4268 <
4269 < /* Line 1455 of yacc.c  */
4682 < #line 1311 "ircd_parser.y"
4268 > /* Line 1787 of yacc.c  */
4269 > #line 1220 "conf_parser.y"
4270      {
4271    if (conf_parser_ctx.pass == 2)
4272 <  {
4686 <    if (yylval.number)
4687 <      yy_aconf->port |= OPER_FLAG_X;
4688 <    else
4689 <      yy_aconf->port &= ~OPER_FLAG_X;
4690 <  }
4272 >    block_state.modes.value |= UMODE_LOCOPS;
4273   }
4274      break;
4275  
4276    case 189:
4277 <
4278 < /* Line 1455 of yacc.c  */
4697 < #line 1322 "ircd_parser.y"
4277 > /* Line 1787 of yacc.c  */
4278 > #line 1224 "conf_parser.y"
4279      {
4280    if (conf_parser_ctx.pass == 2)
4281 <  {
4701 <    if (yylval.number)
4702 <      yy_aconf->port |= OPER_FLAG_UNKLINE;
4703 <    else
4704 <      yy_aconf->port &= ~OPER_FLAG_UNKLINE;
4705 <  }
4281 >    block_state.modes.value |= UMODE_REGONLY;
4282   }
4283      break;
4284  
4285    case 190:
4286 <
4287 < /* Line 1455 of yacc.c  */
4712 < #line 1333 "ircd_parser.y"
4286 > /* Line 1787 of yacc.c  */
4287 > #line 1228 "conf_parser.y"
4288      {
4289    if (conf_parser_ctx.pass == 2)
4290 <  {
4716 <    if (yylval.number)
4717 <      yy_aconf->port |= OPER_FLAG_GLINE;
4718 <    else
4719 <      yy_aconf->port &= ~OPER_FLAG_GLINE;
4720 <  }
4290 >    block_state.modes.value |= UMODE_FARCONNECT;
4291   }
4292      break;
4293  
4294    case 191:
4295 <
4296 < /* Line 1455 of yacc.c  */
4727 < #line 1344 "ircd_parser.y"
4295 > /* Line 1787 of yacc.c  */
4296 > #line 1234 "conf_parser.y"
4297      {
4298    if (conf_parser_ctx.pass == 2)
4299 <  {
4731 <    if (yylval.number)
4732 <      yy_aconf->port |= OPER_FLAG_N;
4733 <    else
4734 <      yy_aconf->port &= ~OPER_FLAG_N;
4735 <  }
4299 >    block_state.port.value = 0;
4300   }
4301      break;
4302  
4303 <  case 192:
4304 <
4305 < /* Line 1455 of yacc.c  */
4742 < #line 1355 "ircd_parser.y"
4303 >  case 195:
4304 > /* Line 1787 of yacc.c  */
4305 > #line 1241 "conf_parser.y"
4306      {
4307    if (conf_parser_ctx.pass == 2)
4308 <  {
4746 <    if (yylval.number)
4747 <      yy_aconf->port |= OPER_FLAG_DIE;
4748 <    else
4749 <      yy_aconf->port &= ~OPER_FLAG_DIE;
4750 <  }
4308 >    block_state.port.value |= OPER_FLAG_KILL_REMOTE;
4309   }
4310      break;
4311  
4312 <  case 193:
4313 <
4314 < /* Line 1455 of yacc.c  */
4757 < #line 1366 "ircd_parser.y"
4312 >  case 196:
4313 > /* Line 1787 of yacc.c  */
4314 > #line 1245 "conf_parser.y"
4315      {
4316    if (conf_parser_ctx.pass == 2)
4317 <  {
4761 <    if (yylval.number)
4762 <      yy_aconf->port |= OPER_FLAG_REHASH;
4763 <    else
4764 <      yy_aconf->port &= ~OPER_FLAG_REHASH;
4765 <  }
4317 >    block_state.port.value |= OPER_FLAG_KILL;
4318   }
4319      break;
4320  
4321 <  case 194:
4322 <
4323 < /* Line 1455 of yacc.c  */
4772 < #line 1377 "ircd_parser.y"
4321 >  case 197:
4322 > /* Line 1787 of yacc.c  */
4323 > #line 1249 "conf_parser.y"
4324      {
4325    if (conf_parser_ctx.pass == 2)
4326 <  {
4776 <    if (yylval.number)
4777 <      yy_aconf->port |= OPER_FLAG_ADMIN;
4778 <    else
4779 <      yy_aconf->port &= ~OPER_FLAG_ADMIN;
4780 <  }
4326 >    block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
4327   }
4328      break;
4329  
4330 <  case 195:
4331 <
4332 < /* Line 1455 of yacc.c  */
4787 < #line 1388 "ircd_parser.y"
4330 >  case 198:
4331 > /* Line 1787 of yacc.c  */
4332 > #line 1253 "conf_parser.y"
4333      {
4334    if (conf_parser_ctx.pass == 2)
4335 <  {
4791 <    if (yylval.number)
4792 <      yy_aconf->port |= OPER_FLAG_HIDDEN_ADMIN;
4793 <    else
4794 <      yy_aconf->port &= ~OPER_FLAG_HIDDEN_ADMIN;
4795 <  }
4335 >    block_state.port.value |= OPER_FLAG_CONNECT;
4336   }
4337      break;
4338  
4339 <  case 196:
4340 <
4341 < /* Line 1455 of yacc.c  */
4802 < #line 1399 "ircd_parser.y"
4339 >  case 199:
4340 > /* Line 1787 of yacc.c  */
4341 > #line 1257 "conf_parser.y"
4342      {
4343    if (conf_parser_ctx.pass == 2)
4344 <  {
4806 <    if (yylval.number)
4807 <      yy_aconf->port |= OPER_FLAG_HIDDEN_OPER;
4808 <    else
4809 <      yy_aconf->port &= ~OPER_FLAG_HIDDEN_OPER;
4810 <  }
4344 >    block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
4345   }
4346      break;
4347  
4348 <  case 197:
4349 <
4350 < /* Line 1455 of yacc.c  */
4817 < #line 1410 "ircd_parser.y"
4348 >  case 200:
4349 > /* Line 1787 of yacc.c  */
4350 > #line 1261 "conf_parser.y"
4351      {
4352    if (conf_parser_ctx.pass == 2)
4353 <  {
4821 <    if (yylval.number)
4822 <      yy_aconf->port |= OPER_FLAG_OPERWALL;
4823 <    else
4824 <      yy_aconf->port &= ~OPER_FLAG_OPERWALL;
4825 <  }
4353 >    block_state.port.value |= OPER_FLAG_SQUIT;
4354   }
4355      break;
4356  
4357 <  case 198:
4358 <
4359 < /* Line 1455 of yacc.c  */
4832 < #line 1421 "ircd_parser.y"
4357 >  case 201:
4358 > /* Line 1787 of yacc.c  */
4359 > #line 1265 "conf_parser.y"
4360      {
4361 +  if (conf_parser_ctx.pass == 2)
4362 +    block_state.port.value |= OPER_FLAG_K;
4363   }
4364      break;
4365  
4366    case 202:
4367 + /* Line 1787 of yacc.c  */
4368 + #line 1269 "conf_parser.y"
4369 +    {
4370 +  if (conf_parser_ctx.pass == 2)
4371 +    block_state.port.value |= OPER_FLAG_UNKLINE;
4372 + }
4373 +    break;
4374  
4375 < /* Line 1455 of yacc.c  */
4376 < #line 1425 "ircd_parser.y"
4377 <    { not_atom = 1; }
4375 >  case 203:
4376 > /* Line 1787 of yacc.c  */
4377 > #line 1273 "conf_parser.y"
4378 >    {
4379 >  if (conf_parser_ctx.pass == 2)
4380 >    block_state.port.value |= OPER_FLAG_DLINE;
4381 > }
4382      break;
4383  
4384    case 204:
4385 + /* Line 1787 of yacc.c  */
4386 + #line 1277 "conf_parser.y"
4387 +    {
4388 +  if (conf_parser_ctx.pass == 2)
4389 +    block_state.port.value |= OPER_FLAG_UNDLINE;
4390 + }
4391 +    break;
4392  
4393 < /* Line 1455 of yacc.c  */
4394 < #line 1426 "ircd_parser.y"
4395 <    { not_atom = 0; }
4393 >  case 205:
4394 > /* Line 1787 of yacc.c  */
4395 > #line 1281 "conf_parser.y"
4396 >    {
4397 >  if (conf_parser_ctx.pass == 2)
4398 >    block_state.port.value |= OPER_FLAG_X;
4399 > }
4400      break;
4401  
4402    case 206:
4403 <
4404 < /* Line 1455 of yacc.c  */
4854 < #line 1429 "ircd_parser.y"
4403 > /* Line 1787 of yacc.c  */
4404 > #line 1285 "conf_parser.y"
4405      {
4406    if (conf_parser_ctx.pass == 2)
4407 <  {
4858 <    if (not_atom)yy_aconf->port &= ~OPER_FLAG_GLOBAL_KILL;
4859 <    else yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4860 <  }
4407 >    block_state.port.value |= OPER_FLAG_GLINE;
4408   }
4409      break;
4410  
4411    case 207:
4412 <
4413 < /* Line 1455 of yacc.c  */
4867 < #line 1436 "ircd_parser.y"
4412 > /* Line 1787 of yacc.c  */
4413 > #line 1289 "conf_parser.y"
4414      {
4415    if (conf_parser_ctx.pass == 2)
4416 <  {
4871 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REMOTE;
4872 <    else yy_aconf->port |= OPER_FLAG_REMOTE;
4873 <  }
4416 >    block_state.port.value |= OPER_FLAG_DIE;
4417   }
4418      break;
4419  
4420    case 208:
4421 <
4422 < /* Line 1455 of yacc.c  */
4880 < #line 1443 "ircd_parser.y"
4421 > /* Line 1787 of yacc.c  */
4422 > #line 1293 "conf_parser.y"
4423      {
4424    if (conf_parser_ctx.pass == 2)
4425 <  {
4884 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_K;
4885 <    else yy_aconf->port |= OPER_FLAG_K;
4886 <  }
4425 >    block_state.port.value |= OPER_FLAG_RESTART;
4426   }
4427      break;
4428  
4429    case 209:
4430 <
4431 < /* Line 1455 of yacc.c  */
4893 < #line 1450 "ircd_parser.y"
4430 > /* Line 1787 of yacc.c  */
4431 > #line 1297 "conf_parser.y"
4432      {
4433    if (conf_parser_ctx.pass == 2)
4434 <  {
4897 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_UNKLINE;
4898 <    else yy_aconf->port |= OPER_FLAG_UNKLINE;
4899 <  }
4434 >    block_state.port.value |= OPER_FLAG_REHASH;
4435   }
4436      break;
4437  
4438    case 210:
4439 <
4440 < /* Line 1455 of yacc.c  */
4906 < #line 1457 "ircd_parser.y"
4439 > /* Line 1787 of yacc.c  */
4440 > #line 1301 "conf_parser.y"
4441      {
4442    if (conf_parser_ctx.pass == 2)
4443 <  {
4910 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_X;
4911 <    else yy_aconf->port |= OPER_FLAG_X;
4912 <  }
4443 >    block_state.port.value |= OPER_FLAG_ADMIN;
4444   }
4445      break;
4446  
4447    case 211:
4448 <
4449 < /* Line 1455 of yacc.c  */
4919 < #line 1464 "ircd_parser.y"
4448 > /* Line 1787 of yacc.c  */
4449 > #line 1305 "conf_parser.y"
4450      {
4451    if (conf_parser_ctx.pass == 2)
4452 <  {
4923 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_GLINE;
4924 <    else yy_aconf->port |= OPER_FLAG_GLINE;
4925 <  }
4452 >    block_state.port.value |= OPER_FLAG_OPERWALL;
4453   }
4454      break;
4455  
4456    case 212:
4457 <
4458 < /* Line 1455 of yacc.c  */
4932 < #line 1471 "ircd_parser.y"
4457 > /* Line 1787 of yacc.c  */
4458 > #line 1309 "conf_parser.y"
4459      {
4460    if (conf_parser_ctx.pass == 2)
4461 <  {
4936 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_DIE;
4937 <    else yy_aconf->port |= OPER_FLAG_DIE;
4938 <  }
4461 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4462   }
4463      break;
4464  
4465    case 213:
4466 <
4467 < /* Line 1455 of yacc.c  */
4945 < #line 1478 "ircd_parser.y"
4466 > /* Line 1787 of yacc.c  */
4467 > #line 1313 "conf_parser.y"
4468      {
4469    if (conf_parser_ctx.pass == 2)
4470 <  {
4949 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REHASH;
4950 <    else yy_aconf->port |= OPER_FLAG_REHASH;
4951 <  }
4470 >    block_state.port.value |= OPER_FLAG_WALLOPS;
4471   }
4472      break;
4473  
4474    case 214:
4475 <
4476 < /* Line 1455 of yacc.c  */
4958 < #line 1485 "ircd_parser.y"
4475 > /* Line 1787 of yacc.c  */
4476 > #line 1317 "conf_parser.y"
4477      {
4478    if (conf_parser_ctx.pass == 2)
4479 <  {
4962 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_ADMIN;
4963 <    else yy_aconf->port |= OPER_FLAG_ADMIN;
4964 <  }
4479 >    block_state.port.value |= OPER_FLAG_LOCOPS;
4480   }
4481      break;
4482  
4483    case 215:
4484 <
4485 < /* Line 1455 of yacc.c  */
4971 < #line 1492 "ircd_parser.y"
4484 > /* Line 1787 of yacc.c  */
4485 > #line 1321 "conf_parser.y"
4486      {
4487    if (conf_parser_ctx.pass == 2)
4488 <  {
4975 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_HIDDEN_ADMIN;
4976 <    else yy_aconf->port |= OPER_FLAG_HIDDEN_ADMIN;
4977 <  }
4488 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4489   }
4490      break;
4491  
4492    case 216:
4493 <
4494 < /* Line 1455 of yacc.c  */
4984 < #line 1499 "ircd_parser.y"
4493 > /* Line 1787 of yacc.c  */
4494 > #line 1325 "conf_parser.y"
4495      {
4496    if (conf_parser_ctx.pass == 2)
4497 <  {
4988 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_N;
4989 <    else yy_aconf->port |= OPER_FLAG_N;
4990 <  }
4497 >    block_state.port.value |= OPER_FLAG_SET;
4498   }
4499      break;
4500  
4501    case 217:
4502 <
4503 < /* Line 1455 of yacc.c  */
4997 < #line 1506 "ircd_parser.y"
4502 > /* Line 1787 of yacc.c  */
4503 > #line 1329 "conf_parser.y"
4504      {
4505    if (conf_parser_ctx.pass == 2)
4506 <  {
5001 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_OPERWALL;
5002 <    else yy_aconf->port |= OPER_FLAG_OPERWALL;
5003 <  }
4506 >    block_state.port.value |= OPER_FLAG_MODULE;
4507   }
4508      break;
4509  
4510    case 218:
4511 <
4512 < /* Line 1455 of yacc.c  */
5010 < #line 1513 "ircd_parser.y"
4511 > /* Line 1787 of yacc.c  */
4512 > #line 1339 "conf_parser.y"
4513      {
4514 <  if (conf_parser_ctx.pass == 2)
5013 <  {
5014 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_OPER_SPY;
5015 <    else yy_aconf->port |= OPER_FLAG_OPER_SPY;
5016 <  }
5017 < }
4514 >  if (conf_parser_ctx.pass != 1)
4515      break;
4516  
4517 <  case 219:
4517 >  reset_block_state();
4518  
4519 < /* Line 1455 of yacc.c  */
4520 < #line 1520 "ircd_parser.y"
4521 <    {
4522 <  if (conf_parser_ctx.pass == 2)
4523 <  {
5027 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_HIDDEN_OPER;
5028 <    else yy_aconf->port |= OPER_FLAG_HIDDEN_OPER;
5029 <  }
4519 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4520 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4521 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4522 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4523 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4524   }
4525      break;
4526  
4527 <  case 220:
4528 <
4529 < /* Line 1455 of yacc.c  */
5036 < #line 1527 "ircd_parser.y"
4527 >  case 219:
4528 > /* Line 1787 of yacc.c  */
4529 > #line 1351 "conf_parser.y"
4530      {
4531 <  if (conf_parser_ctx.pass == 2)
4532 <  {
4533 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REMOTEBAN;
5041 <    else yy_aconf->port |= OPER_FLAG_REMOTEBAN;
5042 <  }
5043 < }
4531 >  struct ClassItem *class = NULL;
4532 >
4533 >  if (conf_parser_ctx.pass != 1)
4534      break;
4535  
4536 <  case 221:
4536 >  if (!block_state.class.buf[0])
4537 >    break;
4538  
4539 < /* Line 1455 of yacc.c  */
4540 < #line 1534 "ircd_parser.y"
4541 <    {
4542 <  if (conf_parser_ctx.pass == 2)
4539 >  if (!(class = class_find(block_state.class.buf, 0)))
4540 >    class = class_make();
4541 >
4542 >  class->active = 1;
4543 >  MyFree(class->name);
4544 >  class->name = xstrdup(block_state.class.buf);
4545 >  class->ping_freq = block_state.ping_freq.value;
4546 >  class->max_perip = block_state.max_perip.value;
4547 >  class->con_freq = block_state.con_freq.value;
4548 >  class->max_total = block_state.max_total.value;
4549 >  class->max_global = block_state.max_global.value;
4550 >  class->max_local = block_state.max_local.value;
4551 >  class->max_ident = block_state.max_ident.value;
4552 >  class->max_sendq = block_state.max_sendq.value;
4553 >  class->max_recvq = block_state.max_recvq.value;
4554 >
4555 >  if (block_state.min_idle.value > block_state.max_idle.value)
4556    {
4557 <    if (not_atom) ClearConfEncrypted(yy_aconf);
4558 <    else SetConfEncrypted(yy_aconf);
4557 >    block_state.min_idle.value = 0;
4558 >    block_state.max_idle.value = 0;
4559 >    block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4560    }
4561 +
4562 +  class->flags = block_state.flags.value;
4563 +  class->min_idle = block_state.min_idle.value;
4564 +  class->max_idle = block_state.max_idle.value;
4565 +
4566 +  if (class->number_per_cidr && block_state.number_per_cidr.value)
4567 +    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4568 +        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4569 +      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4570 +          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4571 +        rebuild_cidr_list(class);
4572 +
4573 +  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4574 +  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4575 +  class->number_per_cidr = block_state.number_per_cidr.value;
4576   }
4577      break;
4578  
4579 <  case 222:
4580 <
4581 < /* Line 1455 of yacc.c  */
5062 < #line 1547 "ircd_parser.y"
4579 >  case 239:
4580 > /* Line 1787 of yacc.c  */
4581 > #line 1417 "conf_parser.y"
4582      {
4583    if (conf_parser_ctx.pass == 1)
4584 <  {
5066 <    yy_conf = make_conf_item(CLASS_TYPE);
5067 <    yy_class = map_to_conf(yy_conf);
5068 <  }
4584 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4585   }
4586      break;
4587  
4588 <  case 223:
4589 <
4590 < /* Line 1455 of yacc.c  */
5075 < #line 1554 "ircd_parser.y"
4588 >  case 240:
4589 > /* Line 1787 of yacc.c  */
4590 > #line 1423 "conf_parser.y"
4591      {
4592    if (conf_parser_ctx.pass == 1)
4593 <  {
4594 <    struct ConfItem *cconf = NULL;
4595 <    struct ClassItem *class = NULL;
4593 >    block_state.ping_freq.value = (yyvsp[(3) - (4)].number);
4594 > }
4595 >    break;
4596  
4597 <    if (yy_class_name == NULL)
4598 <      delete_conf_item(yy_conf);
4599 <    else
4597 >  case 241:
4598 > /* Line 1787 of yacc.c  */
4599 > #line 1429 "conf_parser.y"
4600      {
4601 <      cconf = find_exact_name_conf(CLASS_TYPE, yy_class_name, NULL, NULL);
4602 <
5088 <      if (cconf != NULL)                /* The class existed already */
5089 <      {
5090 <        int user_count = 0;
5091 <
5092 <        rebuild_cidr_class(cconf, yy_class);
5093 <
5094 <        class = map_to_conf(cconf);
5095 <
5096 <        user_count = class->curr_user_count;
5097 <        memcpy(class, yy_class, sizeof(*class));
5098 <        class->curr_user_count = user_count;
5099 <        class->active = 1;
5100 <
5101 <        delete_conf_item(yy_conf);
5102 <
5103 <        MyFree(cconf->name);            /* Allows case change of class name */
5104 <        cconf->name = yy_class_name;
5105 <      }
5106 <      else      /* Brand new class */
5107 <      {
5108 <        MyFree(yy_conf->name);          /* just in case it was allocated */
5109 <        yy_conf->name = yy_class_name;
5110 <        yy_class->active = 1;
5111 <      }
5112 <    }
5113 <
5114 <    yy_class_name = NULL;
5115 <  }
4601 >  if (conf_parser_ctx.pass == 1)
4602 >    block_state.max_perip.value = (yyvsp[(3) - (4)].number);
4603   }
4604      break;
4605  
4606    case 242:
4607 <
4608 < /* Line 1455 of yacc.c  */
5122 < #line 1614 "ircd_parser.y"
4607 > /* Line 1787 of yacc.c  */
4608 > #line 1435 "conf_parser.y"
4609      {
4610    if (conf_parser_ctx.pass == 1)
4611 <  {
5126 <    MyFree(yy_class_name);
5127 <    DupString(yy_class_name, yylval.string);
5128 <  }
4611 >    block_state.con_freq.value = (yyvsp[(3) - (4)].number);
4612   }
4613      break;
4614  
4615    case 243:
4616 <
4617 < /* Line 1455 of yacc.c  */
5135 < #line 1623 "ircd_parser.y"
4616 > /* Line 1787 of yacc.c  */
4617 > #line 1441 "conf_parser.y"
4618      {
4619    if (conf_parser_ctx.pass == 1)
4620 <  {
5139 <    MyFree(yy_class_name);
5140 <    DupString(yy_class_name, yylval.string);
5141 <  }
4620 >    block_state.max_total.value = (yyvsp[(3) - (4)].number);
4621   }
4622      break;
4623  
4624    case 244:
4625 <
4626 < /* Line 1455 of yacc.c  */
5148 < #line 1632 "ircd_parser.y"
4625 > /* Line 1787 of yacc.c  */
4626 > #line 1447 "conf_parser.y"
4627      {
4628    if (conf_parser_ctx.pass == 1)
4629 <    PingFreq(yy_class) = (yyvsp[(3) - (4)].number);
4629 >    block_state.max_global.value = (yyvsp[(3) - (4)].number);
4630   }
4631      break;
4632  
4633    case 245:
4634 <
4635 < /* Line 1455 of yacc.c  */
5158 < #line 1638 "ircd_parser.y"
4634 > /* Line 1787 of yacc.c  */
4635 > #line 1453 "conf_parser.y"
4636      {
4637    if (conf_parser_ctx.pass == 1)
4638 <    PingWarning(yy_class) = (yyvsp[(3) - (4)].number);
4638 >    block_state.max_local.value = (yyvsp[(3) - (4)].number);
4639   }
4640      break;
4641  
4642    case 246:
4643 <
4644 < /* Line 1455 of yacc.c  */
5168 < #line 1644 "ircd_parser.y"
4643 > /* Line 1787 of yacc.c  */
4644 > #line 1459 "conf_parser.y"
4645      {
4646    if (conf_parser_ctx.pass == 1)
4647 <    MaxPerIp(yy_class) = (yyvsp[(3) - (4)].number);
4647 >    block_state.max_ident.value = (yyvsp[(3) - (4)].number);
4648   }
4649      break;
4650  
4651    case 247:
4652 <
4653 < /* Line 1455 of yacc.c  */
5178 < #line 1650 "ircd_parser.y"
4652 > /* Line 1787 of yacc.c  */
4653 > #line 1465 "conf_parser.y"
4654      {
4655    if (conf_parser_ctx.pass == 1)
4656 <    ConFreq(yy_class) = (yyvsp[(3) - (4)].number);
4656 >    block_state.max_sendq.value = (yyvsp[(3) - (4)].number);
4657   }
4658      break;
4659  
4660    case 248:
4661 <
4662 < /* Line 1455 of yacc.c  */
5188 < #line 1656 "ircd_parser.y"
4661 > /* Line 1787 of yacc.c  */
4662 > #line 1471 "conf_parser.y"
4663      {
4664    if (conf_parser_ctx.pass == 1)
4665 <    MaxTotal(yy_class) = (yyvsp[(3) - (4)].number);
4665 >    if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4666 >      block_state.max_recvq.value = (yyvsp[(3) - (4)].number);
4667   }
4668      break;
4669  
4670    case 249:
4671 <
4672 < /* Line 1455 of yacc.c  */
5198 < #line 1662 "ircd_parser.y"
4671 > /* Line 1787 of yacc.c  */
4672 > #line 1478 "conf_parser.y"
4673      {
4674    if (conf_parser_ctx.pass == 1)
4675 <    MaxGlobal(yy_class) = (yyvsp[(3) - (4)].number);
4675 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4676   }
4677      break;
4678  
4679    case 250:
4680 <
4681 < /* Line 1455 of yacc.c  */
5208 < #line 1668 "ircd_parser.y"
4680 > /* Line 1787 of yacc.c  */
4681 > #line 1484 "conf_parser.y"
4682      {
4683    if (conf_parser_ctx.pass == 1)
4684 <    MaxLocal(yy_class) = (yyvsp[(3) - (4)].number);
4684 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4685   }
4686      break;
4687  
4688    case 251:
4689 <
4690 < /* Line 1455 of yacc.c  */
5218 < #line 1674 "ircd_parser.y"
4689 > /* Line 1787 of yacc.c  */
4690 > #line 1490 "conf_parser.y"
4691      {
4692    if (conf_parser_ctx.pass == 1)
4693 <    MaxIdent(yy_class) = (yyvsp[(3) - (4)].number);
4693 >    block_state.number_per_cidr.value = (yyvsp[(3) - (4)].number);
4694   }
4695      break;
4696  
4697    case 252:
4698 <
4699 < /* Line 1455 of yacc.c  */
5228 < #line 1680 "ircd_parser.y"
4698 > /* Line 1787 of yacc.c  */
4699 > #line 1496 "conf_parser.y"
4700      {
4701 <  if (conf_parser_ctx.pass == 1)
4702 <    MaxSendq(yy_class) = (yyvsp[(3) - (4)].number);
4701 >  if (conf_parser_ctx.pass != 1)
4702 >    break;
4703 >
4704 >  block_state.min_idle.value = (yyvsp[(3) - (4)].number);
4705 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4706   }
4707      break;
4708  
4709    case 253:
4710 <
4711 < /* Line 1455 of yacc.c  */
5238 < #line 1686 "ircd_parser.y"
4710 > /* Line 1787 of yacc.c  */
4711 > #line 1505 "conf_parser.y"
4712      {
4713 <  if (conf_parser_ctx.pass == 1)
4714 <    CidrBitlenIPV4(yy_class) = (yyvsp[(3) - (4)].number);
4713 >  if (conf_parser_ctx.pass != 1)
4714 >    break;
4715 >
4716 >  block_state.max_idle.value = (yyvsp[(3) - (4)].number);
4717 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4718   }
4719      break;
4720  
4721    case 254:
4722 <
4723 < /* Line 1455 of yacc.c  */
5248 < #line 1692 "ircd_parser.y"
4722 > /* Line 1787 of yacc.c  */
4723 > #line 1514 "conf_parser.y"
4724      {
4725    if (conf_parser_ctx.pass == 1)
4726 <    CidrBitlenIPV6(yy_class) = (yyvsp[(3) - (4)].number);
4726 >    block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4727   }
4728      break;
4729  
4730 <  case 255:
4731 <
4732 < /* Line 1455 of yacc.c  */
5258 < #line 1698 "ircd_parser.y"
4730 >  case 258:
4731 > /* Line 1787 of yacc.c  */
4732 > #line 1521 "conf_parser.y"
4733      {
4734    if (conf_parser_ctx.pass == 1)
4735 <    NumberPerCidr(yy_class) = (yyvsp[(3) - (4)].number);
4735 >    block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4736   }
4737      break;
4738  
4739 <  case 256:
4740 <
4741 < /* Line 1455 of yacc.c  */
5268 < #line 1707 "ircd_parser.y"
4739 >  case 259:
4740 > /* Line 1787 of yacc.c  */
4741 > #line 1525 "conf_parser.y"
4742      {
4743 <  if (conf_parser_ctx.pass == 2)
4744 <  {
5272 <    listener_address = NULL;
5273 <    listener_flags = 0;
5274 <  }
4743 >  if (conf_parser_ctx.pass == 1)
4744 >    block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4745   }
4746      break;
4747  
4748 <  case 257:
4749 <
4750 < /* Line 1455 of yacc.c  */
5281 < #line 1714 "ircd_parser.y"
4748 >  case 260:
4749 > /* Line 1787 of yacc.c  */
4750 > #line 1535 "conf_parser.y"
4751      {
4752    if (conf_parser_ctx.pass == 2)
4753 <  {
5285 <    MyFree(listener_address);
5286 <    listener_address = NULL;
5287 <  }
4753 >    reset_block_state();
4754   }
4755      break;
4756  
4757 <  case 258:
4758 <
4759 < /* Line 1455 of yacc.c  */
5294 < #line 1723 "ircd_parser.y"
4757 >  case 262:
4758 > /* Line 1787 of yacc.c  */
4759 > #line 1541 "conf_parser.y"
4760      {
4761 <  listener_flags = 0;
4761 >  block_state.flags.value = 0;
4762   }
4763      break;
4764  
4765 <  case 262:
4766 <
4767 < /* Line 1455 of yacc.c  */
5303 < #line 1729 "ircd_parser.y"
4765 >  case 266:
4766 > /* Line 1787 of yacc.c  */
4767 > #line 1547 "conf_parser.y"
4768      {
4769    if (conf_parser_ctx.pass == 2)
4770 <    listener_flags |= LISTENER_SSL;
4770 >    block_state.flags.value |= LISTENER_SSL;
4771   }
4772      break;
4773  
4774 <  case 263:
4775 <
4776 < /* Line 1455 of yacc.c  */
5313 < #line 1733 "ircd_parser.y"
4774 >  case 267:
4775 > /* Line 1787 of yacc.c  */
4776 > #line 1551 "conf_parser.y"
4777      {
4778    if (conf_parser_ctx.pass == 2)
4779 <    listener_flags |= LISTENER_HIDDEN;
4779 >    block_state.flags.value |= LISTENER_HIDDEN;
4780   }
4781      break;
4782  
4783 <  case 264:
4784 <
4785 < /* Line 1455 of yacc.c  */
5323 < #line 1737 "ircd_parser.y"
4783 >  case 268:
4784 > /* Line 1787 of yacc.c  */
4785 > #line 1555 "conf_parser.y"
4786      {
4787    if (conf_parser_ctx.pass == 2)
4788 <    listener_flags |= LISTENER_SERVER;
4788 >   block_state.flags.value |= LISTENER_SERVER;
4789   }
4790      break;
4791  
5330  case 272:
5331
5332 /* Line 1455 of yacc.c  */
5333 #line 1747 "ircd_parser.y"
5334    { listener_flags = 0; }
5335    break;
5336
4792    case 276:
4793 + /* Line 1787 of yacc.c  */
4794 + #line 1563 "conf_parser.y"
4795 +    { block_state.flags.value = 0; }
4796 +    break;
4797  
4798 < /* Line 1455 of yacc.c  */
4799 < #line 1752 "ircd_parser.y"
4798 >  case 280:
4799 > /* Line 1787 of yacc.c  */
4800 > #line 1568 "conf_parser.y"
4801      {
4802    if (conf_parser_ctx.pass == 2)
4803    {
4804 <    if ((listener_flags & LISTENER_SSL))
4804 >    if (block_state.flags.value & LISTENER_SSL)
4805   #ifdef HAVE_LIBCRYPTO
4806        if (!ServerInfo.server_ctx)
4807   #endif
4808        {
4809 <        yyerror("SSL not available - port closed");
4809 >        conf_error_report("SSL not available - port closed");
4810          break;
4811        }
4812 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4812 >    add_listener((yyvsp[(1) - (1)].number), block_state.addr.buf, block_state.flags.value);
4813    }
4814   }
4815      break;
4816  
4817 <  case 277:
4818 <
4819 < /* Line 1455 of yacc.c  */
5360 < #line 1766 "ircd_parser.y"
4817 >  case 281:
4818 > /* Line 1787 of yacc.c  */
4819 > #line 1582 "conf_parser.y"
4820      {
4821    if (conf_parser_ctx.pass == 2)
4822    {
4823      int i;
4824  
4825 <    if ((listener_flags & LISTENER_SSL))
4825 >    if (block_state.flags.value & LISTENER_SSL)
4826   #ifdef HAVE_LIBCRYPTO
4827        if (!ServerInfo.server_ctx)
4828   #endif
4829        {
4830 <        yyerror("SSL not available - port closed");
4830 >        conf_error_report("SSL not available - port closed");
4831          break;
4832        }
4833  
4834      for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4835 <      add_listener(i, listener_address, listener_flags);
4835 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4836    }
4837   }
4838      break;
4839  
4840 <  case 278:
4841 <
4842 < /* Line 1455 of yacc.c  */
5384 < #line 1786 "ircd_parser.y"
4840 >  case 282:
4841 > /* Line 1787 of yacc.c  */
4842 > #line 1602 "conf_parser.y"
4843      {
4844    if (conf_parser_ctx.pass == 2)
4845 <  {
5388 <    MyFree(listener_address);
5389 <    DupString(listener_address, yylval.string);
5390 <  }
4845 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4846   }
4847      break;
4848  
4849 <  case 279:
4850 <
4851 < /* Line 1455 of yacc.c  */
5397 < #line 1795 "ircd_parser.y"
4849 >  case 283:
4850 > /* Line 1787 of yacc.c  */
4851 > #line 1608 "conf_parser.y"
4852      {
4853    if (conf_parser_ctx.pass == 2)
4854 <  {
5401 <    MyFree(listener_address);
5402 <    DupString(listener_address, yylval.string);
5403 <  }
4854 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4855   }
4856      break;
4857  
4858 <  case 280:
4859 <
4860 < /* Line 1455 of yacc.c  */
5410 < #line 1807 "ircd_parser.y"
4858 >  case 284:
4859 > /* Line 1787 of yacc.c  */
4860 > #line 1617 "conf_parser.y"
4861      {
4862    if (conf_parser_ctx.pass == 2)
4863 <  {
5414 <    yy_conf = make_conf_item(CLIENT_TYPE);
5415 <    yy_aconf = map_to_conf(yy_conf);
5416 <  }
5417 <  else
5418 <  {
5419 <    MyFree(class_name);
5420 <    class_name = NULL;
5421 <  }
4863 >    reset_block_state();
4864   }
4865      break;
4866  
4867 <  case 281:
4868 <
4869 < /* Line 1455 of yacc.c  */
5428 < #line 1819 "ircd_parser.y"
4867 >  case 285:
4868 > /* Line 1787 of yacc.c  */
4869 > #line 1621 "conf_parser.y"
4870      {
4871 <  if (conf_parser_ctx.pass == 2)
5431 <  {
5432 <    struct CollectItem *yy_tmp = NULL;
5433 <    dlink_node *ptr = NULL, *next_ptr = NULL;
5434 <
5435 <    if (yy_aconf->user && yy_aconf->host)
5436 <    {
5437 <      conf_add_class_to_conf(yy_conf, class_name);
5438 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
5439 <    }
5440 <    else
5441 <      delete_conf_item(yy_conf);
5442 <
5443 <    /* copy over settings from first struct */
5444 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
5445 <    {
5446 <      struct AccessItem *new_aconf;
5447 <      struct ConfItem *new_conf;
5448 <
5449 <      new_conf = make_conf_item(CLIENT_TYPE);
5450 <      new_aconf = map_to_conf(new_conf);
5451 <
5452 <      yy_tmp = ptr->data;
5453 <
5454 <      assert(yy_tmp->user && yy_tmp->host);
5455 <
5456 <      if (yy_aconf->passwd != NULL)
5457 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5458 <      if (yy_conf->name != NULL)
5459 <        DupString(new_conf->name, yy_conf->name);
5460 <      if (yy_aconf->passwd != NULL)
5461 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5462 <
5463 <      new_aconf->flags = yy_aconf->flags;
5464 <      new_aconf->port  = yy_aconf->port;
5465 <
5466 <      DupString(new_aconf->user, yy_tmp->user);
5467 <      collapse(new_aconf->user);
4871 >  dlink_node *ptr = NULL;
4872  
4873 <      DupString(new_aconf->host, yy_tmp->host);
5470 <      collapse(new_aconf->host);
5471 <
5472 <      conf_add_class_to_conf(new_conf, class_name);
5473 <      add_conf_by_address(CONF_CLIENT, new_aconf);
5474 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
5475 <      free_collect_item(yy_tmp);
5476 <    }
5477 <
5478 <    MyFree(class_name);
5479 <    class_name = NULL;
5480 <    yy_conf = NULL;
5481 <    yy_aconf = NULL;
5482 <  }
5483 < }
4873 >  if (conf_parser_ctx.pass != 2)
4874      break;
4875  
4876 <  case 301:
5487 <
5488 < /* Line 1455 of yacc.c  */
5489 < #line 1884 "ircd_parser.y"
5490 <    {
5491 <  if (conf_parser_ctx.pass == 2)
4876 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4877    {
4878 <    struct CollectItem *yy_tmp = NULL;
4878 >    struct MaskItem *conf = NULL;
4879      struct split_nuh_item nuh;
4880  
4881 <    nuh.nuhmask  = yylval.string;
4881 >    nuh.nuhmask  = ptr->data;
4882      nuh.nickptr  = NULL;
4883 <    nuh.userptr  = userbuf;
4884 <    nuh.hostptr  = hostbuf;
5500 <
4883 >    nuh.userptr  = block_state.user.buf;
4884 >    nuh.hostptr  = block_state.host.buf;
4885      nuh.nicksize = 0;
4886 <    nuh.usersize = sizeof(userbuf);
4887 <    nuh.hostsize = sizeof(hostbuf);
5504 <
4886 >    nuh.usersize = sizeof(block_state.user.buf);
4887 >    nuh.hostsize = sizeof(block_state.host.buf);
4888      split_nuh(&nuh);
4889  
4890 <    if (yy_aconf->user == NULL)
4891 <    {
4892 <      DupString(yy_aconf->user, userbuf);
5510 <      DupString(yy_aconf->host, hostbuf);
5511 <    }
5512 <    else
5513 <    {
5514 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4890 >    conf        = conf_make(CONF_CLIENT);
4891 >    conf->user  = xstrdup(block_state.user.buf);
4892 >    conf->host  = xstrdup(block_state.host.buf);
4893  
4894 <      DupString(yy_tmp->user, userbuf);
4895 <      DupString(yy_tmp->host, hostbuf);
4894 >    if (block_state.rpass.buf[0])
4895 >      conf->passwd = xstrdup(block_state.rpass.buf);
4896 >    if (block_state.name.buf[0])
4897 >      conf->name = xstrdup(block_state.name.buf);
4898  
4899 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4900 <    }
4899 >    conf->flags = block_state.flags.value;
4900 >    conf->port  = block_state.port.value;
4901 >
4902 >    conf_add_class_to_conf(conf, block_state.class.buf);
4903 >    add_conf_by_address(CONF_CLIENT, conf);
4904    }
4905   }
4906      break;
4907  
4908 <  case 302:
4909 <
4910 < /* Line 1455 of yacc.c  */
5528 < #line 1921 "ircd_parser.y"
4908 >  case 297:
4909 > /* Line 1787 of yacc.c  */
4910 > #line 1664 "conf_parser.y"
4911      {
4912    if (conf_parser_ctx.pass == 2)
4913 <  {
5532 <    /* be paranoid */
5533 <    if (yy_aconf->passwd != NULL)
5534 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5535 <
5536 <    MyFree(yy_aconf->passwd);
5537 <    DupString(yy_aconf->passwd, yylval.string);
5538 <  }
4913 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4914   }
4915      break;
4916  
4917 <  case 303:
4918 <
4919 < /* Line 1455 of yacc.c  */
5545 < #line 1934 "ircd_parser.y"
4917 >  case 298:
4918 > /* Line 1787 of yacc.c  */
4919 > #line 1670 "conf_parser.y"
4920      {
4921    if (conf_parser_ctx.pass == 2)
4922 <  {
5549 <    if (yylval.number)
5550 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
5551 <    else
5552 <      yy_aconf->flags &= ~CONF_FLAGS_SPOOF_NOTICE;
5553 <  }
4922 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4923   }
4924      break;
4925  
4926 <  case 304:
4927 <
4928 < /* Line 1455 of yacc.c  */
5560 < #line 1945 "ircd_parser.y"
4926 >  case 299:
4927 > /* Line 1787 of yacc.c  */
4928 > #line 1676 "conf_parser.y"
4929      {
4930    if (conf_parser_ctx.pass == 2)
4931 <  {
5564 <    MyFree(class_name);
5565 <    DupString(class_name, yylval.string);
5566 <  }
4931 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4932   }
4933      break;
4934  
4935 <  case 305:
4936 <
4937 < /* Line 1455 of yacc.c  */
5573 < #line 1954 "ircd_parser.y"
4935 >  case 300:
4936 > /* Line 1787 of yacc.c  */
4937 > #line 1682 "conf_parser.y"
4938      {
4939    if (conf_parser_ctx.pass == 2)
4940    {
4941      if (yylval.number)
4942 <      SetConfEncrypted(yy_aconf);
4942 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4943      else
4944 <      ClearConfEncrypted(yy_aconf);
4944 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4945    }
4946   }
4947      break;
4948  
4949 <  case 306:
4950 <
4951 < /* Line 1455 of yacc.c  */
5588 < #line 1965 "ircd_parser.y"
4949 >  case 301:
4950 > /* Line 1787 of yacc.c  */
4951 > #line 1693 "conf_parser.y"
4952      {
4953 +  if (conf_parser_ctx.pass == 2)
4954 +    block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4955   }
4956      break;
4957  
4958 <  case 310:
4959 <
4960 < /* Line 1455 of yacc.c  */
5596 < #line 1969 "ircd_parser.y"
5597 <    { not_atom = 1; }
5598 <    break;
5599 <
5600 <  case 312:
5601 <
5602 < /* Line 1455 of yacc.c  */
5603 < #line 1970 "ircd_parser.y"
5604 <    { not_atom = 0; }
5605 <    break;
5606 <
5607 <  case 314:
5608 <
5609 < /* Line 1455 of yacc.c  */
5610 < #line 1973 "ircd_parser.y"
4958 >  case 305:
4959 > /* Line 1787 of yacc.c  */
4960 > #line 1700 "conf_parser.y"
4961      {
4962    if (conf_parser_ctx.pass == 2)
4963 <  {
5614 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_SPOOF_NOTICE;
5615 <    else yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
5616 <  }
5617 <
4963 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4964   }
4965      break;
4966  
4967 <  case 315:
4968 <
4969 < /* Line 1455 of yacc.c  */
5624 < #line 1981 "ircd_parser.y"
4967 >  case 306:
4968 > /* Line 1787 of yacc.c  */
4969 > #line 1704 "conf_parser.y"
4970      {
4971    if (conf_parser_ctx.pass == 2)
4972 <  {
5628 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NOLIMIT;
5629 <    else yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
5630 <  }
4972 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4973   }
4974      break;
4975  
4976 <  case 316:
4977 <
4978 < /* Line 1455 of yacc.c  */
5637 < #line 1988 "ircd_parser.y"
4976 >  case 307:
4977 > /* Line 1787 of yacc.c  */
4978 > #line 1708 "conf_parser.y"
4979      {
4980    if (conf_parser_ctx.pass == 2)
4981 <  {
5641 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTKLINE;
5642 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
5643 <  }
4981 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4982   }
4983      break;
4984  
4985 <  case 317:
4986 <
4987 < /* Line 1455 of yacc.c  */
5650 < #line 1995 "ircd_parser.y"
4985 >  case 308:
4986 > /* Line 1787 of yacc.c  */
4987 > #line 1712 "conf_parser.y"
4988      {
4989    if (conf_parser_ctx.pass == 2)
4990 <  {
5654 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NEED_IDENTD;
5655 <    else yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
5656 <  }
4990 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4991   }
4992      break;
4993  
4994 <  case 318:
4995 <
4996 < /* Line 1455 of yacc.c  */
5663 < #line 2002 "ircd_parser.y"
4994 >  case 309:
4995 > /* Line 1787 of yacc.c  */
4996 > #line 1716 "conf_parser.y"
4997      {
4998    if (conf_parser_ctx.pass == 2)
4999 <  {
5667 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_CAN_FLOOD;
5668 <    else yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
5669 <  }
4999 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
5000   }
5001      break;
5002  
5003 <  case 319:
5004 <
5005 < /* Line 1455 of yacc.c  */
5676 < #line 2009 "ircd_parser.y"
5003 >  case 310:
5004 > /* Line 1787 of yacc.c  */
5005 > #line 1720 "conf_parser.y"
5006      {
5007    if (conf_parser_ctx.pass == 2)
5008 <  {
5680 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_IDLE_LINED;
5681 <    else yy_aconf->flags |= CONF_FLAGS_IDLE_LINED;
5682 <  }
5008 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
5009   }
5010      break;
5011  
5012 <  case 320:
5013 <
5014 < /* Line 1455 of yacc.c  */
5689 < #line 2016 "ircd_parser.y"
5012 >  case 311:
5013 > /* Line 1787 of yacc.c  */
5014 > #line 1724 "conf_parser.y"
5015      {
5016    if (conf_parser_ctx.pass == 2)
5017 <  {
5693 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NO_TILDE;
5694 <    else yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
5695 <  }
5017 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
5018   }
5019      break;
5020  
5021 <  case 321:
5022 <
5023 < /* Line 1455 of yacc.c  */
5702 < #line 2023 "ircd_parser.y"
5021 >  case 312:
5022 > /* Line 1787 of yacc.c  */
5023 > #line 1728 "conf_parser.y"
5024      {
5025    if (conf_parser_ctx.pass == 2)
5026 <  {
5706 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTGLINE;
5707 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
5708 <  }
5026 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
5027   }
5028      break;
5029  
5030 <  case 322:
5031 <
5032 < /* Line 1455 of yacc.c  */
5715 < #line 2030 "ircd_parser.y"
5030 >  case 313:
5031 > /* Line 1787 of yacc.c  */
5032 > #line 1732 "conf_parser.y"
5033      {
5034    if (conf_parser_ctx.pass == 2)
5035 <  {
5719 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTRESV;
5720 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
5721 <  }
5035 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
5036   }
5037      break;
5038  
5039 <  case 323:
5040 <
5041 < /* Line 1455 of yacc.c  */
5728 < #line 2037 "ircd_parser.y"
5039 >  case 314:
5040 > /* Line 1787 of yacc.c  */
5041 > #line 1736 "conf_parser.y"
5042      {
5043    if (conf_parser_ctx.pass == 2)
5044 <  {
5732 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NEED_PASSWORD;
5733 <    else yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
5734 <  }
5044 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
5045   }
5046      break;
5047  
5048 <  case 324:
5049 <
5050 < /* Line 1455 of yacc.c  */
5741 < #line 2046 "ircd_parser.y"
5048 >  case 315:
5049 > /* Line 1787 of yacc.c  */
5050 > #line 1742 "conf_parser.y"
5051      {
5052 <  if (conf_parser_ctx.pass == 2)
5744 <  {
5745 <    if (yylval.number)
5746 <      yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
5747 <    else
5748 <      yy_aconf->flags &= ~CONF_FLAGS_EXEMPTKLINE;
5749 <  }
5750 < }
5052 >  if (conf_parser_ctx.pass != 2)
5053      break;
5054  
5055 <  case 325:
5754 <
5755 < /* Line 1455 of yacc.c  */
5756 < #line 2057 "ircd_parser.y"
5757 <    {
5758 <  if (conf_parser_ctx.pass == 2)
5055 >  if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
5056    {
5057 <    if (yylval.number)
5058 <      yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
5762 <    else
5763 <      yy_aconf->flags &= ~CONF_FLAGS_NEED_IDENTD;
5057 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5058 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
5059    }
5060 +  else
5061 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
5062   }
5063      break;
5064  
5065 <  case 326:
5066 <
5067 < /* Line 1455 of yacc.c  */
5771 < #line 2068 "ircd_parser.y"
5065 >  case 316:
5066 > /* Line 1787 of yacc.c  */
5067 > #line 1756 "conf_parser.y"
5068      {
5069 <  if (conf_parser_ctx.pass == 2)
5774 <  {
5775 <    if (yylval.number)
5776 <      yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
5777 <    else
5778 <      yy_aconf->flags &= ~CONF_FLAGS_NOLIMIT;
5779 <  }
5780 < }
5069 >  if (conf_parser_ctx.pass != 2)
5070      break;
5071  
5072 <  case 327:
5073 <
5785 < /* Line 1455 of yacc.c  */
5786 < #line 2079 "ircd_parser.y"
5787 <    {
5788 <  if (conf_parser_ctx.pass == 2)
5789 <  {
5790 <    if (yylval.number)
5791 <      yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
5792 <    else
5793 <      yy_aconf->flags &= ~CONF_FLAGS_CAN_FLOOD;
5794 <  }
5072 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5073 >  block_state.flags.value |= CONF_FLAGS_REDIR;
5074   }
5075      break;
5076  
5077 <  case 328:
5078 <
5079 < /* Line 1455 of yacc.c  */
5801 < #line 2090 "ircd_parser.y"
5077 >  case 317:
5078 > /* Line 1787 of yacc.c  */
5079 > #line 1765 "conf_parser.y"
5080      {
5081 <  if (conf_parser_ctx.pass == 2)
5804 <  {
5805 <    if (yylval.number)
5806 <      yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
5807 <    else
5808 <      yy_aconf->flags &= ~CONF_FLAGS_NO_TILDE;
5809 <  }
5810 < }
5081 >  if (conf_parser_ctx.pass != 2)
5082      break;
5083  
5084 <  case 329:
5085 <
5815 < /* Line 1455 of yacc.c  */
5816 < #line 2101 "ircd_parser.y"
5817 <    {
5818 <  if (conf_parser_ctx.pass == 2)
5819 <  {
5820 <    if (yylval.number)
5821 <      yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
5822 <    else
5823 <      yy_aconf->flags &= ~CONF_FLAGS_EXEMPTGLINE;
5824 <  }
5084 >  block_state.flags.value |= CONF_FLAGS_REDIR;
5085 >  block_state.port.value = (yyvsp[(3) - (4)].number);
5086   }
5087      break;
5088  
5089 <  case 330:
5090 <
5091 < /* Line 1455 of yacc.c  */
5831 < #line 2113 "ircd_parser.y"
5089 >  case 318:
5090 > /* Line 1787 of yacc.c  */
5091 > #line 1778 "conf_parser.y"
5092      {
5093 <  if (conf_parser_ctx.pass == 2)
5094 <  {
5835 <    MyFree(yy_conf->name);
5093 >  if (conf_parser_ctx.pass != 2)
5094 >    break;
5095  
5096 <    if (strlen(yylval.string) < HOSTLEN)
5097 <    {    
5839 <      DupString(yy_conf->name, yylval.string);
5840 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
5841 <    }
5842 <    else
5843 <    {
5844 <      ilog(L_ERROR, "Spoofs must be less than %d..ignoring it", HOSTLEN);
5845 <      yy_conf->name = NULL;
5846 <    }
5847 <  }
5096 >  reset_block_state();
5097 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
5098   }
5099      break;
5100  
5101 <  case 331:
5102 <
5103 < /* Line 1455 of yacc.c  */
5854 < #line 2132 "ircd_parser.y"
5101 >  case 319:
5102 > /* Line 1787 of yacc.c  */
5103 > #line 1785 "conf_parser.y"
5104      {
5105 <  if (conf_parser_ctx.pass == 2)
5857 <  {
5858 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5859 <    MyFree(yy_conf->name);
5860 <    DupString(yy_conf->name, yylval.string);
5861 <  }
5862 < }
5105 >  if (conf_parser_ctx.pass != 2)
5106      break;
5107  
5108 <  case 332:
5866 <
5867 < /* Line 1455 of yacc.c  */
5868 < #line 2142 "ircd_parser.y"
5869 <    {
5870 <  if (conf_parser_ctx.pass == 2)
5871 <  {
5872 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5873 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5874 <  }
5108 >  create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
5109   }
5110      break;
5111  
5112 <  case 333:
5113 <
5114 < /* Line 1455 of yacc.c  */
5881 < #line 2151 "ircd_parser.y"
5112 >  case 326:
5113 > /* Line 1787 of yacc.c  */
5114 > #line 1796 "conf_parser.y"
5115      {
5116    if (conf_parser_ctx.pass == 2)
5117 <  {
5885 <    if (yylval.number)
5886 <      yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
5887 <    else
5888 <      yy_aconf->flags &= ~CONF_FLAGS_NEED_PASSWORD;
5889 <  }
5117 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5118   }
5119      break;
5120  
5121 <  case 334:
5122 <
5123 < /* Line 1455 of yacc.c  */
5896 < #line 2166 "ircd_parser.y"
5121 >  case 327:
5122 > /* Line 1787 of yacc.c  */
5123 > #line 1802 "conf_parser.y"
5124      {
5125    if (conf_parser_ctx.pass == 2)
5126 <  {
5900 <    MyFree(resv_reason);
5901 <    resv_reason = NULL;
5902 <  }
5126 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5127   }
5128      break;
5129  
5130 <  case 335:
5131 <
5132 < /* Line 1455 of yacc.c  */
5909 < #line 2173 "ircd_parser.y"
5130 >  case 328:
5131 > /* Line 1787 of yacc.c  */
5132 > #line 1808 "conf_parser.y"
5133      {
5134    if (conf_parser_ctx.pass == 2)
5135 <  {
5913 <    MyFree(resv_reason);
5914 <    resv_reason = NULL;
5915 <  }
5135 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
5136   }
5137      break;
5138  
5139 <  case 342:
5140 <
5141 < /* Line 1455 of yacc.c  */
5922 < #line 2185 "ircd_parser.y"
5139 >  case 334:
5140 > /* Line 1787 of yacc.c  */
5141 > #line 1823 "conf_parser.y"
5142      {
5143 <  if (conf_parser_ctx.pass == 2)
5925 <  {
5926 <    MyFree(resv_reason);
5927 <    DupString(resv_reason, yylval.string);
5928 <  }
5929 < }
5143 >  if (conf_parser_ctx.pass != 2)
5144      break;
5145  
5146 <  case 343:
5933 <
5934 < /* Line 1455 of yacc.c  */
5935 < #line 2194 "ircd_parser.y"
5936 <    {
5937 <  if (conf_parser_ctx.pass == 2)
5146 >  if (valid_servname(yylval.string))
5147    {
5148 <    if (IsChanPrefix(*yylval.string))
5149 <    {
5941 <      char def_reason[] = "No reason";
5942 <
5943 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5944 <    }
5148 >    struct MaskItem *conf = conf_make(CONF_SERVICE);
5149 >    conf->name = xstrdup(yylval.string);
5150    }
5946  /* ignore it for now.. but we really should make a warning if
5947   * its an erroneous name --fl_ */
5151   }
5152      break;
5153  
5154 <  case 344:
5155 <
5156 < /* Line 1455 of yacc.c  */
5954 < #line 2209 "ircd_parser.y"
5154 >  case 335:
5155 > /* Line 1787 of yacc.c  */
5156 > #line 1838 "conf_parser.y"
5157      {
5158 <  if (conf_parser_ctx.pass == 2)
5957 <  {
5958 <    char def_reason[] = "No reason";
5959 <
5960 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5961 <  }
5962 < }
5158 >  if (conf_parser_ctx.pass != 2)
5159      break;
5160  
5161 <  case 345:
5161 >  reset_block_state();
5162  
5163 < /* Line 1455 of yacc.c  */
5164 < #line 2222 "ircd_parser.y"
5165 <    {
5166 <  if (conf_parser_ctx.pass == 2)
5971 <  {
5972 <    yy_conf = make_conf_item(ULINE_TYPE);
5973 <    yy_match_item = map_to_conf(yy_conf);
5974 <    yy_match_item->action = SHARED_ALL;
5975 <  }
5163 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5164 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
5165 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
5166 >  block_state.flags.value = SHARED_ALL;
5167   }
5168      break;
5169  
5170 <  case 346:
5171 <
5172 < /* Line 1455 of yacc.c  */
5982 < #line 2230 "ircd_parser.y"
5170 >  case 336:
5171 > /* Line 1787 of yacc.c  */
5172 > #line 1849 "conf_parser.y"
5173      {
5174 <  if (conf_parser_ctx.pass == 2)
5175 <  {
5176 <    yy_conf = NULL;
5987 <  }
5988 < }
5174 >  struct MaskItem *conf = NULL;
5175 >
5176 >  if (conf_parser_ctx.pass != 2)
5177      break;
5178  
5179 <  case 353:
5179 >  conf = conf_make(CONF_ULINE);
5180 >  conf->flags = block_state.flags.value;
5181 >  conf->name = xstrdup(block_state.name.buf);
5182 >  conf->user = xstrdup(block_state.user.buf);
5183 >  conf->host = xstrdup(block_state.host.buf);
5184 > }
5185 >    break;
5186  
5187 < /* Line 1455 of yacc.c  */
5188 < #line 2241 "ircd_parser.y"
5187 >  case 343:
5188 > /* Line 1787 of yacc.c  */
5189 > #line 1866 "conf_parser.y"
5190      {
5191    if (conf_parser_ctx.pass == 2)
5192 <  {
5998 <    MyFree(yy_conf->name);
5999 <    DupString(yy_conf->name, yylval.string);
6000 <  }
5192 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5193   }
5194      break;
5195  
5196 <  case 354:
5197 <
5198 < /* Line 1455 of yacc.c  */
6007 < #line 2250 "ircd_parser.y"
5196 >  case 344:
5197 > /* Line 1787 of yacc.c  */
5198 > #line 1872 "conf_parser.y"
5199      {
5200    if (conf_parser_ctx.pass == 2)
5201    {
# Line 6012 | Line 5203 | yyreduce:
5203  
5204      nuh.nuhmask  = yylval.string;
5205      nuh.nickptr  = NULL;
5206 <    nuh.userptr  = userbuf;
5207 <    nuh.hostptr  = hostbuf;
5206 >    nuh.userptr  = block_state.user.buf;
5207 >    nuh.hostptr  = block_state.host.buf;
5208  
5209      nuh.nicksize = 0;
5210 <    nuh.usersize = sizeof(userbuf);
5211 <    nuh.hostsize = sizeof(hostbuf);
5210 >    nuh.usersize = sizeof(block_state.user.buf);
5211 >    nuh.hostsize = sizeof(block_state.host.buf);
5212  
5213      split_nuh(&nuh);
6023
6024    DupString(yy_match_item->user, userbuf);
6025    DupString(yy_match_item->host, hostbuf);
5214    }
5215   }
5216      break;
5217  
5218 <  case 355:
5219 <
5220 < /* Line 1455 of yacc.c  */
6033 < #line 2272 "ircd_parser.y"
5218 >  case 345:
5219 > /* Line 1787 of yacc.c  */
5220 > #line 1891 "conf_parser.y"
5221      {
5222    if (conf_parser_ctx.pass == 2)
5223 <    yy_match_item->action = 0;
5223 >    block_state.flags.value = 0;
5224   }
5225      break;
5226  
5227 <  case 359:
5228 <
5229 < /* Line 1455 of yacc.c  */
6043 < #line 2279 "ircd_parser.y"
5227 >  case 349:
5228 > /* Line 1787 of yacc.c  */
5229 > #line 1898 "conf_parser.y"
5230      {
5231    if (conf_parser_ctx.pass == 2)
5232 <    yy_match_item->action |= SHARED_KLINE;
5232 >    block_state.flags.value |= SHARED_KLINE;
5233   }
5234      break;
5235  
5236 <  case 360:
5237 <
5238 < /* Line 1455 of yacc.c  */
6053 < #line 2283 "ircd_parser.y"
5236 >  case 350:
5237 > /* Line 1787 of yacc.c  */
5238 > #line 1902 "conf_parser.y"
5239      {
5240    if (conf_parser_ctx.pass == 2)
5241 <    yy_match_item->action |= SHARED_TKLINE;
5241 >    block_state.flags.value |= SHARED_UNKLINE;
5242   }
5243      break;
5244  
5245 <  case 361:
5246 <
5247 < /* Line 1455 of yacc.c  */
6063 < #line 2287 "ircd_parser.y"
5245 >  case 351:
5246 > /* Line 1787 of yacc.c  */
5247 > #line 1906 "conf_parser.y"
5248      {
5249    if (conf_parser_ctx.pass == 2)
5250 <    yy_match_item->action |= SHARED_UNKLINE;
5250 >    block_state.flags.value |= SHARED_DLINE;
5251   }
5252      break;
5253  
5254 <  case 362:
5255 <
5256 < /* Line 1455 of yacc.c  */
6073 < #line 2291 "ircd_parser.y"
5254 >  case 352:
5255 > /* Line 1787 of yacc.c  */
5256 > #line 1910 "conf_parser.y"
5257      {
5258    if (conf_parser_ctx.pass == 2)
5259 <    yy_match_item->action |= SHARED_XLINE;
5259 >    block_state.flags.value |= SHARED_UNDLINE;
5260   }
5261      break;
5262  
5263 <  case 363:
5264 <
5265 < /* Line 1455 of yacc.c  */
6083 < #line 2295 "ircd_parser.y"
5263 >  case 353:
5264 > /* Line 1787 of yacc.c  */
5265 > #line 1914 "conf_parser.y"
5266      {
5267    if (conf_parser_ctx.pass == 2)
5268 <    yy_match_item->action |= SHARED_TXLINE;
5268 >    block_state.flags.value |= SHARED_XLINE;
5269   }
5270      break;
5271  
5272 <  case 364:
5273 <
5274 < /* Line 1455 of yacc.c  */
6093 < #line 2299 "ircd_parser.y"
5272 >  case 354:
5273 > /* Line 1787 of yacc.c  */
5274 > #line 1918 "conf_parser.y"
5275      {
5276    if (conf_parser_ctx.pass == 2)
5277 <    yy_match_item->action |= SHARED_UNXLINE;
5277 >    block_state.flags.value |= SHARED_UNXLINE;
5278   }
5279      break;
5280  
5281 <  case 365:
5282 <
5283 < /* Line 1455 of yacc.c  */
6103 < #line 2303 "ircd_parser.y"
5281 >  case 355:
5282 > /* Line 1787 of yacc.c  */
5283 > #line 1922 "conf_parser.y"
5284      {
5285    if (conf_parser_ctx.pass == 2)
5286 <    yy_match_item->action |= SHARED_RESV;
5286 >    block_state.flags.value |= SHARED_RESV;
5287   }
5288      break;
5289  
5290 <  case 366:
5291 <
5292 < /* Line 1455 of yacc.c  */
6113 < #line 2307 "ircd_parser.y"
5290 >  case 356:
5291 > /* Line 1787 of yacc.c  */
5292 > #line 1926 "conf_parser.y"
5293      {
5294    if (conf_parser_ctx.pass == 2)
5295 <    yy_match_item->action |= SHARED_TRESV;
5295 >    block_state.flags.value |= SHARED_UNRESV;
5296   }
5297      break;
5298  
5299 <  case 367:
5300 <
5301 < /* Line 1455 of yacc.c  */
6123 < #line 2311 "ircd_parser.y"
5299 >  case 357:
5300 > /* Line 1787 of yacc.c  */
5301 > #line 1930 "conf_parser.y"
5302      {
5303    if (conf_parser_ctx.pass == 2)
5304 <    yy_match_item->action |= SHARED_UNRESV;
5304 >    block_state.flags.value |= SHARED_LOCOPS;
5305   }
5306      break;
5307  
5308 <  case 368:
5309 <
5310 < /* Line 1455 of yacc.c  */
6133 < #line 2315 "ircd_parser.y"
5308 >  case 358:
5309 > /* Line 1787 of yacc.c  */
5310 > #line 1934 "conf_parser.y"
5311      {
5312    if (conf_parser_ctx.pass == 2)
5313 <    yy_match_item->action |= SHARED_LOCOPS;
5313 >    block_state.flags.value = SHARED_ALL;
5314   }
5315      break;
5316  
5317 <  case 369:
5318 <
5319 < /* Line 1455 of yacc.c  */
6143 < #line 2319 "ircd_parser.y"
5317 >  case 359:
5318 > /* Line 1787 of yacc.c  */
5319 > #line 1943 "conf_parser.y"
5320      {
5321 <  if (conf_parser_ctx.pass == 2)
6146 <    yy_match_item->action = SHARED_ALL;
6147 < }
5321 >  if (conf_parser_ctx.pass != 2)
5322      break;
5323  
5324 <  case 370:
5324 >  reset_block_state();
5325  
5326 < /* Line 1455 of yacc.c  */
5327 < #line 2328 "ircd_parser.y"
6154 <    {
6155 <  if (conf_parser_ctx.pass == 2)
6156 <  {
6157 <    yy_conf = make_conf_item(CLUSTER_TYPE);
6158 <    yy_conf->flags = SHARED_ALL;
6159 <  }
5326 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5327 >  block_state.flags.value = SHARED_ALL;
5328   }
5329      break;
5330  
5331 <  case 371:
5332 <
5333 < /* Line 1455 of yacc.c  */
6166 < #line 2335 "ircd_parser.y"
5331 >  case 360:
5332 > /* Line 1787 of yacc.c  */
5333 > #line 1952 "conf_parser.y"
5334      {
5335 <  if (conf_parser_ctx.pass == 2)
6169 <  {
6170 <    if (yy_conf->name == NULL)
6171 <      DupString(yy_conf->name, "*");
6172 <    yy_conf = NULL;
6173 <  }
6174 < }
6175 <    break;
5335 >  struct MaskItem *conf = NULL;
5336  
5337 <  case 377:
6178 <
6179 < /* Line 1455 of yacc.c  */
6180 < #line 2348 "ircd_parser.y"
6181 <    {
6182 <  if (conf_parser_ctx.pass == 2)
6183 <    DupString(yy_conf->name, yylval.string);
6184 < }
5337 >  if (conf_parser_ctx.pass != 2)
5338      break;
5339  
5340 <  case 378:
5341 <
5342 < /* Line 1455 of yacc.c  */
6190 < #line 2354 "ircd_parser.y"
6191 <    {
6192 <  if (conf_parser_ctx.pass == 2)
6193 <    yy_conf->flags = 0;
5340 >  conf = conf_make(CONF_CLUSTER);
5341 >  conf->flags = block_state.flags.value;
5342 >  conf->name = xstrdup(block_state.name.buf);
5343   }
5344      break;
5345  
5346 <  case 382:
5347 <
5348 < /* Line 1455 of yacc.c  */
6200 < #line 2361 "ircd_parser.y"
5346 >  case 366:
5347 > /* Line 1787 of yacc.c  */
5348 > #line 1967 "conf_parser.y"
5349      {
5350    if (conf_parser_ctx.pass == 2)
5351 <    yy_conf->flags |= SHARED_KLINE;
5351 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5352   }
5353      break;
5354  
5355 <  case 383:
5356 <
5357 < /* Line 1455 of yacc.c  */
6210 < #line 2365 "ircd_parser.y"
5355 >  case 367:
5356 > /* Line 1787 of yacc.c  */
5357 > #line 1973 "conf_parser.y"
5358      {
5359    if (conf_parser_ctx.pass == 2)
5360 <    yy_conf->flags |= SHARED_TKLINE;
5360 >    block_state.flags.value = 0;
5361   }
5362      break;
5363  
5364 <  case 384:
5365 <
5366 < /* Line 1455 of yacc.c  */
6220 < #line 2369 "ircd_parser.y"
5364 >  case 371:
5365 > /* Line 1787 of yacc.c  */
5366 > #line 1980 "conf_parser.y"
5367      {
5368    if (conf_parser_ctx.pass == 2)
5369 <    yy_conf->flags |= SHARED_UNKLINE;
5369 >    block_state.flags.value |= SHARED_KLINE;
5370   }
5371      break;
5372  
5373 <  case 385:
5374 <
5375 < /* Line 1455 of yacc.c  */
6230 < #line 2373 "ircd_parser.y"
5373 >  case 372:
5374 > /* Line 1787 of yacc.c  */
5375 > #line 1984 "conf_parser.y"
5376      {
5377    if (conf_parser_ctx.pass == 2)
5378 <    yy_conf->flags |= SHARED_XLINE;
5378 >    block_state.flags.value |= SHARED_UNKLINE;
5379   }
5380      break;
5381  
5382 <  case 386:
5383 <
5384 < /* Line 1455 of yacc.c  */
6240 < #line 2377 "ircd_parser.y"
5382 >  case 373:
5383 > /* Line 1787 of yacc.c  */
5384 > #line 1988 "conf_parser.y"
5385      {
5386    if (conf_parser_ctx.pass == 2)
5387 <    yy_conf->flags |= SHARED_TXLINE;
5387 >    block_state.flags.value |= SHARED_DLINE;
5388   }
5389      break;
5390  
5391 <  case 387:
5392 <
5393 < /* Line 1455 of yacc.c  */
6250 < #line 2381 "ircd_parser.y"
5391 >  case 374:
5392 > /* Line 1787 of yacc.c  */
5393 > #line 1992 "conf_parser.y"
5394      {
5395    if (conf_parser_ctx.pass == 2)
5396 <    yy_conf->flags |= SHARED_UNXLINE;
5396 >    block_state.flags.value |= SHARED_UNDLINE;
5397   }
5398      break;
5399  
5400 <  case 388:
5401 <
5402 < /* Line 1455 of yacc.c  */
6260 < #line 2385 "ircd_parser.y"
5400 >  case 375:
5401 > /* Line 1787 of yacc.c  */
5402 > #line 1996 "conf_parser.y"
5403      {
5404    if (conf_parser_ctx.pass == 2)
5405 <    yy_conf->flags |= SHARED_RESV;
5405 >    block_state.flags.value |= SHARED_XLINE;
5406   }
5407      break;
5408  
5409 <  case 389:
5410 <
5411 < /* Line 1455 of yacc.c  */
6270 < #line 2389 "ircd_parser.y"
5409 >  case 376:
5410 > /* Line 1787 of yacc.c  */
5411 > #line 2000 "conf_parser.y"
5412      {
5413    if (conf_parser_ctx.pass == 2)
5414 <    yy_conf->flags |= SHARED_TRESV;
5414 >    block_state.flags.value |= SHARED_UNXLINE;
5415   }
5416      break;
5417  
5418 <  case 390:
5419 <
5420 < /* Line 1455 of yacc.c  */
6280 < #line 2393 "ircd_parser.y"
5418 >  case 377:
5419 > /* Line 1787 of yacc.c  */
5420 > #line 2004 "conf_parser.y"
5421      {
5422    if (conf_parser_ctx.pass == 2)
5423 <    yy_conf->flags |= SHARED_UNRESV;
5423 >    block_state.flags.value |= SHARED_RESV;
5424   }
5425      break;
5426  
5427 <  case 391:
5428 <
5429 < /* Line 1455 of yacc.c  */
6290 < #line 2397 "ircd_parser.y"
5427 >  case 378:
5428 > /* Line 1787 of yacc.c  */
5429 > #line 2008 "conf_parser.y"
5430      {
5431    if (conf_parser_ctx.pass == 2)
5432 <    yy_conf->flags |= SHARED_LOCOPS;
5432 >    block_state.flags.value |= SHARED_UNRESV;
5433   }
5434      break;
5435  
5436 <  case 392:
5437 <
5438 < /* Line 1455 of yacc.c  */
6300 < #line 2401 "ircd_parser.y"
5436 >  case 379:
5437 > /* Line 1787 of yacc.c  */
5438 > #line 2012 "conf_parser.y"
5439      {
5440    if (conf_parser_ctx.pass == 2)
5441 <    yy_conf->flags = SHARED_ALL;
5441 >    block_state.flags.value |= SHARED_LOCOPS;
5442   }
5443      break;
5444  
5445 <  case 393:
5446 <
5447 < /* Line 1455 of yacc.c  */
6310 < #line 2410 "ircd_parser.y"
5445 >  case 380:
5446 > /* Line 1787 of yacc.c  */
5447 > #line 2016 "conf_parser.y"
5448      {
5449    if (conf_parser_ctx.pass == 2)
5450 <  {
6314 <    yy_conf = make_conf_item(SERVER_TYPE);
6315 <    yy_aconf = (struct AccessItem *)map_to_conf(yy_conf);
6316 <    yy_aconf->passwd = NULL;
6317 <    /* defaults */
6318 <    yy_aconf->port = PORTNUM;
6319 <
6320 <    if (ConfigFileEntry.burst_away)
6321 <      yy_aconf->flags = CONF_FLAGS_BURST_AWAY;
6322 <  }
6323 <  else
6324 <  {
6325 <    MyFree(class_name);
6326 <    class_name = NULL;
6327 <  }
5450 >    block_state.flags.value = SHARED_ALL;
5451   }
5452      break;
5453  
5454 <  case 394:
5455 <
5456 < /* Line 1455 of yacc.c  */
6334 < #line 2428 "ircd_parser.y"
5454 >  case 381:
5455 > /* Line 1787 of yacc.c  */
5456 > #line 2025 "conf_parser.y"
5457      {
6336  if (conf_parser_ctx.pass == 2)
6337  {
6338    struct CollectItem *yy_hconf=NULL;
6339    struct CollectItem *yy_lconf=NULL;
6340    dlink_node *ptr;
6341    dlink_node *next_ptr;
6342 #ifdef HAVE_LIBCRYPTO
6343    if (yy_aconf->host &&
6344        ((yy_aconf->passwd && yy_aconf->spasswd) ||
6345         (yy_aconf->rsa_public_key && IsConfCryptLink(yy_aconf))))
6346 #else /* !HAVE_LIBCRYPTO */
6347      if (yy_aconf->host && !IsConfCryptLink(yy_aconf) &&
6348          yy_aconf->passwd && yy_aconf->spasswd)
6349 #endif /* !HAVE_LIBCRYPTO */
6350        {
6351          if (conf_add_server(yy_conf, class_name) == -1)
6352          {
6353            delete_conf_item(yy_conf);
6354            yy_conf = NULL;
6355            yy_aconf = NULL;
6356          }
6357        }
6358        else
6359        {
6360          /* Even if yy_conf ->name is NULL
6361           * should still unhook any hub/leaf confs still pending
6362           */
6363          unhook_hub_leaf_confs();
6364
6365          if (yy_conf->name != NULL)
6366          {
6367 #ifndef HAVE_LIBCRYPTO
6368            if (IsConfCryptLink(yy_aconf))
6369              yyerror("Ignoring connect block -- no OpenSSL support");
6370 #else
6371            if (IsConfCryptLink(yy_aconf) && !yy_aconf->rsa_public_key)
6372              yyerror("Ignoring connect block -- missing key");
6373 #endif
6374            if (yy_aconf->host == NULL)
6375              yyerror("Ignoring connect block -- missing host");
6376            else if (!IsConfCryptLink(yy_aconf) &&
6377                    (!yy_aconf->passwd || !yy_aconf->spasswd))
6378              yyerror("Ignoring connect block -- missing password");
6379          }
6380
6381
6382          /* XXX
6383           * This fixes a try_connections() core (caused by invalid class_ptr
6384           * pointers) reported by metalrock. That's an ugly fix, but there
6385           * is currently no better way. The entire config subsystem needs an
6386           * rewrite ASAP. make_conf_item() shouldn't really add things onto
6387           * a doubly linked list immediately without any sanity checks!  -Michael
6388           */
6389          delete_conf_item(yy_conf);
6390
6391          yy_aconf = NULL;
6392          yy_conf = NULL;
6393        }
6394
6395      /*
6396       * yy_conf is still pointing at the server that is having
6397       * a connect block built for it. This means, y_aconf->name
6398       * points to the actual irc name this server will be known as.
6399       * Now this new server has a set or even just one hub_mask (or leaf_mask)
6400       * given in the link list at yy_hconf. Fill in the HUB confs
6401       * from this link list now.
6402       */        
6403      DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
6404      {
6405        struct ConfItem *new_hub_conf;
6406        struct MatchItem *match_item;
6407
6408        yy_hconf = ptr->data;
6409
6410        /* yy_conf == NULL is a fatal error for this connect block! */
6411        if ((yy_conf != NULL) && (yy_conf->name != NULL))
6412        {
6413          new_hub_conf = make_conf_item(HUB_TYPE);
6414          match_item = (struct MatchItem *)map_to_conf(new_hub_conf);
6415          DupString(new_hub_conf->name, yy_conf->name);
6416          if (yy_hconf->user != NULL)
6417            DupString(match_item->user, yy_hconf->user);
6418          else
6419            DupString(match_item->user, "*");
6420          if (yy_hconf->host != NULL)
6421            DupString(match_item->host, yy_hconf->host);
6422          else
6423            DupString(match_item->host, "*");
6424        }
6425        dlinkDelete(&yy_hconf->node, &hub_conf_list);
6426        free_collect_item(yy_hconf);
6427      }
6428
6429      /* Ditto for the LEAF confs */
6430
6431      DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
6432      {
6433        struct ConfItem *new_leaf_conf;
6434        struct MatchItem *match_item;
5458  
5459 <        yy_lconf = ptr->data;
5459 >  if (conf_parser_ctx.pass != 2)
5460 >    break;
5461  
5462 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5463 <        {
6440 <          new_leaf_conf = make_conf_item(LEAF_TYPE);
6441 <          match_item = (struct MatchItem *)map_to_conf(new_leaf_conf);
6442 <          DupString(new_leaf_conf->name, yy_conf->name);
6443 <          if (yy_lconf->user != NULL)
6444 <            DupString(match_item->user, yy_lconf->user);
6445 <          else
6446 <            DupString(match_item->user, "*");
6447 <          if (yy_lconf->host != NULL)
6448 <            DupString(match_item->host, yy_lconf->host);
6449 <          else
6450 <            DupString(match_item->host, "*");
6451 <        }
6452 <        dlinkDelete(&yy_lconf->node, &leaf_conf_list);
6453 <        free_collect_item(yy_lconf);
6454 <      }
6455 <      MyFree(class_name);
6456 <      class_name = NULL;
6457 <      yy_conf = NULL;
6458 <      yy_aconf = NULL;
6459 <  }
5462 >  reset_block_state();
5463 >  block_state.port.value = PORTNUM;
5464   }
5465      break;
5466  
5467 <  case 419:
5468 <
5469 < /* Line 1455 of yacc.c  */
6466 < #line 2567 "ircd_parser.y"
5467 >  case 382:
5468 > /* Line 1787 of yacc.c  */
5469 > #line 2033 "conf_parser.y"
5470      {
5471 <  if (conf_parser_ctx.pass == 2)
5472 <  {
6470 <    if (yy_conf->name != NULL)
6471 <      yyerror("Multiple connect name entry");
5471 >  struct MaskItem *conf = NULL;
5472 >  struct addrinfo hints, *res;
5473  
5474 <    MyFree(yy_conf->name);
6474 <    DupString(yy_conf->name, yylval.string);
6475 <  }
6476 < }
5474 >  if (conf_parser_ctx.pass != 2)
5475      break;
5476  
5477 <  case 420:
5477 >  if (!block_state.name.buf[0] ||
5478 >      !block_state.host.buf[0])
5479 >    break;
5480  
5481 < /* Line 1455 of yacc.c  */
5482 < #line 2579 "ircd_parser.y"
5483 <    {
6484 <  if (conf_parser_ctx.pass == 2)
6485 <  {
6486 <    if (yy_conf->name != NULL)
6487 <      yyerror("Multiple connect name entry");
5481 >  if (!block_state.rpass.buf[0] ||
5482 >      !block_state.spass.buf[0])
5483 >    break;
5484  
5485 <    MyFree(yy_conf->name);
5486 <    DupString(yy_conf->name, yylval.string);
6491 <  }
6492 < }
5485 >  if (has_wildcards(block_state.name.buf) ||
5486 >      has_wildcards(block_state.host.buf))
5487      break;
5488  
5489 <  case 421:
5489 >  conf = conf_make(CONF_SERVER);
5490 >  conf->port = block_state.port.value;
5491 >  conf->flags = block_state.flags.value;
5492 >  conf->aftype = block_state.aftype.value;
5493 >  conf->host = xstrdup(block_state.host.buf);
5494 >  conf->name = xstrdup(block_state.name.buf);
5495 >  conf->passwd = xstrdup(block_state.rpass.buf);
5496 >  conf->spasswd = xstrdup(block_state.spass.buf);
5497  
5498 < /* Line 1455 of yacc.c  */
5499 < #line 2591 "ircd_parser.y"
6499 <    {
6500 <  if (conf_parser_ctx.pass == 2)
6501 <  {
6502 <    MyFree(yy_aconf->host);
6503 <    DupString(yy_aconf->host, yylval.string);
6504 <  }
6505 < }
6506 <    break;
5498 >  if (block_state.cert.buf[0])
5499 >    conf->certfp = xstrdup(block_state.cert.buf);
5500  
5501 <  case 422:
5501 >  conf->cipher_list = xstrdup(block_state.ciph.buf);
5502  
5503 < /* Line 1455 of yacc.c  */
5504 < #line 2600 "ircd_parser.y"
6512 <    {
6513 <  if (conf_parser_ctx.pass == 2)
6514 <  {
6515 <    struct addrinfo hints, *res;
5503 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5504 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5505  
5506 +  if (block_state.bind.buf[0])
5507 +  {
5508      memset(&hints, 0, sizeof(hints));
5509  
5510      hints.ai_family   = AF_UNSPEC;
5511      hints.ai_socktype = SOCK_STREAM;
5512      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5513  
5514 <    if (irc_getaddrinfo(yylval.string, NULL, &hints, &res))
5515 <      ilog(L_ERROR, "Invalid netmask for server vhost(%s)", yylval.string);
5514 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5515 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5516      else
5517      {
5518        assert(res != NULL);
5519  
5520 <      memcpy(&yy_aconf->my_ipnum, res->ai_addr, res->ai_addrlen);
5521 <      yy_aconf->my_ipnum.ss.ss_family = res->ai_family;
5522 <      yy_aconf->my_ipnum.ss_len = res->ai_addrlen;
5523 <      irc_freeaddrinfo(res);
6533 <    }
6534 <  }
6535 < }
6536 <    break;
6537 <
6538 <  case 423:
6539 <
6540 < /* Line 1455 of yacc.c  */
6541 < #line 2626 "ircd_parser.y"
6542 <    {
6543 <  if (conf_parser_ctx.pass == 2)
6544 <  {
6545 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
6546 <      yyerror("Server passwords cannot begin with a colon");
6547 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
6548 <      yyerror("Server passwords cannot contain spaces");
6549 <    else {
6550 <      if (yy_aconf->spasswd != NULL)
6551 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
6552 <
6553 <      MyFree(yy_aconf->spasswd);
6554 <      DupString(yy_aconf->spasswd, yylval.string);
6555 <    }
6556 <  }
6557 < }
6558 <    break;
6559 <
6560 <  case 424:
6561 <
6562 < /* Line 1455 of yacc.c  */
6563 < #line 2644 "ircd_parser.y"
6564 <    {
6565 <  if (conf_parser_ctx.pass == 2)
6566 <  {
6567 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
6568 <      yyerror("Server passwords cannot begin with a colon");
6569 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
6570 <      yyerror("Server passwords cannot contain spaces");
6571 <    else {
6572 <      if (yy_aconf->passwd != NULL)
6573 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
6574 <
6575 <      MyFree(yy_aconf->passwd);
6576 <      DupString(yy_aconf->passwd, yylval.string);
5520 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5521 >      conf->bind.ss.ss_family = res->ai_family;
5522 >      conf->bind.ss_len = res->ai_addrlen;
5523 >      freeaddrinfo(res);
5524      }
5525    }
6579 }
6580    break;
6581
6582  case 425:
5526  
5527 < /* Line 1455 of yacc.c  */
5528 < #line 2662 "ircd_parser.y"
6586 <    {
6587 <  if (conf_parser_ctx.pass == 2)
6588 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5527 >  conf_add_class_to_conf(conf, block_state.class.buf);
5528 >  lookup_confhost(conf);
5529   }
5530      break;
5531  
5532 <  case 426:
5533 <
5534 < /* Line 1455 of yacc.c  */
6595 < #line 2668 "ircd_parser.y"
5532 >  case 400:
5533 > /* Line 1787 of yacc.c  */
5534 > #line 2103 "conf_parser.y"
5535      {
5536    if (conf_parser_ctx.pass == 2)
5537 <    yy_aconf->aftype = AF_INET;
5537 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5538   }
5539      break;
5540  
5541 <  case 427:
5542 <
5543 < /* Line 1455 of yacc.c  */
6605 < #line 2672 "ircd_parser.y"
5541 >  case 401:
5542 > /* Line 1787 of yacc.c  */
5543 > #line 2109 "conf_parser.y"
5544      {
6607 #ifdef IPV6
5545    if (conf_parser_ctx.pass == 2)
5546 <    yy_aconf->aftype = AF_INET6;
6610 < #endif
5546 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5547   }
5548      break;
5549  
5550 <  case 428:
5551 <
5552 < /* Line 1455 of yacc.c  */
6617 < #line 2680 "ircd_parser.y"
5550 >  case 402:
5551 > /* Line 1787 of yacc.c  */
5552 > #line 2115 "conf_parser.y"
5553      {
5554    if (conf_parser_ctx.pass == 2)
5555 <  {
6621 <    MyFree(yy_aconf->fakename);
6622 <    DupString(yy_aconf->fakename, yylval.string);
6623 <  }
5555 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5556   }
5557      break;
5558  
5559 <  case 429:
5560 <
5561 < /* Line 1455 of yacc.c  */
6630 < #line 2689 "ircd_parser.y"
5559 >  case 403:
5560 > /* Line 1787 of yacc.c  */
5561 > #line 2121 "conf_parser.y"
5562      {
5563 < }
6633 <    break;
6634 <
6635 <  case 433:
6636 <
6637 < /* Line 1455 of yacc.c  */
6638 < #line 2693 "ircd_parser.y"
6639 <    { not_atom = 1; }
5563 >  if (conf_parser_ctx.pass != 2)
5564      break;
5565  
5566 <  case 435:
5567 <
5568 < /* Line 1455 of yacc.c  */
5569 < #line 2694 "ircd_parser.y"
5570 <    { not_atom = 0; }
5571 <    break;
6648 <
6649 <  case 437:
6650 <
6651 < /* Line 1455 of yacc.c  */
6652 < #line 2697 "ircd_parser.y"
6653 <    {
6654 <  if (conf_parser_ctx.pass == 2)
6655 < #ifndef HAVE_LIBZ
6656 <    yyerror("Ignoring flags = compressed; -- no zlib support");
6657 < #else
6658 < {
6659 <   if (not_atom)ClearConfCompressed(yy_aconf);
6660 <   else SetConfCompressed(yy_aconf);
6661 < }
6662 < #endif
5566 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5567 >    conf_error_report("Server passwords cannot begin with a colon");
5568 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5569 >    conf_error_report("Server passwords cannot contain spaces");
5570 >  else
5571 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5572   }
5573      break;
5574  
5575 <  case 438:
5576 <
5577 < /* Line 1455 of yacc.c  */
6669 < #line 2708 "ircd_parser.y"
5575 >  case 404:
5576 > /* Line 1787 of yacc.c  */
5577 > #line 2134 "conf_parser.y"
5578      {
5579 <  if (conf_parser_ctx.pass == 2)
6672 <  {
6673 <    if (not_atom)ClearConfCryptLink(yy_aconf);
6674 <    else SetConfCryptLink(yy_aconf);
6675 <  }
6676 < }
5579 >  if (conf_parser_ctx.pass != 2)
5580      break;
5581  
5582 <  case 439:
5583 <
5584 < /* Line 1455 of yacc.c  */
5585 < #line 2715 "ircd_parser.y"
5586 <    {
5587 <  if (conf_parser_ctx.pass == 2)
6685 <  {
6686 <    if (not_atom)ClearConfAllowAutoConn(yy_aconf);
6687 <    else SetConfAllowAutoConn(yy_aconf);
6688 <  }
5582 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5583 >    conf_error_report("Server passwords cannot begin with a colon");
5584 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5585 >    conf_error_report("Server passwords cannot contain spaces");
5586 >  else
5587 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5588   }
5589      break;
5590  
5591 <  case 440:
5592 <
5593 < /* Line 1455 of yacc.c  */
6695 < #line 2722 "ircd_parser.y"
5591 >  case 405:
5592 > /* Line 1787 of yacc.c  */
5593 > #line 2147 "conf_parser.y"
5594      {
5595    if (conf_parser_ctx.pass == 2)
5596 <  {
5597 <    if (not_atom)ClearConfAwayBurst(yy_aconf);
6700 <    else SetConfAwayBurst(yy_aconf);
6701 <  }
5596 >    if (strlen(yylval.string) == SHA_DIGEST_LENGTH * 2)
5597 >      strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5598   }
5599      break;
5600  
5601 <  case 441:
5602 <
5603 < /* Line 1455 of yacc.c  */
6708 < #line 2729 "ircd_parser.y"
5601 >  case 406:
5602 > /* Line 1787 of yacc.c  */
5603 > #line 2154 "conf_parser.y"
5604      {
5605    if (conf_parser_ctx.pass == 2)
5606 <  {
6712 <    if (not_atom)ClearConfTopicBurst(yy_aconf);
6713 <    else SetConfTopicBurst(yy_aconf);
6714 <  }
5606 >    block_state.port.value = (yyvsp[(3) - (4)].number);
5607   }
5608      break;
5609  
5610 <  case 442:
5611 <
5612 < /* Line 1455 of yacc.c  */
6721 < #line 2739 "ircd_parser.y"
5610 >  case 407:
5611 > /* Line 1787 of yacc.c  */
5612 > #line 2160 "conf_parser.y"
5613      {
6723 #ifdef HAVE_LIBCRYPTO
5614    if (conf_parser_ctx.pass == 2)
5615 <  {
6726 <    BIO *file;
6727 <
6728 <    if (yy_aconf->rsa_public_key != NULL)
6729 <    {
6730 <      RSA_free(yy_aconf->rsa_public_key);
6731 <      yy_aconf->rsa_public_key = NULL;
6732 <    }
6733 <
6734 <    if (yy_aconf->rsa_public_key_file != NULL)
6735 <    {
6736 <      MyFree(yy_aconf->rsa_public_key_file);
6737 <      yy_aconf->rsa_public_key_file = NULL;
6738 <    }
6739 <
6740 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
6741 <
6742 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
6743 <    {
6744 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
6745 <      break;
6746 <    }
6747 <
6748 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
6749 <
6750 <    if (yy_aconf->rsa_public_key == NULL)
6751 <    {
6752 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
6753 <      break;
6754 <    }
6755 <      
6756 <    BIO_set_close(file, BIO_CLOSE);
6757 <    BIO_free(file);
6758 <  }
6759 < #endif /* HAVE_LIBCRYPTO */
5615 >    block_state.aftype.value = AF_INET;
5616   }
5617      break;
5618  
5619 <  case 443:
5620 <
5621 < /* Line 1455 of yacc.c  */
6766 < #line 2780 "ircd_parser.y"
5619 >  case 408:
5620 > /* Line 1787 of yacc.c  */
5621 > #line 2164 "conf_parser.y"
5622      {
5623 + #ifdef IPV6
5624    if (conf_parser_ctx.pass == 2)
5625 <  {
5626 <    if (yylval.number)
6771 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
6772 <    else
6773 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
6774 <  }
5625 >    block_state.aftype.value = AF_INET6;
5626 > #endif
5627   }
5628      break;
5629  
5630 <  case 444:
5631 <
5632 < /* Line 1455 of yacc.c  */
6781 < #line 2791 "ircd_parser.y"
5630 >  case 409:
5631 > /* Line 1787 of yacc.c  */
5632 > #line 2172 "conf_parser.y"
5633      {
5634 <  if (conf_parser_ctx.pass == 2)
6784 <  {
6785 <    if (yylval.number)
6786 <      yy_aconf->flags |= CONF_FLAGS_CRYPTLINK;
6787 <    else
6788 <      yy_aconf->flags &= ~CONF_FLAGS_CRYPTLINK;
6789 <  }
5634 >  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5635   }
5636      break;
5637  
5638 <  case 445:
5639 <
5640 < /* Line 1455 of yacc.c  */
6796 < #line 2802 "ircd_parser.y"
5638 >  case 413:
5639 > /* Line 1787 of yacc.c  */
5640 > #line 2178 "conf_parser.y"
5641      {
5642    if (conf_parser_ctx.pass == 2)
5643 <  {
6800 <    if (yylval.number)
6801 < #ifndef HAVE_LIBZ
6802 <      yyerror("Ignoring compressed=yes; -- no zlib support");
6803 < #else
6804 <      yy_aconf->flags |= CONF_FLAGS_COMPRESSED;
6805 < #endif
6806 <    else
6807 <      yy_aconf->flags &= ~CONF_FLAGS_COMPRESSED;
6808 <  }
5643 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5644   }
5645      break;
5646  
5647 <  case 446:
5648 <
5649 < /* Line 1455 of yacc.c  */
6815 < #line 2817 "ircd_parser.y"
5647 >  case 414:
5648 > /* Line 1787 of yacc.c  */
5649 > #line 2182 "conf_parser.y"
5650      {
5651    if (conf_parser_ctx.pass == 2)
5652 <  {
6819 <    if (yylval.number)
6820 <      yy_aconf->flags |= CONF_FLAGS_ALLOW_AUTO_CONN;
6821 <    else
6822 <      yy_aconf->flags &= ~CONF_FLAGS_ALLOW_AUTO_CONN;
6823 <  }
5652 >    block_state.flags.value |= CONF_FLAGS_SSL;
5653   }
5654      break;
5655  
5656 <  case 447:
5657 <
5658 < /* Line 1455 of yacc.c  */
6830 < #line 2828 "ircd_parser.y"
5656 >  case 415:
5657 > /* Line 1787 of yacc.c  */
5658 > #line 2188 "conf_parser.y"
5659      {
5660    if (conf_parser_ctx.pass == 2)
5661    {
5662      if (yylval.number)
5663 <      SetConfTopicBurst(yy_aconf);
5663 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5664      else
5665 <      ClearConfTopicBurst(yy_aconf);
5665 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5666    }
5667   }
5668      break;
5669  
5670 <  case 448:
5671 <
5672 < /* Line 1455 of yacc.c  */
6845 < #line 2839 "ircd_parser.y"
5670 >  case 416:
5671 > /* Line 1787 of yacc.c  */
5672 > #line 2199 "conf_parser.y"
5673      {
5674    if (conf_parser_ctx.pass == 2)
5675 <  {
6849 <    struct CollectItem *yy_tmp;
6850 <
6851 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6852 <    DupString(yy_tmp->host, yylval.string);
6853 <    DupString(yy_tmp->user, "*");
6854 <    dlinkAdd(yy_tmp, &yy_tmp->node, &hub_conf_list);
6855 <  }
5675 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5676   }
5677      break;
5678  
5679 <  case 449:
5680 <
5681 < /* Line 1455 of yacc.c  */
6862 < #line 2852 "ircd_parser.y"
5679 >  case 417:
5680 > /* Line 1787 of yacc.c  */
5681 > #line 2205 "conf_parser.y"
5682      {
5683    if (conf_parser_ctx.pass == 2)
5684 <  {
6866 <    struct CollectItem *yy_tmp;
6867 <
6868 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6869 <    DupString(yy_tmp->host, yylval.string);
6870 <    DupString(yy_tmp->user, "*");
6871 <    dlinkAdd(yy_tmp, &yy_tmp->node, &leaf_conf_list);
6872 <  }
5684 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5685   }
5686      break;
5687  
5688 <  case 450:
5689 <
5690 < /* Line 1455 of yacc.c  */
6879 < #line 2865 "ircd_parser.y"
5688 >  case 418:
5689 > /* Line 1787 of yacc.c  */
5690 > #line 2211 "conf_parser.y"
5691      {
5692    if (conf_parser_ctx.pass == 2)
5693 <  {
6883 <    MyFree(class_name);
6884 <    DupString(class_name, yylval.string);
6885 <  }
5693 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5694   }
5695      break;
5696  
5697 <  case 451:
5698 <
5699 < /* Line 1455 of yacc.c  */
6892 < #line 2874 "ircd_parser.y"
5697 >  case 419:
5698 > /* Line 1787 of yacc.c  */
5699 > #line 2217 "conf_parser.y"
5700      {
5701   #ifdef HAVE_LIBCRYPTO
5702    if (conf_parser_ctx.pass == 2)
5703 <  {
6897 <    struct EncCapability *ecap;
6898 <    const char *cipher_name;
6899 <    int found = 0;
6900 <
6901 <    yy_aconf->cipher_preference = NULL;
6902 <    cipher_name = yylval.string;
6903 <
6904 <    for (ecap = CipherTable; ecap->name; ecap++)
6905 <    {
6906 <      if ((irccmp(ecap->name, cipher_name) == 0) &&
6907 <          (ecap->cap & CAP_ENC_MASK))
6908 <      {
6909 <        yy_aconf->cipher_preference = ecap;
6910 <        found = 1;
6911 <        break;
6912 <      }
6913 <    }
6914 <
6915 <    if (!found)
6916 <      yyerror("Invalid cipher");
6917 <  }
5703 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5704   #else
5705    if (conf_parser_ctx.pass == 2)
5706 <    yyerror("Ignoring cipher_preference -- no OpenSSL support");
5706 >    conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5707   #endif
5708   }
5709      break;
5710  
5711 <  case 452:
5712 <
5713 < /* Line 1455 of yacc.c  */
6928 < #line 2909 "ircd_parser.y"
5711 >  case 420:
5712 > /* Line 1787 of yacc.c  */
5713 > #line 2232 "conf_parser.y"
5714      {
5715    if (conf_parser_ctx.pass == 2)
5716 <  {
6932 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
6933 <    regex_ban = 0;
6934 <  }
5716 >    reset_block_state();
5717   }
5718      break;
5719  
5720 <  case 453:
5721 <
5722 < /* Line 1455 of yacc.c  */
6941 < #line 2916 "ircd_parser.y"
6942 <    {
6943 <  if (conf_parser_ctx.pass == 2)
6944 <  {
6945 <    if (userbuf[0] && hostbuf[0])
5720 >  case 421:
5721 > /* Line 1787 of yacc.c  */
5722 > #line 2236 "conf_parser.y"
5723      {
5724 <      if (regex_ban)
6948 <      {
6949 < #ifdef HAVE_LIBPCRE
6950 <        pcre *exp_user = NULL;
6951 <        pcre *exp_host = NULL;
6952 <        const char *errptr = NULL;
6953 <
6954 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
6955 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
6956 <        {
6957 <          ilog(L_ERROR, "Failed to add regular expression based K-Line: %s",
6958 <               errptr);
6959 <          break;
6960 <        }
6961 <
6962 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
6963 <        yy_aconf->regexuser = exp_user;
6964 <        yy_aconf->regexhost = exp_host;
5724 >  struct MaskItem *conf = NULL;
5725  
5726 <        DupString(yy_aconf->user, userbuf);
6967 <        DupString(yy_aconf->host, hostbuf);
6968 <
6969 <        if (reasonbuf[0])
6970 <          DupString(yy_aconf->reason, reasonbuf);
6971 <        else
6972 <          DupString(yy_aconf->reason, "No reason");
6973 < #else
6974 <        ilog(L_ERROR, "Failed to add regular expression based K-Line: no PCRE support");
6975 <        break;
6976 < #endif
6977 <      }
6978 <      else
6979 <      {
6980 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
6981 <
6982 <        DupString(yy_aconf->user, userbuf);
6983 <        DupString(yy_aconf->host, hostbuf);
6984 <
6985 <        if (reasonbuf[0])
6986 <          DupString(yy_aconf->reason, reasonbuf);
6987 <        else
6988 <          DupString(yy_aconf->reason, "No reason");
6989 <        add_conf_by_address(CONF_KILL, yy_aconf);
6990 <      }
6991 <    }
6992 <
6993 <    yy_aconf = NULL;
6994 <  }
6995 < }
5726 >  if (conf_parser_ctx.pass != 2)
5727      break;
5728  
5729 <  case 454:
5730 <
7000 < /* Line 1455 of yacc.c  */
7001 < #line 2972 "ircd_parser.y"
7002 <    {
7003 < }
5729 >  if (!block_state.user.buf[0] ||
5730 >      !block_state.host.buf[0])
5731      break;
5732  
5733 <  case 458:
5733 >  conf = conf_make(CONF_KLINE);
5734 >  conf->user = xstrdup(block_state.user.buf);
5735 >  conf->host = xstrdup(block_state.host.buf);
5736  
5737 < /* Line 1455 of yacc.c  */
5738 < #line 2977 "ircd_parser.y"
5739 <    {
5740 <  if (conf_parser_ctx.pass == 2)
5741 <    regex_ban = 1;
5737 >  if (block_state.rpass.buf[0])
5738 >    conf->reason = xstrdup(block_state.rpass.buf);
5739 >  else
5740 >    conf->reason = xstrdup(CONF_NOREASON);
5741 >  add_conf_by_address(CONF_KLINE, conf);
5742   }
5743      break;
5744  
5745 <  case 465:
5746 <
5747 < /* Line 1455 of yacc.c  */
7019 < #line 2986 "ircd_parser.y"
5745 >  case 427:
5746 > /* Line 1787 of yacc.c  */
5747 > #line 2261 "conf_parser.y"
5748      {
5749 +
5750    if (conf_parser_ctx.pass == 2)
5751    {
5752      struct split_nuh_item nuh;
5753  
5754      nuh.nuhmask  = yylval.string;
5755      nuh.nickptr  = NULL;
5756 <    nuh.userptr  = userbuf;
5757 <    nuh.hostptr  = hostbuf;
5756 >    nuh.userptr  = block_state.user.buf;
5757 >    nuh.hostptr  = block_state.host.buf;
5758  
5759      nuh.nicksize = 0;
5760 <    nuh.usersize = sizeof(userbuf);
5761 <    nuh.hostsize = sizeof(hostbuf);
5760 >    nuh.usersize = sizeof(block_state.user.buf);
5761 >    nuh.hostsize = sizeof(block_state.host.buf);
5762  
5763      split_nuh(&nuh);
5764    }
5765   }
5766      break;
5767  
5768 <  case 466:
5769 <
5770 < /* Line 1455 of yacc.c  */
7042 < #line 3005 "ircd_parser.y"
5768 >  case 428:
5769 > /* Line 1787 of yacc.c  */
5770 > #line 2281 "conf_parser.y"
5771      {
5772    if (conf_parser_ctx.pass == 2)
5773 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5773 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5774   }
5775      break;
5776  
5777 <  case 467:
5778 <
5779 < /* Line 1455 of yacc.c  */
7052 < #line 3014 "ircd_parser.y"
5777 >  case 429:
5778 > /* Line 1787 of yacc.c  */
5779 > #line 2290 "conf_parser.y"
5780      {
5781    if (conf_parser_ctx.pass == 2)
5782 <    hostbuf[0] = reasonbuf[0] = '\0';
5782 >    reset_block_state();
5783   }
5784      break;
5785  
5786 <  case 468:
5787 <
5788 < /* Line 1455 of yacc.c  */
7062 < #line 3018 "ircd_parser.y"
5786 >  case 430:
5787 > /* Line 1787 of yacc.c  */
5788 > #line 2294 "conf_parser.y"
5789      {
5790 <  if (conf_parser_ctx.pass == 2)
5790 >  struct MaskItem *conf = NULL;
5791 >
5792 >  if (conf_parser_ctx.pass != 2)
5793 >    break;
5794 >
5795 >  if (!block_state.addr.buf[0])
5796 >    break;
5797 >
5798 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5799    {
5800 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
5801 <    {
7068 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
7069 <      DupString(yy_aconf->host, hostbuf);
5800 >    conf = conf_make(CONF_DLINE);
5801 >    conf->host = xstrdup(block_state.addr.buf);
5802  
5803 <      if (reasonbuf[0])
5804 <        DupString(yy_aconf->reason, reasonbuf);
5805 <      else
5806 <        DupString(yy_aconf->reason, "No reason");
5807 <      add_conf_by_address(CONF_DLINE, yy_aconf);
7076 <      yy_aconf = NULL;
7077 <    }
5803 >    if (block_state.rpass.buf[0])
5804 >      conf->reason = xstrdup(block_state.rpass.buf);
5805 >    else
5806 >      conf->reason = xstrdup(CONF_NOREASON);
5807 >    add_conf_by_address(CONF_DLINE, conf);
5808    }
5809   }
5810      break;
5811  
5812 <  case 474:
5813 <
5814 < /* Line 1455 of yacc.c  */
7085 < #line 3040 "ircd_parser.y"
5812 >  case 436:
5813 > /* Line 1787 of yacc.c  */
5814 > #line 2320 "conf_parser.y"
5815      {
5816    if (conf_parser_ctx.pass == 2)
5817 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5817 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5818   }
5819      break;
5820  
5821 <  case 475:
5822 <
5823 < /* Line 1455 of yacc.c  */
7095 < #line 3046 "ircd_parser.y"
5821 >  case 437:
5822 > /* Line 1787 of yacc.c  */
5823 > #line 2326 "conf_parser.y"
5824      {
5825    if (conf_parser_ctx.pass == 2)
5826 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5826 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5827   }
5828      break;
5829  
5830 <  case 481:
5831 <
5832 < /* Line 1455 of yacc.c  */
7105 < #line 3060 "ircd_parser.y"
5830 >  case 443:
5831 > /* Line 1787 of yacc.c  */
5832 > #line 2340 "conf_parser.y"
5833      {
5834    if (conf_parser_ctx.pass == 2)
5835    {
5836      if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5837      {
5838 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5839 <      DupString(yy_aconf->host, yylval.string);
5838 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5839 >      conf->host = xstrdup(yylval.string);
5840  
5841 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
7115 <      yy_aconf = NULL;
5841 >      add_conf_by_address(CONF_EXEMPT, conf);
5842      }
5843    }
5844   }
5845      break;
5846  
5847 <  case 482:
5848 <
5849 < /* Line 1455 of yacc.c  */
7124 < #line 3078 "ircd_parser.y"
5847 >  case 444:
5848 > /* Line 1787 of yacc.c  */
5849 > #line 2357 "conf_parser.y"
5850      {
5851    if (conf_parser_ctx.pass == 2)
5852 <  {
7128 <    regex_ban = 0;
7129 <    reasonbuf[0] = gecos_name[0] = '\0';
7130 <  }
5852 >    reset_block_state();
5853   }
5854      break;
5855  
5856 <  case 483:
5857 <
5858 < /* Line 1455 of yacc.c  */
7137 < #line 3085 "ircd_parser.y"
7138 <    {
7139 <  if (conf_parser_ctx.pass == 2)
7140 <  {
7141 <    if (gecos_name[0])
5856 >  case 445:
5857 > /* Line 1787 of yacc.c  */
5858 > #line 2361 "conf_parser.y"
5859      {
5860 <      if (regex_ban)
7144 <      {
7145 < #ifdef HAVE_LIBPCRE
7146 <        pcre *exp_p = NULL;
7147 <        const char *errptr = NULL;
7148 <
7149 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
7150 <        {
7151 <          ilog(L_ERROR, "Failed to add regular expression based X-Line: %s",
7152 <               errptr);
7153 <          break;
7154 <        }
5860 >  struct MaskItem *conf = NULL;
5861  
5862 <        yy_conf = make_conf_item(RXLINE_TYPE);
7157 <        yy_conf->regexpname = exp_p;
7158 < #else
7159 <        ilog(L_ERROR, "Failed to add regular expression based X-Line: no PCRE support");
7160 <        break;
7161 < #endif
7162 <      }
7163 <      else
7164 <        yy_conf = make_conf_item(XLINE_TYPE);
7165 <
7166 <      yy_match_item = map_to_conf(yy_conf);
7167 <      DupString(yy_conf->name, gecos_name);
7168 <
7169 <      if (reasonbuf[0])
7170 <        DupString(yy_match_item->reason, reasonbuf);
7171 <      else
7172 <        DupString(yy_match_item->reason, "No reason");
7173 <    }
7174 <  }
7175 < }
5862 >  if (conf_parser_ctx.pass != 2)
5863      break;
5864  
5865 <  case 484:
7179 <
7180 < /* Line 1455 of yacc.c  */
7181 < #line 3125 "ircd_parser.y"
7182 <    {
7183 < }
5865 >  if (!block_state.name.buf[0])
5866      break;
5867  
5868 <  case 488:
5868 >  conf = conf_make(CONF_XLINE);
5869 >  conf->name = xstrdup(block_state.name.buf);
5870  
5871 < /* Line 1455 of yacc.c  */
5872 < #line 3130 "ircd_parser.y"
5873 <    {
5874 <  if (conf_parser_ctx.pass == 2)
7192 <    regex_ban = 1;
5871 >  if (block_state.rpass.buf[0])
5872 >    conf->reason = xstrdup(block_state.rpass.buf);
5873 >  else
5874 >    conf->reason = xstrdup(CONF_NOREASON);
5875   }
5876      break;
5877  
5878 <  case 495:
5879 <
5880 < /* Line 1455 of yacc.c  */
7199 < #line 3139 "ircd_parser.y"
5878 >  case 451:
5879 > /* Line 1787 of yacc.c  */
5880 > #line 2383 "conf_parser.y"
5881      {
5882    if (conf_parser_ctx.pass == 2)
5883 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5883 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5884   }
5885      break;
5886  
5887 <  case 496:
5888 <
5889 < /* Line 1455 of yacc.c  */
7209 < #line 3145 "ircd_parser.y"
5887 >  case 452:
5888 > /* Line 1787 of yacc.c  */
5889 > #line 2389 "conf_parser.y"
5890      {
5891    if (conf_parser_ctx.pass == 2)
5892 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5892 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5893   }
5894      break;
5895  
5896 <  case 557:
5897 <
5898 < /* Line 1455 of yacc.c  */
7219 < #line 3190 "ircd_parser.y"
5896 >  case 504:
5897 > /* Line 1787 of yacc.c  */
5898 > #line 2432 "conf_parser.y"
5899      {
5900    ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5901   }
5902      break;
5903  
5904 <  case 558:
5905 <
5906 < /* Line 1455 of yacc.c  */
7228 < #line 3195 "ircd_parser.y"
5904 >  case 505:
5905 > /* Line 1787 of yacc.c  */
5906 > #line 2437 "conf_parser.y"
5907      {
5908 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5908 >  if (conf_parser_ctx.pass == 2)
5909 >    ConfigFileEntry.glines = yylval.number;
5910   }
5911      break;
5912  
5913 <  case 559:
5914 <
5915 < /* Line 1455 of yacc.c  */
7237 < #line 3200 "ircd_parser.y"
5913 >  case 506:
5914 > /* Line 1787 of yacc.c  */
5915 > #line 2443 "conf_parser.y"
5916      {
5917 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5917 >  if (conf_parser_ctx.pass == 2)
5918 >    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5919   }
5920      break;
5921  
5922 <  case 560:
5923 <
5924 < /* Line 1455 of yacc.c  */
7246 < #line 3205 "ircd_parser.y"
5922 >  case 507:
5923 > /* Line 1787 of yacc.c  */
5924 > #line 2449 "conf_parser.y"
5925      {
5926 <  ConfigFileEntry.burst_away = yylval.number;
5926 >  if (conf_parser_ctx.pass == 2)
5927 >    ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5928   }
5929      break;
5930  
5931 <  case 561:
5932 <
5933 < /* Line 1455 of yacc.c  */
7255 < #line 3210 "ircd_parser.y"
5931 >  case 508:
5932 > /* Line 1787 of yacc.c  */
5933 > #line 2455 "conf_parser.y"
5934      {
5935 <  ConfigFileEntry.use_whois_actually = yylval.number;
5935 >  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5936   }
5937      break;
5938  
5939 <  case 562:
5940 <
5941 < /* Line 1455 of yacc.c  */
7264 < #line 3215 "ircd_parser.y"
5939 >  case 509:
5940 > /* Line 1787 of yacc.c  */
5941 > #line 2460 "conf_parser.y"
5942      {
5943 <  GlobalSetOptions.rejecttime = yylval.number;
5943 >  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5944   }
5945      break;
5946  
5947 <  case 563:
5948 <
5949 < /* Line 1455 of yacc.c  */
7273 < #line 3220 "ircd_parser.y"
5947 >  case 510:
5948 > /* Line 1787 of yacc.c  */
5949 > #line 2465 "conf_parser.y"
5950      {
5951    ConfigFileEntry.tkline_expire_notices = yylval.number;
5952   }
5953      break;
5954  
5955 <  case 564:
5956 <
5957 < /* Line 1455 of yacc.c  */
7282 < #line 3225 "ircd_parser.y"
5955 >  case 511:
5956 > /* Line 1787 of yacc.c  */
5957 > #line 2470 "conf_parser.y"
5958      {
5959    ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5960   }
5961      break;
5962  
5963 <  case 565:
5964 <
5965 < /* Line 1455 of yacc.c  */
7291 < #line 3230 "ircd_parser.y"
5963 >  case 512:
5964 > /* Line 1787 of yacc.c  */
5965 > #line 2475 "conf_parser.y"
5966      {
5967    ConfigFileEntry.hide_spoof_ips = yylval.number;
5968   }
5969      break;
5970  
5971 <  case 566:
5972 <
5973 < /* Line 1455 of yacc.c  */
7300 < #line 3235 "ircd_parser.y"
5971 >  case 513:
5972 > /* Line 1787 of yacc.c  */
5973 > #line 2480 "conf_parser.y"
5974      {
5975    ConfigFileEntry.ignore_bogus_ts = yylval.number;
5976   }
5977      break;
5978  
5979 <  case 567:
5980 <
5981 < /* Line 1455 of yacc.c  */
7309 < #line 3240 "ircd_parser.y"
7310 <    {
7311 <  ConfigFileEntry.disable_remote = yylval.number;
7312 < }
7313 <    break;
7314 <
7315 <  case 568:
7316 <
7317 < /* Line 1455 of yacc.c  */
7318 < #line 3245 "ircd_parser.y"
5979 >  case 514:
5980 > /* Line 1787 of yacc.c  */
5981 > #line 2485 "conf_parser.y"
5982      {
5983    ConfigFileEntry.failed_oper_notice = yylval.number;
5984   }
5985      break;
5986  
5987 <  case 569:
5988 <
5989 < /* Line 1455 of yacc.c  */
7327 < #line 3250 "ircd_parser.y"
5987 >  case 515:
5988 > /* Line 1787 of yacc.c  */
5989 > #line 2490 "conf_parser.y"
5990      {
5991    ConfigFileEntry.anti_nick_flood = yylval.number;
5992   }
5993      break;
5994  
5995 <  case 570:
5996 <
5997 < /* Line 1455 of yacc.c  */
7336 < #line 3255 "ircd_parser.y"
5995 >  case 516:
5996 > /* Line 1787 of yacc.c  */
5997 > #line 2495 "conf_parser.y"
5998      {
5999    ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
6000   }
6001      break;
6002  
6003 <  case 571:
6004 <
6005 < /* Line 1455 of yacc.c  */
7345 < #line 3260 "ircd_parser.y"
6003 >  case 517:
6004 > /* Line 1787 of yacc.c  */
6005 > #line 2500 "conf_parser.y"
6006      {
6007    ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
6008   }
6009      break;
6010  
6011 <  case 572:
6012 <
6013 < /* Line 1455 of yacc.c  */
7354 < #line 3265 "ircd_parser.y"
6011 >  case 518:
6012 > /* Line 1787 of yacc.c  */
6013 > #line 2505 "conf_parser.y"
6014      {
6015    ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
6016   }
6017      break;
6018  
6019 <  case 573:
6020 <
6021 < /* Line 1455 of yacc.c  */
7363 < #line 3270 "ircd_parser.y"
6019 >  case 519:
6020 > /* Line 1787 of yacc.c  */
6021 > #line 2510 "conf_parser.y"
6022      {
6023    ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
6024   }
6025      break;
6026  
6027 <  case 574:
6028 <
6029 < /* Line 1455 of yacc.c  */
7372 < #line 3275 "ircd_parser.y"
6027 >  case 520:
6028 > /* Line 1787 of yacc.c  */
6029 > #line 2515 "conf_parser.y"
6030      {
6031    ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
6032   }
6033      break;
6034  
6035 <  case 575:
6036 <
6037 < /* Line 1455 of yacc.c  */
7381 < #line 3280 "ircd_parser.y"
6035 >  case 521:
6036 > /* Line 1787 of yacc.c  */
6037 > #line 2520 "conf_parser.y"
6038      {
6039    if (conf_parser_ctx.pass == 2)
6040      ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
6041   }
6042      break;
6043  
6044 <  case 576:
6045 <
6046 < /* Line 1455 of yacc.c  */
7391 < #line 3286 "ircd_parser.y"
6044 >  case 522:
6045 > /* Line 1787 of yacc.c  */
6046 > #line 2526 "conf_parser.y"
6047      {
6048    if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
6049    {
6050 <    ilog(L_CRIT, "You haven't read your config file properly.");
6051 <    ilog(L_CRIT, "There is a line in the example conf that will kill your server if not removed.");
6052 <    ilog(L_CRIT, "Consider actually reading/editing the conf file, and removing this line.");
6050 >    ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
6051 >    ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
6052 >    ilog(LOG_TYPE_IRCD, "Consider actually reading/editing the conf file, and removing this line.");
6053      exit(0);
6054    }
6055   }
6056      break;
6057  
6058 <  case 577:
6059 <
6060 < /* Line 1455 of yacc.c  */
7406 < #line 3297 "ircd_parser.y"
7407 <    {
7408 <  ConfigFileEntry.kline_with_reason = yylval.number;
7409 < }
7410 <    break;
7411 <
7412 <  case 578:
7413 <
7414 < /* Line 1455 of yacc.c  */
7415 < #line 3302 "ircd_parser.y"
7416 <    {
7417 <  if (conf_parser_ctx.pass == 2)
7418 <  {
7419 <    MyFree(ConfigFileEntry.kline_reason);
7420 <    DupString(ConfigFileEntry.kline_reason, yylval.string);
7421 <  }
7422 < }
7423 <    break;
7424 <
7425 <  case 579:
7426 <
7427 < /* Line 1455 of yacc.c  */
7428 < #line 3311 "ircd_parser.y"
6058 >  case 523:
6059 > /* Line 1787 of yacc.c  */
6060 > #line 2537 "conf_parser.y"
6061      {
6062    ConfigFileEntry.invisible_on_connect = yylval.number;
6063   }
6064      break;
6065  
6066 <  case 580:
6067 <
6068 < /* Line 1455 of yacc.c  */
7437 < #line 3316 "ircd_parser.y"
6066 >  case 524:
6067 > /* Line 1787 of yacc.c  */
6068 > #line 2542 "conf_parser.y"
6069      {
6070    ConfigFileEntry.warn_no_nline = yylval.number;
6071   }
6072      break;
6073  
6074 <  case 581:
6075 <
6076 < /* Line 1455 of yacc.c  */
7446 < #line 3321 "ircd_parser.y"
6074 >  case 525:
6075 > /* Line 1787 of yacc.c  */
6076 > #line 2547 "conf_parser.y"
6077      {
6078    ConfigFileEntry.stats_e_disabled = yylval.number;
6079   }
6080      break;
6081  
6082 <  case 582:
6083 <
6084 < /* Line 1455 of yacc.c  */
7455 < #line 3326 "ircd_parser.y"
6082 >  case 526:
6083 > /* Line 1787 of yacc.c  */
6084 > #line 2552 "conf_parser.y"
6085      {
6086    ConfigFileEntry.stats_o_oper_only = yylval.number;
6087   }
6088      break;
6089  
6090 <  case 583:
6091 <
6092 < /* Line 1455 of yacc.c  */
7464 < #line 3331 "ircd_parser.y"
6090 >  case 527:
6091 > /* Line 1787 of yacc.c  */
6092 > #line 2557 "conf_parser.y"
6093      {
6094    ConfigFileEntry.stats_P_oper_only = yylval.number;
6095   }
6096      break;
6097  
6098 <  case 584:
6099 <
6100 < /* Line 1455 of yacc.c  */
7473 < #line 3336 "ircd_parser.y"
6098 >  case 528:
6099 > /* Line 1787 of yacc.c  */
6100 > #line 2562 "conf_parser.y"
6101      {
6102    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
6103   }
6104      break;
6105  
6106 <  case 585:
6107 <
6108 < /* Line 1455 of yacc.c  */
7482 < #line 3339 "ircd_parser.y"
6106 >  case 529:
6107 > /* Line 1787 of yacc.c  */
6108 > #line 2565 "conf_parser.y"
6109      {
6110    ConfigFileEntry.stats_k_oper_only = 1;
6111   }
6112      break;
6113  
6114 <  case 586:
6115 <
6116 < /* Line 1455 of yacc.c  */
7491 < #line 3344 "ircd_parser.y"
6114 >  case 530:
6115 > /* Line 1787 of yacc.c  */
6116 > #line 2570 "conf_parser.y"
6117      {
6118    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
6119   }
6120      break;
6121  
6122 <  case 587:
6123 <
6124 < /* Line 1455 of yacc.c  */
7500 < #line 3347 "ircd_parser.y"
6122 >  case 531:
6123 > /* Line 1787 of yacc.c  */
6124 > #line 2573 "conf_parser.y"
6125      {
6126    ConfigFileEntry.stats_i_oper_only = 1;
6127   }
6128      break;
6129  
6130 <  case 588:
6131 <
6132 < /* Line 1455 of yacc.c  */
7509 < #line 3352 "ircd_parser.y"
6130 >  case 532:
6131 > /* Line 1787 of yacc.c  */
6132 > #line 2578 "conf_parser.y"
6133      {
6134    ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
6135   }
6136      break;
6137  
6138 <  case 589:
6139 <
6140 < /* Line 1455 of yacc.c  */
7518 < #line 3357 "ircd_parser.y"
6138 >  case 533:
6139 > /* Line 1787 of yacc.c  */
6140 > #line 2583 "conf_parser.y"
6141      {
6142    ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
6143   }
6144      break;
6145  
6146 <  case 590:
6147 <
6148 < /* Line 1455 of yacc.c  */
7527 < #line 3362 "ircd_parser.y"
6146 >  case 534:
6147 > /* Line 1787 of yacc.c  */
6148 > #line 2588 "conf_parser.y"
6149      {
6150    ConfigFileEntry.opers_bypass_callerid = yylval.number;
6151   }
6152      break;
6153  
6154 <  case 591:
6155 <
6156 < /* Line 1455 of yacc.c  */
7536 < #line 3367 "ircd_parser.y"
6154 >  case 535:
6155 > /* Line 1787 of yacc.c  */
6156 > #line 2593 "conf_parser.y"
6157      {
6158    ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
6159   }
6160      break;
6161  
6162 <  case 592:
6163 <
6164 < /* Line 1455 of yacc.c  */
7545 < #line 3372 "ircd_parser.y"
6162 >  case 536:
6163 > /* Line 1787 of yacc.c  */
6164 > #line 2598 "conf_parser.y"
6165      {
6166    ConfigFileEntry.short_motd = yylval.number;
6167   }
6168      break;
6169  
6170 <  case 593:
6171 <
6172 < /* Line 1455 of yacc.c  */
7554 < #line 3377 "ircd_parser.y"
6170 >  case 537:
6171 > /* Line 1787 of yacc.c  */
6172 > #line 2603 "conf_parser.y"
6173      {
6174    ConfigFileEntry.no_oper_flood = yylval.number;
6175   }
6176      break;
6177  
6178 <  case 594:
6179 <
6180 < /* Line 1455 of yacc.c  */
7563 < #line 3382 "ircd_parser.y"
6178 >  case 538:
6179 > /* Line 1787 of yacc.c  */
6180 > #line 2608 "conf_parser.y"
6181      {
6182    ConfigFileEntry.true_no_oper_flood = yylval.number;
6183   }
6184      break;
6185  
6186 <  case 595:
6187 <
6188 < /* Line 1455 of yacc.c  */
7572 < #line 3387 "ircd_parser.y"
6186 >  case 539:
6187 > /* Line 1787 of yacc.c  */
6188 > #line 2613 "conf_parser.y"
6189      {
6190    ConfigFileEntry.oper_pass_resv = yylval.number;
6191   }
6192      break;
6193  
6194 <  case 596:
6195 <
6196 < /* Line 1455 of yacc.c  */
7581 < #line 3392 "ircd_parser.y"
7582 <    {
7583 <  if (conf_parser_ctx.pass == 2)
7584 <  {
7585 <    if (strlen(yylval.string) > LOCALE_LENGTH-2)
7586 <      yylval.string[LOCALE_LENGTH-1] = '\0';
7587 <
7588 <    set_locale(yylval.string);
7589 <  }
7590 < }
7591 <    break;
7592 <
7593 <  case 597:
7594 <
7595 < /* Line 1455 of yacc.c  */
7596 < #line 3403 "ircd_parser.y"
7597 <    {
7598 <  ConfigFileEntry.idletime = (yyvsp[(3) - (4)].number);
7599 < }
7600 <    break;
7601 <
7602 <  case 598:
7603 <
7604 < /* Line 1455 of yacc.c  */
7605 < #line 3408 "ircd_parser.y"
6194 >  case 540:
6195 > /* Line 1787 of yacc.c  */
6196 > #line 2618 "conf_parser.y"
6197      {
6198    ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
6199   }
6200      break;
6201  
6202 <  case 599:
6203 <
6204 < /* Line 1455 of yacc.c  */
7614 < #line 3413 "ircd_parser.y"
6202 >  case 541:
6203 > /* Line 1787 of yacc.c  */
6204 > #line 2623 "conf_parser.y"
6205      {
6206    ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
6207   }
6208      break;
6209  
6210 <  case 600:
6211 <
6212 < /* Line 1455 of yacc.c  */
7623 < #line 3418 "ircd_parser.y"
6210 >  case 542:
6211 > /* Line 1787 of yacc.c  */
6212 > #line 2628 "conf_parser.y"
6213      {
6214 <  if (conf_parser_ctx.pass == 2)
7626 <  {
7627 <    MyFree(ConfigFileEntry.servlink_path);
7628 <    DupString(ConfigFileEntry.servlink_path, yylval.string);
7629 <  }
6214 >  ConfigFileEntry.use_egd = yylval.number;
6215   }
6216      break;
6217  
6218 <  case 601:
6219 <
6220 < /* Line 1455 of yacc.c  */
7636 < #line 3427 "ircd_parser.y"
6218 >  case 543:
6219 > /* Line 1787 of yacc.c  */
6220 > #line 2633 "conf_parser.y"
6221      {
7638 #ifdef HAVE_LIBCRYPTO
6222    if (conf_parser_ctx.pass == 2)
6223    {
6224 <    struct EncCapability *ecap;
6225 <    const char *cipher_name;
7643 <    int found = 0;
7644 <
7645 <    ConfigFileEntry.default_cipher_preference = NULL;
7646 <    cipher_name = yylval.string;
7647 <
7648 <    for (ecap = CipherTable; ecap->name; ecap++)
7649 <    {
7650 <      if ((irccmp(ecap->name, cipher_name) == 0) &&
7651 <          (ecap->cap & CAP_ENC_MASK))
7652 <      {
7653 <        ConfigFileEntry.default_cipher_preference = ecap;
7654 <        found = 1;
7655 <        break;
7656 <      }
7657 <    }
7658 <
7659 <    if (!found)
7660 <      yyerror("Invalid cipher");
6224 >    MyFree(ConfigFileEntry.egdpool_path);
6225 >    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6226    }
7662 #else
7663  if (conf_parser_ctx.pass == 2)
7664    yyerror("Ignoring default_cipher_preference -- no OpenSSL support");
7665 #endif
6227   }
6228      break;
6229  
6230 <  case 602:
6231 <
6232 < /* Line 1455 of yacc.c  */
7672 < #line 3459 "ircd_parser.y"
6230 >  case 544:
6231 > /* Line 1787 of yacc.c  */
6232 > #line 2642 "conf_parser.y"
6233      {
6234 <  if (conf_parser_ctx.pass == 2)
6234 >  if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6235    {
6236 <    ConfigFileEntry.compression_level = (yyvsp[(3) - (4)].number);
6237 < #ifndef HAVE_LIBZ
7678 <    yyerror("Ignoring compression_level -- no zlib support");
7679 < #else
7680 <    if ((ConfigFileEntry.compression_level < 1) ||
7681 <        (ConfigFileEntry.compression_level > 9))
7682 <    {
7683 <      yyerror("Ignoring invalid compression_level, using default");
7684 <      ConfigFileEntry.compression_level = 0;
7685 <    }
7686 < #endif
6236 >    MyFree(ConfigFileEntry.service_name);
6237 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
6238    }
6239   }
6240      break;
6241  
6242 <  case 603:
6243 <
6244 < /* Line 1455 of yacc.c  */
7694 < #line 3477 "ircd_parser.y"
7695 <    {
7696 <  ConfigFileEntry.use_egd = yylval.number;
7697 < }
7698 <    break;
7699 <
7700 <  case 604:
7701 <
7702 < /* Line 1455 of yacc.c  */
7703 < #line 3482 "ircd_parser.y"
7704 <    {
7705 <  if (conf_parser_ctx.pass == 2)
7706 <  {
7707 <    MyFree(ConfigFileEntry.egdpool_path);
7708 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
7709 <  }
7710 < }
7711 <    break;
7712 <
7713 <  case 605:
7714 <
7715 < /* Line 1455 of yacc.c  */
7716 < #line 3491 "ircd_parser.y"
6242 >  case 545:
6243 > /* Line 1787 of yacc.c  */
6244 > #line 2651 "conf_parser.y"
6245      {
6246    ConfigFileEntry.ping_cookie = yylval.number;
6247   }
6248      break;
6249  
6250 <  case 606:
6251 <
6252 < /* Line 1455 of yacc.c  */
7725 < #line 3496 "ircd_parser.y"
6250 >  case 546:
6251 > /* Line 1787 of yacc.c  */
6252 > #line 2656 "conf_parser.y"
6253      {
6254    ConfigFileEntry.disable_auth = yylval.number;
6255   }
6256      break;
6257  
6258 <  case 607:
6259 <
6260 < /* Line 1455 of yacc.c  */
7734 < #line 3501 "ircd_parser.y"
6258 >  case 547:
6259 > /* Line 1787 of yacc.c  */
6260 > #line 2661 "conf_parser.y"
6261      {
6262    ConfigFileEntry.throttle_time = yylval.number;
6263   }
6264      break;
6265  
6266 <  case 608:
6267 <
6268 < /* Line 1455 of yacc.c  */
7743 < #line 3506 "ircd_parser.y"
6266 >  case 548:
6267 > /* Line 1787 of yacc.c  */
6268 > #line 2666 "conf_parser.y"
6269      {
6270    ConfigFileEntry.oper_umodes = 0;
6271   }
6272      break;
6273  
6274 <  case 612:
6275 <
6276 < /* Line 1455 of yacc.c  */
7752 < #line 3512 "ircd_parser.y"
6274 >  case 552:
6275 > /* Line 1787 of yacc.c  */
6276 > #line 2672 "conf_parser.y"
6277      {
6278    ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6279   }
6280      break;
6281  
6282 <  case 613:
6283 <
6284 < /* Line 1455 of yacc.c  */
7761 < #line 3515 "ircd_parser.y"
6282 >  case 553:
6283 > /* Line 1787 of yacc.c  */
6284 > #line 2675 "conf_parser.y"
6285      {
6286    ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6287   }
6288      break;
6289  
6290 <  case 614:
6291 <
6292 < /* Line 1455 of yacc.c  */
7770 < #line 3518 "ircd_parser.y"
7771 <    {
7772 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
7773 < }
7774 <    break;
7775 <
7776 <  case 615:
7777 <
7778 < /* Line 1455 of yacc.c  */
7779 < #line 3521 "ircd_parser.y"
6290 >  case 554:
6291 > /* Line 1787 of yacc.c  */
6292 > #line 2678 "conf_parser.y"
6293      {
6294    ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6295   }
6296      break;
6297  
6298 <  case 616:
6299 <
6300 < /* Line 1455 of yacc.c  */
7788 < #line 3524 "ircd_parser.y"
6298 >  case 555:
6299 > /* Line 1787 of yacc.c  */
6300 > #line 2681 "conf_parser.y"
6301      {
6302    ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6303   }
6304      break;
6305  
6306 <  case 617:
6307 <
6308 < /* Line 1455 of yacc.c  */
7797 < #line 3527 "ircd_parser.y"
6306 >  case 556:
6307 > /* Line 1787 of yacc.c  */
6308 > #line 2684 "conf_parser.y"
6309      {
6310    ConfigFileEntry.oper_umodes |= UMODE_FULL;
6311   }
6312      break;
6313  
6314 <  case 618:
6314 >  case 557:
6315 > /* Line 1787 of yacc.c  */
6316 > #line 2687 "conf_parser.y"
6317 >    {
6318 >  ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6319 > }
6320 >    break;
6321  
6322 < /* Line 1455 of yacc.c  */
6323 < #line 3530 "ircd_parser.y"
6322 >  case 558:
6323 > /* Line 1787 of yacc.c  */
6324 > #line 2690 "conf_parser.y"
6325      {
6326    ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6327   }
6328      break;
6329  
6330 <  case 619:
6331 <
6332 < /* Line 1455 of yacc.c  */
7815 < #line 3533 "ircd_parser.y"
6330 >  case 559:
6331 > /* Line 1787 of yacc.c  */
6332 > #line 2693 "conf_parser.y"
6333      {
6334    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6335   }
6336      break;
6337  
6338 <  case 620:
6339 <
6340 < /* Line 1455 of yacc.c  */
7824 < #line 3536 "ircd_parser.y"
6338 >  case 560:
6339 > /* Line 1787 of yacc.c  */
6340 > #line 2696 "conf_parser.y"
6341      {
6342    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6343   }
6344      break;
6345  
6346 <  case 621:
6347 <
6348 < /* Line 1455 of yacc.c  */
7833 < #line 3539 "ircd_parser.y"
6346 >  case 561:
6347 > /* Line 1787 of yacc.c  */
6348 > #line 2699 "conf_parser.y"
6349      {
6350    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6351   }
6352      break;
6353  
6354 <  case 622:
6355 <
6356 < /* Line 1455 of yacc.c  */
7842 < #line 3542 "ircd_parser.y"
6354 >  case 562:
6355 > /* Line 1787 of yacc.c  */
6356 > #line 2702 "conf_parser.y"
6357      {
6358    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6359   }
6360      break;
6361  
6362 <  case 623:
6363 <
6364 < /* Line 1455 of yacc.c  */
7851 < #line 3545 "ircd_parser.y"
6362 >  case 563:
6363 > /* Line 1787 of yacc.c  */
6364 > #line 2705 "conf_parser.y"
6365      {
6366    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6367   }
6368      break;
6369  
6370 <  case 624:
6371 <
6372 < /* Line 1455 of yacc.c  */
7860 < #line 3548 "ircd_parser.y"
6370 >  case 564:
6371 > /* Line 1787 of yacc.c  */
6372 > #line 2708 "conf_parser.y"
6373      {
6374    ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6375   }
6376      break;
6377  
6378 <  case 625:
6379 <
6380 < /* Line 1455 of yacc.c  */
7869 < #line 3551 "ircd_parser.y"
6378 >  case 565:
6379 > /* Line 1787 of yacc.c  */
6380 > #line 2711 "conf_parser.y"
6381      {
6382    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6383   }
6384      break;
6385  
6386 <  case 626:
6387 <
6388 < /* Line 1455 of yacc.c  */
7878 < #line 3554 "ircd_parser.y"
6386 >  case 566:
6387 > /* Line 1787 of yacc.c  */
6388 > #line 2714 "conf_parser.y"
6389      {
6390    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6391   }
6392      break;
6393  
6394 <  case 627:
6395 <
6396 < /* Line 1455 of yacc.c  */
7887 < #line 3557 "ircd_parser.y"
6394 >  case 567:
6395 > /* Line 1787 of yacc.c  */
6396 > #line 2717 "conf_parser.y"
6397      {
6398    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6399   }
6400      break;
6401  
6402 <  case 628:
6403 <
6404 < /* Line 1455 of yacc.c  */
7896 < #line 3560 "ircd_parser.y"
6402 >  case 568:
6403 > /* Line 1787 of yacc.c  */
6404 > #line 2720 "conf_parser.y"
6405      {
6406    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6407   }
6408      break;
6409  
6410 <  case 629:
6411 <
6412 < /* Line 1455 of yacc.c  */
7905 < #line 3563 "ircd_parser.y"
6410 >  case 569:
6411 > /* Line 1787 of yacc.c  */
6412 > #line 2723 "conf_parser.y"
6413      {
6414    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6415   }
6416      break;
6417  
6418 <  case 630:
6419 <
6420 < /* Line 1455 of yacc.c  */
7914 < #line 3566 "ircd_parser.y"
6418 >  case 570:
6419 > /* Line 1787 of yacc.c  */
6420 > #line 2726 "conf_parser.y"
6421      {
6422    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6423   }
6424      break;
6425  
6426 <  case 631:
6427 <
6428 < /* Line 1455 of yacc.c  */
7923 < #line 3571 "ircd_parser.y"
6426 >  case 571:
6427 > /* Line 1787 of yacc.c  */
6428 > #line 2729 "conf_parser.y"
6429      {
6430 <  ConfigFileEntry.oper_only_umodes = 0;
6430 >  ConfigFileEntry.oper_umodes |= UMODE_REGONLY;
6431   }
6432      break;
6433  
6434 <  case 635:
6435 <
6436 < /* Line 1455 of yacc.c  */
7932 < #line 3577 "ircd_parser.y"
6434 >  case 572:
6435 > /* Line 1787 of yacc.c  */
6436 > #line 2732 "conf_parser.y"
6437      {
6438 <  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6438 >  ConfigFileEntry.oper_umodes |= UMODE_FARCONNECT;
6439   }
6440      break;
6441  
6442 <  case 636:
6443 <
6444 < /* Line 1455 of yacc.c  */
7941 < #line 3580 "ircd_parser.y"
6442 >  case 573:
6443 > /* Line 1787 of yacc.c  */
6444 > #line 2737 "conf_parser.y"
6445      {
6446 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6446 >  ConfigFileEntry.oper_only_umodes = 0;
6447   }
6448      break;
6449  
6450 <  case 637:
6451 <
6452 < /* Line 1455 of yacc.c  */
7950 < #line 3583 "ircd_parser.y"
6450 >  case 577:
6451 > /* Line 1787 of yacc.c  */
6452 > #line 2743 "conf_parser.y"
6453      {
6454 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6454 >  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6455   }
6456      break;
6457  
6458 <  case 638:
6458 >  case 578:
6459 > /* Line 1787 of yacc.c  */
6460 > #line 2746 "conf_parser.y"
6461 >    {
6462 >  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6463 > }
6464 >    break;
6465  
6466 < /* Line 1455 of yacc.c  */
6467 < #line 3586 "ircd_parser.y"
6466 >  case 579:
6467 > /* Line 1787 of yacc.c  */
6468 > #line 2749 "conf_parser.y"
6469      {
6470    ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6471   }
6472      break;
6473  
6474 <  case 639:
6475 <
6476 < /* Line 1455 of yacc.c  */
7968 < #line 3589 "ircd_parser.y"
6474 >  case 580:
6475 > /* Line 1787 of yacc.c  */
6476 > #line 2752 "conf_parser.y"
6477      {
6478    ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6479   }
6480      break;
6481  
6482 <  case 640:
6483 <
6484 < /* Line 1455 of yacc.c  */
7977 < #line 3592 "ircd_parser.y"
6482 >  case 581:
6483 > /* Line 1787 of yacc.c  */
6484 > #line 2755 "conf_parser.y"
6485      {
6486    ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6487   }
6488      break;
6489  
6490 <  case 641:
6491 <
6492 < /* Line 1455 of yacc.c  */
7986 < #line 3595 "ircd_parser.y"
6490 >  case 582:
6491 > /* Line 1787 of yacc.c  */
6492 > #line 2758 "conf_parser.y"
6493      {
6494    ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6495   }
6496      break;
6497  
6498 <  case 642:
6498 >  case 583:
6499 > /* Line 1787 of yacc.c  */
6500 > #line 2761 "conf_parser.y"
6501 >    {
6502 >  ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6503 > }
6504 >    break;
6505  
6506 < /* Line 1455 of yacc.c  */
6507 < #line 3598 "ircd_parser.y"
6506 >  case 584:
6507 > /* Line 1787 of yacc.c  */
6508 > #line 2764 "conf_parser.y"
6509      {
6510    ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6511   }
6512      break;
6513  
6514 <  case 643:
6515 <
6516 < /* Line 1455 of yacc.c  */
8004 < #line 3601 "ircd_parser.y"
6514 >  case 585:
6515 > /* Line 1787 of yacc.c  */
6516 > #line 2767 "conf_parser.y"
6517      {
6518    ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6519   }
6520      break;
6521  
6522 <  case 644:
6523 <
6524 < /* Line 1455 of yacc.c  */
8013 < #line 3604 "ircd_parser.y"
6522 >  case 586:
6523 > /* Line 1787 of yacc.c  */
6524 > #line 2770 "conf_parser.y"
6525      {
6526    ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6527   }
6528      break;
6529  
6530 <  case 645:
6531 <
6532 < /* Line 1455 of yacc.c  */
8022 < #line 3607 "ircd_parser.y"
6530 >  case 587:
6531 > /* Line 1787 of yacc.c  */
6532 > #line 2773 "conf_parser.y"
6533      {
6534    ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6535   }
6536      break;
6537  
6538 <  case 646:
6539 <
6540 < /* Line 1455 of yacc.c  */
8031 < #line 3610 "ircd_parser.y"
6538 >  case 588:
6539 > /* Line 1787 of yacc.c  */
6540 > #line 2776 "conf_parser.y"
6541      {
6542    ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6543   }
6544      break;
6545  
6546 <  case 647:
6547 <
6548 < /* Line 1455 of yacc.c  */
8040 < #line 3613 "ircd_parser.y"
6546 >  case 589:
6547 > /* Line 1787 of yacc.c  */
6548 > #line 2779 "conf_parser.y"
6549      {
6550    ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6551   }
6552      break;
6553  
6554 <  case 648:
6555 <
6556 < /* Line 1455 of yacc.c  */
8049 < #line 3616 "ircd_parser.y"
6554 >  case 590:
6555 > /* Line 1787 of yacc.c  */
6556 > #line 2782 "conf_parser.y"
6557      {
6558    ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6559   }
6560      break;
6561  
6562 <  case 649:
6563 <
6564 < /* Line 1455 of yacc.c  */
8058 < #line 3619 "ircd_parser.y"
6562 >  case 591:
6563 > /* Line 1787 of yacc.c  */
6564 > #line 2785 "conf_parser.y"
6565      {
6566    ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6567   }
6568      break;
6569  
6570 <  case 650:
6571 <
6572 < /* Line 1455 of yacc.c  */
8067 < #line 3622 "ircd_parser.y"
6570 >  case 592:
6571 > /* Line 1787 of yacc.c  */
6572 > #line 2788 "conf_parser.y"
6573      {
6574    ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6575   }
6576      break;
6577  
6578 <  case 651:
6579 <
6580 < /* Line 1455 of yacc.c  */
8076 < #line 3625 "ircd_parser.y"
6578 >  case 593:
6579 > /* Line 1787 of yacc.c  */
6580 > #line 2791 "conf_parser.y"
6581      {
6582    ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6583   }
6584      break;
6585  
6586 <  case 652:
6587 <
6588 < /* Line 1455 of yacc.c  */
8085 < #line 3628 "ircd_parser.y"
6586 >  case 594:
6587 > /* Line 1787 of yacc.c  */
6588 > #line 2794 "conf_parser.y"
6589      {
6590    ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6591   }
6592      break;
6593  
6594 <  case 653:
6595 <
6596 < /* Line 1455 of yacc.c  */
8094 < #line 3631 "ircd_parser.y"
6594 >  case 595:
6595 > /* Line 1787 of yacc.c  */
6596 > #line 2797 "conf_parser.y"
6597      {
6598    ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6599   }
6600      break;
6601  
6602 <  case 654:
6603 <
6604 < /* Line 1455 of yacc.c  */
8103 < #line 3636 "ircd_parser.y"
8104 <    {
8105 <  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
8106 < }
8107 <    break;
8108 <
8109 <  case 655:
8110 <
8111 < /* Line 1455 of yacc.c  */
8112 < #line 3641 "ircd_parser.y"
8113 <    {
8114 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
8115 < }
8116 <    break;
8117 <
8118 <  case 656:
8119 <
8120 < /* Line 1455 of yacc.c  */
8121 < #line 3646 "ircd_parser.y"
8122 <    {
8123 <  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
8124 < }
8125 <    break;
8126 <
8127 <  case 657:
8128 <
8129 < /* Line 1455 of yacc.c  */
8130 < #line 3651 "ircd_parser.y"
8131 <    {
8132 <  ConfigFileEntry.client_flood = (yyvsp[(3) - (4)].number);
8133 < }
8134 <    break;
8135 <
8136 <  case 658:
8137 <
8138 < /* Line 1455 of yacc.c  */
8139 < #line 3656 "ircd_parser.y"
8140 <    {
8141 <  ConfigFileEntry.dot_in_ip6_addr = yylval.number;
8142 < }
8143 <    break;
8144 <
8145 <  case 659:
8146 <
8147 < /* Line 1455 of yacc.c  */
8148 < #line 3664 "ircd_parser.y"
8149 <    {
8150 <  if (conf_parser_ctx.pass == 2)
8151 <  {
8152 <    yy_conf = make_conf_item(GDENY_TYPE);
8153 <    yy_aconf = map_to_conf(yy_conf);
8154 <  }
8155 < }
8156 <    break;
8157 <
8158 <  case 660:
8159 <
8160 < /* Line 1455 of yacc.c  */
8161 < #line 3671 "ircd_parser.y"
8162 <    {
8163 <  if (conf_parser_ctx.pass == 2)
8164 <  {
8165 <    /*
8166 <     * since we re-allocate yy_conf/yy_aconf after the end of action=, at the
8167 <     * end we will have one extra, so we should free it.
8168 <     */
8169 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
8170 <    {
8171 <      delete_conf_item(yy_conf);
8172 <      yy_conf = NULL;
8173 <      yy_aconf = NULL;
8174 <    }
8175 <  }
8176 < }
8177 <    break;
8178 <
8179 <  case 670:
8180 <
8181 < /* Line 1455 of yacc.c  */
8182 < #line 3697 "ircd_parser.y"
8183 <    {
8184 <  if (conf_parser_ctx.pass == 2)
8185 <    ConfigFileEntry.glines = yylval.number;
8186 < }
8187 <    break;
8188 <
8189 <  case 671:
8190 <
8191 < /* Line 1455 of yacc.c  */
8192 < #line 3703 "ircd_parser.y"
8193 <    {
8194 <  if (conf_parser_ctx.pass == 2)
8195 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
8196 < }
8197 <    break;
8198 <
8199 <  case 672:
8200 <
8201 < /* Line 1455 of yacc.c  */
8202 < #line 3709 "ircd_parser.y"
8203 <    {
8204 <  if (conf_parser_ctx.pass == 2)
8205 <    ConfigFileEntry.gline_logging = 0;
8206 < }
8207 <    break;
8208 <
8209 <  case 676:
8210 <
8211 < /* Line 1455 of yacc.c  */
8212 < #line 3715 "ircd_parser.y"
8213 <    {
8214 <  if (conf_parser_ctx.pass == 2)
8215 <    ConfigFileEntry.gline_logging |= GDENY_REJECT;
8216 < }
8217 <    break;
8218 <
8219 <  case 677:
8220 <
8221 < /* Line 1455 of yacc.c  */
8222 < #line 3719 "ircd_parser.y"
8223 <    {
8224 <  if (conf_parser_ctx.pass == 2)
8225 <    ConfigFileEntry.gline_logging |= GDENY_BLOCK;
8226 < }
8227 <    break;
8228 <
8229 <  case 678:
8230 <
8231 < /* Line 1455 of yacc.c  */
8232 < #line 3725 "ircd_parser.y"
8233 <    {
8234 <  if (conf_parser_ctx.pass == 2)
8235 <  {
8236 <    struct split_nuh_item nuh;
8237 <
8238 <    nuh.nuhmask  = yylval.string;
8239 <    nuh.nickptr  = NULL;
8240 <    nuh.userptr  = userbuf;
8241 <    nuh.hostptr  = hostbuf;
8242 <
8243 <    nuh.nicksize = 0;
8244 <    nuh.usersize = sizeof(userbuf);
8245 <    nuh.hostsize = sizeof(hostbuf);
8246 <
8247 <    split_nuh(&nuh);
8248 <
8249 <    if (yy_aconf->user == NULL)
8250 <    {
8251 <      DupString(yy_aconf->user, userbuf);
8252 <      DupString(yy_aconf->host, hostbuf);
8253 <    }
8254 <    else
8255 <    {
8256 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
8257 <
8258 <      DupString(yy_tmp->user, userbuf);
8259 <      DupString(yy_tmp->host, hostbuf);
8260 <
8261 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
8262 <    }
8263 <  }
8264 < }
8265 <    break;
8266 <
8267 <  case 679:
8268 <
8269 < /* Line 1455 of yacc.c  */
8270 < #line 3759 "ircd_parser.y"
6602 >  case 596:
6603 > /* Line 1787 of yacc.c  */
6604 > #line 2800 "conf_parser.y"
6605      {
6606 <  if (conf_parser_ctx.pass == 2)  
8273 <  {
8274 <    MyFree(yy_conf->name);
8275 <    DupString(yy_conf->name, yylval.string);
8276 <  }
6606 >  ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6607   }
6608      break;
6609  
6610 <  case 680:
6611 <
6612 < /* Line 1455 of yacc.c  */
8283 < #line 3768 "ircd_parser.y"
6610 >  case 597:
6611 > /* Line 1787 of yacc.c  */
6612 > #line 2803 "conf_parser.y"
6613      {
6614 <  if (conf_parser_ctx.pass == 2)
8286 <    yy_aconf->flags = 0;
6614 >  ConfigFileEntry.oper_only_umodes |= UMODE_FARCONNECT;
6615   }
6616      break;
6617  
6618 <  case 681:
6619 <
6620 < /* Line 1455 of yacc.c  */
8293 < #line 3772 "ircd_parser.y"
8294 <    {
8295 <  if (conf_parser_ctx.pass == 2)
8296 <  {
8297 <    struct CollectItem *yy_tmp = NULL;
8298 <    dlink_node *ptr, *next_ptr;
8299 <
8300 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
6618 >  case 598:
6619 > /* Line 1787 of yacc.c  */
6620 > #line 2808 "conf_parser.y"
6621      {
6622 <      struct AccessItem *new_aconf;
8303 <      struct ConfItem *new_conf;
8304 <
8305 <      yy_tmp = ptr->data;
8306 <      new_conf = make_conf_item(GDENY_TYPE);
8307 <      new_aconf = map_to_conf(new_conf);
8308 <
8309 <      new_aconf->flags = yy_aconf->flags;
8310 <
8311 <      if (yy_conf->name != NULL)
8312 <        DupString(new_conf->name, yy_conf->name);
8313 <      else
8314 <        DupString(new_conf->name, "*");
8315 <      if (yy_aconf->user != NULL)
8316 <         DupString(new_aconf->user, yy_tmp->user);
8317 <      else  
8318 <        DupString(new_aconf->user, "*");
8319 <      if (yy_aconf->host != NULL)
8320 <        DupString(new_aconf->host, yy_tmp->host);
8321 <      else
8322 <        DupString(new_aconf->host, "*");
8323 <
8324 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
8325 <    }
8326 <
8327 <    /*
8328 <     * In case someone has fed us with more than one action= after user/name
8329 <     * which would leak memory  -Michael
8330 <     */
8331 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
8332 <      delete_conf_item(yy_conf);
8333 <
8334 <    yy_conf = make_conf_item(GDENY_TYPE);
8335 <    yy_aconf = map_to_conf(yy_conf);
8336 <  }
6622 >  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6623   }
6624      break;
6625  
6626 <  case 684:
6627 <
6628 < /* Line 1455 of yacc.c  */
8343 < #line 3819 "ircd_parser.y"
6626 >  case 599:
6627 > /* Line 1787 of yacc.c  */
6628 > #line 2813 "conf_parser.y"
6629      {
6630 <  if (conf_parser_ctx.pass == 2)
8346 <    yy_aconf->flags |= GDENY_REJECT;
6630 >  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6631   }
6632      break;
6633  
6634 <  case 685:
6635 <
6636 < /* Line 1455 of yacc.c  */
8353 < #line 3823 "ircd_parser.y"
6634 >  case 600:
6635 > /* Line 1787 of yacc.c  */
6636 > #line 2818 "conf_parser.y"
6637      {
6638 <  if (conf_parser_ctx.pass == 2)
8356 <    yy_aconf->flags |= GDENY_BLOCK;
6638 >  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6639   }
6640      break;
6641  
6642 <  case 708:
6643 <
6644 < /* Line 1455 of yacc.c  */
8363 < #line 3847 "ircd_parser.y"
6642 >  case 617:
6643 > /* Line 1787 of yacc.c  */
6644 > #line 2841 "conf_parser.y"
6645      {
6646    ConfigChannel.disable_fake_channels = yylval.number;
6647   }
6648      break;
6649  
6650 <  case 709:
6651 <
6652 < /* Line 1455 of yacc.c  */
8372 < #line 3852 "ircd_parser.y"
8373 <    {
8374 <  ConfigChannel.restrict_channels = yylval.number;
8375 < }
8376 <    break;
8377 <
8378 <  case 710:
8379 <
8380 < /* Line 1455 of yacc.c  */
8381 < #line 3857 "ircd_parser.y"
8382 <    {
8383 <  ConfigChannel.disable_local_channels = yylval.number;
8384 < }
8385 <    break;
8386 <
8387 <  case 711:
8388 <
8389 < /* Line 1455 of yacc.c  */
8390 < #line 3862 "ircd_parser.y"
8391 <    {
8392 <  ConfigChannel.use_except = yylval.number;
8393 < }
8394 <    break;
8395 <
8396 <  case 712:
8397 <
8398 < /* Line 1455 of yacc.c  */
8399 < #line 3867 "ircd_parser.y"
8400 <    {
8401 <  ConfigChannel.use_invex = yylval.number;
8402 < }
8403 <    break;
8404 <
8405 <  case 713:
8406 <
8407 < /* Line 1455 of yacc.c  */
8408 < #line 3872 "ircd_parser.y"
8409 <    {
8410 <  ConfigChannel.use_knock = yylval.number;
8411 < }
8412 <    break;
8413 <
8414 <  case 714:
8415 <
8416 < /* Line 1455 of yacc.c  */
8417 < #line 3877 "ircd_parser.y"
6650 >  case 618:
6651 > /* Line 1787 of yacc.c  */
6652 > #line 2846 "conf_parser.y"
6653      {
6654    ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6655   }
6656      break;
6657  
6658 <  case 715:
6659 <
6660 < /* Line 1455 of yacc.c  */
8426 < #line 3882 "ircd_parser.y"
6658 >  case 619:
6659 > /* Line 1787 of yacc.c  */
6660 > #line 2851 "conf_parser.y"
6661      {
6662    ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6663   }
6664      break;
6665  
6666 <  case 716:
6667 <
6668 < /* Line 1455 of yacc.c  */
8435 < #line 3887 "ircd_parser.y"
6666 >  case 620:
6667 > /* Line 1787 of yacc.c  */
6668 > #line 2856 "conf_parser.y"
6669      {
6670    ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6671   }
6672      break;
6673  
6674 <  case 717:
6675 <
6676 < /* Line 1455 of yacc.c  */
8444 < #line 3892 "ircd_parser.y"
6674 >  case 621:
6675 > /* Line 1787 of yacc.c  */
6676 > #line 2861 "conf_parser.y"
6677      {
6678 <  ConfigChannel.quiet_on_ban = yylval.number;
6678 >  ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6679   }
6680      break;
6681  
6682 <  case 718:
6683 <
6684 < /* Line 1455 of yacc.c  */
8453 < #line 3897 "ircd_parser.y"
6682 >  case 622:
6683 > /* Line 1787 of yacc.c  */
6684 > #line 2866 "conf_parser.y"
6685      {
6686    ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6687   }
6688      break;
6689  
6690 <  case 719:
6691 <
6692 < /* Line 1455 of yacc.c  */
8462 < #line 3902 "ircd_parser.y"
6690 >  case 623:
6691 > /* Line 1787 of yacc.c  */
6692 > #line 2871 "conf_parser.y"
6693      {
6694    ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6695   }
6696      break;
6697  
6698 <  case 720:
6699 <
6700 < /* Line 1455 of yacc.c  */
8471 < #line 3907 "ircd_parser.y"
6698 >  case 624:
6699 > /* Line 1787 of yacc.c  */
6700 > #line 2876 "conf_parser.y"
6701      {
6702    ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6703   }
6704      break;
6705  
6706 <  case 721:
6707 <
6708 < /* Line 1455 of yacc.c  */
8480 < #line 3912 "ircd_parser.y"
6706 >  case 625:
6707 > /* Line 1787 of yacc.c  */
6708 > #line 2881 "conf_parser.y"
6709      {
6710    ConfigChannel.no_create_on_split = yylval.number;
6711   }
6712      break;
6713  
6714 <  case 722:
6715 <
6716 < /* Line 1455 of yacc.c  */
8489 < #line 3917 "ircd_parser.y"
6714 >  case 626:
6715 > /* Line 1787 of yacc.c  */
6716 > #line 2886 "conf_parser.y"
6717      {
6718    ConfigChannel.no_join_on_split = yylval.number;
6719   }
6720      break;
6721  
6722 <  case 723:
6723 <
6724 < /* Line 1455 of yacc.c  */
8498 < #line 3922 "ircd_parser.y"
8499 <    {
8500 <  ConfigChannel.burst_topicwho = yylval.number;
8501 < }
8502 <    break;
8503 <
8504 <  case 724:
8505 <
8506 < /* Line 1455 of yacc.c  */
8507 < #line 3927 "ircd_parser.y"
6722 >  case 627:
6723 > /* Line 1787 of yacc.c  */
6724 > #line 2891 "conf_parser.y"
6725      {
6726    GlobalSetOptions.joinfloodcount = yylval.number;
6727   }
6728      break;
6729  
6730 <  case 725:
6731 <
6732 < /* Line 1455 of yacc.c  */
8516 < #line 3932 "ircd_parser.y"
6730 >  case 628:
6731 > /* Line 1787 of yacc.c  */
6732 > #line 2896 "conf_parser.y"
6733      {
6734    GlobalSetOptions.joinfloodtime = yylval.number;
6735   }
6736      break;
6737  
6738 <  case 737:
6739 <
6740 < /* Line 1455 of yacc.c  */
8525 < #line 3951 "ircd_parser.y"
6738 >  case 641:
6739 > /* Line 1787 of yacc.c  */
6740 > #line 2916 "conf_parser.y"
6741      {
6742    if (conf_parser_ctx.pass == 2)
6743      ConfigServerHide.flatten_links = yylval.number;
6744   }
6745      break;
6746  
6747 <  case 738:
6747 >  case 642:
6748 > /* Line 1787 of yacc.c  */
6749 > #line 2922 "conf_parser.y"
6750 >    {
6751 >  if (conf_parser_ctx.pass == 2)
6752 >    ConfigServerHide.disable_remote_commands = yylval.number;
6753 > }
6754 >    break;
6755  
6756 < /* Line 1455 of yacc.c  */
6757 < #line 3957 "ircd_parser.y"
6756 >  case 643:
6757 > /* Line 1787 of yacc.c  */
6758 > #line 2928 "conf_parser.y"
6759      {
6760    if (conf_parser_ctx.pass == 2)
6761      ConfigServerHide.hide_servers = yylval.number;
6762   }
6763      break;
6764  
6765 <  case 739:
6765 >  case 644:
6766 > /* Line 1787 of yacc.c  */
6767 > #line 2934 "conf_parser.y"
6768 >    {
6769 >  if (conf_parser_ctx.pass == 2)
6770 >    ConfigServerHide.hide_services = yylval.number;
6771 > }
6772 >    break;
6773  
6774 < /* Line 1455 of yacc.c  */
6775 < #line 3963 "ircd_parser.y"
6774 >  case 645:
6775 > /* Line 1787 of yacc.c  */
6776 > #line 2940 "conf_parser.y"
6777      {
6778    if (conf_parser_ctx.pass == 2)
6779    {
6780      MyFree(ConfigServerHide.hidden_name);
6781 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6781 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6782    }
6783   }
6784      break;
6785  
6786 <  case 740:
6787 <
6788 < /* Line 1455 of yacc.c  */
8558 < #line 3972 "ircd_parser.y"
6786 >  case 646:
6787 > /* Line 1787 of yacc.c  */
6788 > #line 2949 "conf_parser.y"
6789      {
6790    if (conf_parser_ctx.pass == 2)
6791    {
# Line 8570 | Line 6800 | yyreduce:
6800   }
6801      break;
6802  
6803 <  case 741:
6804 <
6805 < /* Line 1455 of yacc.c  */
8576 < #line 3986 "ircd_parser.y"
6803 >  case 647:
6804 > /* Line 1787 of yacc.c  */
6805 > #line 2963 "conf_parser.y"
6806      {
6807    if (conf_parser_ctx.pass == 2)
6808      ConfigServerHide.hidden = yylval.number;
6809   }
6810      break;
6811  
6812 <  case 742:
6813 <
6814 < /* Line 1455 of yacc.c  */
8586 < #line 3992 "ircd_parser.y"
8587 <    {
8588 <  if (conf_parser_ctx.pass == 2)
8589 <    ConfigServerHide.disable_hidden = yylval.number;
8590 < }
8591 <    break;
8592 <
8593 <  case 743:
8594 <
8595 < /* Line 1455 of yacc.c  */
8596 < #line 3998 "ircd_parser.y"
6812 >  case 648:
6813 > /* Line 1787 of yacc.c  */
6814 > #line 2969 "conf_parser.y"
6815      {
6816    if (conf_parser_ctx.pass == 2)
6817      ConfigServerHide.hide_server_ips = yylval.number;
# Line 8601 | Line 6819 | yyreduce:
6819      break;
6820  
6821  
6822 <
6823 < /* Line 1455 of yacc.c  */
8606 < #line 8607 "ircd_parser.c"
6822 > /* Line 1787 of yacc.c  */
6823 > #line 6824 "conf_parser.c"
6824        default: break;
6825      }
6826 +  /* User semantic actions sometimes alter yychar, and that requires
6827 +     that yytoken be updated with the new translation.  We take the
6828 +     approach of translating immediately before every use of yytoken.
6829 +     One alternative is translating here after every semantic action,
6830 +     but that translation would be missed if the semantic action invokes
6831 +     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
6832 +     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
6833 +     incorrect destructor might then be invoked immediately.  In the
6834 +     case of YYERROR or YYBACKUP, subsequent parser actions might lead
6835 +     to an incorrect destructor call or verbose syntax error message
6836 +     before the lookahead is translated.  */
6837    YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
6838  
6839    YYPOPSTACK (yylen);
# Line 8633 | Line 6861 | yyreduce:
6861   | yyerrlab -- here on detecting error |
6862   `------------------------------------*/
6863   yyerrlab:
6864 +  /* Make sure we have latest lookahead translation.  See comments at
6865 +     user semantic actions for why this is necessary.  */
6866 +  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
6867 +
6868    /* If not already recovering from an error, report this error.  */
6869    if (!yyerrstatus)
6870      {
# Line 8640 | Line 6872 | yyerrlab:
6872   #if ! YYERROR_VERBOSE
6873        yyerror (YY_("syntax error"));
6874   #else
6875 + # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
6876 +                                        yyssp, yytoken)
6877        {
6878 <        YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
6879 <        if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
6880 <          {
6881 <            YYSIZE_T yyalloc = 2 * yysize;
6882 <            if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
6883 <              yyalloc = YYSTACK_ALLOC_MAXIMUM;
6884 <            if (yymsg != yymsgbuf)
6885 <              YYSTACK_FREE (yymsg);
6886 <            yymsg = (char *) YYSTACK_ALLOC (yyalloc);
6887 <            if (yymsg)
6888 <              yymsg_alloc = yyalloc;
6889 <            else
6890 <              {
6891 <                yymsg = yymsgbuf;
6892 <                yymsg_alloc = sizeof yymsgbuf;
6893 <              }
6894 <          }
6895 <
6896 <        if (0 < yysize && yysize <= yymsg_alloc)
6897 <          {
6898 <            (void) yysyntax_error (yymsg, yystate, yychar);
6899 <            yyerror (yymsg);
6900 <          }
6901 <        else
6902 <          {
8669 <            yyerror (YY_("syntax error"));
8670 <            if (yysize != 0)
8671 <              goto yyexhaustedlab;
8672 <          }
6878 >        char const *yymsgp = YY_("syntax error");
6879 >        int yysyntax_error_status;
6880 >        yysyntax_error_status = YYSYNTAX_ERROR;
6881 >        if (yysyntax_error_status == 0)
6882 >          yymsgp = yymsg;
6883 >        else if (yysyntax_error_status == 1)
6884 >          {
6885 >            if (yymsg != yymsgbuf)
6886 >              YYSTACK_FREE (yymsg);
6887 >            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
6888 >            if (!yymsg)
6889 >              {
6890 >                yymsg = yymsgbuf;
6891 >                yymsg_alloc = sizeof yymsgbuf;
6892 >                yysyntax_error_status = 2;
6893 >              }
6894 >            else
6895 >              {
6896 >                yysyntax_error_status = YYSYNTAX_ERROR;
6897 >                yymsgp = yymsg;
6898 >              }
6899 >          }
6900 >        yyerror (yymsgp);
6901 >        if (yysyntax_error_status == 2)
6902 >          goto yyexhaustedlab;
6903        }
6904 + # undef YYSYNTAX_ERROR
6905   #endif
6906      }
6907  
# Line 8729 | Line 6960 | yyerrlab1:
6960    for (;;)
6961      {
6962        yyn = yypact[yystate];
6963 <      if (yyn != YYPACT_NINF)
6963 >      if (!yypact_value_is_default (yyn))
6964          {
6965            yyn += YYTERROR;
6966            if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
# Line 8752 | Line 6983 | yyerrlab1:
6983        YY_STACK_PRINT (yyss, yyssp);
6984      }
6985  
6986 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6987    *++yyvsp = yylval;
6988 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6989  
6990  
6991    /* Shift the error token.  */
# Line 8776 | Line 7009 | yyabortlab:
7009    yyresult = 1;
7010    goto yyreturn;
7011  
7012 < #if !defined(yyoverflow) || YYERROR_VERBOSE
7012 > #if !defined yyoverflow || YYERROR_VERBOSE
7013   /*-------------------------------------------------.
7014   | yyexhaustedlab -- memory exhaustion comes here.  |
7015   `-------------------------------------------------*/
# Line 8788 | Line 7021 | yyexhaustedlab:
7021  
7022   yyreturn:
7023    if (yychar != YYEMPTY)
7024 <     yydestruct ("Cleanup: discarding lookahead",
7025 <                 yytoken, &yylval);
7024 >    {
7025 >      /* Make sure we have latest lookahead translation.  See comments at
7026 >         user semantic actions for why this is necessary.  */
7027 >      yytoken = YYTRANSLATE (yychar);
7028 >      yydestruct ("Cleanup: discarding lookahead",
7029 >                  yytoken, &yylval);
7030 >    }
7031    /* Do not reclaim the symbols of the rule which action triggered
7032       this YYABORT or YYACCEPT.  */
7033    YYPOPSTACK (yylen);
# Line 8813 | Line 7051 | yyreturn:
7051   }
7052  
7053  
8816

Comparing:
ircd-hybrid-7.2/src/ircd_parser.c (property svn:keywords), Revision 1009 by michael, Sun Sep 13 15:02:30 2009 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (property svn:keywords), Revision 2228 by michael, Thu Jun 13 19:46:30 2013 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

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