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 1005 by michael, Mon Aug 31 23:07:43 2009 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (file contents), Revision 2229 by michael, Thu Jun 13 20:10:27 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
70   #include <sys/types.h>
71   #include <string.h>
72  
73 + #include "config.h"
74   #include "stdinc.h"
75   #include "ircd.h"
80 #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 */
86 #include "pcre.h"
82   #include "irc_string.h"
88 #include "irc_getaddrinfo.h"
89 #include "sprintf_irc.h"
83   #include "memory.h"
84   #include "modules.h"
85   #include "s_serv.h"
# Line 96 | 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;
107 < static struct ConfItem *yy_conf = NULL;
108 < static struct AccessItem *yy_aconf = NULL;
109 < static struct MatchItem *yy_match_item = NULL;
110 < static struct ClassItem *yy_class = NULL;
111 < static char *yy_class_name = NULL;
112 <
113 < static dlink_list col_conf_list  = { NULL, NULL, 0 };
114 < static dlink_list hub_conf_list  = { NULL, NULL, 0 };
115 < static dlink_list leaf_conf_list = { NULL, NULL, 0 };
116 < static unsigned int listener_flags = 0;
117 < static unsigned int regex_ban = 0;
118 < static char userbuf[IRCD_BUFSIZE];
119 < static char hostbuf[IRCD_BUFSIZE];
120 < static char reasonbuf[REASONLEN + 1];
121 < static char gecos_name[REALLEN * 4];
122 <
123 < extern dlink_list gdeny_items; /* XXX */
124 <
125 < static char *resv_reason = NULL;
126 < static char *listener_address = NULL;
127 < static int not_atom = 0;
101 > #include "rsa.h"
102  
103 < struct CollectItem
130 < {
131 <  dlink_node node;
132 <  char *name;
133 <  char *user;
134 <  char *host;
135 <  char *passwd;
136 <  int  port;
137 <  int  flags;
138 < #ifdef HAVE_LIBCRYPTO
139 <  char *rsa_public_key_file;
140 <  RSA *rsa_public_key;
141 < #endif
142 < };
103 > int yylex(void);
104  
105 < static void
145 < 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;
161 <  dlink_node *next_ptr;
162 <  struct CollectItem *yy_hconf;
163 <  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    }
178 }
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 +  }
176  
177 +  memset(&block_state, 0, sizeof(block_state));
178 + }
179  
182 /* Line 189 of yacc.c  */
183 #line 184 "ircd_parser.c"
180  
181 < /* Enabling traces.  */
182 < #ifndef YYDEBUG
183 < # define YYDEBUG 0
184 < #endif
181 > /* Line 371 of yacc.c  */
182 > #line 183 "conf_parser.c"
183 >
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 195 | 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
202
211  
212   /* Tokens.  */
213   #ifndef YYTOKENTYPE
# Line 208 | 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,
431 <     T_L_ERROR = 479,
432 <     T_L_INFO = 480,
433 <     T_L_NOTICE = 481,
434 <     T_L_TRACE = 482,
435 <     T_L_WARN = 483,
436 <     T_MAX_CLIENTS = 484,
437 <     T_NCHANGE = 485,
438 <     T_OPERWALL = 486,
439 <     T_REJ = 487,
440 <     T_SERVER = 488,
441 <     T_SERVNOTICE = 489,
442 <     T_SKILL = 490,
443 <     T_SPY = 491,
444 <     T_SSL = 492,
445 <     T_UMODES = 493,
446 <     T_UNAUTH = 494,
447 <     T_UNRESV = 495,
448 <     T_UNXLINE = 496,
449 <     T_WALLOP = 497,
450 <     THROTTLE_TIME = 498,
451 <     TOPICBURST = 499,
452 <     TRUE_NO_OPER_FLOOD = 500,
453 <     TKLINE = 501,
454 <     TXLINE = 502,
455 <     TRESV = 503,
456 <     UNKLINE = 504,
457 <     USER = 505,
458 <     USE_EGD = 506,
459 <     USE_EXCEPT = 507,
460 <     USE_INVEX = 508,
461 <     USE_KNOCK = 509,
462 <     USE_LOGGING = 510,
463 <     USE_WHOIS_ACTUALLY = 511,
464 <     VHOST = 512,
465 <     VHOST6 = 513,
466 <     XLINE = 514,
467 <     WARN = 515,
468 <     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
693 < #define T_L_ERROR 479
694 < #define T_L_INFO 480
695 < #define T_L_NOTICE 481
696 < #define T_L_TRACE 482
697 < #define T_L_WARN 483
698 < #define T_MAX_CLIENTS 484
699 < #define T_NCHANGE 485
700 < #define T_OPERWALL 486
701 < #define T_REJ 487
702 < #define T_SERVER 488
703 < #define T_SERVNOTICE 489
704 < #define T_SKILL 490
705 < #define T_SPY 491
706 < #define T_SSL 492
707 < #define T_UMODES 493
708 < #define T_UNAUTH 494
709 < #define T_UNRESV 495
710 < #define T_UNXLINE 496
711 < #define T_WALLOP 497
712 < #define THROTTLE_TIME 498
713 < #define TOPICBURST 499
714 < #define TRUE_NO_OPER_FLOOD 500
715 < #define TKLINE 501
716 < #define TXLINE 502
717 < #define TRESV 503
718 < #define UNKLINE 504
719 < #define USER 505
720 < #define USE_EGD 506
721 < #define USE_EXCEPT 507
722 < #define USE_INVEX 508
723 < #define USE_KNOCK 509
724 < #define USE_LOGGING 510
725 < #define USE_WHOIS_ACTUALLY 511
726 < #define VHOST 512
727 < #define VHOST6 513
728 < #define XLINE 514
729 < #define WARN 515
730 < #define WARN_NO_NLINE 516
731 <
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  */
740 < #line 135 "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  */
748 < #line 749 "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 761 "ircd_parser.c"
704 > /* Line 390 of yacc.c  */
705 > #line 706 "conf_parser.c"
706  
707   #ifdef short
708   # undef short
# Line 807 | 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 860 | 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 887 | 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 933 | 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
937 <   not overlap.  */
938 < # ifndef YYCOPY
939 < #  if defined __GNUC__ && 1 < __GNUC__
940 < #   define YYCOPY(To, From, Count) \
941 <      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
942 < #  else
943 < #   define YYCOPY(To, From, Count)              \
944 <      do                                        \
945 <        {                                       \
946 <          YYSIZE_T yyi;                         \
947 <          for (yyi = 0; yyi < (Count); yyi++)   \
948 <            (To)[yyi] = (From)[yyi];            \
949 <        }                                       \
950 <      while (YYID (0))
951 < #  endif
952 < # 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 969 | 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 1040 | 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,
1044 <     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1045 <     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1046 <     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1047 <     255,   256,   257,   258,   259,   260,   261
1002 >     215,   216,   217,   218,   219,   220,   221,   222,   223
1003   };
1004  
1005   #if YYDEBUG
# Line 1054 | 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,
1120 <    1985,  1987,  1989,  1991,  1993,  1998,  2003,  2008,  2013,  2018,
1121 <    2019,  2026,  2029,  2031,  2033,  2035,  2037,  2039,  2041,  2043,
1122 <    2045,  2050,  2055,  2056,  2062,  2066,  2068,  2070,  2072,  2077,
1123 <    2082,  2083,  2089,  2093,  2095,  2097,  2099,  2105,  2108,  2110,
1124 <    2112,  2114,  2116,  2118,  2120,  2122,  2124,  2126,  2128,  2130,
1125 <    2132,  2134,  2136,  2138,  2140,  2142,  2144,  2146,  2148,  2153,
1126 <    2158,  2163,  2168,  2173,  2178,  2183,  2188,  2193,  2198,  2203,
1127 <    2208,  2213,  2218,  2223,  2228,  2233,  2238,  2244,  2247,  2249,
1128 <    2251,  2253,  2255,  2257,  2259,  2261,  2263,  2265,  2270,  2275,
1129 <    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,
1333 <      -1,   234,    -1,   217,    -1,   242,    -1,   207,    -1,   208,
1334 <      -1,   220,    -1,   118,   265,   133,   262,    -1,   119,   265,
1335 <     133,   262,    -1,    33,   265,   133,   262,    -1,   211,   265,
1336 <     273,   262,    -1,    44,   265,   199,   262,    -1,    -1,    68,
1337 <     567,   264,   568,   263,   262,    -1,   568,   569,    -1,   569,
1338 <      -1,   570,    -1,   571,    -1,   572,    -1,   576,    -1,   577,
1339 <      -1,   578,    -1,     1,    -1,    49,   265,   199,   262,    -1,
1340 <      46,   265,   271,   262,    -1,    -1,   104,   573,   265,   574,
1341 <     262,    -1,   574,   266,   575,    -1,   575,    -1,   201,    -1,
1342 <      11,    -1,   250,   265,   155,   262,    -1,   122,   265,   155,
1343 <     262,    -1,    -1,     4,   579,   265,   580,   262,    -1,   580,
1344 <     266,   581,    -1,   581,    -1,   201,    -1,    11,    -1,    22,
1345 <     264,   583,   263,   262,    -1,   583,   584,    -1,   584,    -1,
1346 <     587,    -1,   588,    -1,   589,    -1,   590,    -1,   595,    -1,
1347 <     591,    -1,   592,    -1,   593,    -1,   594,    -1,   596,    -1,
1348 <     597,    -1,   598,    -1,   586,    -1,   599,    -1,   600,    -1,
1349 <     601,    -1,   602,    -1,   585,    -1,     1,    -1,    40,   265,
1350 <     199,   262,    -1,   165,   265,   199,   262,    -1,    42,   265,
1351 <     199,   262,    -1,   252,   265,   199,   262,    -1,   253,   265,
1352 <     199,   262,    -1,   254,   265,   199,   262,    -1,    98,   265,
1353 <     271,   262,    -1,    99,   265,   271,   262,    -1,   108,   265,
1354 <     133,   262,    -1,   156,   265,   199,   262,    -1,   107,   265,
1355 <     133,   262,    -1,    35,   265,   133,   262,    -1,    34,   265,
1356 <     133,   262,    -1,   128,   265,   199,   262,    -1,   129,   265,
1357 <     199,   262,    -1,    13,   265,   199,   262,    -1,   145,   265,
1358 <     133,   262,    -1,   146,   265,   271,   262,    -1,   182,   264,
1359 <     604,   263,   262,    -1,   604,   605,    -1,   605,    -1,   606,
1360 <      -1,   607,    -1,   609,    -1,   611,    -1,   610,    -1,   608,
1361 <      -1,   612,    -1,     1,    -1,    56,   265,   199,   262,    -1,
1362 <      83,   265,   199,   262,    -1,    80,   265,   155,   262,    -1,
1363 <     101,   265,   271,   262,    -1,    78,   265,   199,   262,    -1,
1364 <      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,   400,   400,   401,   404,   405,   406,   407,   408,   409,
1284 <     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
1285 <     420,   421,   422,   423,   424,   425,   429,   429,   430,   434,
1286 <     438,   442,   446,   450,   456,   456,   457,   458,   459,   460,
1287 <     467,   470,   470,   471,   471,   471,   473,   481,   490,   492,
1288 <     492,   493,   493,   494,   494,   495,   495,   496,   497,   497,
1289 <     498,   498,   499,   500,   504,   503,   518,   518,   519,   523,
1290 <     529,   563,   623,   637,   652,   661,   675,   684,   712,   742,
1291 <     765,   787,   789,   789,   790,   790,   791,   791,   793,   802,
1292 <     811,   824,   826,   827,   829,   829,   830,   831,   831,   832,
1293 <     832,   833,   833,   834,   834,   835,   836,   838,   842,   846,
1294 <     853,   860,   867,   874,   881,   888,   895,   902,   906,   910,
1295 <     914,   918,   922,   926,   932,   942,   941,  1035,  1035,  1036,
1296 <    1036,  1037,  1037,  1037,  1037,  1038,  1038,  1039,  1039,  1039,
1297 <    1040,  1040,  1040,  1041,  1041,  1041,  1042,  1042,  1042,  1042,
1298 <    1043,  1043,  1044,  1044,  1046,  1058,  1070,  1104,  1116,  1127,
1299 <    1169,  1179,  1178,  1184,  1184,  1185,  1189,  1193,  1197,  1201,
1300 <    1205,  1209,  1213,  1217,  1221,  1225,  1229,  1233,  1237,  1241,
1301 <    1245,  1249,  1253,  1257,  1263,  1274,  1285,  1296,  1307,  1318,
1302 <    1329,  1340,  1351,  1362,  1373,  1384,  1395,  1406,  1418,  1417,
1303 <    1421,  1421,  1422,  1422,  1423,  1423,  1425,  1432,  1439,  1446,
1304 <    1453,  1460,  1467,  1474,  1481,  1488,  1495,  1502,  1509,  1516,
1305 <    1523,  1530,  1544,  1543,  1593,  1593,  1595,  1595,  1596,  1597,
1306 <    1597,  1598,  1599,  1600,  1601,  1602,  1603,  1604,  1605,  1606,
1307 <    1607,  1608,  1610,  1619,  1628,  1634,  1640,  1646,  1652,  1658,
1308 <    1664,  1670,  1676,  1682,  1688,  1694,  1704,  1703,  1720,  1719,
1309 <    1724,  1724,  1725,  1729,  1733,  1741,  1741,  1742,  1742,  1742,
1310 <    1742,  1742,  1744,  1744,  1746,  1746,  1748,  1762,  1782,  1791,
1311 <    1804,  1803,  1872,  1872,  1873,  1873,  1873,  1873,  1874,  1874,
1312 <    1875,  1875,  1875,  1876,  1876,  1877,  1877,  1877,  1878,  1878,
1313 <    1878,  1880,  1917,  1930,  1941,  1950,  1962,  1961,  1965,  1965,
1314 <    1966,  1966,  1967,  1967,  1969,  1977,  1984,  1991,  1998,  2005,
1315 <    2012,  2019,  2026,  2033,  2042,  2053,  2064,  2075,  2086,  2097,
1316 <    2109,  2128,  2138,  2147,  2163,  2162,  2178,  2178,  2179,  2179,
1317 <    2179,  2179,  2181,  2190,  2205,  2219,  2218,  2234,  2234,  2235,
1318 <    2235,  2235,  2235,  2237,  2246,  2269,  2268,  2274,  2274,  2275,
1319 <    2279,  2283,  2287,  2291,  2295,  2299,  2303,  2307,  2311,  2315,
1320 <    2325,  2324,  2341,  2341,  2342,  2342,  2342,  2344,  2351,  2350,
1321 <    2356,  2356,  2357,  2361,  2365,  2369,  2373,  2377,  2381,  2385,
1322 <    2389,  2393,  2397,  2407,  2406,  2552,  2552,  2553,  2553,  2554,
1323 <    2554,  2554,  2555,  2555,  2556,  2556,  2557,  2557,  2557,  2558,
1324 <    2558,  2558,  2559,  2559,  2559,  2560,  2560,  2561,  2561,  2563,
1325 <    2575,  2587,  2596,  2622,  2640,  2658,  2664,  2668,  2676,  2686,
1326 <    2685,  2689,  2689,  2690,  2690,  2691,  2691,  2693,  2704,  2711,
1327 <    2718,  2725,  2735,  2776,  2787,  2798,  2813,  2824,  2835,  2848,
1328 <    2861,  2870,  2906,  2905,  2964,  2963,  2967,  2967,  2968,  2974,
1329 <    2974,  2975,  2975,  2975,  2975,  2977,  2996,  3006,  3005,  3028,
1330 <    3028,  3029,  3029,  3029,  3031,  3037,  3046,  3048,  3048,  3049,
1331 <    3049,  3051,  3070,  3069,  3112,  3111,  3115,  3115,  3116,  3122,
1332 <    3122,  3123,  3123,  3123,  3123,  3125,  3131,  3140,  3143,  3143,
1333 <    3144,  3144,  3145,  3145,  3146,  3146,  3147,  3147,  3148,  3148,
1334 <    3149,  3149,  3150,  3150,  3151,  3151,  3152,  3152,  3153,  3153,
1335 <    3154,  3154,  3155,  3155,  3156,  3156,  3157,  3157,  3158,  3158,
1336 <    3159,  3159,  3160,  3160,  3161,  3161,  3162,  3162,  3163,  3163,
1337 <    3164,  3165,  3165,  3166,  3166,  3167,  3167,  3168,  3168,  3169,
1338 <    3169,  3170,  3170,  3171,  3171,  3172,  3173,  3176,  3181,  3186,
1339 <    3191,  3196,  3201,  3206,  3211,  3216,  3221,  3226,  3231,  3236,
1340 <    3241,  3246,  3251,  3256,  3261,  3266,  3272,  3283,  3288,  3297,
1341 <    3302,  3307,  3312,  3317,  3322,  3325,  3330,  3333,  3338,  3343,
1342 <    3348,  3353,  3358,  3363,  3368,  3373,  3378,  3389,  3394,  3399,
1343 <    3404,  3413,  3445,  3463,  3468,  3477,  3482,  3487,  3493,  3492,
1344 <    3497,  3497,  3498,  3501,  3504,  3507,  3510,  3513,  3516,  3519,
1345 <    3522,  3525,  3528,  3531,  3534,  3537,  3540,  3543,  3546,  3549,
1346 <    3552,  3558,  3557,  3562,  3562,  3563,  3566,  3569,  3572,  3575,
1347 <    3578,  3581,  3584,  3587,  3590,  3593,  3596,  3599,  3602,  3605,
1435 <    3608,  3611,  3614,  3617,  3622,  3627,  3632,  3637,  3642,  3651,
1436 <    3650,  3674,  3674,  3675,  3676,  3677,  3678,  3679,  3680,  3681,
1437 <    3683,  3689,  3696,  3695,  3700,  3700,  3701,  3705,  3711,  3745,
1438 <    3755,  3754,  3804,  3804,  3805,  3809,  3818,  3821,  3821,  3822,
1439 <    3822,  3823,  3823,  3824,  3824,  3825,  3825,  3826,  3826,  3827,
1440 <    3828,  3828,  3829,  3829,  3830,  3830,  3831,  3831,  3833,  3838,
1441 <    3843,  3848,  3853,  3858,  3863,  3868,  3873,  3878,  3883,  3888,
1442 <    3893,  3898,  3903,  3908,  3913,  3918,  3926,  3929,  3929,  3930,
1443 <    3930,  3931,  3932,  3933,  3933,  3934,  3935,  3937,  3943,  3949,
1444 <    3958,  3972,  3978,  3984
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,  1133,  1140,  1139,  1145,  1145,
1300 >    1146,  1150,  1154,  1158,  1162,  1166,  1170,  1174,  1178,  1182,
1301 >    1186,  1190,  1194,  1198,  1202,  1206,  1210,  1214,  1218,  1222,
1302 >    1226,  1233,  1232,  1238,  1238,  1239,  1243,  1247,  1251,  1255,
1303 >    1259,  1263,  1267,  1271,  1275,  1279,  1283,  1287,  1291,  1295,
1304 >    1299,  1303,  1307,  1311,  1315,  1319,  1323,  1327,  1338,  1337,
1305 >    1398,  1398,  1399,  1400,  1400,  1401,  1402,  1403,  1404,  1405,
1306 >    1406,  1407,  1408,  1409,  1409,  1410,  1411,  1412,  1413,  1415,
1307 >    1421,  1427,  1433,  1439,  1445,  1451,  1457,  1463,  1469,  1476,
1308 >    1482,  1488,  1494,  1503,  1513,  1512,  1518,  1518,  1519,  1523,
1309 >    1534,  1533,  1540,  1539,  1544,  1544,  1545,  1549,  1553,  1559,
1310 >    1559,  1560,  1560,  1560,  1560,  1560,  1562,  1562,  1564,  1564,
1311 >    1566,  1580,  1600,  1606,  1616,  1615,  1657,  1657,  1658,  1658,
1312 >    1658,  1658,  1659,  1659,  1659,  1660,  1660,  1662,  1668,  1674,
1313 >    1680,  1692,  1691,  1697,  1697,  1698,  1702,  1706,  1710,  1714,
1314 >    1718,  1722,  1726,  1730,  1734,  1740,  1754,  1763,  1777,  1776,
1315 >    1791,  1791,  1792,  1792,  1792,  1792,  1794,  1800,  1806,  1816,
1316 >    1818,  1818,  1819,  1819,  1821,  1837,  1836,  1861,  1861,  1862,
1317 >    1862,  1862,  1862,  1864,  1870,  1890,  1889,  1895,  1895,  1896,
1318 >    1900,  1904,  1908,  1912,  1916,  1920,  1924,  1928,  1932,  1942,
1319 >    1941,  1962,  1962,  1963,  1963,  1963,  1965,  1972,  1971,  1977,
1320 >    1977,  1978,  1982,  1986,  1990,  1994,  1998,  2002,  2006,  2010,
1321 >    2014,  2024,  2023,  2093,  2093,  2094,  2094,  2094,  2095,  2095,
1322 >    2095,  2096,  2096,  2096,  2097,  2097,  2097,  2098,  2098,  2099,
1323 >    2101,  2107,  2113,  2119,  2132,  2145,  2151,  2157,  2161,  2170,
1324 >    2169,  2174,  2174,  2175,  2179,  2185,  2196,  2202,  2208,  2214,
1325 >    2230,  2229,  2255,  2255,  2256,  2256,  2256,  2258,  2278,  2288,
1326 >    2287,  2314,  2314,  2315,  2315,  2315,  2317,  2323,  2332,  2334,
1327 >    2334,  2335,  2335,  2337,  2355,  2354,  2377,  2377,  2378,  2378,
1328 >    2378,  2380,  2386,  2395,  2398,  2398,  2399,  2399,  2400,  2400,
1329 >    2401,  2401,  2402,  2402,  2403,  2403,  2404,  2405,  2406,  2406,
1330 >    2407,  2407,  2408,  2408,  2409,  2409,  2410,  2410,  2411,  2411,
1331 >    2412,  2412,  2413,  2413,  2414,  2414,  2415,  2415,  2416,  2416,
1332 >    2417,  2417,  2418,  2419,  2420,  2420,  2421,  2421,  2422,  2423,
1333 >    2424,  2425,  2425,  2426,  2429,  2434,  2440,  2446,  2452,  2457,
1334 >    2462,  2467,  2472,  2477,  2482,  2487,  2492,  2497,  2502,  2507,
1335 >    2512,  2517,  2523,  2534,  2539,  2544,  2549,  2554,  2559,  2562,
1336 >    2567,  2570,  2575,  2580,  2585,  2590,  2595,  2600,  2605,  2610,
1337 >    2615,  2620,  2625,  2630,  2639,  2648,  2653,  2658,  2664,  2663,
1338 >    2668,  2668,  2669,  2672,  2675,  2678,  2681,  2684,  2687,  2690,
1339 >    2693,  2696,  2699,  2702,  2705,  2708,  2711,  2714,  2717,  2720,
1340 >    2723,  2726,  2729,  2735,  2734,  2739,  2739,  2740,  2743,  2746,
1341 >    2749,  2752,  2755,  2758,  2761,  2764,  2767,  2770,  2773,  2776,
1342 >    2779,  2782,  2785,  2788,  2791,  2794,  2797,  2800,  2805,  2810,
1343 >    2815,  2824,  2827,  2827,  2828,  2829,  2829,  2830,  2830,  2831,
1344 >    2832,  2833,  2834,  2835,  2835,  2836,  2836,  2838,  2843,  2848,
1345 >    2853,  2858,  2863,  2868,  2873,  2878,  2883,  2888,  2893,  2901,
1346 >    2904,  2904,  2905,  2905,  2906,  2907,  2908,  2909,  2909,  2910,
1347 >    2911,  2913,  2919,  2925,  2931,  2937,  2946,  2960,  2966
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",
1502 <  "T_L_NOTICE", "T_L_TRACE", "T_L_WARN", "T_MAX_CLIENTS", "T_NCHANGE",
1503 <  "T_OPERWALL", "T_REJ", "T_SERVER", "T_SERVNOTICE", "T_SKILL", "T_SPY",
1504 <  "T_SSL", "T_UMODES", "T_UNAUTH", "T_UNRESV", "T_UNXLINE", "T_WALLOP",
1505 <  "THROTTLE_TIME", "TOPICBURST", "TRUE_NO_OPER_FLOOD", "TKLINE", "TXLINE",
1506 <  "TRESV", "UNKLINE", "USER", "USE_EGD", "USE_EXCEPT", "USE_INVEX",
1507 <  "USE_KNOCK", "USE_LOGGING", "USE_WHOIS_ACTUALLY", "VHOST", "VHOST6",
1508 <  "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",
1534 <  "class_name_t", "class_ping_time", "class_ping_warning",
1535 <  "class_number_per_ip", "class_connectfreq", "class_max_number",
1536 <  "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",
1554 <  "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",
1564 <  "kill_user", "kill_reason", "deny_entry", "$@26", "deny_items",
1565 <  "deny_item", "deny_ip", "deny_reason", "exempt_entry", "exempt_items",
1566 <  "exempt_item", "exempt_ip", "gecos_entry", "$@27", "gecos_flags", "$@28",
1567 <  "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",
1588 <  "general_dots_in_ident", "general_max_targets", "general_servlink_path",
1589 <  "general_default_cipher_preference", "general_compression_level",
1590 <  "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",
1599 <  "$@33", "gdeny_types", "gdeny_type_item", "channel_entry",
1600 <  "channel_items", "channel_item", "channel_disable_fake_channels",
1601 <  "channel_restrict_channels", "channel_disable_local_channels",
1602 <  "channel_use_except", "channel_use_invex", "channel_use_knock",
1603 <  "channel_knock_delay", "channel_knock_delay_channel",
1604 <  "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 1639 | 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,
1643 <     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1644 <     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
1645 <     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
1646 <     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,
1718 <     560,   560,   560,   560,   561,   562,   563,   564,   565,   567,
1719 <     566,   568,   568,   569,   569,   569,   569,   569,   569,   569,
1720 <     570,   571,   573,   572,   574,   574,   575,   575,   576,   577,
1721 <     579,   578,   580,   580,   581,   581,   582,   583,   583,   584,
1722 <     584,   584,   584,   584,   584,   584,   584,   584,   584,   584,
1723 <     584,   584,   584,   584,   584,   584,   584,   584,   585,   586,
1724 <     587,   588,   589,   590,   591,   592,   593,   594,   595,   596,
1725 <     597,   598,   599,   600,   601,   602,   603,   604,   604,   605,
1726 <     605,   605,   605,   605,   605,   605,   605,   606,   607,   608,
1727 <     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 1732 | 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,
1738 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1739 <       1,     1,     1,     2,     0,     5,     3,     1,     1,     1,
1740 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1741 <       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,
1743       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
1744       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1745       4,     4,     4,     4,     4,     0,     7,     0,     1,     2,
1746       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,
1758 <       4,     4,     4,     4,     4,     4,     0,     6,     0,     5,
1759 <       3,     1,     1,     1,     1,     2,     1,     1,     1,     1,
1760 <       1,     2,     0,     5,     3,     1,     1,     3,     4,     4,
1761 <       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,
1763       2,     4,     4,     4,     4,     4,     0,     5,     3,     1,
1764       0,     3,     0,     2,     1,     1,     1,     1,     1,     1,
1765       1,     1,     1,     1,     4,     4,     4,     4,     4,     4,
1766       4,     4,     4,     4,     0,     6,     2,     1,     1,     1,
1767       1,     2,     4,     4,     4,     0,     6,     2,     1,     1,
1768       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,
1771 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1772 <       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,
1789 <       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,
1797 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1798 <       1,     1,     1,     1,     4,     4,     4,     4,     4,     0,
1799 <       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1800 <       4,     4,     0,     5,     3,     1,     1,     1,     4,     4,
1801 <       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,
1805 <       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,
1820 <     395,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1821 <       0,   127,     0,     0,     0,     0,     0,     0,     0,     0,
1822 <       0,     0,    83,    84,    86,    85,   707,     0,     0,     0,
1823 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1824 <       0,     0,     0,     0,     0,     0,   688,   706,   701,   689,
1825 <     690,   691,   692,   694,   695,   696,   697,   693,   698,   699,
1826 <     700,   702,   703,   704,   705,   243,     0,   225,   420,     0,
1827 <     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,
1833       0,     0,     0,     0,     0,     0,   499,   555,   550,   551,
1834     548,   552,   553,   549,   510,   500,   501,   539,   502,   503,
1835     504,   505,   506,   507,   508,   509,   544,   511,   512,   513,
1836     514,   554,   516,   521,   517,   519,   518,   533,   534,   520,
1837     522,   523,   524,   525,   527,   526,   515,   529,   538,   540,
1838     541,   530,   531,   546,   547,   543,   532,   528,   536,   537,
1839     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,
1842 <     104,   102,    96,    97,     0,     0,     0,     0,    42,    43,
1843 <      44,   155,     0,   128,     0,   736,     0,     0,     0,     0,
1844 <       0,     0,     0,     0,   728,   729,   730,   734,   731,   733,
1845 <     732,   735,     0,     0,     0,     0,     0,     0,     0,     0,
1846 <      64,     0,     0,     0,     0,     0,    50,    62,    61,    58,
1847 <      51,    60,    54,    55,    56,    52,    59,    57,    53,     0,
1848 <       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,
1858       0,     0,     0,     0,     0,   498,   669,   680,     0,     0,
1859     672,     0,     0,     0,   662,   663,   664,   665,   666,   667,
1860     668,     0,     0,     0,     0,     0,   306,     0,     0,     0,
1861       0,     0,     0,     0,     0,     0,     0,     0,     0,   283,
1862     284,   285,   294,   286,   299,   287,   288,   289,   290,   297,
1863     291,   292,   293,   295,   296,   298,   464,     0,   454,     0,
1864     463,     0,   460,   461,   462,     0,   258,     0,     0,     0,
1865     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,
1881 <     415,   412,   414,   413,   411,   417,   408,   409,   410,   416,
1882 <       0,     0,     0,   469,     0,   476,     0,     0,     0,     0,
1883 <     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,
1888       0,     0,     0,    34,     0,     0,     0,     0,     0,     0,
1889     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,
1949 <     248,   242,   255,   246,   244,   245,   252,   424,   426,   427,
1950 <     446,   451,   450,   445,   444,   443,   428,   433,     0,   432,
1951 <       0,   421,   448,   449,   419,   425,   442,   423,   447,   422,
1952 <     485,     0,   633,   610,   681,     0,   673,     0,     0,   307,
1953 <     312,   318,   319,   315,   321,   317,   316,   323,   320,   322,
1954 <     314,   313,   455,     0,   259,     0,   277,   274,   273,   194,
1955 <     160,   192,   158,   202,     0,   201,     0,   190,   184,   195,
1956 <     196,   187,   154,   191,   157,   193,   185,   186,   159,   197,
1957 <     165,   181,   182,   166,   167,   168,   169,   176,   170,   179,
1958 <     183,   172,   177,   173,   178,   171,   175,   174,   180,     0,
1959 <     164,   189,   156,   188,    66,   356,     0,   379,     0,     0,
1960 <     430,   435,   439,   440,   437,   438,   441,   436,   486,   682,
1961 <     674,   311,   308,   456,   260,     0,   199,   204,   214,   212,
1962 <     221,   211,   206,   215,   219,   208,   216,   218,   213,   207,
1963 <     220,   217,   209,   210,   205,   162,     0,   357,   380,   434,
1964 <     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,
1999 <     237,   411,  1013,  1014,   238,   239,   240,   241,   242,    42,
2000 <      55,   443,   444,   445,   446,   447,   744,  1239,  1240,   448,
2001 <     449,   450,   741,  1233,  1234,    43,    95,    96,    97,    98,
2002 <      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
2003 <     109,   110,   111,   112,   113,   114,    44,   293,   294,   295,
2004 <     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,
2139 <     -10,  -952,  -952,  -952,  1170,   772,  1093,  1094,  1095,  1096,
2140 <    1097,  1153,  1098,  1099,  1101,  1103,  1107,  1109,  1110,  1111,
2141 <    1112,  1113,  1114,  1115,  1116,   908,  1117,  1118,  1119,  -952,
2142 <    -952,  -952,  -952,  -952,   -15,  -952,  -952,  -952,  -952,  -952,
2143 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,    -8,  -952,  -952,
2144 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2145 <    -952,  -952,    35,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2146 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2147 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,    80,  -952,
2148 <      13,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2149 <    -952,  1070,  -952,  -952,  -952,     1,  -952,    11,   447,  -952,
2150 <    1106,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2151 <    -952,  -952,  -952,  1079,  -952,     0,  -952,  -952,  -952,  -952,
2152 <    -952,  -952,  -952,  -952,    89,  -952,   366,  -952,  -952,  -952,
2153 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2154 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2155 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,    95,
2156 <    -952,  -952,  -952,  -952,  -952,  -952,   534,  -952,   621,    13,
2157 <    -952,  1152,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2158 <    -952,  -952,  -952,  -952,  -952,   366,  -952,  1153,  -952,  -952,
2159 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2160 <    -952,  -952,  -952,  -952,  -952,  -952,   908,  -952,  -952,  -952,
2161 <    -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,
2196 <    -952,  -952,  -952,   115,  -952,  -952,  -952,  -952,  -952,  -952,
2197 <    -952,  -952,   945,  -952,  -952,  -952,  -952,  -952,   -36,  -952,
2198 <    -952,  -952,  -952,  -952,   -32,  -952,  -952,  1249,  -952,  -952,
2199 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2200 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  1120,  -952,
2201 <    -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
2209 < 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,
2331 <    1191,  1171,  1173,  1176,  1175,  1196,  1195,  1199,  1200,  1201,
2332 <    1202,  1203,  1204,  1205,  1206,  1207,  1208,  1209,  1211,  1210,
2333 <    1212,  1216,  1214,  1213,  1215,  1217,  1218,  1219,  1220,  1235,
2334 <    1221,  1236,  1241,  1242,  1243,  1244,  1245,  1246,  1247,  1263,
2335 <    1277,  1251,  1252,  1253,  1254,  1255,  1256,  1257,  1258,  1259,
2336 <    1260,  1261,  1262,  1266,  1272,  1278,  1273,  1287,  1279,  1289,
2337 <    1293,  1275,  1281,  1297,  1299,  1295,  1300,  1301,  1302,  1305,
2338 <    1280,  1282,  1283,  1284,  1285,  1286,  1288,  1290,  1319,  1291,
2339 <    1292,  1294,  1296,  1298,  1357,  1403,  1320,  1334,  1335,  1336,
2340 <    1337,  1338,  1339,  1340,  1341,  1342,  1343,  1344,  1345,  1346,
2341 <    1347,  1348,  1349,  1396,  1350,   336,  1351,  1352,  1353,  1444,
2342 <    1493,  1354,  1492,  1355,  1356,  1464,  1143,  1361,  1491,  1362,
2343 <     779,   767,   930,  1397,  1462,  1461,   881,  1487,  1488,   886,
2344 <    1463,   952,   772,   854,  1489,  1490,   368,  1458,  1373,   435,
2345 <    1372,  1460,   680,  1459,   356,     0,     0,     0,  1363,  1364,
2346 <    1365,  1366,  1367,  1368,  1369,  1398,  1399,  1400,  1401,  1402,
2347 <    1407,  1408,     0,  1409,     0,  1410,     0,     0,     0,  1411,
2348 <       0,  1412,  1413,  1414,  1415,  1416,  1417,  1418,  1419,  1441,
2349 <    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,
2475 <     133,   133,   262,   262,   262,   262,   262,   262,   262,   133,
2476 <     262,   262,   262,   262,   262,   262,   133,   262,   155,   133,
2477 <     133,   265,   262,   262,   265,   155,   262,   199,   155,   155,
2478 <     199,   199,   199,   155,   265,   155,   155,   155,   133,   155,
2479 <     155,   262,   199,   155,   155,   262,   262,   262,   262,   262,
2480 <     160,   262,   262,   262,   262,   262,   262,   262,   132,   160,
2481 <     199,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2482 <     262,   262,   262,   262,   262,   155,   262,   155,   199,   155,
2483 <     155,   266,   265,   155,   262,   265,   262,   262,   262,   262,
2484 <     199,   199,   199,   199,   199,   199,   199,   199,   262,   199,
2485 <     199,   199,   199,   199,   132,   132,   262,   262,   262,   262,
2486 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2487 <     262,   262,   262,   133,   262,    71,   262,   262,   262,  1304,
2488 <    1486,   262,  1467,   262,   262,  1395,   825,   262,  1465,   262,
2489 <     501,   468,   614,  1275,  1380,  1378,   564,  1446,  1448,   572,
2490 <    1393,   649,   491,   531,  1449,  1451,   124,  1371,  1227,   185,
2491 <    1225,  1377,   374,  1375,    95,    -1,    -1,    -1,   262,   262,
2492 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2493 <     262,   262,    -1,   262,    -1,   262,    -1,    -1,    -1,   262,
2494 <      -1,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2495 <     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,
2632 <     378,   379,   262,   262,   204,   266,   383,   199,   155,   199,
2633 <     199,   265,   199,   199,   199,   199,   199,   155,   199,   155,
2634 <     199,   199,   199,   155,   199,   265,   199,   155,   199,   262,
2635 <     262,   262,   262,   262,   266,   262,    94,   173,   205,   220,
2636 <     240,   241,   246,   247,   248,   249,   259,   429,   430,   262,
2637 <     262,    94,   173,   205,   220,   240,   241,   246,   247,   248,
2638 <     249,   259,   438,   439,   262,   262,   262,   262,   262,   262,
2639 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2640 <     262,   262,   262,   262,   262,   262,   262,   132,   456,   457,
2641 <     459,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2642 <     262,   266,   560,   556,   262,   266,   262,   266,   401,   262,
2643 <     266,    20,    21,    51,    69,    76,    95,   123,   131,   174,
2644 <     193,   403,   262,   266,   262,   266,   133,   385,   262,   262,
2645 <     262,   262,   262,   132,   350,   351,   353,   262,   262,   262,
2646 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2647 <     206,   207,   208,   209,   210,   212,   213,   215,   216,   217,
2648 <     220,   230,   231,   232,   234,   235,   236,   239,   242,   332,
2649 <     333,   262,   262,   262,   285,   262,   266,   262,   266,   458,
2650 <     262,   266,    10,    12,    27,    31,   244,   460,   496,   581,
2651 <     575,   403,   400,   476,   379,   352,   262,   266,     5,    38,
2652 <      50,    67,    74,    79,    81,    94,   127,   143,   161,   163,
2653 <     164,   231,   249,   259,   354,   262,   266,   430,   439,   460,
2654 <     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 2666 | 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].
2698 <   If N is 0, then set CURRENT to the empty location which ends
2699 <   the previous symbol: RHS[0] (always defined).  */
2700 <
2701 < #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2702 < #ifndef YYLLOC_DEFAULT
2703 < # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2704 <    do                                                                  \
2705 <      if (YYID (N))                                                    \
2706 <        {                                                               \
2707 <          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2708 <          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2709 <          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2710 <          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2711 <        }                                                               \
2712 <      else                                                              \
2713 <        {                                                               \
2714 <          (Current).first_line   = (Current).last_line   =              \
2715 <            YYRHSLOC (Rhs, 0).last_line;                                \
2716 <          (Current).first_column = (Current).last_column =              \
2717 <            YYRHSLOC (Rhs, 0).last_column;                              \
2718 <        }                                                               \
2719 <    while (YYID (0))
2720 < #endif
2721 <
2722 <
2723 < /* YY_LOCATION_PRINT -- Print the location on the stream.
2724 <   This macro was not mandated originally: define only if we know
2725 <   we won't break user code: when these are the locations we know.  */
2726 <
2451 > /* This macro is provided for backward compatibility. */
2452   #ifndef YY_LOCATION_PRINT
2453 < # if YYLTYPE_IS_TRIVIAL
2729 < #  define YY_LOCATION_PRINT(File, Loc)                  \
2730 <     fprintf (File, "%d.%d-%d.%d",                      \
2731 <              (Loc).first_line, (Loc).first_column,     \
2732 <              (Loc).last_line,  (Loc).last_column)
2733 < # else
2734 < #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2735 < # endif
2453 > # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2454   #endif
2455  
2456  
2457   /* YYLEX -- calling `yylex' with the right arguments.  */
2740
2458   #ifdef YYLEX_PARAM
2459   # define YYLEX yylex (YYLEX_PARAM)
2460   #else
# Line 2787 | 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 2795 | Line 2514 | yy_symbol_value_print (yyoutput, yytype,
2514   # else
2515    YYUSE (yyoutput);
2516   # endif
2517 <  switch (yytype)
2799 <    {
2800 <      default:
2801 <        break;
2802 <    }
2517 >  YYUSE (yytype);
2518   }
2519  
2520  
# Line 2924 | Line 2639 | int yydebug;
2639   # define YYMAXDEPTH 10000
2640   #endif
2641  
2927
2642  
2643   #if YYERROR_VERBOSE
2644  
# Line 3027 | 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))
3043 <    return 0;
3044 <  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.  */
3058 <      YY_("syntax error, unexpected %s");
3059 <      YY_("syntax error, unexpected %s, expecting %s");
3060 <      YY_("syntax error, unexpected %s, expecting %s or %s");
3061 <      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
3062 <      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
3063 < # endif
3064 <      char *yyfmt;
3065 <      char const *yyf;
3066 <      static char const yyunexpected[] = "syntax error, unexpected %s";
3067 <      static char const yyexpecting[] = ", expecting %s";
3068 <      static char const yyor[] = " or %s";
3069 <      char yyformat[sizeof yyunexpected
3070 <                    + sizeof yyexpecting - 1
3071 <                    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
3072 <                       * (sizeof yyor - 1))];
3073 <      char const *yyprefix = yyexpecting;
3074 <
3075 <      /* Start YYX at -YYN if negative to avoid negative indexes in
3076 <         YYCHECK.  */
3077 <      int yyxbegin = yyn < 0 ? -yyn : 0;
3078 <
3079 <      /* Stay within bounds of both yycheck and yytname.  */
3080 <      int yychecklim = YYLAST - yyn + 1;
3081 <      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3082 <      int yycount = 1;
3083 <
3084 <      yyarg[0] = yytname[yytype];
3085 <      yyfmt = yystpcpy (yyformat, yyunexpected);
3086 <
3087 <      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3088 <        if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
3089 <          {
3090 <            if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3091 <              {
3092 <                yycount = 1;
3093 <                yysize = yysize0;
3094 <                yyformat[sizeof yyunexpected - 1] = '\0';
3095 <                break;
3096 <              }
3097 <            yyarg[yycount++] = yytname[yyx];
3098 <            yysize1 = yysize + yytnamerr (0, yytname[yyx]);
3099 <            yysize_overflow |= (yysize1 < yysize);
3100 <            yysize = yysize1;
3101 <            yyfmt = yystpcpy (yyfmt, yyprefix);
3102 <            yyprefix = yyor;
3103 <          }
3104 <
3105 <      yyf = YY_(yyformat);
3106 <      yysize1 = yysize + yystrlen (yyf);
3107 <      yysize_overflow |= (yysize1 < yysize);
3108 <      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;
3120 <          while ((*yyp = *yyf) != '\0')
3121 <            {
3122 <              if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
3123 <                {
3124 <                  yyp += yytnamerr (yyp, yyarg[yyi++]);
3125 <                  yyf += 2;
3126 <                }
3127 <              else
3128 <                {
3129 <                  yyp++;
3130 <                  yyf++;
3131 <                }
3132 <            }
3133 <        }
3134 <      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 */
3138
2883  
2884   /*-----------------------------------------------.
2885   | Release the memory associated to this symbol.  |
# Line 3160 | Line 2904 | yydestruct (yymsg, yytype, yyvaluep)
2904      yymsg = "Deleting";
2905    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2906  
2907 <  switch (yytype)
3164 <    {
3165 <
3166 <      default:
3167 <        break;
3168 <    }
2907 >  YYUSE (yytype);
2908   }
2909  
2910 < /* Prevent warnings from -Wmissing-prototypes.  */
3172 < #ifdef YYPARSE_PARAM
3173 < #if defined __STDC__ || defined __cplusplus
3174 < int yyparse (void *YYPARSE_PARAM);
3175 < #else
3176 < int yyparse ();
3177 < #endif
3178 < #else /* ! YYPARSE_PARAM */
3179 < #if defined __STDC__ || defined __cplusplus
3180 < int yyparse (void);
3181 < #else
3182 < int yyparse ();
3183 < #endif
3184 < #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.  |
3200 < `-------------------------*/
2932 > /*----------.
2933 > | yyparse.  |
2934 > `----------*/
2935  
2936   #ifdef YYPARSE_PARAM
2937   #if (defined __STDC__ || defined __C99__FUNC__ \
# Line 3221 | Line 2955 | yyparse ()
2955   #endif
2956   #endif
2957   {
3224
3225
2958      int yystate;
2959      /* Number of tokens to shift before error messages enabled.  */
2960      int yyerrstatus;
# Line 3231 | 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 3249 | 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 3267 | Line 2999 | yyparse ()
2999       Keep to zero when no symbol should be popped.  */
3000    int yylen = 0;
3001  
3002 <  yytoken = 0;
3003 <  yyss = yyssa;
3272 <  yyvs = yyvsa;
3002 >  yyssp = yyss = yyssa;
3003 >  yyvsp = yyvs = yyvsa;
3004    yystacksize = YYINITDEPTH;
3005  
3006    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 3278 | Line 3009 | yyparse ()
3009    yyerrstatus = 0;
3010    yynerrs = 0;
3011    yychar = YYEMPTY; /* Cause a token to be read.  */
3281
3282  /* Initialize stack pointers.
3283     Waste one element of value and location stack
3284     so that they stay on the same level as the state stack.
3285     The wasted elements are never initialized.  */
3286  yyssp = yyss;
3287  yyvsp = yyvs;
3288
3012    goto yysetstate;
3013  
3014   /*------------------------------------------------------------.
# Line 3377 | 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 3408 | 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 3426 | 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 3462 | Line 3187 | yyreduce:
3187    YY_REDUCE_PRINT (yyn);
3188    switch (yyn)
3189      {
3190 <        case 26:
3191 <
3192 < /* Line 1455 of yacc.c  */
3468 < #line 429 "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  */
3475 < #line 431 "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  */
3484 < #line 435 "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  */
3493 < #line 439 "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  */
3502 < #line 443 "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  */
3511 < #line 447 "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  */
3520 < #line 451 "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 456 "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 457 "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 458 "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 459 "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  */
3557 < #line 460 "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  */
3564 < #line 474 "ircd_parser.y"
3290 >  case 49:
3291 > /* Line 1787 of yacc.c  */
3292 > #line 450 "conf_parser.y"
3293      {
3566 #ifndef STATIC_MODULES /* NOOP in the static case */
3294    if (conf_parser_ctx.pass == 2)
3295      add_conf_module(libio_basename(yylval.string));
3569 #endif
3296   }
3297      break;
3298  
3299 <  case 47:
3300 <
3301 < /* Line 1455 of yacc.c  */
3576 < #line 482 "ircd_parser.y"
3299 >  case 50:
3300 > /* Line 1787 of yacc.c  */
3301 > #line 456 "conf_parser.y"
3302      {
3578 #ifndef STATIC_MODULES
3303    if (conf_parser_ctx.pass == 2)
3304      mod_add_path(yylval.string);
3581 #endif
3305   }
3306      break;
3307  
3308 <  case 64:
3309 <
3310 < /* Line 1455 of yacc.c  */
3588 < #line 504 "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  */
3598 < #line 508 "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);
3604 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_TLSV1))
3605 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3606 <  }
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  */
3613 < #line 520 "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  */
3623 < #line 524 "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  */
3633 < #line 530 "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 3665 | Line 3394 | yyreduce:
3394   }
3395      break;
3396  
3397 <  case 71:
3398 <
3399 < /* Line 1455 of yacc.c  */
3671 < #line 564 "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)
3685 <    {
3686 <      MyFree(ServerInfo.rsa_private_key_file);
3687 <      ServerInfo.rsa_private_key_file = NULL;
3688 <    }
3419 >  ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3420  
3421 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3421 >  if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3422 >  {
3423 >    conf_error_report("File open failed, ignoring");
3424 >    break;
3425 >  }
3426  
3427 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3428 <    {
3429 <      yyerror("File open failed, ignoring");
3430 <      break;
3431 <    }
3427 >  ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3428 >
3429 >  BIO_set_close(file, BIO_CLOSE);
3430 >  BIO_free(file);
3431 >
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 >    conf_error_report("Invalid key, ignoring");
3444 >    break;
3445 >  }
3446  
3447 <    ServerInfo.rsa_private_key = (RSA *)PEM_read_bio_RSAPrivateKey(file, NULL,
3448 <      0, NULL);
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 <    BIO_set_close(file, BIO_CLOSE);
3454 <    BIO_free(file);
3453 >    conf_error_report("Not a 2048 bit key, ignoring");
3454 >  }
3455 > #endif
3456 > }
3457 >    break;
3458  
3459 <    if (ServerInfo.rsa_private_key == NULL)
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);
3713 <      ServerInfo.rsa_private_key = NULL;
3471 >      DH *dh = PEM_read_bio_DHparams(file, NULL, NULL, NULL);
3472  
3473 <      yyerror("Invalid key, ignoring");
3716 <      break;
3717 <    }
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 624 "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)
3744 <        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  */
3753 < #line 638 "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  */
3772 < #line 653 "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  */
3785 < #line 662 "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 3792 | 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  */
3803 < #line 676 "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)
3806 <  {
3807 <    MyFree(ServerInfo.network_desc);
3808 <    DupString(ServerInfo.network_desc, yylval.string);
3809 <  }
3810 < }
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 685 "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 3825 | 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 3834 | 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 3842 | Line 3606 | yyreduce:
3606   }
3607      break;
3608  
3609 <  case 78:
3610 <
3611 < /* Line 1455 of yacc.c  */
3848 < #line 713 "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 3858 | 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 3867 | 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 3876 | Line 3639 | yyreduce:
3639   }
3640      break;
3641  
3642 <  case 79:
3643 <
3644 < /* Line 1455 of yacc.c  */
3882 < #line 743 "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);
3899 <    }
3900 <    else
3901 <      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  */
3909 < #line 766 "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 <    }
3919 <    else if (ServerInfo.hub)
3920 <    {
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  */
3932 < #line 794 "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  */
3945 < #line 803 "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 <  {
3949 <    MyFree(AdminInfo.email);
3950 <    DupString(AdminInfo.email, yylval.string);
3951 <  }
3725 >    ServerInfo.hub = yylval.number;
3726   }
3727      break;
3728  
3729 <  case 90:
3730 <
3731 < /* Line 1455 of yacc.c  */
3958 < #line 812 "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)
3961 <  {
3962 <    MyFree(AdminInfo.description);
3963 <    DupString(AdminInfo.description, yylval.string);
3964 <  }
3965 < }
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 839 "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 843 "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 847 "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,
3991 <            sizeof(ConfigLoggingEntry.userlog));
3770 >    reset_block_state();
3771   }
3772      break;
3773  
3774 <  case 110:
3775 <
3776 < /* Line 1455 of yacc.c  */
3998 < #line 854 "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));
4003 < }
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 861 "ircd_parser.y"
4010 <    {
4011 <  if (conf_parser_ctx.pass == 2)
4012 <    strlcpy(ConfigLoggingEntry.operlog, yylval.string,
4013 <            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  */
4020 < #line 868 "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,
4024 <            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  */
4031 < #line 875 "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,
4035 <            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  */
4042 < #line 882 "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,
4046 <            sizeof(ConfigLoggingEntry.klinelog));
3814 >    ConfigLoggingEntry.use_logging = yylval.number;
3815   }
3816      break;
3817  
3818 <  case 115:
3819 <
3820 < /* Line 1455 of yacc.c  */
4053 < #line 889 "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,
4057 <            sizeof(ConfigLoggingEntry.ioerrlog));
3823 >    reset_block_state();
3824   }
3825      break;
3826  
3827 <  case 116:
3828 <
3829 < /* Line 1455 of yacc.c  */
4064 < #line 896 "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  */
4075 < #line 903 "ircd_parser.y"
4076 <    {
4077 <  if (conf_parser_ctx.pass == 2)
4078 <    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  */
4085 < #line 907 "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)
4088 <    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  */
4095 < #line 911 "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)
4098 <    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  */
4105 < #line 915 "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  */
4115 < #line 919 "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  */
4125 < #line 923 "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  */
4135 < #line 927 "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  */
4145 < #line 933 "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  */
4155 < #line 942 "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 <  {
4159 <    yy_conf = make_conf_item(OPER_TYPE);
4160 <    yy_aconf = map_to_conf(yy_conf);
4161 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
4162 <  }
4163 <  else
4164 <  {
4165 <    MyFree(class_name);
4166 <    class_name = NULL;
4167 <  }
3917 >    block_state.type.value = LOG_TYPE_KLINE;
3918   }
3919      break;
3920  
3921 <  case 126:
3922 <
3923 < /* Line 1455 of yacc.c  */
4174 < #line 955 "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;
4180 <    dlink_node *next_ptr;
4181 <
4182 <    conf_add_class_to_conf(yy_conf, class_name);
4183 <
4184 <    /* Now, make sure there is a copy of the "base" given oper
4185 <     * block in each of the collected copies
4186 <     */
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;
4192 <      yy_tmp = ptr->data;
4193 <
4194 <      new_conf = make_conf_item(OPER_TYPE);
4195 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
4196 <
4197 <      new_aconf->flags = yy_aconf->flags;
4198 <
4199 <      if (yy_conf->name != NULL)
4200 <        DupString(new_conf->name, yy_conf->name);
4201 <      if (yy_tmp->user != NULL)
4202 <        DupString(new_aconf->user, yy_tmp->user);
4203 <      else
4204 <        DupString(new_aconf->user, "*");
4205 <      if (yy_tmp->host != NULL)
4206 <        DupString(new_aconf->host, yy_tmp->host);
4207 <      else
4208 <        DupString(new_aconf->host, "*");
4209 <      conf_add_class_to_conf(new_conf, class_name);
4210 <      if (yy_aconf->passwd != NULL)
4211 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4212 <
4213 <      new_aconf->port = yy_aconf->port;
4214 < #ifdef HAVE_LIBCRYPTO
4215 <      if (yy_aconf->rsa_public_key_file != NULL)
4216 <      {
4217 <        BIO *file;
4218 <
4219 <        DupString(new_aconf->rsa_public_key_file,
4220 <                  yy_aconf->rsa_public_key_file);
4221 <
4222 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
4223 <        new_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file,
4224 <                                                           NULL, 0, NULL);
4225 <        BIO_set_close(file, BIO_CLOSE);
4226 <        BIO_free(file);
4227 <      }
4228 < #endif
4229 <
4230 < #ifdef HAVE_LIBCRYPTO
4231 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
4232 <          && yy_tmp->host)
4233 < #else
4234 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
4235 < #endif
4236 <      {
4237 <        conf_add_class_to_conf(new_conf, class_name);
4238 <        if (yy_tmp->name != NULL)
4239 <          DupString(new_conf->name, yy_tmp->name);
4240 <      }
4241 <
4242 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4243 <      free_collect_item(yy_tmp);
4244 <    }
4245 <
4246 <    yy_conf = NULL;
4247 <    yy_aconf = NULL;
4248 <
4249 <
4250 <    MyFree(class_name);
4251 <    class_name = NULL;
4252 <  }
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  */
4259 < #line 1047 "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 <  {
4263 <    if (strlen(yylval.string) > OPERNICKLEN)
4264 <      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);
4268 <  }
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  */
4275 < #line 1059 "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)
4278 <  {
4279 <    if (strlen(yylval.string) > OPERNICKLEN)
4280 <      yylval.string[OPERNICKLEN] = '\0';
3955 >  dlink_node *ptr = NULL;
3956  
3957 <    MyFree(yy_conf->name);
4283 <    DupString(yy_conf->name, yylval.string);
4284 <  }
4285 < }
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  */
4291 < #line 1071 "ircd_parser.y"
4292 <    {
4293 <  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;
4301 <
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);
4305 <
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);
3996 <
3997 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
3998 <    }
3999 <  }
4323 < }
4324 <    break;
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 <  case 157:
4001 >    conf_add_class_to_conf(conf, block_state.class.buf);
4002  
4003 < /* Line 1455 of yacc.c  */
4004 < #line 1105 "ircd_parser.y"
4003 > #ifdef HAVE_LIBCRYPTO
4004 >    if (block_state.file.buf[0])
4005      {
4006 <  if (conf_parser_ctx.pass == 2)
4007 <  {
4333 <    if (yy_aconf->passwd != NULL)
4334 <      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 1117 "ircd_parser.y"
4020 <    {
4021 <  if (conf_parser_ctx.pass == 2)
4022 <  {
4349 <    if (yylval.number)
4350 <      SetConfEncrypted(yy_aconf);
4351 <    else
4352 <      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  */
4360 < #line 1128 "ircd_parser.y"
4028 > /* Line 1787 of yacc.c  */
4029 > #line 1093 "conf_parser.y"
4030      {
4362 #ifdef HAVE_LIBCRYPTO
4031    if (conf_parser_ctx.pass == 2)
4032 <  {
4365 <    BIO *file;
4366 <
4367 <    if (yy_aconf->rsa_public_key != NULL)
4368 <    {
4369 <      RSA_free(yy_aconf->rsa_public_key);
4370 <      yy_aconf->rsa_public_key = NULL;
4371 <    }
4372 <
4373 <    if (yy_aconf->rsa_public_key_file != NULL)
4374 <    {
4375 <      MyFree(yy_aconf->rsa_public_key_file);
4376 <      yy_aconf->rsa_public_key_file = NULL;
4377 <    }
4378 <
4379 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
4380 <    file = BIO_new_file(yylval.string, "r");
4381 <
4382 <    if (file == NULL)
4383 <    {
4384 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
4385 <      break;
4386 <    }
4387 <
4388 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
4389 <
4390 <    if (yy_aconf->rsa_public_key == NULL)
4391 <    {
4392 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
4393 <      break;
4394 <    }
4395 <
4396 <    BIO_set_close(file, BIO_CLOSE);
4397 <    BIO_free(file);
4398 <  }
4399 < #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  */
4406 < #line 1170 "ircd_parser.y"
4037 > /* Line 1787 of yacc.c  */
4038 > #line 1099 "conf_parser.y"
4039      {
4040    if (conf_parser_ctx.pass == 2)
4041 <  {
4410 <    MyFree(class_name);
4411 <    DupString(class_name, yylval.string);
4412 <  }
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  */
4419 < #line 1179 "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  */
4429 < #line 1186 "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)
4432 <    yy_aconf->modes |= UMODE_BOTS;
4433 < }
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 1190 "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  */
4449 < #line 1194 "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 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
4083   }
4084      break;
4085  
4086 <  case 168:
4087 <
4088 < /* Line 1455 of yacc.c  */
4459 < #line 1198 "ircd_parser.y"
4086 >  case 165:
4087 > /* Line 1787 of yacc.c  */
4088 > #line 1134 "conf_parser.y"
4089      {
4090    if (conf_parser_ctx.pass == 2)
4091 <    yy_aconf->modes |= UMODE_DEAF;
4091 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4092   }
4093      break;
4094  
4095 <  case 169:
4096 <
4097 < /* Line 1455 of yacc.c  */
4469 < #line 1202 "ircd_parser.y"
4095 >  case 166:
4096 > /* Line 1787 of yacc.c  */
4097 > #line 1140 "conf_parser.y"
4098      {
4099    if (conf_parser_ctx.pass == 2)
4100 <    yy_aconf->modes |= UMODE_DEBUG;
4100 >    block_state.modes.value = 0;
4101   }
4102      break;
4103  
4104    case 170:
4105 <
4106 < /* Line 1455 of yacc.c  */
4479 < #line 1206 "ircd_parser.y"
4105 > /* Line 1787 of yacc.c  */
4106 > #line 1147 "conf_parser.y"
4107      {
4108    if (conf_parser_ctx.pass == 2)
4109 <    yy_aconf->modes |= UMODE_FULL;
4109 >    block_state.modes.value |= UMODE_BOTS;
4110   }
4111      break;
4112  
4113    case 171:
4114 <
4115 < /* Line 1455 of yacc.c  */
4489 < #line 1210 "ircd_parser.y"
4114 > /* Line 1787 of yacc.c  */
4115 > #line 1151 "conf_parser.y"
4116      {
4117    if (conf_parser_ctx.pass == 2)
4118 <    yy_aconf->modes |= UMODE_SKILL;
4118 >    block_state.modes.value |= UMODE_CCONN;
4119   }
4120      break;
4121  
4122    case 172:
4123 <
4124 < /* Line 1455 of yacc.c  */
4499 < #line 1214 "ircd_parser.y"
4123 > /* Line 1787 of yacc.c  */
4124 > #line 1155 "conf_parser.y"
4125      {
4126    if (conf_parser_ctx.pass == 2)
4127 <    yy_aconf->modes |= UMODE_NCHANGE;
4127 >    block_state.modes.value |= UMODE_DEAF;
4128   }
4129      break;
4130  
4131    case 173:
4132 <
4133 < /* Line 1455 of yacc.c  */
4509 < #line 1218 "ircd_parser.y"
4132 > /* Line 1787 of yacc.c  */
4133 > #line 1159 "conf_parser.y"
4134      {
4135    if (conf_parser_ctx.pass == 2)
4136 <    yy_aconf->modes |= UMODE_REJ;
4136 >    block_state.modes.value |= UMODE_DEBUG;
4137   }
4138      break;
4139  
4140    case 174:
4141 <
4142 < /* Line 1455 of yacc.c  */
4519 < #line 1222 "ircd_parser.y"
4141 > /* Line 1787 of yacc.c  */
4142 > #line 1163 "conf_parser.y"
4143      {
4144    if (conf_parser_ctx.pass == 2)
4145 <    yy_aconf->modes |= UMODE_UNAUTH;
4145 >    block_state.modes.value |= UMODE_FULL;
4146   }
4147      break;
4148  
4149    case 175:
4150 <
4151 < /* Line 1455 of yacc.c  */
4529 < #line 1226 "ircd_parser.y"
4150 > /* Line 1787 of yacc.c  */
4151 > #line 1167 "conf_parser.y"
4152      {
4153    if (conf_parser_ctx.pass == 2)
4154 <    yy_aconf->modes |= UMODE_SPY;
4154 >    block_state.modes.value |= UMODE_HIDDEN;
4155   }
4156      break;
4157  
4158    case 176:
4159 <
4160 < /* Line 1455 of yacc.c  */
4539 < #line 1230 "ircd_parser.y"
4159 > /* Line 1787 of yacc.c  */
4160 > #line 1171 "conf_parser.y"
4161      {
4162    if (conf_parser_ctx.pass == 2)
4163 <    yy_aconf->modes |= UMODE_EXTERNAL;
4163 >    block_state.modes.value |= UMODE_SKILL;
4164   }
4165      break;
4166  
4167    case 177:
4168 <
4169 < /* Line 1455 of yacc.c  */
4549 < #line 1234 "ircd_parser.y"
4168 > /* Line 1787 of yacc.c  */
4169 > #line 1175 "conf_parser.y"
4170      {
4171    if (conf_parser_ctx.pass == 2)
4172 <    yy_aconf->modes |= UMODE_OPERWALL;
4172 >    block_state.modes.value |= UMODE_NCHANGE;
4173   }
4174      break;
4175  
4176    case 178:
4177 <
4178 < /* Line 1455 of yacc.c  */
4559 < #line 1238 "ircd_parser.y"
4177 > /* Line 1787 of yacc.c  */
4178 > #line 1179 "conf_parser.y"
4179      {
4180    if (conf_parser_ctx.pass == 2)
4181 <    yy_aconf->modes |= UMODE_SERVNOTICE;
4181 >    block_state.modes.value |= UMODE_REJ;
4182   }
4183      break;
4184  
4185    case 179:
4186 <
4187 < /* Line 1455 of yacc.c  */
4569 < #line 1242 "ircd_parser.y"
4186 > /* Line 1787 of yacc.c  */
4187 > #line 1183 "conf_parser.y"
4188      {
4189    if (conf_parser_ctx.pass == 2)
4190 <    yy_aconf->modes |= UMODE_INVISIBLE;
4190 >    block_state.modes.value |= UMODE_UNAUTH;
4191   }
4192      break;
4193  
4194    case 180:
4195 <
4196 < /* Line 1455 of yacc.c  */
4579 < #line 1246 "ircd_parser.y"
4195 > /* Line 1787 of yacc.c  */
4196 > #line 1187 "conf_parser.y"
4197      {
4198    if (conf_parser_ctx.pass == 2)
4199 <    yy_aconf->modes |= UMODE_WALLOP;
4199 >    block_state.modes.value |= UMODE_SPY;
4200   }
4201      break;
4202  
4203    case 181:
4204 <
4205 < /* Line 1455 of yacc.c  */
4589 < #line 1250 "ircd_parser.y"
4204 > /* Line 1787 of yacc.c  */
4205 > #line 1191 "conf_parser.y"
4206      {
4207    if (conf_parser_ctx.pass == 2)
4208 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
4208 >    block_state.modes.value |= UMODE_EXTERNAL;
4209   }
4210      break;
4211  
4212    case 182:
4213 <
4214 < /* Line 1455 of yacc.c  */
4599 < #line 1254 "ircd_parser.y"
4213 > /* Line 1787 of yacc.c  */
4214 > #line 1195 "conf_parser.y"
4215      {
4216    if (conf_parser_ctx.pass == 2)
4217 <    yy_aconf->modes |= UMODE_CALLERID;
4217 >    block_state.modes.value |= UMODE_OPERWALL;
4218   }
4219      break;
4220  
4221    case 183:
4222 <
4223 < /* Line 1455 of yacc.c  */
4609 < #line 1258 "ircd_parser.y"
4222 > /* Line 1787 of yacc.c  */
4223 > #line 1199 "conf_parser.y"
4224      {
4225    if (conf_parser_ctx.pass == 2)
4226 <    yy_aconf->modes |= UMODE_LOCOPS;
4226 >    block_state.modes.value |= UMODE_SERVNOTICE;
4227   }
4228      break;
4229  
4230    case 184:
4231 <
4232 < /* Line 1455 of yacc.c  */
4619 < #line 1264 "ircd_parser.y"
4231 > /* Line 1787 of yacc.c  */
4232 > #line 1203 "conf_parser.y"
4233      {
4234    if (conf_parser_ctx.pass == 2)
4235 <  {
4623 <    if (yylval.number)
4624 <      yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4625 <    else
4626 <      yy_aconf->port &= ~OPER_FLAG_GLOBAL_KILL;
4627 <  }
4235 >    block_state.modes.value |= UMODE_INVISIBLE;
4236   }
4237      break;
4238  
4239    case 185:
4240 <
4241 < /* Line 1455 of yacc.c  */
4634 < #line 1275 "ircd_parser.y"
4240 > /* Line 1787 of yacc.c  */
4241 > #line 1207 "conf_parser.y"
4242      {
4243    if (conf_parser_ctx.pass == 2)
4244 <  {
4638 <    if (yylval.number)
4639 <      yy_aconf->port |= OPER_FLAG_REMOTE;
4640 <    else
4641 <      yy_aconf->port &= ~OPER_FLAG_REMOTE;
4642 <  }
4244 >    block_state.modes.value |= UMODE_WALLOP;
4245   }
4246      break;
4247  
4248    case 186:
4249 <
4250 < /* Line 1455 of yacc.c  */
4649 < #line 1286 "ircd_parser.y"
4249 > /* Line 1787 of yacc.c  */
4250 > #line 1211 "conf_parser.y"
4251      {
4252    if (conf_parser_ctx.pass == 2)
4253 <  {
4653 <    if (yylval.number)
4654 <      yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4655 <    else
4656 <      yy_aconf->port &= ~OPER_FLAG_REMOTEBAN;
4657 <  }
4253 >    block_state.modes.value |= UMODE_SOFTCALLERID;
4254   }
4255      break;
4256  
4257    case 187:
4258 <
4259 < /* Line 1455 of yacc.c  */
4664 < #line 1297 "ircd_parser.y"
4258 > /* Line 1787 of yacc.c  */
4259 > #line 1215 "conf_parser.y"
4260      {
4261    if (conf_parser_ctx.pass == 2)
4262 <  {
4668 <    if (yylval.number)
4669 <      yy_aconf->port |= OPER_FLAG_K;
4670 <    else
4671 <      yy_aconf->port &= ~OPER_FLAG_K;
4672 <  }
4262 >    block_state.modes.value |= UMODE_CALLERID;
4263   }
4264      break;
4265  
4266    case 188:
4267 <
4268 < /* Line 1455 of yacc.c  */
4679 < #line 1308 "ircd_parser.y"
4267 > /* Line 1787 of yacc.c  */
4268 > #line 1219 "conf_parser.y"
4269      {
4270    if (conf_parser_ctx.pass == 2)
4271 <  {
4683 <    if (yylval.number)
4684 <      yy_aconf->port |= OPER_FLAG_X;
4685 <    else
4686 <      yy_aconf->port &= ~OPER_FLAG_X;
4687 <  }
4271 >    block_state.modes.value |= UMODE_LOCOPS;
4272   }
4273      break;
4274  
4275    case 189:
4276 <
4277 < /* Line 1455 of yacc.c  */
4694 < #line 1319 "ircd_parser.y"
4276 > /* Line 1787 of yacc.c  */
4277 > #line 1223 "conf_parser.y"
4278      {
4279    if (conf_parser_ctx.pass == 2)
4280 <  {
4698 <    if (yylval.number)
4699 <      yy_aconf->port |= OPER_FLAG_UNKLINE;
4700 <    else
4701 <      yy_aconf->port &= ~OPER_FLAG_UNKLINE;
4702 <  }
4280 >    block_state.modes.value |= UMODE_REGONLY;
4281   }
4282      break;
4283  
4284    case 190:
4285 <
4286 < /* Line 1455 of yacc.c  */
4709 < #line 1330 "ircd_parser.y"
4285 > /* Line 1787 of yacc.c  */
4286 > #line 1227 "conf_parser.y"
4287      {
4288    if (conf_parser_ctx.pass == 2)
4289 <  {
4713 <    if (yylval.number)
4714 <      yy_aconf->port |= OPER_FLAG_GLINE;
4715 <    else
4716 <      yy_aconf->port &= ~OPER_FLAG_GLINE;
4717 <  }
4289 >    block_state.modes.value |= UMODE_FARCONNECT;
4290   }
4291      break;
4292  
4293    case 191:
4294 <
4295 < /* Line 1455 of yacc.c  */
4724 < #line 1341 "ircd_parser.y"
4294 > /* Line 1787 of yacc.c  */
4295 > #line 1233 "conf_parser.y"
4296      {
4297    if (conf_parser_ctx.pass == 2)
4298 <  {
4728 <    if (yylval.number)
4729 <      yy_aconf->port |= OPER_FLAG_N;
4730 <    else
4731 <      yy_aconf->port &= ~OPER_FLAG_N;
4732 <  }
4298 >    block_state.port.value = 0;
4299   }
4300      break;
4301  
4302 <  case 192:
4303 <
4304 < /* Line 1455 of yacc.c  */
4739 < #line 1352 "ircd_parser.y"
4302 >  case 195:
4303 > /* Line 1787 of yacc.c  */
4304 > #line 1240 "conf_parser.y"
4305      {
4306    if (conf_parser_ctx.pass == 2)
4307 <  {
4743 <    if (yylval.number)
4744 <      yy_aconf->port |= OPER_FLAG_DIE;
4745 <    else
4746 <      yy_aconf->port &= ~OPER_FLAG_DIE;
4747 <  }
4307 >    block_state.port.value |= OPER_FLAG_KILL_REMOTE;
4308   }
4309      break;
4310  
4311 <  case 193:
4312 <
4313 < /* Line 1455 of yacc.c  */
4754 < #line 1363 "ircd_parser.y"
4311 >  case 196:
4312 > /* Line 1787 of yacc.c  */
4313 > #line 1244 "conf_parser.y"
4314      {
4315    if (conf_parser_ctx.pass == 2)
4316 <  {
4758 <    if (yylval.number)
4759 <      yy_aconf->port |= OPER_FLAG_REHASH;
4760 <    else
4761 <      yy_aconf->port &= ~OPER_FLAG_REHASH;
4762 <  }
4316 >    block_state.port.value |= OPER_FLAG_KILL;
4317   }
4318      break;
4319  
4320 <  case 194:
4321 <
4322 < /* Line 1455 of yacc.c  */
4769 < #line 1374 "ircd_parser.y"
4320 >  case 197:
4321 > /* Line 1787 of yacc.c  */
4322 > #line 1248 "conf_parser.y"
4323      {
4324    if (conf_parser_ctx.pass == 2)
4325 <  {
4773 <    if (yylval.number)
4774 <      yy_aconf->port |= OPER_FLAG_ADMIN;
4775 <    else
4776 <      yy_aconf->port &= ~OPER_FLAG_ADMIN;
4777 <  }
4325 >    block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
4326   }
4327      break;
4328  
4329 <  case 195:
4330 <
4331 < /* Line 1455 of yacc.c  */
4784 < #line 1385 "ircd_parser.y"
4329 >  case 198:
4330 > /* Line 1787 of yacc.c  */
4331 > #line 1252 "conf_parser.y"
4332      {
4333    if (conf_parser_ctx.pass == 2)
4334 <  {
4788 <    if (yylval.number)
4789 <      yy_aconf->port |= OPER_FLAG_HIDDEN_ADMIN;
4790 <    else
4791 <      yy_aconf->port &= ~OPER_FLAG_HIDDEN_ADMIN;
4792 <  }
4334 >    block_state.port.value |= OPER_FLAG_CONNECT;
4335   }
4336      break;
4337  
4338 <  case 196:
4339 <
4340 < /* Line 1455 of yacc.c  */
4799 < #line 1396 "ircd_parser.y"
4338 >  case 199:
4339 > /* Line 1787 of yacc.c  */
4340 > #line 1256 "conf_parser.y"
4341      {
4342    if (conf_parser_ctx.pass == 2)
4343 <  {
4803 <    if (yylval.number)
4804 <      yy_aconf->port |= OPER_FLAG_HIDDEN_OPER;
4805 <    else
4806 <      yy_aconf->port &= ~OPER_FLAG_HIDDEN_OPER;
4807 <  }
4343 >    block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
4344   }
4345      break;
4346  
4347 <  case 197:
4348 <
4349 < /* Line 1455 of yacc.c  */
4814 < #line 1407 "ircd_parser.y"
4347 >  case 200:
4348 > /* Line 1787 of yacc.c  */
4349 > #line 1260 "conf_parser.y"
4350      {
4351    if (conf_parser_ctx.pass == 2)
4352 <  {
4818 <    if (yylval.number)
4819 <      yy_aconf->port |= OPER_FLAG_OPERWALL;
4820 <    else
4821 <      yy_aconf->port &= ~OPER_FLAG_OPERWALL;
4822 <  }
4352 >    block_state.port.value |= OPER_FLAG_SQUIT;
4353   }
4354      break;
4355  
4356 <  case 198:
4357 <
4358 < /* Line 1455 of yacc.c  */
4829 < #line 1418 "ircd_parser.y"
4356 >  case 201:
4357 > /* Line 1787 of yacc.c  */
4358 > #line 1264 "conf_parser.y"
4359      {
4360 +  if (conf_parser_ctx.pass == 2)
4361 +    block_state.port.value |= OPER_FLAG_K;
4362   }
4363      break;
4364  
4365    case 202:
4366 + /* Line 1787 of yacc.c  */
4367 + #line 1268 "conf_parser.y"
4368 +    {
4369 +  if (conf_parser_ctx.pass == 2)
4370 +    block_state.port.value |= OPER_FLAG_UNKLINE;
4371 + }
4372 +    break;
4373  
4374 < /* Line 1455 of yacc.c  */
4375 < #line 1422 "ircd_parser.y"
4376 <    { not_atom = 1; }
4374 >  case 203:
4375 > /* Line 1787 of yacc.c  */
4376 > #line 1272 "conf_parser.y"
4377 >    {
4378 >  if (conf_parser_ctx.pass == 2)
4379 >    block_state.port.value |= OPER_FLAG_DLINE;
4380 > }
4381      break;
4382  
4383    case 204:
4384 + /* Line 1787 of yacc.c  */
4385 + #line 1276 "conf_parser.y"
4386 +    {
4387 +  if (conf_parser_ctx.pass == 2)
4388 +    block_state.port.value |= OPER_FLAG_UNDLINE;
4389 + }
4390 +    break;
4391  
4392 < /* Line 1455 of yacc.c  */
4393 < #line 1423 "ircd_parser.y"
4394 <    { not_atom = 0; }
4392 >  case 205:
4393 > /* Line 1787 of yacc.c  */
4394 > #line 1280 "conf_parser.y"
4395 >    {
4396 >  if (conf_parser_ctx.pass == 2)
4397 >    block_state.port.value |= OPER_FLAG_X;
4398 > }
4399      break;
4400  
4401    case 206:
4402 <
4403 < /* Line 1455 of yacc.c  */
4851 < #line 1426 "ircd_parser.y"
4402 > /* Line 1787 of yacc.c  */
4403 > #line 1284 "conf_parser.y"
4404      {
4405    if (conf_parser_ctx.pass == 2)
4406 <  {
4855 <    if (not_atom)yy_aconf->port &= ~OPER_FLAG_GLOBAL_KILL;
4856 <    else yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4857 <  }
4406 >    block_state.port.value |= OPER_FLAG_GLINE;
4407   }
4408      break;
4409  
4410    case 207:
4411 <
4412 < /* Line 1455 of yacc.c  */
4864 < #line 1433 "ircd_parser.y"
4411 > /* Line 1787 of yacc.c  */
4412 > #line 1288 "conf_parser.y"
4413      {
4414    if (conf_parser_ctx.pass == 2)
4415 <  {
4868 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REMOTE;
4869 <    else yy_aconf->port |= OPER_FLAG_REMOTE;
4870 <  }
4415 >    block_state.port.value |= OPER_FLAG_DIE;
4416   }
4417      break;
4418  
4419    case 208:
4420 <
4421 < /* Line 1455 of yacc.c  */
4877 < #line 1440 "ircd_parser.y"
4420 > /* Line 1787 of yacc.c  */
4421 > #line 1292 "conf_parser.y"
4422      {
4423    if (conf_parser_ctx.pass == 2)
4424 <  {
4881 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_K;
4882 <    else yy_aconf->port |= OPER_FLAG_K;
4883 <  }
4424 >    block_state.port.value |= OPER_FLAG_RESTART;
4425   }
4426      break;
4427  
4428    case 209:
4429 <
4430 < /* Line 1455 of yacc.c  */
4890 < #line 1447 "ircd_parser.y"
4429 > /* Line 1787 of yacc.c  */
4430 > #line 1296 "conf_parser.y"
4431      {
4432    if (conf_parser_ctx.pass == 2)
4433 <  {
4894 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_UNKLINE;
4895 <    else yy_aconf->port |= OPER_FLAG_UNKLINE;
4896 <  }
4433 >    block_state.port.value |= OPER_FLAG_REHASH;
4434   }
4435      break;
4436  
4437    case 210:
4438 <
4439 < /* Line 1455 of yacc.c  */
4903 < #line 1454 "ircd_parser.y"
4438 > /* Line 1787 of yacc.c  */
4439 > #line 1300 "conf_parser.y"
4440      {
4441    if (conf_parser_ctx.pass == 2)
4442 <  {
4907 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_X;
4908 <    else yy_aconf->port |= OPER_FLAG_X;
4909 <  }
4442 >    block_state.port.value |= OPER_FLAG_ADMIN;
4443   }
4444      break;
4445  
4446    case 211:
4447 <
4448 < /* Line 1455 of yacc.c  */
4916 < #line 1461 "ircd_parser.y"
4447 > /* Line 1787 of yacc.c  */
4448 > #line 1304 "conf_parser.y"
4449      {
4450    if (conf_parser_ctx.pass == 2)
4451 <  {
4920 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_GLINE;
4921 <    else yy_aconf->port |= OPER_FLAG_GLINE;
4922 <  }
4451 >    block_state.port.value |= OPER_FLAG_OPERWALL;
4452   }
4453      break;
4454  
4455    case 212:
4456 <
4457 < /* Line 1455 of yacc.c  */
4929 < #line 1468 "ircd_parser.y"
4456 > /* Line 1787 of yacc.c  */
4457 > #line 1308 "conf_parser.y"
4458      {
4459    if (conf_parser_ctx.pass == 2)
4460 <  {
4933 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_DIE;
4934 <    else yy_aconf->port |= OPER_FLAG_DIE;
4935 <  }
4460 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4461   }
4462      break;
4463  
4464    case 213:
4465 <
4466 < /* Line 1455 of yacc.c  */
4942 < #line 1475 "ircd_parser.y"
4465 > /* Line 1787 of yacc.c  */
4466 > #line 1312 "conf_parser.y"
4467      {
4468    if (conf_parser_ctx.pass == 2)
4469 <  {
4946 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REHASH;
4947 <    else yy_aconf->port |= OPER_FLAG_REHASH;
4948 <  }
4469 >    block_state.port.value |= OPER_FLAG_WALLOPS;
4470   }
4471      break;
4472  
4473    case 214:
4474 <
4475 < /* Line 1455 of yacc.c  */
4955 < #line 1482 "ircd_parser.y"
4474 > /* Line 1787 of yacc.c  */
4475 > #line 1316 "conf_parser.y"
4476      {
4477    if (conf_parser_ctx.pass == 2)
4478 <  {
4959 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_ADMIN;
4960 <    else yy_aconf->port |= OPER_FLAG_ADMIN;
4961 <  }
4478 >    block_state.port.value |= OPER_FLAG_LOCOPS;
4479   }
4480      break;
4481  
4482    case 215:
4483 <
4484 < /* Line 1455 of yacc.c  */
4968 < #line 1489 "ircd_parser.y"
4483 > /* Line 1787 of yacc.c  */
4484 > #line 1320 "conf_parser.y"
4485      {
4486    if (conf_parser_ctx.pass == 2)
4487 <  {
4972 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_HIDDEN_ADMIN;
4973 <    else yy_aconf->port |= OPER_FLAG_HIDDEN_ADMIN;
4974 <  }
4487 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4488   }
4489      break;
4490  
4491    case 216:
4492 <
4493 < /* Line 1455 of yacc.c  */
4981 < #line 1496 "ircd_parser.y"
4492 > /* Line 1787 of yacc.c  */
4493 > #line 1324 "conf_parser.y"
4494      {
4495    if (conf_parser_ctx.pass == 2)
4496 <  {
4985 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_N;
4986 <    else yy_aconf->port |= OPER_FLAG_N;
4987 <  }
4496 >    block_state.port.value |= OPER_FLAG_SET;
4497   }
4498      break;
4499  
4500    case 217:
4501 <
4502 < /* Line 1455 of yacc.c  */
4994 < #line 1503 "ircd_parser.y"
4501 > /* Line 1787 of yacc.c  */
4502 > #line 1328 "conf_parser.y"
4503      {
4504    if (conf_parser_ctx.pass == 2)
4505 <  {
4998 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_OPERWALL;
4999 <    else yy_aconf->port |= OPER_FLAG_OPERWALL;
5000 <  }
4505 >    block_state.port.value |= OPER_FLAG_MODULE;
4506   }
4507      break;
4508  
4509    case 218:
4510 <
4511 < /* Line 1455 of yacc.c  */
5007 < #line 1510 "ircd_parser.y"
4510 > /* Line 1787 of yacc.c  */
4511 > #line 1338 "conf_parser.y"
4512      {
4513 <  if (conf_parser_ctx.pass == 2)
5010 <  {
5011 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_OPER_SPY;
5012 <    else yy_aconf->port |= OPER_FLAG_OPER_SPY;
5013 <  }
5014 < }
4513 >  if (conf_parser_ctx.pass != 1)
4514      break;
4515  
4516 <  case 219:
4516 >  reset_block_state();
4517  
4518 < /* Line 1455 of yacc.c  */
4519 < #line 1517 "ircd_parser.y"
4520 <    {
4521 <  if (conf_parser_ctx.pass == 2)
4522 <  {
5024 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_HIDDEN_OPER;
5025 <    else yy_aconf->port |= OPER_FLAG_HIDDEN_OPER;
5026 <  }
4518 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4519 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4520 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4521 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4522 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4523   }
4524      break;
4525  
4526 <  case 220:
4527 <
4528 < /* Line 1455 of yacc.c  */
5033 < #line 1524 "ircd_parser.y"
4526 >  case 219:
4527 > /* Line 1787 of yacc.c  */
4528 > #line 1350 "conf_parser.y"
4529      {
4530 <  if (conf_parser_ctx.pass == 2)
4531 <  {
4532 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REMOTEBAN;
5038 <    else yy_aconf->port |= OPER_FLAG_REMOTEBAN;
5039 <  }
5040 < }
4530 >  struct ClassItem *class = NULL;
4531 >
4532 >  if (conf_parser_ctx.pass != 1)
4533      break;
4534  
4535 <  case 221:
4535 >  if (!block_state.class.buf[0])
4536 >    break;
4537  
4538 < /* Line 1455 of yacc.c  */
4539 < #line 1531 "ircd_parser.y"
4540 <    {
4541 <  if (conf_parser_ctx.pass == 2)
4538 >  if (!(class = class_find(block_state.class.buf, 0)))
4539 >    class = class_make();
4540 >
4541 >  class->active = 1;
4542 >  MyFree(class->name);
4543 >  class->name = xstrdup(block_state.class.buf);
4544 >  class->ping_freq = block_state.ping_freq.value;
4545 >  class->max_perip = block_state.max_perip.value;
4546 >  class->con_freq = block_state.con_freq.value;
4547 >  class->max_total = block_state.max_total.value;
4548 >  class->max_global = block_state.max_global.value;
4549 >  class->max_local = block_state.max_local.value;
4550 >  class->max_ident = block_state.max_ident.value;
4551 >  class->max_sendq = block_state.max_sendq.value;
4552 >  class->max_recvq = block_state.max_recvq.value;
4553 >
4554 >  if (block_state.min_idle.value > block_state.max_idle.value)
4555    {
4556 <    if (not_atom) ClearConfEncrypted(yy_aconf);
4557 <    else SetConfEncrypted(yy_aconf);
4556 >    block_state.min_idle.value = 0;
4557 >    block_state.max_idle.value = 0;
4558 >    block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4559    }
4560 +
4561 +  class->flags = block_state.flags.value;
4562 +  class->min_idle = block_state.min_idle.value;
4563 +  class->max_idle = block_state.max_idle.value;
4564 +
4565 +  if (class->number_per_cidr && block_state.number_per_cidr.value)
4566 +    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4567 +        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4568 +      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4569 +          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4570 +        rebuild_cidr_list(class);
4571 +
4572 +  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4573 +  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4574 +  class->number_per_cidr = block_state.number_per_cidr.value;
4575   }
4576      break;
4577  
4578 <  case 222:
4579 <
4580 < /* Line 1455 of yacc.c  */
5059 < #line 1544 "ircd_parser.y"
4578 >  case 239:
4579 > /* Line 1787 of yacc.c  */
4580 > #line 1416 "conf_parser.y"
4581      {
4582    if (conf_parser_ctx.pass == 1)
4583 <  {
5063 <    yy_conf = make_conf_item(CLASS_TYPE);
5064 <    yy_class = map_to_conf(yy_conf);
5065 <  }
4583 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4584   }
4585      break;
4586  
4587 <  case 223:
4588 <
4589 < /* Line 1455 of yacc.c  */
5072 < #line 1551 "ircd_parser.y"
4587 >  case 240:
4588 > /* Line 1787 of yacc.c  */
4589 > #line 1422 "conf_parser.y"
4590      {
4591    if (conf_parser_ctx.pass == 1)
4592 <  {
4593 <    struct ConfItem *cconf = NULL;
4594 <    struct ClassItem *class = NULL;
4592 >    block_state.ping_freq.value = (yyvsp[(3) - (4)].number);
4593 > }
4594 >    break;
4595  
4596 <    if (yy_class_name == NULL)
4597 <      delete_conf_item(yy_conf);
4598 <    else
4596 >  case 241:
4597 > /* Line 1787 of yacc.c  */
4598 > #line 1428 "conf_parser.y"
4599      {
4600 <      cconf = find_exact_name_conf(CLASS_TYPE, yy_class_name, NULL, NULL);
4601 <
5085 <      if (cconf != NULL)                /* The class existed already */
5086 <      {
5087 <        int user_count = 0;
5088 <
5089 <        rebuild_cidr_class(cconf, yy_class);
5090 <
5091 <        class = map_to_conf(cconf);
5092 <
5093 <        user_count = class->curr_user_count;
5094 <        memcpy(class, yy_class, sizeof(*class));
5095 <        class->curr_user_count = user_count;
5096 <        class->active = 1;
5097 <
5098 <        delete_conf_item(yy_conf);
5099 <
5100 <        MyFree(cconf->name);            /* Allows case change of class name */
5101 <        cconf->name = yy_class_name;
5102 <      }
5103 <      else      /* Brand new class */
5104 <      {
5105 <        MyFree(yy_conf->name);          /* just in case it was allocated */
5106 <        yy_conf->name = yy_class_name;
5107 <        yy_class->active = 1;
5108 <      }
5109 <    }
5110 <
5111 <    yy_class_name = NULL;
5112 <  }
4600 >  if (conf_parser_ctx.pass == 1)
4601 >    block_state.max_perip.value = (yyvsp[(3) - (4)].number);
4602   }
4603      break;
4604  
4605    case 242:
4606 <
4607 < /* Line 1455 of yacc.c  */
5119 < #line 1611 "ircd_parser.y"
4606 > /* Line 1787 of yacc.c  */
4607 > #line 1434 "conf_parser.y"
4608      {
4609    if (conf_parser_ctx.pass == 1)
4610 <  {
5123 <    MyFree(yy_class_name);
5124 <    DupString(yy_class_name, yylval.string);
5125 <  }
4610 >    block_state.con_freq.value = (yyvsp[(3) - (4)].number);
4611   }
4612      break;
4613  
4614    case 243:
4615 <
4616 < /* Line 1455 of yacc.c  */
5132 < #line 1620 "ircd_parser.y"
4615 > /* Line 1787 of yacc.c  */
4616 > #line 1440 "conf_parser.y"
4617      {
4618    if (conf_parser_ctx.pass == 1)
4619 <  {
5136 <    MyFree(yy_class_name);
5137 <    DupString(yy_class_name, yylval.string);
5138 <  }
4619 >    block_state.max_total.value = (yyvsp[(3) - (4)].number);
4620   }
4621      break;
4622  
4623    case 244:
4624 <
4625 < /* Line 1455 of yacc.c  */
5145 < #line 1629 "ircd_parser.y"
4624 > /* Line 1787 of yacc.c  */
4625 > #line 1446 "conf_parser.y"
4626      {
4627    if (conf_parser_ctx.pass == 1)
4628 <    PingFreq(yy_class) = (yyvsp[(3) - (4)].number);
4628 >    block_state.max_global.value = (yyvsp[(3) - (4)].number);
4629   }
4630      break;
4631  
4632    case 245:
4633 <
4634 < /* Line 1455 of yacc.c  */
5155 < #line 1635 "ircd_parser.y"
4633 > /* Line 1787 of yacc.c  */
4634 > #line 1452 "conf_parser.y"
4635      {
4636    if (conf_parser_ctx.pass == 1)
4637 <    PingWarning(yy_class) = (yyvsp[(3) - (4)].number);
4637 >    block_state.max_local.value = (yyvsp[(3) - (4)].number);
4638   }
4639      break;
4640  
4641    case 246:
4642 <
4643 < /* Line 1455 of yacc.c  */
5165 < #line 1641 "ircd_parser.y"
4642 > /* Line 1787 of yacc.c  */
4643 > #line 1458 "conf_parser.y"
4644      {
4645    if (conf_parser_ctx.pass == 1)
4646 <    MaxPerIp(yy_class) = (yyvsp[(3) - (4)].number);
4646 >    block_state.max_ident.value = (yyvsp[(3) - (4)].number);
4647   }
4648      break;
4649  
4650    case 247:
4651 <
4652 < /* Line 1455 of yacc.c  */
5175 < #line 1647 "ircd_parser.y"
4651 > /* Line 1787 of yacc.c  */
4652 > #line 1464 "conf_parser.y"
4653      {
4654    if (conf_parser_ctx.pass == 1)
4655 <    ConFreq(yy_class) = (yyvsp[(3) - (4)].number);
4655 >    block_state.max_sendq.value = (yyvsp[(3) - (4)].number);
4656   }
4657      break;
4658  
4659    case 248:
4660 <
4661 < /* Line 1455 of yacc.c  */
5185 < #line 1653 "ircd_parser.y"
4660 > /* Line 1787 of yacc.c  */
4661 > #line 1470 "conf_parser.y"
4662      {
4663    if (conf_parser_ctx.pass == 1)
4664 <    MaxTotal(yy_class) = (yyvsp[(3) - (4)].number);
4664 >    if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4665 >      block_state.max_recvq.value = (yyvsp[(3) - (4)].number);
4666   }
4667      break;
4668  
4669    case 249:
4670 <
4671 < /* Line 1455 of yacc.c  */
5195 < #line 1659 "ircd_parser.y"
4670 > /* Line 1787 of yacc.c  */
4671 > #line 1477 "conf_parser.y"
4672      {
4673    if (conf_parser_ctx.pass == 1)
4674 <    MaxGlobal(yy_class) = (yyvsp[(3) - (4)].number);
4674 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4675   }
4676      break;
4677  
4678    case 250:
4679 <
4680 < /* Line 1455 of yacc.c  */
5205 < #line 1665 "ircd_parser.y"
4679 > /* Line 1787 of yacc.c  */
4680 > #line 1483 "conf_parser.y"
4681      {
4682    if (conf_parser_ctx.pass == 1)
4683 <    MaxLocal(yy_class) = (yyvsp[(3) - (4)].number);
4683 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4684   }
4685      break;
4686  
4687    case 251:
4688 <
4689 < /* Line 1455 of yacc.c  */
5215 < #line 1671 "ircd_parser.y"
4688 > /* Line 1787 of yacc.c  */
4689 > #line 1489 "conf_parser.y"
4690      {
4691    if (conf_parser_ctx.pass == 1)
4692 <    MaxIdent(yy_class) = (yyvsp[(3) - (4)].number);
4692 >    block_state.number_per_cidr.value = (yyvsp[(3) - (4)].number);
4693   }
4694      break;
4695  
4696    case 252:
4697 <
4698 < /* Line 1455 of yacc.c  */
5225 < #line 1677 "ircd_parser.y"
4697 > /* Line 1787 of yacc.c  */
4698 > #line 1495 "conf_parser.y"
4699      {
4700 <  if (conf_parser_ctx.pass == 1)
4701 <    MaxSendq(yy_class) = (yyvsp[(3) - (4)].number);
4700 >  if (conf_parser_ctx.pass != 1)
4701 >    break;
4702 >
4703 >  block_state.min_idle.value = (yyvsp[(3) - (4)].number);
4704 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4705   }
4706      break;
4707  
4708    case 253:
4709 <
4710 < /* Line 1455 of yacc.c  */
5235 < #line 1683 "ircd_parser.y"
4709 > /* Line 1787 of yacc.c  */
4710 > #line 1504 "conf_parser.y"
4711      {
4712 <  if (conf_parser_ctx.pass == 1)
4713 <    CidrBitlenIPV4(yy_class) = (yyvsp[(3) - (4)].number);
4712 >  if (conf_parser_ctx.pass != 1)
4713 >    break;
4714 >
4715 >  block_state.max_idle.value = (yyvsp[(3) - (4)].number);
4716 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4717   }
4718      break;
4719  
4720    case 254:
4721 <
4722 < /* Line 1455 of yacc.c  */
5245 < #line 1689 "ircd_parser.y"
4721 > /* Line 1787 of yacc.c  */
4722 > #line 1513 "conf_parser.y"
4723      {
4724    if (conf_parser_ctx.pass == 1)
4725 <    CidrBitlenIPV6(yy_class) = (yyvsp[(3) - (4)].number);
4725 >    block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4726   }
4727      break;
4728  
4729 <  case 255:
4730 <
4731 < /* Line 1455 of yacc.c  */
5255 < #line 1695 "ircd_parser.y"
4729 >  case 258:
4730 > /* Line 1787 of yacc.c  */
4731 > #line 1520 "conf_parser.y"
4732      {
4733    if (conf_parser_ctx.pass == 1)
4734 <    NumberPerCidr(yy_class) = (yyvsp[(3) - (4)].number);
4734 >    block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4735   }
4736      break;
4737  
4738 <  case 256:
4739 <
4740 < /* Line 1455 of yacc.c  */
5265 < #line 1704 "ircd_parser.y"
4738 >  case 259:
4739 > /* Line 1787 of yacc.c  */
4740 > #line 1524 "conf_parser.y"
4741      {
4742 <  if (conf_parser_ctx.pass == 2)
4743 <  {
5269 <    listener_address = NULL;
5270 <    listener_flags = 0;
5271 <  }
4742 >  if (conf_parser_ctx.pass == 1)
4743 >    block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4744   }
4745      break;
4746  
4747 <  case 257:
4748 <
4749 < /* Line 1455 of yacc.c  */
5278 < #line 1711 "ircd_parser.y"
4747 >  case 260:
4748 > /* Line 1787 of yacc.c  */
4749 > #line 1534 "conf_parser.y"
4750      {
4751    if (conf_parser_ctx.pass == 2)
4752 <  {
5282 <    MyFree(listener_address);
5283 <    listener_address = NULL;
5284 <  }
4752 >    reset_block_state();
4753   }
4754      break;
4755  
4756 <  case 258:
4757 <
4758 < /* Line 1455 of yacc.c  */
5291 < #line 1720 "ircd_parser.y"
4756 >  case 262:
4757 > /* Line 1787 of yacc.c  */
4758 > #line 1540 "conf_parser.y"
4759      {
4760 <  listener_flags = 0;
4760 >  block_state.flags.value = 0;
4761   }
4762      break;
4763  
4764 <  case 262:
4765 <
4766 < /* Line 1455 of yacc.c  */
5300 < #line 1726 "ircd_parser.y"
4764 >  case 266:
4765 > /* Line 1787 of yacc.c  */
4766 > #line 1546 "conf_parser.y"
4767      {
4768    if (conf_parser_ctx.pass == 2)
4769 <    listener_flags |= LISTENER_SSL;
4769 >    block_state.flags.value |= LISTENER_SSL;
4770   }
4771      break;
4772  
4773 <  case 263:
4774 <
4775 < /* Line 1455 of yacc.c  */
5310 < #line 1730 "ircd_parser.y"
4773 >  case 267:
4774 > /* Line 1787 of yacc.c  */
4775 > #line 1550 "conf_parser.y"
4776      {
4777    if (conf_parser_ctx.pass == 2)
4778 <    listener_flags |= LISTENER_HIDDEN;
4778 >    block_state.flags.value |= LISTENER_HIDDEN;
4779   }
4780      break;
4781  
4782 <  case 264:
4783 <
4784 < /* Line 1455 of yacc.c  */
5320 < #line 1734 "ircd_parser.y"
4782 >  case 268:
4783 > /* Line 1787 of yacc.c  */
4784 > #line 1554 "conf_parser.y"
4785      {
4786    if (conf_parser_ctx.pass == 2)
4787 <    listener_flags |= LISTENER_SERVER;
4787 >   block_state.flags.value |= LISTENER_SERVER;
4788   }
4789      break;
4790  
5327  case 272:
5328
5329 /* Line 1455 of yacc.c  */
5330 #line 1744 "ircd_parser.y"
5331    { listener_flags = 0; }
5332    break;
5333
4791    case 276:
4792 + /* Line 1787 of yacc.c  */
4793 + #line 1562 "conf_parser.y"
4794 +    { block_state.flags.value = 0; }
4795 +    break;
4796  
4797 < /* Line 1455 of yacc.c  */
4798 < #line 1749 "ircd_parser.y"
4797 >  case 280:
4798 > /* Line 1787 of yacc.c  */
4799 > #line 1567 "conf_parser.y"
4800      {
4801    if (conf_parser_ctx.pass == 2)
4802    {
4803 <    if ((listener_flags & LISTENER_SSL))
4803 >    if (block_state.flags.value & LISTENER_SSL)
4804   #ifdef HAVE_LIBCRYPTO
4805        if (!ServerInfo.server_ctx)
4806   #endif
4807        {
4808 <        yyerror("SSL not available - port closed");
4808 >        conf_error_report("SSL not available - port closed");
4809          break;
4810        }
4811 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4811 >    add_listener((yyvsp[(1) - (1)].number), block_state.addr.buf, block_state.flags.value);
4812    }
4813   }
4814      break;
4815  
4816 <  case 277:
4817 <
4818 < /* Line 1455 of yacc.c  */
5357 < #line 1763 "ircd_parser.y"
4816 >  case 281:
4817 > /* Line 1787 of yacc.c  */
4818 > #line 1581 "conf_parser.y"
4819      {
4820    if (conf_parser_ctx.pass == 2)
4821    {
4822      int i;
4823  
4824 <    if ((listener_flags & LISTENER_SSL))
4824 >    if (block_state.flags.value & LISTENER_SSL)
4825   #ifdef HAVE_LIBCRYPTO
4826        if (!ServerInfo.server_ctx)
4827   #endif
4828        {
4829 <        yyerror("SSL not available - port closed");
4829 >        conf_error_report("SSL not available - port closed");
4830          break;
4831        }
4832  
4833      for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4834 <      add_listener(i, listener_address, listener_flags);
4834 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4835    }
4836   }
4837      break;
4838  
4839 <  case 278:
4840 <
4841 < /* Line 1455 of yacc.c  */
5381 < #line 1783 "ircd_parser.y"
4839 >  case 282:
4840 > /* Line 1787 of yacc.c  */
4841 > #line 1601 "conf_parser.y"
4842      {
4843    if (conf_parser_ctx.pass == 2)
4844 <  {
5385 <    MyFree(listener_address);
5386 <    DupString(listener_address, yylval.string);
5387 <  }
4844 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4845   }
4846      break;
4847  
4848 <  case 279:
4849 <
4850 < /* Line 1455 of yacc.c  */
5394 < #line 1792 "ircd_parser.y"
4848 >  case 283:
4849 > /* Line 1787 of yacc.c  */
4850 > #line 1607 "conf_parser.y"
4851      {
4852    if (conf_parser_ctx.pass == 2)
4853 <  {
5398 <    MyFree(listener_address);
5399 <    DupString(listener_address, yylval.string);
5400 <  }
4853 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4854   }
4855      break;
4856  
4857 <  case 280:
4858 <
4859 < /* Line 1455 of yacc.c  */
5407 < #line 1804 "ircd_parser.y"
4857 >  case 284:
4858 > /* Line 1787 of yacc.c  */
4859 > #line 1616 "conf_parser.y"
4860      {
4861    if (conf_parser_ctx.pass == 2)
4862 <  {
5411 <    yy_conf = make_conf_item(CLIENT_TYPE);
5412 <    yy_aconf = map_to_conf(yy_conf);
5413 <  }
5414 <  else
5415 <  {
5416 <    MyFree(class_name);
5417 <    class_name = NULL;
5418 <  }
4862 >    reset_block_state();
4863   }
4864      break;
4865  
4866 <  case 281:
4867 <
4868 < /* Line 1455 of yacc.c  */
5425 < #line 1816 "ircd_parser.y"
5426 <    {
5427 <  if (conf_parser_ctx.pass == 2)
5428 <  {
5429 <    struct CollectItem *yy_tmp = NULL;
5430 <    dlink_node *ptr = NULL, *next_ptr = NULL;
5431 <
5432 <    if (yy_aconf->user && yy_aconf->host)
5433 <    {
5434 <      conf_add_class_to_conf(yy_conf, class_name);
5435 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
5436 <    }
5437 <    else
5438 <      delete_conf_item(yy_conf);
5439 <
5440 <    /* copy over settings from first struct */
5441 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4866 >  case 285:
4867 > /* Line 1787 of yacc.c  */
4868 > #line 1620 "conf_parser.y"
4869      {
4870 <      struct AccessItem *new_aconf;
5444 <      struct ConfItem *new_conf;
5445 <
5446 <      new_conf = make_conf_item(CLIENT_TYPE);
5447 <      new_aconf = map_to_conf(new_conf);
5448 <
5449 <      yy_tmp = ptr->data;
5450 <
5451 <      assert(yy_tmp->user && yy_tmp->host);
5452 <
5453 <      if (yy_aconf->passwd != NULL)
5454 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5455 <      if (yy_conf->name != NULL)
5456 <        DupString(new_conf->name, yy_conf->name);
5457 <      if (yy_aconf->passwd != NULL)
5458 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4870 >  dlink_node *ptr = NULL;
4871  
4872 <      new_aconf->flags = yy_aconf->flags;
5461 <      new_aconf->port  = yy_aconf->port;
5462 <
5463 <      DupString(new_aconf->user, yy_tmp->user);
5464 <      collapse(new_aconf->user);
5465 <
5466 <      DupString(new_aconf->host, yy_tmp->host);
5467 <      collapse(new_aconf->host);
5468 <
5469 <      conf_add_class_to_conf(new_conf, class_name);
5470 <      add_conf_by_address(CONF_CLIENT, new_aconf);
5471 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
5472 <      free_collect_item(yy_tmp);
5473 <    }
5474 <
5475 <    MyFree(class_name);
5476 <    class_name = NULL;
5477 <    yy_conf = NULL;
5478 <    yy_aconf = NULL;
5479 <  }
5480 < }
4872 >  if (conf_parser_ctx.pass != 2)
4873      break;
4874  
4875 <  case 301:
5484 <
5485 < /* Line 1455 of yacc.c  */
5486 < #line 1881 "ircd_parser.y"
5487 <    {
5488 <  if (conf_parser_ctx.pass == 2)
4875 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4876    {
4877 <    struct CollectItem *yy_tmp = NULL;
4877 >    struct MaskItem *conf = NULL;
4878      struct split_nuh_item nuh;
4879  
4880 <    nuh.nuhmask  = yylval.string;
4880 >    nuh.nuhmask  = ptr->data;
4881      nuh.nickptr  = NULL;
4882 <    nuh.userptr  = userbuf;
4883 <    nuh.hostptr  = hostbuf;
5497 <
4882 >    nuh.userptr  = block_state.user.buf;
4883 >    nuh.hostptr  = block_state.host.buf;
4884      nuh.nicksize = 0;
4885 <    nuh.usersize = sizeof(userbuf);
4886 <    nuh.hostsize = sizeof(hostbuf);
5501 <
4885 >    nuh.usersize = sizeof(block_state.user.buf);
4886 >    nuh.hostsize = sizeof(block_state.host.buf);
4887      split_nuh(&nuh);
4888  
4889 <    if (yy_aconf->user == NULL)
4890 <    {
4891 <      DupString(yy_aconf->user, userbuf);
5507 <      DupString(yy_aconf->host, hostbuf);
5508 <    }
5509 <    else
5510 <    {
5511 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4889 >    conf        = conf_make(CONF_CLIENT);
4890 >    conf->user  = xstrdup(block_state.user.buf);
4891 >    conf->host  = xstrdup(block_state.host.buf);
4892  
4893 <      DupString(yy_tmp->user, userbuf);
4894 <      DupString(yy_tmp->host, hostbuf);
4893 >    if (block_state.rpass.buf[0])
4894 >      conf->passwd = xstrdup(block_state.rpass.buf);
4895 >    if (block_state.name.buf[0])
4896 >      conf->name = xstrdup(block_state.name.buf);
4897  
4898 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4899 <    }
4898 >    conf->flags = block_state.flags.value;
4899 >    conf->port  = block_state.port.value;
4900 >
4901 >    conf_add_class_to_conf(conf, block_state.class.buf);
4902 >    add_conf_by_address(CONF_CLIENT, conf);
4903    }
4904   }
4905      break;
4906  
4907 <  case 302:
4908 <
4909 < /* Line 1455 of yacc.c  */
5525 < #line 1918 "ircd_parser.y"
4907 >  case 297:
4908 > /* Line 1787 of yacc.c  */
4909 > #line 1663 "conf_parser.y"
4910      {
4911    if (conf_parser_ctx.pass == 2)
4912 <  {
5529 <    /* be paranoid */
5530 <    if (yy_aconf->passwd != NULL)
5531 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5532 <
5533 <    MyFree(yy_aconf->passwd);
5534 <    DupString(yy_aconf->passwd, yylval.string);
5535 <  }
4912 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4913   }
4914      break;
4915  
4916 <  case 303:
4917 <
4918 < /* Line 1455 of yacc.c  */
5542 < #line 1931 "ircd_parser.y"
4916 >  case 298:
4917 > /* Line 1787 of yacc.c  */
4918 > #line 1669 "conf_parser.y"
4919      {
4920    if (conf_parser_ctx.pass == 2)
4921 <  {
5546 <    if (yylval.number)
5547 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
5548 <    else
5549 <      yy_aconf->flags &= ~CONF_FLAGS_SPOOF_NOTICE;
5550 <  }
4921 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4922   }
4923      break;
4924  
4925 <  case 304:
4926 <
4927 < /* Line 1455 of yacc.c  */
5557 < #line 1942 "ircd_parser.y"
4925 >  case 299:
4926 > /* Line 1787 of yacc.c  */
4927 > #line 1675 "conf_parser.y"
4928      {
4929    if (conf_parser_ctx.pass == 2)
4930 <  {
5561 <    MyFree(class_name);
5562 <    DupString(class_name, yylval.string);
5563 <  }
4930 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4931   }
4932      break;
4933  
4934 <  case 305:
4935 <
4936 < /* Line 1455 of yacc.c  */
5570 < #line 1951 "ircd_parser.y"
4934 >  case 300:
4935 > /* Line 1787 of yacc.c  */
4936 > #line 1681 "conf_parser.y"
4937      {
4938    if (conf_parser_ctx.pass == 2)
4939    {
4940      if (yylval.number)
4941 <      SetConfEncrypted(yy_aconf);
4941 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4942      else
4943 <      ClearConfEncrypted(yy_aconf);
4943 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4944    }
4945   }
4946      break;
4947  
4948 <  case 306:
4949 <
4950 < /* Line 1455 of yacc.c  */
5585 < #line 1962 "ircd_parser.y"
4948 >  case 301:
4949 > /* Line 1787 of yacc.c  */
4950 > #line 1692 "conf_parser.y"
4951      {
4952 +  if (conf_parser_ctx.pass == 2)
4953 +    block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4954   }
4955      break;
4956  
4957 <  case 310:
4958 <
4959 < /* Line 1455 of yacc.c  */
5593 < #line 1966 "ircd_parser.y"
5594 <    { not_atom = 1; }
5595 <    break;
5596 <
5597 <  case 312:
5598 <
5599 < /* Line 1455 of yacc.c  */
5600 < #line 1967 "ircd_parser.y"
5601 <    { not_atom = 0; }
5602 <    break;
5603 <
5604 <  case 314:
5605 <
5606 < /* Line 1455 of yacc.c  */
5607 < #line 1970 "ircd_parser.y"
4957 >  case 305:
4958 > /* Line 1787 of yacc.c  */
4959 > #line 1699 "conf_parser.y"
4960      {
4961    if (conf_parser_ctx.pass == 2)
4962 <  {
5611 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_SPOOF_NOTICE;
5612 <    else yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
5613 <  }
5614 <
4962 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4963   }
4964      break;
4965  
4966 <  case 315:
4967 <
4968 < /* Line 1455 of yacc.c  */
5621 < #line 1978 "ircd_parser.y"
4966 >  case 306:
4967 > /* Line 1787 of yacc.c  */
4968 > #line 1703 "conf_parser.y"
4969      {
4970    if (conf_parser_ctx.pass == 2)
4971 <  {
5625 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NOLIMIT;
5626 <    else yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
5627 <  }
4971 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4972   }
4973      break;
4974  
4975 <  case 316:
4976 <
4977 < /* Line 1455 of yacc.c  */
5634 < #line 1985 "ircd_parser.y"
4975 >  case 307:
4976 > /* Line 1787 of yacc.c  */
4977 > #line 1707 "conf_parser.y"
4978      {
4979    if (conf_parser_ctx.pass == 2)
4980 <  {
5638 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTKLINE;
5639 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
5640 <  }
4980 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4981   }
4982      break;
4983  
4984 <  case 317:
4985 <
4986 < /* Line 1455 of yacc.c  */
5647 < #line 1992 "ircd_parser.y"
4984 >  case 308:
4985 > /* Line 1787 of yacc.c  */
4986 > #line 1711 "conf_parser.y"
4987      {
4988    if (conf_parser_ctx.pass == 2)
4989 <  {
5651 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NEED_IDENTD;
5652 <    else yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
5653 <  }
4989 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4990   }
4991      break;
4992  
4993 <  case 318:
4994 <
4995 < /* Line 1455 of yacc.c  */
5660 < #line 1999 "ircd_parser.y"
4993 >  case 309:
4994 > /* Line 1787 of yacc.c  */
4995 > #line 1715 "conf_parser.y"
4996      {
4997    if (conf_parser_ctx.pass == 2)
4998 <  {
5664 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_CAN_FLOOD;
5665 <    else yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
5666 <  }
4998 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4999   }
5000      break;
5001  
5002 <  case 319:
5003 <
5004 < /* Line 1455 of yacc.c  */
5673 < #line 2006 "ircd_parser.y"
5002 >  case 310:
5003 > /* Line 1787 of yacc.c  */
5004 > #line 1719 "conf_parser.y"
5005      {
5006    if (conf_parser_ctx.pass == 2)
5007 <  {
5677 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_IDLE_LINED;
5678 <    else yy_aconf->flags |= CONF_FLAGS_IDLE_LINED;
5679 <  }
5007 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
5008   }
5009      break;
5010  
5011 <  case 320:
5012 <
5013 < /* Line 1455 of yacc.c  */
5686 < #line 2013 "ircd_parser.y"
5011 >  case 311:
5012 > /* Line 1787 of yacc.c  */
5013 > #line 1723 "conf_parser.y"
5014      {
5015    if (conf_parser_ctx.pass == 2)
5016 <  {
5690 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NO_TILDE;
5691 <    else yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
5692 <  }
5016 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
5017   }
5018      break;
5019  
5020 <  case 321:
5021 <
5022 < /* Line 1455 of yacc.c  */
5699 < #line 2020 "ircd_parser.y"
5020 >  case 312:
5021 > /* Line 1787 of yacc.c  */
5022 > #line 1727 "conf_parser.y"
5023      {
5024    if (conf_parser_ctx.pass == 2)
5025 <  {
5703 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTGLINE;
5704 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
5705 <  }
5025 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
5026   }
5027      break;
5028  
5029 <  case 322:
5030 <
5031 < /* Line 1455 of yacc.c  */
5712 < #line 2027 "ircd_parser.y"
5029 >  case 313:
5030 > /* Line 1787 of yacc.c  */
5031 > #line 1731 "conf_parser.y"
5032      {
5033    if (conf_parser_ctx.pass == 2)
5034 <  {
5716 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTRESV;
5717 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
5718 <  }
5034 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
5035   }
5036      break;
5037  
5038 <  case 323:
5039 <
5040 < /* Line 1455 of yacc.c  */
5725 < #line 2034 "ircd_parser.y"
5038 >  case 314:
5039 > /* Line 1787 of yacc.c  */
5040 > #line 1735 "conf_parser.y"
5041      {
5042    if (conf_parser_ctx.pass == 2)
5043 <  {
5729 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NEED_PASSWORD;
5730 <    else yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
5731 <  }
5043 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
5044   }
5045      break;
5046  
5047 <  case 324:
5048 <
5049 < /* Line 1455 of yacc.c  */
5738 < #line 2043 "ircd_parser.y"
5047 >  case 315:
5048 > /* Line 1787 of yacc.c  */
5049 > #line 1741 "conf_parser.y"
5050      {
5051 <  if (conf_parser_ctx.pass == 2)
5741 <  {
5742 <    if (yylval.number)
5743 <      yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
5744 <    else
5745 <      yy_aconf->flags &= ~CONF_FLAGS_EXEMPTKLINE;
5746 <  }
5747 < }
5051 >  if (conf_parser_ctx.pass != 2)
5052      break;
5053  
5054 <  case 325:
5751 <
5752 < /* Line 1455 of yacc.c  */
5753 < #line 2054 "ircd_parser.y"
5754 <    {
5755 <  if (conf_parser_ctx.pass == 2)
5054 >  if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
5055    {
5056 <    if (yylval.number)
5057 <      yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
5759 <    else
5760 <      yy_aconf->flags &= ~CONF_FLAGS_NEED_IDENTD;
5056 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5057 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
5058    }
5059 +  else
5060 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
5061   }
5062      break;
5063  
5064 <  case 326:
5065 <
5066 < /* Line 1455 of yacc.c  */
5768 < #line 2065 "ircd_parser.y"
5064 >  case 316:
5065 > /* Line 1787 of yacc.c  */
5066 > #line 1755 "conf_parser.y"
5067      {
5068 <  if (conf_parser_ctx.pass == 2)
5771 <  {
5772 <    if (yylval.number)
5773 <      yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
5774 <    else
5775 <      yy_aconf->flags &= ~CONF_FLAGS_NOLIMIT;
5776 <  }
5777 < }
5068 >  if (conf_parser_ctx.pass != 2)
5069      break;
5070  
5071 <  case 327:
5072 <
5782 < /* Line 1455 of yacc.c  */
5783 < #line 2076 "ircd_parser.y"
5784 <    {
5785 <  if (conf_parser_ctx.pass == 2)
5786 <  {
5787 <    if (yylval.number)
5788 <      yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
5789 <    else
5790 <      yy_aconf->flags &= ~CONF_FLAGS_CAN_FLOOD;
5791 <  }
5071 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5072 >  block_state.flags.value |= CONF_FLAGS_REDIR;
5073   }
5074      break;
5075  
5076 <  case 328:
5077 <
5078 < /* Line 1455 of yacc.c  */
5798 < #line 2087 "ircd_parser.y"
5076 >  case 317:
5077 > /* Line 1787 of yacc.c  */
5078 > #line 1764 "conf_parser.y"
5079      {
5080 <  if (conf_parser_ctx.pass == 2)
5801 <  {
5802 <    if (yylval.number)
5803 <      yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
5804 <    else
5805 <      yy_aconf->flags &= ~CONF_FLAGS_NO_TILDE;
5806 <  }
5807 < }
5080 >  if (conf_parser_ctx.pass != 2)
5081      break;
5082  
5083 <  case 329:
5084 <
5812 < /* Line 1455 of yacc.c  */
5813 < #line 2098 "ircd_parser.y"
5814 <    {
5815 <  if (conf_parser_ctx.pass == 2)
5816 <  {
5817 <    if (yylval.number)
5818 <      yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
5819 <    else
5820 <      yy_aconf->flags &= ~CONF_FLAGS_EXEMPTGLINE;
5821 <  }
5083 >  block_state.flags.value |= CONF_FLAGS_REDIR;
5084 >  block_state.port.value = (yyvsp[(3) - (4)].number);
5085   }
5086      break;
5087  
5088 <  case 330:
5089 <
5090 < /* Line 1455 of yacc.c  */
5828 < #line 2110 "ircd_parser.y"
5088 >  case 318:
5089 > /* Line 1787 of yacc.c  */
5090 > #line 1777 "conf_parser.y"
5091      {
5092 <  if (conf_parser_ctx.pass == 2)
5093 <  {
5832 <    MyFree(yy_conf->name);
5092 >  if (conf_parser_ctx.pass != 2)
5093 >    break;
5094  
5095 <    if (strlen(yylval.string) < HOSTLEN)
5096 <    {    
5836 <      DupString(yy_conf->name, yylval.string);
5837 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
5838 <    }
5839 <    else
5840 <    {
5841 <      ilog(L_ERROR, "Spoofs must be less than %d..ignoring it", HOSTLEN);
5842 <      yy_conf->name = NULL;
5843 <    }
5844 <  }
5095 >  reset_block_state();
5096 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
5097   }
5098      break;
5099  
5100 <  case 331:
5101 <
5102 < /* Line 1455 of yacc.c  */
5851 < #line 2129 "ircd_parser.y"
5100 >  case 319:
5101 > /* Line 1787 of yacc.c  */
5102 > #line 1784 "conf_parser.y"
5103      {
5104 <  if (conf_parser_ctx.pass == 2)
5854 <  {
5855 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5856 <    MyFree(yy_conf->name);
5857 <    DupString(yy_conf->name, yylval.string);
5858 <  }
5859 < }
5104 >  if (conf_parser_ctx.pass != 2)
5105      break;
5106  
5107 <  case 332:
5863 <
5864 < /* Line 1455 of yacc.c  */
5865 < #line 2139 "ircd_parser.y"
5866 <    {
5867 <  if (conf_parser_ctx.pass == 2)
5868 <  {
5869 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5870 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5871 <  }
5107 >  create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
5108   }
5109      break;
5110  
5111 <  case 333:
5112 <
5113 < /* Line 1455 of yacc.c  */
5878 < #line 2148 "ircd_parser.y"
5111 >  case 326:
5112 > /* Line 1787 of yacc.c  */
5113 > #line 1795 "conf_parser.y"
5114      {
5115    if (conf_parser_ctx.pass == 2)
5116 <  {
5882 <    if (yylval.number)
5883 <      yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
5884 <    else
5885 <      yy_aconf->flags &= ~CONF_FLAGS_NEED_PASSWORD;
5886 <  }
5116 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5117   }
5118      break;
5119  
5120 <  case 334:
5121 <
5122 < /* Line 1455 of yacc.c  */
5893 < #line 2163 "ircd_parser.y"
5120 >  case 327:
5121 > /* Line 1787 of yacc.c  */
5122 > #line 1801 "conf_parser.y"
5123      {
5124    if (conf_parser_ctx.pass == 2)
5125 <  {
5897 <    MyFree(resv_reason);
5898 <    resv_reason = NULL;
5899 <  }
5125 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5126   }
5127      break;
5128  
5129 <  case 335:
5130 <
5131 < /* Line 1455 of yacc.c  */
5906 < #line 2170 "ircd_parser.y"
5129 >  case 328:
5130 > /* Line 1787 of yacc.c  */
5131 > #line 1807 "conf_parser.y"
5132      {
5133    if (conf_parser_ctx.pass == 2)
5134 <  {
5910 <    MyFree(resv_reason);
5911 <    resv_reason = NULL;
5912 <  }
5134 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
5135   }
5136      break;
5137  
5138 <  case 342:
5139 <
5140 < /* Line 1455 of yacc.c  */
5919 < #line 2182 "ircd_parser.y"
5138 >  case 334:
5139 > /* Line 1787 of yacc.c  */
5140 > #line 1822 "conf_parser.y"
5141      {
5142 <  if (conf_parser_ctx.pass == 2)
5922 <  {
5923 <    MyFree(resv_reason);
5924 <    DupString(resv_reason, yylval.string);
5925 <  }
5926 < }
5142 >  if (conf_parser_ctx.pass != 2)
5143      break;
5144  
5145 <  case 343:
5930 <
5931 < /* Line 1455 of yacc.c  */
5932 < #line 2191 "ircd_parser.y"
5933 <    {
5934 <  if (conf_parser_ctx.pass == 2)
5145 >  if (valid_servname(yylval.string))
5146    {
5147 <    if (IsChanPrefix(*yylval.string))
5148 <    {
5938 <      char def_reason[] = "No reason";
5939 <
5940 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5941 <    }
5147 >    struct MaskItem *conf = conf_make(CONF_SERVICE);
5148 >    conf->name = xstrdup(yylval.string);
5149    }
5943  /* ignore it for now.. but we really should make a warning if
5944   * its an erroneous name --fl_ */
5150   }
5151      break;
5152  
5153 <  case 344:
5154 <
5155 < /* Line 1455 of yacc.c  */
5951 < #line 2206 "ircd_parser.y"
5153 >  case 335:
5154 > /* Line 1787 of yacc.c  */
5155 > #line 1837 "conf_parser.y"
5156      {
5157 <  if (conf_parser_ctx.pass == 2)
5954 <  {
5955 <    char def_reason[] = "No reason";
5956 <
5957 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5958 <  }
5959 < }
5157 >  if (conf_parser_ctx.pass != 2)
5158      break;
5159  
5160 <  case 345:
5160 >  reset_block_state();
5161  
5162 < /* Line 1455 of yacc.c  */
5163 < #line 2219 "ircd_parser.y"
5164 <    {
5165 <  if (conf_parser_ctx.pass == 2)
5968 <  {
5969 <    yy_conf = make_conf_item(ULINE_TYPE);
5970 <    yy_match_item = map_to_conf(yy_conf);
5971 <    yy_match_item->action = SHARED_ALL;
5972 <  }
5162 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5163 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
5164 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
5165 >  block_state.flags.value = SHARED_ALL;
5166   }
5167      break;
5168  
5169 <  case 346:
5170 <
5171 < /* Line 1455 of yacc.c  */
5979 < #line 2227 "ircd_parser.y"
5169 >  case 336:
5170 > /* Line 1787 of yacc.c  */
5171 > #line 1848 "conf_parser.y"
5172      {
5173 <  if (conf_parser_ctx.pass == 2)
5174 <  {
5175 <    yy_conf = NULL;
5984 <  }
5985 < }
5173 >  struct MaskItem *conf = NULL;
5174 >
5175 >  if (conf_parser_ctx.pass != 2)
5176      break;
5177  
5178 <  case 353:
5178 >  conf = conf_make(CONF_ULINE);
5179 >  conf->flags = block_state.flags.value;
5180 >  conf->name = xstrdup(block_state.name.buf);
5181 >  conf->user = xstrdup(block_state.user.buf);
5182 >  conf->host = xstrdup(block_state.host.buf);
5183 > }
5184 >    break;
5185  
5186 < /* Line 1455 of yacc.c  */
5187 < #line 2238 "ircd_parser.y"
5186 >  case 343:
5187 > /* Line 1787 of yacc.c  */
5188 > #line 1865 "conf_parser.y"
5189      {
5190    if (conf_parser_ctx.pass == 2)
5191 <  {
5995 <    MyFree(yy_conf->name);
5996 <    DupString(yy_conf->name, yylval.string);
5997 <  }
5191 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5192   }
5193      break;
5194  
5195 <  case 354:
5196 <
5197 < /* Line 1455 of yacc.c  */
6004 < #line 2247 "ircd_parser.y"
5195 >  case 344:
5196 > /* Line 1787 of yacc.c  */
5197 > #line 1871 "conf_parser.y"
5198      {
5199    if (conf_parser_ctx.pass == 2)
5200    {
# Line 6009 | Line 5202 | yyreduce:
5202  
5203      nuh.nuhmask  = yylval.string;
5204      nuh.nickptr  = NULL;
5205 <    nuh.userptr  = userbuf;
5206 <    nuh.hostptr  = hostbuf;
5205 >    nuh.userptr  = block_state.user.buf;
5206 >    nuh.hostptr  = block_state.host.buf;
5207  
5208      nuh.nicksize = 0;
5209 <    nuh.usersize = sizeof(userbuf);
5210 <    nuh.hostsize = sizeof(hostbuf);
5209 >    nuh.usersize = sizeof(block_state.user.buf);
5210 >    nuh.hostsize = sizeof(block_state.host.buf);
5211  
5212      split_nuh(&nuh);
6020
6021    DupString(yy_match_item->user, userbuf);
6022    DupString(yy_match_item->host, hostbuf);
5213    }
5214   }
5215      break;
5216  
5217 <  case 355:
5218 <
5219 < /* Line 1455 of yacc.c  */
6030 < #line 2269 "ircd_parser.y"
5217 >  case 345:
5218 > /* Line 1787 of yacc.c  */
5219 > #line 1890 "conf_parser.y"
5220      {
5221    if (conf_parser_ctx.pass == 2)
5222 <    yy_match_item->action = 0;
5222 >    block_state.flags.value = 0;
5223   }
5224      break;
5225  
5226 <  case 359:
5227 <
5228 < /* Line 1455 of yacc.c  */
6040 < #line 2276 "ircd_parser.y"
5226 >  case 349:
5227 > /* Line 1787 of yacc.c  */
5228 > #line 1897 "conf_parser.y"
5229      {
5230    if (conf_parser_ctx.pass == 2)
5231 <    yy_match_item->action |= SHARED_KLINE;
5231 >    block_state.flags.value |= SHARED_KLINE;
5232   }
5233      break;
5234  
5235 <  case 360:
5236 <
5237 < /* Line 1455 of yacc.c  */
6050 < #line 2280 "ircd_parser.y"
5235 >  case 350:
5236 > /* Line 1787 of yacc.c  */
5237 > #line 1901 "conf_parser.y"
5238      {
5239    if (conf_parser_ctx.pass == 2)
5240 <    yy_match_item->action |= SHARED_TKLINE;
5240 >    block_state.flags.value |= SHARED_UNKLINE;
5241   }
5242      break;
5243  
5244 <  case 361:
5245 <
5246 < /* Line 1455 of yacc.c  */
6060 < #line 2284 "ircd_parser.y"
5244 >  case 351:
5245 > /* Line 1787 of yacc.c  */
5246 > #line 1905 "conf_parser.y"
5247      {
5248    if (conf_parser_ctx.pass == 2)
5249 <    yy_match_item->action |= SHARED_UNKLINE;
5249 >    block_state.flags.value |= SHARED_DLINE;
5250   }
5251      break;
5252  
5253 <  case 362:
5254 <
5255 < /* Line 1455 of yacc.c  */
6070 < #line 2288 "ircd_parser.y"
5253 >  case 352:
5254 > /* Line 1787 of yacc.c  */
5255 > #line 1909 "conf_parser.y"
5256      {
5257    if (conf_parser_ctx.pass == 2)
5258 <    yy_match_item->action |= SHARED_XLINE;
5258 >    block_state.flags.value |= SHARED_UNDLINE;
5259   }
5260      break;
5261  
5262 <  case 363:
5263 <
5264 < /* Line 1455 of yacc.c  */
6080 < #line 2292 "ircd_parser.y"
5262 >  case 353:
5263 > /* Line 1787 of yacc.c  */
5264 > #line 1913 "conf_parser.y"
5265      {
5266    if (conf_parser_ctx.pass == 2)
5267 <    yy_match_item->action |= SHARED_TXLINE;
5267 >    block_state.flags.value |= SHARED_XLINE;
5268   }
5269      break;
5270  
5271 <  case 364:
5272 <
5273 < /* Line 1455 of yacc.c  */
6090 < #line 2296 "ircd_parser.y"
5271 >  case 354:
5272 > /* Line 1787 of yacc.c  */
5273 > #line 1917 "conf_parser.y"
5274      {
5275    if (conf_parser_ctx.pass == 2)
5276 <    yy_match_item->action |= SHARED_UNXLINE;
5276 >    block_state.flags.value |= SHARED_UNXLINE;
5277   }
5278      break;
5279  
5280 <  case 365:
5281 <
5282 < /* Line 1455 of yacc.c  */
6100 < #line 2300 "ircd_parser.y"
5280 >  case 355:
5281 > /* Line 1787 of yacc.c  */
5282 > #line 1921 "conf_parser.y"
5283      {
5284    if (conf_parser_ctx.pass == 2)
5285 <    yy_match_item->action |= SHARED_RESV;
5285 >    block_state.flags.value |= SHARED_RESV;
5286   }
5287      break;
5288  
5289 <  case 366:
5290 <
5291 < /* Line 1455 of yacc.c  */
6110 < #line 2304 "ircd_parser.y"
5289 >  case 356:
5290 > /* Line 1787 of yacc.c  */
5291 > #line 1925 "conf_parser.y"
5292      {
5293    if (conf_parser_ctx.pass == 2)
5294 <    yy_match_item->action |= SHARED_TRESV;
5294 >    block_state.flags.value |= SHARED_UNRESV;
5295   }
5296      break;
5297  
5298 <  case 367:
5299 <
5300 < /* Line 1455 of yacc.c  */
6120 < #line 2308 "ircd_parser.y"
5298 >  case 357:
5299 > /* Line 1787 of yacc.c  */
5300 > #line 1929 "conf_parser.y"
5301      {
5302    if (conf_parser_ctx.pass == 2)
5303 <    yy_match_item->action |= SHARED_UNRESV;
5303 >    block_state.flags.value |= SHARED_LOCOPS;
5304   }
5305      break;
5306  
5307 <  case 368:
5308 <
5309 < /* Line 1455 of yacc.c  */
6130 < #line 2312 "ircd_parser.y"
5307 >  case 358:
5308 > /* Line 1787 of yacc.c  */
5309 > #line 1933 "conf_parser.y"
5310      {
5311    if (conf_parser_ctx.pass == 2)
5312 <    yy_match_item->action |= SHARED_LOCOPS;
5312 >    block_state.flags.value = SHARED_ALL;
5313   }
5314      break;
5315  
5316 <  case 369:
5317 <
5318 < /* Line 1455 of yacc.c  */
6140 < #line 2316 "ircd_parser.y"
5316 >  case 359:
5317 > /* Line 1787 of yacc.c  */
5318 > #line 1942 "conf_parser.y"
5319      {
5320 <  if (conf_parser_ctx.pass == 2)
6143 <    yy_match_item->action = SHARED_ALL;
6144 < }
5320 >  if (conf_parser_ctx.pass != 2)
5321      break;
5322  
5323 <  case 370:
5323 >  reset_block_state();
5324  
5325 < /* Line 1455 of yacc.c  */
5326 < #line 2325 "ircd_parser.y"
6151 <    {
6152 <  if (conf_parser_ctx.pass == 2)
6153 <  {
6154 <    yy_conf = make_conf_item(CLUSTER_TYPE);
6155 <    yy_conf->flags = SHARED_ALL;
6156 <  }
5325 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5326 >  block_state.flags.value = SHARED_ALL;
5327   }
5328      break;
5329  
5330 <  case 371:
5331 <
5332 < /* Line 1455 of yacc.c  */
6163 < #line 2332 "ircd_parser.y"
5330 >  case 360:
5331 > /* Line 1787 of yacc.c  */
5332 > #line 1951 "conf_parser.y"
5333      {
5334 <  if (conf_parser_ctx.pass == 2)
6166 <  {
6167 <    if (yy_conf->name == NULL)
6168 <      DupString(yy_conf->name, "*");
6169 <    yy_conf = NULL;
6170 <  }
6171 < }
6172 <    break;
6173 <
6174 <  case 377:
5334 >  struct MaskItem *conf = NULL;
5335  
5336 < /* Line 1455 of yacc.c  */
6177 < #line 2345 "ircd_parser.y"
6178 <    {
6179 <  if (conf_parser_ctx.pass == 2)
6180 <    DupString(yy_conf->name, yylval.string);
6181 < }
5336 >  if (conf_parser_ctx.pass != 2)
5337      break;
5338  
5339 <  case 378:
5340 <
5341 < /* Line 1455 of yacc.c  */
6187 < #line 2351 "ircd_parser.y"
6188 <    {
6189 <  if (conf_parser_ctx.pass == 2)
6190 <    yy_conf->flags = 0;
5339 >  conf = conf_make(CONF_CLUSTER);
5340 >  conf->flags = block_state.flags.value;
5341 >  conf->name = xstrdup(block_state.name.buf);
5342   }
5343      break;
5344  
5345 <  case 382:
5346 <
5347 < /* Line 1455 of yacc.c  */
6197 < #line 2358 "ircd_parser.y"
5345 >  case 366:
5346 > /* Line 1787 of yacc.c  */
5347 > #line 1966 "conf_parser.y"
5348      {
5349    if (conf_parser_ctx.pass == 2)
5350 <    yy_conf->flags |= SHARED_KLINE;
5350 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5351   }
5352      break;
5353  
5354 <  case 383:
5355 <
5356 < /* Line 1455 of yacc.c  */
6207 < #line 2362 "ircd_parser.y"
5354 >  case 367:
5355 > /* Line 1787 of yacc.c  */
5356 > #line 1972 "conf_parser.y"
5357      {
5358    if (conf_parser_ctx.pass == 2)
5359 <    yy_conf->flags |= SHARED_TKLINE;
5359 >    block_state.flags.value = 0;
5360   }
5361      break;
5362  
5363 <  case 384:
5364 <
5365 < /* Line 1455 of yacc.c  */
6217 < #line 2366 "ircd_parser.y"
5363 >  case 371:
5364 > /* Line 1787 of yacc.c  */
5365 > #line 1979 "conf_parser.y"
5366      {
5367    if (conf_parser_ctx.pass == 2)
5368 <    yy_conf->flags |= SHARED_UNKLINE;
5368 >    block_state.flags.value |= SHARED_KLINE;
5369   }
5370      break;
5371  
5372 <  case 385:
5373 <
5374 < /* Line 1455 of yacc.c  */
6227 < #line 2370 "ircd_parser.y"
5372 >  case 372:
5373 > /* Line 1787 of yacc.c  */
5374 > #line 1983 "conf_parser.y"
5375      {
5376    if (conf_parser_ctx.pass == 2)
5377 <    yy_conf->flags |= SHARED_XLINE;
5377 >    block_state.flags.value |= SHARED_UNKLINE;
5378   }
5379      break;
5380  
5381 <  case 386:
5382 <
5383 < /* Line 1455 of yacc.c  */
6237 < #line 2374 "ircd_parser.y"
5381 >  case 373:
5382 > /* Line 1787 of yacc.c  */
5383 > #line 1987 "conf_parser.y"
5384      {
5385    if (conf_parser_ctx.pass == 2)
5386 <    yy_conf->flags |= SHARED_TXLINE;
5386 >    block_state.flags.value |= SHARED_DLINE;
5387   }
5388      break;
5389  
5390 <  case 387:
5391 <
5392 < /* Line 1455 of yacc.c  */
6247 < #line 2378 "ircd_parser.y"
5390 >  case 374:
5391 > /* Line 1787 of yacc.c  */
5392 > #line 1991 "conf_parser.y"
5393      {
5394    if (conf_parser_ctx.pass == 2)
5395 <    yy_conf->flags |= SHARED_UNXLINE;
5395 >    block_state.flags.value |= SHARED_UNDLINE;
5396   }
5397      break;
5398  
5399 <  case 388:
5400 <
5401 < /* Line 1455 of yacc.c  */
6257 < #line 2382 "ircd_parser.y"
5399 >  case 375:
5400 > /* Line 1787 of yacc.c  */
5401 > #line 1995 "conf_parser.y"
5402      {
5403    if (conf_parser_ctx.pass == 2)
5404 <    yy_conf->flags |= SHARED_RESV;
5404 >    block_state.flags.value |= SHARED_XLINE;
5405   }
5406      break;
5407  
5408 <  case 389:
5409 <
5410 < /* Line 1455 of yacc.c  */
6267 < #line 2386 "ircd_parser.y"
5408 >  case 376:
5409 > /* Line 1787 of yacc.c  */
5410 > #line 1999 "conf_parser.y"
5411      {
5412    if (conf_parser_ctx.pass == 2)
5413 <    yy_conf->flags |= SHARED_TRESV;
5413 >    block_state.flags.value |= SHARED_UNXLINE;
5414   }
5415      break;
5416  
5417 <  case 390:
5418 <
5419 < /* Line 1455 of yacc.c  */
6277 < #line 2390 "ircd_parser.y"
5417 >  case 377:
5418 > /* Line 1787 of yacc.c  */
5419 > #line 2003 "conf_parser.y"
5420      {
5421    if (conf_parser_ctx.pass == 2)
5422 <    yy_conf->flags |= SHARED_UNRESV;
5422 >    block_state.flags.value |= SHARED_RESV;
5423   }
5424      break;
5425  
5426 <  case 391:
5427 <
5428 < /* Line 1455 of yacc.c  */
6287 < #line 2394 "ircd_parser.y"
5426 >  case 378:
5427 > /* Line 1787 of yacc.c  */
5428 > #line 2007 "conf_parser.y"
5429      {
5430    if (conf_parser_ctx.pass == 2)
5431 <    yy_conf->flags |= SHARED_LOCOPS;
5431 >    block_state.flags.value |= SHARED_UNRESV;
5432   }
5433      break;
5434  
5435 <  case 392:
5436 <
5437 < /* Line 1455 of yacc.c  */
6297 < #line 2398 "ircd_parser.y"
5435 >  case 379:
5436 > /* Line 1787 of yacc.c  */
5437 > #line 2011 "conf_parser.y"
5438      {
5439    if (conf_parser_ctx.pass == 2)
5440 <    yy_conf->flags = SHARED_ALL;
5440 >    block_state.flags.value |= SHARED_LOCOPS;
5441   }
5442      break;
5443  
5444 <  case 393:
5445 <
5446 < /* Line 1455 of yacc.c  */
6307 < #line 2407 "ircd_parser.y"
5444 >  case 380:
5445 > /* Line 1787 of yacc.c  */
5446 > #line 2015 "conf_parser.y"
5447      {
5448    if (conf_parser_ctx.pass == 2)
5449 <  {
6311 <    yy_conf = make_conf_item(SERVER_TYPE);
6312 <    yy_aconf = (struct AccessItem *)map_to_conf(yy_conf);
6313 <    yy_aconf->passwd = NULL;
6314 <    /* defaults */
6315 <    yy_aconf->port = PORTNUM;
6316 <
6317 <    if (ConfigFileEntry.burst_away)
6318 <      yy_aconf->flags = CONF_FLAGS_BURST_AWAY;
6319 <  }
6320 <  else
6321 <  {
6322 <    MyFree(class_name);
6323 <    class_name = NULL;
6324 <  }
5449 >    block_state.flags.value = SHARED_ALL;
5450   }
5451      break;
5452  
5453 <  case 394:
5454 <
5455 < /* Line 1455 of yacc.c  */
6331 < #line 2425 "ircd_parser.y"
5453 >  case 381:
5454 > /* Line 1787 of yacc.c  */
5455 > #line 2024 "conf_parser.y"
5456      {
6333  if (conf_parser_ctx.pass == 2)
6334  {
6335    struct CollectItem *yy_hconf=NULL;
6336    struct CollectItem *yy_lconf=NULL;
6337    dlink_node *ptr;
6338    dlink_node *next_ptr;
6339 #ifdef HAVE_LIBCRYPTO
6340    if (yy_aconf->host &&
6341        ((yy_aconf->passwd && yy_aconf->spasswd) ||
6342         (yy_aconf->rsa_public_key && IsConfCryptLink(yy_aconf))))
6343 #else /* !HAVE_LIBCRYPTO */
6344      if (yy_aconf->host && !IsConfCryptLink(yy_aconf) &&
6345          yy_aconf->passwd && yy_aconf->spasswd)
6346 #endif /* !HAVE_LIBCRYPTO */
6347        {
6348          if (conf_add_server(yy_conf, class_name) == -1)
6349          {
6350            delete_conf_item(yy_conf);
6351            yy_conf = NULL;
6352            yy_aconf = NULL;
6353          }
6354        }
6355        else
6356        {
6357          /* Even if yy_conf ->name is NULL
6358           * should still unhook any hub/leaf confs still pending
6359           */
6360          unhook_hub_leaf_confs();
5457  
5458 <          if (yy_conf->name != NULL)
5459 <          {
6364 < #ifndef HAVE_LIBCRYPTO
6365 <            if (IsConfCryptLink(yy_aconf))
6366 <              yyerror("Ignoring connect block -- no OpenSSL support");
6367 < #else
6368 <            if (IsConfCryptLink(yy_aconf) && !yy_aconf->rsa_public_key)
6369 <              yyerror("Ignoring connect block -- missing key");
6370 < #endif
6371 <            if (yy_aconf->host == NULL)
6372 <              yyerror("Ignoring connect block -- missing host");
6373 <            else if (!IsConfCryptLink(yy_aconf) &&
6374 <                    (!yy_aconf->passwd || !yy_aconf->spasswd))
6375 <              yyerror("Ignoring connect block -- missing password");
6376 <          }
6377 <
6378 <
6379 <          /* XXX
6380 <           * This fixes a try_connections() core (caused by invalid class_ptr
6381 <           * pointers) reported by metalrock. That's an ugly fix, but there
6382 <           * is currently no better way. The entire config subsystem needs an
6383 <           * rewrite ASAP. make_conf_item() shouldn't really add things onto
6384 <           * a doubly linked list immediately without any sanity checks!  -Michael
6385 <           */
6386 <          delete_conf_item(yy_conf);
6387 <
6388 <          yy_aconf = NULL;
6389 <          yy_conf = NULL;
6390 <        }
6391 <
6392 <      /*
6393 <       * yy_conf is still pointing at the server that is having
6394 <       * a connect block built for it. This means, y_aconf->name
6395 <       * points to the actual irc name this server will be known as.
6396 <       * Now this new server has a set or even just one hub_mask (or leaf_mask)
6397 <       * given in the link list at yy_hconf. Fill in the HUB confs
6398 <       * from this link list now.
6399 <       */        
6400 <      DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
6401 <      {
6402 <        struct ConfItem *new_hub_conf;
6403 <        struct MatchItem *match_item;
6404 <
6405 <        yy_hconf = ptr->data;
6406 <
6407 <        /* yy_conf == NULL is a fatal error for this connect block! */
6408 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
6409 <        {
6410 <          new_hub_conf = make_conf_item(HUB_TYPE);
6411 <          match_item = (struct MatchItem *)map_to_conf(new_hub_conf);
6412 <          DupString(new_hub_conf->name, yy_conf->name);
6413 <          if (yy_hconf->user != NULL)
6414 <            DupString(match_item->user, yy_hconf->user);
6415 <          else
6416 <            DupString(match_item->user, "*");
6417 <          if (yy_hconf->host != NULL)
6418 <            DupString(match_item->host, yy_hconf->host);
6419 <          else
6420 <            DupString(match_item->host, "*");
6421 <        }
6422 <        dlinkDelete(&yy_hconf->node, &hub_conf_list);
6423 <        free_collect_item(yy_hconf);
6424 <      }
6425 <
6426 <      /* Ditto for the LEAF confs */
6427 <
6428 <      DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
6429 <      {
6430 <        struct ConfItem *new_leaf_conf;
6431 <        struct MatchItem *match_item;
6432 <
6433 <        yy_lconf = ptr->data;
5458 >  if (conf_parser_ctx.pass != 2)
5459 >    break;
5460  
5461 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5462 <        {
6437 <          new_leaf_conf = make_conf_item(LEAF_TYPE);
6438 <          match_item = (struct MatchItem *)map_to_conf(new_leaf_conf);
6439 <          DupString(new_leaf_conf->name, yy_conf->name);
6440 <          if (yy_lconf->user != NULL)
6441 <            DupString(match_item->user, yy_lconf->user);
6442 <          else
6443 <            DupString(match_item->user, "*");
6444 <          if (yy_lconf->host != NULL)
6445 <            DupString(match_item->host, yy_lconf->host);
6446 <          else
6447 <            DupString(match_item->host, "*");
6448 <        }
6449 <        dlinkDelete(&yy_lconf->node, &leaf_conf_list);
6450 <        free_collect_item(yy_lconf);
6451 <      }
6452 <      MyFree(class_name);
6453 <      class_name = NULL;
6454 <      yy_conf = NULL;
6455 <      yy_aconf = NULL;
6456 <  }
5461 >  reset_block_state();
5462 >  block_state.port.value = PORTNUM;
5463   }
5464      break;
5465  
5466 <  case 419:
5467 <
5468 < /* Line 1455 of yacc.c  */
6463 < #line 2564 "ircd_parser.y"
5466 >  case 382:
5467 > /* Line 1787 of yacc.c  */
5468 > #line 2032 "conf_parser.y"
5469      {
5470 <  if (conf_parser_ctx.pass == 2)
5471 <  {
6467 <    if (yy_conf->name != NULL)
6468 <      yyerror("Multiple connect name entry");
5470 >  struct MaskItem *conf = NULL;
5471 >  struct addrinfo hints, *res;
5472  
5473 <    MyFree(yy_conf->name);
6471 <    DupString(yy_conf->name, yylval.string);
6472 <  }
6473 < }
5473 >  if (conf_parser_ctx.pass != 2)
5474      break;
5475  
5476 <  case 420:
5476 >  if (!block_state.name.buf[0] ||
5477 >      !block_state.host.buf[0])
5478 >    break;
5479  
5480 < /* Line 1455 of yacc.c  */
5481 < #line 2576 "ircd_parser.y"
5482 <    {
6481 <  if (conf_parser_ctx.pass == 2)
6482 <  {
6483 <    if (yy_conf->name != NULL)
6484 <      yyerror("Multiple connect name entry");
5480 >  if (!block_state.rpass.buf[0] ||
5481 >      !block_state.spass.buf[0])
5482 >    break;
5483  
5484 <    MyFree(yy_conf->name);
5485 <    DupString(yy_conf->name, yylval.string);
6488 <  }
6489 < }
5484 >  if (has_wildcards(block_state.name.buf) ||
5485 >      has_wildcards(block_state.host.buf))
5486      break;
5487  
5488 <  case 421:
5488 >  conf = conf_make(CONF_SERVER);
5489 >  conf->port = block_state.port.value;
5490 >  conf->flags = block_state.flags.value;
5491 >  conf->aftype = block_state.aftype.value;
5492 >  conf->host = xstrdup(block_state.host.buf);
5493 >  conf->name = xstrdup(block_state.name.buf);
5494 >  conf->passwd = xstrdup(block_state.rpass.buf);
5495 >  conf->spasswd = xstrdup(block_state.spass.buf);
5496  
5497 < /* Line 1455 of yacc.c  */
5498 < #line 2588 "ircd_parser.y"
6496 <    {
6497 <  if (conf_parser_ctx.pass == 2)
6498 <  {
6499 <    MyFree(yy_aconf->host);
6500 <    DupString(yy_aconf->host, yylval.string);
6501 <  }
6502 < }
6503 <    break;
5497 >  if (block_state.cert.buf[0])
5498 >    conf->certfp = xstrdup(block_state.cert.buf);
5499  
5500 <  case 422:
5500 >  conf->cipher_list = xstrdup(block_state.ciph.buf);
5501  
5502 < /* Line 1455 of yacc.c  */
5503 < #line 2597 "ircd_parser.y"
6509 <    {
6510 <  if (conf_parser_ctx.pass == 2)
6511 <  {
6512 <    struct addrinfo hints, *res;
5502 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5503 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5504  
5505 +  if (block_state.bind.buf[0])
5506 +  {
5507      memset(&hints, 0, sizeof(hints));
5508  
5509      hints.ai_family   = AF_UNSPEC;
5510      hints.ai_socktype = SOCK_STREAM;
5511      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5512  
5513 <    if (irc_getaddrinfo(yylval.string, NULL, &hints, &res))
5514 <      ilog(L_ERROR, "Invalid netmask for server vhost(%s)", yylval.string);
5513 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5514 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5515      else
5516      {
5517        assert(res != NULL);
5518  
5519 <      memcpy(&yy_aconf->my_ipnum, res->ai_addr, res->ai_addrlen);
5520 <      yy_aconf->my_ipnum.ss.ss_family = res->ai_family;
5521 <      yy_aconf->my_ipnum.ss_len = res->ai_addrlen;
5522 <      irc_freeaddrinfo(res);
6530 <    }
6531 <  }
6532 < }
6533 <    break;
6534 <
6535 <  case 423:
6536 <
6537 < /* Line 1455 of yacc.c  */
6538 < #line 2623 "ircd_parser.y"
6539 <    {
6540 <  if (conf_parser_ctx.pass == 2)
6541 <  {
6542 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
6543 <      yyerror("Server passwords cannot begin with a colon");
6544 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
6545 <      yyerror("Server passwords cannot contain spaces");
6546 <    else {
6547 <      if (yy_aconf->spasswd != NULL)
6548 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
6549 <
6550 <      MyFree(yy_aconf->spasswd);
6551 <      DupString(yy_aconf->spasswd, yylval.string);
5519 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5520 >      conf->bind.ss.ss_family = res->ai_family;
5521 >      conf->bind.ss_len = res->ai_addrlen;
5522 >      freeaddrinfo(res);
5523      }
5524    }
6554 }
6555    break;
6556
6557  case 424:
5525  
5526 < /* Line 1455 of yacc.c  */
5527 < #line 2641 "ircd_parser.y"
6561 <    {
6562 <  if (conf_parser_ctx.pass == 2)
6563 <  {
6564 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
6565 <      yyerror("Server passwords cannot begin with a colon");
6566 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
6567 <      yyerror("Server passwords cannot contain spaces");
6568 <    else {
6569 <      if (yy_aconf->passwd != NULL)
6570 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
6571 <
6572 <      MyFree(yy_aconf->passwd);
6573 <      DupString(yy_aconf->passwd, yylval.string);
6574 <    }
6575 <  }
5526 >  conf_add_class_to_conf(conf, block_state.class.buf);
5527 >  lookup_confhost(conf);
5528   }
5529      break;
5530  
5531 <  case 425:
5532 <
5533 < /* Line 1455 of yacc.c  */
6582 < #line 2659 "ircd_parser.y"
5531 >  case 400:
5532 > /* Line 1787 of yacc.c  */
5533 > #line 2102 "conf_parser.y"
5534      {
5535    if (conf_parser_ctx.pass == 2)
5536 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5536 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5537   }
5538      break;
5539  
5540 <  case 426:
5541 <
5542 < /* Line 1455 of yacc.c  */
6592 < #line 2665 "ircd_parser.y"
5540 >  case 401:
5541 > /* Line 1787 of yacc.c  */
5542 > #line 2108 "conf_parser.y"
5543      {
5544    if (conf_parser_ctx.pass == 2)
5545 <    yy_aconf->aftype = AF_INET;
5545 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5546   }
5547      break;
5548  
5549 <  case 427:
5550 <
5551 < /* Line 1455 of yacc.c  */
6602 < #line 2669 "ircd_parser.y"
6603 <    {
6604 < #ifdef IPV6
6605 <  if (conf_parser_ctx.pass == 2)
6606 <    yy_aconf->aftype = AF_INET6;
6607 < #endif
6608 < }
6609 <    break;
6610 <
6611 <  case 428:
6612 <
6613 < /* Line 1455 of yacc.c  */
6614 < #line 2677 "ircd_parser.y"
5549 >  case 402:
5550 > /* Line 1787 of yacc.c  */
5551 > #line 2114 "conf_parser.y"
5552      {
5553    if (conf_parser_ctx.pass == 2)
5554 <  {
6618 <    MyFree(yy_aconf->fakename);
6619 <    DupString(yy_aconf->fakename, yylval.string);
6620 <  }
5554 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5555   }
5556      break;
5557  
5558 <  case 429:
5559 <
5560 < /* Line 1455 of yacc.c  */
6627 < #line 2686 "ircd_parser.y"
5558 >  case 403:
5559 > /* Line 1787 of yacc.c  */
5560 > #line 2120 "conf_parser.y"
5561      {
5562 < }
6630 <    break;
6631 <
6632 <  case 433:
6633 <
6634 < /* Line 1455 of yacc.c  */
6635 < #line 2690 "ircd_parser.y"
6636 <    { not_atom = 1; }
5562 >  if (conf_parser_ctx.pass != 2)
5563      break;
5564  
5565 <  case 435:
5566 <
5567 < /* Line 1455 of yacc.c  */
5568 < #line 2691 "ircd_parser.y"
5569 <    { not_atom = 0; }
5570 <    break;
6645 <
6646 <  case 437:
6647 <
6648 < /* Line 1455 of yacc.c  */
6649 < #line 2694 "ircd_parser.y"
6650 <    {
6651 <  if (conf_parser_ctx.pass == 2)
6652 < #ifndef HAVE_LIBZ
6653 <    yyerror("Ignoring flags = compressed; -- no zlib support");
6654 < #else
6655 < {
6656 <   if (not_atom)ClearConfCompressed(yy_aconf);
6657 <   else SetConfCompressed(yy_aconf);
6658 < }
6659 < #endif
5565 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5566 >    conf_error_report("Server passwords cannot begin with a colon");
5567 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5568 >    conf_error_report("Server passwords cannot contain spaces");
5569 >  else
5570 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5571   }
5572      break;
5573  
5574 <  case 438:
5575 <
5576 < /* Line 1455 of yacc.c  */
6666 < #line 2705 "ircd_parser.y"
5574 >  case 404:
5575 > /* Line 1787 of yacc.c  */
5576 > #line 2133 "conf_parser.y"
5577      {
5578 <  if (conf_parser_ctx.pass == 2)
6669 <  {
6670 <    if (not_atom)ClearConfCryptLink(yy_aconf);
6671 <    else SetConfCryptLink(yy_aconf);
6672 <  }
6673 < }
5578 >  if (conf_parser_ctx.pass != 2)
5579      break;
5580  
5581 <  case 439:
5582 <
5583 < /* Line 1455 of yacc.c  */
5584 < #line 2712 "ircd_parser.y"
5585 <    {
5586 <  if (conf_parser_ctx.pass == 2)
6682 <  {
6683 <    if (not_atom)ClearConfAllowAutoConn(yy_aconf);
6684 <    else SetConfAllowAutoConn(yy_aconf);
6685 <  }
5581 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5582 >    conf_error_report("Server passwords cannot begin with a colon");
5583 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5584 >    conf_error_report("Server passwords cannot contain spaces");
5585 >  else
5586 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5587   }
5588      break;
5589  
5590 <  case 440:
5591 <
5592 < /* Line 1455 of yacc.c  */
6692 < #line 2719 "ircd_parser.y"
5590 >  case 405:
5591 > /* Line 1787 of yacc.c  */
5592 > #line 2146 "conf_parser.y"
5593      {
5594    if (conf_parser_ctx.pass == 2)
5595 <  {
6696 <    if (not_atom)ClearConfAwayBurst(yy_aconf);
6697 <    else SetConfAwayBurst(yy_aconf);
6698 <  }
5595 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5596   }
5597      break;
5598  
5599 <  case 441:
5600 <
5601 < /* Line 1455 of yacc.c  */
6705 < #line 2726 "ircd_parser.y"
5599 >  case 406:
5600 > /* Line 1787 of yacc.c  */
5601 > #line 2152 "conf_parser.y"
5602      {
5603    if (conf_parser_ctx.pass == 2)
5604 <  {
6709 <    if (not_atom)ClearConfTopicBurst(yy_aconf);
6710 <    else SetConfTopicBurst(yy_aconf);
6711 <  }
5604 >    block_state.port.value = (yyvsp[(3) - (4)].number);
5605   }
5606      break;
5607  
5608 <  case 442:
5609 <
5610 < /* Line 1455 of yacc.c  */
6718 < #line 2736 "ircd_parser.y"
5608 >  case 407:
5609 > /* Line 1787 of yacc.c  */
5610 > #line 2158 "conf_parser.y"
5611      {
6720 #ifdef HAVE_LIBCRYPTO
5612    if (conf_parser_ctx.pass == 2)
5613 <  {
6723 <    BIO *file;
6724 <
6725 <    if (yy_aconf->rsa_public_key != NULL)
6726 <    {
6727 <      RSA_free(yy_aconf->rsa_public_key);
6728 <      yy_aconf->rsa_public_key = NULL;
6729 <    }
6730 <
6731 <    if (yy_aconf->rsa_public_key_file != NULL)
6732 <    {
6733 <      MyFree(yy_aconf->rsa_public_key_file);
6734 <      yy_aconf->rsa_public_key_file = NULL;
6735 <    }
6736 <
6737 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
6738 <
6739 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
6740 <    {
6741 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
6742 <      break;
6743 <    }
6744 <
6745 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
6746 <
6747 <    if (yy_aconf->rsa_public_key == NULL)
6748 <    {
6749 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
6750 <      break;
6751 <    }
6752 <      
6753 <    BIO_set_close(file, BIO_CLOSE);
6754 <    BIO_free(file);
6755 <  }
6756 < #endif /* HAVE_LIBCRYPTO */
5613 >    block_state.aftype.value = AF_INET;
5614   }
5615      break;
5616  
5617 <  case 443:
5618 <
5619 < /* Line 1455 of yacc.c  */
6763 < #line 2777 "ircd_parser.y"
5617 >  case 408:
5618 > /* Line 1787 of yacc.c  */
5619 > #line 2162 "conf_parser.y"
5620      {
5621 + #ifdef IPV6
5622    if (conf_parser_ctx.pass == 2)
5623 <  {
5624 <    if (yylval.number)
6768 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
6769 <    else
6770 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
6771 <  }
5623 >    block_state.aftype.value = AF_INET6;
5624 > #endif
5625   }
5626      break;
5627  
5628 <  case 444:
5629 <
5630 < /* Line 1455 of yacc.c  */
6778 < #line 2788 "ircd_parser.y"
5628 >  case 409:
5629 > /* Line 1787 of yacc.c  */
5630 > #line 2170 "conf_parser.y"
5631      {
5632 <  if (conf_parser_ctx.pass == 2)
6781 <  {
6782 <    if (yylval.number)
6783 <      yy_aconf->flags |= CONF_FLAGS_CRYPTLINK;
6784 <    else
6785 <      yy_aconf->flags &= ~CONF_FLAGS_CRYPTLINK;
6786 <  }
5632 >  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5633   }
5634      break;
5635  
5636 <  case 445:
5637 <
5638 < /* Line 1455 of yacc.c  */
6793 < #line 2799 "ircd_parser.y"
5636 >  case 413:
5637 > /* Line 1787 of yacc.c  */
5638 > #line 2176 "conf_parser.y"
5639      {
5640    if (conf_parser_ctx.pass == 2)
5641 <  {
6797 <    if (yylval.number)
6798 < #ifndef HAVE_LIBZ
6799 <      yyerror("Ignoring compressed=yes; -- no zlib support");
6800 < #else
6801 <      yy_aconf->flags |= CONF_FLAGS_COMPRESSED;
6802 < #endif
6803 <    else
6804 <      yy_aconf->flags &= ~CONF_FLAGS_COMPRESSED;
6805 <  }
5641 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5642   }
5643      break;
5644  
5645 <  case 446:
5646 <
5647 < /* Line 1455 of yacc.c  */
6812 < #line 2814 "ircd_parser.y"
5645 >  case 414:
5646 > /* Line 1787 of yacc.c  */
5647 > #line 2180 "conf_parser.y"
5648      {
5649    if (conf_parser_ctx.pass == 2)
5650 <  {
6816 <    if (yylval.number)
6817 <      yy_aconf->flags |= CONF_FLAGS_ALLOW_AUTO_CONN;
6818 <    else
6819 <      yy_aconf->flags &= ~CONF_FLAGS_ALLOW_AUTO_CONN;
6820 <  }
5650 >    block_state.flags.value |= CONF_FLAGS_SSL;
5651   }
5652      break;
5653  
5654 <  case 447:
5655 <
5656 < /* Line 1455 of yacc.c  */
6827 < #line 2825 "ircd_parser.y"
5654 >  case 415:
5655 > /* Line 1787 of yacc.c  */
5656 > #line 2186 "conf_parser.y"
5657      {
5658    if (conf_parser_ctx.pass == 2)
5659    {
5660      if (yylval.number)
5661 <      SetConfTopicBurst(yy_aconf);
5661 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5662      else
5663 <      ClearConfTopicBurst(yy_aconf);
5663 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5664    }
5665   }
5666      break;
5667  
5668 <  case 448:
5669 <
5670 < /* Line 1455 of yacc.c  */
6842 < #line 2836 "ircd_parser.y"
5668 >  case 416:
5669 > /* Line 1787 of yacc.c  */
5670 > #line 2197 "conf_parser.y"
5671      {
5672    if (conf_parser_ctx.pass == 2)
5673 <  {
6846 <    struct CollectItem *yy_tmp;
6847 <
6848 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6849 <    DupString(yy_tmp->host, yylval.string);
6850 <    DupString(yy_tmp->user, "*");
6851 <    dlinkAdd(yy_tmp, &yy_tmp->node, &hub_conf_list);
6852 <  }
5673 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5674   }
5675      break;
5676  
5677 <  case 449:
5678 <
5679 < /* Line 1455 of yacc.c  */
6859 < #line 2849 "ircd_parser.y"
5677 >  case 417:
5678 > /* Line 1787 of yacc.c  */
5679 > #line 2203 "conf_parser.y"
5680      {
5681    if (conf_parser_ctx.pass == 2)
5682 <  {
6863 <    struct CollectItem *yy_tmp;
6864 <
6865 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6866 <    DupString(yy_tmp->host, yylval.string);
6867 <    DupString(yy_tmp->user, "*");
6868 <    dlinkAdd(yy_tmp, &yy_tmp->node, &leaf_conf_list);
6869 <  }
5682 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5683   }
5684      break;
5685  
5686 <  case 450:
5687 <
5688 < /* Line 1455 of yacc.c  */
6876 < #line 2862 "ircd_parser.y"
5686 >  case 418:
5687 > /* Line 1787 of yacc.c  */
5688 > #line 2209 "conf_parser.y"
5689      {
5690    if (conf_parser_ctx.pass == 2)
5691 <  {
6880 <    MyFree(class_name);
6881 <    DupString(class_name, yylval.string);
6882 <  }
5691 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5692   }
5693      break;
5694  
5695 <  case 451:
5696 <
5697 < /* Line 1455 of yacc.c  */
6889 < #line 2871 "ircd_parser.y"
5695 >  case 419:
5696 > /* Line 1787 of yacc.c  */
5697 > #line 2215 "conf_parser.y"
5698      {
5699   #ifdef HAVE_LIBCRYPTO
5700    if (conf_parser_ctx.pass == 2)
5701 <  {
6894 <    struct EncCapability *ecap;
6895 <    const char *cipher_name;
6896 <    int found = 0;
6897 <
6898 <    yy_aconf->cipher_preference = NULL;
6899 <    cipher_name = yylval.string;
6900 <
6901 <    for (ecap = CipherTable; ecap->name; ecap++)
6902 <    {
6903 <      if ((irccmp(ecap->name, cipher_name) == 0) &&
6904 <          (ecap->cap & CAP_ENC_MASK))
6905 <      {
6906 <        yy_aconf->cipher_preference = ecap;
6907 <        found = 1;
6908 <        break;
6909 <      }
6910 <    }
6911 <
6912 <    if (!found)
6913 <      yyerror("Invalid cipher");
6914 <  }
5701 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5702   #else
5703    if (conf_parser_ctx.pass == 2)
5704 <    yyerror("Ignoring cipher_preference -- no OpenSSL support");
5704 >    conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5705   #endif
5706   }
5707      break;
5708  
5709 <  case 452:
5710 <
5711 < /* Line 1455 of yacc.c  */
6925 < #line 2906 "ircd_parser.y"
5709 >  case 420:
5710 > /* Line 1787 of yacc.c  */
5711 > #line 2230 "conf_parser.y"
5712      {
5713    if (conf_parser_ctx.pass == 2)
5714 <  {
6929 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
6930 <    regex_ban = 0;
6931 <  }
5714 >    reset_block_state();
5715   }
5716      break;
5717  
5718 <  case 453:
5719 <
5720 < /* Line 1455 of yacc.c  */
6938 < #line 2913 "ircd_parser.y"
6939 <    {
6940 <  if (conf_parser_ctx.pass == 2)
6941 <  {
6942 <    if (userbuf[0] && hostbuf[0])
5718 >  case 421:
5719 > /* Line 1787 of yacc.c  */
5720 > #line 2234 "conf_parser.y"
5721      {
5722 <      if (regex_ban)
6945 <      {
6946 <        pcre *exp_user = NULL;
6947 <        pcre *exp_host = NULL;
6948 <        const char *errptr = NULL;
5722 >  struct MaskItem *conf = NULL;
5723  
5724 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
6951 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
6952 <        {
6953 <          ilog(L_ERROR, "Failed to add regular expression based K-Line: %s",
6954 <               errptr);
6955 <          break;
6956 <        }
6957 <
6958 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
6959 <        yy_aconf->regexuser = exp_user;
6960 <        yy_aconf->regexhost = exp_host;
6961 <
6962 <        DupString(yy_aconf->user, userbuf);
6963 <        DupString(yy_aconf->host, hostbuf);
6964 <
6965 <        if (reasonbuf[0])
6966 <          DupString(yy_aconf->reason, reasonbuf);
6967 <        else
6968 <          DupString(yy_aconf->reason, "No reason");
6969 <      }
6970 <      else
6971 <      {
6972 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
6973 <
6974 <        DupString(yy_aconf->user, userbuf);
6975 <        DupString(yy_aconf->host, hostbuf);
6976 <
6977 <        if (reasonbuf[0])
6978 <          DupString(yy_aconf->reason, reasonbuf);
6979 <        else
6980 <          DupString(yy_aconf->reason, "No reason");
6981 <        add_conf_by_address(CONF_KILL, yy_aconf);
6982 <      }
6983 <    }
6984 <
6985 <    yy_aconf = NULL;
6986 <  }
6987 < }
5724 >  if (conf_parser_ctx.pass != 2)
5725      break;
5726  
5727 <  case 454:
5728 <
6992 < /* Line 1455 of yacc.c  */
6993 < #line 2964 "ircd_parser.y"
6994 <    {
6995 < }
5727 >  if (!block_state.user.buf[0] ||
5728 >      !block_state.host.buf[0])
5729      break;
5730  
5731 <  case 458:
5731 >  conf = conf_make(CONF_KLINE);
5732 >  conf->user = xstrdup(block_state.user.buf);
5733 >  conf->host = xstrdup(block_state.host.buf);
5734  
5735 < /* Line 1455 of yacc.c  */
5736 < #line 2969 "ircd_parser.y"
5737 <    {
5738 <  if (conf_parser_ctx.pass == 2)
5739 <    regex_ban = 1;
5735 >  if (block_state.rpass.buf[0])
5736 >    conf->reason = xstrdup(block_state.rpass.buf);
5737 >  else
5738 >    conf->reason = xstrdup(CONF_NOREASON);
5739 >  add_conf_by_address(CONF_KLINE, conf);
5740   }
5741      break;
5742  
5743 <  case 465:
5744 <
5745 < /* Line 1455 of yacc.c  */
7011 < #line 2978 "ircd_parser.y"
5743 >  case 427:
5744 > /* Line 1787 of yacc.c  */
5745 > #line 2259 "conf_parser.y"
5746      {
5747 +
5748    if (conf_parser_ctx.pass == 2)
5749    {
5750      struct split_nuh_item nuh;
5751  
5752      nuh.nuhmask  = yylval.string;
5753      nuh.nickptr  = NULL;
5754 <    nuh.userptr  = userbuf;
5755 <    nuh.hostptr  = hostbuf;
5754 >    nuh.userptr  = block_state.user.buf;
5755 >    nuh.hostptr  = block_state.host.buf;
5756  
5757      nuh.nicksize = 0;
5758 <    nuh.usersize = sizeof(userbuf);
5759 <    nuh.hostsize = sizeof(hostbuf);
5758 >    nuh.usersize = sizeof(block_state.user.buf);
5759 >    nuh.hostsize = sizeof(block_state.host.buf);
5760  
5761      split_nuh(&nuh);
5762    }
5763   }
5764      break;
5765  
5766 <  case 466:
5767 <
5768 < /* Line 1455 of yacc.c  */
7034 < #line 2997 "ircd_parser.y"
5766 >  case 428:
5767 > /* Line 1787 of yacc.c  */
5768 > #line 2279 "conf_parser.y"
5769      {
5770    if (conf_parser_ctx.pass == 2)
5771 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5771 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5772   }
5773      break;
5774  
5775 <  case 467:
5776 <
5777 < /* Line 1455 of yacc.c  */
7044 < #line 3006 "ircd_parser.y"
5775 >  case 429:
5776 > /* Line 1787 of yacc.c  */
5777 > #line 2288 "conf_parser.y"
5778      {
5779    if (conf_parser_ctx.pass == 2)
5780 <    hostbuf[0] = reasonbuf[0] = '\0';
5780 >    reset_block_state();
5781   }
5782      break;
5783  
5784 <  case 468:
5785 <
5786 < /* Line 1455 of yacc.c  */
7054 < #line 3010 "ircd_parser.y"
5784 >  case 430:
5785 > /* Line 1787 of yacc.c  */
5786 > #line 2292 "conf_parser.y"
5787      {
5788 <  if (conf_parser_ctx.pass == 2)
5788 >  struct MaskItem *conf = NULL;
5789 >
5790 >  if (conf_parser_ctx.pass != 2)
5791 >    break;
5792 >
5793 >  if (!block_state.addr.buf[0])
5794 >    break;
5795 >
5796 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5797    {
5798 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
5799 <    {
7060 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
7061 <      DupString(yy_aconf->host, hostbuf);
5798 >    conf = conf_make(CONF_DLINE);
5799 >    conf->host = xstrdup(block_state.addr.buf);
5800  
5801 <      if (reasonbuf[0])
5802 <        DupString(yy_aconf->reason, reasonbuf);
5803 <      else
5804 <        DupString(yy_aconf->reason, "No reason");
5805 <      add_conf_by_address(CONF_DLINE, yy_aconf);
7068 <      yy_aconf = NULL;
7069 <    }
5801 >    if (block_state.rpass.buf[0])
5802 >      conf->reason = xstrdup(block_state.rpass.buf);
5803 >    else
5804 >      conf->reason = xstrdup(CONF_NOREASON);
5805 >    add_conf_by_address(CONF_DLINE, conf);
5806    }
5807   }
5808      break;
5809  
5810 <  case 474:
5811 <
5812 < /* Line 1455 of yacc.c  */
7077 < #line 3032 "ircd_parser.y"
5810 >  case 436:
5811 > /* Line 1787 of yacc.c  */
5812 > #line 2318 "conf_parser.y"
5813      {
5814    if (conf_parser_ctx.pass == 2)
5815 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5815 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5816   }
5817      break;
5818  
5819 <  case 475:
5820 <
5821 < /* Line 1455 of yacc.c  */
7087 < #line 3038 "ircd_parser.y"
5819 >  case 437:
5820 > /* Line 1787 of yacc.c  */
5821 > #line 2324 "conf_parser.y"
5822      {
5823    if (conf_parser_ctx.pass == 2)
5824 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5824 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5825   }
5826      break;
5827  
5828 <  case 481:
5829 <
5830 < /* Line 1455 of yacc.c  */
7097 < #line 3052 "ircd_parser.y"
5828 >  case 443:
5829 > /* Line 1787 of yacc.c  */
5830 > #line 2338 "conf_parser.y"
5831      {
5832    if (conf_parser_ctx.pass == 2)
5833    {
5834      if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5835      {
5836 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5837 <      DupString(yy_aconf->host, yylval.string);
5836 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5837 >      conf->host = xstrdup(yylval.string);
5838  
5839 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
7107 <      yy_aconf = NULL;
5839 >      add_conf_by_address(CONF_EXEMPT, conf);
5840      }
5841    }
5842   }
5843      break;
5844  
5845 <  case 482:
5846 <
5847 < /* Line 1455 of yacc.c  */
7116 < #line 3070 "ircd_parser.y"
5845 >  case 444:
5846 > /* Line 1787 of yacc.c  */
5847 > #line 2355 "conf_parser.y"
5848      {
5849    if (conf_parser_ctx.pass == 2)
5850 <  {
7120 <    regex_ban = 0;
7121 <    reasonbuf[0] = gecos_name[0] = '\0';
7122 <  }
5850 >    reset_block_state();
5851   }
5852      break;
5853  
5854 <  case 483:
5855 <
5856 < /* Line 1455 of yacc.c  */
7129 < #line 3077 "ircd_parser.y"
7130 <    {
7131 <  if (conf_parser_ctx.pass == 2)
7132 <  {
7133 <    if (gecos_name[0])
5854 >  case 445:
5855 > /* Line 1787 of yacc.c  */
5856 > #line 2359 "conf_parser.y"
5857      {
5858 <      if (regex_ban)
7136 <      {
7137 <        pcre *exp_p = NULL;
7138 <        const char *errptr = NULL;
7139 <
7140 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
7141 <        {
7142 <          ilog(L_ERROR, "Failed to add regular expression based X-Line: %s",
7143 <               errptr);
7144 <          break;
7145 <        }
7146 <
7147 <        yy_conf = make_conf_item(RXLINE_TYPE);
7148 <        yy_conf->regexpname = exp_p;
7149 <      }
7150 <      else
7151 <        yy_conf = make_conf_item(XLINE_TYPE);
5858 >  struct MaskItem *conf = NULL;
5859  
5860 <      yy_match_item = map_to_conf(yy_conf);
7154 <      DupString(yy_conf->name, gecos_name);
7155 <
7156 <      if (reasonbuf[0])
7157 <        DupString(yy_match_item->reason, reasonbuf);
7158 <      else
7159 <        DupString(yy_match_item->reason, "No reason");
7160 <    }
7161 <  }
7162 < }
5860 >  if (conf_parser_ctx.pass != 2)
5861      break;
5862  
5863 <  case 484:
7166 <
7167 < /* Line 1455 of yacc.c  */
7168 < #line 3112 "ircd_parser.y"
7169 <    {
7170 < }
5863 >  if (!block_state.name.buf[0])
5864      break;
5865  
5866 <  case 488:
5866 >  conf = conf_make(CONF_XLINE);
5867 >  conf->name = xstrdup(block_state.name.buf);
5868  
5869 < /* Line 1455 of yacc.c  */
5870 < #line 3117 "ircd_parser.y"
5871 <    {
5872 <  if (conf_parser_ctx.pass == 2)
7179 <    regex_ban = 1;
5869 >  if (block_state.rpass.buf[0])
5870 >    conf->reason = xstrdup(block_state.rpass.buf);
5871 >  else
5872 >    conf->reason = xstrdup(CONF_NOREASON);
5873   }
5874      break;
5875  
5876 <  case 495:
5877 <
5878 < /* Line 1455 of yacc.c  */
7186 < #line 3126 "ircd_parser.y"
5876 >  case 451:
5877 > /* Line 1787 of yacc.c  */
5878 > #line 2381 "conf_parser.y"
5879      {
5880    if (conf_parser_ctx.pass == 2)
5881 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5881 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5882   }
5883      break;
5884  
5885 <  case 496:
5886 <
5887 < /* Line 1455 of yacc.c  */
7196 < #line 3132 "ircd_parser.y"
5885 >  case 452:
5886 > /* Line 1787 of yacc.c  */
5887 > #line 2387 "conf_parser.y"
5888      {
5889    if (conf_parser_ctx.pass == 2)
5890 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5890 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5891   }
5892      break;
5893  
5894 <  case 557:
5895 <
5896 < /* Line 1455 of yacc.c  */
7206 < #line 3177 "ircd_parser.y"
5894 >  case 504:
5895 > /* Line 1787 of yacc.c  */
5896 > #line 2430 "conf_parser.y"
5897      {
5898    ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5899   }
5900      break;
5901  
5902 <  case 558:
5903 <
5904 < /* Line 1455 of yacc.c  */
7215 < #line 3182 "ircd_parser.y"
5902 >  case 505:
5903 > /* Line 1787 of yacc.c  */
5904 > #line 2435 "conf_parser.y"
5905      {
5906 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5906 >  if (conf_parser_ctx.pass == 2)
5907 >    ConfigFileEntry.glines = yylval.number;
5908   }
5909      break;
5910  
5911 <  case 559:
5912 <
5913 < /* Line 1455 of yacc.c  */
7224 < #line 3187 "ircd_parser.y"
5911 >  case 506:
5912 > /* Line 1787 of yacc.c  */
5913 > #line 2441 "conf_parser.y"
5914      {
5915 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5915 >  if (conf_parser_ctx.pass == 2)
5916 >    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5917   }
5918      break;
5919  
5920 <  case 560:
5921 <
5922 < /* Line 1455 of yacc.c  */
7233 < #line 3192 "ircd_parser.y"
5920 >  case 507:
5921 > /* Line 1787 of yacc.c  */
5922 > #line 2447 "conf_parser.y"
5923      {
5924 <  ConfigFileEntry.burst_away = yylval.number;
5924 >  if (conf_parser_ctx.pass == 2)
5925 >    ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5926   }
5927      break;
5928  
5929 <  case 561:
5930 <
5931 < /* Line 1455 of yacc.c  */
7242 < #line 3197 "ircd_parser.y"
5929 >  case 508:
5930 > /* Line 1787 of yacc.c  */
5931 > #line 2453 "conf_parser.y"
5932      {
5933 <  ConfigFileEntry.use_whois_actually = yylval.number;
5933 >  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5934   }
5935      break;
5936  
5937 <  case 562:
5938 <
5939 < /* Line 1455 of yacc.c  */
7251 < #line 3202 "ircd_parser.y"
5937 >  case 509:
5938 > /* Line 1787 of yacc.c  */
5939 > #line 2458 "conf_parser.y"
5940      {
5941 <  GlobalSetOptions.rejecttime = yylval.number;
5941 >  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5942   }
5943      break;
5944  
5945 <  case 563:
5946 <
5947 < /* Line 1455 of yacc.c  */
7260 < #line 3207 "ircd_parser.y"
5945 >  case 510:
5946 > /* Line 1787 of yacc.c  */
5947 > #line 2463 "conf_parser.y"
5948      {
5949    ConfigFileEntry.tkline_expire_notices = yylval.number;
5950   }
5951      break;
5952  
5953 <  case 564:
5954 <
5955 < /* Line 1455 of yacc.c  */
7269 < #line 3212 "ircd_parser.y"
5953 >  case 511:
5954 > /* Line 1787 of yacc.c  */
5955 > #line 2468 "conf_parser.y"
5956      {
5957    ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5958   }
5959      break;
5960  
5961 <  case 565:
5962 <
5963 < /* Line 1455 of yacc.c  */
7278 < #line 3217 "ircd_parser.y"
5961 >  case 512:
5962 > /* Line 1787 of yacc.c  */
5963 > #line 2473 "conf_parser.y"
5964      {
5965    ConfigFileEntry.hide_spoof_ips = yylval.number;
5966   }
5967      break;
5968  
5969 <  case 566:
5970 <
5971 < /* Line 1455 of yacc.c  */
7287 < #line 3222 "ircd_parser.y"
5969 >  case 513:
5970 > /* Line 1787 of yacc.c  */
5971 > #line 2478 "conf_parser.y"
5972      {
5973    ConfigFileEntry.ignore_bogus_ts = yylval.number;
5974   }
5975      break;
5976  
5977 <  case 567:
5978 <
5979 < /* Line 1455 of yacc.c  */
7296 < #line 3227 "ircd_parser.y"
7297 <    {
7298 <  ConfigFileEntry.disable_remote = yylval.number;
7299 < }
7300 <    break;
7301 <
7302 <  case 568:
7303 <
7304 < /* Line 1455 of yacc.c  */
7305 < #line 3232 "ircd_parser.y"
5977 >  case 514:
5978 > /* Line 1787 of yacc.c  */
5979 > #line 2483 "conf_parser.y"
5980      {
5981    ConfigFileEntry.failed_oper_notice = yylval.number;
5982   }
5983      break;
5984  
5985 <  case 569:
5986 <
5987 < /* Line 1455 of yacc.c  */
7314 < #line 3237 "ircd_parser.y"
5985 >  case 515:
5986 > /* Line 1787 of yacc.c  */
5987 > #line 2488 "conf_parser.y"
5988      {
5989    ConfigFileEntry.anti_nick_flood = yylval.number;
5990   }
5991      break;
5992  
5993 <  case 570:
5994 <
5995 < /* Line 1455 of yacc.c  */
7323 < #line 3242 "ircd_parser.y"
5993 >  case 516:
5994 > /* Line 1787 of yacc.c  */
5995 > #line 2493 "conf_parser.y"
5996      {
5997    ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5998   }
5999      break;
6000  
6001 <  case 571:
6002 <
6003 < /* Line 1455 of yacc.c  */
7332 < #line 3247 "ircd_parser.y"
6001 >  case 517:
6002 > /* Line 1787 of yacc.c  */
6003 > #line 2498 "conf_parser.y"
6004      {
6005    ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
6006   }
6007      break;
6008  
6009 <  case 572:
6010 <
6011 < /* Line 1455 of yacc.c  */
7341 < #line 3252 "ircd_parser.y"
6009 >  case 518:
6010 > /* Line 1787 of yacc.c  */
6011 > #line 2503 "conf_parser.y"
6012      {
6013    ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
6014   }
6015      break;
6016  
6017 <  case 573:
6018 <
6019 < /* Line 1455 of yacc.c  */
7350 < #line 3257 "ircd_parser.y"
6017 >  case 519:
6018 > /* Line 1787 of yacc.c  */
6019 > #line 2508 "conf_parser.y"
6020      {
6021    ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
6022   }
6023      break;
6024  
6025 <  case 574:
6026 <
6027 < /* Line 1455 of yacc.c  */
7359 < #line 3262 "ircd_parser.y"
6025 >  case 520:
6026 > /* Line 1787 of yacc.c  */
6027 > #line 2513 "conf_parser.y"
6028      {
6029    ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
6030   }
6031      break;
6032  
6033 <  case 575:
6034 <
6035 < /* Line 1455 of yacc.c  */
7368 < #line 3267 "ircd_parser.y"
6033 >  case 521:
6034 > /* Line 1787 of yacc.c  */
6035 > #line 2518 "conf_parser.y"
6036      {
6037    if (conf_parser_ctx.pass == 2)
6038      ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
6039   }
6040      break;
6041  
6042 <  case 576:
6043 <
6044 < /* Line 1455 of yacc.c  */
7378 < #line 3273 "ircd_parser.y"
6042 >  case 522:
6043 > /* Line 1787 of yacc.c  */
6044 > #line 2524 "conf_parser.y"
6045      {
6046    if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
6047    {
6048 <    ilog(L_CRIT, "You haven't read your config file properly.");
6049 <    ilog(L_CRIT, "There is a line in the example conf that will kill your server if not removed.");
6050 <    ilog(L_CRIT, "Consider actually reading/editing the conf file, and removing this line.");
6048 >    ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
6049 >    ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
6050 >    ilog(LOG_TYPE_IRCD, "Consider actually reading/editing the conf file, and removing this line.");
6051      exit(0);
6052    }
6053   }
6054      break;
6055  
6056 <  case 577:
6057 <
6058 < /* Line 1455 of yacc.c  */
7393 < #line 3284 "ircd_parser.y"
7394 <    {
7395 <  ConfigFileEntry.kline_with_reason = yylval.number;
7396 < }
7397 <    break;
7398 <
7399 <  case 578:
7400 <
7401 < /* Line 1455 of yacc.c  */
7402 < #line 3289 "ircd_parser.y"
7403 <    {
7404 <  if (conf_parser_ctx.pass == 2)
7405 <  {
7406 <    MyFree(ConfigFileEntry.kline_reason);
7407 <    DupString(ConfigFileEntry.kline_reason, yylval.string);
7408 <  }
7409 < }
7410 <    break;
7411 <
7412 <  case 579:
7413 <
7414 < /* Line 1455 of yacc.c  */
7415 < #line 3298 "ircd_parser.y"
6056 >  case 523:
6057 > /* Line 1787 of yacc.c  */
6058 > #line 2535 "conf_parser.y"
6059      {
6060    ConfigFileEntry.invisible_on_connect = yylval.number;
6061   }
6062      break;
6063  
6064 <  case 580:
6065 <
6066 < /* Line 1455 of yacc.c  */
7424 < #line 3303 "ircd_parser.y"
6064 >  case 524:
6065 > /* Line 1787 of yacc.c  */
6066 > #line 2540 "conf_parser.y"
6067      {
6068    ConfigFileEntry.warn_no_nline = yylval.number;
6069   }
6070      break;
6071  
6072 <  case 581:
6073 <
6074 < /* Line 1455 of yacc.c  */
7433 < #line 3308 "ircd_parser.y"
6072 >  case 525:
6073 > /* Line 1787 of yacc.c  */
6074 > #line 2545 "conf_parser.y"
6075      {
6076    ConfigFileEntry.stats_e_disabled = yylval.number;
6077   }
6078      break;
6079  
6080 <  case 582:
6081 <
6082 < /* Line 1455 of yacc.c  */
7442 < #line 3313 "ircd_parser.y"
6080 >  case 526:
6081 > /* Line 1787 of yacc.c  */
6082 > #line 2550 "conf_parser.y"
6083      {
6084    ConfigFileEntry.stats_o_oper_only = yylval.number;
6085   }
6086      break;
6087  
6088 <  case 583:
6089 <
6090 < /* Line 1455 of yacc.c  */
7451 < #line 3318 "ircd_parser.y"
6088 >  case 527:
6089 > /* Line 1787 of yacc.c  */
6090 > #line 2555 "conf_parser.y"
6091      {
6092    ConfigFileEntry.stats_P_oper_only = yylval.number;
6093   }
6094      break;
6095  
6096 <  case 584:
6097 <
6098 < /* Line 1455 of yacc.c  */
7460 < #line 3323 "ircd_parser.y"
6096 >  case 528:
6097 > /* Line 1787 of yacc.c  */
6098 > #line 2560 "conf_parser.y"
6099      {
6100    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
6101   }
6102      break;
6103  
6104 <  case 585:
6105 <
6106 < /* Line 1455 of yacc.c  */
7469 < #line 3326 "ircd_parser.y"
6104 >  case 529:
6105 > /* Line 1787 of yacc.c  */
6106 > #line 2563 "conf_parser.y"
6107      {
6108    ConfigFileEntry.stats_k_oper_only = 1;
6109   }
6110      break;
6111  
6112 <  case 586:
6113 <
6114 < /* Line 1455 of yacc.c  */
7478 < #line 3331 "ircd_parser.y"
6112 >  case 530:
6113 > /* Line 1787 of yacc.c  */
6114 > #line 2568 "conf_parser.y"
6115      {
6116    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
6117   }
6118      break;
6119  
6120 <  case 587:
6121 <
6122 < /* Line 1455 of yacc.c  */
7487 < #line 3334 "ircd_parser.y"
6120 >  case 531:
6121 > /* Line 1787 of yacc.c  */
6122 > #line 2571 "conf_parser.y"
6123      {
6124    ConfigFileEntry.stats_i_oper_only = 1;
6125   }
6126      break;
6127  
6128 <  case 588:
6129 <
6130 < /* Line 1455 of yacc.c  */
7496 < #line 3339 "ircd_parser.y"
6128 >  case 532:
6129 > /* Line 1787 of yacc.c  */
6130 > #line 2576 "conf_parser.y"
6131      {
6132    ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
6133   }
6134      break;
6135  
6136 <  case 589:
6137 <
6138 < /* Line 1455 of yacc.c  */
7505 < #line 3344 "ircd_parser.y"
6136 >  case 533:
6137 > /* Line 1787 of yacc.c  */
6138 > #line 2581 "conf_parser.y"
6139      {
6140    ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
6141   }
6142      break;
6143  
6144 <  case 590:
6145 <
6146 < /* Line 1455 of yacc.c  */
7514 < #line 3349 "ircd_parser.y"
6144 >  case 534:
6145 > /* Line 1787 of yacc.c  */
6146 > #line 2586 "conf_parser.y"
6147      {
6148    ConfigFileEntry.opers_bypass_callerid = yylval.number;
6149   }
6150      break;
6151  
6152 <  case 591:
6153 <
6154 < /* Line 1455 of yacc.c  */
7523 < #line 3354 "ircd_parser.y"
6152 >  case 535:
6153 > /* Line 1787 of yacc.c  */
6154 > #line 2591 "conf_parser.y"
6155      {
6156    ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
6157   }
6158      break;
6159  
6160 <  case 592:
6161 <
6162 < /* Line 1455 of yacc.c  */
7532 < #line 3359 "ircd_parser.y"
6160 >  case 536:
6161 > /* Line 1787 of yacc.c  */
6162 > #line 2596 "conf_parser.y"
6163      {
6164    ConfigFileEntry.short_motd = yylval.number;
6165   }
6166      break;
6167  
6168 <  case 593:
6169 <
6170 < /* Line 1455 of yacc.c  */
7541 < #line 3364 "ircd_parser.y"
6168 >  case 537:
6169 > /* Line 1787 of yacc.c  */
6170 > #line 2601 "conf_parser.y"
6171      {
6172    ConfigFileEntry.no_oper_flood = yylval.number;
6173   }
6174      break;
6175  
6176 <  case 594:
6177 <
6178 < /* Line 1455 of yacc.c  */
7550 < #line 3369 "ircd_parser.y"
6176 >  case 538:
6177 > /* Line 1787 of yacc.c  */
6178 > #line 2606 "conf_parser.y"
6179      {
6180    ConfigFileEntry.true_no_oper_flood = yylval.number;
6181   }
6182      break;
6183  
6184 <  case 595:
6185 <
6186 < /* Line 1455 of yacc.c  */
7559 < #line 3374 "ircd_parser.y"
6184 >  case 539:
6185 > /* Line 1787 of yacc.c  */
6186 > #line 2611 "conf_parser.y"
6187      {
6188    ConfigFileEntry.oper_pass_resv = yylval.number;
6189   }
6190      break;
6191  
6192 <  case 596:
6193 <
6194 < /* Line 1455 of yacc.c  */
7568 < #line 3379 "ircd_parser.y"
7569 <    {
7570 <  if (conf_parser_ctx.pass == 2)
7571 <  {
7572 <    if (strlen(yylval.string) > LOCALE_LENGTH-2)
7573 <      yylval.string[LOCALE_LENGTH-1] = '\0';
7574 <
7575 <    set_locale(yylval.string);
7576 <  }
7577 < }
7578 <    break;
7579 <
7580 <  case 597:
7581 <
7582 < /* Line 1455 of yacc.c  */
7583 < #line 3390 "ircd_parser.y"
7584 <    {
7585 <  ConfigFileEntry.idletime = (yyvsp[(3) - (4)].number);
7586 < }
7587 <    break;
7588 <
7589 <  case 598:
7590 <
7591 < /* Line 1455 of yacc.c  */
7592 < #line 3395 "ircd_parser.y"
6192 >  case 540:
6193 > /* Line 1787 of yacc.c  */
6194 > #line 2616 "conf_parser.y"
6195      {
6196    ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
6197   }
6198      break;
6199  
6200 <  case 599:
6201 <
6202 < /* Line 1455 of yacc.c  */
7601 < #line 3400 "ircd_parser.y"
6200 >  case 541:
6201 > /* Line 1787 of yacc.c  */
6202 > #line 2621 "conf_parser.y"
6203      {
6204    ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
6205   }
6206      break;
6207  
6208 <  case 600:
6209 <
6210 < /* Line 1455 of yacc.c  */
7610 < #line 3405 "ircd_parser.y"
7611 <    {
7612 <  if (conf_parser_ctx.pass == 2)
7613 <  {
7614 <    MyFree(ConfigFileEntry.servlink_path);
7615 <    DupString(ConfigFileEntry.servlink_path, yylval.string);
7616 <  }
7617 < }
7618 <    break;
7619 <
7620 <  case 601:
7621 <
7622 < /* Line 1455 of yacc.c  */
7623 < #line 3414 "ircd_parser.y"
6208 >  case 542:
6209 > /* Line 1787 of yacc.c  */
6210 > #line 2626 "conf_parser.y"
6211      {
6212 < #ifdef HAVE_LIBCRYPTO
7626 <  if (conf_parser_ctx.pass == 2)
7627 <  {
7628 <    struct EncCapability *ecap;
7629 <    const char *cipher_name;
7630 <    int found = 0;
7631 <
7632 <    ConfigFileEntry.default_cipher_preference = NULL;
7633 <    cipher_name = yylval.string;
7634 <
7635 <    for (ecap = CipherTable; ecap->name; ecap++)
7636 <    {
7637 <      if ((irccmp(ecap->name, cipher_name) == 0) &&
7638 <          (ecap->cap & CAP_ENC_MASK))
7639 <      {
7640 <        ConfigFileEntry.default_cipher_preference = ecap;
7641 <        found = 1;
7642 <        break;
7643 <      }
7644 <    }
7645 <
7646 <    if (!found)
7647 <      yyerror("Invalid cipher");
7648 <  }
7649 < #else
7650 <  if (conf_parser_ctx.pass == 2)
7651 <    yyerror("Ignoring default_cipher_preference -- no OpenSSL support");
7652 < #endif
6212 >  ConfigFileEntry.use_egd = yylval.number;
6213   }
6214      break;
6215  
6216 <  case 602:
6217 <
6218 < /* Line 1455 of yacc.c  */
7659 < #line 3446 "ircd_parser.y"
6216 >  case 543:
6217 > /* Line 1787 of yacc.c  */
6218 > #line 2631 "conf_parser.y"
6219      {
6220    if (conf_parser_ctx.pass == 2)
6221    {
6222 <    ConfigFileEntry.compression_level = (yyvsp[(3) - (4)].number);
6223 < #ifndef HAVE_LIBZ
7665 <    yyerror("Ignoring compression_level -- no zlib support");
7666 < #else
7667 <    if ((ConfigFileEntry.compression_level < 1) ||
7668 <        (ConfigFileEntry.compression_level > 9))
7669 <    {
7670 <      yyerror("Ignoring invalid compression_level, using default");
7671 <      ConfigFileEntry.compression_level = 0;
7672 <    }
7673 < #endif
6222 >    MyFree(ConfigFileEntry.egdpool_path);
6223 >    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6224    }
6225   }
6226      break;
6227  
6228 <  case 603:
6229 <
6230 < /* Line 1455 of yacc.c  */
7681 < #line 3464 "ircd_parser.y"
7682 <    {
7683 <  ConfigFileEntry.use_egd = yylval.number;
7684 < }
7685 <    break;
7686 <
7687 <  case 604:
7688 <
7689 < /* Line 1455 of yacc.c  */
7690 < #line 3469 "ircd_parser.y"
6228 >  case 544:
6229 > /* Line 1787 of yacc.c  */
6230 > #line 2640 "conf_parser.y"
6231      {
6232 <  if (conf_parser_ctx.pass == 2)
6232 >  if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6233    {
6234 <    MyFree(ConfigFileEntry.egdpool_path);
6235 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
6234 >    MyFree(ConfigFileEntry.service_name);
6235 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
6236    }
6237   }
6238      break;
6239  
6240 <  case 605:
6241 <
6242 < /* Line 1455 of yacc.c  */
7703 < #line 3478 "ircd_parser.y"
6240 >  case 545:
6241 > /* Line 1787 of yacc.c  */
6242 > #line 2649 "conf_parser.y"
6243      {
6244    ConfigFileEntry.ping_cookie = yylval.number;
6245   }
6246      break;
6247  
6248 <  case 606:
6249 <
6250 < /* Line 1455 of yacc.c  */
7712 < #line 3483 "ircd_parser.y"
6248 >  case 546:
6249 > /* Line 1787 of yacc.c  */
6250 > #line 2654 "conf_parser.y"
6251      {
6252    ConfigFileEntry.disable_auth = yylval.number;
6253   }
6254      break;
6255  
6256 <  case 607:
6257 <
6258 < /* Line 1455 of yacc.c  */
7721 < #line 3488 "ircd_parser.y"
6256 >  case 547:
6257 > /* Line 1787 of yacc.c  */
6258 > #line 2659 "conf_parser.y"
6259      {
6260    ConfigFileEntry.throttle_time = yylval.number;
6261   }
6262      break;
6263  
6264 <  case 608:
6265 <
6266 < /* Line 1455 of yacc.c  */
7730 < #line 3493 "ircd_parser.y"
6264 >  case 548:
6265 > /* Line 1787 of yacc.c  */
6266 > #line 2664 "conf_parser.y"
6267      {
6268    ConfigFileEntry.oper_umodes = 0;
6269   }
6270      break;
6271  
6272 <  case 612:
6273 <
6274 < /* Line 1455 of yacc.c  */
7739 < #line 3499 "ircd_parser.y"
6272 >  case 552:
6273 > /* Line 1787 of yacc.c  */
6274 > #line 2670 "conf_parser.y"
6275      {
6276    ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6277   }
6278      break;
6279  
6280 <  case 613:
6281 <
6282 < /* Line 1455 of yacc.c  */
7748 < #line 3502 "ircd_parser.y"
6280 >  case 553:
6281 > /* Line 1787 of yacc.c  */
6282 > #line 2673 "conf_parser.y"
6283      {
6284    ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6285   }
6286      break;
6287  
6288 <  case 614:
6289 <
6290 < /* Line 1455 of yacc.c  */
7757 < #line 3505 "ircd_parser.y"
7758 <    {
7759 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
7760 < }
7761 <    break;
7762 <
7763 <  case 615:
7764 <
7765 < /* Line 1455 of yacc.c  */
7766 < #line 3508 "ircd_parser.y"
6288 >  case 554:
6289 > /* Line 1787 of yacc.c  */
6290 > #line 2676 "conf_parser.y"
6291      {
6292    ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6293   }
6294      break;
6295  
6296 <  case 616:
6297 <
6298 < /* Line 1455 of yacc.c  */
7775 < #line 3511 "ircd_parser.y"
6296 >  case 555:
6297 > /* Line 1787 of yacc.c  */
6298 > #line 2679 "conf_parser.y"
6299      {
6300    ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6301   }
6302      break;
6303  
6304 <  case 617:
6305 <
6306 < /* Line 1455 of yacc.c  */
7784 < #line 3514 "ircd_parser.y"
6304 >  case 556:
6305 > /* Line 1787 of yacc.c  */
6306 > #line 2682 "conf_parser.y"
6307      {
6308    ConfigFileEntry.oper_umodes |= UMODE_FULL;
6309   }
6310      break;
6311  
6312 <  case 618:
6312 >  case 557:
6313 > /* Line 1787 of yacc.c  */
6314 > #line 2685 "conf_parser.y"
6315 >    {
6316 >  ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6317 > }
6318 >    break;
6319  
6320 < /* Line 1455 of yacc.c  */
6321 < #line 3517 "ircd_parser.y"
6320 >  case 558:
6321 > /* Line 1787 of yacc.c  */
6322 > #line 2688 "conf_parser.y"
6323      {
6324    ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6325   }
6326      break;
6327  
6328 <  case 619:
6329 <
6330 < /* Line 1455 of yacc.c  */
7802 < #line 3520 "ircd_parser.y"
6328 >  case 559:
6329 > /* Line 1787 of yacc.c  */
6330 > #line 2691 "conf_parser.y"
6331      {
6332    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6333   }
6334      break;
6335  
6336 <  case 620:
6337 <
6338 < /* Line 1455 of yacc.c  */
7811 < #line 3523 "ircd_parser.y"
6336 >  case 560:
6337 > /* Line 1787 of yacc.c  */
6338 > #line 2694 "conf_parser.y"
6339      {
6340    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6341   }
6342      break;
6343  
6344 <  case 621:
6345 <
6346 < /* Line 1455 of yacc.c  */
7820 < #line 3526 "ircd_parser.y"
6344 >  case 561:
6345 > /* Line 1787 of yacc.c  */
6346 > #line 2697 "conf_parser.y"
6347      {
6348    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6349   }
6350      break;
6351  
6352 <  case 622:
6353 <
6354 < /* Line 1455 of yacc.c  */
7829 < #line 3529 "ircd_parser.y"
6352 >  case 562:
6353 > /* Line 1787 of yacc.c  */
6354 > #line 2700 "conf_parser.y"
6355      {
6356    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6357   }
6358      break;
6359  
6360 <  case 623:
6361 <
6362 < /* Line 1455 of yacc.c  */
7838 < #line 3532 "ircd_parser.y"
6360 >  case 563:
6361 > /* Line 1787 of yacc.c  */
6362 > #line 2703 "conf_parser.y"
6363      {
6364    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6365   }
6366      break;
6367  
6368 <  case 624:
6369 <
6370 < /* Line 1455 of yacc.c  */
7847 < #line 3535 "ircd_parser.y"
6368 >  case 564:
6369 > /* Line 1787 of yacc.c  */
6370 > #line 2706 "conf_parser.y"
6371      {
6372    ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6373   }
6374      break;
6375  
6376 <  case 625:
6377 <
6378 < /* Line 1455 of yacc.c  */
7856 < #line 3538 "ircd_parser.y"
6376 >  case 565:
6377 > /* Line 1787 of yacc.c  */
6378 > #line 2709 "conf_parser.y"
6379      {
6380    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6381   }
6382      break;
6383  
6384 <  case 626:
6385 <
6386 < /* Line 1455 of yacc.c  */
7865 < #line 3541 "ircd_parser.y"
6384 >  case 566:
6385 > /* Line 1787 of yacc.c  */
6386 > #line 2712 "conf_parser.y"
6387      {
6388    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6389   }
6390      break;
6391  
6392 <  case 627:
6393 <
6394 < /* Line 1455 of yacc.c  */
7874 < #line 3544 "ircd_parser.y"
6392 >  case 567:
6393 > /* Line 1787 of yacc.c  */
6394 > #line 2715 "conf_parser.y"
6395      {
6396    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6397   }
6398      break;
6399  
6400 <  case 628:
6401 <
6402 < /* Line 1455 of yacc.c  */
7883 < #line 3547 "ircd_parser.y"
6400 >  case 568:
6401 > /* Line 1787 of yacc.c  */
6402 > #line 2718 "conf_parser.y"
6403      {
6404    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6405   }
6406      break;
6407  
6408 <  case 629:
6409 <
6410 < /* Line 1455 of yacc.c  */
7892 < #line 3550 "ircd_parser.y"
6408 >  case 569:
6409 > /* Line 1787 of yacc.c  */
6410 > #line 2721 "conf_parser.y"
6411      {
6412    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6413   }
6414      break;
6415  
6416 <  case 630:
6417 <
6418 < /* Line 1455 of yacc.c  */
7901 < #line 3553 "ircd_parser.y"
6416 >  case 570:
6417 > /* Line 1787 of yacc.c  */
6418 > #line 2724 "conf_parser.y"
6419      {
6420    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6421   }
6422      break;
6423  
6424 <  case 631:
6425 <
6426 < /* Line 1455 of yacc.c  */
7910 < #line 3558 "ircd_parser.y"
6424 >  case 571:
6425 > /* Line 1787 of yacc.c  */
6426 > #line 2727 "conf_parser.y"
6427      {
6428 <  ConfigFileEntry.oper_only_umodes = 0;
6428 >  ConfigFileEntry.oper_umodes |= UMODE_REGONLY;
6429   }
6430      break;
6431  
6432 <  case 635:
6433 <
6434 < /* Line 1455 of yacc.c  */
7919 < #line 3564 "ircd_parser.y"
6432 >  case 572:
6433 > /* Line 1787 of yacc.c  */
6434 > #line 2730 "conf_parser.y"
6435      {
6436 <  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6436 >  ConfigFileEntry.oper_umodes |= UMODE_FARCONNECT;
6437   }
6438      break;
6439  
6440 <  case 636:
6441 <
6442 < /* Line 1455 of yacc.c  */
7928 < #line 3567 "ircd_parser.y"
6440 >  case 573:
6441 > /* Line 1787 of yacc.c  */
6442 > #line 2735 "conf_parser.y"
6443      {
6444 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6444 >  ConfigFileEntry.oper_only_umodes = 0;
6445   }
6446      break;
6447  
6448 <  case 637:
6449 <
6450 < /* Line 1455 of yacc.c  */
7937 < #line 3570 "ircd_parser.y"
6448 >  case 577:
6449 > /* Line 1787 of yacc.c  */
6450 > #line 2741 "conf_parser.y"
6451      {
6452 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6452 >  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6453   }
6454      break;
6455  
6456 <  case 638:
6456 >  case 578:
6457 > /* Line 1787 of yacc.c  */
6458 > #line 2744 "conf_parser.y"
6459 >    {
6460 >  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6461 > }
6462 >    break;
6463  
6464 < /* Line 1455 of yacc.c  */
6465 < #line 3573 "ircd_parser.y"
6464 >  case 579:
6465 > /* Line 1787 of yacc.c  */
6466 > #line 2747 "conf_parser.y"
6467      {
6468    ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6469   }
6470      break;
6471  
6472 <  case 639:
6473 <
6474 < /* Line 1455 of yacc.c  */
7955 < #line 3576 "ircd_parser.y"
6472 >  case 580:
6473 > /* Line 1787 of yacc.c  */
6474 > #line 2750 "conf_parser.y"
6475      {
6476    ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6477   }
6478      break;
6479  
6480 <  case 640:
6481 <
6482 < /* Line 1455 of yacc.c  */
7964 < #line 3579 "ircd_parser.y"
6480 >  case 581:
6481 > /* Line 1787 of yacc.c  */
6482 > #line 2753 "conf_parser.y"
6483      {
6484    ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6485   }
6486      break;
6487  
6488 <  case 641:
6489 <
6490 < /* Line 1455 of yacc.c  */
7973 < #line 3582 "ircd_parser.y"
6488 >  case 582:
6489 > /* Line 1787 of yacc.c  */
6490 > #line 2756 "conf_parser.y"
6491      {
6492    ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6493   }
6494      break;
6495  
6496 <  case 642:
6496 >  case 583:
6497 > /* Line 1787 of yacc.c  */
6498 > #line 2759 "conf_parser.y"
6499 >    {
6500 >  ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6501 > }
6502 >    break;
6503  
6504 < /* Line 1455 of yacc.c  */
6505 < #line 3585 "ircd_parser.y"
6504 >  case 584:
6505 > /* Line 1787 of yacc.c  */
6506 > #line 2762 "conf_parser.y"
6507      {
6508    ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6509   }
6510      break;
6511  
6512 <  case 643:
6513 <
6514 < /* Line 1455 of yacc.c  */
7991 < #line 3588 "ircd_parser.y"
6512 >  case 585:
6513 > /* Line 1787 of yacc.c  */
6514 > #line 2765 "conf_parser.y"
6515      {
6516    ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6517   }
6518      break;
6519  
6520 <  case 644:
6521 <
6522 < /* Line 1455 of yacc.c  */
8000 < #line 3591 "ircd_parser.y"
6520 >  case 586:
6521 > /* Line 1787 of yacc.c  */
6522 > #line 2768 "conf_parser.y"
6523      {
6524    ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6525   }
6526      break;
6527  
6528 <  case 645:
6529 <
6530 < /* Line 1455 of yacc.c  */
8009 < #line 3594 "ircd_parser.y"
6528 >  case 587:
6529 > /* Line 1787 of yacc.c  */
6530 > #line 2771 "conf_parser.y"
6531      {
6532    ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6533   }
6534      break;
6535  
6536 <  case 646:
6537 <
6538 < /* Line 1455 of yacc.c  */
8018 < #line 3597 "ircd_parser.y"
6536 >  case 588:
6537 > /* Line 1787 of yacc.c  */
6538 > #line 2774 "conf_parser.y"
6539      {
6540    ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6541   }
6542      break;
6543  
6544 <  case 647:
6545 <
6546 < /* Line 1455 of yacc.c  */
8027 < #line 3600 "ircd_parser.y"
6544 >  case 589:
6545 > /* Line 1787 of yacc.c  */
6546 > #line 2777 "conf_parser.y"
6547      {
6548    ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6549   }
6550      break;
6551  
6552 <  case 648:
6553 <
6554 < /* Line 1455 of yacc.c  */
8036 < #line 3603 "ircd_parser.y"
6552 >  case 590:
6553 > /* Line 1787 of yacc.c  */
6554 > #line 2780 "conf_parser.y"
6555      {
6556    ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6557   }
6558      break;
6559  
6560 <  case 649:
6561 <
6562 < /* Line 1455 of yacc.c  */
8045 < #line 3606 "ircd_parser.y"
6560 >  case 591:
6561 > /* Line 1787 of yacc.c  */
6562 > #line 2783 "conf_parser.y"
6563      {
6564    ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6565   }
6566      break;
6567  
6568 <  case 650:
6569 <
6570 < /* Line 1455 of yacc.c  */
8054 < #line 3609 "ircd_parser.y"
6568 >  case 592:
6569 > /* Line 1787 of yacc.c  */
6570 > #line 2786 "conf_parser.y"
6571      {
6572    ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6573   }
6574      break;
6575  
6576 <  case 651:
6577 <
6578 < /* Line 1455 of yacc.c  */
8063 < #line 3612 "ircd_parser.y"
6576 >  case 593:
6577 > /* Line 1787 of yacc.c  */
6578 > #line 2789 "conf_parser.y"
6579      {
6580    ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6581   }
6582      break;
6583  
6584 <  case 652:
6585 <
6586 < /* Line 1455 of yacc.c  */
8072 < #line 3615 "ircd_parser.y"
6584 >  case 594:
6585 > /* Line 1787 of yacc.c  */
6586 > #line 2792 "conf_parser.y"
6587      {
6588    ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6589   }
6590      break;
6591  
6592 <  case 653:
6593 <
6594 < /* Line 1455 of yacc.c  */
8081 < #line 3618 "ircd_parser.y"
6592 >  case 595:
6593 > /* Line 1787 of yacc.c  */
6594 > #line 2795 "conf_parser.y"
6595      {
6596    ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6597   }
6598      break;
6599  
6600 <  case 654:
6601 <
6602 < /* Line 1455 of yacc.c  */
8090 < #line 3623 "ircd_parser.y"
8091 <    {
8092 <  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
8093 < }
8094 <    break;
8095 <
8096 <  case 655:
8097 <
8098 < /* Line 1455 of yacc.c  */
8099 < #line 3628 "ircd_parser.y"
8100 <    {
8101 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
8102 < }
8103 <    break;
8104 <
8105 <  case 656:
8106 <
8107 < /* Line 1455 of yacc.c  */
8108 < #line 3633 "ircd_parser.y"
8109 <    {
8110 <  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
8111 < }
8112 <    break;
8113 <
8114 <  case 657:
8115 <
8116 < /* Line 1455 of yacc.c  */
8117 < #line 3638 "ircd_parser.y"
8118 <    {
8119 <  ConfigFileEntry.client_flood = (yyvsp[(3) - (4)].number);
8120 < }
8121 <    break;
8122 <
8123 <  case 658:
8124 <
8125 < /* Line 1455 of yacc.c  */
8126 < #line 3643 "ircd_parser.y"
8127 <    {
8128 <  ConfigFileEntry.dot_in_ip6_addr = yylval.number;
8129 < }
8130 <    break;
8131 <
8132 <  case 659:
8133 <
8134 < /* Line 1455 of yacc.c  */
8135 < #line 3651 "ircd_parser.y"
8136 <    {
8137 <  if (conf_parser_ctx.pass == 2)
8138 <  {
8139 <    yy_conf = make_conf_item(GDENY_TYPE);
8140 <    yy_aconf = map_to_conf(yy_conf);
8141 <  }
8142 < }
8143 <    break;
8144 <
8145 <  case 660:
8146 <
8147 < /* Line 1455 of yacc.c  */
8148 < #line 3658 "ircd_parser.y"
8149 <    {
8150 <  if (conf_parser_ctx.pass == 2)
8151 <  {
8152 <    /*
8153 <     * since we re-allocate yy_conf/yy_aconf after the end of action=, at the
8154 <     * end we will have one extra, so we should free it.
8155 <     */
8156 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
8157 <    {
8158 <      delete_conf_item(yy_conf);
8159 <      yy_conf = NULL;
8160 <      yy_aconf = NULL;
8161 <    }
8162 <  }
8163 < }
8164 <    break;
8165 <
8166 <  case 670:
8167 <
8168 < /* Line 1455 of yacc.c  */
8169 < #line 3684 "ircd_parser.y"
8170 <    {
8171 <  if (conf_parser_ctx.pass == 2)
8172 <    ConfigFileEntry.glines = yylval.number;
8173 < }
8174 <    break;
8175 <
8176 <  case 671:
8177 <
8178 < /* Line 1455 of yacc.c  */
8179 < #line 3690 "ircd_parser.y"
8180 <    {
8181 <  if (conf_parser_ctx.pass == 2)
8182 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
8183 < }
8184 <    break;
8185 <
8186 <  case 672:
8187 <
8188 < /* Line 1455 of yacc.c  */
8189 < #line 3696 "ircd_parser.y"
8190 <    {
8191 <  if (conf_parser_ctx.pass == 2)
8192 <    ConfigFileEntry.gline_logging = 0;
8193 < }
8194 <    break;
8195 <
8196 <  case 676:
8197 <
8198 < /* Line 1455 of yacc.c  */
8199 < #line 3702 "ircd_parser.y"
8200 <    {
8201 <  if (conf_parser_ctx.pass == 2)
8202 <    ConfigFileEntry.gline_logging |= GDENY_REJECT;
8203 < }
8204 <    break;
8205 <
8206 <  case 677:
8207 <
8208 < /* Line 1455 of yacc.c  */
8209 < #line 3706 "ircd_parser.y"
8210 <    {
8211 <  if (conf_parser_ctx.pass == 2)
8212 <    ConfigFileEntry.gline_logging |= GDENY_BLOCK;
8213 < }
8214 <    break;
8215 <
8216 <  case 678:
8217 <
8218 < /* Line 1455 of yacc.c  */
8219 < #line 3712 "ircd_parser.y"
8220 <    {
8221 <  if (conf_parser_ctx.pass == 2)
8222 <  {
8223 <    struct split_nuh_item nuh;
8224 <
8225 <    nuh.nuhmask  = yylval.string;
8226 <    nuh.nickptr  = NULL;
8227 <    nuh.userptr  = userbuf;
8228 <    nuh.hostptr  = hostbuf;
8229 <
8230 <    nuh.nicksize = 0;
8231 <    nuh.usersize = sizeof(userbuf);
8232 <    nuh.hostsize = sizeof(hostbuf);
8233 <
8234 <    split_nuh(&nuh);
8235 <
8236 <    if (yy_aconf->user == NULL)
8237 <    {
8238 <      DupString(yy_aconf->user, userbuf);
8239 <      DupString(yy_aconf->host, hostbuf);
8240 <    }
8241 <    else
8242 <    {
8243 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
8244 <
8245 <      DupString(yy_tmp->user, userbuf);
8246 <      DupString(yy_tmp->host, hostbuf);
8247 <
8248 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
8249 <    }
8250 <  }
8251 < }
8252 <    break;
8253 <
8254 <  case 679:
8255 <
8256 < /* Line 1455 of yacc.c  */
8257 < #line 3746 "ircd_parser.y"
6600 >  case 596:
6601 > /* Line 1787 of yacc.c  */
6602 > #line 2798 "conf_parser.y"
6603      {
6604 <  if (conf_parser_ctx.pass == 2)  
8260 <  {
8261 <    MyFree(yy_conf->name);
8262 <    DupString(yy_conf->name, yylval.string);
8263 <  }
6604 >  ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6605   }
6606      break;
6607  
6608 <  case 680:
6609 <
6610 < /* Line 1455 of yacc.c  */
8270 < #line 3755 "ircd_parser.y"
6608 >  case 597:
6609 > /* Line 1787 of yacc.c  */
6610 > #line 2801 "conf_parser.y"
6611      {
6612 <  if (conf_parser_ctx.pass == 2)
8273 <    yy_aconf->flags = 0;
6612 >  ConfigFileEntry.oper_only_umodes |= UMODE_FARCONNECT;
6613   }
6614      break;
6615  
6616 <  case 681:
6617 <
6618 < /* Line 1455 of yacc.c  */
8280 < #line 3759 "ircd_parser.y"
8281 <    {
8282 <  if (conf_parser_ctx.pass == 2)
8283 <  {
8284 <    struct CollectItem *yy_tmp = NULL;
8285 <    dlink_node *ptr, *next_ptr;
8286 <
8287 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
6616 >  case 598:
6617 > /* Line 1787 of yacc.c  */
6618 > #line 2806 "conf_parser.y"
6619      {
6620 <      struct AccessItem *new_aconf;
8290 <      struct ConfItem *new_conf;
8291 <
8292 <      yy_tmp = ptr->data;
8293 <      new_conf = make_conf_item(GDENY_TYPE);
8294 <      new_aconf = map_to_conf(new_conf);
8295 <
8296 <      new_aconf->flags = yy_aconf->flags;
8297 <
8298 <      if (yy_conf->name != NULL)
8299 <        DupString(new_conf->name, yy_conf->name);
8300 <      else
8301 <        DupString(new_conf->name, "*");
8302 <      if (yy_aconf->user != NULL)
8303 <         DupString(new_aconf->user, yy_tmp->user);
8304 <      else  
8305 <        DupString(new_aconf->user, "*");
8306 <      if (yy_aconf->host != NULL)
8307 <        DupString(new_aconf->host, yy_tmp->host);
8308 <      else
8309 <        DupString(new_aconf->host, "*");
8310 <
8311 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
8312 <    }
8313 <
8314 <    /*
8315 <     * In case someone has fed us with more than one action= after user/name
8316 <     * which would leak memory  -Michael
8317 <     */
8318 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
8319 <      delete_conf_item(yy_conf);
8320 <
8321 <    yy_conf = make_conf_item(GDENY_TYPE);
8322 <    yy_aconf = map_to_conf(yy_conf);
8323 <  }
6620 >  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6621   }
6622      break;
6623  
6624 <  case 684:
6625 <
6626 < /* Line 1455 of yacc.c  */
8330 < #line 3806 "ircd_parser.y"
6624 >  case 599:
6625 > /* Line 1787 of yacc.c  */
6626 > #line 2811 "conf_parser.y"
6627      {
6628 <  if (conf_parser_ctx.pass == 2)
8333 <    yy_aconf->flags |= GDENY_REJECT;
6628 >  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6629   }
6630      break;
6631  
6632 <  case 685:
6633 <
6634 < /* Line 1455 of yacc.c  */
8340 < #line 3810 "ircd_parser.y"
6632 >  case 600:
6633 > /* Line 1787 of yacc.c  */
6634 > #line 2816 "conf_parser.y"
6635      {
6636 <  if (conf_parser_ctx.pass == 2)
8343 <    yy_aconf->flags |= GDENY_BLOCK;
6636 >  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6637   }
6638      break;
6639  
6640 <  case 708:
6641 <
6642 < /* Line 1455 of yacc.c  */
8350 < #line 3834 "ircd_parser.y"
6640 >  case 617:
6641 > /* Line 1787 of yacc.c  */
6642 > #line 2839 "conf_parser.y"
6643      {
6644    ConfigChannel.disable_fake_channels = yylval.number;
6645   }
6646      break;
6647  
6648 <  case 709:
6649 <
6650 < /* Line 1455 of yacc.c  */
8359 < #line 3839 "ircd_parser.y"
8360 <    {
8361 <  ConfigChannel.restrict_channels = yylval.number;
8362 < }
8363 <    break;
8364 <
8365 <  case 710:
8366 <
8367 < /* Line 1455 of yacc.c  */
8368 < #line 3844 "ircd_parser.y"
8369 <    {
8370 <  ConfigChannel.disable_local_channels = yylval.number;
8371 < }
8372 <    break;
8373 <
8374 <  case 711:
8375 <
8376 < /* Line 1455 of yacc.c  */
8377 < #line 3849 "ircd_parser.y"
8378 <    {
8379 <  ConfigChannel.use_except = yylval.number;
8380 < }
8381 <    break;
8382 <
8383 <  case 712:
8384 <
8385 < /* Line 1455 of yacc.c  */
8386 < #line 3854 "ircd_parser.y"
8387 <    {
8388 <  ConfigChannel.use_invex = yylval.number;
8389 < }
8390 <    break;
8391 <
8392 <  case 713:
8393 <
8394 < /* Line 1455 of yacc.c  */
8395 < #line 3859 "ircd_parser.y"
8396 <    {
8397 <  ConfigChannel.use_knock = yylval.number;
8398 < }
8399 <    break;
8400 <
8401 <  case 714:
8402 <
8403 < /* Line 1455 of yacc.c  */
8404 < #line 3864 "ircd_parser.y"
6648 >  case 618:
6649 > /* Line 1787 of yacc.c  */
6650 > #line 2844 "conf_parser.y"
6651      {
6652    ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6653   }
6654      break;
6655  
6656 <  case 715:
6657 <
6658 < /* Line 1455 of yacc.c  */
8413 < #line 3869 "ircd_parser.y"
6656 >  case 619:
6657 > /* Line 1787 of yacc.c  */
6658 > #line 2849 "conf_parser.y"
6659      {
6660    ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6661   }
6662      break;
6663  
6664 <  case 716:
6665 <
6666 < /* Line 1455 of yacc.c  */
8422 < #line 3874 "ircd_parser.y"
6664 >  case 620:
6665 > /* Line 1787 of yacc.c  */
6666 > #line 2854 "conf_parser.y"
6667      {
6668    ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6669   }
6670      break;
6671  
6672 <  case 717:
6673 <
6674 < /* Line 1455 of yacc.c  */
8431 < #line 3879 "ircd_parser.y"
6672 >  case 621:
6673 > /* Line 1787 of yacc.c  */
6674 > #line 2859 "conf_parser.y"
6675      {
6676 <  ConfigChannel.quiet_on_ban = yylval.number;
6676 >  ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6677   }
6678      break;
6679  
6680 <  case 718:
6681 <
6682 < /* Line 1455 of yacc.c  */
8440 < #line 3884 "ircd_parser.y"
6680 >  case 622:
6681 > /* Line 1787 of yacc.c  */
6682 > #line 2864 "conf_parser.y"
6683      {
6684    ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6685   }
6686      break;
6687  
6688 <  case 719:
6689 <
6690 < /* Line 1455 of yacc.c  */
8449 < #line 3889 "ircd_parser.y"
6688 >  case 623:
6689 > /* Line 1787 of yacc.c  */
6690 > #line 2869 "conf_parser.y"
6691      {
6692    ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6693   }
6694      break;
6695  
6696 <  case 720:
6697 <
6698 < /* Line 1455 of yacc.c  */
8458 < #line 3894 "ircd_parser.y"
6696 >  case 624:
6697 > /* Line 1787 of yacc.c  */
6698 > #line 2874 "conf_parser.y"
6699      {
6700    ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6701   }
6702      break;
6703  
6704 <  case 721:
6705 <
6706 < /* Line 1455 of yacc.c  */
8467 < #line 3899 "ircd_parser.y"
6704 >  case 625:
6705 > /* Line 1787 of yacc.c  */
6706 > #line 2879 "conf_parser.y"
6707      {
6708    ConfigChannel.no_create_on_split = yylval.number;
6709   }
6710      break;
6711  
6712 <  case 722:
6713 <
6714 < /* Line 1455 of yacc.c  */
8476 < #line 3904 "ircd_parser.y"
6712 >  case 626:
6713 > /* Line 1787 of yacc.c  */
6714 > #line 2884 "conf_parser.y"
6715      {
6716    ConfigChannel.no_join_on_split = yylval.number;
6717   }
6718      break;
6719  
6720 <  case 723:
6721 <
6722 < /* Line 1455 of yacc.c  */
8485 < #line 3909 "ircd_parser.y"
8486 <    {
8487 <  ConfigChannel.burst_topicwho = yylval.number;
8488 < }
8489 <    break;
8490 <
8491 <  case 724:
8492 <
8493 < /* Line 1455 of yacc.c  */
8494 < #line 3914 "ircd_parser.y"
6720 >  case 627:
6721 > /* Line 1787 of yacc.c  */
6722 > #line 2889 "conf_parser.y"
6723      {
6724    GlobalSetOptions.joinfloodcount = yylval.number;
6725   }
6726      break;
6727  
6728 <  case 725:
6729 <
6730 < /* Line 1455 of yacc.c  */
8503 < #line 3919 "ircd_parser.y"
6728 >  case 628:
6729 > /* Line 1787 of yacc.c  */
6730 > #line 2894 "conf_parser.y"
6731      {
6732    GlobalSetOptions.joinfloodtime = yylval.number;
6733   }
6734      break;
6735  
6736 <  case 737:
6737 <
6738 < /* Line 1455 of yacc.c  */
8512 < #line 3938 "ircd_parser.y"
6736 >  case 641:
6737 > /* Line 1787 of yacc.c  */
6738 > #line 2914 "conf_parser.y"
6739      {
6740    if (conf_parser_ctx.pass == 2)
6741      ConfigServerHide.flatten_links = yylval.number;
6742   }
6743      break;
6744  
6745 <  case 738:
6745 >  case 642:
6746 > /* Line 1787 of yacc.c  */
6747 > #line 2920 "conf_parser.y"
6748 >    {
6749 >  if (conf_parser_ctx.pass == 2)
6750 >    ConfigServerHide.disable_remote_commands = yylval.number;
6751 > }
6752 >    break;
6753  
6754 < /* Line 1455 of yacc.c  */
6755 < #line 3944 "ircd_parser.y"
6754 >  case 643:
6755 > /* Line 1787 of yacc.c  */
6756 > #line 2926 "conf_parser.y"
6757      {
6758    if (conf_parser_ctx.pass == 2)
6759      ConfigServerHide.hide_servers = yylval.number;
6760   }
6761      break;
6762  
6763 <  case 739:
6763 >  case 644:
6764 > /* Line 1787 of yacc.c  */
6765 > #line 2932 "conf_parser.y"
6766 >    {
6767 >  if (conf_parser_ctx.pass == 2)
6768 >    ConfigServerHide.hide_services = yylval.number;
6769 > }
6770 >    break;
6771  
6772 < /* Line 1455 of yacc.c  */
6773 < #line 3950 "ircd_parser.y"
6772 >  case 645:
6773 > /* Line 1787 of yacc.c  */
6774 > #line 2938 "conf_parser.y"
6775      {
6776    if (conf_parser_ctx.pass == 2)
6777    {
6778      MyFree(ConfigServerHide.hidden_name);
6779 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6779 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6780    }
6781   }
6782      break;
6783  
6784 <  case 740:
6785 <
6786 < /* Line 1455 of yacc.c  */
8545 < #line 3959 "ircd_parser.y"
6784 >  case 646:
6785 > /* Line 1787 of yacc.c  */
6786 > #line 2947 "conf_parser.y"
6787      {
6788    if (conf_parser_ctx.pass == 2)
6789    {
# Line 8557 | Line 6798 | yyreduce:
6798   }
6799      break;
6800  
6801 <  case 741:
6802 <
6803 < /* Line 1455 of yacc.c  */
8563 < #line 3973 "ircd_parser.y"
6801 >  case 647:
6802 > /* Line 1787 of yacc.c  */
6803 > #line 2961 "conf_parser.y"
6804      {
6805    if (conf_parser_ctx.pass == 2)
6806      ConfigServerHide.hidden = yylval.number;
6807   }
6808      break;
6809  
6810 <  case 742:
6811 <
6812 < /* Line 1455 of yacc.c  */
8573 < #line 3979 "ircd_parser.y"
8574 <    {
8575 <  if (conf_parser_ctx.pass == 2)
8576 <    ConfigServerHide.disable_hidden = yylval.number;
8577 < }
8578 <    break;
8579 <
8580 <  case 743:
8581 <
8582 < /* Line 1455 of yacc.c  */
8583 < #line 3985 "ircd_parser.y"
6810 >  case 648:
6811 > /* Line 1787 of yacc.c  */
6812 > #line 2967 "conf_parser.y"
6813      {
6814    if (conf_parser_ctx.pass == 2)
6815      ConfigServerHide.hide_server_ips = yylval.number;
# Line 8588 | Line 6817 | yyreduce:
6817      break;
6818  
6819  
6820 <
6821 < /* Line 1455 of yacc.c  */
8593 < #line 8594 "ircd_parser.c"
6820 > /* Line 1787 of yacc.c  */
6821 > #line 6822 "conf_parser.c"
6822        default: break;
6823      }
6824 +  /* User semantic actions sometimes alter yychar, and that requires
6825 +     that yytoken be updated with the new translation.  We take the
6826 +     approach of translating immediately before every use of yytoken.
6827 +     One alternative is translating here after every semantic action,
6828 +     but that translation would be missed if the semantic action invokes
6829 +     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
6830 +     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
6831 +     incorrect destructor might then be invoked immediately.  In the
6832 +     case of YYERROR or YYBACKUP, subsequent parser actions might lead
6833 +     to an incorrect destructor call or verbose syntax error message
6834 +     before the lookahead is translated.  */
6835    YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
6836  
6837    YYPOPSTACK (yylen);
# Line 8620 | Line 6859 | yyreduce:
6859   | yyerrlab -- here on detecting error |
6860   `------------------------------------*/
6861   yyerrlab:
6862 +  /* Make sure we have latest lookahead translation.  See comments at
6863 +     user semantic actions for why this is necessary.  */
6864 +  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
6865 +
6866    /* If not already recovering from an error, report this error.  */
6867    if (!yyerrstatus)
6868      {
# Line 8627 | Line 6870 | yyerrlab:
6870   #if ! YYERROR_VERBOSE
6871        yyerror (YY_("syntax error"));
6872   #else
6873 + # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
6874 +                                        yyssp, yytoken)
6875        {
6876 <        YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
6877 <        if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
6878 <          {
6879 <            YYSIZE_T yyalloc = 2 * yysize;
6880 <            if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
6881 <              yyalloc = YYSTACK_ALLOC_MAXIMUM;
6882 <            if (yymsg != yymsgbuf)
6883 <              YYSTACK_FREE (yymsg);
6884 <            yymsg = (char *) YYSTACK_ALLOC (yyalloc);
6885 <            if (yymsg)
6886 <              yymsg_alloc = yyalloc;
6887 <            else
6888 <              {
6889 <                yymsg = yymsgbuf;
6890 <                yymsg_alloc = sizeof yymsgbuf;
6891 <              }
6892 <          }
6893 <
6894 <        if (0 < yysize && yysize <= yymsg_alloc)
6895 <          {
6896 <            (void) yysyntax_error (yymsg, yystate, yychar);
6897 <            yyerror (yymsg);
6898 <          }
6899 <        else
6900 <          {
8656 <            yyerror (YY_("syntax error"));
8657 <            if (yysize != 0)
8658 <              goto yyexhaustedlab;
8659 <          }
6876 >        char const *yymsgp = YY_("syntax error");
6877 >        int yysyntax_error_status;
6878 >        yysyntax_error_status = YYSYNTAX_ERROR;
6879 >        if (yysyntax_error_status == 0)
6880 >          yymsgp = yymsg;
6881 >        else if (yysyntax_error_status == 1)
6882 >          {
6883 >            if (yymsg != yymsgbuf)
6884 >              YYSTACK_FREE (yymsg);
6885 >            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
6886 >            if (!yymsg)
6887 >              {
6888 >                yymsg = yymsgbuf;
6889 >                yymsg_alloc = sizeof yymsgbuf;
6890 >                yysyntax_error_status = 2;
6891 >              }
6892 >            else
6893 >              {
6894 >                yysyntax_error_status = YYSYNTAX_ERROR;
6895 >                yymsgp = yymsg;
6896 >              }
6897 >          }
6898 >        yyerror (yymsgp);
6899 >        if (yysyntax_error_status == 2)
6900 >          goto yyexhaustedlab;
6901        }
6902 + # undef YYSYNTAX_ERROR
6903   #endif
6904      }
6905  
# Line 8716 | Line 6958 | yyerrlab1:
6958    for (;;)
6959      {
6960        yyn = yypact[yystate];
6961 <      if (yyn != YYPACT_NINF)
6961 >      if (!yypact_value_is_default (yyn))
6962          {
6963            yyn += YYTERROR;
6964            if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
# Line 8739 | Line 6981 | yyerrlab1:
6981        YY_STACK_PRINT (yyss, yyssp);
6982      }
6983  
6984 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6985    *++yyvsp = yylval;
6986 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6987  
6988  
6989    /* Shift the error token.  */
# Line 8763 | Line 7007 | yyabortlab:
7007    yyresult = 1;
7008    goto yyreturn;
7009  
7010 < #if !defined(yyoverflow) || YYERROR_VERBOSE
7010 > #if !defined yyoverflow || YYERROR_VERBOSE
7011   /*-------------------------------------------------.
7012   | yyexhaustedlab -- memory exhaustion comes here.  |
7013   `-------------------------------------------------*/
# Line 8775 | Line 7019 | yyexhaustedlab:
7019  
7020   yyreturn:
7021    if (yychar != YYEMPTY)
7022 <     yydestruct ("Cleanup: discarding lookahead",
7023 <                 yytoken, &yylval);
7022 >    {
7023 >      /* Make sure we have latest lookahead translation.  See comments at
7024 >         user semantic actions for why this is necessary.  */
7025 >      yytoken = YYTRANSLATE (yychar);
7026 >      yydestruct ("Cleanup: discarding lookahead",
7027 >                  yytoken, &yylval);
7028 >    }
7029    /* Do not reclaim the symbols of the rule which action triggered
7030       this YYABORT or YYACCEPT.  */
7031    YYPOPSTACK (yylen);
# Line 8800 | Line 7049 | yyreturn:
7049   }
7050  
7051  
8803

Comparing:
ircd-hybrid-7.2/src/ircd_parser.c (property svn:keywords), Revision 1005 by michael, Mon Aug 31 23:07:43 2009 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (property svn:keywords), Revision 2229 by michael, Thu Jun 13 20:10:27 2013 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

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