summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am2
-rw-r--r--Makefile.in2
-rwxr-xr-xconfigure3
-rw-r--r--configure.ac1
-rw-r--r--doc/index.txt2
-rw-r--r--doc/messages.txt54
-rw-r--r--doc/reference.conf8
-rw-r--r--include/channel.h2
-rw-r--r--include/numeric.h635
-rw-r--r--include/stdinc.h8
-rw-r--r--include/watch.h2
-rw-r--r--messages/Makefile.am21
-rw-r--r--messages/Makefile.in495
-rw-r--r--messages/README45
-rw-r--r--messages/ayb.lang29
-rw-r--r--messages/custom.lang20
-rw-r--r--messages/ircd-brazilian_pt.lang127
-rw-r--r--messages/ircd-bulgarian.lang99
-rw-r--r--messages/ircd-croatian.lang94
-rw-r--r--messages/ircd-danish.lang93
-rw-r--r--messages/ircd-dutch.lang123
-rw-r--r--messages/ircd-french.lang112
-rw-r--r--messages/ircd-german.lang126
-rw-r--r--messages/ircd-italian.lang127
-rw-r--r--messages/ircd-norwegian.lang90
-rw-r--r--messages/ircd-polish.lang108
-rw-r--r--messages/ircd-romanian.lang126
-rw-r--r--messages/ircd-russian.lang93
-rw-r--r--messages/ircd-spanish.lang97
-rw-r--r--messages/ircd-standard.example.lang137
-rw-r--r--messages/ircd-swedish.lang108
-rw-r--r--modules/Makefile.am6
-rw-r--r--modules/Makefile.in30
-rw-r--r--modules/core/m_die.c2
-rw-r--r--modules/core/m_join.c21
-rw-r--r--modules/core/m_kick.c14
-rw-r--r--modules/core/m_kill.c14
-rw-r--r--modules/core/m_message.c46
-rw-r--r--modules/core/m_mode.c10
-rw-r--r--modules/core/m_nick.c26
-rw-r--r--modules/core/m_part.c6
-rw-r--r--modules/core/m_squit.c6
-rw-r--r--modules/m_accept.c12
-rw-r--r--modules/m_admin.c10
-rw-r--r--modules/m_away.c6
-rw-r--r--modules/m_cap.c2
-rw-r--r--modules/m_challenge.c10
-rw-r--r--modules/m_close.c4
-rw-r--r--modules/m_connect.c6
-rw-r--r--modules/m_dline.c6
-rw-r--r--modules/m_etrace.c12
-rw-r--r--modules/m_gline.c4
-rw-r--r--modules/m_globops.c4
-rw-r--r--modules/m_help.c20
-rw-r--r--modules/m_info.c8
-rw-r--r--modules/m_invite.c16
-rw-r--r--modules/m_ison.c2
-rw-r--r--modules/m_kline.c6
-rw-r--r--modules/m_knock.c16
-rw-r--r--modules/m_links.c10
-rw-r--r--modules/m_list.c6
-rw-r--r--modules/m_locops.c2
-rw-r--r--modules/m_lusers.c2
-rw-r--r--modules/m_map.c8
-rw-r--r--modules/m_module.c14
-rw-r--r--modules/m_motd.c2
-rw-r--r--modules/m_names.c6
-rw-r--r--modules/m_oper.c8
-rw-r--r--modules/m_operwall.c4
-rw-r--r--modules/m_pass.c2
-rw-r--r--modules/m_ping.c8
-rw-r--r--modules/m_pong.c8
-rw-r--r--modules/m_rehash.c6
-rw-r--r--modules/m_restart.c2
-rw-r--r--modules/m_services.c28
-rw-r--r--modules/m_set.c24
-rw-r--r--modules/m_stats.c59
-rw-r--r--modules/m_testline.c248
-rw-r--r--modules/m_testmask.c131
-rw-r--r--modules/m_time.c4
-rw-r--r--modules/m_topic.c20
-rw-r--r--modules/m_trace.c36
-rw-r--r--modules/m_user.c2
-rw-r--r--modules/m_userhost.c2
-rw-r--r--modules/m_users.c12
-rw-r--r--modules/m_version.c8
-rw-r--r--modules/m_wallops.c2
-rw-r--r--modules/m_watch.c24
-rw-r--r--modules/m_who.c16
-rw-r--r--modules/m_whois.c36
-rw-r--r--modules/m_whowas.c16
-rw-r--r--modules/m_xline.c6
-rw-r--r--src/Makefile.am1
-rw-r--r--src/Makefile.in18
-rw-r--r--src/channel.c18
-rw-r--r--src/channel_mode.c70
-rw-r--r--src/client.c4
-rw-r--r--src/conf.c34
-rw-r--r--src/conf_lexer.c2535
-rw-r--r--src/conf_lexer.l1
-rw-r--r--src/conf_parser.c4178
-rw-r--r--src/conf_parser.h556
-rw-r--r--src/conf_parser.y13
-rw-r--r--src/hash.c4
-rw-r--r--src/irc_res.c2
-rw-r--r--src/listener.c2
-rw-r--r--src/messages.tab1029
-rw-r--r--src/motd.c10
-rw-r--r--src/numeric.c195
-rw-r--r--src/parse.c12
-rw-r--r--src/resv.c4
-rw-r--r--src/s_serv.c6
-rw-r--r--src/s_user.c52
-rw-r--r--src/send.c2
-rw-r--r--src/watch.c6
115 files changed, 8555 insertions, 4273 deletions
diff --git a/Makefile.am b/Makefile.am
index 14eeb75..0fcd28f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,5 +1,5 @@
AUTOMAKE_OPTIONS = foreign
-SUBDIRS = tools libltdl doc help modules src
+SUBDIRS = tools libltdl doc help messages modules src
install-data-local:
$(INSTALL) -d $(DESTDIR)${localstatedir}/log
diff --git a/Makefile.in b/Makefile.in
index 9f677f1..45cf067 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -307,7 +307,7 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
AUTOMAKE_OPTIONS = foreign
-SUBDIRS = tools libltdl doc help modules src
+SUBDIRS = tools libltdl doc help messages modules src
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
diff --git a/configure b/configure
index 5ccbe72..8ec9777 100755
--- a/configure
+++ b/configure
@@ -14443,7 +14443,7 @@ _ACEOF
test "$exec_prefix_NONE" && exec_prefix=NONE
-ac_config_files="$ac_config_files Makefile src/Makefile libltdl/Makefile modules/Makefile modules/core/Makefile doc/Makefile help/Makefile help/opers/Makefile help/users/Makefile tools/Makefile"
+ac_config_files="$ac_config_files Makefile src/Makefile libltdl/Makefile messages/Makefile modules/Makefile modules/core/Makefile doc/Makefile help/Makefile help/opers/Makefile help/users/Makefile tools/Makefile"
cat >confcache <<\_ACEOF
@@ -15488,6 +15488,7 @@ do
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
"libltdl/Makefile") CONFIG_FILES="$CONFIG_FILES libltdl/Makefile" ;;
+ "messages/Makefile") CONFIG_FILES="$CONFIG_FILES messages/Makefile" ;;
"modules/Makefile") CONFIG_FILES="$CONFIG_FILES modules/Makefile" ;;
"modules/core/Makefile") CONFIG_FILES="$CONFIG_FILES modules/core/Makefile" ;;
"doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
diff --git a/configure.ac b/configure.ac
index 8efde04..fdec15c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -175,6 +175,7 @@ AC_CONFIG_FILES( \
Makefile \
src/Makefile \
libltdl/Makefile \
+ messages/Makefile \
modules/Makefile \
modules/core/Makefile \
doc/Makefile \
diff --git a/doc/index.txt b/doc/index.txt
index e086941..d43a112 100644
--- a/doc/index.txt
+++ b/doc/index.txt
@@ -13,6 +13,8 @@ ircd.8 - The new revised manpage, read with the following
man -M . ircd
kline.txt - Outline of the remote K-line protocol for both
opers and servers
+messages.txt - A general help file for users and admins to
+ customize ircd's messages.
modeg.txt - An in depth description of the server side silence
user mode (+g)
modes.txt - A list of all user and channel modes
diff --git a/doc/messages.txt b/doc/messages.txt
new file mode 100644
index 0000000..06fc967
--- /dev/null
+++ b/doc/messages.txt
@@ -0,0 +1,54 @@
+ Message Customization Overview
+
+ $Id$
+
+ Copyright (c) 2005-2012 by ircd-hybrid team
+
+ ----------------------------------------------------------------------
+
+ Hybrid now supports its own .lang format for i18n'd IRC status messages.
+
+ This document is split into two parts, using message files, and creating
+ your own.
+
+ ----------------------------------------------------------------------
+
+ Using Provided or Pre-made Message Files
+
+ There are a number of message files provided with ircd-hybrid. These can
+ be found in the source tree in messages/.
+
+ These files are automatically installed by `make install'.
+
+ These message files can be used in ircd once they are installed. Try the
+ installed message file with /quote SET MSGLOCALE <locale> first. The
+ locale will be 'standard' for the plain messages that are Hybrid's
+ default.
+
+ If the desired message file works without any issues, it can be set to be
+ the default message file in the ircd.conf file. Refer to reference.conf's
+ documentation on the message_locale setting.
+
+ ----------------------------------------------------------------------
+
+ Creating Your Own Messages
+
+ This process is a little more complicated. The easiest way to start
+ editing messages is to take ircd-standard.example.lang, make a copy,
+ and change whichever status lines you wish.
+
+ Once you have your customized message file ready, just copy it into the
+ same place as the rest of the messages, typically $PREFIX/messages.
+
+ If you think your .lang file deserves to be in the official distribution,
+ submit it to us at bugs@ircd-hybrid.org. It must be complete and as error-
+ free as you can make it since it is subject to public consumption. Providing
+ a translation will be a way that nearly anyone who knows multiple languages
+ to contribute to ircd, and get their name in the translation credits.
+
+ When making such a translation, you should base it off
+ ircd-standard.example.lang, which is a conversion of our base (English)
+ messages.tab into the .lang format. You should edit it from there into your
+ own language, and of course give credit to yourself and whoever else you
+ may have done the translation with. Then, send it off to us, and we'll see
+ what we can do.
diff --git a/doc/reference.conf b/doc/reference.conf
index 918193a..3269694 100644
--- a/doc/reference.conf
+++ b/doc/reference.conf
@@ -1112,6 +1112,14 @@ general {
max_targets = 4;
/*
+ * message_locale: the default message locale
+ * Use "standard" for the compiled in defaults.
+ * To install the translated messages, go into messages/ in the
+ * source directory and run `make install'.
+ */
+ message_locale = "standard";
+
+ /*
* usermodes configurable: a list of usermodes for the options below
*
* +b - bots - See bot and drone flooding notices
diff --git a/include/channel.h b/include/channel.h
index 88cb5a0..a922715 100644
--- a/include/channel.h
+++ b/include/channel.h
@@ -117,7 +117,7 @@ extern dlink_list global_channel_list;
extern int check_channel_name(const char *, int);
extern int can_send(struct Channel *, struct Client *, struct Membership *);
extern int is_banned(const struct Channel *, const struct Client *);
-extern const char *can_join(struct Client *, struct Channel *, const char *);
+extern int can_join(struct Client *, struct Channel *, const char *);
extern int has_member_flags(struct Membership *, unsigned int);
extern void remove_ban(struct Ban *, dlink_list *);
diff --git a/include/numeric.h b/include/numeric.h
index d1ad106..558b7e5 100644
--- a/include/numeric.h
+++ b/include/numeric.h
@@ -25,222 +25,459 @@
#ifndef INCLUDED_numeric_h
#define INCLUDED_numeric_h
+#define LOCALE_LENGTH 64 /* maximum length of locale name + 1 */
+
+struct NumericInfo
+{
+ const char *name; /* common name of the numeric */
+ const char *standard; /* standard numeric text */
+ char *translated; /* translated numeric text */
+};
+
+/* form_str - return a format string for a message number
+ * messages are defined below
+ */
+extern const char *form_str(int);
+extern void set_locale(const char *);
+extern const char *get_locale(void);
+
/*
* Reserve numerics 000-099 for server-client connections where the client
* is local to the server. If any server is passed a numeric in this range
* from another server then it is remapped to 100-199. -avalon
*/
-#define RPL_WELCOME ":%s 001 %s :Welcome to the %s Internet Relay Chat Network %s"
-#define RPL_YOURHOST ":%s 002 %s :Your host is %s, running version %s"
-#define RPL_CREATED ":%s 003 %s :This server was created %s"
-#ifdef HALFOPS
-#define RPL_MYINFO ":%s 004 %s %s %s %s biklmnoprstveIhORS bkloveIh"
-#else
-#define RPL_MYINFO ":%s 004 %s %s %s %s biklmnoprstveIORS bkloveI"
-#endif
-#define RPL_ISUPPORT ":%s 005 %s %s :are supported by this server"
-#define RPL_REDIR ":%s 010 %s %s %d :Please use this Server/Port instead"
-#define RPL_MAP ":%s 015 %s :%s"
-#define RPL_MAPEND ":%s 017 %s :End of /MAP"
-#define RPL_YOURID ":%s 042 %s %s :your unique ID"
+#define RPL_WELCOME 001
+#define RPL_YOURHOST 002
+#define RPL_CREATED 003
+#define RPL_MYINFO 004
+#define RPL_ISUPPORT 005
+ /* RPL_BOUNCE IRCnet extension */
+/* RPL_MAP 6 unreal */
+/* RPL_MAPEND 7 unreal */
+/* RPL_SNOMASK 8 Undernet extension */
+/* RPL_STATMEMTOT 9 Undernet extension */
+/* RPL_STATMEM 10 Undernet extension */
+
+#define RPL_REDIR 10
+#define RPL_MAP 15 /* Undernet extension */
+#define RPL_MAPMORE 16 /* Undernet extension */
+#define RPL_MAPEND 17 /* Undernet extension */
+
+#define RPL_YOURID 42 /* IRCnet extension */
+/* RPL_ATTEMPTINGJUNC 50 aircd extension */
+/* RPL_ATTEMPTINGREROUTE 51 aircd extension */
/*
* Numeric replies from server commands.
* These are currently in the range 200-399.
*/
-#define RPL_TRACELINK ":%s 200 %s Link %s %s %s"
-#define RPL_TRACECONNECTING ":%s 201 %s Try. %s %s"
-#define RPL_TRACEHANDSHAKE ":%s 202 %s H.S. %s %s"
-#define RPL_TRACEUNKNOWN ":%s 203 %s ???? %s %s (%s) %d"
-#define RPL_TRACEOPERATOR ":%s 204 %s Oper %s %s (%s) %lu %lu"
-#define RPL_TRACEUSER ":%s 205 %s User %s %s (%s) %lu %lu"
-#define RPL_TRACESERVER ":%s 206 %s Serv %s %dS %dC %s %s!%s@%s %lu"
-#define RPL_TRACENEWTYPE ":%s 208 %s <newtype> 0 %s"
-#define RPL_TRACECLASS ":%s 209 %s Class %s %d"
-#define RPL_STATSLINKINFO ":%s 211 %s %s %u %u %llu %u %llu :%u %u %s"
-#define RPL_STATSCOMMANDS ":%s 212 %s %s %u %llu :%u"
-#define RPL_STATSCLINE ":%s 213 %s %c %s %s %s %d %s"
-#define RPL_STATSNLINE ":%s 214 %s %c %s * %s %d %s"
-#define RPL_STATSILINE ":%s 215 %s %c %s * %s@%s %d %s"
-#define RPL_STATSKLINE ":%s 216 %s %s %s * %s :%s"
-#define RPL_STATSQLINE ":%s 217 %s %c %u %s :%s"
-#define RPL_STATSYLINE ":%s 218 %s %c %s %u %u %u %u %u %u %u/%u %u/%u %s"
-#define RPL_ENDOFSTATS ":%s 219 %s %c :End of /STATS report"
+#define RPL_TRACELINK 200
+#define RPL_TRACECONNECTING 201
+#define RPL_TRACEHANDSHAKE 202
+#define RPL_TRACEUNKNOWN 203
+#define RPL_TRACEOPERATOR 204
+#define RPL_TRACEUSER 205
+#define RPL_TRACESERVER 206
+#define RPL_TRACENEWTYPE 208
+#define RPL_TRACECLASS 209
-/*
- * note ircu uses 217 for STATSPLINE frip. conflict
+/* RPL_STATS 210 aircd extension, used instead of having
+ multiple stats numerics */
+/* RPL_TRACERECONNECT 210 IRCnet extension */
+
+#define RPL_STATSLINKINFO 211
+#define RPL_STATSCOMMANDS 212
+#define RPL_STATSCLINE 213
+#define RPL_STATSNLINE 214
+/* RPL_STATSOLDNLINE 214 unreal */
+#define RPL_STATSILINE 215
+#define RPL_STATSKLINE 216
+#define RPL_STATSQLINE 217
+#define RPL_STATSYLINE 218
+#define RPL_ENDOFSTATS 219
+/* note ircu uses 217 for STATSPLINE frip. conflict
* as RPL_STATSQLINE was used in old 2.8 for Q line
* I'm going to steal 220 for now *sigh*
* -Dianora
*/
-#define RPL_STATSPLINE ":%s 220 %s %c %d %s %d %s :%s"
-#define RPL_UMODEIS ":%s 221 %s %s"
-#define RPL_STATSDLINE ":%s 225 %s %c %s :%s"
-#define RPL_STATSALINE ":%s 226 %s %s"
-#define RPL_STATSLLINE ":%s 241 %s %c %s * %s %d %s"
-#define RPL_STATSUPTIME ":%s 242 %s :Server Up %d days, %d:%02d:%02d"
-#define RPL_STATSOLINE ":%s 243 %s %c %s@%s * %s %s %s"
-#define RPL_STATSHLINE ":%s 244 %s %c %s * %s %d %s"
-#define RPL_STATSSERVICE ":%s 246 %s %c %s * %s %d %d"
-#define RPL_STATSXLINE ":%s 247 %s %s %d %s :%s"
-#define RPL_STATSULINE ":%s 248 %s U %s %s@%s %s"
-#define RPL_STATSCONN ":%s 250 %s :Highest connection count: %d (%d clients) (%llu connections received)"
-#define RPL_LUSERCLIENT ":%s 251 %s :There are %d users and %d invisible on %d servers"
-#define RPL_LUSEROP ":%s 252 %s %d :IRC Operators online"
-#define RPL_LUSERUNKNOWN ":%s 253 %s %d :unknown connection(s)"
-#define RPL_LUSERCHANNELS ":%s 254 %s %d :channels formed"
-#define RPL_LUSERME ":%s 255 %s :I have %d clients and %d servers"
-#define RPL_ADMINME ":%s 256 %s :Administrative info about %s"
-#define RPL_ADMINLOC1 ":%s 257 %s :%s"
-#define RPL_ADMINLOC2 ":%s 258 %s :%s"
-#define RPL_ADMINEMAIL ":%s 259 %s :%s"
-#define RPL_ENDOFTRACE ":%s 262 %s %s :End of TRACE"
-#define RPL_LOAD2HI ":%s 263 %s :Server load is temporarily too heavy. Please wait a while and try again."
-#define RPL_LOCALUSERS ":%s 265 %s :Current local users: %d Max: %d"
-#define RPL_GLOBALUSERS ":%s 266 %s :Current global users: %d Max: %d"
-#define RPL_ACCEPTLIST ":%s 281 %s :%s"
-#define RPL_ENDOFACCEPT ":%s 282 %s :End of /ACCEPT list."
-#define RPL_AWAY ":%s 301 %s %s :%s"
-#define RPL_USERHOST ":%s 302 %s :%s"
-#define RPL_ISON ":%s 303 %s :"
-#define RPL_UNAWAY ":%s 305 %s :You are no longer marked as being away"
-#define RPL_NOWAWAY ":%s 306 %s :You have been marked as being away"
-#define RPL_WHOISREGNICK ":%s 307 %s %s :has identified for this nick"
-#define RPL_WHOISADMIN ":%s 313 %s %s :is a Server Administrator"
-#define RPL_WHOISUSER ":%s 311 %s %s %s %s * :%s"
-#define RPL_WHOISSERVER ":%s 312 %s %s %s :%s"
-#define RPL_WHOISOPERATOR ":%s 313 %s %s :is an IRC Operator"
-#define RPL_WHOWASUSER ":%s 314 %s %s %s %s * :%s"
-#define RPL_ENDOFWHO ":%s 315 %s %s :End of /WHO list."
-#define RPL_WHOISIDLE ":%s 317 %s %s %u %d :seconds idle, signon time"
-#define RPL_ENDOFWHOIS ":%s 318 %s %s :End of /WHOIS list."
-#define RPL_WHOISCHANNELS ":%s 319 %s %s :%s"
-#define RPL_LISTSTART ":%s 321 %s Channel :Users Name"
-#define RPL_LIST ":%s 322 %s %s %d :%s"
-#define RPL_LISTEND ":%s 323 %s :End of /LIST"
-#define RPL_CHANNELMODEIS ":%s 324 %s %s %s %s"
-#define RPL_CREATIONTIME ":%s 329 %s %s %lu"
-#define RPL_NOTOPIC ":%s 331 %s %s :No topic is set."
-#define RPL_TOPIC ":%s 332 %s %s :%s"
-#define RPL_TOPICWHOTIME ":%s 333 %s %s %s %lu"
-#define RPL_WHOISACTUALLY ":%s 338 %s %s %s :actually using host"
-#define RPL_INVITING ":%s 341 %s %s %s"
-#define RPL_INVITELIST ":%s 346 %s %s %s!%s@%s %s %lu"
-#define RPL_ENDOFINVITELIST ":%s 347 %s %s :End of Channel Invite List"
-#define RPL_EXCEPTLIST ":%s 348 %s %s %s!%s@%s %s %lu"
-#define RPL_ENDOFEXCEPTLIST ":%s 349 %s %s :End of Channel Exception List"
-#define RPL_VERSION ":%s 351 %s %s(%s). %s :%s%s"
-#define RPL_WHOREPLY ":%s 352 %s %s %s %s %s %s %s :%d %s"
-#define RPL_NAMREPLY ":%s 353 %s %s %s :"
-#define RPL_CLOSING ":%s 362 %s %s :Closed. Status = %d"
-#define RPL_CLOSEEND ":%s 363 %s %d: Connections Closed"
-#define RPL_LINKS ":%s 364 %s %s %s :%d %s"
-#define RPL_ENDOFLINKS ":%s 365 %s %s :End of /LINKS list."
-#define RPL_ENDOFNAMES ":%s 366 %s %s :End of /NAMES list."
-#define RPL_BANLIST ":%s 367 %s %s %s!%s@%s %s %lu"
-#define RPL_ENDOFBANLIST ":%s 368 %s %s :End of Channel Ban List"
-#define RPL_ENDOFWHOWAS ":%s 369 %s %s :End of WHOWAS"
-#define RPL_INFO ":%s 371 %s :%s"
-#define RPL_MOTD ":%s 372 %s :- %s"
-#define RPL_INFOSTART ":%s 373 %s :Server INFO"
-#define RPL_ENDOFINFO ":%s 374 %s :End of /INFO list."
-#define RPL_MOTDSTART ":%s 375 %s :- %s Message of the Day - "
-#define RPL_ENDOFMOTD ":%s 376 %s :End of /MOTD command."
-#define RPL_YOUREOPER ":%s 381 %s :You have entered... the Twilight Zone!"
-#define RPL_REHASHING ":%s 382 %s %s :Rehashing"
-#define RPL_TIME ":%s 391 %s %s :%s"
-#define RPL_HOSTHIDDEN ":%s 396 %s %s :is now your hidden host"
+
+#define RPL_STATSPLINE 220
+#define RPL_UMODEIS 221
+
+/* RPL_SQLINE_NICK 222 Numerics List: Dalnet */
+/* RPL_STATSELINE 223 dalnet */
+/* RPL_STATSGLINE 223 unreal */
+/* RPL_STATSFLINE 224 Hybrid extension,Dalnet */
+/* RPL_STATSTLINE 224 unreal */
+/* RPL_STATSDLINE 225 Hybrid extension */
+/* RPL_STATSZLINE 225 Dalnet
+ RPL_STATSELINE 225 unreal
+ RPL_STATSCOUNT 226 Dalnet
+ RPL_STATSNLINE 226 unreal
+ RPL_STATSGLINE 227 Dalnet
+ RPL_STATSVLINE 227 unreal */
+
+#define RPL_STATSFLINE 224
+#define RPL_STATSDLINE 225
+#define RPL_STATSALINE 226
+
+/* RPL_RULES 232 unreal */
+
+/* RPL_STATSIAUTH 239 IRCnet extension */
+/* RPL_STATSVLINE 240 IRCnet extension */
+/* RPL_STATSXLINE 240 austnet */
+
+#define RPL_STATSLLINE 241
+#define RPL_STATSUPTIME 242
+#define RPL_STATSOLINE 243
+#define RPL_STATSHLINE 244
+/* 245 No longer used in ircd-hybrid */
+#define RPL_STATSSLINE 245
+#define RPL_STATSSERVICE 246
+#define RPL_STATSXLINE 247
+#define RPL_STATSULINE 248
+#define RPL_STATSDEBUG 249
+#define RPL_STATSCONN 250
+/* RPL_STATSDLINE 250 Numerics List: IRCnet */
+#define RPL_LUSERCLIENT 251
+#define RPL_LUSEROP 252
+#define RPL_LUSERUNKNOWN 253
+#define RPL_LUSERCHANNELS 254
+#define RPL_LUSERME 255
+#define RPL_ADMINME 256
+#define RPL_ADMINLOC1 257
+#define RPL_ADMINLOC2 258
+#define RPL_ADMINEMAIL 259
+
+#define RPL_ENDOFTRACE 262
+#define RPL_LOAD2HI 263
+
+/* RPL_TRYAGAIN 263 Numerics List: IRCnet */
+/* RPL_LOAD2HI 263 Dalnet */
+/* RPL_CURRENT_LOCAL 265 aircd/efnet/hybrid/dalnet*/
+/* RPL_CURRENT_GLOBAL 266 aircd/efnet/hybrid/dalnet */
+/* RPL_START_NETSTAT 267 aircd */
+/* RPL_NETSTAT 268 aircd */
+/* RPL_END_NETSTAT 269 aircd */
+
+#define RPL_LOCALUSERS 265
+#define RPL_GLOBALUSERS 266
+
+#define RPL_ACCEPTLIST 281
+#define RPL_ENDOFACCEPT 282
+
+/* RPL_GLIST 280 Undernet extension */
+/* RPL_ENDOFGLIST 281 Undernet extension */
+/* RPL_JUPELIST 282 Undernet extension - jupe -Kev */
+/* RPL_ENDOFJUPELIST 283 Undernet extension - jupe -Kev */
+/* RPL_FEATURE 284 Undernet extension - features */
+/* RPL_CHANINFO_HANDLE 285 aircd */
+/* RPL_CHANINFO_USERS 286 aircd */
+/* RPL_CHANINFO_CHOPS 287 aircd */
+/* RPL_CHANINFO_VOICES 288 aircd */
+/* RPL_CHANINFO_AWAY 289 aircd */
+/* RPL_CHANINFO_OPERS 290 aircd */
+/* RPL_HELPHDR 290 Numeric List: Dalnet */
+/* RPL_CHANINFO_BANNED 291 aircd */
+/* RPL_HELPOP 291 Numeric List: Dalnet */
+/* RPL_CHANINFO_BANS 292 aircd */
+/* RPL_HELPTLR 292 Numeric List: Dalnet */
+/* RPL_CHANINFO_INVITE 293 aircd */
+/* RPL_HELPHLP 293 Numeric List: Dalnet */
+/* RPL_CHANINFO_INVITES 294 aircd */
+/* RPL_HELPFWD 294 Numeric List: Dalnet */
+/* RPL_CHANINFO_KICK 295 aircd */
+/* RPL_HELPIGN 295 Numeric List: Dalnet */
+/* RPL_CHANINFO_KICKS 296 aircd */
+
+/* RPL_END_CHANINFO 299 aircd */
+
+/* numeric_replies */
+#define RPL_AWAY 301
+#define RPL_USERHOST 302
+#define RPL_ISON 303
+#define RPL_TEXT 304
+#define RPL_UNAWAY 305
+#define RPL_NOWAWAY 306
+/* RPL_USERIP 307 Undernet extension */
+#define RPL_WHOISREGNICK 307
+/* RPL_SUSERHOST 307 austnet */
+/* RPL_NOTIFYACTION 308 aircd */
+#define RPL_WHOISADMIN 308 /* Numeric List: Dalnet */
+/* RPL_RULESSTART 308 unreal */
+/* RPL_NICKTRACE 309 aircd */
+/* RPL_WHOISSADMIN 309 Numeric List: Dalnet */
+/* RPL_ENDOFRULES 309 unreal */
+/* RPL_WHOISHELPER 309 austnet */
+/* RPL_WHOISSVCMSG 310 Dalnet */
+/* RPL_WHOISHELPOP 310 unreal */
+/* RPL_WHOISSERVICE 310 austnet */
+
+#define RPL_WHOISUSER 311
+#define RPL_WHOISSERVER 312
+#define RPL_WHOISOPERATOR 313
+
+#define RPL_WHOWASUSER 314
+/* rpl_endofwho below (315) */
+#define RPL_ENDOFWHOWAS 369
+
+#define RPL_WHOISCHANOP 316 /* redundant and not needed but reserved */
+#define RPL_WHOISIDLE 317
+
+#define RPL_ENDOFWHOIS 318
+#define RPL_WHOISCHANNELS 319
+/* RPL_WHOIS_HIDDEN 320 Anothernet +h, ick! */
+/* RPL_WHOISSPECIAL 320 unreal */
+#define RPL_LISTSTART 321
+#define RPL_LIST 322
+#define RPL_LISTEND 323
+#define RPL_CHANNELMODEIS 324
+/* RPL_CHANNELPASSIS 325 IRCnet extension */
+/* RPL_UNIQOPIS 325 IRCnet extension */
+/* RPL_NOCHANPASS 326 IRCnet extension */
+/* RPL_CHPASSUNKNOWN 327 IRCnet extension */
+/* RPL_CHANNEL_URL 328 dalnet, anothernet */
+#define RPL_CREATIONTIME 329
+/* RPL_WHOWAS_TIME 330 ? */
+#define RPL_NOTOPIC 331
+#define RPL_TOPIC 332
+#define RPL_TOPICWHOTIME 333
+/* RPL_COMMANDSYNTAX 334 Dalnet */
+/* RPL_LISTSYNTAX 334 unreal */
+/* RPL_CHANPASSOK 338 IRCnet extension (?)*/
+#define RPL_WHOISACTUALLY 338 /* dalnet */
+/* RPL_WHOISACTUALLY 338 Undernet extension, dalnet */
+/* RPL_BADCHANPASS 339 IRCnet extension (?)*/
+/* RPL_USERIP 340 (old) Undernet extension */
+#define RPL_INVITING 341
+/* RPL_SUMMONING 342 removed from RFC1459 */
+
+#define RPL_INVITELIST 346
+#define RPL_ENDOFINVITELIST 347 /* IRCnet, Undernet extension */
+#define RPL_EXCEPTLIST 348
+#define RPL_ENDOFEXCEPTLIST 349
+
+#define RPL_VERSION 351
+
+#define RPL_WHOREPLY 352
+#define RPL_ENDOFWHO 315
+#define RPL_NAMREPLY 353
+#define RPL_ENDOFNAMES 366
+
+#define RPL_CLOSING 362
+#define RPL_CLOSEEND 363
+#define RPL_LINKS 364
+#define RPL_ENDOFLINKS 365
+/* rpl_endofnames above (366) */
+#define RPL_BANLIST 367
+#define RPL_ENDOFBANLIST 368
+/* rpl_endofwhowas above (369) */
+
+#define RPL_INFO 371
+#define RPL_MOTD 372
+#define RPL_INFOSTART 373
+#define RPL_ENDOFINFO 374
+#define RPL_MOTDSTART 375
+#define RPL_ENDOFMOTD 376
+
+/* RPL_KICKEXPIRED 377 aircd */
+/* RPL_SPAM 377 austnet */
+/* RPL_BANEXPIRED 378 aircd */
+/* RPL_KICKLINKED 379 aircd */
+/* RPL_BANLINKED 380 aircd */
+
+#define RPL_YOUREOPER 381
+#define RPL_REHASHING 382
+/* RPL_YOURSERVICE 383 Numeric List: various */
+#define RPL_RSACHALLENGE 386
+
+/* RPL_QLIST 386 unreal */
+/* RPL_ENDOFQLIST 387 unreal */
+/* RPL_ALIST 388 unreal */
+/* RPL_ENDOFALIST 389 unreal */
+
+#define RPL_TIME 391
+#define RPL_USERSSTART 392
+#define RPL_USERS 393
+#define RPL_ENDOFUSERS 394
+#define RPL_NOUSERS 395
+#define RPL_HOSTHIDDEN 396
/*
* Errors are in the range from 400-599 currently and are grouped by what
* commands they come from.
*/
-#define ERR_NOSUCHNICK ":%s 401 %s %s :No such nick/channel"
-#define ERR_NOSUCHSERVER ":%s 402 %s %s :No such server"
-#define ERR_NOSUCHCHANNEL ":%s 403 %s %s :No such channel"
-#define ERR_CANNOTSENDTOCHAN ":%s 404 %s %s :Cannot send to channel"
-#define ERR_TOOMANYCHANNELS ":%s 405 %s %s :You have joined too many channels"
-#define ERR_WASNOSUCHNICK ":%s 406 %s %s :There was no such nickname"
-#define ERR_TOOMANYTARGETS ":%s 407 %s %s :Too many recipients. Only %d processed"
-#define ERR_NOORIGIN ":%s 409 %s :No origin specified"
-#define ERR_INVALIDCAPCMD ":%s 410 %s %s :Invalid CAP subcommand"
-#define ERR_NORECIPIENT ":%s 411 %s :No recipient given (%s)"
-#define ERR_NOTEXTTOSEND ":%s 412 %s :No text to send"
-#define ERR_NOTOPLEVEL ":%s 413 %s %s :No toplevel domain specified"
-#define ERR_WILDTOPLEVEL ":%s 414 %s %s :Wildcard in toplevel Domain"
-#define ERR_UNKNOWNCOMMAND ":%s 421 %s %s :Unknown command"
-#define ERR_NOMOTD ":%s 422 %s :MOTD File is missing"
-#define ERR_NOADMININFO ":%s 423 %s %s :No administrative info available"
-#define ERR_NONICKNAMEGIVEN ":%s 431 %s :No nickname given"
-#define ERR_ERRONEUSNICKNAME ":%s 432 %s %s :Erroneous Nickname"
-#define ERR_NICKNAMEINUSE ":%s 433 %s %s :Nickname is already in use."
-#define ERR_NICKCOLLISION ":%s 436 %s %s :Nickname collision KILL"
-#define ERR_UNAVAILRESOURCE ":%s 437 %s %s :Nick/channel is temporarily unavailable"
-#define ERR_NICKTOOFAST ":%s 438 %s %s %s :Nick change too fast. Please wait %d seconds."
-#define ERR_SERVICESDOWN ":%s 440 %s %s :Services is currently down."
-#define ERR_USERNOTINCHANNEL ":%s 441 %s %s %s :They aren't on that channel"
-#define ERR_NOTONCHANNEL ":%s 442 %s %s :You're not on that channel"
-#define ERR_USERONCHANNEL ":%s 443 %s %s %s :is already on channel"
-#define ERR_NOTREGISTERED ":%s 451 %s :You have not registered"
-#define ERR_ACCEPTFULL ":%s 456 %s :Accept list is full"
-#define ERR_ACCEPTEXIST ":%s 457 %s %s!%s@%s :is already on your accept list"
-#define ERR_ACCEPTNOT ":%s 458 %s %s!%s@%s :is not on your accept list"
-#define ERR_NEEDMOREPARAMS ":%s 461 %s %s :Not enough parameters"
-#define ERR_ALREADYREGISTRED ":%s 462 %s :You may not reregister"
-#define ERR_PASSWDMISMATCH ":%s 464 %s :Password Incorrect"
-#define ERR_YOUREBANNEDCREEP ":%s 465 %s :You are banned from this server- %s"
-#define ERR_ONLYSERVERSCANCHANGE ":%s 468 %s %s :Only servers can change that mode"
-#define ERR_OPERONLYCHAN ":%s 470 %s %s :Cannot join channel (+O)"
-#define ERR_CHANNELISFULL ":%s 471 %s %s :Cannot join channel (+l)"
-#define ERR_UNKNOWNMODE ":%s 472 %s %c :is unknown mode char to me"
-#define ERR_INVITEONLYCHAN ":%s 473 %s %s :Cannot join channel (+i)"
-#define ERR_BANNEDFROMCHAN ":%s 474 %s %s :Cannot join channel (+b)"
-#define ERR_BADCHANNELKEY ":%s 475 %s %s :Cannot join channel (+k)"
-#define ERR_NEEDREGGEDNICK ":%s 477 %s %s :You need to identify to a registered nick to join or speak in that channel."
-#define ERR_BANLISTFULL ":%s 478 %s %s %s :Channel ban list is full"
-#define ERR_BADCHANNAME ":%s 479 %s %s :Illegal channel name"
-#define ERR_SSLONLYCHAN ":%s 480 %s %s :Cannot join channel (+S)"
-#define ERR_NOPRIVILEGES ":%s 481 %s :Permission Denied - You're not an IRC operator"
-#define ERR_CHANOPRIVSNEEDED ":%s 482 %s %s :You're not channel operator"
-#define ERR_CANTKILLSERVER ":%s 483 %s :You can't kill a server!"
-#define ERR_RESTRICTED ":%s 484 %s :You are restricted"
-#define ERR_NONONREG ":%s 486 %s %s :You must identify to a registered nick to private message that person"
-#define ERR_NOOPERHOST ":%s 491 %s :Only few of mere mortals may try to enter the twilight zone"
-#define ERR_UMODEUNKNOWNFLAG ":%s 501 %s :Unknown MODE flag"
-#define ERR_USERSDONTMATCH ":%s 502 %s :Can't change mode for other users"
-#define ERR_GHOSTEDCLIENT ":%s 503 %s :Message could not be delivered to %s"
-#define ERR_USERNOTONSERV ":%s 504 %s %s :User is not on this server"
-#define ERR_TOOMANYWATCH ":%s 512 %s %s :Maximum size for WATCH-list is %d entries"
-#define ERR_WRONGPONG ":%s 513 %s :To connect type /QUOTE PONG %u"
-#define ERR_LISTSYNTAX ":%s 521 %s :Bad list syntax, type /QUOTE HELP LIST"
-#define ERR_HELPNOTFOUND ":%s 524 %s %s :Help not found"
-#define RPL_LOGON ":%s 600 %s %s %s %s %d :logged online"
-#define RPL_LOGOFF ":%s 601 %s %s %s %s %d :logged offline"
-#define RPL_WATCHOFF ":%s 602 %s %s %s %s %d :stopped watching"
-#define RPL_WATCHSTAT ":%s 603 %s :You have %u and are on %u WATCH entries"
-#define RPL_NOWON ":%s 604 %s %s %s %s %d :is online"
-#define RPL_NOWOFF ":%s 605 %s %s %s %s %d :is offline"
-#define RPL_WATCHLIST ":%s 606 %s :%s"
-#define RPL_ENDOFWATCHLIST ":%s 607 %s :End of WATCH %c"
-#define RPL_WHOISSECURE ":%s 671 %s %s :is connected via SSL (secure link)"
-#define RPL_MODLIST ":%s 702 %s %s %p %s %s"
-#define RPL_ENDOFMODLIST ":%s 703 %s :End of /MODLIST."
-#define RPL_HELPSTART ":%s 704 %s %s :%s"
-#define RPL_HELPTXT ":%s 705 %s %s :%s"
-#define RPL_ENDOFHELP ":%s 706 %s %s :End of /HELP."
-#define RPL_ETRACE_FULL ":%s 708 %s %s %s %s %s %s %s %s %s :%s"
-#define RPL_ETRACE ":%s 709 %s %s %s %s %s %s %s :%s"
-#define RPL_KNOCK ":%s 710 %s %s %s!%s@%s :has asked for an invite."
-#define RPL_KNOCKDLVR ":%s 711 %s %s :Your KNOCK has been delivered."
-#define ERR_TOOMANYKNOCK ":%s 712 %s %s :Too many KNOCKs (%s)."
-#define ERR_CHANOPEN ":%s 713 %s %s :Channel is open."
-#define ERR_KNOCKONCHAN ":%s 714 %s %s :You are already on that channel."
-#define RPL_TARGUMODEG ":%s 716 %s %s :is in +g mode (server side ignore)"
-#define RPL_TARGNOTIFY ":%s 717 %s %s :has been informed that you messaged them."
-#define RPL_UMODEGMSG ":%s 718 %s %s :is messaging you, and you are umode +g."
-#define ERR_NOPRIVS ":%s 723 %s %s :Insufficient oper privs."
-#define RPL_TESTMASK ":%s 724 %s %s!%s@%s %u %u :Local/remote clients match."
-#define RPL_TESTLINE ":%s 725 %s %c %ld %s :%s"
-#define RPL_NOTESTLINE ":%s 726 %s %s :No matches"
-#define RPL_STATSDEBUG 249 /* XXX */
-#endif
+#define ERR_NOSUCHNICK 401
+#define ERR_NOSUCHSERVER 402
+#define ERR_NOSUCHCHANNEL 403
+#define ERR_CANNOTSENDTOCHAN 404
+#define ERR_TOOMANYCHANNELS 405
+#define ERR_WASNOSUCHNICK 406
+#define ERR_TOOMANYTARGETS 407
+#define ERR_NOORIGIN 409
+#define ERR_INVALIDCAPCMD 410
+
+#define ERR_NORECIPIENT 411
+#define ERR_NOTEXTTOSEND 412
+#define ERR_NOTOPLEVEL 413
+#define ERR_WILDTOPLEVEL 414
+/* ERR_BADMASK 415 IRCnet extension */
+#define ERR_UNKNOWNCOMMAND 421
+#define ERR_NOMOTD 422
+#define ERR_NOADMININFO 423
+
+/* ERR_TOOMANYAWAY 429 Dalnet */
+
+#define ERR_NONICKNAMEGIVEN 431
+#define ERR_ERRONEUSNICKNAME 432
+#define ERR_NICKNAMEINUSE 433
+
+/* ERR_SERVICENAMEINUSE 434 ? */
+/* ERR_NORULES 434 unreal */
+/* ERR_SERVICECONFUSED 435 ? */
+/* ERR_BANONCHAN 435 dalnet */
+
+#define ERR_NICKCOLLISION 436
+#define ERR_UNAVAILRESOURCE 437
+#define ERR_NICKTOOFAST 438 /* We did it first Undernet! ;) db */
+
+#define ERR_SERVICESDOWN 440
+
+#define ERR_USERNOTINCHANNEL 441
+#define ERR_NOTONCHANNEL 442
+#define ERR_USERONCHANNEL 443
+
+#define ERR_NOTREGISTERED 451
+
+/* ERR_IDCOLLISION 452 IRCnet extension ? */
+/* ERR_NICKLOST 453 IRCnet extension ? */
+
+/* ERR_HOSTILENAME 455 unreal */
+
+/* ERR_NOHIDING 459 unreal */
+/* ERR_NOTFORHALFOPS 460 unreal */
+
+#define ERR_ACCEPTFULL 456
+#define ERR_ACCEPTEXIST 457
+#define ERR_ACCEPTNOT 458
+
+#define ERR_NEEDMOREPARAMS 461
+#define ERR_ALREADYREGISTRED 462
+#define ERR_PASSWDMISMATCH 464
+#define ERR_YOUREBANNEDCREEP 465
+#define ERR_ONLYSERVERSCANCHANGE 468
+/* ERR_LINKSET 469 unreal */
+/* ERR_LINKCHANNEL 470 unreal */
+/* ERR_KICKEDFROMCHAN 470 aircd */
+#define ERR_OPERONLYCHAN 470
+#define ERR_CHANNELISFULL 471
+#define ERR_UNKNOWNMODE 472
+#define ERR_INVITEONLYCHAN 473
+#define ERR_BANNEDFROMCHAN 474
+#define ERR_BADCHANNELKEY 475
+#define ERR_NEEDREGGEDNICK 477
+#define ERR_BANLISTFULL 478 /* I stole the numeric from ircu -db */
+#define ERR_BADCHANNAME 479
+/* ERR_LINKFAIL 479 unreal */
+#define ERR_SSLONLYCHAN 480
+#define ERR_NOPRIVILEGES 481
+#define ERR_CHANOPRIVSNEEDED 482
+#define ERR_CANTKILLSERVER 483
+#define ERR_RESTRICTED 484
+/* ERR_DESYNC 484 Dalnet,PTlink */
+/* ERR_ATTACKDENY 484 unreal */
+/* ERR_RESTRICTED 484 IRCnet extension */
+/* ERR_UNIQOPRIVSNEEDED 485 IRCnet extension */
+/* ERR_KILLDENY 485 unreal */
+/* ERR_CANTKICKADMIN 485 PTlink */
+#define ERR_NONONREG 486
+/* ERR_CHANTOORECENT 487 IRCnet extension (?) */
+/* ERR_TSLESSCHAN 488 IRCnet extension (?) */
+/* ERR_VOICENEEDED 489 Undernet extension */
+#define ERR_NOOPERHOST 491
+/* ERR_NOSERVICEHOST 492 IRCnet extension */
+
+#define ERR_UMODEUNKNOWNFLAG 501
+#define ERR_USERSDONTMATCH 502
+
+#define ERR_GHOSTEDCLIENT 503
+/* ERR_VWORLDWARN 503 austnet */
+
+#define ERR_USERNOTONSERV 504
+
+/* #define ERR_LAST_ERR_MSG 505
+ * moved to 999
+ */
+
+
+#define ERR_TOOMANYWATCH 512
+#define ERR_WRONGPONG 513
+/* ERR_TOOMANYDCC 514 dalnet */
+/* ERR_NOINVITE 518 unreal */
+#define ERR_LONGMASK 518 /* Undernet extension -Kev */
+/* ERR_ADMONLY 519 unreal */
+/* ERR_TOOMANYUSERS 519 Undernet extension -Kev */
+/* ERR_OPERONLY 520 unreal */
+/* ERR_MASKTOOWIDE 520 Undernet extension -Kev */
+/* ERR_WHOTRUNC 520 austnet */
+/* ERR_LASTERROR 521 Undernet extension -Kev */
+#define ERR_LISTSYNTAX 521
+/* ERR_WHOSYNTAX 522 dalnet */
+/* ERR_WHOLIMEXCEED 523 dalnet */
+
+#define ERR_HELPNOTFOUND 524
+
+#define RPL_LOGON 600
+#define RPL_LOGOFF 601
+#define RPL_WATCHOFF 602
+#define RPL_WATCHSTAT 603
+#define RPL_NOWON 604
+#define RPL_NOWOFF 605
+#define RPL_WATCHLIST 606
+#define RPL_ENDOFWATCHLIST 607
+
+/* RPL_MAPMORE 610 unreal
+
+ RPL_MAPMORE 615 PTlink
+
+ RPL_DCCSTATUS 617 dalnet
+ RPL_DCCLIST 618 dalnet
+ RPL_ENDOFDCCLIST 619 dalnet
+ RPL_DCCINFO 620 dalnet
+
+ RPL_DUMPING 640 unreal
+ RPL_DUMPRPL 641 unreal
+ RPL_EODUMP 642 unreal
+*/
+
+#define RPL_WHOISSECURE 671
+#define RPL_MODLIST 702
+#define RPL_ENDOFMODLIST 703
+
+#define RPL_HELPSTART 704
+#define RPL_HELPTXT 705
+#define RPL_ENDOFHELP 706
+
+#define RPL_ETRACE_FULL 708
+#define RPL_ETRACE 709
+
+#define RPL_KNOCK 710
+#define RPL_KNOCKDLVR 711
+
+#define ERR_TOOMANYKNOCK 712
+#define ERR_CHANOPEN 713
+#define ERR_KNOCKONCHAN 714
+
+#define RPL_TARGUMODEG 716
+#define RPL_TARGNOTIFY 717
+#define RPL_UMODEGMSG 718
+
+#define ERR_NOPRIVS 723
+
+#define RPL_TESTMASK 724
+#define RPL_TESTLINE 725
+#define RPL_NOTESTLINE 726
+
+#define ERR_LAST_ERR_MSG 999
+
+#endif /* INCLUDED_numeric_h */
diff --git a/include/stdinc.h b/include/stdinc.h
index 421a866..4596f8a 100644
--- a/include/stdinc.h
+++ b/include/stdinc.h
@@ -93,10 +93,10 @@
#define HYB_PATH_MAX 4096
#endif
-//#if 0 && __GNUC__
+#if 0 && __GNUC__
#define AFP(a,b) __attribute__((format (printf, a, b)))
-//#else
-//#define AFP(a,b)
-//#endif
+#else
+#define AFP(a,b)
+#endif
#endif
diff --git a/include/watch.h b/include/watch.h
index b1ca22a..2d14818 100644
--- a/include/watch.h
+++ b/include/watch.h
@@ -41,7 +41,7 @@ struct Watch
extern void watch_init(void);
extern void watch_add_to_hash_table(const char *, struct Client *);
extern void watch_del_from_hash_table(const char *, struct Client *);
-extern void watch_check_hash(struct Client *, const char *);
+extern void watch_check_hash(struct Client *, int);
extern void watch_del_watch_list(struct Client *);
extern void watch_count_memory(unsigned int *const, uint64_t *const);
extern struct Watch *watch_find_hash(const char *);
diff --git a/messages/Makefile.am b/messages/Makefile.am
new file mode 100644
index 0000000..5490cc5
--- /dev/null
+++ b/messages/Makefile.am
@@ -0,0 +1,21 @@
+AUTOMAKE_OPTIONS = foreign
+messagesdir = $(pkgdatadir)/messages
+
+dist_messages_DATA = ayb.lang \
+ custom.lang \
+ ircd-brazilian_pt.lang \
+ ircd-bulgarian.lang \
+ ircd-croatian.lang \
+ ircd-danish.lang \
+ ircd-dutch.lang \
+ ircd-french.lang \
+ ircd-german.lang \
+ ircd-italian.lang \
+ ircd-norwegian.lang \
+ ircd-polish.lang \
+ ircd-romanian.lang \
+ ircd-russian.lang \
+ ircd-spanish.lang \
+ ircd-swedish.lang
+
+messages: $(dist_messages_DATA)
diff --git a/messages/Makefile.in b/messages/Makefile.in
new file mode 100644
index 0000000..4264836
--- /dev/null
+++ b/messages/Makefile.in
@@ -0,0 +1,495 @@
+# Makefile.in generated by automake 1.13.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = messages
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+ $(dist_messages_DATA) README
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(messagesdir)"
+DATA = $(dist_messages_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+ARGZ_H = @ARGZ_H@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIR = @DATADIR@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GREP = @GREP@
+INCLTDL = @INCLTDL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LEX = @LEX@
+LEXLIB = @LEXLIB@
+LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+LIBADD_DL = @LIBADD_DL@
+LIBADD_DLD_LINK = @LIBADD_DLD_LINK@
+LIBADD_DLOPEN = @LIBADD_DLOPEN@
+LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@
+LIBDIR = @LIBDIR@
+LIBLTDL = @LIBLTDL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LOCALSTATEDIR = @LOCALSTATEDIR@
+LTDLDEPS = @LTDLDEPS@
+LTDLINCL = @LTDLINCL@
+LTDLOPEN = @LTDLOPEN@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CONFIG_H = @LT_CONFIG_H@
+LT_DLLOADERS = @LT_DLLOADERS@
+LT_DLPREOPEN = @LT_DLPREOPEN@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PREFIX = @PREFIX@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SYSCONFDIR = @SYSCONFDIR@
+VERSION = @VERSION@
+YACC = @YACC@
+YFLAGS = @YFLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+ltdl_LIBOBJS = @ltdl_LIBOBJS@
+ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sys_symbol_underscore = @sys_symbol_underscore@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AUTOMAKE_OPTIONS = foreign
+messagesdir = $(pkgdatadir)/messages
+dist_messages_DATA = ayb.lang \
+ custom.lang \
+ ircd-brazilian_pt.lang \
+ ircd-bulgarian.lang \
+ ircd-croatian.lang \
+ ircd-danish.lang \
+ ircd-dutch.lang \
+ ircd-french.lang \
+ ircd-german.lang \
+ ircd-italian.lang \
+ ircd-norwegian.lang \
+ ircd-polish.lang \
+ ircd-romanian.lang \
+ ircd-russian.lang \
+ ircd-spanish.lang \
+ ircd-swedish.lang
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign messages/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign messages/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-dist_messagesDATA: $(dist_messages_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(dist_messages_DATA)'; test -n "$(messagesdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(messagesdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(messagesdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(messagesdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(messagesdir)" || exit $$?; \
+ done
+
+uninstall-dist_messagesDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(dist_messages_DATA)'; test -n "$(messagesdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(messagesdir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(messagesdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-dist_messagesDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-dist_messagesDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ cscopelist-am ctags-am distclean distclean-generic \
+ distclean-libtool distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am \
+ install-dist_messagesDATA install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+ uninstall-am uninstall-dist_messagesDATA
+
+
+messages: $(dist_messages_DATA)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/messages/README b/messages/README
new file mode 100644
index 0000000..b62a162
--- /dev/null
+++ b/messages/README
@@ -0,0 +1,45 @@
+Translated message files (user/admin submitted)
+
+There are user submitted message files for ircd-hybrid-8. Read the
+example file in this directory (ircd-standard.example.lang) and the file
+doc/messages.txt to learn how to create, install, and possibly submit
+your own .lang files.
+
+At the present time, the following languages are supported:
+
+brazilian portuguese - maintained by Marcelo Lipienski <und3rl1n3d@gmail.com>
+swedish - maintained by trbz - Chris C <chris@mircscripter.com>
+croatian - maintained by Martin - Vid Strpic <strpic@bofhlet.net>
+french - maintained by joshk - Joshua Kwan <joshk@triplehelix.org>
+german - maintained by dmalloc - Darian Lanx <bio@gmx.net>
+italian - maintained by Afaa - Federico Giovannini <afaa@ircd-hybrid.it>
+norwegian - maintained by inglish - Stephen Olsen <inglish@sol.no>
+danish - maintained by Xride - Soren Straarup Andersen <xride@eit.ihk-edu.dk>
+spanish - maintained by ermak - anonymous <ermak@cyberdude.com>
+dutch - maintained by Riedel - Dennis Vink <vink@vuurwerk.nl>
+polish - maintained by adx - Piotr Nizynski <adx@irc7.pl>
+russian - maintained by Ilya - Ilya Shtift <ishtift@tagil.svrw.ru>
+romanian - maintained by Bogdan Mintoi <bogdomania@yahoo.com>
+
+All of the files are installed into the prefix directory, under messages.
+Each is installed into a different directory, prefixed by ircd-.
+
+The message locale is settable at runtime with /quote SET MSGLOCALE language,
+ex. /quote SET MSGLOCALE ircd-german
+
+and via the message_locale="language"; in the general block of the ircd.conf.
+ex. message_locale="ircd-german";
+
+--
+The ircd-hybrid team is not accountable for any mistakes, mistranslations, or
+accidental insults from the use of one of the included translations. All
+translations are done by individuals who have given their time and skills to
+provide localized users with pre-built translations. The ircd-hybrid team
+will try, but cannot guarantee that the translations are up to date with the
+rest of the source tree, and with the "customized" messages.
+
+Contributions are welcome, at present time please send contributed translations
+to bugs@ircd-hybrid.org, hybrid@ircd-hybrid.org, or directly to one of the people
+who work with the translations.
+
+$Id$
diff --git a/messages/ayb.lang b/messages/ayb.lang
new file mode 100644
index 0000000..4dfc928
--- /dev/null
+++ b/messages/ayb.lang
@@ -0,0 +1,29 @@
+; ircd-hybrid-7 custom message file
+; Copyright (C) 2000
+; David Taylor <davidt@yadt.co.uk>, 2000.
+; $Id$
+
+RPL_WELCOME: :%s 001 %s :ALL YOUR BASE ARE BELONG TO %s, %s!!!
+RPL_CREATED: :%s 003 %s :Someone set up us the server %s
+RPL_ISUPPORT: :%s 005 %s %s :are moved for great justice
+RPL_REDIR: :%s 010 %s %s %d :You have no chance to survive make this Server/Port instead. Ha ha ha.
+RPL_STATSUPTIME: :%s 242 %s :Someone set up us the bomb %d days, %d:%02d:%02d ago
+RPL_LUSERCLIENT: :%s 251 %s :There are %d minor Zigs and %d invisible on %d servers
+RPL_LUSEROP: :%s 252 %s %d :Zigs online
+RPL_LUSERME: :%s 255 %s :%d clients and %d servers are belong to me
+RPL_LOAD2HI: :%s 263 %s :What you say!?? The server is moving too many zigs..
+RPL_LOCALUSERS: :%s 265 %s :%d users (max %d) are belong to me
+RPL_GLOBALUSERS: :%s 266 %s :%d users (max %d) are belong to the network
+RPL_UNAWAY: :%s 305 %s :OK, you're not /away anymore. Did you move Zig for great justice?
+RPL_NOWAWAY: :%s 306 %s :OK, you're /away now. Hurry back!
+RPL_YOUREOPER: :%s 381 %s :SOMEONE SET YOU UP THE /KILL FOR GREAT JUSTICE!
+ERR_NOSUCHNICK: :%s 401 %s %s :No such Zig
+ERR_TOOMANYCHANNELS: :%s 405 %s %s :Too many channels are belong to you
+ERR_WASNOSUCHNICK: :%s 406 %s %s :There was no such Zig
+ERR_TOOMANYTARGETS: :%s 407 %s %s :Too many recipients. Your message is only belong to %d
+ERR_NORECIPIENT: :%s 411 %s :No Zigs Moved (%s)
+ERR_UNKNOWNCOMMAND: :%s 421 %s %s :THAT COMMAND IS NOT BELONG TO ME!!!
+ERR_NOMOTD: :%s 422 %s :MOTD file is not belong to me
+ERR_NICKNAMEINUSE: :%s 433 %s %s :Zig is belong to someone else.
+ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :You know what you doing, you need +o
+ERR_CANTKILLSERVER: :%s 483 %s :You have no chance to kill a SERVER make your time.
diff --git a/messages/custom.lang b/messages/custom.lang
new file mode 100644
index 0000000..c644d97
--- /dev/null
+++ b/messages/custom.lang
@@ -0,0 +1,20 @@
+; A compilation of original h5/h6/bsdnet numerics
+; $Id$
+
+RPL_CREATED: :%s 003 %s :This server rose from the ashes %s
+RPL_STATSUPTIME: :%s 242 %s :Dianora hasn't messed with the server code now in %d days, %d:%02d:%02d
+RPL_LUSEROP: :%s 252 %s %d :Smurf Targets (IRC Operators) online
+RPL_LOAD2HI: :%s 263 %s :Hold your horses... the server load is temporarily too heavy. Try again later, ok?
+RPL_UNAWAY: :%s 305 %s :OK, you're not /away anymore. Did you have fun?
+RPL_NOWAWAY: :%s 306 %s :OK, you're /away now. Hurry back!
+RPL_WHOISOPERATOR: :%s 313 %s %s :is a Smurf Target (IRC Operator)
+RPL_WHOISADMIN: :%s 313 %s %s :is a Smurf Magnet (IRC Administrator)
+RPL_YOUREOPER: :%s 381 %s :You have the phorce. Use it wisely.
+RPL_REHASHING: :%s 382 %s %s :it slices, dices, and even reloads config files! Rehashing config file, mang.
+ERR_PASSWDMISMATCH: :%s 464 %s :BZZZT!! Wrong password, dewd. Are you sure you know what you're doing?
+ERR_YOUREBANNEDCREEP: :%s 465 %s :You are BANNED from this server - %s
+ERR_NOPRIVILEGES: :%s 481 %s :UHHH, I don't THINK so, dewd... you ain't got those mad l33+ sk1llz. (IRC Operator)
+ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :You can't do that thing, when you don't have that swing (You're not channel operator)
+ERR_CANTKILLSERVER: :%s 483 %s :Don't be an idiot - you can't kill a SERVER, fool.
+ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Unknown MODE flag - you smokin' something?
+ERR_USERSDONTMATCH: :%s 502 %s :You can't change user modes for other users, silly - check that nickname again.
diff --git a/messages/ircd-brazilian_pt.lang b/messages/ircd-brazilian_pt.lang
new file mode 100644
index 0000000..204b0de
--- /dev/null
+++ b/messages/ircd-brazilian_pt.lang
@@ -0,0 +1,127 @@
+; ircd-hybrid-7 custom message file
+; Copyright (C) 2003
+; Marcelo Lipienski <und3rl1n3d@gmail.com>
+; $Id$
+
+RPL_WELCOME: :%s 001 %s :Bem-vindo a %s Internet Relay Chat Network %s
+RPL_YOURHOST: :%s 002 %s :Você está no servidor %s, rodando a versão %s
+RPL_CREATED: :%s 003 %s :Este servidor foi criado %s
+RPL_ISUPPORT: :%s 005 %s %s :são suportados por este servidor
+RPL_REDIR: :%s 010 %s %s %d :Por favor use este Servidor/Porta
+RPL_MAPEND: :%s 017 %s :Fim do /MAP
+RPL_YOURID: :%s 042 %s %s :seu ID
+RPL_TRACELINK: :%s 200 %s Link %s %s %s
+RPL_TRACECONNECTING: :%s 201 %s Tente. %s %s
+RPL_TRACEHANDSHAKE: :%s 202 %s H.S. %s %s
+RPL_TRACEUNKNOWN: :%s 203 %s ???? %s %s (%s) %d
+RPL_TRACEOPERATOR: :%s 204 %s Oper %s %s (%s) %lu %lu
+RPL_TRACEUSER: :%s 205 %s Usuário %s %s (%s) %lu %lu
+RPL_TRACESERVER: :%s 206 %s Serv %s %dS %dC %s %s!%s@%s %lu
+RPL_TRACENEWTYPE: :%s 208 %s <novo tipo> 0 %s
+RPL_TRACECLASS: :%s 209 %s Classe %s %d
+RPL_ENDOFSTATS: :%s 219 %s %c :Fim do relatório do /STATS
+RPL_STATSUPTIME: :%s 242 %s :Servidor ligado %d dias, %d:%02d:%02d
+RPL_STATSCONN: :%s 250 %s :Máximo de conexões: %d (%d clientes) (%llu conexões recebidas)
+RPL_LUSERCLIENT: :%s 251 %s :Existem %d usuários e %d invisíveis em %d servidores
+RPL_LUSEROP: :%s 252 %s %d :Operadores do IRC conectados
+RPL_LUSERUNKNOWN: :%s 253 %s %d :conexão(ões) desconhecidas
+RPL_LUSERCHANNELS: :%s 254 %s %d :canais criados
+RPL_LUSERME: :%s 255 %s :Eu tenho %d clientes e %d servidores
+RPL_ADMINME: :%s 256 %s :Informações administrativas sobre %s
+RPL_ENDOFTRACE: :%s 262 %s %s :Fim do /TRACE
+RPL_LOAD2HI: :%s 263 %s :O servidor está temporariamente sobrecarregado. Por favor aguarde e tente novamente.
+RPL_LOCALUSERS: :%s 265 %s :Usuários locais atualmente: %d Máximo: %d
+RPL_GLOBALUSERS: :%s 266 %s :Usuários globais atualmente: %d Máximo: %d
+RPL_ENDOFACCEPT: :%s 282 %s :Fim da lista /ACCEPT.
+RPL_UNAWAY: :%s 305 %s :Você não está mais marcado como away
+RPL_NOWAWAY: :%s 306 %s :Você foi marcado como estando away
+RPL_WHOISADMIN: :%s 313 %s %s :é um Administrador do Servidor
+RPL_WHOISOPERATOR: :%s 313 %s %s :é um Operador do IRC
+RPL_ENDOFWHO: :%s 315 %s %s :Fim do /WHO.
+RPL_WHOISIDLE: :%s 317 %s %s %d %d :segundos inativo
+RPL_ENDOFWHOIS: :%s 318 %s %s :Fim do /WHOIS.
+RPL_LISTSTART: :%s 321 %s Canal :Usuário Nome
+RPL_LISTEND: :%s 323 %s :Fim do /LIST
+RPL_NOTOPIC: :%s 331 %s %s :Nenhum tópico setado.
+RPL_WHOISACTUALLY: :%s 338 %s %s %s :servidor atualmente sendo usado
+RPL_ENDOFINVEXLIST: :%s 347 %s %s :Fim da lista de convidados do canal
+RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Fim da lista de exceções do canal
+RPL_CLOSING: :%s 362 %s %s :Fechado. Status = %d
+RPL_CLOSEEND: :%s 363 %s %d: Conexões fechadas
+RPL_ENDOFLINKS: :%s 365 %s %s :Fim do /LINKS.
+RPL_ENDOFNAMES: :%s 366 %s %s :Fim do /NAMES.
+RPL_ENDOFBANLIST: :%s 368 %s %s :Fim da lista de banidos do canal
+RPL_ENDOFWHOWAS: :%s 369 %s %s :Fim do /WHOWAS
+RPL_INFOSTART: :%s 373 %s :Informações do servidor
+RPL_ENDOFINFO: :%s 374 %s :Fim do /INFO
+RPL_MOTDSTART: :%s 375 %s :- %s Mensagem do dia -
+RPL_ENDOFMOTD: :%s 376 %s :Fim do /MOTD.
+RPL_YOUREOPER: :%s 381 %s :Você entrou... na Zona do Crepúsculo!
+RPL_REHASHING: :%s 382 %s %s :Recarregando
+RPL_HOSTHIDDEN: :%s 396 %s :agora seu host está escondido
+ERR_NOSUCHNICK: :%s 401 %s %s :Nenhum canal/nick
+ERR_NOSUCHSERVER: :%s 402 %s %s :Nenhum servidor
+ERR_NOSUCHCHANNEL: :%s 403 %s %s :Nenhum canal
+ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Não pode enviar para o canal
+ERR_TOOMANYCHANNELS: :%s 405 %s %s :Você está em muitos canais
+ERR_WASNOSUCHNICK: :%s 406 %s %s :Não existe este nick
+ERR_TOOMANYTARGETS: :%s 407 %s %s :Muitos destinos. Somente %d processados
+ERR_NOORIGIN: :%s 409 %s :Nenhuma origem especificada
+ERR_NORECIPIENT: :%s 411 %s :Nenhum destino especificado (%s)
+ERR_NOTEXTTOSEND: :%s 412 %s :Nenhum texto para mandar
+ERR_NOTOPLEVEL: :%s 413 %s %s :Nenhum domínio de nível auto especificado
+ERR_WILDTOPLEVEL: :%s 414 %s %s :Coringa no domínio de nível auto
+ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Comando desconhecido
+ERR_NOMOTD: :%s 422 %s :Arquivo MOTD faltando
+ERR_NOADMININFO: :%s 423 %s %s :Nenhuma informação administrativa
+ERR_NONICKNAMEGIVEN: :%s 431 %s :Nenhum nick informado
+ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Nick errado
+ERR_NICKNAMEINUSE: :%s 433 %s %s :Nick já está em uso.
+ERR_NICKCOLLISION: :%s 436 %s %s :Colisão de nicks KILL
+ERR_UNAVAILRESOURCE: :%s 437 %s %s :Nick/canal está temporariamente indisponível
+ERR_NICKTOOFAST: :%s 438 %s %s %s :Mudança de nick muito rápida. Por favor, espere %d segundos.
+ERR_SERVICESDOWN: :%s 440 %s :Serviços estão atualmente fora do ar.
+ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :Eles não estão naquele canal
+ERR_NOTONCHANNEL: :%s 442 %s %s :Você não está naquele canal
+ERR_USERONCHANNEL: :%s 443 %s %s %s :já está no canal
+ERR_NOTREGISTERED: :%s 451 %s :Você não está registrado
+ERR_ACCEPTFULL: :%s 456 %s :Lista de aceitos está cheia
+ERR_ACCEPTEXIST: :%s 457 %s %s :já está na sua lista de aceitos
+ERR_ACCEPTNOT: :%s 458 %s %s :não está em sua lista de aceitos
+ERR_NEEDMOREPARAMS: :%s 461 %s %s :Parâmetros insuficientes
+ERR_ALREADYREGISTRED: :%s 462 %s :Você não deve se re-registrar
+ERR_PASSWDMISMATCH: :%s 464 %s :Senha incorreta
+ERR_YOUREBANNEDCREEP: :%s 465 %s :Você está banido deste servidor- %s
+ERR_CHANNELISFULL: :%s 471 %s %s :Não pode entrar no canal (+l)
+ERR_UNKNOWNMODE: :%s 472 %s %c :é um modo desconhecido para mim
+ERR_INVITEONLYCHAN: :%s 473 %s %s :Não pode entrar no canal (+i)
+ERR_BANNEDFROMCHAN: :%s 474 %s %s :Não pode entrar no canal (+b)
+ERR_BADCHANNELKEY: :%s 475 %s %s :Não pode entrar no canal (+k)
+ERR_BANLISTFULL: :%s 478 %s %s %s :Lista de banidos do canal está cheia
+ERR_BADCHANNAME: :%s 479 %s %s :Nome de canal ilegal
+ERR_NOPRIVILEGES: :%s 481 %s :Permissão negada - Você não é um Operador de IRC
+ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Você não é um operador do canal
+ERR_CANTKILLSERVER: :%s 483 %s :Você não pode dar KILL em um servidor!
+ERR_RESTRICTED: :%s 484 %s :Você está restrito
+ERR_NOOPERHOST: :%s 491 %s :Só alguns meros mortais devem tentar entrar na Zona do Crepúsculo
+ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Parâmetro do MODE desconhecida
+ERR_USERSDONTMATCH: :%s 502 %s :Não pode alterar os modos de outros usuários
+ERR_GHOSTEDCLIENT: :%s 503 %s :Mensagem não pode ser entregue para %s
+ERR_USERNOTONSERV: :%s 504 %s %s :Usuário não está neste servidor
+ERR_WRONGPONG: :%s 513 %s :Para conectar, digite /QUOTE PONG %lu
+ERR_LISTSYNTAX: :%s 521 %s :Sintaxe má formada para lista
+ERR_HELPNOTFOUND: :%s 524 %s %s :Ajuda não encontrada
+RPL_WHOISSECURE: :%s 671 %s %s :é conectado via SSL (link seguro)
+RPL_ENDOFMODLIST: :%s 703 %s :Fim de /MODLIST.
+RPL_ENDOFHELP: :%s 706 %s %s :Fim de /HELP.
+RPL_KNOCK: :%s 710 %s %s %s!%s@%s :pediu por um convite.
+RPL_KNOCKDLVR: :%s 711 %s %s :Seu KNOCK foi enviado.
+ERR_TOOMANYKNOCK: :%s 712 %s %s :Muitos KNOCKs (%s).
+ERR_CHANOPEN: :%s 713 %s %s :Canal está aberto.
+ERR_KNOCKONCHAN: :%s 714 %s %s :Você já está no canal.
+RPL_TARGUMODEG: :%s 716 %s :%s está com o modo +g (lado do servidor ignora.)
+RPL_TARGNOTIFY: :%s 717 %s :%s foram informados que você enviou uma mensagem para eles.
+RPL_UMODEGMSG: :%s 718 %s %s :está mandando uma mensagem para você, e você está com o modo +g.
+ERR_NOPRIVS: :%s 723 %s %s :Privilégios de oper insuficientes.
+RPL_TESTMASK: :%s 724 %s %s!%s@%s %u %u :Clientes local/remote batem.
+RPL_NOTESTLINE: :%s 726 %s %s :Não encontrado
diff --git a/messages/ircd-bulgarian.lang b/messages/ircd-bulgarian.lang
new file mode 100644
index 0000000..45b39af
--- /dev/null
+++ b/messages/ircd-bulgarian.lang
@@ -0,0 +1,99 @@
+; ircd-hybrid-7 custom message file
+; Copyright (C) 2010 Bulgarian interface
+; Borislav Borisov <VoodooServ@mail.bg>, 2010.
+; $Id$
+
+RPL_WELCOME: :%s 001 %s :Äîáðe äîøúë â %s ìðåæàòà %s
+RPL_YOURHOST: :%s 002 %s :Âàøèÿ ñúðâúð %s, âåðñèÿ %s
+RPL_CREATED: :%s 003 %s :Ñúðâúðà å ñúçäàäåí %s
+RPL_ISUPPORT: :%s 005 %s %s :ñúâìåñòèì
+RPL_REDIR: :%s 010 %s %s %d :Æåëàòåëíî å äà ïîëçâàòå òîçè ñúðâúð/ïîðò
+RPL_MAPEND: :%s 017 %s :Êðàé íà /MAP
+RPL_YOURID: :%s 042 %s %s :âàøèÿò óíèêàëåí ID
+RPL_ENDOFSTATS: :%s 219 %s %c :Êðàé íà îò÷åòà /STATS
+RPL_STATSUPTIME: :%s 242 %s :Ñúðâúðà ðàáîòè %d äåíà, %d:%02d:%02d
+RPL_STATSCONN: :%s 250 %s :Íàé ãîëÿìî êîëè÷åñòâî ñâúðçàíè: %d (%d êëèåíòè) (%llu âõîäÿùè ñâúðçâàíèÿ)
+RPL_LUSERCLIENT: :%s 251 %s :Â ìîìåíòà èìà %d ïîòðåáèòåëÿ %d íåâèäèìè íà %d ñúðâúðà
+RPL_LUSEROP: :%s 252 %s %d :IRC Îïúðè íà ëèíèÿ
+RPL_LUSERUNKNOWN: :%s 253 %s %d :íåèçâåñòíè ñâðúçêè
+RPL_LUSERCHANNELS: :%s 254 %s %d :ñôîðìèðàíè êàíàëè
+RPL_LUSERME: :%s 255 %s :Ñúðâúðà èìà %d êëèåíòè è %d ñúðâúðè
+RPL_ADMINME: :%s 256 %s :Èíôîðìàöèÿ çà àäìèíèñòðàòîðà íà %s
+RPL_ENDOFTRACE: :%s 262 %s %s :Çàâúðøâàíå íà TRACE
+RPL_LOAD2HI: :%s 263 %s :Ñúðâúðà âðåìåííî å ïðåòîâàðåí. Ìîëÿ èç÷àêàéòå ìîìåíò è îïèòàèòå îòíîâî.
+RPL_LOCALUSERS: :%s 265 %s :Òåêóùî êîëè÷åñòâî ëîêàëíè ïîòðåáèòåëè: %d Ìàêñèìàëíî: %d
+RPL_GLOBALUSERS: :%s 266 %s :Òåêóùî êîëè÷åñòâî ãëîáàëíè ïîòðåáèòåëè: %d Ìàêñèìàëíî: %d
+RPL_UNAWAY: :%s 305 %s :Âå÷å íå ñòå ìàðêèðàí êàòî away
+RPL_NOWAWAY: :%s 306 %s :Ìàðêèðàí ñòå êàòî away
+RPL_WHOISADMIN: :%s 313 %s %s :å Ñúðâúð Àäìèíèñòðàòîð
+RPL_ENDOFWHO: :%s 315 %s %s :Êðàé íà ñïèñúêà /WHO
+RPL_WHOISIDLE: :%s 317 %s %s %d %d :ñåêóíäè ìúë÷è (IDLE).
+RPL_ENDOFWHOIS: :%s 318 %s %s :Êðàé íà ñïèñúêà /WHOIS.
+RPL_LISTEND: :%s 323 %s :Êðàé íà ñïèñúêà /LIST
+RPL_NOTOPIC: :%s 331 %s %s :Íÿìà ïîñòàâåí òîïèê.
+RPL_ENDOFINVEXLIST: :%s 347 %s %s :Êðàé íà ñïèñúêà íà ïîêàíåíè â êàíàëà.
+RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Êðàé íà ñïèñúêà ñ èçêëþ÷åíèÿ â êàíàëà.
+RPL_CLOSING: :%s 362 %s %s :Çàòâîðåí. Ñòàòóñ = %d
+RPL_CLOSEEND: :%s 363 %s %d :Âðúçêàòà çàòâîðåíà
+RPL_ENDOFLINKS: :%s 365 %s %s :Êðàé íà ñïèñúêà /LINKS.
+RPL_ENDOFNAMES: :%s 366 %s %s :Êðàé íà ñïèñúêà /NAMES.
+RPL_ENDOFBANLIST: :%s 368 %s %s :Êðàé íà ñïèñúêà íà áàííàòè â Êàíàëà
+RPL_ENDOFWHOWAS: :%s 369 %s %s :Êðàé íà WHOWAS
+RPL_ENDOFINFO: :%s 374 %s :Êðàé íà ñïèñúêà /INFO
+RPL_MOTDSTART: :%s 375 %s :- %s Èíôî çà äåíÿ -
+RPL_ENDOFMOTD: :%s 376 %s :Êðàé íà /MOTD.
+RPL_YOUREOPER: :%s 381 %s :Âèå âëåçíàõòå â ... Çîíàòà Íà Çäðà÷à!
+RPL_REHASHING: :%s 382 %s %s :Ïðåïðî÷èòàíå íà ôàéëà ñ íàñòðîéêè íà ñúðâúðà.
+ERR_NOSUCHNICK: :%s 401 %s %s :Íèê/êàíàë íå å íàìåðåí
+ERR_NOSUCHSERVER: :%s 402 %s %s :Ñúðâúðà íå å íàìåðåí
+ERR_NOSUCHCHANNEL: :%s 403 %s %s :Êàíàëà íå å íàìåðåí
+ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Íåâúçìîæíî äà ñå ïðàòè â êàíàëà
+ERR_TOOMANYCHANNELS: :%s 405 %s %s :Âèå ñòå âëåçëè â ïðåêàëåíî ãîëÿìî êîëè÷åñòâî êàíàëè
+ERR_WASNOSUCHNICK: :%s 406 %s %s :Íå å îòêðèò òàêúâ íèê
+ERR_NOORIGIN: :%s 409 %s :Èñòî÷íèêà íå å èçâåñòåí
+ERR_NOTEXTTOSEND: :%s 412 %s :Íÿìà òåêñò çà ïðàùàíå
+ERR_NOTOPLEVEL: :%s 413 %s %s :Íå å óêàçàí äîìåí...
+ERR_WILDTOPLEVEL: :%s 414 %s %s :Wildcard ñèìâîë â äîìåíà íå ñúîòâåòñòâà
+ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Íåèçâåñíà êîìàíäà
+ERR_NOMOTD: :%s 422 %s :Ôàéë MOTD íå å íàìåðåí
+ERR_NOADMININFO: :%s 423 %s %s :Èíôîðìàöèÿ çà àäìèíà íå å äîñòúïíà
+ERR_NONICKNAMEGIVEN: :%s 431 %s :Íÿìà èíôî çà íèêà
+ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Íåâåðåí íèê
+ERR_NICKNAMEINUSE: :%s 433 %s %s :Òîçè íèê â ìîìåíòà ñå ïîëçâà.
+ERR_NICKCOLLISION: :%s 436 %s %s :Ñúâïàäåíèå íà íèêà KILL
+ERR_UNAVAILRESOURCE: :%s 437 %s %s :Íèê/êàíàë âðåìåííî íåäîñòúïåí
+ERR_SERVICESDOWN: :%s 440 %s :Services âðåìåíî íå ñà íà ëèíèÿ.
+ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :Ïîòðåáèòåëÿ íå ñå íàìèðà â òîçè êàíàë
+ERR_NOTONCHANNEL: :%s 442 %s %s :Íå ñòå â òîçè êàíàë
+ERR_USERONCHANNEL: :%s 443 %s %s %s :âèå âå÷å ñòå â òîçè êàíàë
+ERR_NOTREGISTERED: :%s 451 %s :Âèå íå ñòå ðåãèñòðèðàí
+ERR_NEEDMOREPARAMS: :%s 461 %s %s :Íåäîñòàòú÷íî ïàðàìåòðè
+ERR_ALREADYREGISTRED: :%s 462 %s :Âèå íå ìîæåòå äà ñå ðåãèñòðèðàòå
+ERR_PASSWDMISMATCH: :%s 464 %s :Íåâÿðíà ïàðîëà
+ERR_YOUREBANNEDCREEP: :%s 465 %s :Íà âàñ âè å çàáàíåí òîçè ñúðâúð- %s
+ERR_CHANNELISFULL: :%s 471 %s %s :Íåâúçìîæíî å âëèçàíåòî â êàíàëà (+l)
+ERR_UNKNOWNMODE: :%s 472 %s %c :íåèçâåñòåí ñèìâîë íà ðåæèì
+ERR_INVITEONLYCHAN: :%s 473 %s %s :Íåâúçìîæíî å âëèçàíåòî â êàíàëà (+i)
+ERR_BANNEDFROMCHAN: :%s 474 %s %s :Íåâúçìîæíî å âëèçàíåòî â êàíàëà (+b)
+ERR_BADCHANNELKEY: :%s 475 %s %s :Íåâúçìîæíî å âëèçàíåòî â êàíàëà (+k)
+ERR_BANLISTFULL: :%s 478 %s %s %s :Áàí ëèñòà â êàíàëà å ïåðåïúëíåí
+ERR_BADCHANNAME: :%s 479 %s %s :Íåäîïóñòèìî èìå íà êàíàëà
+ERR_NOPRIVILEGES: :%s 481 %s :Äîñòúï îòêàçàí - Âèå íÿìàòå ñòàòóò íà IRC îïåðàòîð
+ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Âèå íå ñòå îïåðàòîð íà êàíàëà
+ERR_CANTKILLSERVER: :%s 483 %s :Âèå íå ìîæåòå äà óáèåòå ñúðâúðà!
+ERR_RESTRICTED: :%s 484 %s :Âèå ñòå îãðàíè÷åí (RESTRICTED).
+ERR_NOOPERHOST: :%s 491 %s :Ñàìî ìàëöèíà ñìúðòíè ìîãàò äà ñå îïèòàò äà âëåçíàò â çîíàòà íà çäðà÷à
+ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Íåèçâåñòåí MODE ôëàã
+ERR_USERSDONTMATCH: :%s 502 %s :Íå ìîæåòå äà ïðîìåíÿòå ðåæèìà íà äðóãèòå ïîòðåáèòåëè
+ERR_GHOSTEDCLIENT: :%s 503 %s :Èíôîòî íå ìîæå äà ñå äîñòàâè äî %s
+ERR_USERNOTONSERV: :%s 504 %s %s :Ïîòðåáèòåëÿ íå ñå íàìèðà íà òîçè ñúðâúð
+ERR_WRONGPONG: :%s 513 %s :Çà äà ñå ñâúðæèø íàïèøè /QUOTE PONG %lu
+ERR_HELPNOTFOUND: :%s 524 %s %s :Ôàéëà ñ ïîìîùíà èíôîðìàöèÿ íå å íàìåðåí
+RPL_WHOISSECURE: :%s 671 %s %s :å ñâúçðàí ïðåç SSL (øèôðîâàíà âðúçêà)
+RPL_ENDOFMODLIST: :%s 703 %s :Êðàé íà ëèñòà /MODLIST.
+RPL_ENDOFHELP :%s 706 %s %s :Êðàé íà ëèñò-à /HELP.
+RPL_KNOCK: :%s 710 %s %s %s!%s@%s :ïèòà çà ïîêàíà.
+RPL_KNOCKDLVR: :%s 711 %s %s :Âàøèÿ KNOCK å äîñòàâåí.
+ERR_TOOMANYKNOCK: :%s 712 %s %s :Òâúðäå ìíîãî KNOCKs (%s).
+ERR_CHANOPEN: :%s 713 %s %s :Êàíàëà å îòâîðåí.
+ERR_KNOCKONCHAN: :%s 714 %s %s :Âèå âå÷å ñòå â òîçè êàíàë.
diff --git a/messages/ircd-croatian.lang b/messages/ircd-croatian.lang
new file mode 100644
index 0000000..d18f665
--- /dev/null
+++ b/messages/ircd-croatian.lang
@@ -0,0 +1,94 @@
+; ircd-hybrid-7 custom message file
+; Copyright (C) 2000
+; David Taylor <davidt@yadt.co.uk>, 2000.
+; $Id$
+
+RPL_WELCOME: :%s 001 %s :Dobro do¹li na %s Internet Relay Chat Network %s
+RPL_YOURHOST: :%s 002 %s :Va¹ host je %s, i koristi verziju %s
+RPL_CREATED: :%s 003 %s :Ovaj server je postavljen %s
+RPL_ISUPPORT: :%s 005 %s %s :su podr¾ani na ovom serveru
+RPL_REDIR: :%s 010 %s %s %d :Molim Vas, koristite ovaj server/port
+RPL_TRACECONNECTING: :%s 201 %s Poku¹ajte. %s %s
+RPL_TRACEUSER: :%s 205 %s Korisnik %s %s (%s) %lu %lu
+RPL_TRACESERVER: :%s 206 %s Server %s %dS %dC %s %s!%s@%s %lu
+RPL_TRACENEWTYPE: :%s 208 %s <novi tip> 0 %s
+RPL_TRACECLASS: :%s 209 %s Klasa %s %d
+RPL_ENDOFSTATS: :%s 219 %s %c :Kraj /STATS izvje¹taja
+RPL_STATSUPTIME: :%s 242 %s :Server radi %d dana, %d:%02d:%02d
+RPL_STATSCONN: :%s 250 %s :Najveæi broj veza: %d (%d klijenata) (%llu veza zaprimljeno))
+RPL_LUSERCLIENT: :%s 251 %s :Ima %d korisnika i %d nevidljivih na %d servera
+RPL_LUSEROP: :%s 252 %s %d :IRC Operatora na vezi
+RPL_LUSERUNKNOWN: :%s 253 %s %d :nepoznatih veza
+RPL_LUSERCHANNELS: :%s 254 %s %d :kanala formirano
+RPL_LUSERME: :%s 255 %s :Imam %d klijenata i %d servera
+RPL_ADMINME: :%s 256 %s :Administrativne informacije o %s
+RPL_ENDOFTRACE: :%s 262 %s %s :Kraj TRACEa
+RPL_LOAD2HI: :%s 263 %s :Prièekajte, server je trenutno preoptereæen.
+RPL_LOCALUSERS: :%s 265 %s :Trenutno lokalnih korisnika: %d Maks: %d
+RPL_GLOBALUSERS: :%s 266 %s :Trenutno globalnih korisnika: %d Maks: %d
+RPL_UNAWAY: :%s 305 %s :OK, nisi vi¹e /away. Je li bilo zabavno?
+RPL_NOWAWAY: :%s 306 %s :OK, sad si /away. Po¾uri!!
+RPL_ENDOFWHO: :%s 315 %s %s :Kraj /WHO liste.
+RPL_WHOISIDLE: :%s 317 %s %s %d %d :sekundi neaktivan, vrijeme prijave
+RPL_ENDOFWHOIS: :%s 318 %s %s :Kraj /WHOIS liste.
+RPL_LISTSTART: :%s 321 %s Kanal :Korisnici Ime
+RPL_LISTEND: :%s 323 %s :Kraj /LIST-a
+RPL_NOTOPIC: :%s 331 %s %s :Topic nije postavljen.
+RPL_ENDOFINVEXLIST: :%s 347 %s %s :Kraj liste pozvanih na kanal
+RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Kraj liste iznimaka za kanal
+RPL_CLOSING: :%s 362 %s %s :Zatvoren. Status = %d
+RPL_CLOSEEND: :%s 363 %s %d: Zatvorenih veza
+RPL_ENDOFLINKS: :%s 365 %s %s :Kraj /LINKS liste.
+RPL_ENDOFNAMES: :%s 366 %s %s :Kraj /NAMES liste.
+RPL_ENDOFBANLIST: :%s 368 %s %s :Kraj liste banova za kanal
+RPL_ENDOFWHOWAS: :%s 369 %s %s :Kraj WHOWAS-a
+RPL_ENDOFINFO: :%s 374 %s :Kraj /INFO liste.
+RPL_MOTDSTART: :%s 375 %s :- %s Poruka dana -
+RPL_ENDOFMOTD: :%s 376 %s :Kraj /MOTD komande.
+RPL_YOUREOPER: :%s 381 %s :Au, sad si veliki jebaè! :).
+RPL_REHASHING: :%s 382 %s %s :Uèitavam promijenjenu konfiguraciju
+ERR_NOSUCHNICK: :%s 401 %s %s :Nema takvog nicka/kanala
+ERR_NOSUCHSERVER: :%s 402 %s %s :Nema takvog servera
+ERR_NOSUCHCHANNEL: :%s 403 %s %s :Nema takvog kanala
+ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Ne mo¾e¹ poslati ni¹ta na kanal
+ERR_TOOMANYCHANNELS: :%s 405 %s %s :Joinao si se na previ¹e kanala
+ERR_WASNOSUCHNICK: :%s 406 %s %s :Nije bilo takvog nicka.
+ERR_TOOMANYTARGETS: :%s 407 %s %s :Previ¹e odredi¹ta - samo %d procesirano
+ERR_NOORIGIN: :%s 409 %s :Izvori¹te nije specificirano
+ERR_NORECIPIENT: :%s 411 %s :Nije specificiran primatelj (%s)
+ERR_NOTEXTTOSEND: :%s 412 %s :Nema teksta koji bih poslao.
+ERR_NOTOPLEVEL: :%s 413 %s %s :Nije specificirana vr¹na domena
+ERR_WILDTOPLEVEL: :%s 414 %s %s :Nedovoljno precizno definirana vr¹na domena
+ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Nepoznata komanda
+ERR_NOMOTD: :%s 422 %s :MOTD spis ne postoji
+ERR_NOADMININFO: :%s 423 %s %s :Nema administrativnih informacija
+ERR_NONICKNAMEGIVEN: :%s 431 %s :Nisi naveo nick
+ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Pogre¹an nick.
+ERR_NICKNAMEINUSE: :%s 433 %s %s :Nick je veæ u upotrebi.
+ERR_NICKCOLLISION: :%s 436 %s %s :Nick kolizija, KILL
+ERR_UNAVAILRESOURCE: :%s 437 %s %s :Nick/kanal trenutno nije na raspolaganju
+ERR_NICKTOOFAST: :%s 438 %s %s %s :Prebrza promjena nicka. Molim, prièekaj %d sekundi
+ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :Nije na tom kanalu
+ERR_NOTONCHANNEL: :%s 442 %s %s :Nisi na tom kanalu
+ERR_USERONCHANNEL: :%s 443 %s %s %s :je veæ na kanalu
+ERR_NOTREGISTERED: :%s 451 %s :Nisi se registrirao/la
+ERR_NEEDMOREPARAMS: :%s 461 %s %s :Nedovoljno parametara
+ERR_ALREADYREGISTRED: :%s 462 %s :Ne mo¾e¹ se ponovo registrirati
+ERR_PASSWDMISMATCH: :%s 464 %s :Kriva lozinka - poku¹aj ponovo!
+ERR_YOUREBANNEDCREEP: :%s 465 %s :Zabranjen ti je pristup ovom serveru- %s
+ERR_CHANNELISFULL: :%s 471 %s %s :Ne mo¾e¹ uæi na kanal (+l)
+ERR_UNKNOWNMODE: :%s 472 %s %c :je meni nepoznata oznaka moda
+ERR_INVITEONLYCHAN: :%s 473 %s %s :Ne mo¾e¹ uæi na kanal (+i)
+ERR_BANNEDFROMCHAN: :%s 474 %s %s :Ne mo¾e¹ uæi na kanal (+b)
+ERR_BADCHANNELKEY: :%s 475 %s %s :Ne mo¾e¹ uæi na kanal (+k)
+ERR_BANLISTFULL: :%s 478 %s %s %s :Lista banova na kanalu je puna
+ERR_BADCHANNAME: :%s 479 %s %s :Krivo ime kanala
+ERR_NOPRIVILEGES: :%s 481 %s :Nije ti dozvoljeno, ¾ao mi je, nisi IRC operator
+ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Ne mo¾e¹ to napraviti, nisi operator na kanalu.
+ERR_CANTKILLSERVER: :%s 483 %s :Ne budi blesav, ne mo¾e¹ /KILL-ati server :)
+ERR_RESTRICTED: :%s 484 %s :Na ogranièenoj si vezi
+ERR_NOOPERHOST: :%s 491 %s :®ao mi je, ne mo¾e¹ se /OPER-ati ovdje.
+ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Nepoznata MODE oznaka
+ERR_USERSDONTMATCH: :%s 502 %s :Ne mo¾e¹ mijenjati modove drugim korisnicima
+ERR_GHOSTEDCLIENT: :%s 503 %s :Poruku nije moguæe dostaviti na %s
+ERR_USERNOTONSERV: :%s 504 %s %s :Korisnik nije na ovom serveru
diff --git a/messages/ircd-danish.lang b/messages/ircd-danish.lang
new file mode 100644
index 0000000..0bdb497
--- /dev/null
+++ b/messages/ircd-danish.lang
@@ -0,0 +1,93 @@
+; ircd-hybrid-7 custom message file for danish use
+; Copyright (C) YEAR Free Software Foundation, Inc.
+; Xride
+; Soren Straarup <xride@x12.dk>, 2001.
+; $Id$
+
+RPL_WELCOME: :%s 001 %s :Velkommen til %s Internet Rel‘ Netv‘rket %s
+RPL_YOURHOST: :%s 002 %s :Din v‘rt er %s, k›rer version %s
+RPL_CREATED: :%s 003 %s :Denne server var lavet %s
+RPL_ISUPPORT: :%s 005 %s %s :er supporteret af denne server
+RPL_REDIR: :%s 010 %s %s %d :Brug venligst denne Server/Port isteddet
+RPL_TRACELINK: :%s 200 %s Forbindelse %s %s %s
+RPL_TRACECONNECTING: :%s 201 %s Pr›v. %s %s
+RPL_TRACEUSER: :%s 205 %s Bruger %s %s (%s) %lu %lu
+RPL_TRACECLASS: :%s 209 %s Klasse %s %d
+RPL_ENDOFSTATS: :%s 219 %s %c :Slutningen p† /STATS rapporten
+RPL_STATSUPTIME: :%s 242 %s :Server oppe %d dag(e), %d:%02d:%02d
+RPL_STATSCONN: :%s 250 %s :H›jeste forbindelser antal: %d (%d brugere) (%llu forbindelser modtaget)
+RPL_LUSERCLIENT: :%s 251 %s :Der er %d brugere og %d usynlige p† %d servere
+RPL_LUSEROP: :%s 252 %s %d :IRC Operatorer er her
+RPL_LUSERUNKNOWN: :%s 253 %s %d :ukendt forbindelse(r)
+RPL_LUSERCHANNELS: :%s 254 %s %d :rum er etableret
+RPL_LUSERME: :%s 255 %s :Jeg har %d brugere og %d serverer
+RPL_ADMINME: :%s 256 %s :Adminstrativ info om %s
+RPL_ENDOFTRACE: :%s 262 %s %s :Slutningen p† TRACE
+RPL_LOAD2HI: :%s 263 %s :Server forbruget er midlertidigt for stort. Vent venligst lidt og pr›v s† igen.
+RPL_LOCALUSERS: :%s 265 %s :Nuv†rende lokale brugere: %d Max: %d
+RPL_GLOBALUSERS: :%s 266 %s :Nuv†rende globale brugere: %d Max: %d
+RPL_UNAWAY: :%s 305 %s :Du er ikke l‘ngere markeret som v‘rende v‘k
+RPL_NOWAWAY: :%s 306 %s :Du er markeret som v‘rende v‘k
+RPL_ENDOFWHO: :%s 315 %s %s :Slutningen p† /WHO listen.
+RPL_WHOISIDLE: :%s 317 %s %s %d %d :sekunders stilhed, ankomst tidspunkt
+RPL_ENDOFWHOIS: :%s 318 %s %s :Slutningen p† /WHOIS listen.
+RPL_LISTSTART: :%s 321 %s Rum :Brugers Navne
+RPL_LISTEND: :%s 323 %s :Slutnigen p† /LIST
+RPL_NOTOPIC: :%s 331 %s %s :Ingen overskrift er bestemt.
+RPL_ENDOFINVEXLIST: :%s 347 %s %s :Slutningen p† Rummets Invitations Liste
+RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Slutningen p† Rummets Undtagelses Liste
+RPL_CLOSING: :%s 362 %s %s :Lukket. Status = %d
+RPL_CLOSEEND: :%s 365 %s %d: Forbindelser afbrudt
+RPL_ENDOFLINKS: :%s 365 %s %s :Slutningen p† /LINKS listen.
+RPL_ENDOFNAMES: :%s 366 %s %s :Slutningen p† /NAMES listen.
+RPL_ENDOFBANLIST: :%s 368 %s %s :Slutningen p† Rummets Ban liste
+RPL_ENDOFWHOWAS: :%s 369 %s %s :Slutningen p† WHOWAS
+RPL_ENDOFINFO: :%s 374 %s :Slutningen p† /INFO listen.
+RPL_MOTDSTART: :%s 375 %s :- %s Dagens besked -
+RPL_ENDOFMOTD: :%s 376 %s :Slutningen p† /MOTD kommandoen
+RPL_YOUREOPER: :%s 381 %s :Du har tr†dt ind i .. tusm›rket..
+RPL_REHASHING: :%s 382 %s %s :Genindldser konfigurations filerne
+ERR_NOSUCHNICK: :%s 401 %s %s :Intet nick/rum blev fundet
+ERR_NOSUCHSERVER: :%s 402 %s %s :Igen s†dan server blev fundet
+ERR_NOSUCHCHANNEL: :%s 403 %s %s :Rummet findes ikke
+ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Kan ikke sende til Rummet
+ERR_TOOMANYCHANNELS: :%s 405 %s %s :Du er i for mange rum
+ERR_WASNOSUCHNICK: :%s 406 %s %s :nicket findes ikke
+ERR_TOOMANYTARGETS: :%s 407 %s %s :For mange modtagere. kun %d blev udf›rt
+ERR_NOORIGIN: :%s 409 %s :Intet start punkt er angivet
+ERR_NORECIPIENT: :%s 411 %s :Ingen modtagere er (%s)
+ERR_NOTEXTTOSEND: :%s 412 %s :Ingen tekst til at sende
+ERR_NOTOPLEVEL: :%s 413 %s %s :Intet toplevel domain er specificeret
+ERR_WILDTOPLEVEL: :%s 414 %s %s :Wildcard i toplevel Domain
+ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Ukendt kommando
+ERR_NOMOTD: :%s 422 %s :MOTD Filen findes ikke
+ERR_NOADMININFO: :%s 423 %s %s :Ingen adminstrative info er tilg‘ngelige
+ERR_NONICKNAMEGIVEN: :%s 431 %s :Intet nick er angivet
+ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Fejl i nick
+ERR_NICKNAMEINUSE: :%s 433 %s %s :Nick allerede i brug.
+ERR_NICKCOLLISION: :%s 436 %s %s :Nick kollition KILL (drabt)
+ERR_UNAVAILRESOURCE: :%s 437 %s %s :Nick/rum er midlertidig ikke tilg‘ngelig
+ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :De er ikke i rummet
+ERR_NOTONCHANNEL: :%s 442 %s %s :Du er ikke i det rum
+ERR_USERONCHANNEL: :%s 443 %s %s %s :er allerede i rummet
+ERR_NOTREGISTERED: :%s 451 %s :Du er ikke registreret
+ERR_NEEDMOREPARAMS: :%s 461 %s %s :Ikke nok paramtre
+ERR_ALREADYREGISTRED: :%s 462 %s :Du m† ikke genregistrerer
+ERR_PASSWDMISMATCH: :%s 464 %s :Forkert kodeord
+ERR_YOUREBANNEDCREEP: :%s 456 %s :Du er udelukket fra denne server- %s
+ERR_CHANNELISFULL: :%s 471 %s %s :Kan ikke deltage i rummet (+l)
+ERR_UNKNOWNMODE: :%s 472 %s %c :er ukendt mode bogstav for mig
+ERR_INVITEONLYCHAN: :%s 473 %s %s :Kan ikke deltage i rummet (+i)
+ERR_BANNEDFROMCHAN: :%s 474 %s %s :Kan ikke deltage i rummet (+b)
+ERR_BADCHANNELKEY: :%s 475 %s %s :Kan ikke deltage i rummet (+k)
+ERR_BANLISTFULL: :%s 478 %s %s %s :Rummets ban liste er fuld
+ERR_BADCHANNAME: :%s 479 %s %s :Illegalt navn for et Rum
+ERR_NOPRIVILEGES: :%s 481 %s :Udf›relse N‘gtet - Du er ikke en IRC operator
+ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Du er ikke operator i dette rum
+ERR_CANTKILLSERVER: :%s 483 %s :Du kan ikke KILL (dr‘be) en server!
+ERR_RESTRICTED: :%s 484 %s :Du er begr‘nset
+ERR_NOOPERHOST: :%s 491 %s :Kun f† d›delige kan pr›ve at tr‘de ind i tudsm›rket
+ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Ukendt MODE flag
+ERR_USERSDONTMATCH: :%s 502 %s :Kan ikke ‘ndre mode for andre brugere
+ERR_GHOSTEDCLIENT: :%s 503 %s :Beskeden kunne ikke blive leveret til %s
+ERR_USERNOTONSERV: :%s 504 %s %s :Brugeren er ikke p† denne server
diff --git a/messages/ircd-dutch.lang b/messages/ircd-dutch.lang
new file mode 100644
index 0000000..0056e90
--- /dev/null
+++ b/messages/ircd-dutch.lang
@@ -0,0 +1,123 @@
+; ircd-hybrid-7 standard message file - Dutch language
+; Copyright (C) 2005 Kenneth Pang <nexu.jin@gmail.com>
+; $Id$
+
+RPL_WELCOME: :%s 001 %s :Welkom op het %s Internet Relay Netwerk %s
+RPL_YOURHOST: :%s 002 %s :Jouw host is %s, werkend met versie %s
+RPL_CREATED: :%s 003 %s :Deze server is gecreerd op %s
+RPL_ISUPPORT: :%s 005 %s %s :zijn ondersteund door deze server
+RPL_REDIR: :%s 010 %s %s %d :Gebruik deze Server/Poort A.U.B.
+RPL_MAPEND: :%s 017 %s :Einde van /MAP
+RPL_YOURID: :%s 042 %s %s :jouw unieke ID
+RPL_TRACELINK: :%s 200 %s Link %s %s %s
+RPL_TRACECONNECTING: :%s 201 %s Probeer. %s %s
+RPL_TRACEOPERATOR: :%s 204 %s Operator %s %s (%s) %lu %lu
+RPL_TRACEUSER: :%s 205 %s Gebruiker %s %s (%s) %lu %lu
+RPL_TRACESERVER: :%s 206 %s Serv %s %dS %dC %s %s!%s@%s %lu
+RPL_TRACENEWTYPE: :%s 208 %s <nieuwtype> 0 %s
+RPL_TRACECLASS: :%s 209 %s Klasse %s %d
+RPL_ENDOFSTATS: :%s 219 %s %c :Einde van /STATS rapportage
+RPL_STATSUPTIME: :%s 242 %s :Server is al %d dagen up, %d:%02d:%02d
+RPL_STATSCONN: :%s 250 %s :Hoogst aantal connecties: %d (%d clients) (%llu connecties ontvangen)
+RPL_LUSERCLIENT: :%s 251 %s :Er zijn %d zichtbare -en %d onzichtbare gebruikers op %d servers
+RPL_LUSEROP: :%s 252 %s %d :IRC Operators verbonden
+RPL_LUSERUNKNOWN: :%s 253 %s %d :onbekende connectie(s)
+RPL_LUSERCHANNELS: :%s 254 %s %d :kanalen gevormd
+RPL_LUSERME: :%s 255 %s :Ik heb %d gebruikers en %d servers
+RPL_ADMINME: :%s 256 %s :Administratieve informatie over %s
+RPL_ENDOFTRACE: :%s 262 %s %s :Einde van TRACE
+RPL_LOAD2HI: :%s 263 %s :Server is tijdelijk overbelast. Wacht even en probeer het opnieuw.
+RPL_LOCALUSERS: :%s 265 %s :Huidige lokale gebruikers: %d Max: %d
+RPL_GLOBALUSERS: :%s 266 %s :Huidige globale gebruikers: %d Max: %d
+RPL_ENDOFACCEPT: :%s 282 %s :Einde van /ACCEPT lijst.
+RPL_UNAWAY: :%s 305 %s :Je bent niet langer gemarkeerd als afwezig
+RPL_NOWAWAY: :%s 306 %s :Je bent nu gemarkeerd als afwezig
+RPL_WHOISADMIN: :%s 313 %s %s :is een Server Administrator
+RPL_WHOISOPERATOR: :%s 313 %s %s :is een IRC Operator
+RPL_ENDOFWHO: :%s 315 %s %s :Einde van /WHO lijst.
+RPL_WHOISIDLE: :%s 317 %s %s %d %d :seconden niks uitgevoerd
+RPL_ENDOFWHOIS: :%s 318 %s %s :Einde van /WHOIS lijst.
+RPL_LISTSTART: :%s 321 %s Kanaal :Gebruikers Naam
+RPL_LISTEND: :%s 323 %s :Einde van /LIST
+RPL_NOTOPIC: :%s 331 %s %s :Er is geen onderwerp gezet
+RPL_ENDOFINVEXLIST: :%s 347 %s %s :Einde van Kanaal Uitnodigings-lijst
+RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Einde van Kanaal Uitzondering-lijst
+RPL_CLOSING: :%s 362 %s %s :Gesloten. Status = %d
+RPL_CLOSEEND: :%s 363 :%s %d: Verbindingen Gesloten
+RPL_ENDOFLINKS: :%s 365 %s %s :Einde van /LINKS lijst.
+RPL_ENDOFNAMES: :%s 366 %s %s :Einde van /NAMES lijst.
+RPL_ENDOFBANLIST: :%s 368 %s %s :Einde van Kanaal Verbannen Lijst
+RPL_ENDOFWHOWAS: :%s 369 %s %s :Einde van WHOWAS
+RPL_INFOSTART: :%s 373 %s :Server INFO
+RPL_ENDOFINFO: :%s 374 %s :Einde van /INFO lijst
+RPL_MOTDSTART: :%s 375 %s :- %s Bericht van de Dag -
+RPL_ENDOFMOTD: :%s 376 %s :Einde van /MOTD commando.
+RPL_YOUREOPER: :%s 381 %s :Je bent nu volwaardig lid van De Harde Kern!.
+RPL_REHASHING: :%s 382 %s %s :Rehasjing
+RPL_HOSTHIDDEN: :%s 396 %s :is nu jouw verborgen host
+ERR_NOSUCHNICK: :%s 401 %s %s :Onbekende nick/kanaal
+ERR_NOSUCHSERVER: :%s 402 %s %s :Onbekende server
+ERR_NOSUCHCHANNEL: :%s 403 %s %s :Onbekende kanaal
+ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Kan niets naar het kanaal verzenden
+ERR_TOOMANYCHANNELS: :%s 405 %s %s :Je zit al in te veel kanalen
+ERR_WASNOSUCHNICK: :%s 406 %s %s :Die nicknaam bestaat niet
+ERR_TOOMANYTARGETS: :%s 407 %s %s :Te veel ontvangers. Slechts %d verwerkt
+ERR_NOORIGIN: :%s 409 %s :Geen bron vermeld
+ERR_NORECIPIENT: :%s 411 %s :Geen ontvanger gespecificeerd (%s)
+ERR_NOTEXTTOSEND: :%s 412 %s :Geen tekst om te verzenden
+ERR_NOTOPLEVEL: :%s 413 %s %s :Geen toplevel domein gespecificeerd
+ERR_WILDTOPLEVEL: :%s 414 %s %s :Joker in toplevel Domein
+ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Onbekende commando
+ERR_NOMOTD: :%s 422 %s :MOTD bestand bestaat niet
+ERR_NOADMININFO: :%s 423 %s %s :Geen administratieve informatie beschikbaar
+ERR_NONICKNAMEGIVEN: :%s 431 %s :Geen nicknaam gespecificeerd
+ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Nicknaam bevat foutieve tekens
+ERR_NICKNAMEINUSE: :%s 433 %s %s :Nicknaam is reeds bezet
+ERR_NICKCOLLISION: :%s 436 %s %s :Nicknaam botsing KILL
+ERR_UNAVAILRESOURCE: :%s 437 %s %s :Nick/kanaal is tijdelijk niet beschikbaar
+ERR_NICKTOOFAST: :%s 438 %s %s %s :Nicknaam veranderingen te snel. Wacht A.U.B. %d seconden.
+ERR_SERVICESDOWN: :%s 440 %s :Diensten zijn momenteel niet beschikbaar.
+ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :Die is/zijn niet in dat kanaal
+ERR_NOTONCHANNEL: :%s 442 %s %s :Jij bent niet in dat kanaal
+ERR_USERONCHANNEL: :%s 443 %s %s %s :is reeds op het kanaal
+ERR_NOTREGISTERED: :%s 451 %s :Je bent niet geregistreerd
+ERR_ACCEPTFULL: :%s 456 %s :Accepteer lijst is vol
+ERR_ACCEPTEXIST: :%s 457 %s %s :is al op jouw accepteer lijst
+ERR_ACCEPTNOT: :%s 458 %s %s :is niet op jouw accepteer lijst
+ERR_NEEDMOREPARAMS: :%s 461 %s %s :Niet genoeg parameters
+ERR_ALREADYREGISTRED: :%s 462 %s :Je mag niet opnieuw registreren
+ERR_PASSWDMISMATCH: :%s 464 %s :Foutief Wachtwoord
+ERR_YOUREBANNEDCREEP: :%s 465 %s :Je bent verbannen van deze server- %s
+ERR_CHANNELISFULL: :%s 471 %s %s :Kan kanaal niet joinen (het zit vol (+l))
+ERR_UNKNOWNMODE: :%s 472 %s %c :is een onbekende mode voor me
+ERR_INVITEONLYCHAN: :%s 473 %s %s :Kan het kanaal niet joinen (uitnodiging vereist (+i))
+ERR_BANNEDFROMCHAN: :%s 474 %s %s :Kan kanaal niet joinen (verbannen (+b))
+ERR_BADCHANNELKEY: :%s 475 %s %s :Kan kanaal niet joinen (versleuteld (+k))
+ERR_BANLISTFULL: :%s 478 %s %s %s :Kanaal verbannen-lijst zit vol
+ERR_BADCHANNAME: :%s 479 %s %s :Foutief kanaal-naam
+ERR_NOPRIVILEGES: :%s 481 %s :Toestemming geweigerd - Je bent geen IRC operator
+ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Je bent geen operator in dit kanaal
+ERR_CANTKILLSERVER: :%s 483 %s :Je kunt een server niet killen!
+ERR_RESTRICTED: :%s 484 %s :Je mogelijkheden zijn beperkt
+ERR_NOOPERHOST: :%s 491 %s :Slechts weinigen van de stervelijken mogen de Harde Kern betreden
+ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Onbekende MODE flag
+ERR_USERSDONTMATCH: :%s 502 %s :Je kunt een mode niet veranderen voor een andere gebruiker
+ERR_GHOSTEDCLIENT: :%s 503 %s :Bericht kon niet worden afgeleverd aan %s
+ERR_USERNOTONSERV: :%s 504 %s %s :Gebruiker zit niet op deze server
+ERR_WRONGPONG: :%s 513 %s :Om te verbinden type /QUOTE PONG %lu
+ERR_LISTSYNTAX: :%s 521 %s :Foutieve lijst syntaxis
+ERR_HELPNOTFOUND: :%s 524 %s %s :Hulp niet gevonden en/of beschikbaar
+RPL_WHOISSECURE: :%s 671 %s %s :is verbonden via SSL (beveiligd link)
+RPL_ENDOFMODLIST: :%s 703 %s :Einde van /MODLIST.
+RPL_ENDOFHELP: :%s 706 %s %s :Einde van /HELP.
+RPL_KNOCK: :%s 710 %s %s %s!%s@%s :heeft gevraagd om een uitnodiging.
+RPL_KNOCKDLVR: :%s 711 %s %s :Jouw KNOCK is afgeleverd.
+ERR_TOOMANYKNOCK: :%s 712 %s %s :Te veel KNOCKs (%s).
+ERR_CHANOPEN: :%s 713 %s %s :Kanaal is open.
+ERR_KNOCKONCHAN: :%s 714 %s %s :Jij bent al in dat kanaal.
+RPL_TARGUMODEG: :%s 716 %s %s :is in +g mode (server kant negeer)
+RPL_TARGNOTIFY: :%s 717 %s %s :is op het hoogte gesteld van jouw bericht.
+RPL_UMODEGMSG: :%s 718 %s %s :stuurde jou een bericht, maar jij bent momenteel in umode +g.
+ERR_NOPRIVS: :%s 723 %s %s :Niet voldoende operator privileges.
+RPL_TESTMASK: :%s 724 %s %s!%s@%s %u %u :Lokaal/remote clienten zijn gelijk.
+RPL_NOTESTLINE: :%s 726 %s %s :Geen gelijken
diff --git a/messages/ircd-french.lang b/messages/ircd-french.lang
new file mode 100644
index 0000000..91d8b9a
--- /dev/null
+++ b/messages/ircd-french.lang
@@ -0,0 +1,112 @@
+; ircd-hybrid-7 custom message file
+; Copyright (C) 2003
+; Joshua Kwan <joshk@triplehelix.org>
+; $Id$
+
+RPL_LUSEROP: :%s 252 %s %d :opérateurs IRC en ligne
+RPL_LOAD2HI: :%s 263 %s :Veuillez patienter, le serveur est trop occupé
+RPL_UNAWAY: :%s 305 %s :Vous n'êtes plus marqué 'absent'
+RPL_NOWAWAY: :%s 306 %s :Vous êtes maintenant marqué 'absent'
+RPL_YOUREOPER: :%s 381 %s :Vous êtes maintenant un opérateur IRC
+RPL_REHASHING: :%s 382 %s %s :Le serveur relit le fichier de configuration
+RPL_WELCOME: :%s 001 %s :Bienvenue au réseau IRC %s %s
+RPL_YOURHOST: :%s 002 %s :Votre serveur est %s, version %s
+RPL_CREATED: :%s 003 %s :Ce serveur a été crée %s
+RPL_ISUPPORT: :%s 005 %s %s :sont supportés par ce serveur
+RPL_REDIR: :%s 010 %s %s %d :Veuillez utiliser ce serveur
+RPL_MAPEND: :%s 017 %s :Fin de /MAP
+RPL_TRACELINK: :%s 200 %s Lien %s %s %s
+RPL_TRACECONNECTING: :%s 201 %s Essai. %s %s
+RPL_TRACEOPERATOR: :%s 204 %s Opér %s %s (%s) %lu %lu
+RPL_TRACEUSER: :%s 205 %s Client %s %s (%s) %lu %lu
+RPL_TRACESERVER: :%s 206 %s Serv. %s %dS %dC %s %s!%s@%s %lu
+RPL_TRACENEWTYPE: :%s 208 %s <nouvelletype> 0 %s
+RPL_TRACECLASS: :%s 209 %s Classe %s %d
+RPL_ENDOFSTATS: :%s 219 %s %c :Fin de reportage /STATS
+RPL_STATSUPTIME: :%s 242 %s :Le serveur fonctionne depuis %d jours, %dh %dm %ds
+RPL_STATSCONN: :%s 250 %s :Plus grand nombre de connexions simultanées: %d (%d clients) (%llu connexions reçues)
+RPL_LUSERCLIENT: :%s 251 %s :Il y a %d clients et %d invisibles sur %d serveurs
+RPL_LUSERUNKNOWN: :%s 253 %s %d :connexion(s) inconnue(s)
+RPL_LUSERCHANNELS: :%s 254 %s %d :chaînes crées
+RPL_LUSERME: :%s 255 %s :J'ai %d clients et %d serveurs
+RPL_ADMINME: :%s 256 %s :Renseignements administratives %s
+RPL_ENDOFTRACE: :%s 262 %s %s :Fin de TRACE
+RPL_LOCALUSERS: :%s 265 %s :Clients locaux: %d Max: %d
+RPL_GLOBALUSERS: :%s 266 %s :Clients globaux: %d Max: %d
+RPL_ENDOFACCEPT: :%s 282 %s :Fin de liste /ACCEPT.
+RPL_ENDOFWHO: :%s 315 %s %s :Fin de liste /WHO.
+RPL_WHOISIDLE: :%s 317 %s %s %d %d :silent seconds
+RPL_ENDOFWHOIS: :%s 318 %s %s :Fin de liste /WHOIS.
+RPL_LISTSTART: :%s 321 %s Chaîne :Clients Nom
+RPL_LISTEND: :%s 323 %s :Fin de /LIST
+RPL_NOTOPIC: :%s 331 %s %s :Il n'y a pas de sujet
+RPL_WHOISACTUALLY: :%s 338 %s %s %s :utilise vraiment l'addresse
+RPL_ENDOFINVEXLIST: :%s 347 %s %s :Fin de liste des invités
+RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Fin de liste des exceptionnés
+RPL_CLOSING: :%s 362 %s %s :Fermé. Etat = %d
+RPL_CLOSEEND: :%s 363 %s %d: Connexions fermées
+RPL_ENDOFLINKS: :%s 365 %s %s :Fin de liste /LINKS.
+RPL_ENDOFNAMES: :%s 366 %s %s :Fin de liste /NAMES.
+RPL_ENDOFBANLIST: :%s 368 %s %s :Fin de liste des interdits de la chaîne
+RPL_ENDOFWHOWAS: :%s 369 %s %s :Fin de WHOWAS
+RPL_INFOSTART: :%s 373 %s :INFO Serveur
+RPL_ENDOFINFO: :%s 374 %s :Fin de liste /INFO.
+RPL_MOTDSTART: :%s 375 %s :- %s Message du jour -
+RPL_ENDOFMOTD: :%s 376 %s :Fin de commande /MOTD.
+ERR_PASSWDMISMATCH: :%s 464 %s :Faux mot de passe
+ERR_NOPRIVILEGES: :%s 481 %s :Vous n'avez pas ce droit puisque vous n'êtes pas un opérateur
+ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Vous n'avez pas assez de pouvoir dans cette chaîne IRC pour faire ça
+ERR_CANTKILLSERVER: :%s 483 %s :Impossible de /KILLer un serveur!
+ERR_NOOPERHOST: :%s 491 %s :Vous manquez la bonne addresse ou le bon mot de passe pour devenir un opérateur IRC
+ERR_NOSUCHNICK: :%s 401 %s %s :Aucun(e) client/chaîne.
+ERR_NOSUCHSERVER: :%s 402 %s %s :Aucun serveur
+ERR_NOSUCHCHANNEL: :%s 403 %s %s :Aucune chaîne
+ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Impossible d'envoyer à la chaîne
+ERR_TOOMANYCHANNELS: :%s 405 %s %s :Vous êtes dans trop de chaînes
+ERR_WASNOSUCHNICK: :%s 406 %s %s :Il n'y avait pas un tel nom
+ERR_TOOMANYTARGETS: :%s 407 %s %s :Trop de destinations. Seulement %d ont été lus.
+ERR_NOORIGIN: :%s 409 %s :Vous n'avez pas marqué d'origine
+ERR_NORECIPIENT: :%s 411 %s :Vous n'avez pas marqué de destination (%s)
+ERR_NOTEXTTOSEND: :%s 412 %s :Pas de texte à envoyer
+ERR_NOTOPLEVEL: :%s 413 %s %s :Aucune domaine marqué
+ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Commande inconnue
+ERR_NOMOTD: :%s 422 %s :Fichier de message du jour manquant
+ERR_NOADMININFO: :%s 423 %s %s :Il n'y a pas de renseignements administratives
+ERR_NONICKNAMEGIVEN: :%s 431 %s :Aucun nom donné
+ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Nom inapproprié
+ERR_NICKNAMEINUSE: :%s 433 %s %s :Ce nom est déjà utilisé.
+ERR_NICKCOLLISION: :%s 436 %s %s :Collision de noms KILL
+ERR_UNAVAILRESOURCE: :%s 437 %s %s :Client/chaîne temporairement indisponible
+ERR_NICKTOOFAST: :%s 438 %s %s %s :Attendez %d secondes avant de changer votre nom encore.
+ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :Il n'est pas sur cette chaîne
+ERR_NOTONCHANNEL: :%s 442 %s %s :Vous n'êtes pas sur cette chaîne
+ERR_USERONCHANNEL: :%s 443 %s %s %s :est déjà sur chaîne
+ERR_NOTREGISTERED: :%s 451 %s :Vous ne vous êtes pas enregistré
+ERR_ACCEPTFULL: :%s 456 %s :Liste d'acceptance pleine
+ERR_ACCEPTEXIST: :%s 457 %s %s :est déjà sur votre liste d'acceptance
+ERR_ACCEPTNOT: :%s 458 %s %s :n'est pas sur votre liste d'acceptance
+ERR_NEEDMOREPARAMS: :%s 461 %s %s :Pas assez de paramètres
+ERR_ALREADYREGISTRED: :%s 462 %s :Vous ne pouvez pas vous enregistrer à nouveau
+ERR_YOUREBANNEDCREEP: :%s 465 %s :Vous êtes interdit d'utiliser ce serveur %s
+ERR_CHANNELISFULL: :%s 471 %s %s :Impossible de joindre (+l)
+ERR_UNKNOWNMODE: :%s 472 %s %c :m'est inconnu
+ERR_INVITEONLYCHAN: :%s 473 %s %s :Impossible de joindre (+i)
+ERR_BANNEDFROMCHAN: :%s 474 %s %s :Impossible de joindre (+b)
+ERR_BADCHANNELKEY: :%s 475 %s %s :Impossible de joindre (+k)
+ERR_BANLISTFULL: :%s 478 %s %s %s :Liste d'interdits est plein
+ERR_BADCHANNAME: :%s 479 %s %s :Nom de chaîne illégale
+ERR_RESTRICTED: :%s 484 %s :Vous êtes restraint
+ERR_UMODEUNKNOWNFLAG: :%s 501 %s :MODE client inconnue
+ERR_USERSDONTMATCH: :%s 502 %s :Impossible de modifier la mode des autres clients
+ERR_GHOSTEDCLIENT: :%s 503 %s :Le message n'est pas parvenu à %s
+ERR_USERNOTONSERV: :%s 504 %s %s :Client n'est pas sur ce serveur
+ERR_WRONGPONG: :%s 513 %s :Pour connecter tapez /QUOTE PONG %lu
+ERR_LISTSYNTAX: :%s 521 %s :Mauvaise syntaxe /LIST
+ERR_HELPNOTFOUND: :%s 524 %s %s :Ce renseignement n'existe pas
+RPL_ENDOFMODLIST: :%s 703 %s :Fin de /MODLIST.
+RPL_ENDOFHELP: :%s 706 %s %s :Fin de /HELP.
+RPL_KNOCK: :%s 710 %s %s %s!%s@%s :a demandé d'être invité
+RPL_KNOCKDLVR: :%s 711 %s %s :Votre KNOCK a été envoyé.
+ERR_TOOMANYKNOCK: :%s 712 %s %s :Trop de KNOCKs (%s).
+ERR_CHANOPEN: :%s 713 %s %s :La chaîne est ouverte.
+ERR_KNOCKONCHAN: :%s 714 %s %s :Vous êtes déjà sur cette chaîne.
diff --git a/messages/ircd-german.lang b/messages/ircd-german.lang
new file mode 100644
index 0000000..ee2cc5c
--- /dev/null
+++ b/messages/ircd-german.lang
@@ -0,0 +1,126 @@
+; ircd-hybrid-7 custom message file
+; Copyright (C) 2000-2005
+; David Taylor <davidt@yadt.co.uk>, 2000.
+; Markus R. <mxr@chatjunkies.org>, 2005.
+; $Id$
+
+RPL_WELCOME: :%s 001 %s :Wilkommen im %s Internet Relay Chat Netzwerk, %s!
+RPL_YOURHOST: :%s 002 %s :Du bist verbunden mit %s, version %s
+RPL_CREATED: :%s 003 %s :Dieser Server wurde erstellt: %s
+RPL_ISUPPORT: :%s 005 %s %s :werden von diesem Server unterstützt.
+RPL_REDIR: :%s 010 %s %s %d :Bitte benutze stattdessen diesen Server/Port.
+RPL_MAPEND: :%s 017 %s :Ende von /MAP.
+RPL_YOURID: :%s 042 %s %s :deine eindeutige ID
+RPL_TRACELINK: :%s 200 %s verbunden %s %s %s
+RPL_TRACECONNECTING: :%s 201 %s Versuche. %s %s
+RPL_TRACEOPERATOR: :%s 204 %s Operator %s %s (%s) %lu %lu
+RPL_TRACEUSER: :%s 205 %s Benutzer %s %s (%s) %lu %lu
+RPL_TRACESERVER: :%s 206 %s Server %s %dS %dC %s %s!%s@%s %lu
+RPL_TRACENEWTYPE: :%s 208 %s <neuer Typ> 0 %s
+RPL_TRACECLASS: :%s 209 %s Klasse %s %d
+RPL_ENDOFSTATS: :%s 219 %s %c :Ende von /STATS.
+RPL_STATSUPTIME: :%s 242 %s :Server läuft seit %d Tagen, %d:%02d:%02d
+RPL_STATSCONN: :%s 250 %s :Rekord an gleichzeitigen Verbindungen: %d (davon %d Benutzer) (%llu Verbindungen)
+RPL_LUSERCLIENT: :%s 251 %s :Hier gibt es %d Benutzer, davon %d unsichtbar, auf %d Servern.
+RPL_LUSEROP: :%s 252 %s %d :IRC Operatorn sind online.
+RPL_LUSERUNKNOWN: :%s 253 %s %d :Unbekannte Verbindungen.
+RPL_LUSERCHANNELS: :%s 254 %s %d :Chaträume existieren.
+RPL_LUSERME: :%s 255 %s :Ich habe %d Benutzer und %d verbundene Server.
+RPL_ADMINME: :%s 256 %s :Administrative Informationen über %s
+RPL_ENDOFTRACE: :%s 262 %s %s :Ende von TRACE.
+RPL_LOAD2HI: :%s 263 %s :Zur Zeit kann Ihre Anfrage nicht bearbeitet werden. Der Server ist überlastet.
+RPL_LOCALUSERS: :%s 265 %s :Anzahl der lokalen User, zur Zeit: %d Maximum: %d
+RPL_GLOBALUSERS: :%s 266 %s :Anzahl der globalen User, zur Zeit: %d Maximum: %d
+RPL_ENDOFACCEPT: :%s 282 %s :Ende der /ACCEPT-Liste.
+RPL_UNAWAY: :%s 305 %s :Du bist nun nicht mehr abwesend (away).
+RPL_NOWAWAY: :%s 306 %s :Du bist nun abwesend (away).
+RPL_WHOISADMIN: :%s 313 %s %s :ist ein Server Administrator.
+RPL_WHOISOPERATOR: :%s 313 %s %s :ist ein IRC Operator.
+RPL_ENDOFWHO: :%s 315 %s %s :Ende der /WHO-Liste.
+RPL_WHOISIDLE: :%s 317 %s %s %d %d :Sekunden inaktiv
+RPL_ENDOFWHOIS: :%s 318 %s %s :Ende der /WHOIS-Liste.
+RPL_LISTSTART: :%s 321 %s Raum :Besucher Name
+RPL_LISTEND: :%s 323 %s :End von /LIST
+RPL_NOTOPIC: :%s 331 %s %s :Kein Thema für diesen Raum gesetzt.
+RPL_WHOISACTUALLY: :%s 338 %s %s %s :wirklicher Host:
+RPL_ENDOFINVEXLIST: :%s 347 %s %s :Ende der Liste von Einladungen für diesen Raum.
+RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Ende der Liste von Sperr-Ausnahmen für diesen Raum.
+RPL_CLOSING: :%s 362 %s %s :Geschlossen. Status = %d
+RPL_CLOSEEND: :%s 363 %s %d:Verbindung getrennt.
+RPL_ENDOFLINKS: :%s 365 %s %s :Ende der /LINKS-Liste.
+RPL_ENDOFNAMES: :%s 366 %s %s :Ende der /NAMES-Liste.
+RPL_ENDOFBANLIST: :%s 368 %s %s :Ende der Sperr-Liste für diesen Raum
+RPL_ENDOFWHOWAS: :%s 369 %s %s :Ende von WHOWAS.
+RPL_INFOSTART: :%s 373 %s :Server INFO
+RPL_ENDOFINFO: :%s 374 %s :Ende der /INFO-Liste.
+RPL_MOTDSTART: :%s 375 %s :- %s Nachricht des Tages -
+RPL_ENDOFMOTD: :%s 376 %s :Ende von /MOTD.
+RPL_YOUREOPER: :%s 381 %s :ich mag starke Persönlichkeiten.. besorgs mir!
+RPL_REHASHING: :%s 382 %s %s :Konfiguration wurde erneut eingelesen
+RPL_HOSTHIDDEN: :%s 396 %s :ist nun dein sichtbarer Host
+ERR_NOSUCHNICK: :%s 401 %s %s :Dieser Benutzer/Raum existiert nicht
+ERR_NOSUCHSERVER: :%s 402 %s %s :Dieser Server existiert nicht
+ERR_NOSUCHCHANNEL: :%s 403 %s %s :Dieser Raum existiert nicht
+ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Senden der Nachricht nicht möglich.
+ERR_TOOMANYCHANNELS: :%s 405 %s %s :zuviele gleichzeitige Räume
+ERR_WASNOSUCHNICK: :%s 406 %s %s :Diesen Benutzer gab es nicht
+ERR_TOOMANYTARGETS: :%s 407 %s %s :Die Nachricht wurde an zu viele Benutzer geschickt. Nur %d wurden weitergeleitet
+ERR_NOORIGIN: :%s 409 %s :von wem kommt diese Nachricht?
+ERR_NORECIPIENT: :%s 411 %s :An wen soll diese Nachricht geschickt werden? (%s)
+ERR_NOTEXTTOSEND: :%s 412 %s :Es gibt keine Nachricht zu senden
+ERR_NOTOPLEVEL: :%s 413 %s %s :keine TLD (top level domain) angegeben.
+ERR_WILDTOPLEVEL: :%s 414 %s %s :Platzhalter in der TLD (top level domain)
+ERR_UNKNOWNCOMMAND: :%s 421 %s %s :unbekannter Befehl
+ERR_NOMOTD: :%s 422 %s :Keine MOTD Datei gefunden.
+ERR_NOADMININFO: :%s 423 %s %s :Es stehen keine Administrativen Informationen zur Verfügung
+ERR_NONICKNAMEGIVEN: :%s 431 %s :Kein Benutzer angegeben
+ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Fehlerhafter Benutzername
+ERR_NICKNAMEINUSE: :%s 433 %s %s :Benutzername bereits in verwendung
+ERR_NICKCOLLISION: :%s 436 %s %s :Benutzernamen-Kollision, KILL
+ERR_UNAVAILRESOURCE: :%s 437 %s %s :Benutzername/Raum vorübergehend nicht verfügbar
+ERR_NICKTOOFAST: :%s 438 %s %s %s :Du hast zu schnell Benutzername gewechselt. Bitte warte %d Sekunden.
+ERR_SERVICESDOWN: :%s 440 %s :Services sind momentan nicht verfügbar
+ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :Diese Benutzer sind nicht in diesem Raum
+ERR_NOTONCHANNEL: :%s 442 %s %s :Du bist nicht in diesem Raum
+ERR_USERONCHANNEL: :%s 443 %s %s %s :ist schon in diesem Raum
+ERR_NOTREGISTERED: :%s 451 %s :Du hast Dich noch nicht registriert
+ERR_ACCEPTFULL: :%s 456 %s :Accept-Liste ist voll.
+ERR_ACCEPTEXIST: :%s 457 %s %s :ist bereits auf Deiner Accept-Liste.
+ERR_ACCEPTNOT: :%s 458 %s %s :ist nicht auf Deiner Accept-Liste.
+ERR_NEEDMOREPARAMS: :%s 461 %s %s :Nicht genug Parameter
+ERR_ALREADYREGISTRED: :%s 462 %s :Erneute Registrierung nicht möglich
+ERR_PASSWDMISMATCH: :%s 464 %s :Passwort falsch
+ERR_YOUREBANNEDCREEP: :%s 465 %s :Zutritt zu diesem Server verweigert - %s.
+ERR_CHANNELISFULL: :%s 471 %s %s :Zutritt zu diesem Raum verweigert - Raum voll (+l).
+ERR_UNKNOWNMODE: :%s 472 %s %c :unbekannter Modus
+ERR_INVITEONLYCHAN: :%s 473 %s %s :Zutritt zu diesem Raum nur mit Einladung möglich (+i).
+ERR_BANNEDFROMCHAN: :%s 474 %s %s :Zutritt zu diesem Raum durch Sperr-Liste verweigert (+b).
+ERR_BADCHANNELKEY: :%s 475 %s %s :Zutritt zu diesem Raum nur mit richtigem Passwort möglich (+k).
+ERR_BANLISTFULL: :%s 478 %s %s %s :Sperr-Liste des Raums voll.
+ERR_BADCHANNAME: :%s 479 %s %s :Raum-Name nicht zulässig.
+ERR_NOPRIVILEGES: :%s 481 %s :Zugriff verweigert - nur für IRC Operatoren.
+ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Zugriff verweigert - nur für Raum-Operatoren.
+ERR_CANTKILLSERVER: :%s 483 %s :Ein Server reagiert nicht auf das KILL Kommando.
+ERR_RESTRICTED: :%s 484 %s :Verbindung unterliegt Restriktionen.
+ERR_NOOPERHOST: :%s 491 %s :netter Versuch - aber nur für IRC Operatoren!
+ERR_UMODEUNKNOWNFLAG: :%s 501 %s :unbekannter Modus
+ERR_USERSDONTMATCH: :%s 502 %s :Modus-Änderung an anderen Benutzern nicht möglich.
+ERR_GHOSTEDCLIENT: :%s 503 %s :Nachricht konnte %s nicht zugestellt werden.
+ERR_USERNOTONSERV: :%s 504 %s %s :Benutzer ist nicht auf diesem Server.
+ERR_WRONGPONG: :%s 513 %s :Um den Verbindungsaufbau abzuschliessen, gib ein: /QUOTE PONG %lu
+ERR_LISTSYNTAX: :%s 521 %s :falscher LIST-Syntax.
+ERR_HELPNOTFOUND: :%s 524 %s %s :keine Hilfe verfügbar.
+RPL_WHOISSECURE: :%s 671 %s %s :ist über SSL verbunden (verschlüsselt).
+RPL_ENDOFMODLIST: :%s 703 %s :Ende von /MODLIST.
+RPL_ENDOFHELP: :%s 706 %s %s :Ende von /HELP.
+RPL_KNOCK: :%s 710 %s %s %s!%s@%s :fragt nach einer Einladung.
+RPL_KNOCKDLVR: :%s 711 %s %s :Dein KNOCK wurde zugestellt.
+ERR_TOOMANYKNOCK: :%s 712 %s %s :Zuviele KNOCKs (%s).
+ERR_CHANOPEN: :%s 713 %s %s :Raum ist offen.
+ERR_KNOCKONCHAN: :%s 714 %s %s :Du bist bereits in diesem Raum.
+RPL_TARGUMODEG: :%s 716 %s %s :ist im +g Modus (Serverseitiges Ignorieren)
+RPL_TARGNOTIFY: :%s 717 %s %s :wurde über Deine Nachricht informiert.
+RPL_UMODEGMSG: :%s 718 %s %s :will Dir eine Nachricht schreiben, Du hast aber Benutzer-Modus +g gesetzt.
+ERR_NOPRIVS: :%s 723 %s %s :Operator-Privilegien nicht ausreichend.
+RPL_TESTMASK: :%s 724 %s %s!%s@%s %u %u :lokale/entfernte Benutzer stimmen überein.
+RPL_NOTESTLINE: :%s 726 %s %s :keine Übereinstimmungen gefunden.
diff --git a/messages/ircd-italian.lang b/messages/ircd-italian.lang
new file mode 100644
index 0000000..5beccfe
--- /dev/null
+++ b/messages/ircd-italian.lang
@@ -0,0 +1,127 @@
+; ircd-hybrid-7 custom message file
+; Copyright (C) 2007 Afaa (http://www.ircd-hybrid.it)
+; Federico Giovannini <afaa@ircd-hybrid.it>
+; $Id$
+
+RPL_WELCOME: :%s 001 %s :Benvenuto su %s Internet Relay Chat Network %s
+RPL_YOURHOST: :%s 002 %s :Hostname del server è %s, versione corrente %s
+RPL_CREATED: :%s 003 %s :Questo server è stato creato il %s
+RPL_ISUPPORT: :%s 005 %s %s :Sono supportati da questo server.
+RPL_REDIR: :%s 010 %s %s %d :Per favore usa questo Server/Porta invece
+RPL_MAPEND: :%s 017 %s :Fine del /MAP
+RPL_YOURID: :%s 042 %s %s :Proprio ID univoco
+RPL_TRACELINK: :%s 200 %s Link %s %s %s
+RPL_TRACECONNECTING: :%s 201 %s Prova. %s %s
+RPL_TRACEHANDSHAKE: :%s 202 %s H.S. %s %s
+RPL_TRACEUNKNOWN: :%s 203 %s ???? %s %s (%s) %d
+RPL_TRACEOPERATOR: :%s 204 %s Operatore %s %s (%s) %lu %lu
+RPL_TRACEUSER: :%s 205 %s Utente %s %s (%s) %lu %lu
+RPL_TRACESERVER: :%s 206 %s Server %s %dS %dC %s %s!%s@%s %lu
+RPL_TRACENEWTYPE: :%s 208 %s <nuovotipo> 0 %s
+RPL_TRACECLASS: :%s 209 %s Classe %s %d
+RPL_ENDOFSTATS: :%s 219 %s %c :Fine del rapporto /STATS
+RPL_STATSUPTIME: :%s 242 %s :Server Up %d Giorni, %d:%02d:%02d
+RPL_STATSCONN: :%s 250 %s :Connessioni massime: %d (%d clients) (%llu connessioni ricevute)
+RPL_LUSERCLIENT: :%s 251 %s :Sono presenti %d utenti e %d invisibili su %d servers
+RPL_LUSEROP: :%s 252 %s %d :Operatori IRC Online
+RPL_LUSERUNKNOWN: :%s 253 %s %d :Connessione(i) sconosciuta(e)
+RPL_LUSERCHANNELS: :%s 254 %s %d :Canali presenti
+RPL_LUSERME: :%s 255 %s :Sono presenti %d clients e %d servers
+RPL_ADMINME: :%s 256 %s :Informazioni di Amministrazione %s
+RPL_ENDOFTRACE: :%s 262 %s %s :Fine del TRACE
+RPL_LOAD2HI: :%s 263 %s :Server temporaneamente occupato. Per favore attendi un momento e riprova di nuovo.
+RPL_LOCALUSERS: :%s 265 %s :Utenti locali correnti: %d Max: %d
+RPL_GLOBALUSERS: :%s 266 %s :Utenti globali correnti: %d Max: %d
+RPL_ENDOFACCEPT: :%s 282 %s :Fine della lista /ACCEPT.
+RPL_UNAWAY: :%s 305 %s :Non siete più contrassegnati come assenti.
+RPL_NOWAWAY: :%s 306 %s :Siete contrassegnati come assenti.
+RPL_WHOISADMIN: :%s 313 %s %s :è un Amministratore di Server
+RPL_WHOISOPERATOR: :%s 313 %s %s :è un Operatore di IRC
+RPL_ENDOFWHO: :%s 315 %s %s :Fine della lista /WHO.
+RPL_WHOISIDLE: :%s 317 %s %s %d %d :Secondi di idle.
+RPL_ENDOFWHOIS: :%s 318 %s %s :Fine della lista /WHOIS.
+RPL_LISTSTART: :%s 321 %s Canale :Utente Nome
+RPL_LISTEND: :%s 323 %s :Fine della /LIST (Lista)
+RPL_NOTOPIC: :%s 331 %s %s :Nessun topic settato.
+RPL_WHOISACTUALLY: :%s 338 %s %s %s :attualmente usa l'host:
+RPL_ENDOFINVEXLIST: :%s 347 %s %s :Fine della lista dei canali ad invito (invite).
+RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Fine della lista dei canali ad eccezione (exception).
+RPL_CLOSING: :%s 362 %s %s :Chiuso. Status = %d
+RPL_CLOSEEND: :%s 363 %s %d: Connessione chiusa.
+RPL_ENDOFLINKS: :%s 365 %s %s :Fine della lista dei /LINKS.
+RPL_ENDOFNAMES: :%s 366 %s %s :Fine della lista dei /NAMES.
+RPL_ENDOFBANLIST: :%s 368 %s %s :Fine della lista dei ban di canale.
+RPL_ENDOFWHOWAS: :%s 369 %s %s :Fine del WHOWAS
+RPL_INFOSTART: :%s 373 %s :Informazioni Server
+RPL_ENDOFINFO: :%s 374 %s :Fine della lista /INFO.
+RPL_MOTDSTART: :%s 375 %s :- %s Messaggio del giorno -
+RPL_ENDOFMOTD: :%s 376 %s :Fine del comando /MOTD.
+RPL_YOUREOPER: :%s 381 %s :Sei entrato nella... Twilight Zone! (zona crepuscolare)
+RPL_REHASHING: :%s 382 %s %s :Aggiornamento
+RPL_HOSTHIDDEN: :%s 396 %s :Ora il tuo host è nascosto.
+ERR_NOSUCHNICK: :%s 401 %s %s :nick e/o canale non presente.
+ERR_NOSUCHSERVER: :%s 402 %s %s :server non presente.
+ERR_NOSUCHCHANNEL: :%s 403 %s %s :Canale non presente.
+ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Impossibile inviare al canale.
+ERR_TOOMANYCHANNELS: :%s 405 %s %s :Sei entrato in troppi canali.
+ERR_WASNOSUCHNICK: :%s 406 %s %s :Non c'e alcun nickname
+ERR_TOOMANYTARGETS: :%s 407 %s %s :Troppi destinatari. Solamente %d processato.
+ERR_NOORIGIN: :%s 409 %s :Non è specificata l'origine
+ERR_NORECIPIENT: :%s 411 %s :Nessun destinatario specificato (%s)
+ERR_NOTEXTTOSEND: :%s 412 %s :Impossibile inviare il testo.
+ERR_NOTOPLEVEL: :%s 413 %s %s :Nessun dominio toplevel è stato specificato.
+ERR_WILDTOPLEVEL: :%s 414 %s %s :Carattere jolly nel dominio toplevel
+ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Comando sconosciuto
+ERR_NOMOTD: :%s 422 %s :Non è presente il file di MOTD
+ERR_NOADMININFO: :%s 423 %s %s :Informazioni amministratrive indisponibili
+ERR_NONICKNAMEGIVEN: :%s 431 %s :Nessun nickname specificato.
+ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Nickname errato.
+ERR_NICKNAMEINUSE: :%s 433 %s %s :Nickname già in uso.
+ERR_NICKCOLLISION: :%s 436 %s %s :Collisione di Nickname KILL
+ERR_UNAVAILRESOURCE: :%s 437 %s %s :Il nick/canale è temporaneamente indisponibile
+ERR_NICKTOOFAST: :%s 438 %s %s %s :Cambio di nick troppo veloce. Per favore attendi %d secondi.
+ERR_SERVICESDOWN: :%s 440 %s :I Servizi sono attualmente non disponibili (Down)
+ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :L'utente non è su quel canale.
+ERR_NOTONCHANNEL: :%s 442 %s %s :Non sei presente nel canale.
+ERR_USERONCHANNEL: :%s 443 %s %s %s :è già presente nel canale
+ERR_NOTREGISTERED: :%s 451 %s :Non sei registrato.
+ERR_ACCEPTFULL: :%s 456 %s :Lista Accept è piena.
+ERR_ACCEPTEXIST: :%s 457 %s %s :è già presente nella tua lista accept.
+ERR_ACCEPTNOT: :%s 458 %s %s :non è presente nella tua lista accept.
+ERR_NEEDMOREPARAMS: :%s 461 %s %s :Parametri non sufficenti.
+ERR_ALREADYREGISTRED: :%s 462 %s :Non è possibile registrarsi nuovamente.
+ERR_PASSWDMISMATCH: :%s 464 %s :La Password non è corretta.
+ERR_YOUREBANNEDCREEP: :%s 465 %s :Sei stato bannato da questo server- %s
+ERR_CHANNELISFULL: :%s 471 %s %s :Non puoi entrare nel canale (+l)
+ERR_UNKNOWNMODE: :%s 472 %s %c :Questo è una modalità (mode) sconosciuto per me.
+ERR_INVITEONLYCHAN: :%s 473 %s %s :Impossibile entrare nel canale (+i)
+ERR_BANNEDFROMCHAN: :%s 474 %s %s :Impossibile entrare nel canale (+b)
+ERR_BADCHANNELKEY: :%s 475 %s %s :Impossibile entrare nel canale (+k)
+ERR_BANLISTFULL: :%s 478 %s %s %s :La lista dei ban del canale e piena.
+ERR_BADCHANNAME: :%s 479 %s %s :Nome canale illegale.
+ERR_NOPRIVILEGES: :%s 481 %s :Permesso negato - non sei un operatore di IRC
+ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Non sei un operatore di canale.
+ERR_CANTKILLSERVER: :%s 483 %s :Non puoi killare il server!
+ERR_RESTRICTED: :%s 484 %s :Sei ristretto.
+ERR_NOOPERHOST: :%s 491 %s :Solo pochi mortali meritevoli possono provare ad entrare nella twilight zone (zona crepuscolare)
+ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Flag MODE sconosciuta.
+ERR_USERSDONTMATCH: :%s 502 %s :Non puoi cambiare i modi di altri utenti
+ERR_GHOSTEDCLIENT: :%s 503 %s :Il messaggio non è stato possibile consegnarlo a: %s
+ERR_USERNOTONSERV: :%s 504 %s %s :L'utente non è presente su questo server.
+ERR_WRONGPONG: :%s 513 %s :Tipo di connessione /QUOTE PONG %lu
+ERR_LISTSYNTAX: :%s 521 %s :Sintassi errata Bad list syntax
+ERR_HELPNOTFOUND: :%s 524 %s %s :Aiuto non trovato.
+RPL_WHOISSECURE: :%s 671 %s %s :è connesso tramite SSL (Collegamento Sicuro)
+RPL_ENDOFMODLIST: :%s 703 %s :Fine del /MODLIST.
+RPL_ENDOFHELP: :%s 706 %s %s :Fine del /HELP.
+RPL_KNOCK: :%s 710 %s %s %s!%s@%s :ha richiesto un invito.
+RPL_KNOCKDLVR: :%s 711 %s %s :Il tuo messaggio è stato consegnato.
+ERR_TOOMANYKNOCK: :%s 712 %s %s :Troppi messaggi (%s).
+ERR_CHANOPEN: :%s 713 %s %s :Il canale è aperto.
+ERR_KNOCKONCHAN: :%s 714 %s %s :Sei già presente nel canale.
+RPL_TARGUMODEG: :%s 716 %s %s :è in modalità +g (Lato server ignorato)
+RPL_TARGNOTIFY: :%s 717 %s %s :siete informati che avete inviato un messaggio a loro.
+RPL_UMODEGMSG: :%s 718 %s %s :Vi è arrivato un messaggio e voi siete senza modalita +g.
+ERR_NOPRIVS: :%s 723 %s %s :Privilegi di Oper insufficienti.
+RPL_TESTMASK: :%s 724 %s %s!%s@%s %u %u :Locale/remoto clients corrispondente.
+RPL_NOTESTLINE: :%s 726 %s %s :Nessuna corrispondenza
diff --git a/messages/ircd-norwegian.lang b/messages/ircd-norwegian.lang
new file mode 100644
index 0000000..e70168c
--- /dev/null
+++ b/messages/ircd-norwegian.lang
@@ -0,0 +1,90 @@
+; SOME DESCRIPTIVE TITLE.
+; Copyright (C) YEAR Free Software Foundation, Inc.
+; FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+; $Id$
+
+RPL_WELCOME: :%s 001 %s :Velkommen til %s Internet Relay Nettverket %s
+RPL_YOURHOST: :%s 002 %s :Verten din er %s, som bruker versjon %s
+RPL_CREATED: :%s 003 %s :Serveren ble kompilert %s
+RPL_ISUPPORT: :%s 005 %s %s :er gyldig for denne serveren
+RPL_REDIR: :%s 010 %s %s %d :Vennligst bruk Server/Port istedenfor
+RPL_TRACECONNECTING: :%s 201 %s Prøv. %s %s
+RPL_TRACEHANDSHAKE: :%s 202 %s T.S. %s %s
+RPL_TRACEUSER: :%s 205 %s Bruker %s %s (%s) %lu %lu
+RPL_TRACENEWTYPE: :%s 208 %s <nytype> 0 %s
+RPL_TRACECLASS: :%s 209 %s Klasse %s %d
+RPL_STATSUPTIME: :%s 242 %s :Serveren har vært oppe %d dager, %d:%02d:%02d
+RPL_STATSCONN: :%s 250 %s :Høyeste tilkoblings telling: %d (%d klienter) (%llu tilkoblinger received)
+RPL_LUSERCLIENT: :%s 251 %s :Det er %d brukere og %d usynlige på %d serverere
+RPL_LUSEROP: :%s 252 %s %d :IRC Operatører online
+RPL_LUSERUNKNOWN: :%s 253 %s %d :ukjente tilkoblinger
+RPL_LUSERCHANNELS: :%s 254 %s %d :kanaler laget
+RPL_LUSERME: :%s 255 %s :Jeg har %d klienter og %d serverere
+RPL_ADMINME: :%s 256 %s :Administrativ informasjon om %s
+RPL_ENDOFTRACE: :%s 262 %s %s :Slutten av TRACE
+RPL_LOAD2HI: :%s 263 %s :Server lasten er for tiden for høy. Vennligst vent litt og prøv igjen.
+RPL_LOCALUSERS: :%s 265 %s :Lokale brukere nå: %d Maks: %d
+RPL_GLOBALUSERS: :%s 266 %s :Globale brukere nå: %d Maks: %d
+RPL_UNAWAY: :%s 305 %s :Du er ikke lenger markert som vekke (away)
+RPL_NOWAWAY: :%s 306 %s :Du har blitt markert som vekke (away)
+RPL_WHOISIDLE: :%s 317 %s %s %d %d :sekunder uaktiv, påloggings tid
+RPL_ENDOFWHOIS: :%s 318 %s %s :Slutten av /WHOIS listen.
+RPL_LISTSTART: :%s 321 %s Kanal :Bruker Navn
+RPL_LISTEND: :%s 323 %s :Slutten av /LIST
+RPL_NOTOPIC: :%s 331 %s %s :Ingen topic (overskrift) er satt.
+RPL_ENDOFINVEXLIST: :%s 347 %s %s :Slutten av Kanal Invite List (Inviterte Listen)
+RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Slutten av Kanal Exception List (Unntaks Listen)
+RPL_CLOSING: :%s 362 %s %s :Lukket. Status = %d
+RPL_CLOSEEND: :%s 363 %s %d: Tilkobling Stengt
+RPL_ENDOFLINKS: :%s 365 %s %s :Slutten av /LINKS listen.
+RPL_ENDOFNAMES: :%s 366 %s %s :Slutten av /NAMES listen.
+RPL_ENDOFBANLIST: :%s 368 %s %s :Slutten av Kanal Ban List (Utestengt Listen)
+RPL_ENDOFWHOWAS: :%s 369 %s %s :Slutten av WHOWAS
+RPL_ENDOFINFO: :%s 374 %s :Slutten av /INFO listen.
+RPL_MOTDSTART: :%s 375 %s :- %s Beskjed for Dagen -
+RPL_ENDOFMOTD: :%s 376 %s :Slutten av /MOTD kommandoen.
+RPL_YOUREOPER: :%s 381 %s :Du har nå kommet inn i... det Forbudte Området! (Twilight Zone!).
+ERR_NOSUCHNICK: :%s 401 %s %s :Ikke noen slik bruker/kanal
+ERR_NOSUCHSERVER: :%s 402 %s %s :Ikke noen slik server
+ERR_NOSUCHCHANNEL: :%s 403 %s %s :Ikke noen slik kanal
+ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Kan ikke sende til kanalen
+ERR_TOOMANYCHANNELS: :%s 405 %s %s :Du har gått på (joined) for mange kanaler
+ERR_WASNOSUCHNICK: :%s 406 %s %s :Det var ikke noen slik kallenavn (nickname)
+ERR_TOOMANYTARGETS: :%s 407 %s %s :For mange mottakere. Bare %d gikk gjennom
+ERR_NOORIGIN: :%s 409 %s :Ingen opprinnelse spesifisert
+ERR_NORECIPIENT: :%s 411 %s :Ingen mottaker definert (%s)
+ERR_NOTEXTTOSEND: :%s 412 %s :Ingen tekst å sende
+ERR_NOTOPLEVEL: :%s 413 %s %s :Ingen øverste-nivå domene (toplevel domain) spesifisert
+ERR_WILDTOPLEVEL: :%s 414 %s %s :Uspesifisert i øverste-nivå domene (toplevel domain)
+ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Ukjent kommando
+ERR_NOMOTD: :%s 422 %s :MOTD Filen mangler
+ERR_NOADMININFO: :%s 423 %s %s :Ingen administrativ info tilgjengelig
+ERR_NONICKNAMEGIVEN: :%s 431 %s :Ingen kallenavn (nickname) definert
+ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Feilaktig Kallenavn (Nickname)
+ERR_NICKNAMEINUSE: :%s 433 %s %s :Kallenavnet (Nickname) er allered i bruk.
+ERR_NICKCOLLISION: :%s 436 %s %s :Kallenavn (Nickname) kollisjon KILL
+ERR_UNAVAILRESOURCE: :%s 437 %s %s :Kallenavnet/Kanalen er midlertidig utilgjengelig
+ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :De er ikke på den kanalen
+ERR_NOTONCHANNEL: :%s 442 %s %s :Du er ikke på den kanalen
+ERR_USERONCHANNEL: :%s 443 %s %s %s :er allered på kanalen
+ERR_NOTREGISTERED: :%s 451 %s :Du har ikke registrert
+ERR_NEEDMOREPARAMS: :%s 461 %s %s :Ikke nok verdier (parameters)
+ERR_ALREADYREGISTRED: :%s 462 %s :Du kan ikke registrere
+ERR_PASSWDMISMATCH: :%s 464 %s :Passordet var inkorrekt
+ERR_YOUREBANNEDCREEP: :%s 465 %s :Du er utestengt fra denne serveren- %s
+ERR_CHANNELISFULL: :%s 471 %s %s :Kan ikke komme inn i kanalen (+l)
+ERR_UNKNOWNMODE: :%s 472 %s %c :er en ukjent modus tegn for meg
+ERR_INVITEONLYCHAN: :%s 473 %s %s :Kan ikke komme inn i kanalen (+i)
+ERR_BANNEDFROMCHAN: :%s 474 %s %s :Kan ikke komme inn i kanalen (+b)
+ERR_BADCHANNELKEY: :%s 475 %s %s :Kan ikke komme inn i kanalen (+k)
+ERR_BANLISTFULL: :%s 478 %s %s %s :Kanalens utestengings liste er full
+ERR_BADCHANNAME: :%s 479 %s %s :Ulovlig kanal navn
+ERR_NOPRIVILEGES: :%s 481 %s :Tillatelse nektet - Du er ikke en IRC operatør
+ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Du er ikke en kanal operatør
+ERR_CANTKILLSERVER: :%s 483 %s :Du kan ikke drepe (kill) en server!
+ERR_RESTRICTED: :%s 484 %s :Du er begrenset
+ERR_NOOPERHOST: :%s 491 %s :Kun få dødelige kan prøve å komme inn i det forbudte området (twilight zone)
+ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Ukjent MODE flag
+ERR_USERSDONTMATCH: :%s 502 %s :Kan ikke forandre modus på andre brukere
+ERR_GHOSTEDCLIENT: :%s 503 %s :Beskjeden kunne ikke bli levert til %s
+ERR_USERNOTONSERV: :%s 504 %s %s :Bruker er ikke på denne serveren
diff --git a/messages/ircd-polish.lang b/messages/ircd-polish.lang
new file mode 100644
index 0000000..f84e19d
--- /dev/null
+++ b/messages/ircd-polish.lang
@@ -0,0 +1,108 @@
+; ircd-hybrid-7 custom message file
+; Copyright (C) 2003-2005, Piotr Ni¿yñski <nizynski@sysplex.pl>
+; Coding: ISO-8859-2 * CP-1250
+; $Id$
+
+RPL_WELCOME: :%s 001 %s :Witaj w sieci IRC %s, %s
+RPL_YOURHOST: :%s 002 %s :Twój host to %s, obecna wersja %s
+RPL_CREATED: :%s 003 %s :Ten serwer zosta³ utworzony %s
+RPL_ISUPPORT: :%s 005 %s %s :sa obs³ugiwane przez ten serwer
+RPL_REDIR: :%s 010 %s %s %d :Proszê u¿ywaæ tego serwera/portu
+RPL_MAPEND: :%s 017 %s :Koniec /MAP
+RPL_YOURID: :%s 042 %s %s :Twój unikalny ID
+RPL_ENDOFSTATS: :%s 219 %s %c :Koniec raportu /STATS
+RPL_STATSUPTIME: :%s 242 %s :Serwer dzia³a %d dni, %d:%02d:%02d
+RPL_STATSCONN: :%s 250 %s :Najwy¿sza liczba po³aczeñ: %d (%d klientów) (%llu od startu serwera)
+RPL_LUSERCLIENT: :%s 251 %s :Jest %d u¿ytkowników i %d niewidzialnych na %d serwerach
+RPL_LUSEROP: :%s 252 %s %d :aktywnych IRC Operatorów
+RPL_LUSERUNKNOWN: :%s 253 %s %d :- liczba niezarejestrowanych po³aczeñ
+RPL_LUSERCHANNELS: :%s 254 %s %d :- liczba utworzonych kana³ów
+RPL_LUSERME: :%s 255 %s :Mam %d po³aczonych klientów, serwerów: %d
+RPL_ADMINME: :%s 256 %s :Informacje administracyjne o %s
+RPL_LOAD2HI: :%s 263 %s :Obcia¿enie serwera jest chwilowo zbyt du¿e. Proszê zaczekaæ chwilê i spróbowaæ ponownie.
+RPL_LOCALUSERS: :%s 265 %s :Liczba lokalnych u¿ytkowników: %d Rekord: %d
+RPL_GLOBALUSERS: :%s 266 %s :Liczba globalnych u¿ytkowników: %d Rekord: %d
+RPL_ENDOFACCEPT: :%s 282 %s :Koniec listy /ACCEPT.
+RPL_UNAWAY: :%s 305 %s :Zdjêto flagê nieobecnosci
+RPL_NOWAWAY: :%s 306 %s :Ustawiono flagê nieobecnosci
+RPL_WHOISADMIN: :%s 313 %s %s :jest administratorem serwera
+RPL_WHOISOPERATOR: :%s 313 %s %s :jest operatorem IRC
+RPL_ENDOFWHO: :%s 315 %s %s :Koniec listy /WHO.
+RPL_WHOISIDLE: :%s 317 %s %s %d %d :sekund bezczynnosci, czas zalogowania
+RPL_ENDOFWHOIS: :%s 318 %s %s :Koniec listy /WHOIS.
+RPL_LISTSTART: :%s 321 %s Kana³ :U¿ytkownicy Temat
+RPL_LISTEND: :%s 323 %s :Koniec /LIST
+RPL_NOTOPIC: :%s 331 %s %s :Brak ustawionego tematu.
+RPL_WHOISACTUALLY: :%s 338 %s %s %s :w rzeczywistosci u¿ywa hosta
+RPL_ENDOFINVEXLIST: :%s 347 %s %s :Koniec listy zaproszeñ kana³owych
+RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Koniec listy wyjatków kana³owych
+RPL_ENDOFLINKS: :%s 365 %s %s :Koniec listy /LINKS.
+RPL_ENDOFNAMES: :%s 366 %s %s :Koniec listy /NAMES.
+RPL_ENDOFBANLIST: :%s 368 %s %s :Koniec listy banów kana³owych
+RPL_ENDOFWHOWAS: :%s 369 %s %s :Koniec /WHOWAS
+RPL_INFOSTART: :%s 373 %s :Informacje o serwerze
+RPL_ENDOFINFO: :%s 374 %s :Koniec listy /INFO.
+RPL_ENDOFMOTD: :%s 376 %s :Koniec komendy /MOTD.
+RPL_HOSTHIDDEN: :%s 396 %s %s :zastêpuje teraz Twój host
+ERR_NOSUCHNICK: :%s 401 %s %s :Nie ma takiego nicka/kana³u
+ERR_NOSUCHSERVER: :%s 402 %s %s :Nie ma takiego serwera
+ERR_NOSUCHCHANNEL: :%s 403 %s %s :Nie ma takiego kana³u
+ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Nie mo¿na wys³aæ na kana³
+ERR_TOOMANYCHANNELS: :%s 405 %s %s :Masz zbyt du¿o otwartych kana³ów
+ERR_WASNOSUCHNICK: :%s 406 %s %s :Nie by³o takiego nicka
+ERR_TOOMANYTARGETS: :%s 407 %s %s :Zbyt wiele adresatów. Obs³u¿ono tylko %d
+ERR_NOORIGIN: :%s 409 %s :Nie podano zród³a
+ERR_NORECIPIENT: :%s 411 %s :Nie podano adresata (%s)
+ERR_NOTEXTTOSEND: :%s 412 %s :Brak tekstu do wys³ania
+ERR_NOTOPLEVEL: :%s 413 %s %s :Nie podano TLD
+ERR_WILDTOPLEVEL: :%s 414 %s %s :W TLD nie mo¿e byæ znaków maskujacych
+ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Nieznana komenda
+ERR_NOMOTD: :%s 422 %s :Brakuje pliku MOTD
+ERR_NOADMININFO: :%s 423 %s %s :Brak dostêpnych informacji administracyjnych
+ERR_NONICKNAMEGIVEN: :%s 431 %s :Nie podano nicka
+ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Nieprawid³owy nick
+ERR_NICKNAMEINUSE: :%s 433 %s %s :Nick jest zajêty.
+ERR_UNAVAILRESOURCE: :%s 437 %s %s :Nick/kana³ jest tymczasowo niedostêpny
+ERR_NICKTOOFAST: :%s 438 %s %s %s :Zbyt szybka zmiana nicka. Proszê odczekaæ %d sekund.
+ERR_SERVICESDOWN: :%s 440 %s :Serwisy sa obecnie niedostêpne
+ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :Nie ma takiego u¿ytkownika na tym kanale
+ERR_NOTONCHANNEL: :%s 442 %s %s :Nie jestes na tym kanale
+ERR_USERONCHANNEL: :%s 443 %s %s %s :jest ju¿ na kanale
+ERR_NOTREGISTERED: :%s 451 %s :Twoje po³aczenie nie jest jeszcze zarejestrowane
+ERR_ACCEPTFULL: :%s 456 %s :Lista ACCEPT jest przepe³niona
+ERR_ACCEPTEXIST: :%s 457 %s %s :jest ju¿ na Twojej liscie ACCEPT
+ERR_ACCEPTNOT: :%s 458 %s %s :nie jest na Twojej liscie ACCEPT
+ERR_NEEDMOREPARAMS: :%s 461 %s %s :Za ma³o parametrów
+ERR_ALREADYREGISTRED: :%s 462 %s :Nie mo¿esz zarejestrowaæ siê ponownie
+ERR_PASSWDMISMATCH: :%s 464 %s :Nieprawid³owe has³o
+ERR_CHANNELISFULL: :%s 471 %s %s :Nie mo¿na wejsc na kana³ (+l)
+ERR_UNKNOWNMODE: :%s 472 %s %c :to dla mnie nieznany tryb
+ERR_INVITEONLYCHAN: :%s 473 %s %s :Nie mo¿na wejsc na kana³ (+i)
+ERR_BANNEDFROMCHAN: :%s 474 %s %s :Nie mo¿na wejsc na kana³ (+b)
+ERR_BADCHANNELKEY: :%s 475 %s %s :Nie mo¿na wejsc na kana³ (+k)
+ERR_BANLISTFULL: :%s 478 %s %s %s :Lista banów kana³owych jest przepe³niona
+ERR_BADCHANNAME: :%s 479 %s %s :Niedopuszczalna nazwa kana³u
+ERR_NOPRIVILEGES: :%s 481 %s :Brak uprawnieñ - nie jestes IRC Operatorem
+ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Nie jestes operatorem kana³u
+ERR_RESTRICTED: :%s 484 %s :Twoje po³aczenie jest objête restrykcja
+ERR_NOOPERHOST: :%s 491 %s :Tylko nieliczni smiertelnicy moga uzyskaæ prawa IRC Operatora
+ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Nieznana flaga MODE
+ERR_USERSDONTMATCH: :%s 502 %s :Nie mo¿esz zmieniaæ trybów innych u¿ytkowników
+ERR_GHOSTEDCLIENT: :%s 503 %s :Wiadomosc dla %s nie mo¿e byæ dostarczona
+ERR_USERNOTONSERV: :%s 504 %s %s :U¿ytkownik nie korzysta z tego serwera
+ERR_WRONGPONG: :%s 513 %s :Aby siê po³aczyæ, wpisz /QUOTE PONG %lu
+ERR_LISTSYNTAX: :%s 521 %s :Z³a sk³adnia dla LIST, wpisz /QUOTE HELP LIST
+ERR_HELPNOTFOUND: :%s 524 %s %s :Nie odnaleziono pomocy
+RPL_WHOISSECURE: :%s 671 %s %s :u¿ywa SSL (bezpiecznego po³aczenia)
+RPL_ENDOFHELP: :%s 706 %s %s :Koniec /HELP.
+RPL_KNOCK: :%s 710 %s %s %s!%s@%s :prosi o zaproszenie.
+RPL_KNOCKDLVR: :%s 711 %s %s :Twój KNOCK zosta³ dostarczony.
+ERR_TOOMANYKNOCK: :%s 712 %s %s :Zbyt wiele KNOCK (%s).
+ERR_CHANOPEN: :%s 713 %s %s :Kana³ jest otwarty.
+ERR_KNOCKONCHAN: :%s 714 %s %s :Jestes ju¿ na tym kanale.
+RPL_TARGUMODEG: :%s 716 %s %s :jest w trybie +g (server side ignore)
+RPL_TARGNOTIFY: :%s 717 %s %s :U¿ytkownik zosta³ poinformowany, ¿e do niego pisano.
+RPL_UMODEGMSG: :%s 718 %s %s :pisze do Ciebie, ale jestes w trybie +g.
+ERR_NOPRIVS: :%s 723 %s %s :Za ma³e uprawnienia operatora.
+RPL_TESTMASK: :%s 724 %s %s!%s@%s %u %u :Lokalnych/zdalnych pasujacych klientów.
+RPL_NOTESTLINE: :%s 726 %s %s :Brak pasujacych
diff --git a/messages/ircd-romanian.lang b/messages/ircd-romanian.lang
new file mode 100644
index 0000000..682a621
--- /dev/null
+++ b/messages/ircd-romanian.lang
@@ -0,0 +1,126 @@
+; ircd-hybrid-7 standard message file - for Romanian
+; Copyright (C) 2007 Bogdan Mintoi <bogdomania@yahoo.com>
+; $Id$
+;
+
+RPL_WELCOME: :%s 001 %s :Bine ai venit pe reteaua ValceaNet %s
+RPL_YOURHOST: :%s 002 %s :Gazda ta este %s, ruland versiunea %s
+RPL_CREATED: :%s 003 %s :Acest server a fost creat la data/ora %s
+RPL_ISUPPORT: :%s 005 %s %s :sunt suportate de acest server
+RPL_REDIR: :%s 010 %s %s %d :Foloseste acest Server/Port in schimb
+RPL_MAPEND: :%s 017 %s :Sfarsitul /MAP
+RPL_YOURID: :%s 042 %s %s :ID tau unic
+RPL_TRACELINK: :%s 200 %s Link %s %s %s
+RPL_TRACECONNECTING: :%s 201 %s Try. %s %s
+RPL_TRACEHANDSHAKE: :%s 202 %s H.S. %s %s
+RPL_TRACEUNKNOWN: :%s 203 %s ???? %s %s (%s) %d
+RPL_TRACEOPERATOR: :%s 204 %s Oper %s %s (%s) %lu %lu
+RPL_TRACEUSER: :%s 205 %s User %s %s (%s) %lu %lu
+RPL_TRACESERVER: :%s 206 %s Serv %s %dS %dC %s %s!%s@%s %lu
+RPL_TRACENEWTYPE: :%s 208 %s <noultip> 0 %s
+RPL_TRACECLASS: :%s 209 %s Clasa %s %d
+RPL_ENDOFSTATS: :%s 219 %s %c :Sfarsitul /STATS report
+RPL_STATSUPTIME: :%s 242 %s :Server Up %d days, %d:%02d:%02d
+RPL_STATSCONN: :%s 250 %s :Numarul maxim de conexiuni: %d (%d clienti) (%llu conexiuni primite)
+RPL_LUSERCLIENT: :%s 251 %s :Exista %d utilizatori si %d invizibili pe %d servere
+RPL_LUSEROP: :%s 252 %s %d :IRC Operatori prezenti
+RPL_LUSERUNKNOWN: :%s 253 %s %d :conexiuni necunoscute
+RPL_LUSERCHANNELS: :%s 254 %s %d :canale formate
+RPL_LUSERME: :%s 255 %s :Exista %d clienti si %d servere
+RPL_ADMINME: :%s 256 %s :Informatii administrative despre %s
+RPL_ENDOFTRACE: :%s 262 %s %s :Sfarsitul TRACE
+RPL_LOAD2HI: :%s 263 %s :Serverul este momentan prea incarcat. Reancearca mai tarziu.
+RPL_LOCALUSERS: :%s 265 %s :Utilizatori locali actuali: %d Max: %d
+RPL_GLOBALUSERS: :%s 266 %s :Utilizatori globali actuali: %d Max: %d
+RPL_ENDOFACCEPT: :%s 282 %s :Sfarsitul listei /ACCEPT
+RPL_UNAWAY: :%s 305 %s :Nu mai esti marcat(a) ca fiind away.
+RPL_NOWAWAY: :%s 306 %s :Esti marcat(a) ca fiind away.
+RPL_WHOISADMIN: :%s 313 %s %s :este un Administrator de Server
+RPL_WHOISOPERATOR: :%s 313 %s %s :este un IRC Operator
+RPL_ENDOFWHO: :%s 315 %s %s :Sfarsitul listei /WHO
+RPL_WHOISIDLE: :%s 317 %s %s %d %d :seconds idle
+RPL_ENDOFWHOIS: :%s 318 %s %s :Sfarsitul listei /WHOIS
+RPL_LISTSTART: :%s 321 %s Canal :Useri Nume
+RPL_LISTEND: :%s 323 %s :Sfarsitul /LIST
+RPL_NOTOPIC: :%s 331 %s %s :Nu este setat nici un topic.
+RPL_WHOISACTUALLY: :%s 338 %s %s %s :in prezent folosind host-ul
+RPL_ENDOFINVEXLIST: :%s 347 %s %s :Sfarsitul Liestei de Invite a Canalului
+RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Sfarsitul Listei de Exceptii a Canalului
+RPL_CLOSING: :%s 362 %s %s :Inchis. Status = %d
+RPL_CLOSEEND: :%s 363 %s %d: Conexiuni inchise
+RPL_ENDOFLINKS: :%s 365 %s %s :Sfarsitul listei /LINKS
+RPL_ENDOFNAMES: :%s 366 %s %s :Sfarsitul listei /NAMES
+RPL_ENDOFBANLIST: :%s 368 %s %s :Sfarsitul Listei de Ban-uri a Canalului
+RPL_ENDOFWHOWAS: :%s 369 %s %s :Sfarsitul WHOWAS
+RPL_INFOSTART: :%s 373 %s :Server INFO
+RPL_ENDOFINFO: :%s 374 %s :Sfarsitul listei /INFO
+RPL_MOTDSTART: :%s 375 %s :- %s Mesajul zilei -
+RPL_ENDOFMOTD: :%s 376 %s :Sfarsitul /MOTD
+RPL_YOUREOPER: :%s 381 %s :Moduri setate-esti un IRCop
+RPL_REHASHING: :%s 382 %s %s :Se executa comanda Rehash
+RPL_HOSTHIDDEN: :%s 396 %s :este acum noul tau host
+ERR_NOSUCHNICK: :%s 401 %s %s :Nu exista acel nick sau canal
+ERR_NOSUCHSERVER: :%s 402 %s %s :Nu exista acel server
+ERR_NOSUCHCHANNEL: :%s 403 %s %s :Nu exista acel canal
+ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Nu poti trimite pe canal
+ERR_TOOMANYCHANNELS: :%s 405 %s %s :Te-ai alaturat prea multor canale
+ERR_WASNOSUCHNICK: :%s 406 %s %s :Nu a existat un asemenea nickname
+ERR_TOOMANYTARGETS: :%s 407 %s %s :Prea multe recipiente date. Doar %d procesate
+ERR_NOORIGIN: :%s 409 %s :Nu a fost specificata nici o origine
+ERR_NORECIPIENT: :%s 411 %s :Nu a fost specificat nici un recipient (%s)
+ERR_NOTEXTTOSEND: :%s 412 %s :Nu exista text de trimis
+ERR_NOTOPLEVEL: :%s 413 %s %s :Nici un domeniu TopLevel specificat
+ERR_WILDTOPLEVEL: :%s 414 %s %s :Wildcard in Domeniul TopLevel
+ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Comanda nerecunoscuta
+ERR_NOMOTD: :%s 422 %s :Fisierul MOTD lipseste sau nu este activat
+ERR_NOADMININFO: :%s 423 %s %s :Nu este disponibila nici o informatie administrativa
+ERR_NONICKNAMEGIVEN: :%s 431 %s :Nici un nickname specificat
+ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Nickname gresit
+ERR_NICKNAMEINUSE: :%s 433 %s %s :Nickname ales este deja folosit.Alege un alt nickname.
+ERR_NICKCOLLISION: :%s 436 %s %s :Coliziune de nickname - KILL
+ERR_UNAVAILRESOURCE: :%s 437 %s %s :Nickul sau canalul specificat este indisponibil temporar
+ERR_NICKTOOFAST: :%s 438 %s %s %s :Incercare de a schimba nick-ul prea rapida. Asteapta %d secunde.
+ERR_SERVICESDOWN: :%s 440 %s :Serviciile sunt dezactivate temporar.
+ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :Nu se afla pe acel canal
+ERR_NOTONCHANNEL: :%s 442 %s %s :Nu te afli pe acel canal
+ERR_USERONCHANNEL: :%s 443 %s %s %s :este deja pe canal
+ERR_NOTREGISTERED: :%s 451 %s :Nu esti autentificat(a)
+ERR_ACCEPTFULL: :%s 456 %s :Lista de accepturi este plina
+ERR_ACCEPTEXIST: :%s 457 %s %s :se afla deja in lista ta de accepturi
+ERR_ACCEPTNOT: :%s 458 %s %s :nu se afla in lista ta de accepturi
+ERR_NEEDMOREPARAMS: :%s 461 %s %s :Parametri insuficienti
+ERR_ALREADYREGISTRED: :%s 462 %s :Esti deja autentificat(a)
+ERR_PASSWDMISMATCH: :%s 464 %s :Parola incorecta
+ERR_YOUREBANNEDCREEP: :%s 465 %s :Esti momentan banat(a) pe acest server- %s
+ERR_CHANNELISFULL: :%s 471 %s %s :Nu poti intra pe canal (+l)
+ERR_UNKNOWNMODE: :%s 472 %s %c :este un caracter nerecunoscut de sistem
+ERR_INVITEONLYCHAN: :%s 473 %s %s :Nu poti intra pe canal (+i)
+ERR_BANNEDFROMCHAN: :%s 474 %s %s :Nu poti intra pe canal (+b)
+ERR_BADCHANNELKEY: :%s 475 %s %s :Nu poti intra pe canal (+k)
+ERR_BANLISTFULL: :%s 478 %s %s %s :Lista de banuri a canalului este plina
+ERR_BADCHANNAME: :%s 479 %s %s :Nume de canal ilegal
+ERR_NOPRIVILEGES: :%s 481 %s :Imposibil de executat - Nu esti un IRCop
+ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Nu esti un operator de canal
+ERR_CANTKILLSERVER: :%s 483 %s :Nu poti efectua kill unui server!
+ERR_RESTRICTED: :%s 484 %s :parametri limitati pentru host-ul tau
+ERR_NOOPERHOST: :%s 491 %s :Incercare de autentificare ca IRCop esuata.
+ERR_UMODEUNKNOWNFLAG: :%s 501 %s :MODE necunoscut
+ERR_USERSDONTMATCH: :%s 502 %s :Nu se pot modifica modurile pentru alti utilizatori
+ERR_GHOSTEDCLIENT: :%s 503 %s :Mesajul nu a fost trimis catre %s
+ERR_USERNOTONSERV: :%s 504 %s %s :Userul nu se afla pe acest server
+ERR_WRONGPONG: :%s 513 %s :Pentru a te conecta tasteaza /QUOTE PONG %lu
+ERR_LISTSYNTAX: :%s 521 %s :Sintaxa eronata
+ERR_HELPNOTFOUND: :%s 524 %s %s :Help- nu a fost gasit
+RPL_WHOISSECURE: :%s 671 %s %s :este conectat prin SSL (conexiune securizata)
+RPL_ENDOFMODLIST: :%s 703 %s :Sfarsitul /MODLIST.
+RPL_ENDOFHELP: :%s 706 %s %s :Sfarsitul /HELP.
+RPL_KNOCK: :%s 710 %s %s %s!%s@%s :a cerut invite.
+RPL_KNOCKDLVR: :%s 711 %s %s :KNOCK-ul tau a fost livrat.
+ERR_TOOMANYKNOCK: :%s 712 %s %s :Prea multe KNOCK (%s).
+ERR_CHANOPEN: :%s 713 %s %s :Canalul este deschis.
+ERR_KNOCKONCHAN: :%s 714 %s %s :Te afli deja pe acel canal.
+RPL_TARGUMODEG: :%s 716 %s %s :se afla in modul +g (server side ignore)
+RPL_TARGNOTIFY: :%s 717 %s %s :has been informed that you messaged them.
+RPL_UMODEGMSG: :%s 718 %s %s :iti trimite mesaj,si tu ai setat umode +g.
+ERR_NOPRIVS: :%s 723 %s %s :privilegii de operator insuficiente.
+RPL_NOTESTLINE: :%s 726 %s %s :Nu exista potriviri
diff --git a/messages/ircd-russian.lang b/messages/ircd-russian.lang
new file mode 100644
index 0000000..dbbbb5c
--- /dev/null
+++ b/messages/ircd-russian.lang
@@ -0,0 +1,93 @@
+; ircd-hybrid-7 custom message file
+; Copyright (C) 2003
+; Ilya Shtift <ishtift@tagil.svrw.ru>, 2003.
+; $Id$
+
+RPL_WELCOME: :%s 001 %s :Äîáðî ïîæàëîâàòü â %s Internet Relay Chat Network %s
+RPL_YOURHOST: :%s 002 %s :Âàø ñåðâåð %s, âåðñèÿ %s
+RPL_CREATED: :%s 003 %s :Ýòîò ñåðâåð áûë ñîçäàí %s
+RPL_ISUPPORT: :%s 005 %s %s :ïîääåðæèâàåòñÿ ýòèì ñåðâåðîì
+RPL_REDIR: :%s 010 %s %s %d :Ïîæàëóéñòà èñïîëüçóéòå ýòîò ñåðâåð/ïîðò
+RPL_MAPEND: :%s 017 %s :Çàâåðøåíèå /MAP
+RPL_ENDOFSTATS: :%s 219 %s %c :Çàâåðøåíèå âûâîäà îò÷åòà /STATS
+RPL_STATSUPTIME: :%s 242 %s :Ñåðâåð ðàáîòàåò %d äíåé, %d:%02d:%02d
+RPL_STATSCONN: :%s 250 %s :Íàèáîëüøåå êîëè÷åñòâî ñîåäèíåíèé: %d (%d êëèåíòîâ) (%llu âõîäÿùèõ ñîåäèíåíèé)
+RPL_LUSERCLIENT: :%s 251 %s :Çäåñü %d ïîëüçîâàòåëåé è %d íåâèäèìûõ íà %d ñåðâåðàõ
+RPL_LUSEROP: :%s 252 %s %d :IRC Îïåðàòîðîâ â íàøåé ñåòè
+RPL_LUSERUNKNOWN: :%s 253 %s %d :íåèçâåñòíûõ ñîåäèíåíèé
+RPL_LUSERCHANNELS: :%s 254 %s %d :ñôîðìèðîâàíî êàíàëîâ
+RPL_LUSERME: :%s 255 %s :Ê ñåðâåðó ïîäêëþ÷åííî %d êëèåíòîâ è %d ñåðâåðîâ
+RPL_ADMINME: :%s 256 %s :Èíôîðìàöèÿ îá àäìèíèñòðàòîðå %s
+RPL_ENDOFTRACE: :%s 262 %s %s :Çàâåðøåíèå TRACE
+RPL_LOAD2HI: :%s 263 %s :Ñåðâåð âðåìåííî ïåðåãðóæåí. Ïîïðîáóéòå ïîâòîðèòü ïîïûòêó åùå ðàç íåìíîãî ïîçæå.
+RPL_LOCALUSERS: :%s 265 %s :Òåêóùèå êîëè÷åñòâî ëîêàëüíûõ ïîëüçîâàòåëåé: %d Ìàêñèìàëüíîå: %d
+RPL_GLOBALUSERS: :%s 266 %s :Òåêóùèå êîëè÷åñòâî ãëîáàëüíûõ ïîëüçîâàòåëåé: %d Ìàêñèìàëüíîå: %d
+RPL_UNAWAY: :%s 305 %s :Òåïåðü Âû íå îòìå÷åíû êàê away
+RPL_NOWAWAY: :%s 306 %s :Òåïåðü Âû îòìå÷åíû êàê away
+RPL_ENDOFWHO: :%s 315 %s %s :Çàâåðøåíèå âûâîäà ñïèñêà /WHO
+RPL_WHOISIDLE: :%s 317 %s %s %d %d :ñåêóíä ìîë÷èò, âðåìÿ ïîäêëþ÷åíèÿ
+RPL_ENDOFWHOIS: :%s 318 %s %s :Çàâåðøåíèå âûâîäà ñïèñêà /WHOIS.
+RPL_LISTEND: :%s 323 %s :Çàâåðøåíèå âûâîäà /LIST
+RPL_NOTOPIC: :%s 331 %s %s :Òîïèê íå óñòàíîâëåí.
+RPL_ENDOFINVEXLIST: :%s 347 %s %s :Çàâåðøåíèå âûâîäà ñïèñêà Ïðèãëàøåíèÿ Êàíàëà
+RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Çàâåðøåíèå âûâîäà ñïèñêà Èñêëþ÷åíèÿ Êàíàëà
+RPL_CLOSING: :%s 362 %s %s :Çàêðûòî. Ñòàòóñ = %d
+RPL_CLOSEEND: :%s 363 %s %d :Ñîåäèíåíèÿ çàêðûòû
+RPL_ENDOFLINKS: :%s 365 %s %s :Çàâåðøåíèå âûâîäà ñïèñêà /LINKS.
+RPL_ENDOFNAMES: :%s 366 %s %s :Çàâåðøåíèå âûâîäà ñïèñêà /NAMES.
+RPL_ENDOFBANLIST: :%s 368 %s %s :Çàâåðøåíèå âûâîäà ñïèñêà Áàíîâ Êàíàëà
+RPL_ENDOFWHOWAS: :%s 369 %s %s :Çàâåðøåíèå âûâîäà WHOWAS
+RPL_ENDOFINFO: :%s 374 %s :Çàâåðøåíèå âûâîäà ñïèñêà /INFO
+RPL_MOTDSTART: :%s 375 %s :- %s Ñîîáùåíèå äíÿ -
+RPL_ENDOFMOTD: :%s 376 %s :Çàâåðøåíèå âûâîäà êîìàíäû /MOTD.
+RPL_REHASHING: :%s 382 %s %s :Ïåðå÷èòûâàåòñÿ ôàéë êîíôèãóðàöèè
+ERR_NOSUCHNICK: :%s 401 %s %s :Íèê/êàíàë íå íàéäåí
+ERR_NOSUCHSERVER: :%s 402 %s %s :Ñåðâåð íå íàéäåí
+ERR_NOSUCHCHANNEL: :%s 403 %s %s :Êàíàë íå íàéäåí
+ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Íåâîçìîæíî ïåðåäàòü íà êàíàë
+ERR_TOOMANYCHANNELS: :%s 405 %s %s :Âû óæå çàøëè íà ìàêñèìàëüíî âîçìîæíîå êîëè÷åñòâî êàíàëîâ
+ERR_WASNOSUCHNICK: :%s 406 %s %s :Çäåñü íå íàõîäèëñÿ ýòîò íèê
+ERR_NOORIGIN: :%s 409 %s :Èñòî÷íèê íå áûë îïåðåäåëåí
+ERR_NOTEXTTOSEND: :%s 412 %s :Âû íå óêàçàëè òåêñò äëÿ îòïðàâêè
+ERR_NOTOPLEVEL: :%s 413 %s %s :Íå óêàçàí äîìåí âåðõíåãî óðîâíÿ
+ERR_WILDTOPLEVEL: :%s 414 %s %s :Wildcard ñèìâîë â äîìåíå âåðõíåãî óðîâíÿ
+ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Íåèçâåñòíàÿ êîìàíäà
+ERR_NOMOTD: :%s 422 %s :Ôàéë MOTD íå íàéäåí
+ERR_NOADMININFO: :%s 423 %s %s :Èíôîðìàöèÿ îá àäìèíèñòðàòîðå íå äîñòóïíà
+ERR_NONICKNAMEGIVEN: :%s 431 %s :Âû íå óêàçàëè íèê
+ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Íåâåðíûé íèê
+ERR_NICKNAMEINUSE: :%s 433 %s %s :Ýòîò íèê óæå èñïîëüçóåòñÿ.
+ERR_NICKCOLLISION: :%s 436 %s %s :Êîëëèçèÿ íèêà KILL
+ERR_UNAVAILRESOURCE: :%s 437 %s %s :Íèê/êàíàë âðåìåííî íåäîñòóïåí
+ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :Îí íå íàõîäèòñÿ íà ýòîì êàíàëå
+ERR_NOTONCHANNEL: :%s 442 %s %s :Âû íå íàõîäèòåñü íà ýòîì êàíàëå
+ERR_USERONCHANNEL: :%s 443 %s %s %s :âû óæå íàõîäèòåñü íà êàíàëå
+ERR_NOTREGISTERED: :%s 451 %s :Âû íå çàðåãèñòðèðîâàëèñü
+ERR_NEEDMOREPARAMS: :%s 461 %s %s :Ñëèøêîì ìàëî ïàðàìåòðîâ
+ERR_ALREADYREGISTRED: :%s 462 %s :Âû íå ìîæåòå çàðåãèñòðèðîâàòñÿ
+ERR_PASSWDMISMATCH: :%s 464 %s :Íåâåðíûé ïàðîëü
+ERR_YOUREBANNEDCREEP: :%s 465 %s :Âû çàáàíåíû íà ýòîì ñåðâåðå- %s
+ERR_CHANNELISFULL: :%s 471 %s %s :Íåâîçìîæíî çàéòè íà êàíàë (+l)
+ERR_UNKNOWNMODE: :%s 472 %s %c :íåèçâåñòíûé ñèìâîë ðåæèìà
+ERR_INVITEONLYCHAN: :%s 473 %s %s :Íåâîçìîæíî çàéòè íà êàíàë (+i)
+ERR_BANNEDFROMCHAN: :%s 474 %s %s :Íåâîçìîæíî çàéòè íà êàíàë (+b)
+ERR_BADCHANNELKEY: :%s 475 %s %s :Íåâîçìîæíî çàéòè íà êàíàë (+k)
+ERR_BANLISTFULL: :%s 478 %s %s %s :Áàí ëèñò êàíàëà ïåðåïîëíåí
+ERR_BADCHANNAME: :%s 479 %s %s :Íåäîïóñòèìîå èìÿ êàíàëà
+ERR_NOPRIVILEGES: :%s 481 %s :Â äîñòóïå îòêàçàíî - Âû íå IRC Îïåðàòîð
+ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Âû íå îïåðàòîð êàíàëà
+ERR_CANTKILLSERVER: :%s 483 %s :Âû íå ìîæåòå óáèòü ñåðâåð!
+ERR_RESTRICTED: :%s 484 %s :Âû îãðàíè÷åíû
+ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Íåèçâåñòíûé MODE ôëàã
+ERR_USERSDONTMATCH: :%s 502 %s :Âû íå ìîæåòå èçìåíèòü ðåæèì äðóãîãî ïîëüçîâàòåëÿ
+ERR_GHOSTEDCLIENT: :%s 503 %s :Íåâîçìîæíî äîñòàâèòü ñîîáùåíèå äëÿ %s
+ERR_USERNOTONSERV: :%s 504 %s %s :Ïîëüçîâàòåëü íå íàõîäèòñÿ íà ýòîì ñåðâåðå
+ERR_WRONGPONG: :%s 513 %s :Äëÿ ñîåäèíåíèÿ ââåäèòå /QUOTE PONG %lu
+ERR_HELPNOTFOUND: :%s 524 %s %s :Ôàéë ïîìîùè íå íàéäåí
+RPL_ENDOFMODLIST: :%s 703 %s :Çàâåðøåíèå âûâîäà /MODLIST.
+RPL_ENDOFHELP :%s 706 %s %s :Çàâåðøåíèå âûâîäà /HELP.
+RPL_KNOCK: :%s 710 %s %s %s!%s@%s :îïîâåùåí î ïðèãëàøåíèè.
+RPL_KNOCKDLVR: :%s 711 %s %s :Âàø KNOCK áûë äîñòàâëåí.
+ERR_TOOMANYKNOCK: :%s 712 %s %s :Ñëèøêîì ìíîãî KNOCKs (%s).
+ERR_CHANOPEN: :%s 713 %s %s :Êàíàë îòêðûò.
+ERR_KNOCKONCHAN: :%s 714 %s %s :Âû óæå íàõîäèòåñü íà ýòîì êàíàëå.
diff --git a/messages/ircd-spanish.lang b/messages/ircd-spanish.lang
new file mode 100644
index 0000000..4faa99b
--- /dev/null
+++ b/messages/ircd-spanish.lang
@@ -0,0 +1,97 @@
+; SOME DESCRIPTIVE TITLE.
+; Copyright (C) YEAR Free Software Foundation, Inc.
+; FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+; $Id$
+
+RPL_WELCOME: :%s 001 %s :Bienvenido al %s Internet Relay Chat Network %s
+RPL_YOURHOST: :%s 002 %s :Estas en el servidor %s, corriendo la version %s
+RPL_CREATED: :%s 003 %s :Este servidor fue creado el %s
+RPL_ISUPPORT: :%s 005 %s %s :estan disponibles en servidor
+RPL_REDIR: :%s 010 %s %s %d :Porfavor usa este puerto del servidor/envez
+RPL_TRACELINK: :%s 200 %s Link %s %s %s
+RPL_TRACECONNECTING: :%s 201 %s Trata. %s %s
+RPL_TRACEHANDSHAKE: :%s 202 %s H.S. %s %s
+RPL_TRACEOPERATOR: :%s 204 %s Oper %s %s (%s) %lu %lu
+RPL_TRACEUSER: :%s 205 %s Usuario %s %s (%s) %lu %lu
+RPL_TRACESERVER: :%s 206 %s Serv %s %dS %dC %s %s!%s@%s %lu
+RPL_TRACENEWTYPE: :%s 208 %s <nuevotipo> 0 %s
+RPL_TRACECLASS: :%s 209 %s Clase %s %d
+RPL_ENDOFSTATS: :%s 219 %s %c :Fin del Reporte de /STATS
+RPL_STATSUPTIME: :%s 242 %s :Servidor Activo %d dias, %d:%02d:%02d
+RPL_STATSCONN: :%s 250 %s :Cuenta Maxima de Conexiones: %d (%d clientes) (%llu conexiones resivida)
+RPL_LUSERCLIENT: :%s 251 %s :Hay %d usuarios y %d son invisibles en %d servidores
+RPL_LUSEROP: :%s 252 %s %d :Operadores de IRC en linea
+RPL_LUSERUNKNOWN: :%s 253 %s %d :Conexion Desconosida(s)
+RPL_LUSERCHANNELS: :%s 254 %s %d :canales formados
+RPL_LUSERME: :%s 255 %s :Tengo %d clientes en %d servidor(es)
+RPL_ADMINME: :%s 256 %s :Informacion Administrativa de %s
+RPL_ENDOFTRACE: :%s 262 %s %s :Fin de TRACE
+RPL_LOAD2HI: :%s 263 %s :Servidor actualmente muy cargado. Porfavor espere un momento y trate otra vez.
+RPL_LOCALUSERS: :%s 265 %s :Usuarios locales actuales: %d Max: %d
+RPL_GLOBALUSERS: :%s 266 %s :Usuarios globales actuales: %d Max: %d
+RPL_UNAWAY: :%s 305 %s :Ahora ya no estas marcado como Ausente (away)
+RPL_NOWAWAY: :%s 306 %s :Ahora estas marcado como Ausente (away)
+RPL_ENDOFWHO: :%s 315 %s %s :Fin de la lista de /WHO
+RPL_WHOISIDLE: :%s 317 %s %s %d %d :seconds idle, tiempo de entrada
+RPL_ENDOFWHOIS: :%s 318 %s %s :Fin de la lista de /WHOIS
+RPL_LISTSTART: :%s 321 %s Canal :Nombre de Usuarios
+RPL_LISTEND: :%s 323 %s :Fin de /LIST
+RPL_NOTOPIC: :%s 331 %s %s :Topico no establecido.
+RPL_ENDOFINVEXLIST: :%s 347 %s %s :Fin de la lista de invitados del canal
+RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Fin de la lista de Excepciones del canal
+RPL_CLOSING: :%s 362 %s %s :Cerrado. Estado = %d
+RPL_CLOSEEND: :%s 363 %s %d: Conexiones Cerradas
+RPL_ENDOFLINKS: :%s 365 %s %s :Fin de la lista de /LINKS
+RPL_ENDOFNAMES: :%s 366 %s %s :Fin de la lista de /NAMES
+RPL_ENDOFBANLIST: :%s 368 %s %s :Fin de la lista de banned(s) del canal
+RPL_ENDOFWHOWAS: :%s 369 %s %s :Fin de WHOWAS
+RPL_INFOSTART: :%s 373 %s :INFO del Servidor
+RPL_ENDOFINFO: :%s 374 %s :Fin de la lista de /INFO
+RPL_MOTDSTART: :%s 375 %s :- %s Mensaje del dia -
+RPL_ENDOFMOTD: :%s 376 %s :Fin del comando de /MOTD
+RPL_YOUREOPER: :%s 381 %s :Has entrado a... Twilight Zone!.
+RPL_REHASHING: :%s 382 %s %s :Actualizando
+ERR_NOSUCHNICK: :%s 401 %s %s :Ese nick/canal no existe
+ERR_NOSUCHSERVER: :%s 402 %s %s :Ese servidor no existe
+ERR_NOSUCHCHANNEL: :%s 403 %s %s :Ese canal no existe
+ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :No se pueden enviar mensajes al canal
+ERR_TOOMANYCHANNELS: :%s 405 %s %s :Has entrado a muchos canales
+ERR_WASNOSUCHNICK: :%s 406 %s %s :No habia nadie con ese nick
+ERR_TOOMANYTARGETS: :%s 407 %s %s :Too many recipients. Only %d processed
+ERR_NOORIGIN: :%s 409 %s :Origen no especificado
+ERR_NORECIPIENT: :%s 411 %s :No recipient given (%s)
+ERR_NOTEXTTOSEND: :%s 412 %s :No texto para enviar
+ERR_NOTOPLEVEL: :%s 413 %s %s :No toplevel domain specified
+ERR_WILDTOPLEVEL: :%s 414 %s %s :Wildcard in toplevel Domain
+ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Comando desconosido
+ERR_NOMOTD: :%s 422 %s :El Mensaje del dia MOTD no esta presente
+ERR_NOADMININFO: :%s 423 %s %s :Informacion administrativa no disponible
+ERR_NONICKNAMEGIVEN: :%s 431 %s :No nickname dado
+ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Nick Invalido/Erroneo
+ERR_NICKNAMEINUSE: :%s 433 %s %s :Nick actualmente en uso
+ERR_NICKCOLLISION: :%s 436 %s %s :Colision de nicks KILL
+ERR_UNAVAILRESOURCE: :%s 437 %s %s :Nick/Canal no esta disponible temporalmente
+ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :No estan en el canal
+ERR_NOTONCHANNEL: :%s 442 %s %s :Tu no estas en ese canal
+ERR_USERONCHANNEL: :%s 443 %s %s %s :Ya esta en el canal
+ERR_NOTREGISTERED: :%s 451 %s :No te has registrado
+ERR_NEEDMOREPARAMS: :%s 461 %s %s :Parametros insuficientes
+ERR_ALREADYREGISTRED: :%s 462 %s :No puedes ser registrado
+ERR_PASSWDMISMATCH: :%s 464 %s :Password Incorrecto
+ERR_YOUREBANNEDCREEP: :%s 465 %s :Tu estas banned de este servidor- %s
+ERR_CHANNELISFULL: :%s 471 %s %s :No puedes entrar al canal (+l)
+ERR_UNKNOWNMODE: :%s 472 %s %c :Es un mode desconosido para mi
+ERR_INVITEONLYCHAN: :%s 473 %s %s :No puedes entrar al canal (+i)
+ERR_BANNEDFROMCHAN: :%s 474 %s %s :No puedes entrar al canal (+b)
+ERR_BADCHANNELKEY: :%s 475 %s %s :No puedes entrar al canal (+k)
+ERR_BANLISTFULL: :%s 478 %s %s %s :La lista de ban en el canal esta llena
+ERR_BADCHANNAME: :%s 479 %s %s :El nombre del canal es Ilegal o invalido
+ERR_NOPRIVILEGES: :%s 481 %s :Permiso Negado - Tu no eres un Operador de IRC
+ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Tu no eres un operador del canal
+ERR_CANTKILLSERVER: :%s 483 %s :Tu no puedes matar un servidor!
+ERR_RESTRICTED: :%s 484 %s :Estas Restringido
+ERR_NOOPERHOST: :%s 491 %s :Solamente algunos mortales pueden tratar de entrar al mundo de.. twilight zone
+ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Flag MODE desconosida
+ERR_USERSDONTMATCH: :%s 502 %s :No puedes cambiar los modes de otros usuarios
+ERR_GHOSTEDCLIENT: :%s 503 %s :Mensaje no puede ser entregado a %s
+ERR_USERNOTONSERV: :%s 504 %s %s :Usuario no esta en este servidor
diff --git a/messages/ircd-standard.example.lang b/messages/ircd-standard.example.lang
new file mode 100644
index 0000000..9ec8833
--- /dev/null
+++ b/messages/ircd-standard.example.lang
@@ -0,0 +1,137 @@
+; ircd-hybrid-7 standard message file - for reference only
+; Copyright (C) 2003 Joshua Kwan <joshk@triplehelix.org>
+; $Id$
+
+; Use this file as a starting point for translating everything into the
+; language you need. This file contains all of the defined events in
+; messages.tab.
+
+; You will probably be able to leave out many of these, but in the
+; event that you need some, they're ALL here. Even the very mundane
+; ones - except where there is NULL.
+
+; Please replace my name with yours, the title with your language,
+; remove these lines, etc. when creating your own file.
+
+RPL_WELCOME: :%s 001 %s :Welcome to the %s Internet Relay Chat Network %s
+RPL_YOURHOST: :%s 002 %s :Your host is %s, running version %s
+RPL_CREATED: :%s 003 %s :This server was created %s
+RPL_ISUPPORT: :%s 005 %s %s :are supported by this server
+RPL_REDIR: :%s 010 %s %s %d :Please use this Server/Port instead
+RPL_MAPEND: :%s 017 %s :End of /MAP
+RPL_YOURID: :%s 042 %s %s :your unique ID
+RPL_TRACELINK: :%s 200 %s Link %s %s %s
+RPL_TRACECONNECTING: :%s 201 %s Try. %s %s
+RPL_TRACEHANDSHAKE: :%s 202 %s H.S. %s %s
+RPL_TRACEUNKNOWN: :%s 203 %s ???? %s %s (%s) %d
+RPL_TRACEOPERATOR: :%s 204 %s Oper %s %s (%s) %lu %lu
+RPL_TRACEUSER: :%s 205 %s User %s %s (%s) %lu %lu
+RPL_TRACESERVER: :%s 206 %s Serv %s %dS %dC %s %s!%s@%s %lu
+RPL_TRACENEWTYPE: :%s 208 %s <newtype> 0 %s
+RPL_TRACECLASS: :%s 209 %s Class %s %d
+RPL_ENDOFSTATS: :%s 219 %s %c :End of /STATS report
+RPL_STATSUPTIME: :%s 242 %s :Server Up %d days, %d:%02d:%02d
+RPL_STATSCONN: :%s 250 %s :Highest connection count: %d (%d clients) (%llu connections received)
+RPL_LUSERCLIENT: :%s 251 %s :There are %d users and %d invisible on %d servers
+RPL_LUSEROP: :%s 252 %s %d :IRC Operators online
+RPL_LUSERUNKNOWN: :%s 253 %s %d :unknown connection(s)
+RPL_LUSERCHANNELS: :%s 254 %s %d :channels formed
+RPL_LUSERME: :%s 255 %s :I have %d clients and %d servers
+RPL_ADMINME: :%s 256 %s :Administrative info about %s
+RPL_ENDOFTRACE: :%s 262 %s %s :End of TRACE
+RPL_LOAD2HI: :%s 263 %s :Server load is temporarily too heavy. Please wait a while and try again.
+RPL_LOCALUSERS: :%s 265 %s :Current local users: %d Max: %d
+RPL_GLOBALUSERS: :%s 266 %s :Current global users: %d Max: %d
+RPL_ENDOFACCEPT: :%s 282 %s :End of /ACCEPT list.
+RPL_UNAWAY: :%s 305 %s :You are no longer marked as being away
+RPL_NOWAWAY: :%s 306 %s :You have been marked as being away
+RPL_WHOISADMIN: :%s 313 %s %s :is a Server Administrator
+RPL_WHOISOPERATOR: :%s 313 %s %s :is an IRC Operator
+RPL_ENDOFWHO: :%s 315 %s %s :End of /WHO list.
+RPL_WHOISIDLE: :%s 317 %s %s %d %d :seconds idle
+RPL_ENDOFWHOIS: :%s 318 %s %s :End of /WHOIS list.
+RPL_LISTSTART: :%s 321 %s Channel :Users Name
+RPL_LISTEND: :%s 323 %s :End of /LIST
+RPL_NOTOPIC: :%s 331 %s %s :No topic is set.
+RPL_WHOISACTUALLY: :%s 338 %s %s %s :actually using host
+RPL_ENDOFINVEXLIST: :%s 347 %s %s :End of Channel Invite List
+RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :End of Channel Exception List
+RPL_CLOSING: :%s 362 %s %s :Closed. Status = %d
+RPL_CLOSEEND: :%s 363 %s %d: Connections Closed
+RPL_ENDOFLINKS: :%s 365 %s %s :End of /LINKS list.
+RPL_ENDOFNAMES: :%s 366 %s %s :End of /NAMES list.
+RPL_ENDOFBANLIST: :%s 368 %s %s :End of Channel Ban List
+RPL_ENDOFWHOWAS: :%s 369 %s %s :End of WHOWAS
+RPL_INFOSTART: :%s 373 %s :Server INFO
+RPL_ENDOFINFO: :%s 374 %s :End of /INFO list.
+RPL_MOTDSTART: :%s 375 %s :- %s Message of the Day -
+RPL_ENDOFMOTD: :%s 376 %s :End of /MOTD command.
+RPL_YOUREOPER: :%s 381 %s :You have entered... the Twilight Zone!
+RPL_REHASHING: :%s 382 %s %s :Rehashing
+RPL_HOSTHIDDEN: :%s 396 %s :is now your hidden host
+ERR_NOSUCHNICK: :%s 401 %s %s :No such nick/channel
+ERR_NOSUCHSERVER: :%s 402 %s %s :No such server
+ERR_NOSUCHCHANNEL: :%s 403 %s %s :No such channel
+ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Cannot send to channel
+ERR_TOOMANYCHANNELS: :%s 405 %s %s :You have joined too many channels
+ERR_WASNOSUCHNICK: :%s 406 %s %s :There was no such nickname
+ERR_TOOMANYTARGETS: :%s 407 %s %s :Too many recipients. Only %d processed
+ERR_NOORIGIN: :%s 409 %s :No origin specified
+ERR_NORECIPIENT: :%s 411 %s :No recipient given (%s)
+ERR_NOTEXTTOSEND: :%s 412 %s :No text to send
+ERR_NOTOPLEVEL: :%s 413 %s %s :No toplevel domain specified
+ERR_WILDTOPLEVEL: :%s 414 %s %s :Wildcard in toplevel Domain
+ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Unknown command
+ERR_NOMOTD: :%s 422 %s :MOTD File is missing
+ERR_NOADMININFO: :%s 423 %s %s :No administrative info available
+ERR_NONICKNAMEGIVEN: :%s 431 %s :No nickname given
+ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Erroneous Nickname
+ERR_NICKNAMEINUSE: :%s 433 %s %s :Nickname is already in use.
+ERR_NICKCOLLISION: :%s 436 %s %s :Nickname collision KILL
+ERR_UNAVAILRESOURCE: :%s 437 %s %s :Nick/channel is temporarily unavailable
+ERR_NICKTOOFAST: :%s 438 %s %s %s :Nick change too fast. Please wait %d seconds.
+ERR_SERVICESDOWN: :%s 440 %s :Services is currently down.
+ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :They aren't on that channel
+ERR_NOTONCHANNEL: :%s 442 %s %s :You're not on that channel
+ERR_USERONCHANNEL: :%s 443 %s %s %s :is already on channel
+ERR_NOTREGISTERED: :%s 451 %s :You have not registered
+ERR_ACCEPTFULL: :%s 456 %s :Accept list is full
+ERR_ACCEPTEXIST: :%s 457 %s %s :is already on your accept list
+ERR_ACCEPTNOT: :%s 458 %s %s :is not on your accept list
+ERR_NEEDMOREPARAMS: :%s 461 %s %s :Not enough parameters
+ERR_ALREADYREGISTRED: :%s 462 %s :You may not reregister
+ERR_PASSWDMISMATCH: :%s 464 %s :Password Incorrect
+ERR_YOUREBANNEDCREEP: :%s 465 %s :You are banned from this server- %s
+ERR_CHANNELISFULL: :%s 471 %s %s :Cannot join channel (+l)
+ERR_UNKNOWNMODE: :%s 472 %s %c :is unknown mode char to me
+ERR_INVITEONLYCHAN: :%s 473 %s %s :Cannot join channel (+i)
+ERR_BANNEDFROMCHAN: :%s 474 %s %s :Cannot join channel (+b)
+ERR_BADCHANNELKEY: :%s 475 %s %s :Cannot join channel (+k)
+ERR_BANLISTFULL: :%s 478 %s %s %s :Channel ban list is full
+ERR_BADCHANNAME: :%s 479 %s %s :Illegal channel name
+ERR_NOPRIVILEGES: :%s 481 %s :Permission Denied - You're not an IRC operator
+ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :You're not channel operator
+ERR_CANTKILLSERVER: :%s 483 %s :You can't kill a server!
+ERR_RESTRICTED: :%s 484 %s :You are restricted
+ERR_NOOPERHOST: :%s 491 %s :Only few of mere mortals may try to enter the twilight zone
+ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Unknown MODE flag
+ERR_USERSDONTMATCH: :%s 502 %s :Can't change mode for other users
+ERR_GHOSTEDCLIENT: :%s 503 %s :Message could not be delivered to %s
+ERR_USERNOTONSERV: :%s 504 %s %s :User is not on this server
+ERR_WRONGPONG: :%s 513 %s :To connect type /QUOTE PONG %lu
+ERR_LISTSYNTAX: :%s 521 %s :Bad list syntax
+ERR_HELPNOTFOUND: :%s 524 %s %s :Help not found
+RPL_WHOISSECURE: :%s 671 %s %s :is connected via SSL (secure link)
+RPL_ENDOFMODLIST: :%s 703 %s :End of /MODLIST.
+RPL_ENDOFHELP: :%s 706 %s %s :End of /HELP.
+RPL_KNOCK: :%s 710 %s %s %s!%s@%s :has asked for an invite.
+RPL_KNOCKDLVR: :%s 711 %s %s :Your KNOCK has been delivered.
+ERR_TOOMANYKNOCK: :%s 712 %s %s :Too many KNOCKs (%s).
+ERR_CHANOPEN: :%s 713 %s %s :Channel is open.
+ERR_KNOCKONCHAN: :%s 714 %s %s :You are already on that channel.
+RPL_TARGUMODEG: :%s 716 %s %s :is in +g mode (server side ignore)
+RPL_TARGNOTIFY: :%s 717 %s %s :has been informed that you messaged them.
+RPL_UMODEGMSG: :%s 718 %s %s :is messaging you, and you are umode +g.
+ERR_NOPRIVS: :%s 723 %s %s :Insufficient oper privs.
+RPL_TESTMASK: :%s 724 %s %s!%s@%s %u %u :Local/remote clients match.
+RPL_NOTESTLINE: :%s 726 %s %s :No matches
diff --git a/messages/ircd-swedish.lang b/messages/ircd-swedish.lang
new file mode 100644
index 0000000..a4b522f
--- /dev/null
+++ b/messages/ircd-swedish.lang
@@ -0,0 +1,108 @@
+; ircd-hybrid-7 swedish message file
+; Copyright (C) 2000-2005
+; David Taylor <davidt@yadt.co.uk>, 2000.
+; Rickard Åberg <shelter@chatjunkies.org>, 2005.
+; $Id$
+
+RPL_WELCOME: :%s 001 %s :Välkommen till %s Internet Relay Chat Network %s
+RPL_YOURHOST: :%s 002 %s :Din värd är %s, som kör version %s
+RPL_CREATED: :%s 003 %s :Denna server skapades %s
+RPL_ISUPPORT: :%s 005 %s %s :stödjs av denna server
+RPL_REDIR: :%s 010 %s %s %d :Vänligen använd denna Server/Port i stället
+RPL_TRACECONNECTING: :%s 201 %s Försök. %s %s
+RPL_TRACEUSER: :%s 205 %s Användare %s %s (%s) %lu %lu
+RPL_TRACENEWTYPE: :%s 208 %s <nytyp> 0 %s
+RPL_TRACECLASS: :%s 209 %s Klass %s %d
+RPL_ENDOFSTATS: :%s 219 %s %c :Slut på /STATS rapport
+RPL_STATSUPTIME: :%s 242 %s :Server Upptid %d dagar, %d:%02d:%02d
+RPL_STATSCONN: :%s 250 %s :Högsta anslutning antal: %d (%d klienter) (%llu anslutningar mottagna)
+RPL_LUSERCLIENT: :%s 251 %s :Det finns %d användare och %d osynliga på %d servrar
+RPL_LUSEROP: :%s 252 %s %d :IRC Operatörer online
+RPL_LUSERUNKNOWN: :%s 253 %s %d :okänd(a) anslutning(ar)
+RPL_LUSERCHANNELS: :%s 254 %s %d :kanaler skapade
+RPL_LUSERME: :%s 255 %s :Jag har %d klienter och %d servrar
+RPL_ADMINME: :%s 256 %s :Administrativ info om %s
+RPL_ENDOFTRACE: :%s 262 %s %s :Slut på TRACE
+RPL_LOAD2HI: :%s 263 %s :Servern är för tillfället överbelastad. Vänligen vänta en stund och försök igen senare.
+RPL_LOCALUSERS: :%s 265 %s :Antal lokala användare: %d Max: %d
+RPL_GLOBALUSERS: :%s 266 %s :Antal globala användare: %d Max: %d
+RPL_UNAWAY: :%s 305 %s :Du är inte längre markerad som borta
+RPL_NOWAWAY: :%s 306 %s :Du har blivit markerad som borta
+RPL_ENDOFWHO: :%s 315 %s %s :Slut på /WHO lista.
+RPL_WHOISIDLE: :%s 317 %s %s %d %d :sekunder overksam, login tid
+RPL_ENDOFWHOIS: :%s 318 %s %s :Slut på /WHOIS lista.
+RPL_LISTSTART: :%s 321 %s Kanaler :Användare Namn
+RPL_LISTEND: :%s 323 %s :Slut på /LIST
+RPL_NOTOPIC: :%s 331 %s %s :Ingen topic är satt.
+RPL_ENDOFINVEXLIST: :%s 347 %s %s :Slut på Kanal Inbjudningslista
+RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Slut på Kanal Undantagslista
+RPL_CLOSING: :%s 362 %s %s :Stängd. Status = %d
+RPL_CLOSEEND: :%s 363 %s %d: Anslutningar Stängda
+RPL_ENDOFLINKS: :%s 365 %s %s :Slut på /LINKS lista.
+RPL_ENDOFNAMES: :%s 366 %s %s :Slut på /NAMES lista.
+RPL_ENDOFBANLIST: :%s 368 %s %s :Slut på Kanal Banlista
+RPL_ENDOFWHOWAS: :%s 369 %s %s :Slut på WHOWAS
+RPL_ENDOFINFO: :%s 374 %s :Slut på /INFO lista.
+RPL_MOTDSTART: :%s 375 %s :- %s Dagens Meddelande -
+RPL_ENDOFMOTD: :%s 376 %s :Slut på /MOTD.
+RPL_YOUREOPER: :%s 381 %s :Du är nu i... Skymmningstimmen!.
+RPL_REHASHING: :%s 382 %s %s :Laddar om
+ERR_NOSUCHNICK: :%s 401 %s %s :Ej existerande smeknamn/kanal
+ERR_NOSUCHSERVER: :%s 402 %s %s :Ej existerande server
+ERR_NOSUCHCHANNEL: :%s 403 %s %s :Ej existerande kanal
+ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Kan ej skicka till kanal
+ERR_TOOMANYCHANNELS: :%s 405 %s %s :Du befinner dig i för många kanaler
+ERR_WASNOSUCHNICK: :%s 406 %s %s :Det fanns inget sådant smeknamn
+ERR_TOOMANYTARGETS: :%s 407 %s %s :För många mottagare. Bara %d bearbetade
+ERR_NOORIGIN: :%s 409 %s :Ingen mottagare specificerad
+ERR_NORECIPIENT: :%s 411 %s :Ingen mottagare specificerad (%s)
+ERR_NOTEXTTOSEND: :%s 412 %s :Ingen text att skicka
+ERR_NOTOPLEVEL: :%s 413 %s %s :Ingen topp domän specificerad
+ERR_WILDTOPLEVEL: :%s 414 %s %s :Jokertecken i toppdomän
+ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Okänt kommando
+ERR_NOMOTD: :%s 422 %s :MOTD fil saknas
+ERR_NOADMININFO: :%s 423 %s %s :Ingen administrativ info tillgänglig
+ERR_NONICKNAMEGIVEN: :%s 431 %s :Inget smeknamn specificerat
+ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Felaktigt Smeknamn
+ERR_NICKNAMEINUSE: :%s 433 %s %s :Smeknamnet används redan.
+ERR_NICKCOLLISION: :%s 436 %s %s :Smeknamn kollision KILL
+ERR_UNAVAILRESOURCE: :%s 437 %s %s :Smeknamn/kanal är temporärt inte tillgänglig
+ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :De är inte i den kanalen
+ERR_NOTONCHANNEL: :%s 442 %s %s :Du är inte i den kanalen
+ERR_USERONCHANNEL: :%s 443 %s %s %s :är redan i kanalen
+ERR_NOTREGISTERED: :%s 451 %s :Du har inte registrerat dig
+ERR_NEEDMOREPARAMS: :%s 461 %s %s :Otillräckliga parametrar
+ERR_ALREADYREGISTRED: :%s 462 %s :Du får inte registrera dig
+ERR_PASSWDMISMATCH: :%s 464 %s :Felaktigt Lösenord
+ERR_YOUREBANNEDCREEP: :%s 465 %s :Du är bannad från denna server- %s
+ERR_CHANNELISFULL: :%s 471 %s %s :Kan inte öppna kanal (+l)
+ERR_UNKNOWNMODE: :%s 472 %s %c :är okänd mode parameter för mig
+ERR_INVITEONLYCHAN: :%s 473 %s %s :Kan ej öppna kanal (+i)
+ERR_BANNEDFROMCHAN: :%s 474 %s %s :Kan ej öppna kanal (+b)
+ERR_BADCHANNELKEY: :%s 475 %s %s :Kan ej öppna kanal (+k)
+ERR_BANLISTFULL: :%s 478 %s %s %s :Kanalens ban lista är full
+ERR_BADCHANNAME: :%s 479 %s %s :Felaktigt kanalnamn
+ERR_NOPRIVILEGES: :%s 481 %s :Tillträde förbjuden - Du är inte en IRC operatör
+ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Du är inte en operatör
+ERR_CANTKILLSERVER: :%s 483 %s :Man kan inte /KILL en server!
+ERR_NOOPERHOST: :%s 491 %s :Tyvärr, du har inte vad som krävs för att vara en Operatör här.
+ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Okänd MODE flagga
+ERR_USERSDONTMATCH: :%s 502 %s :Kan inte ändra mode for andra användare
+ERR_GHOSTEDCLIENT: :%s 503 %s :Meddelandet kunde inte levereras till %s
+ERR_USERNOTONSERV: :%s 504 %s %s :Användaren är inte på denna server
+ERR_WRONGPONG: :%s 513 %s :För att ansluta, skriv /QUOTE PONG %lu
+ERR_LISTSYNTAX: :%s 521 %s :Felaktig listning.
+ERR_HELPNOTFOUND: :%s 524 %s %s :Hjälp ej funnen.
+RPL_ENDOFMODLIST: :%s 703 %s :Slut på /MODLIST.
+RPL_ENDOFHELP: :%s 706 %s %s :Slut på /HELP.
+RPL_KNOCK: :%s 710 %s %s %s!%s@%s :har frågat efter inbjudan.
+RPL_KNOCKDLVR: :%s 711 %s %s :Din KNOCK har blivit skickad.
+ERR_TOOMANYKNOCK: :%s 712 %s %s :För många KNOCKs (%s).
+ERR_CHANOPEN: :%s 713 %s %s :Kanalen är öppen.
+ERR_KNOCKONCHAN: :%s 714 %s %s :Du är redan i den kanalen.
+RPL_TARGUMODEG: :%s 716 %s %s :är i +g läge (server-side ignorering)
+RPL_TARGNOTIFY: :%s 717 %s %s :har blivit informerad om att du skickat ett meddelande.
+RPL_UMODEGMSG: :%s 718 %s %s :skriver till dig, och du har umode +g aktiverat.
+ERR_NOPRIVS: :%s 723 %s %s :Otillräckliga oper privilegier.
+RPL_TESTMASK: :%s 724 %s %s!%s@%s %u %u :Lokal/fjärr klient matchar.
+RPL_NOTESTLINE: :%s 726 %s %s :Ingen match/träff.
diff --git a/modules/Makefile.am b/modules/Makefile.am
index 2b81b97..21eadb4 100644
--- a/modules/Makefile.am
+++ b/modules/Makefile.am
@@ -50,6 +50,8 @@ modules_LTLIBRARIES = m_accept.la \
m_svsmode.la \
m_svsnick.la \
m_tburst.la \
+ m_testline.la \
+ m_testmask.la \
m_time.la \
m_topic.la \
m_trace.la \
@@ -111,6 +113,8 @@ m_svinfo_la_LDFLAGS = $(MODULE_FLAGS)
m_svsmode_la_LDFLAGS = $(MODULE_FLAGS)
m_svsnick_la_LDFLAGS = $(MODULE_FLAGS)
m_tburst_la_LDFLAGS = $(MODULE_FLAGS)
+m_testline_la_LDFLAGS = $(MODULE_FLAGS)
+m_testmask_la_LDFLAGS = $(MODULE_FLAGS)
m_time_la_LDFLAGS = $(MODULE_FLAGS)
m_topic_la_LDFLAGS = $(MODULE_FLAGS)
m_trace_la_LDFLAGS = $(MODULE_FLAGS)
@@ -171,6 +175,8 @@ m_svinfo_la_SOURCES = m_svinfo.c
m_svsmode_la_SOURCES = m_svsmode.c
m_svsnick_la_SOURCES = m_svsnick.c
m_tburst_la_SOURCES = m_tburst.c
+m_testline_la_SOURCES = m_testline.c
+m_testmask_la_SOURCES = m_testmask.c
m_time_la_SOURCES = m_time.c
m_topic_la_SOURCES = m_topic.c
m_trace_la_SOURCES = m_trace.c
diff --git a/modules/Makefile.in b/modules/Makefile.in
index 93b1a14..43e7ec2 100644
--- a/modules/Makefile.in
+++ b/modules/Makefile.in
@@ -366,6 +366,18 @@ m_tburst_la_OBJECTS = $(am_m_tburst_la_OBJECTS)
m_tburst_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(m_tburst_la_LDFLAGS) $(LDFLAGS) -o $@
+m_testline_la_LIBADD =
+am_m_testline_la_OBJECTS = m_testline.lo
+m_testline_la_OBJECTS = $(am_m_testline_la_OBJECTS)
+m_testline_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(m_testline_la_LDFLAGS) $(LDFLAGS) -o $@
+m_testmask_la_LIBADD =
+am_m_testmask_la_OBJECTS = m_testmask.lo
+m_testmask_la_OBJECTS = $(am_m_testmask_la_OBJECTS)
+m_testmask_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(m_testmask_la_LDFLAGS) $(LDFLAGS) -o $@
m_time_la_LIBADD =
am_m_time_la_OBJECTS = m_time.lo
m_time_la_OBJECTS = $(am_m_time_la_OBJECTS)
@@ -505,7 +517,8 @@ SOURCES = $(m_accept_la_SOURCES) $(m_admin_la_SOURCES) \
$(m_services_la_SOURCES) $(m_set_la_SOURCES) \
$(m_stats_la_SOURCES) $(m_svinfo_la_SOURCES) \
$(m_svsmode_la_SOURCES) $(m_svsnick_la_SOURCES) \
- $(m_tburst_la_SOURCES) $(m_time_la_SOURCES) \
+ $(m_tburst_la_SOURCES) $(m_testline_la_SOURCES) \
+ $(m_testmask_la_SOURCES) $(m_time_la_SOURCES) \
$(m_topic_la_SOURCES) $(m_trace_la_SOURCES) \
$(m_user_la_SOURCES) $(m_userhost_la_SOURCES) \
$(m_users_la_SOURCES) $(m_version_la_SOURCES) \
@@ -534,7 +547,8 @@ DIST_SOURCES = $(m_accept_la_SOURCES) $(m_admin_la_SOURCES) \
$(m_services_la_SOURCES) $(m_set_la_SOURCES) \
$(m_stats_la_SOURCES) $(m_svinfo_la_SOURCES) \
$(m_svsmode_la_SOURCES) $(m_svsnick_la_SOURCES) \
- $(m_tburst_la_SOURCES) $(m_time_la_SOURCES) \
+ $(m_tburst_la_SOURCES) $(m_testline_la_SOURCES) \
+ $(m_testmask_la_SOURCES) $(m_time_la_SOURCES) \
$(m_topic_la_SOURCES) $(m_trace_la_SOURCES) \
$(m_user_la_SOURCES) $(m_userhost_la_SOURCES) \
$(m_users_la_SOURCES) $(m_version_la_SOURCES) \
@@ -800,6 +814,8 @@ modules_LTLIBRARIES = m_accept.la \
m_svsmode.la \
m_svsnick.la \
m_tburst.la \
+ m_testline.la \
+ m_testmask.la \
m_time.la \
m_topic.la \
m_trace.la \
@@ -860,6 +876,8 @@ m_svinfo_la_LDFLAGS = $(MODULE_FLAGS)
m_svsmode_la_LDFLAGS = $(MODULE_FLAGS)
m_svsnick_la_LDFLAGS = $(MODULE_FLAGS)
m_tburst_la_LDFLAGS = $(MODULE_FLAGS)
+m_testline_la_LDFLAGS = $(MODULE_FLAGS)
+m_testmask_la_LDFLAGS = $(MODULE_FLAGS)
m_time_la_LDFLAGS = $(MODULE_FLAGS)
m_topic_la_LDFLAGS = $(MODULE_FLAGS)
m_trace_la_LDFLAGS = $(MODULE_FLAGS)
@@ -919,6 +937,8 @@ m_svinfo_la_SOURCES = m_svinfo.c
m_svsmode_la_SOURCES = m_svsmode.c
m_svsnick_la_SOURCES = m_svsnick.c
m_tburst_la_SOURCES = m_tburst.c
+m_testline_la_SOURCES = m_testline.c
+m_testmask_la_SOURCES = m_testmask.c
m_time_la_SOURCES = m_time.c
m_topic_la_SOURCES = m_topic.c
m_trace_la_SOURCES = m_trace.c
@@ -1092,6 +1112,10 @@ m_svsnick.la: $(m_svsnick_la_OBJECTS) $(m_svsnick_la_DEPENDENCIES) $(EXTRA_m_svs
$(AM_V_CCLD)$(m_svsnick_la_LINK) -rpath $(modulesdir) $(m_svsnick_la_OBJECTS) $(m_svsnick_la_LIBADD) $(LIBS)
m_tburst.la: $(m_tburst_la_OBJECTS) $(m_tburst_la_DEPENDENCIES) $(EXTRA_m_tburst_la_DEPENDENCIES)
$(AM_V_CCLD)$(m_tburst_la_LINK) -rpath $(modulesdir) $(m_tburst_la_OBJECTS) $(m_tburst_la_LIBADD) $(LIBS)
+m_testline.la: $(m_testline_la_OBJECTS) $(m_testline_la_DEPENDENCIES) $(EXTRA_m_testline_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(m_testline_la_LINK) -rpath $(modulesdir) $(m_testline_la_OBJECTS) $(m_testline_la_LIBADD) $(LIBS)
+m_testmask.la: $(m_testmask_la_OBJECTS) $(m_testmask_la_DEPENDENCIES) $(EXTRA_m_testmask_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(m_testmask_la_LINK) -rpath $(modulesdir) $(m_testmask_la_OBJECTS) $(m_testmask_la_LIBADD) $(LIBS)
m_time.la: $(m_time_la_OBJECTS) $(m_time_la_DEPENDENCIES) $(EXTRA_m_time_la_DEPENDENCIES)
$(AM_V_CCLD)$(m_time_la_LINK) -rpath $(modulesdir) $(m_time_la_OBJECTS) $(m_time_la_LIBADD) $(LIBS)
m_topic.la: $(m_topic_la_OBJECTS) $(m_topic_la_DEPENDENCIES) $(EXTRA_m_topic_la_DEPENDENCIES)
@@ -1172,6 +1196,8 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_svsmode.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_svsnick.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_tburst.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_testline.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_testmask.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_time.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_topic.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_trace.Plo@am__quote@
diff --git a/modules/core/m_die.c b/modules/core/m_die.c
index 7c466dc..b47c92c 100644
--- a/modules/core/m_die.c
+++ b/modules/core/m_die.c
@@ -45,7 +45,7 @@ mo_die(struct Client *client_p, struct Client *source_p,
if (!HasOFlag(source_p, OPER_FLAG_DIE))
{
- sendto_one(source_p, ERR_NOPRIVS,
+ sendto_one(source_p, form_str(ERR_NOPRIVS),
me.name, source_p->name, "die");
return;
}
diff --git a/modules/core/m_join.c b/modules/core/m_join.c
index 730385f..c5b21e4 100644
--- a/modules/core/m_join.c
+++ b/modules/core/m_join.c
@@ -96,7 +96,6 @@ m_join(struct Client *client_p, struct Client *source_p,
char *key_list = NULL;
char *chan_list = NULL;
char *chan = NULL;
- const char *s = NULL;
struct Channel *chptr = NULL;
struct MaskItem *conf = NULL;
int i = 0;
@@ -104,7 +103,7 @@ m_join(struct Client *client_p, struct Client *source_p,
if (EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
me.name, source_p->name, "JOIN");
return;
}
@@ -129,7 +128,7 @@ m_join(struct Client *client_p, struct Client *source_p,
if (!check_channel_name(chan, 1))
{
- sendto_one(source_p, ERR_BADCHANNAME,
+ sendto_one(source_p, form_str(ERR_BADCHANNAME),
me.name, source_p->name, chan);
continue;
}
@@ -140,7 +139,7 @@ m_join(struct Client *client_p, struct Client *source_p,
{
if (conf)
++conf->count;
- sendto_one(source_p, ERR_BADCHANNAME,
+ sendto_one(source_p, form_str(ERR_BADCHANNAME),
me.name, source_p->name, chan);
sendto_realops_flags(UMODE_SPY, L_ALL, SEND_NOTICE,
"Forbidding reserved channel [%s] from user %s",
@@ -153,7 +152,7 @@ m_join(struct Client *client_p, struct Client *source_p,
ConfigChannel.max_chans_per_oper :
ConfigChannel.max_chans_per_user))
{
- sendto_one(source_p, ERR_TOOMANYCHANNELS,
+ sendto_one(source_p, form_str(ERR_TOOMANYCHANNELS),
me.name, source_p->name, chan);
break;
}
@@ -166,7 +165,7 @@ m_join(struct Client *client_p, struct Client *source_p,
if (splitmode && !HasUMode(source_p, UMODE_OPER) &&
ConfigChannel.no_join_on_split)
{
- sendto_one(source_p, ERR_UNAVAILRESOURCE,
+ sendto_one(source_p, form_str(ERR_UNAVAILRESOURCE),
me.name, source_p->name, chan);
continue;
}
@@ -174,9 +173,9 @@ m_join(struct Client *client_p, struct Client *source_p,
/*
* can_join checks for +i key, bans.
*/
- if ((s = can_join(source_p, chptr, key)))
+ if ((i = can_join(source_p, chptr, key)))
{
- sendto_one(source_p, s, me.name,
+ sendto_one(source_p, form_str(i), me.name,
source_p->name, chptr->chname);
continue;
}
@@ -195,7 +194,7 @@ m_join(struct Client *client_p, struct Client *source_p,
if (splitmode && !HasUMode(source_p, UMODE_OPER) &&
(ConfigChannel.no_create_on_split || ConfigChannel.no_join_on_split))
{
- sendto_one(source_p, ERR_UNAVAILRESOURCE,
+ sendto_one(source_p, form_str(ERR_UNAVAILRESOURCE),
me.name, source_p->name, chan);
continue;
}
@@ -266,10 +265,10 @@ m_join(struct Client *client_p, struct Client *source_p,
if (chptr->topic[0])
{
- sendto_one(source_p, RPL_TOPIC, me.name,
+ sendto_one(source_p, form_str(RPL_TOPIC), me.name,
source_p->name, chptr->chname, chptr->topic);
- sendto_one(source_p, RPL_TOPICWHOTIME,
+ sendto_one(source_p, form_str(RPL_TOPICWHOTIME),
me.name, source_p->name, chptr->chname,
chptr->topic_info, chptr->topic_time);
}
diff --git a/modules/core/m_kick.c b/modules/core/m_kick.c
index ef4d464..f800136 100644
--- a/modules/core/m_kick.c
+++ b/modules/core/m_kick.c
@@ -72,7 +72,7 @@ m_kick(struct Client *client_p, struct Client *source_p,
if (EmptyString(parv[2]))
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
from, to, "KICK");
return;
}
@@ -95,7 +95,7 @@ m_kick(struct Client *client_p, struct Client *source_p,
if ((chptr = hash_find_channel(name)) == NULL)
{
- sendto_one(source_p, ERR_NOSUCHCHANNEL,
+ sendto_one(source_p, form_str(ERR_NOSUCHCHANNEL),
from, to, name);
return;
}
@@ -106,7 +106,7 @@ m_kick(struct Client *client_p, struct Client *source_p,
{
if (MyConnect(source_p))
{
- sendto_one(source_p, ERR_NOTONCHANNEL,
+ sendto_one(source_p, form_str(ERR_NOTONCHANNEL),
me.name, source_p->name, name);
return;
}
@@ -118,7 +118,7 @@ m_kick(struct Client *client_p, struct Client *source_p,
if (MyConnect(source_p))
{
/* user on _my_ server, with no chanops.. so go away */
- sendto_one(source_p, ERR_CHANOPRIVSNEEDED,
+ sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED),
me.name, source_p->name, name);
return;
}
@@ -126,7 +126,7 @@ m_kick(struct Client *client_p, struct Client *source_p,
if (chptr->channelts == 0)
{
/* If its a TS 0 channel, do it the old way */
- sendto_one(source_p, ERR_CHANOPRIVSNEEDED,
+ sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED),
from, to, name);
return;
}
@@ -177,7 +177,7 @@ m_kick(struct Client *client_p, struct Client *source_p,
if (((chptr->mode.mode & MODE_PRIVATE) && has_member_flags(ms_target,
CHFL_CHANOP|CHFL_HALFOP)) || has_member_flags(ms_target, CHFL_CHANOP))
{
- sendto_one(source_p, ERR_CHANOPRIVSNEEDED,
+ sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED),
me.name, source_p->name, name);
return;
}
@@ -209,7 +209,7 @@ m_kick(struct Client *client_p, struct Client *source_p,
remove_user_from_channel(ms_target);
}
else
- sendto_one(source_p, ERR_USERNOTINCHANNEL,
+ sendto_one(source_p, form_str(ERR_USERNOTINCHANNEL),
from, to, user, name);
}
diff --git a/modules/core/m_kill.c b/modules/core/m_kill.c
index 73968b9..434c906 100644
--- a/modules/core/m_kill.c
+++ b/modules/core/m_kill.c
@@ -87,14 +87,14 @@ mo_kill(struct Client *client_p, struct Client *source_p,
if (*user == '\0')
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
me.name, source_p->name, "KILL");
return;
}
if (!HasOFlag(source_p, OPER_FLAG_GLOBAL_KILL|OPER_FLAG_K))
{
- sendto_one(source_p, ERR_NOPRIVILEGES,
+ sendto_one(source_p, form_str(ERR_NOPRIVILEGES),
me.name, source_p->name);
return;
}
@@ -118,7 +118,7 @@ mo_kill(struct Client *client_p, struct Client *source_p,
(time_t)ConfigFileEntry.kill_chase_time_limit))
== NULL)
{
- sendto_one(source_p, ERR_NOSUCHNICK,
+ sendto_one(source_p, form_str(ERR_NOSUCHNICK),
me.name, source_p->name, user);
return;
}
@@ -129,7 +129,7 @@ mo_kill(struct Client *client_p, struct Client *source_p,
if (IsServer(target_p) || IsMe(target_p))
{
- sendto_one(source_p, ERR_CANTKILLSERVER,
+ sendto_one(source_p, form_str(ERR_CANTKILLSERVER),
me.name, source_p->name);
return;
}
@@ -195,7 +195,7 @@ ms_kill(struct Client *client_p, struct Client *source_p,
if (EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
me.name, source_p->name, "KILL");
return;
}
@@ -234,7 +234,7 @@ ms_kill(struct Client *client_p, struct Client *source_p,
(time_t)ConfigFileEntry.kill_chase_time_limit))
== NULL)
{
- sendto_one(source_p, ERR_NOSUCHNICK,
+ sendto_one(source_p, form_str(ERR_NOSUCHNICK),
me.name, source_p->name, user);
return;
}
@@ -245,7 +245,7 @@ ms_kill(struct Client *client_p, struct Client *source_p,
if (IsServer(target_p) || IsMe(target_p))
{
- sendto_one(source_p, ERR_CANTKILLSERVER,
+ sendto_one(source_p, form_str(ERR_CANTKILLSERVER),
me.name, source_p->name);
return;
}
diff --git a/modules/core/m_message.c b/modules/core/m_message.c
index 4414c36..7fadaba 100644
--- a/modules/core/m_message.c
+++ b/modules/core/m_message.c
@@ -146,7 +146,7 @@ m_message(int p_or_n, const char *command, struct Client *client_p,
if (parc < 2 || EmptyString(parv[1]))
{
if (p_or_n != NOTICE)
- sendto_one(source_p, ERR_NORECIPIENT,
+ sendto_one(source_p, form_str(ERR_NORECIPIENT),
ID_or_name(&me, client_p),
ID_or_name(source_p, client_p), command);
return;
@@ -155,7 +155,7 @@ m_message(int p_or_n, const char *command, struct Client *client_p,
if (parc < 3 || EmptyString(parv[2]))
{
if (p_or_n != NOTICE)
- sendto_one(source_p, ERR_NOTEXTTOSEND,
+ sendto_one(source_p, form_str(ERR_NOTEXTTOSEND),
ID_or_name(&me, client_p),
ID_or_name(source_p, client_p));
return;
@@ -238,7 +238,7 @@ build_target_list(int p_or_n, const char *command, struct Client *client_p,
{
if (ntargets >= ConfigFileEntry.max_targets)
{
- sendto_one(source_p, ERR_TOOMANYTARGETS,
+ sendto_one(source_p, form_str(ERR_TOOMANYTARGETS),
ID_or_name(&me, client_p),
ID_or_name(source_p, client_p), nick,
ConfigFileEntry.max_targets);
@@ -251,7 +251,7 @@ build_target_list(int p_or_n, const char *command, struct Client *client_p,
else
{
if (p_or_n != NOTICE)
- sendto_one(source_p, ERR_NOSUCHNICK,
+ sendto_one(source_p, form_str(ERR_NOSUCHNICK),
ID_or_name(&me, client_p),
ID_or_name(source_p, client_p), nick);
}
@@ -265,7 +265,7 @@ build_target_list(int p_or_n, const char *command, struct Client *client_p,
{
if (ntargets >= ConfigFileEntry.max_targets)
{
- sendto_one(source_p, ERR_TOOMANYTARGETS,
+ sendto_one(source_p, form_str(ERR_TOOMANYTARGETS),
ID_or_name(&me, client_p),
ID_or_name(source_p, client_p), nick,
ConfigFileEntry.max_targets);
@@ -303,7 +303,7 @@ build_target_list(int p_or_n, const char *command, struct Client *client_p,
/* suggested by Mortiis */
if (*nick == '\0') /* if its a '\0' dump it, there is no recipient */
{
- sendto_one(source_p, ERR_NORECIPIENT,
+ sendto_one(source_p, form_str(ERR_NORECIPIENT),
ID_or_name(&me, client_p),
ID_or_name(source_p, client_p), command);
continue;
@@ -320,7 +320,7 @@ build_target_list(int p_or_n, const char *command, struct Client *client_p,
if (!has_member_flags(find_channel_link(source_p, chptr),
CHFL_CHANOP|CHFL_HALFOP|CHFL_VOICE))
{
- sendto_one(source_p, ERR_CHANOPRIVSNEEDED,
+ sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED),
ID_or_name(&me, client_p),
ID_or_name(source_p, client_p), with_prefix);
return(-1);
@@ -331,7 +331,7 @@ build_target_list(int p_or_n, const char *command, struct Client *client_p,
{
if (ntargets >= ConfigFileEntry.max_targets)
{
- sendto_one(source_p, ERR_TOOMANYTARGETS,
+ sendto_one(source_p, form_str(ERR_TOOMANYTARGETS),
ID_or_name(&me, client_p),
ID_or_name(source_p, client_p), nick,
ConfigFileEntry.max_targets);
@@ -345,7 +345,7 @@ build_target_list(int p_or_n, const char *command, struct Client *client_p,
else
{
if (p_or_n != NOTICE)
- sendto_one(source_p, ERR_NOSUCHNICK,
+ sendto_one(source_p, form_str(ERR_NOSUCHNICK),
ID_or_name(&me, client_p),
ID_or_name(source_p, client_p), nick);
}
@@ -361,7 +361,7 @@ build_target_list(int p_or_n, const char *command, struct Client *client_p,
if (p_or_n != NOTICE)
{
if (!IsDigit(*nick) || MyClient(source_p))
- sendto_one(source_p, ERR_NOSUCHNICK,
+ sendto_one(source_p, form_str(ERR_NOSUCHNICK),
ID_or_name(&me, client_p),
ID_or_name(source_p, client_p), nick);
}
@@ -429,7 +429,7 @@ msg_channel(int p_or_n, const char *command, struct Client *client_p,
else
{
if (p_or_n != NOTICE)
- sendto_one(source_p, ERR_CANNOTSENDTOCHAN,
+ sendto_one(source_p, form_str(ERR_CANNOTSENDTOCHAN),
ID_or_name(&me, client_p),
ID_or_name(source_p, client_p), chptr->chname);
}
@@ -505,7 +505,7 @@ msg_client(int p_or_n, const char *command, struct Client *source_p,
source_p->localClient->last_privmsg = CurrentTime;
if ((p_or_n != NOTICE) && target_p->away[0])
- sendto_one(source_p, RPL_AWAY, me.name,
+ sendto_one(source_p, form_str(RPL_AWAY), me.name,
source_p->name, target_p->name, target_p->away);
if (HasUMode(target_p, UMODE_REGONLY) && target_p != source_p)
@@ -513,7 +513,7 @@ msg_client(int p_or_n, const char *command, struct Client *source_p,
if (!HasUMode(source_p, UMODE_REGISTERED|UMODE_OPER))
{
if (p_or_n != NOTICE)
- sendto_one(source_p, ERR_NONONREG, me.name, source_p->name,
+ sendto_one(source_p, form_str(ERR_NONONREG), me.name, source_p->name,
target_p->name);
return;
}
@@ -536,7 +536,7 @@ msg_client(int p_or_n, const char *command, struct Client *source_p,
{
/* check for accept, flag recipient incoming message */
if (p_or_n != NOTICE)
- sendto_one(source_p, RPL_TARGUMODEG,
+ sendto_one(source_p, form_str(RPL_TARGUMODEG),
ID_or_name(&me, source_p->from),
ID_or_name(source_p, source_p->from), target_p->name);
@@ -544,11 +544,11 @@ msg_client(int p_or_n, const char *command, struct Client *source_p,
ConfigFileEntry.caller_id_wait) < CurrentTime)
{
if (p_or_n != NOTICE)
- sendto_one(source_p, RPL_TARGNOTIFY,
+ sendto_one(source_p, form_str(RPL_TARGNOTIFY),
ID_or_name(&me, source_p->from),
ID_or_name(source_p, source_p->from), target_p->name);
- sendto_one(target_p, RPL_UMODEGMSG,
+ sendto_one(target_p, form_str(RPL_UMODEGMSG),
me.name, target_p->name,
get_client_name(source_p, HIDE_IP));
@@ -738,7 +738,7 @@ handle_special(int p_or_n, const char *command, struct Client *client_p,
if ((host = strchr(nick, '%')) && !HasUMode(source_p, UMODE_OPER))
{
- sendto_one(source_p, ERR_NOPRIVILEGES,
+ sendto_one(source_p, form_str(ERR_NOPRIVILEGES),
ID_or_name(&me, client_p),
ID_or_name(source_p, client_p));
return;
@@ -787,18 +787,18 @@ handle_special(int p_or_n, const char *command, struct Client *client_p,
source_p->localClient->last_privmsg = CurrentTime;
}
else
- sendto_one(source_p, ERR_TOOMANYTARGETS,
+ sendto_one(source_p, form_str(ERR_TOOMANYTARGETS),
ID_or_name(&me, client_p),
ID_or_name(source_p, client_p), nick,
ConfigFileEntry.max_targets);
}
}
else if (server && *(server+1) && (target_p == NULL))
- sendto_one(source_p, ERR_NOSUCHSERVER,
+ sendto_one(source_p, form_str(ERR_NOSUCHSERVER),
ID_or_name(&me, client_p),
ID_or_name(source_p, client_p), server+1);
else if (server && (target_p == NULL))
- sendto_one(source_p, ERR_NOSUCHNICK,
+ sendto_one(source_p, form_str(ERR_NOSUCHNICK),
ID_or_name(&me, client_p),
ID_or_name(source_p, client_p), nick);
return;
@@ -806,7 +806,7 @@ handle_special(int p_or_n, const char *command, struct Client *client_p,
if (!HasUMode(source_p, UMODE_OPER))
{
- sendto_one(source_p, ERR_NOPRIVILEGES,
+ sendto_one(source_p, form_str(ERR_NOPRIVILEGES),
ID_or_name(&me, client_p),
ID_or_name(source_p, client_p));
return;
@@ -832,7 +832,7 @@ handle_special(int p_or_n, const char *command, struct Client *client_p,
if ((s = strrchr(nick, '.')) == NULL)
{
- sendto_one(source_p, ERR_NOTOPLEVEL,
+ sendto_one(source_p, form_str(ERR_NOTOPLEVEL),
me.name, source_p->name, nick);
return;
}
@@ -843,7 +843,7 @@ handle_special(int p_or_n, const char *command, struct Client *client_p,
if (*s == '*' || *s == '?')
{
- sendto_one(source_p, ERR_WILDTOPLEVEL,
+ sendto_one(source_p, form_str(ERR_WILDTOPLEVEL),
ID_or_name(&me, client_p),
ID_or_name(source_p, client_p), nick);
return;
diff --git a/modules/core/m_mode.c b/modules/core/m_mode.c
index 6e115b8..897ce59 100644
--- a/modules/core/m_mode.c
+++ b/modules/core/m_mode.c
@@ -56,7 +56,7 @@ m_mode(struct Client *client_p, struct Client *source_p,
if (EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
me.name, source_p->name, "MODE");
return;
}
@@ -71,7 +71,7 @@ m_mode(struct Client *client_p, struct Client *source_p,
if ((chptr = hash_find_channel(parv[1])) == NULL)
{
- sendto_one(source_p, ERR_NOSUCHCHANNEL,
+ sendto_one(source_p, form_str(ERR_NOSUCHCHANNEL),
ID_or_name(&me, source_p->from),
ID_or_name(source_p, source_p->from),
parv[1]);
@@ -82,9 +82,9 @@ m_mode(struct Client *client_p, struct Client *source_p,
if (parc < 3)
{
channel_modes(chptr, source_p, modebuf, parabuf);
- sendto_one(source_p, RPL_CHANNELMODEIS,
+ sendto_one(source_p, form_str(RPL_CHANNELMODEIS),
me.name, source_p->name, chptr->chname, modebuf, parabuf);
- sendto_one(source_p, RPL_CREATIONTIME,
+ sendto_one(source_p, form_str(RPL_CREATIONTIME),
me.name, source_p->name, chptr->chname, chptr->channelts);
}
/* bounce all modes from people we deop on sjoin
@@ -133,7 +133,7 @@ ms_tmode(struct Client *client_p, struct Client *source_p, int parc, char *parv[
if ((chptr = hash_find_channel(parv[2])) == NULL)
{
- sendto_one(source_p, ERR_NOSUCHCHANNEL,
+ sendto_one(source_p, form_str(ERR_NOSUCHCHANNEL),
ID_or_name(&me, client_p), ID_or_name(source_p, client_p), parv[2]);
return;
}
diff --git a/modules/core/m_nick.c b/modules/core/m_nick.c
index 747b479..a490292 100644
--- a/modules/core/m_nick.c
+++ b/modules/core/m_nick.c
@@ -171,7 +171,7 @@ change_local_nick(struct Client *source_p, const char *nick)
fd_note(&source_p->localClient->fd, "Nick: %s", nick);
}
else
- sendto_one(source_p, ERR_NICKTOOFAST,
+ sendto_one(source_p, form_str(ERR_NICKTOOFAST),
me.name, source_p->name, source_p->name,
nick, ConfigFileEntry.max_nick_time);
}
@@ -201,7 +201,7 @@ mr_nick(struct Client *client_p, struct Client *source_p,
if (parc < 2 || EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NONICKNAMEGIVEN, me.name,
+ sendto_one(source_p, form_str(ERR_NONICKNAMEGIVEN), me.name,
source_p->name[0] ? source_p->name : "*");
return;
}
@@ -216,7 +216,7 @@ mr_nick(struct Client *client_p, struct Client *source_p,
/* check the nickname is ok */
if (!valid_nickname(nick, 1))
{
- sendto_one(source_p, ERR_ERRONEUSNICKNAME, me.name,
+ sendto_one(source_p, form_str(ERR_ERRONEUSNICKNAME), me.name,
source_p->name[0] ? source_p->name : "*", parv[1]);
return;
}
@@ -225,7 +225,7 @@ mr_nick(struct Client *client_p, struct Client *source_p,
if ((conf = find_matching_name_conf(CONF_NRESV, nick, NULL, NULL, 0)))
{
++conf->count;
- sendto_one(source_p, ERR_ERRONEUSNICKNAME, me.name,
+ sendto_one(source_p, form_str(ERR_ERRONEUSNICKNAME), me.name,
source_p->name[0] ? source_p->name : "*", nick);
sendto_realops_flags(UMODE_REJ, L_ALL, SEND_NOTICE,
"Forbidding reserved nick [%s] from user %s",
@@ -238,7 +238,7 @@ mr_nick(struct Client *client_p, struct Client *source_p,
else if (source_p == target_p)
strlcpy(source_p->name, nick, sizeof(source_p->name));
else
- sendto_one(source_p, ERR_NICKNAMEINUSE, me.name, "*", nick);
+ sendto_one(source_p, form_str(ERR_NICKNAMEINUSE), me.name, "*", nick);
}
@@ -268,7 +268,7 @@ m_nick(struct Client *client_p, struct Client *source_p,
if (parc < 2 || EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NONICKNAMEGIVEN,
+ sendto_one(source_p, form_str(ERR_NONICKNAMEGIVEN),
me.name, source_p->name);
return;
}
@@ -283,7 +283,7 @@ m_nick(struct Client *client_p, struct Client *source_p,
/* check the nickname is ok */
if (!valid_nickname(nick, 1))
{
- sendto_one(source_p, ERR_ERRONEUSNICKNAME,
+ sendto_one(source_p, form_str(ERR_ERRONEUSNICKNAME),
me.name, source_p->name, nick);
return;
}
@@ -294,7 +294,7 @@ m_nick(struct Client *client_p, struct Client *source_p,
(conf = find_matching_name_conf(CONF_NRESV, nick, NULL, NULL, 0)))
{
++conf->count;
- sendto_one(source_p, ERR_ERRONEUSNICKNAME,
+ sendto_one(source_p, form_str(ERR_ERRONEUSNICKNAME),
me.name, source_p->name, nick);
sendto_realops_flags(UMODE_REJ, L_ALL, SEND_NOTICE,
"Forbidding reserved nick [%s] from user %s",
@@ -325,7 +325,7 @@ m_nick(struct Client *client_p, struct Client *source_p,
change_local_nick(source_p, nick);
}
else
- sendto_one(source_p, ERR_NICKNAMEINUSE, me.name,
+ sendto_one(source_p, form_str(ERR_NICKNAMEINUSE), me.name,
source_p->name, nick);
}
@@ -803,7 +803,7 @@ perform_nick_collides(struct Client *source_p, struct Client *client_p,
"%s (Nick collision (new))",
me.name);
++ServerStats.is_kill;
- sendto_one(target_p, ERR_NICKCOLLISION,
+ sendto_one(target_p, form_str(ERR_NICKCOLLISION),
me.name, target_p->name, target_p->name);
AddFlag(target_p, FLAGS_KILLED);
@@ -842,7 +842,7 @@ perform_nick_collides(struct Client *source_p, struct Client *client_p,
client_p->name);
++ServerStats.is_kill;
- sendto_one(target_p, ERR_NICKCOLLISION,
+ sendto_one(target_p, form_str(ERR_NICKCOLLISION),
me.name, target_p->name, target_p->name);
/* if it came from a LL server, itd have been source_p,
@@ -873,7 +873,7 @@ perform_nick_collides(struct Client *source_p, struct Client *client_p,
source_p->name, target_p->name, target_p->from->name,
client_p->name);
- sendto_one(target_p, ERR_NICKCOLLISION, me.name,
+ sendto_one(target_p, form_str(ERR_NICKCOLLISION), me.name,
target_p->name, target_p->name);
++ServerStats.is_kill;
@@ -941,7 +941,7 @@ perform_nick_collides(struct Client *source_p, struct Client *client_p,
me.name);
++ServerStats.is_kill;
- sendto_one(target_p, ERR_NICKCOLLISION,
+ sendto_one(target_p, form_str(ERR_NICKCOLLISION),
me.name, target_p->name, target_p->name);
AddFlag(target_p, FLAGS_KILLED);
diff --git a/modules/core/m_part.c b/modules/core/m_part.c
index 2a8b27e..3d1e83a 100644
--- a/modules/core/m_part.c
+++ b/modules/core/m_part.c
@@ -56,14 +56,14 @@ part_one_client(struct Client *client_p, struct Client *source_p,
if ((chptr = hash_find_channel(name)) == NULL)
{
- sendto_one(source_p, ERR_NOSUCHCHANNEL,
+ sendto_one(source_p, form_str(ERR_NOSUCHCHANNEL),
me.name, source_p->name, name);
return;
}
if ((ms = find_channel_link(source_p, chptr)) == NULL)
{
- sendto_one(source_p, ERR_NOTONCHANNEL,
+ sendto_one(source_p, form_str(ERR_NOTONCHANNEL),
me.name, source_p->name, name);
return;
}
@@ -122,7 +122,7 @@ m_part(struct Client *client_p, struct Client *source_p,
if (EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
me.name, source_p->name, "PART");
return;
}
diff --git a/modules/core/m_squit.c b/modules/core/m_squit.c
index 122794e..6fef291 100644
--- a/modules/core/m_squit.c
+++ b/modules/core/m_squit.c
@@ -55,7 +55,7 @@ mo_squit(struct Client *client_p, struct Client *source_p,
if (parc < 2 || EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
me.name, source_p->name, "SQUIT");
return;
}
@@ -81,14 +81,14 @@ mo_squit(struct Client *client_p, struct Client *source_p,
if ((target_p == NULL) || IsMe(target_p))
{
- sendto_one(source_p, ERR_NOSUCHSERVER,
+ sendto_one(source_p, form_str(ERR_NOSUCHSERVER),
me.name, source_p->name, server);
return;
}
if (!MyConnect(target_p) && !HasOFlag(source_p, OPER_FLAG_REMOTE))
{
- sendto_one(source_p, ERR_NOPRIVILEGES,
+ sendto_one(source_p, form_str(ERR_NOPRIVILEGES),
me.name, source_p->name);
return;
}
diff --git a/modules/m_accept.c b/modules/m_accept.c
index c6dc26e..84cec49 100644
--- a/modules/m_accept.c
+++ b/modules/m_accept.c
@@ -63,7 +63,7 @@ list_accepts(struct Client *source_p)
if ((t - nicks) + masklen + len > IRCD_BUFSIZE)
{
*(t - 1) = '\0';
- sendto_one(source_p, RPL_ACCEPTLIST,
+ sendto_one(source_p, form_str(RPL_ACCEPTLIST),
me.name, source_p->name, nicks);
t = nicks;
}
@@ -76,11 +76,11 @@ list_accepts(struct Client *source_p)
if (nicks[0] != '\0')
{
*(t - 1) = '\0';
- sendto_one(source_p, RPL_ACCEPTLIST,
+ sendto_one(source_p, form_str(RPL_ACCEPTLIST),
me.name, source_p->name, nicks);
}
- sendto_one(source_p, RPL_ENDOFACCEPT,
+ sendto_one(source_p, form_str(RPL_ENDOFACCEPT),
me.name, source_p->name);
}
@@ -153,7 +153,7 @@ m_accept(struct Client *client_p, struct Client *source_p,
if ((accept_p = find_accept(nick, user, host, source_p, 0)) == NULL)
{
- sendto_one(source_p, ERR_ACCEPTNOT,
+ sendto_one(source_p, form_str(ERR_ACCEPTNOT),
me.name, source_p->name, nick, user, host);
continue;
}
@@ -165,7 +165,7 @@ m_accept(struct Client *client_p, struct Client *source_p,
if (dlink_list_length(&source_p->localClient->acceptlist) >=
ConfigFileEntry.max_accept)
{
- sendto_one(source_p, ERR_ACCEPTFULL,
+ sendto_one(source_p, form_str(ERR_ACCEPTFULL),
me.name, source_p->name);
return;
}
@@ -183,7 +183,7 @@ m_accept(struct Client *client_p, struct Client *source_p,
if ((accept_p = find_accept(nick, user, host, source_p, 0)) != NULL)
{
- sendto_one(source_p, ERR_ACCEPTEXIST,
+ sendto_one(source_p, form_str(ERR_ACCEPTEXIST),
me.name, source_p->name, nick, user, host);
continue;
}
diff --git a/modules/m_admin.c b/modules/m_admin.c
index cf13149..9db6fa9 100644
--- a/modules/m_admin.c
+++ b/modules/m_admin.c
@@ -52,17 +52,17 @@ do_admin(struct Client *source_p)
source_p->name, source_p->username,
source_p->host, source_p->servptr->name);
- sendto_one(source_p, RPL_ADMINME,
+ sendto_one(source_p, form_str(RPL_ADMINME),
me_name, nick, me.name);
if (AdminInfo.name != NULL)
- sendto_one(source_p, RPL_ADMINLOC1,
+ sendto_one(source_p, form_str(RPL_ADMINLOC1),
me_name, nick, AdminInfo.name);
if (AdminInfo.description != NULL)
- sendto_one(source_p, RPL_ADMINLOC2,
+ sendto_one(source_p, form_str(RPL_ADMINLOC2),
me_name, nick, AdminInfo.description);
if (AdminInfo.email != NULL)
- sendto_one(source_p, RPL_ADMINEMAIL,
+ sendto_one(source_p, form_str(RPL_ADMINEMAIL),
me_name, nick, AdminInfo.email);
}
@@ -88,7 +88,7 @@ m_admin(struct Client *client_p, struct Client *source_p,
if ((last_used + ConfigFileEntry.pace_wait_simple) > CurrentTime)
{
- sendto_one(source_p, RPL_LOAD2HI,
+ sendto_one(source_p,form_str(RPL_LOAD2HI),
me.name, source_p->name);
return;
}
diff --git a/modules/m_away.c b/modules/m_away.c
index f2f3060..644d1d5 100644
--- a/modules/m_away.c
+++ b/modules/m_away.c
@@ -65,20 +65,20 @@ m_away(struct Client *client_p, struct Client *source_p,
source_p->host);
}
- sendto_one(source_p, RPL_UNAWAY,
+ sendto_one(source_p, form_str(RPL_UNAWAY),
me.name, source_p->name);
return;
}
if ((CurrentTime - source_p->localClient->last_away) < ConfigFileEntry.pace_wait)
{
- sendto_one(source_p, RPL_LOAD2HI,
+ sendto_one(source_p, form_str(RPL_LOAD2HI),
me.name, source_p->name);
return;
}
source_p->localClient->last_away = CurrentTime;
- sendto_one(source_p, RPL_NOWAWAY, me.name, source_p->name);
+ sendto_one(source_p, form_str(RPL_NOWAWAY), me.name, source_p->name);
if (!strncmp(source_p->away, parv[1], sizeof(source_p->away) - 1))
return;
diff --git a/modules/m_cap.c b/modules/m_cap.c
index a7a9aad..842c1c9 100644
--- a/modules/m_cap.c
+++ b/modules/m_cap.c
@@ -396,7 +396,7 @@ m_cap(struct Client *client_p, struct Client *source_p, int parc, char *parv[])
sizeof(cmdlist) / sizeof(struct subcmd),
sizeof(struct subcmd), (bqcmp)subcmd_search)))
{
- sendto_one(source_p, ERR_INVALIDCAPCMD, me.name,
+ sendto_one(source_p, form_str(ERR_INVALIDCAPCMD), me.name,
source_p->name[0] ? source_p->name : "*", subcmd);
return;
}
diff --git a/modules/m_challenge.c b/modules/m_challenge.c
index 8b9fcfb..9965b8e 100644
--- a/modules/m_challenge.c
+++ b/modules/m_challenge.c
@@ -82,7 +82,7 @@ m_challenge(struct Client *client_p, struct Client *source_p,
if (irccmp(source_p->localClient->response, ++parv[1]))
{
- sendto_one(source_p, ERR_PASSWDMISMATCH, me.name,
+ sendto_one(source_p, form_str(ERR_PASSWDMISMATCH), me.name,
source_p->name);
failed_challenge_notice(source_p, source_p->localClient->auth_oper,
"challenge failed");
@@ -94,7 +94,7 @@ m_challenge(struct Client *client_p, struct Client *source_p,
if (conf == NULL)
{
/* XXX: logging */
- sendto_one (source_p, ERR_NOOPERHOST, me.name, source_p->name);
+ sendto_one (source_p, form_str(ERR_NOOPERHOST), me.name, source_p->name);
return;
}
@@ -128,7 +128,7 @@ m_challenge(struct Client *client_p, struct Client *source_p,
if (!conf)
{
- sendto_one (source_p, ERR_NOOPERHOST, me.name, source_p->name);
+ sendto_one (source_p, form_str(ERR_NOOPERHOST), me.name, source_p->name);
conf = find_exact_name_conf(CONF_OPER, NULL, parv[1], NULL, NULL);
failed_challenge_notice(source_p, parv[1], (conf != NULL)
? "host mismatch" : "no oper {} block");
@@ -145,7 +145,7 @@ m_challenge(struct Client *client_p, struct Client *source_p,
if (!generate_challenge(&challenge, &(source_p->localClient->response),
conf->rsa_public_key))
- sendto_one(source_p, RPL_RSACHALLENGE,
+ sendto_one(source_p, form_str(RPL_RSACHALLENGE),
me.name, source_p->name, challenge);
source_p->localClient->auth_oper = xstrdup(conf->name);
@@ -156,7 +156,7 @@ static void
mo_challenge(struct Client *client_p, struct Client *source_p,
int parc, char *parv[])
{
- sendto_one(source_p, RPL_YOUREOPER,
+ sendto_one(source_p, form_str(RPL_YOUREOPER),
me.name, source_p->name);
}
diff --git a/modules/m_close.c b/modules/m_close.c
index 929f16b..4395935 100644
--- a/modules/m_close.c
+++ b/modules/m_close.c
@@ -48,7 +48,7 @@ mo_close(struct Client *client_p, struct Client *source_p,
{
struct Client *target_p = ptr->data;
- sendto_one(source_p, RPL_CLOSING, me.name, source_p->name,
+ sendto_one(source_p, form_str(RPL_CLOSING), me.name, source_p->name,
get_client_name(target_p, SHOW_IP), target_p->status);
/*
@@ -58,7 +58,7 @@ mo_close(struct Client *client_p, struct Client *source_p,
exit_client(target_p, target_p, "Oper Closing");
}
- sendto_one(source_p, RPL_CLOSEEND,
+ sendto_one(source_p, form_str(RPL_CLOSEEND),
me.name, source_p->name, closed);
}
diff --git a/modules/m_connect.c b/modules/m_connect.c
index 4e67cd6..1d27f53 100644
--- a/modules/m_connect.c
+++ b/modules/m_connect.c
@@ -60,7 +60,7 @@ mo_connect(struct Client *client_p, struct Client *source_p,
if (EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
me.name, source_p->name, "CONNECT");
return;
}
@@ -69,7 +69,7 @@ mo_connect(struct Client *client_p, struct Client *source_p,
{
if (!HasOFlag(source_p, OPER_FLAG_REMOTE))
{
- sendto_one(source_p, ERR_NOPRIVS,
+ sendto_one(source_p, form_str(ERR_NOPRIVS),
me.name, source_p->name, "connect");
return;
}
@@ -189,7 +189,7 @@ ms_connect(struct Client *client_p, struct Client *source_p,
if (EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
me.name, source_p->name, "CONNECT");
return;
}
diff --git a/modules/m_dline.c b/modules/m_dline.c
index dba9323..b1d4ab4 100644
--- a/modules/m_dline.c
+++ b/modules/m_dline.c
@@ -154,7 +154,7 @@ mo_dline(struct Client *client_p, struct Client *source_p,
if (!HasOFlag(source_p, OPER_FLAG_DLINE))
{
- sendto_one(source_p, ERR_NOPRIVS,
+ sendto_one(source_p, form_str(ERR_NOPRIVS),
me.name, source_p->name, "dline");
return;
}
@@ -408,14 +408,14 @@ mo_undline(struct Client *client_p, struct Client *source_p,
if (!HasOFlag(source_p, OPER_FLAG_UNDLINE))
{
- sendto_one(source_p, ERR_NOPRIVS,
+ sendto_one(source_p, form_str(ERR_NOPRIVS),
me.name, source_p->name, "undline");
return;
}
if (parc < 2 || EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
me.name, source_p->name, "UNDLINE");
return;
}
diff --git a/modules/m_etrace.c b/modules/m_etrace.c
index 123a169..d7d0efa 100644
--- a/modules/m_etrace.c
+++ b/modules/m_etrace.c
@@ -94,7 +94,7 @@ do_etrace(struct Client *source_p, int parc, char *parv[])
if (target_p && MyClient(target_p))
report_this_status(source_p, target_p, full_etrace);
- sendto_one(source_p, RPL_ENDOFTRACE, me.name,
+ sendto_one(source_p, form_str(RPL_ENDOFTRACE), me.name,
source_p->name, tname);
return;
}
@@ -112,7 +112,7 @@ do_etrace(struct Client *source_p, int parc, char *parv[])
report_this_status(source_p, target_p, full_etrace);
}
- sendto_one(source_p, RPL_ENDOFTRACE, me.name,
+ sendto_one(source_p, form_str(RPL_ENDOFTRACE), me.name,
source_p->name, tname);
}
@@ -144,7 +144,7 @@ report_this_status(struct Client *source_p, struct Client *target_p,
if (full_etrace)
{
if (ConfigFileEntry.hide_spoof_ips)
- sendto_one(source_p, RPL_ETRACE_FULL,
+ sendto_one(source_p, form_str(RPL_ETRACE_FULL),
me.name,
source_p->name,
HasUMode(target_p, UMODE_OPER) ? "Oper" : "User",
@@ -157,7 +157,7 @@ report_this_status(struct Client *source_p, struct Client *target_p,
IsIPSpoof(target_p) ? "<hidden>" : target_p->localClient->client_server,
target_p->info);
else
- sendto_one(source_p, RPL_ETRACE_FULL,
+ sendto_one(source_p, form_str(RPL_ETRACE_FULL),
me.name,
source_p->name,
HasUMode(target_p, UMODE_OPER) ? "Oper" : "User",
@@ -173,7 +173,7 @@ report_this_status(struct Client *source_p, struct Client *target_p,
else
{
if (ConfigFileEntry.hide_spoof_ips)
- sendto_one(source_p, RPL_ETRACE,
+ sendto_one(source_p, form_str(RPL_ETRACE),
me.name,
source_p->name,
HasUMode(target_p, UMODE_OPER) ? "Oper" : "User",
@@ -184,7 +184,7 @@ report_this_status(struct Client *source_p, struct Client *target_p,
IsIPSpoof(target_p) ? "255.255.255.255" : target_p->sockhost,
target_p->info);
else
- sendto_one(source_p, RPL_ETRACE,
+ sendto_one(source_p, form_str(RPL_ETRACE),
me.name,
source_p->name,
HasUMode(target_p, UMODE_OPER) ? "Oper" : "User",
diff --git a/modules/m_gline.c b/modules/m_gline.c
index 78d861b..2bec753 100644
--- a/modules/m_gline.c
+++ b/modules/m_gline.c
@@ -343,7 +343,7 @@ mo_gline(struct Client *client_p, struct Client *source_p,
if (!HasOFlag(source_p, OPER_FLAG_GLINE))
{
- sendto_one(source_p, ERR_NOPRIVS,
+ sendto_one(source_p, form_str(ERR_NOPRIVS),
me.name, source_p->name, "gline");
return;
}
@@ -510,7 +510,7 @@ mo_gungline(struct Client *client_p, struct Client *source_p,
if (!HasOFlag(source_p, OPER_FLAG_GLINE))
{
- sendto_one(source_p, ERR_NOPRIVS,
+ sendto_one(source_p, form_str(ERR_NOPRIVS),
me.name, source_p->name, "gline");
return;
}
diff --git a/modules/m_globops.c b/modules/m_globops.c
index 24be8ff..8cf3ed7 100644
--- a/modules/m_globops.c
+++ b/modules/m_globops.c
@@ -47,14 +47,14 @@ mo_globops(struct Client *client_p, struct Client *source_p,
if (!HasOFlag(source_p, OPER_FLAG_GLOBOPS))
{
- sendto_one(source_p, ERR_NOPRIVS,
+ sendto_one(source_p, form_str(ERR_NOPRIVS),
me.name, source_p->name, "globops");
return;
}
if (EmptyString(message))
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
me.name, source_p->name, "GLOBOPS");
return;
}
diff --git a/modules/m_help.c b/modules/m_help.c
index 4601860..c104f0c 100644
--- a/modules/m_help.c
+++ b/modules/m_help.c
@@ -52,7 +52,7 @@ m_help(struct Client *client_p, struct Client *source_p,
if ((last_used + ConfigFileEntry.pace_wait_simple) > CurrentTime)
{
/* safe enough to give this on a local connect only */
- sendto_one(source_p, RPL_LOAD2HI,
+ sendto_one(source_p,form_str(RPL_LOAD2HI),
me.name, source_p->name);
return;
}
@@ -101,14 +101,14 @@ dohelp(struct Client *source_p, const char *hpath, char *topic)
if (strpbrk(topic, "/\\"))
{
- sendto_one(source_p, ERR_HELPNOTFOUND,
+ sendto_one(source_p, form_str(ERR_HELPNOTFOUND),
me.name, source_p->name, topic);
return;
}
if (strlen(hpath) + strlen(topic) + 1 > HYB_PATH_MAX)
{
- sendto_one(source_p, ERR_HELPNOTFOUND,
+ sendto_one(source_p, form_str(ERR_HELPNOTFOUND),
me.name, source_p->name, topic);
return;
}
@@ -117,14 +117,14 @@ dohelp(struct Client *source_p, const char *hpath, char *topic)
if (stat(path, &sb) < 0)
{
- sendto_one(source_p, ERR_HELPNOTFOUND,
+ sendto_one(source_p, form_str(ERR_HELPNOTFOUND),
me.name, source_p->name, topic);
return;
}
if (!S_ISREG(sb.st_mode))
{
- sendto_one(source_p, ERR_HELPNOTFOUND,
+ sendto_one(source_p, form_str(ERR_HELPNOTFOUND),
me.name, source_p->name, topic);
return;
}
@@ -140,32 +140,32 @@ sendhelpfile(struct Client *source_p, const char *path, const char *topic)
if ((file = fopen(path, "r")) == NULL)
{
- sendto_one(source_p, ERR_HELPNOTFOUND,
+ sendto_one(source_p, form_str(ERR_HELPNOTFOUND),
me.name, source_p->name, topic);
return;
}
if (fgets(line, sizeof(line), file) == NULL)
{
- sendto_one(source_p, ERR_HELPNOTFOUND,
+ sendto_one(source_p, form_str(ERR_HELPNOTFOUND),
me.name, source_p->name, topic);
return;
}
line[strlen(line) - 1] = '\0';
- sendto_one(source_p, RPL_HELPSTART,
+ sendto_one(source_p, form_str(RPL_HELPSTART),
me.name, source_p->name, topic, line);
while (fgets(line, sizeof(line), file))
{
line[strlen(line) - 1] = '\0';
- sendto_one(source_p, RPL_HELPTXT,
+ sendto_one(source_p, form_str(RPL_HELPTXT),
me.name, source_p->name, topic, line);
}
fclose(file);
- sendto_one(source_p, RPL_ENDOFHELP,
+ sendto_one(source_p, form_str(RPL_ENDOFHELP),
me.name, source_p->name, topic);
}
diff --git a/modules/m_info.c b/modules/m_info.c
index 8eafc1f..cab6f84 100644
--- a/modules/m_info.c
+++ b/modules/m_info.c
@@ -633,7 +633,7 @@ send_conf_options(struct Client *source_p)
}
}
- sendto_one(source_p, RPL_INFO,
+ sendto_one(source_p, form_str(RPL_INFO),
from, to, "");
}
@@ -667,7 +667,7 @@ send_info_text(struct Client *source_p)
if (*line == '\0')
line = " ";
- sendto_one(source_p, RPL_INFO,
+ sendto_one(source_p, form_str(RPL_INFO),
source, target, line);
}
@@ -676,7 +676,7 @@ send_info_text(struct Client *source_p)
send_birthdate_online_time(source_p);
- sendto_one(source_p, RPL_ENDOFINFO,
+ sendto_one(source_p, form_str(RPL_ENDOFINFO),
me.name, source_p->name);
}
@@ -694,7 +694,7 @@ m_info(struct Client *client_p, struct Client *source_p,
if ((last_used + ConfigFileEntry.pace_wait) > CurrentTime)
{
/* safe enough to give this on a local connect only */
- sendto_one(source_p, RPL_LOAD2HI,
+ sendto_one(source_p, form_str(RPL_LOAD2HI),
me.name, source_p->name);
return;
}
diff --git a/modules/m_invite.c b/modules/m_invite.c
index 6cceded..21c9ac9 100644
--- a/modules/m_invite.c
+++ b/modules/m_invite.c
@@ -59,7 +59,7 @@ m_invite(struct Client *client_p, struct Client *source_p,
if (EmptyString(parv[2]))
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
me.name, source_p->name, "INVITE");
return;
}
@@ -69,46 +69,46 @@ m_invite(struct Client *client_p, struct Client *source_p,
if ((target_p = find_person(client_p, parv[1])) == NULL)
{
- sendto_one(source_p, ERR_NOSUCHNICK,
+ sendto_one(source_p, form_str(ERR_NOSUCHNICK),
me.name, source_p->name, parv[1]);
return;
}
if ((chptr = hash_find_channel(parv[2])) == NULL)
{
- sendto_one(source_p, ERR_NOSUCHCHANNEL,
+ sendto_one(source_p, form_str(ERR_NOSUCHCHANNEL),
me.name, source_p->name, parv[2]);
return;
}
if (MyConnect(source_p) && (ms = find_channel_link(source_p, chptr)) == NULL)
{
- sendto_one(source_p, ERR_NOTONCHANNEL,
+ sendto_one(source_p, form_str(ERR_NOTONCHANNEL),
me.name, source_p->name, chptr->chname);
return;
}
if (MyConnect(source_p) && !has_member_flags(ms, CHFL_CHANOP))
{
- sendto_one(source_p, ERR_CHANOPRIVSNEEDED,
+ sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED),
me.name, source_p->name, chptr->chname);
return;
}
if (IsMember(target_p, chptr))
{
- sendto_one(source_p, ERR_USERONCHANNEL,
+ sendto_one(source_p, form_str(ERR_USERONCHANNEL),
me.name, source_p->name, target_p->name, chptr->chname);
return;
}
if (MyConnect(source_p))
{
- sendto_one(source_p, RPL_INVITING, me.name,
+ sendto_one(source_p, form_str(RPL_INVITING), me.name,
source_p->name, target_p->name, chptr->chname);
if (target_p->away[0])
- sendto_one(source_p, RPL_AWAY,
+ sendto_one(source_p, form_str(RPL_AWAY),
me.name, source_p->name, target_p->name,
target_p->away);
}
diff --git a/modules/m_ison.c b/modules/m_ison.c
index 88158b4..0e67287 100644
--- a/modules/m_ison.c
+++ b/modules/m_ison.c
@@ -45,7 +45,7 @@ do_ison(struct Client *client_p, struct Client *source_p,
int i;
int done = 0;
- len = snprintf(buf, sizeof(buf), RPL_ISON, me.name, source_p->name);
+ len = snprintf(buf, sizeof(buf), form_str(RPL_ISON), me.name, source_p->name);
current_insert_point = buf + len;
/*
diff --git a/modules/m_kline.c b/modules/m_kline.c
index 8ef3785..b41e21c 100644
--- a/modules/m_kline.c
+++ b/modules/m_kline.c
@@ -75,7 +75,7 @@ mo_kline(struct Client *client_p, struct Client *source_p,
if (!HasOFlag(source_p, OPER_FLAG_K))
{
- sendto_one(source_p, ERR_NOPRIVS,
+ sendto_one(source_p, form_str(ERR_NOPRIVS),
me.name, source_p->name, "kline");
return;
}
@@ -308,14 +308,14 @@ mo_unkline(struct Client *client_p,struct Client *source_p,
if (!HasOFlag(source_p, OPER_FLAG_UNKLINE))
{
- sendto_one(source_p, ERR_NOPRIVS,
+ sendto_one(source_p, form_str(ERR_NOPRIVS),
me.name, source_p->name, "unkline");
return;
}
if (EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
me.name, source_p->name, "UNKLINE");
return;
}
diff --git a/modules/m_knock.c b/modules/m_knock.c
index 54ebf61..51bb53d 100644
--- a/modules/m_knock.c
+++ b/modules/m_knock.c
@@ -61,14 +61,14 @@ m_knock(struct Client *client_p, struct Client *source_p,
if (EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
me.name, source_p->name, "KNOCK");
return;
}
if ((chptr = hash_find_channel(parv[1])) == NULL)
{
- sendto_one(source_p, ERR_NOSUCHCHANNEL,
+ sendto_one(source_p, form_str(ERR_NOSUCHCHANNEL),
me.name, source_p->name, parv[1]);
return;
}
@@ -76,7 +76,7 @@ m_knock(struct Client *client_p, struct Client *source_p,
/* Normal channel, just be sure they aren't on it */
if (IsMember(source_p, chptr))
{
- sendto_one(source_p, ERR_KNOCKONCHAN, me.name,
+ sendto_one(source_p, form_str(ERR_KNOCKONCHAN), me.name,
source_p->name, chptr->chname);
return;
}
@@ -85,7 +85,7 @@ m_knock(struct Client *client_p, struct Client *source_p,
(chptr->mode.limit && dlink_list_length(&chptr->members) >=
chptr->mode.limit)))
{
- sendto_one(source_p, ERR_CHANOPEN, me.name,
+ sendto_one(source_p, form_str(ERR_CHANOPEN), me.name,
source_p->name, chptr->chname);
return;
}
@@ -97,7 +97,7 @@ m_knock(struct Client *client_p, struct Client *source_p,
*/
if (PrivateChannel(chptr) || is_banned(chptr, source_p))
{
- sendto_one(source_p, ERR_CANNOTSENDTOCHAN,
+ sendto_one(source_p, form_str(ERR_CANNOTSENDTOCHAN),
me.name, source_p->name, chptr->chname);
return;
}
@@ -112,21 +112,21 @@ m_knock(struct Client *client_p, struct Client *source_p,
if ((source_p->localClient->last_knock + ConfigChannel.knock_delay) >
CurrentTime)
{
- sendto_one(source_p, ERR_TOOMANYKNOCK, me.name,
+ sendto_one(source_p, form_str(ERR_TOOMANYKNOCK), me.name,
source_p->name, chptr->chname, "user");
return;
}
if ((chptr->last_knock + ConfigChannel.knock_delay_channel) > CurrentTime)
{
- sendto_one(source_p, ERR_TOOMANYKNOCK, me.name,
+ sendto_one(source_p, form_str(ERR_TOOMANYKNOCK), me.name,
source_p->name, chptr->chname, "channel");
return;
}
source_p->localClient->last_knock = CurrentTime;
- sendto_one(source_p, RPL_KNOCKDLVR, me.name,
+ sendto_one(source_p, form_str(RPL_KNOCKDLVR), me.name,
source_p->name, chptr->chname);
}
diff --git a/modules/m_links.c b/modules/m_links.c
index fc9dbd7..631d1d1 100644
--- a/modules/m_links.c
+++ b/modules/m_links.c
@@ -69,13 +69,13 @@ do_links(struct Client *source_p, int parc, char *parv[])
* We just send the reply, as if they are here there's either no SHIDE,
* or they're an oper..
*/
- sendto_one(source_p, RPL_LINKS,
+ sendto_one(source_p, form_str(RPL_LINKS),
me_name, nick,
target_p->name, target_p->servptr->name,
target_p->hopcount, target_p->info);
}
- sendto_one(source_p, RPL_ENDOFLINKS,
+ sendto_one(source_p, form_str(RPL_ENDOFLINKS),
me_name, nick,
EmptyString(mask) ? "*" : mask);
}
@@ -85,12 +85,12 @@ do_links(struct Client *source_p, int parc, char *parv[])
* Print our own info so at least it looks like a normal links
* then print out the file (which may or may not be empty)
*/
- sendto_one(source_p, RPL_LINKS,
+ sendto_one(source_p, form_str(RPL_LINKS),
ID_or_name(&me, source_p->from),
ID_or_name(source_p, source_p->from),
me.name, me.name, 0, me.info);
send_message_file(source_p, &ConfigFileEntry.linksfile);
- sendto_one(source_p, RPL_ENDOFLINKS,
+ sendto_one(source_p, form_str(RPL_ENDOFLINKS),
ID_or_name(&me, source_p->from),
ID_or_name(source_p, source_p->from), "*");
}
@@ -126,7 +126,7 @@ m_links(struct Client *client_p, struct Client *source_p,
if ((last_used + ConfigFileEntry.pace_wait) > CurrentTime)
{
- sendto_one(source_p, RPL_LOAD2HI,
+ sendto_one(source_p, form_str(RPL_LOAD2HI),
me.name, source_p->name);
return;
}
diff --git a/modules/m_list.c b/modules/m_list.c
index ec6638e..c2a33b8 100644
--- a/modules/m_list.c
+++ b/modules/m_list.c
@@ -49,7 +49,7 @@ do_list(struct Client *source_p, int parc, char *parv[])
if (source_p->localClient->list_task != NULL)
{
free_list_task(source_p->localClient->list_task, source_p);
- sendto_one(source_p, RPL_LISTEND, me.name, source_p->name);
+ sendto_one(source_p, form_str(RPL_LISTEND), me.name, source_p->name);
return;
}
@@ -141,7 +141,7 @@ do_list(struct Client *source_p, int parc, char *parv[])
if (errors)
{
free_list_task(lt, source_p);
- sendto_one(source_p, ERR_LISTSYNTAX,
+ sendto_one(source_p, form_str(ERR_LISTSYNTAX),
me.name, source_p->name);
return;
}
@@ -150,7 +150,7 @@ do_list(struct Client *source_p, int parc, char *parv[])
dlinkAdd(source_p, make_dlink_node(), &listing_client_list);
- sendto_one(source_p, RPL_LISTSTART,
+ sendto_one(source_p, form_str(RPL_LISTSTART),
me.name, source_p->name);
safe_list_channels(source_p, lt, no_masked_channels &&
lt->show_mask.head != NULL);
diff --git a/modules/m_locops.c b/modules/m_locops.c
index 013040d..fd40ef3 100644
--- a/modules/m_locops.c
+++ b/modules/m_locops.c
@@ -50,7 +50,7 @@ mo_locops(struct Client *client_p, struct Client *source_p,
if (EmptyString(message))
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
me.name, source_p->name, "LOCOPS");
return;
}
diff --git a/modules/m_lusers.c b/modules/m_lusers.c
index 2b9ed22..c7c41c5 100644
--- a/modules/m_lusers.c
+++ b/modules/m_lusers.c
@@ -53,7 +53,7 @@ m_lusers(struct Client *client_p, struct Client *source_p,
if ((last_used + ConfigFileEntry.pace_wait_simple) > CurrentTime)
{
/* safe enough to give this on a local connect only */
- sendto_one(source_p, RPL_LOAD2HI, me.name, source_p->name);
+ sendto_one(source_p, form_str(RPL_LOAD2HI), me.name, source_p->name);
return;
}
diff --git a/modules/m_map.c b/modules/m_map.c
index 58497ba..4d5c9ab 100644
--- a/modules/m_map.c
+++ b/modules/m_map.c
@@ -76,7 +76,7 @@ dump_map(struct Client *client_p, const struct Client *root_p,
sprintf(pb, " Users: %5d (%1.1f%%)", users,
100 * (float)users / (float)Count.total);
- sendto_one(client_p, RPL_MAP, me.name, client_p->name, buf);
+ sendto_one(client_p, form_str(RPL_MAP), me.name, client_p->name, buf);
if (root_p->serv->server_list.head)
{
@@ -133,7 +133,7 @@ m_map(struct Client *client_p, struct Client *source_p,
if ((last_used + ConfigFileEntry.pace_wait) > CurrentTime)
{
/* safe enough to give this on a local connect only */
- sendto_one(source_p, RPL_LOAD2HI,
+ sendto_one(source_p, form_str(RPL_LOAD2HI),
me.name, source_p->name);
return;
}
@@ -141,7 +141,7 @@ m_map(struct Client *client_p, struct Client *source_p,
last_used = CurrentTime;
dump_map(source_p, &me, 0, buf);
- sendto_one(source_p, RPL_MAPEND, me.name, source_p->name);
+ sendto_one(source_p, form_str(RPL_MAPEND), me.name, source_p->name);
}
/* mo_map()
@@ -152,7 +152,7 @@ mo_map(struct Client *client_p, struct Client *source_p,
int parc, char *parv[])
{
dump_map(source_p, &me, 0, buf);
- sendto_one(source_p, RPL_MAPEND, me.name, source_p->name);
+ sendto_one(source_p, form_str(RPL_MAPEND), me.name, source_p->name);
}
static struct Message map_msgtab = {
diff --git a/modules/m_module.c b/modules/m_module.c
index 913ae0c..b8ec8dd 100644
--- a/modules/m_module.c
+++ b/modules/m_module.c
@@ -64,14 +64,14 @@ mo_module(struct Client *client_p, struct Client *source_p,
if (!HasOFlag(source_p, OPER_FLAG_MODULE))
{
- sendto_one(source_p, ERR_NOPRIVILEGES,
+ sendto_one(source_p, form_str(ERR_NOPRIVILEGES),
me.name, source_p->name);
return;
}
if (EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
me.name, source_p->name, "MODULE");
return;
}
@@ -80,7 +80,7 @@ mo_module(struct Client *client_p, struct Client *source_p,
{
if (EmptyString(parv[2]))
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
me.name, source_p->name, "MODULE");
return;
}
@@ -100,7 +100,7 @@ mo_module(struct Client *client_p, struct Client *source_p,
{
if (EmptyString(parv[2]))
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
me.name, source_p->name, "MODULE");
return;
}
@@ -138,7 +138,7 @@ mo_module(struct Client *client_p, struct Client *source_p,
{
if (EmptyString(parv[2]))
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
me.name, source_p->name, "MODULE");
return;
}
@@ -220,12 +220,12 @@ mo_module(struct Client *client_p, struct Client *source_p,
if (!EmptyString(parv[2]) && match(parv[2], modp->name))
continue;
- sendto_one(source_p, RPL_MODLIST, me.name, source_p->name,
+ sendto_one(source_p, form_str(RPL_MODLIST), me.name, source_p->name,
modp->name, modp->handle,
modp->version, (modp->flags & MODULE_FLAG_CORE) ?"(core)":"");
}
- sendto_one(source_p, RPL_ENDOFMODLIST,
+ sendto_one(source_p, form_str(RPL_ENDOFMODLIST),
me.name, source_p->name);
return;
}
diff --git a/modules/m_motd.c b/modules/m_motd.c
index 6943867..805840f 100644
--- a/modules/m_motd.c
+++ b/modules/m_motd.c
@@ -59,7 +59,7 @@ m_motd(struct Client *client_p, struct Client *source_p,
if ((last_used + ConfigFileEntry.pace_wait) > CurrentTime)
{
/* safe enough to give this on a local connect only */
- sendto_one(source_p, RPL_LOAD2HI,
+ sendto_one(source_p, form_str(RPL_LOAD2HI),
me.name, source_p->name);
return;
}
diff --git a/modules/m_names.c b/modules/m_names.c
index 7947d77..f1b9409 100644
--- a/modules/m_names.c
+++ b/modules/m_names.c
@@ -74,7 +74,7 @@ names_non_public_non_secret(struct Client *source_p)
char buf[IRCD_BUFSIZE];
char *t;
- mlen = snprintf(buf, sizeof(buf), RPL_NAMREPLY,
+ mlen = snprintf(buf, sizeof(buf), form_str(RPL_NAMREPLY),
me.name, source_p->name, "*", "*");
cur_len = mlen;
t = buf + mlen;
@@ -155,14 +155,14 @@ m_names(struct Client *client_p, struct Client *source_p,
if ((chptr = hash_find_channel(para)) != NULL)
channel_member_names(source_p, chptr, 1);
else
- sendto_one(source_p, RPL_ENDOFNAMES,
+ sendto_one(source_p, form_str(RPL_ENDOFNAMES),
me.name, source_p->name, para);
}
else
{
names_all_visible_channels(source_p);
names_non_public_non_secret(source_p);
- sendto_one(source_p, RPL_ENDOFNAMES,
+ sendto_one(source_p, form_str(RPL_ENDOFNAMES),
me.name, source_p->name, "*");
}
}
diff --git a/modules/m_oper.c b/modules/m_oper.c
index c76117f..9aef1bc 100644
--- a/modules/m_oper.c
+++ b/modules/m_oper.c
@@ -77,7 +77,7 @@ m_oper(struct Client *client_p, struct Client *source_p,
if (EmptyString(password))
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
me.name, source_p->name, "OPER");
return;
}
@@ -88,7 +88,7 @@ m_oper(struct Client *client_p, struct Client *source_p,
if ((conf = find_exact_name_conf(CONF_OPER, source_p, name, NULL, NULL)) == NULL)
{
- sendto_one(source_p, ERR_NOOPERHOST, me.name, source_p->name);
+ sendto_one(source_p, form_str(ERR_NOOPERHOST), me.name, source_p->name);
conf = find_exact_name_conf(CONF_OPER, NULL, name, NULL, NULL);
failed_oper_notice(source_p, name, (conf != NULL) ?
"host mismatch" : "no oper {} block");
@@ -112,7 +112,7 @@ m_oper(struct Client *client_p, struct Client *source_p,
}
else
{
- sendto_one(source_p, ERR_PASSWDMISMATCH, me.name, source_p->name);
+ sendto_one(source_p, form_str(ERR_PASSWDMISMATCH), me.name, source_p->name);
failed_oper_notice(source_p, name, "password mismatch");
}
}
@@ -127,7 +127,7 @@ static void
mo_oper(struct Client *client_p, struct Client *source_p,
int parc, char *parv[])
{
- sendto_one(source_p, RPL_YOUREOPER,
+ sendto_one(source_p, form_str(RPL_YOUREOPER),
me.name, source_p->name);
}
diff --git a/modules/m_operwall.c b/modules/m_operwall.c
index 6a8b277..4d81f1c 100644
--- a/modules/m_operwall.c
+++ b/modules/m_operwall.c
@@ -48,14 +48,14 @@ mo_operwall(struct Client *client_p, struct Client *source_p,
if (!HasOFlag(source_p, OPER_FLAG_OPERWALL))
{
- sendto_one(source_p, ERR_NOPRIVS,
+ sendto_one(source_p, form_str(ERR_NOPRIVS),
me.name, source_p->name, "operwall");
return;
}
if (EmptyString(message))
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
me.name, source_p->name, "OPERWALL");
return;
}
diff --git a/modules/m_pass.c b/modules/m_pass.c
index 4c6907b..eda2ad0 100644
--- a/modules/m_pass.c
+++ b/modules/m_pass.c
@@ -53,7 +53,7 @@ mr_pass(struct Client *client_p, struct Client *source_p,
if (EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS, me.name,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name,
source_p->name[0] ? source_p->name : "*", "PASS");
return;
}
diff --git a/modules/m_ping.c b/modules/m_ping.c
index 9976078..520b00a 100644
--- a/modules/m_ping.c
+++ b/modules/m_ping.c
@@ -50,7 +50,7 @@ m_ping(struct Client *client_p, struct Client *source_p,
if (parc < 2 || EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NOORIGIN,
+ sendto_one(source_p, form_str(ERR_NOORIGIN),
me.name, source_p->name);
return;
}
@@ -77,7 +77,7 @@ m_ping(struct Client *client_p, struct Client *source_p,
}
else
{
- sendto_one(source_p, ERR_NOSUCHSERVER,
+ sendto_one(source_p, form_str(ERR_NOSUCHSERVER),
me.name, source_p->name, destination);
return;
}
@@ -96,7 +96,7 @@ ms_ping(struct Client *client_p, struct Client *source_p,
if (parc < 2 || EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NOORIGIN,
+ sendto_one(source_p, form_str(ERR_NOORIGIN),
me.name, source_p->name);
return;
}
@@ -111,7 +111,7 @@ ms_ping(struct Client *client_p, struct Client *source_p,
origin, destination);
else
{
- sendto_one(source_p, ERR_NOSUCHSERVER,
+ sendto_one(source_p, form_str(ERR_NOSUCHSERVER),
ID_or_name(&me, client_p), source_p->name, destination);
return;
}
diff --git a/modules/m_pong.c b/modules/m_pong.c
index e68cbd7..6d472f7 100644
--- a/modules/m_pong.c
+++ b/modules/m_pong.c
@@ -44,7 +44,7 @@ ms_pong(struct Client *client_p, struct Client *source_p,
if (parc < 2 || EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NOORIGIN,
+ sendto_one(source_p, form_str(ERR_NOORIGIN),
me.name, source_p->name);
return;
}
@@ -67,7 +67,7 @@ ms_pong(struct Client *client_p, struct Client *source_p,
source_p->name, origin, destination);
else
{
- sendto_one(source_p, ERR_NOSUCHSERVER,
+ sendto_one(source_p, form_str(ERR_NOSUCHSERVER),
me.name, source_p->name, destination);
return;
}
@@ -95,7 +95,7 @@ mr_pong(struct Client *client_p, struct Client *source_p,
}
else
{
- sendto_one(source_p, ERR_WRONGPONG, me.name,
+ sendto_one(source_p, form_str(ERR_WRONGPONG), me.name,
source_p->name, source_p->localClient->random_ping);
return;
}
@@ -103,7 +103,7 @@ mr_pong(struct Client *client_p, struct Client *source_p,
}
}
else
- sendto_one(source_p, ERR_NOORIGIN,
+ sendto_one(source_p, form_str(ERR_NOORIGIN),
me.name, source_p->name);
}
diff --git a/modules/m_rehash.c b/modules/m_rehash.c
index 5e36fe7..77f5633 100644
--- a/modules/m_rehash.c
+++ b/modules/m_rehash.c
@@ -48,7 +48,7 @@ mo_rehash(struct Client *client_p, struct Client *source_p,
if (!HasOFlag(source_p, OPER_FLAG_REHASH))
{
- sendto_one(source_p, ERR_NOPRIVS,
+ sendto_one(source_p, form_str(ERR_NOPRIVS),
me.name, source_p->name, "rehash");
return;
}
@@ -57,7 +57,7 @@ mo_rehash(struct Client *client_p, struct Client *source_p,
{
if (irccmp(parv[1], "DNS") == 0)
{
- sendto_one(source_p, RPL_REHASHING, me.name, source_p->name, "DNS");
+ sendto_one(source_p, form_str(RPL_REHASHING), me.name, source_p->name, "DNS");
sendto_realops_flags(UMODE_ALL, L_ALL, SEND_NOTICE,
"%s is rehashing DNS",
get_oper_name(source_p));
@@ -90,7 +90,7 @@ mo_rehash(struct Client *client_p, struct Client *source_p,
}
else
{
- sendto_one(source_p, RPL_REHASHING,
+ sendto_one(source_p, form_str(RPL_REHASHING),
me.name, source_p->name, ConfigFileEntry.configfile);
sendto_realops_flags(UMODE_ALL, L_ALL, SEND_NOTICE,
"%s is rehashing server config file",
diff --git a/modules/m_restart.c b/modules/m_restart.c
index 16361b2..50e91ea 100644
--- a/modules/m_restart.c
+++ b/modules/m_restart.c
@@ -46,7 +46,7 @@ mo_restart(struct Client *client_p, struct Client *source_p,
if (!HasOFlag(source_p, OPER_FLAG_RESTART))
{
- sendto_one(source_p, ERR_NOPRIVS,
+ sendto_one(source_p, form_str(ERR_NOPRIVS),
me.name, source_p->name, "restart");
return;
}
diff --git a/modules/m_services.c b/modules/m_services.c
index 12b52f5..d8881f4 100644
--- a/modules/m_services.c
+++ b/modules/m_services.c
@@ -56,7 +56,7 @@ m_nickserv(struct Client *client_p, struct Client *source_p,
if (EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NOTEXTTOSEND,
+ sendto_one(source_p, form_str(ERR_NOTEXTTOSEND),
me.name, source_p->name);
return;
}
@@ -68,7 +68,7 @@ m_nickserv(struct Client *client_p, struct Client *source_p,
return;
}
- sendto_one(source_p, ERR_SERVICESDOWN,
+ sendto_one(source_p, form_str(ERR_SERVICESDOWN),
me.name, source_p->name, "NickServ");
}
@@ -83,7 +83,7 @@ m_chanserv(struct Client *client_p, struct Client *source_p,
if (EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NOTEXTTOSEND,
+ sendto_one(source_p, form_str(ERR_NOTEXTTOSEND),
me.name, source_p->name);
return;
}
@@ -95,7 +95,7 @@ m_chanserv(struct Client *client_p, struct Client *source_p,
return;
}
- sendto_one(source_p, ERR_SERVICESDOWN,
+ sendto_one(source_p, form_str(ERR_SERVICESDOWN),
me.name, source_p->name, "ChanServ");
}
@@ -110,7 +110,7 @@ m_memoserv(struct Client *client_p, struct Client *source_p,
if (EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NOTEXTTOSEND,
+ sendto_one(source_p, form_str(ERR_NOTEXTTOSEND),
me.name, source_p->name);
return;
}
@@ -122,7 +122,7 @@ m_memoserv(struct Client *client_p, struct Client *source_p,
return;
}
- sendto_one(source_p, ERR_SERVICESDOWN,
+ sendto_one(source_p, form_str(ERR_SERVICESDOWN),
me.name, source_p->name, "MemoServ");
}
@@ -137,7 +137,7 @@ m_operserv(struct Client *client_p, struct Client *source_p,
if (EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NOTEXTTOSEND,
+ sendto_one(source_p, form_str(ERR_NOTEXTTOSEND),
me.name, source_p->name);
return;
}
@@ -149,7 +149,7 @@ m_operserv(struct Client *client_p, struct Client *source_p,
return;
}
- sendto_one(source_p, ERR_SERVICESDOWN,
+ sendto_one(source_p, form_str(ERR_SERVICESDOWN),
me.name, source_p->name, "OperServ");
}
@@ -164,7 +164,7 @@ m_statserv(struct Client *client_p, struct Client *source_p,
if (EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NOTEXTTOSEND,
+ sendto_one(source_p, form_str(ERR_NOTEXTTOSEND),
me.name, source_p->name);
return;
}
@@ -176,7 +176,7 @@ m_statserv(struct Client *client_p, struct Client *source_p,
return;
}
- sendto_one(source_p, ERR_SERVICESDOWN,
+ sendto_one(source_p, form_str(ERR_SERVICESDOWN),
me.name, source_p->name, "StatServ");
}
@@ -191,7 +191,7 @@ m_helpserv(struct Client *client_p, struct Client *source_p,
if (EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NOTEXTTOSEND,
+ sendto_one(source_p, form_str(ERR_NOTEXTTOSEND),
me.name, source_p->name);
return;
}
@@ -203,7 +203,7 @@ m_helpserv(struct Client *client_p, struct Client *source_p,
return;
}
- sendto_one(source_p, ERR_SERVICESDOWN,
+ sendto_one(source_p, form_str(ERR_SERVICESDOWN),
me.name, source_p->name, "HelpServ");
}
@@ -218,7 +218,7 @@ m_botserv(struct Client *client_p, struct Client *source_p,
if (EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NOTEXTTOSEND,
+ sendto_one(source_p, form_str(ERR_NOTEXTTOSEND),
me.name, source_p->name);
return;
}
@@ -230,7 +230,7 @@ m_botserv(struct Client *client_p, struct Client *source_p,
return;
}
- sendto_one(source_p, ERR_SERVICESDOWN,
+ sendto_one(source_p, form_str(ERR_SERVICESDOWN),
me.name, source_p->name, "BotServ");
}
diff --git a/modules/m_set.c b/modules/m_set.c
index fbbf932..4fa1970 100644
--- a/modules/m_set.c
+++ b/modules/m_set.c
@@ -58,6 +58,7 @@ static void quote_autoconnall(struct Client *, int);
static void quote_floodcount(struct Client *, int);
static void quote_identtimeout(struct Client *, int);
static void quote_max(struct Client *, int);
+static void quote_msglocale(struct Client *, char *);
static void quote_spamnum(struct Client *, int);
static void quote_spamtime(struct Client *, int);
static void quote_splitmode(struct Client *, char *);
@@ -84,6 +85,7 @@ static const struct SetStruct set_cmd_table[] =
{ "FLOODCOUNT", quote_floodcount, 0, 1 },
{ "IDENTTIMEOUT", quote_identtimeout, 0, 1 },
{ "MAX", quote_max, 0, 1 },
+ { "MSGLOCALE", quote_msglocale, 1, 0 },
{ "SPAMNUM", quote_spamnum, 0, 1 },
{ "SPAMTIME", quote_spamtime, 0, 1 },
{ "SPLITMODE", quote_splitmode, 1, 0 },
@@ -206,7 +208,7 @@ quote_identtimeout(struct Client *source_p, int newval)
{
if (!HasUMode(source_p, UMODE_ADMIN))
{
- sendto_one(source_p, ERR_NOPRIVS,
+ sendto_one(source_p, form_str(ERR_NOPRIVS),
me.name, source_p->name, "set");
return;
}
@@ -256,6 +258,22 @@ quote_max(struct Client *source_p, int newval)
me.name, source_p->name, ServerInfo.max_clients, Count.local);
}
+/* SET MSGLOCALE */
+static void
+quote_msglocale(struct Client *source_p, char *locale)
+{
+ if (locale != NULL)
+ {
+ set_locale(locale);
+ rebuild_isupport_message_line();
+ sendto_one(source_p, ":%s NOTICE %s :Set MSGLOCALE to '%s'",
+ me.name, source_p->name, get_locale());
+ }
+ else
+ sendto_one(source_p, ":%s NOTICE %s :MSGLOCALE is currently '%s'",
+ me.name, source_p->name, get_locale());
+}
+
/* SET SPAMNUM */
static void
quote_spamnum(struct Client *source_p, int newval)
@@ -459,7 +477,7 @@ mo_set(struct Client *client_p, struct Client *source_p,
if (!HasOFlag(source_p, OPER_FLAG_SET))
{
- sendto_one(source_p, ERR_NOPRIVS,
+ sendto_one(source_p, form_str(ERR_NOPRIVS),
me.name, source_p->name, "set");
return;
}
@@ -503,7 +521,7 @@ mo_set(struct Client *client_p, struct Client *source_p,
if (!strcmp(tab->name, "AUTOCONN") && (parc < 4))
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
me.name, source_p->name, "SET");
return;
}
diff --git a/modules/m_stats.c b/modules/m_stats.c
index b7f2fd5..1edeba0 100644
--- a/modules/m_stats.c
+++ b/modules/m_stats.c
@@ -411,7 +411,7 @@ stats_deny(struct Client *source_p, int parc, char *parv[])
if (conf->until)
continue;
- sendto_one(source_p, RPL_STATSDLINE,
+ sendto_one(source_p, form_str(RPL_STATSDLINE),
from, to, 'D', conf->host, conf->reason);
}
}
@@ -446,7 +446,7 @@ stats_tdeny(struct Client *source_p, int parc, char *parv[])
if (!conf->until)
continue;
- sendto_one(source_p, RPL_STATSDLINE,
+ sendto_one(source_p, form_str(RPL_STATSDLINE),
from, to, 'd', conf->host, conf->reason);
}
}
@@ -467,11 +467,12 @@ stats_exempt(struct Client *source_p, int parc, char *parv[])
if (ConfigFileEntry.stats_e_disabled)
{
- sendto_one(source_p, ERR_NOPRIVILEGES,
+ sendto_one(source_p, form_str(ERR_NOPRIVILEGES),
from, to);
return;
}
+
for (i = 0; i < ATABLE_SIZE; ++i)
{
DLINK_FOREACH(ptr, atable[i].head)
@@ -483,7 +484,7 @@ stats_exempt(struct Client *source_p, int parc, char *parv[])
conf = arec->conf;
- sendto_one(source_p, RPL_STATSDLINE,
+ sendto_one(source_p, form_str(RPL_STATSDLINE),
from, to, 'e', conf->host, conf->reason /* XXX */);
}
}
@@ -613,7 +614,7 @@ stats_glines(struct Client *source_p, int parc, char *parv[])
{
const struct MaskItem *conf = arec->conf;
- sendto_one(source_p, RPL_STATSKLINE,
+ sendto_one(source_p, form_str(RPL_STATSKLINE),
from, to, "G",
conf->host ? conf->host : "*",
conf->user ? conf->user : "*",
@@ -700,7 +701,7 @@ report_auth(struct Client *client_p, int parc, char *parv[])
* sender, so prepare the strings for comparing --fl_
*/
if (ConfigFileEntry.hide_spoof_ips)
- sendto_one(client_p, RPL_STATSILINE, me.name,
+ sendto_one(client_p, form_str(RPL_STATSILINE), me.name,
client_p->name, 'I',
conf->name == NULL ? "*" : conf->name,
show_iline_prefix(client_p, conf),
@@ -709,7 +710,7 @@ report_auth(struct Client *client_p, int parc, char *parv[])
conf->class ? conf->class->name : "<default>");
else
- sendto_one(client_p, RPL_STATSILINE, me.name,
+ sendto_one(client_p, form_str(RPL_STATSILINE), me.name,
client_p->name, 'I',
conf->name == NULL ? "*" : conf->name,
show_iline_prefix(client_p, conf),
@@ -724,7 +725,7 @@ stats_auth(struct Client *source_p, int parc, char *parv[])
{
/* Oper only, if unopered, return ERR_NOPRIVILEGES */
if ((ConfigFileEntry.stats_i_oper_only == 2) && !HasUMode(source_p, UMODE_OPER))
- sendto_one(source_p, ERR_NOPRIVILEGES,
+ sendto_one(source_p, form_str(ERR_NOPRIVILEGES),
from, to);
/* If unopered, Only return matching auth blocks */
@@ -746,7 +747,7 @@ stats_auth(struct Client *source_p, int parc, char *parv[])
if (conf == NULL)
return;
- sendto_one(source_p, RPL_STATSILINE, from,
+ sendto_one(source_p, form_str(RPL_STATSILINE), from,
to, 'I',
"*", show_iline_prefix(source_p, conf),
conf->host, conf->port,
@@ -793,11 +794,11 @@ report_Klines(struct Client *client_p, int tkline)
continue;
if (HasUMode(client_p, UMODE_OPER))
- sendto_one(client_p, RPL_STATSKLINE, me.name,
+ sendto_one(client_p, form_str(RPL_STATSKLINE), me.name,
client_p->name, p, conf->host, conf->user,
conf->reason);
else
- sendto_one(client_p, RPL_STATSKLINE, me.name,
+ sendto_one(client_p, form_str(RPL_STATSKLINE), me.name,
client_p->name, p, conf->host, conf->user,
conf->reason);
}
@@ -809,7 +810,7 @@ stats_tklines(struct Client *source_p, int parc, char *parv[])
{
/* Oper only, if unopered, return ERR_NOPRIVILEGES */
if ((ConfigFileEntry.stats_k_oper_only == 2) && !HasUMode(source_p, UMODE_OPER))
- sendto_one(source_p, ERR_NOPRIVILEGES,
+ sendto_one(source_p, form_str(ERR_NOPRIVILEGES),
from, to);
/* If unopered, Only return matching klines */
@@ -834,7 +835,7 @@ stats_tklines(struct Client *source_p, int parc, char *parv[])
if (!conf->until)
return;
- sendto_one(source_p, RPL_STATSKLINE, from,
+ sendto_one(source_p, form_str(RPL_STATSKLINE), from,
to, "k", conf->host, conf->user, conf->reason);
}
/* Theyre opered, or allowed to see all klines */
@@ -848,7 +849,7 @@ stats_klines(struct Client *source_p, int parc, char *parv[])
{
/* Oper only, if unopered, return ERR_NOPRIVILEGES */
if ((ConfigFileEntry.stats_k_oper_only == 2) && !HasUMode(source_p, UMODE_OPER))
- sendto_one(source_p, ERR_NOPRIVILEGES,
+ sendto_one(source_p, form_str(ERR_NOPRIVILEGES),
from, to);
/* If unopered, Only return matching klines */
@@ -874,7 +875,7 @@ stats_klines(struct Client *source_p, int parc, char *parv[])
if (conf->until)
return;
- sendto_one(source_p, RPL_STATSKLINE, from,
+ sendto_one(source_p, form_str(RPL_STATSKLINE), from,
to, "K", conf->host, conf->user, conf->reason);
}
/* Theyre opered, or allowed to see all klines */
@@ -894,7 +895,7 @@ static void
stats_oper(struct Client *source_p, int parc, char *parv[])
{
if (!HasUMode(source_p, UMODE_OPER) && ConfigFileEntry.stats_o_oper_only)
- sendto_one(source_p, ERR_NOPRIVILEGES,
+ sendto_one(source_p, form_str(ERR_NOPRIVILEGES),
from, to);
else
report_confitem_types(source_p, CONF_OPER);
@@ -941,7 +942,7 @@ static void
stats_ports(struct Client *source_p, int parc, char *parv[])
{
if (!HasUMode(source_p, UMODE_OPER) && ConfigFileEntry.stats_P_oper_only)
- sendto_one(source_p, ERR_NOPRIVILEGES,
+ sendto_one(source_p, form_str(ERR_NOPRIVILEGES),
from, to);
else
show_ports(source_p);
@@ -1035,11 +1036,11 @@ stats_uptime(struct Client *source_p, int parc, char *parv[])
{
time_t now = CurrentTime - me.localClient->since;
- sendto_one(source_p, RPL_STATSUPTIME, from, to,
+ sendto_one(source_p, form_str(RPL_STATSUPTIME), from, to,
now / 86400, (now / 3600) % 24, (now / 60) % 60, now % 60);
if (!ConfigFileEntry.disable_remote || HasUMode(source_p, UMODE_OPER))
- sendto_one(source_p, RPL_STATSCONN, from, to,
+ sendto_one(source_p, form_str(RPL_STATSCONN), from, to,
Count.max_loc_con, Count.max_loc_cli, Count.totalrestartcount);
}
@@ -1096,7 +1097,7 @@ stats_servlinks(struct Client *source_p, int parc, char *parv[])
if (ConfigServerHide.flatten_links && !HasUMode(source_p, UMODE_OPER))
{
- sendto_one(source_p, ERR_NOPRIVILEGES,
+ sendto_one(source_p, form_str(ERR_NOPRIVILEGES),
from, to);
return;
}
@@ -1109,7 +1110,7 @@ stats_servlinks(struct Client *source_p, int parc, char *parv[])
recvB += target_p->localClient->recv.bytes;
/* ":%s 211 %s %s %u %u %llu %u %llu :%u %u %s" */
- sendto_one(source_p, RPL_STATSLINKINFO,
+ sendto_one(source_p, form_str(RPL_STATSLINKINFO),
from, to,
get_client_name(target_p, HasUMode(source_p, UMODE_ADMIN) ? SHOW_IP : MASK_IP),
dbuf_length(&target_p->localClient->buf_sendq),
@@ -1216,7 +1217,7 @@ stats_L_list(struct Client *source_p,char *name, int doall, int wilds,
(!IsServer(target_p) && !HasUMode(target_p, UMODE_ADMIN) &&
!IsHandshake(target_p) && !IsConnecting(target_p))))
{
- sendto_one(source_p, RPL_STATSLINKINFO,
+ sendto_one(source_p, form_str(RPL_STATSLINKINFO),
from, to,
(IsUpper(statchar)) ?
get_client_name(target_p, SHOW_IP) :
@@ -1235,7 +1236,7 @@ stats_L_list(struct Client *source_p,char *name, int doall, int wilds,
/* If its a hidden ip, an admin, or a server, mask the real IP */
if(IsIPSpoof(target_p) || IsServer(target_p) || HasUMode(target_p, UMODE_ADMIN)
|| IsHandshake(target_p) || IsConnecting(target_p))
- sendto_one(source_p, RPL_STATSLINKINFO,
+ sendto_one(source_p, form_str(RPL_STATSLINKINFO),
from, to,
get_client_name(target_p, MASK_IP),
dbuf_length(&target_p->localClient->buf_sendq),
@@ -1247,7 +1248,7 @@ stats_L_list(struct Client *source_p,char *name, int doall, int wilds,
(CurrentTime > target_p->localClient->since) ? (unsigned)(CurrentTime - target_p->localClient->since):0,
IsServer(target_p) ? show_capabilities(target_p) : "-");
else /* show the real IP */
- sendto_one(source_p, RPL_STATSLINKINFO,
+ sendto_one(source_p, form_str(RPL_STATSLINKINFO),
from, to,
(IsUpper(statchar)) ?
get_client_name(target_p, SHOW_IP) :
@@ -1297,7 +1298,7 @@ stats_ltrace(struct Client *source_p, int parc, char *parv[])
stats_L(source_p, name, doall, wilds, statchar);
}
else
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
from, to, "STATS");
}
@@ -1362,7 +1363,7 @@ do_stats(struct Client *source_p, int parc, char *parv[])
if (statchar == '\0')
{
- sendto_one(source_p, RPL_ENDOFSTATS,
+ sendto_one(source_p, form_str(RPL_ENDOFSTATS),
from, to, '*');
return;
}
@@ -1375,7 +1376,7 @@ do_stats(struct Client *source_p, int parc, char *parv[])
if ((tab->need_admin && !HasUMode(source_p, UMODE_ADMIN)) ||
(tab->need_oper && !HasUMode(source_p, UMODE_OPER)))
{
- sendto_one(source_p, ERR_NOPRIVILEGES,
+ sendto_one(source_p, form_str(ERR_NOPRIVILEGES),
from, to);
break;
}
@@ -1389,7 +1390,7 @@ do_stats(struct Client *source_p, int parc, char *parv[])
}
}
- sendto_one(source_p, RPL_ENDOFSTATS,
+ sendto_one(source_p, form_str(RPL_ENDOFSTATS),
from, to, statchar);
}
@@ -1428,7 +1429,7 @@ m_stats(struct Client *client_p, struct Client *source_p,
/* Check the user is actually allowed to do /stats, and isnt flooding */
if ((last_used + ConfigFileEntry.pace_wait) > CurrentTime)
{
- sendto_one(source_p, RPL_LOAD2HI,
+ sendto_one(source_p,form_str(RPL_LOAD2HI),
from, to);
return;
}
diff --git a/modules/m_testline.c b/modules/m_testline.c
new file mode 100644
index 0000000..b79665c
--- /dev/null
+++ b/modules/m_testline.c
@@ -0,0 +1,248 @@
+/*
+ * ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd).
+ * m_testline.c: Tests a hostmask to see what will happen to it.
+ *
+ * Copyright (C) 2002 by the past and present ircd coders, and others.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA
+ *
+ * $Id$
+ */
+
+#include "stdinc.h"
+#include "client.h"
+#include "irc_string.h"
+#include "ircd_defs.h"
+#include "ircd.h"
+#include "restart.h"
+#include "conf.h"
+#include "send.h"
+#include "hostmask.h"
+#include "numeric.h"
+#include "parse.h"
+#include "resv.h"
+#include "hash.h"
+#include "modules.h"
+
+
+/* mo_testline()
+ *
+ * inputs - pointer to physical connection request is coming from
+ * - pointer to source connection request is coming from
+ * - parc arg count
+ * - parv actual arguments
+ *
+ * output - NONE
+ * side effects - command to test I/K lines on server
+ *
+ * i.e. /quote testline user@host,ip [password]
+ *
+ */
+static void
+mo_testline(struct Client *client_p, struct Client *source_p,
+ int parc, char *parv[])
+{
+ /* IRCD_BUFSIZE to allow things like *u*s*e*r*n*a*m*e* etc. */
+ char given_name[IRCD_BUFSIZE];
+ char given_host[IRCD_BUFSIZE];
+ char parv1_copy[IRCD_BUFSIZE];
+ struct MaskItem *conf = NULL;
+ struct irc_ssaddr ip;
+ int host_mask;
+ enum hostmask_type t;
+ int matches = 0;
+ char userhost[HOSTLEN + USERLEN + 2];
+ struct split_nuh_item nuh;
+
+ if (EmptyString(parv[1]))
+ {
+ sendto_one(source_p, ":%s NOTICE %s :usage: user@host|ip [password]",
+ me.name, source_p->name);
+ return;
+ }
+
+ if (IsChanPrefix(*parv[1])) /* Might be channel resv */
+ {
+ const struct MaskItem *chptr = NULL;
+
+ if ((chptr = match_find_resv(parv[1])))
+ {
+ sendto_one(source_p, form_str(RPL_TESTLINE),
+ me.name, source_p->name, 'Q', 0, chptr->name,
+ chptr->reason ? chptr->reason : CONF_NOREASON);
+ return;
+ }
+ }
+
+ strlcpy(parv1_copy, parv[1], sizeof(parv1_copy));
+
+ nuh.nuhmask = parv[1];
+ nuh.nickptr = NULL;
+ nuh.userptr = given_name;
+ nuh.hostptr = given_host;
+
+ nuh.nicksize = 0;
+ nuh.usersize = sizeof(given_name);
+ nuh.hostsize = sizeof(given_host);
+
+ split_nuh(&nuh);
+
+ t = parse_netmask(given_host, &ip, &host_mask);
+
+ if (t != HM_HOST)
+ {
+ conf = find_dline_conf(&ip,
+#ifdef IPV6
+ (t == HM_IPV6) ? AF_INET6 : AF_INET
+#else
+ AF_INET
+#endif
+ );
+ if (conf != NULL)
+ {
+ ++matches;
+ if (conf->type == CONF_EXEMPT)
+ sendto_one(source_p,
+ ":%s NOTICE %s :Exempt D-line host [%s] reason [%s]",
+ me.name, source_p->name, conf->host, conf->reason);
+ else
+ sendto_one(source_p, form_str(RPL_TESTLINE),
+ me.name, source_p->name,
+ conf->until ? 'd' : 'D',
+ conf->until ? ((conf->until - CurrentTime) / 60)
+ : 0L,
+ conf->host, conf->reason);
+ }
+ }
+
+ if (t != HM_HOST)
+ conf = find_address_conf(given_host, given_name, &ip,
+#ifdef IPV6
+ (t == HM_IPV6) ? AF_INET6 : AF_INET,
+#else
+ AF_INET,
+#endif
+ parv[2]);
+ else
+ conf = find_address_conf(given_host, given_name, NULL, 0, parv[2]);
+
+ if (conf != NULL)
+ {
+ snprintf(userhost, sizeof(userhost), "%s@%s", conf->user, conf->host);
+
+ if (conf->type == CONF_CLIENT)
+ {
+ sendto_one(source_p, form_str(RPL_TESTLINE),
+ me.name, source_p->name, 'I', 0L, userhost,
+ conf->class ? conf->class->name : "<default>");
+ ++matches;
+ }
+ else if (conf->type == CONF_KLINE)
+ {
+ sendto_one(source_p, form_str(RPL_TESTLINE),
+ me.name, source_p->name,
+ conf->until ? 'k' : 'K',
+ conf->until ? ((conf->until - CurrentTime) / 60)
+ : 0L,
+ userhost, conf->reason? conf->reason : CONF_NOREASON);
+ ++matches;
+ }
+ }
+
+ conf = find_matching_name_conf(CONF_NRESV, given_name, NULL, NULL, 0);
+
+ if (conf != NULL)
+ {
+ sendto_one(source_p, form_str(RPL_TESTLINE),
+ me.name, source_p->name, 'Q', 0L,
+ conf->name,
+ conf->reason ? conf->reason : CONF_NOREASON);
+ ++matches;
+ }
+
+ if (matches == 0)
+ sendto_one(source_p, form_str(RPL_NOTESTLINE),
+ me.name, source_p->name, parv1_copy);
+}
+
+/* mo_testgecos()
+ *
+ * inputs - pointer to physical connection request is coming from
+ * - pointer to source connection request is coming from
+ * - parc arg count
+ * - parv actual arguments
+ *
+ * output - always 0
+ * side effects - command to test X lines on server
+ *
+ * i.e. /quote testgecos gecos
+ *
+ */
+static void
+mo_testgecos(struct Client *client_p, struct Client *source_p,
+ int parc, char *parv[])
+{
+ struct MaskItem *conf = NULL;
+
+ if (EmptyString(parv[1]))
+ {
+ sendto_one(source_p, ":%s NOTICE %s :usage: gecos",
+ me.name, source_p->name);
+ return;
+ }
+
+ if ((conf = find_matching_name_conf(CONF_XLINE, parv[1], NULL, NULL, 0)))
+ sendto_one(source_p, form_str(RPL_TESTLINE),
+ me.name, source_p->name, 'X', 0L,
+ conf->name, conf->reason ? conf->reason : CONF_NOREASON);
+ else
+ sendto_one(source_p, form_str(RPL_NOTESTLINE),
+ me.name, source_p->name, parv[1]);
+}
+
+static struct Message testline_msgtab = {
+ "TESTLINE", 0, 0, 0, MAXPARA, MFLG_SLOW, 0,
+ { m_unregistered, m_not_oper, m_ignore, m_ignore, mo_testline, m_ignore }
+};
+
+struct Message testgecos_msgtab = {
+ "TESTGECOS", 0, 0, 0, MAXPARA, MFLG_SLOW, 0,
+ { m_unregistered, m_not_oper, m_ignore, m_ignore, mo_testgecos, m_ignore }
+};
+
+static void
+module_init(void)
+{
+ mod_add_cmd(&testline_msgtab);
+ mod_add_cmd(&testgecos_msgtab);
+}
+
+static void
+module_exit(void)
+{
+ mod_del_cmd(&testline_msgtab);
+ mod_del_cmd(&testgecos_msgtab);
+}
+
+struct module module_entry = {
+ .node = { NULL, NULL, NULL },
+ .name = NULL,
+ .version = "$Revision$",
+ .handle = NULL,
+ .modinit = module_init,
+ .modexit = module_exit,
+ .flags = 0
+};
diff --git a/modules/m_testmask.c b/modules/m_testmask.c
new file mode 100644
index 0000000..78d02d5
--- /dev/null
+++ b/modules/m_testmask.c
@@ -0,0 +1,131 @@
+/*
+ * ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd).
+ * m_testmask.c: Counts the birdies err local and remote clients.
+ *
+ * Copyright (C) 2005 by Diane Bruce
+ * Coypright (C) 2005 ircd-hybrid team
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * 1.Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2.Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3.The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $Id$
+ */
+
+#include "stdinc.h"
+#include "client.h"
+#include "irc_string.h"
+#include "ircd_defs.h"
+#include "ircd.h"
+#include "restart.h"
+#include "conf.h"
+#include "send.h"
+#include "hostmask.h"
+#include "numeric.h"
+#include "parse.h"
+#include "modules.h"
+
+
+/* mo_testmask()
+ *
+ * inputs - pointer to physical connection request is coming from
+ * - pointer to source connection request is coming from
+ * - parc arg count
+ * - parv actual arguments
+ * output - NONE
+ * side effects - count up clients matching mask
+ * i.e. /quote testmask user@host
+ */
+static void
+mo_testmask(struct Client *client_p, struct Client *source_p,
+ int parc, char *parv[])
+{
+ struct split_nuh_item nuh;
+ char given_nick[IRCD_BUFSIZE];
+ char given_user[IRCD_BUFSIZE];
+ char given_host[IRCD_BUFSIZE];
+ unsigned int count[2] = { 0, 0 };
+ const dlink_node *ptr = NULL;
+
+ if (EmptyString(parv[1]))
+ {
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
+ me.name, source_p->name, "TESTMASK");
+ return;
+ }
+
+ nuh.nuhmask = parv[1];
+ nuh.nickptr = given_nick;
+ nuh.userptr = given_user;
+ nuh.hostptr = given_host;
+
+ nuh.nicksize = sizeof(given_nick);
+ nuh.usersize = sizeof(given_user);
+ nuh.hostsize = sizeof(given_host);
+
+ split_nuh(&nuh);
+
+ DLINK_FOREACH(ptr, global_client_list.head)
+ {
+ const struct Client *target_p = ptr->data;
+
+ if (!IsClient(target_p) || match(given_nick, target_p->name))
+ continue;
+
+ if (!match(given_user, target_p->username))
+ if (!match(given_host, target_p->host) || !match(given_host, target_p->sockhost))
+ ++count[!MyConnect(target_p)];
+ }
+
+ sendto_one(source_p, form_str(RPL_TESTMASK), me.name,
+ source_p->name,
+ given_nick, given_user,
+ given_host, count[0], count[1]);
+}
+
+static struct Message testmask_msgtab = {
+ "TESTMASK", 0, 0, 2, MAXPARA, MFLG_SLOW, 0,
+ {m_unregistered, m_not_oper, m_ignore, m_ignore, mo_testmask, m_ignore}
+};
+
+static void
+module_init(void)
+{
+ mod_add_cmd(&testmask_msgtab);
+}
+
+static void
+module_exit(void)
+{
+ mod_del_cmd(&testmask_msgtab);
+}
+
+struct module module_entry = {
+ .node = { NULL, NULL, NULL },
+ .name = NULL,
+ .version = "$Revision$",
+ .handle = NULL,
+ .modinit = module_init,
+ .modexit = module_exit,
+ .flags = 0
+};
diff --git a/modules/m_time.c b/modules/m_time.c
index e240c9d..14705c6 100644
--- a/modules/m_time.c
+++ b/modules/m_time.c
@@ -53,7 +53,7 @@ m_time(struct Client *client_p, struct Client *source_p,
if (hunt_server(client_p, source_p, ":%s TIME :%s", 1, parc, parv) != HUNTED_ISME)
return;
- sendto_one(source_p, RPL_TIME, me.name,
+ sendto_one(source_p, form_str(RPL_TIME), me.name,
source_p->name, me.name, date(0));
}
@@ -67,7 +67,7 @@ mo_time(struct Client *client_p, struct Client *source_p,
int parc, char *parv[])
{
if (hunt_server(client_p, source_p, ":%s TIME :%s", 1, parc, parv) == HUNTED_ISME)
- sendto_one(source_p, RPL_TIME, me.name,
+ sendto_one(source_p, form_str(RPL_TIME), me.name,
source_p->name, me.name, date(0));
}
diff --git a/modules/m_topic.c b/modules/m_topic.c
index aa17b01..75b3294 100644
--- a/modules/m_topic.c
+++ b/modules/m_topic.c
@@ -51,7 +51,7 @@ m_topic(struct Client *client_p, struct Client *source_p,
if (EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
me.name, source_p->name, "TOPIC");
return;
}
@@ -61,7 +61,7 @@ m_topic(struct Client *client_p, struct Client *source_p,
if ((chptr = hash_find_channel(parv[1])) == NULL)
{
- sendto_one(source_p, ERR_NOSUCHCHANNEL,
+ sendto_one(source_p, form_str(ERR_NOSUCHCHANNEL),
me.name, source_p->name, parv[1]);
return;
}
@@ -73,7 +73,7 @@ m_topic(struct Client *client_p, struct Client *source_p,
if ((ms = find_channel_link(source_p, chptr)) == NULL)
{
- sendto_one(source_p, ERR_NOTONCHANNEL, me.name,
+ sendto_one(source_p, form_str(ERR_NOTONCHANNEL), me.name,
source_p->name, parv[1]);
return;
}
@@ -103,7 +103,7 @@ m_topic(struct Client *client_p, struct Client *source_p,
chptr->chname, chptr->topic);
}
else
- sendto_one(source_p, ERR_CHANOPRIVSNEEDED,
+ sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED),
me.name, source_p->name, chptr->chname);
}
else /* only asking for topic */
@@ -111,21 +111,21 @@ m_topic(struct Client *client_p, struct Client *source_p,
if (!SecretChannel(chptr) || IsMember(source_p, chptr))
{
if (chptr->topic[0] == '\0')
- sendto_one(source_p, RPL_NOTOPIC,
+ sendto_one(source_p, form_str(RPL_NOTOPIC),
me.name, source_p->name, chptr->chname);
else
{
- sendto_one(source_p, RPL_TOPIC,
+ sendto_one(source_p, form_str(RPL_TOPIC),
me.name, source_p->name,
chptr->chname, chptr->topic);
- sendto_one(source_p, RPL_TOPICWHOTIME,
+ sendto_one(source_p, form_str(RPL_TOPICWHOTIME),
me.name, source_p->name, chptr->chname,
chptr->topic_info,
chptr->topic_time);
}
}
else
- sendto_one(source_p, ERR_NOTONCHANNEL,
+ sendto_one(source_p, form_str(ERR_NOTONCHANNEL),
me.name, source_p->name, chptr->chname);
}
}
@@ -146,14 +146,14 @@ ms_topic(struct Client *client_p, struct Client *source_p,
if (EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
from, to, "TOPIC");
return;
}
if ((chptr = hash_find_channel(parv[1])) == NULL)
{
- sendto_one(source_p, ERR_NOSUCHCHANNEL,
+ sendto_one(source_p, form_str(ERR_NOSUCHCHANNEL),
from, to, parv[1]);
return;
}
diff --git a/modules/m_trace.c b/modules/m_trace.c
index 03f277b..3c1be75 100644
--- a/modules/m_trace.c
+++ b/modules/m_trace.c
@@ -71,7 +71,7 @@ m_trace(struct Client *client_p, struct Client *source_p,
else
tname = me.name;
- sendto_one(source_p, RPL_ENDOFTRACE,
+ sendto_one(source_p, form_str(RPL_ENDOFTRACE),
me.name, source_p->name, tname);
}
@@ -128,10 +128,10 @@ mo_trace(struct Client *client_p, struct Client *source_p,
}
if (ac2ptr != NULL)
- sendto_one(source_p, RPL_TRACELINK, from, to,
+ sendto_one(source_p, form_str(RPL_TRACELINK), from, to,
ircd_version, tname, ac2ptr->from->name);
else
- sendto_one(source_p, RPL_TRACELINK, from, to,
+ sendto_one(source_p, form_str(RPL_TRACELINK), from, to,
ircd_version, tname, "ac2ptr_is_NULL!!");
return;
}
@@ -214,7 +214,7 @@ do_actual_trace(struct Client *source_p, int parc, char *parv[])
if (HasUMode(target_p, UMODE_OPER))
{
- sendto_one(source_p, RPL_TRACEOPERATOR,
+ sendto_one(source_p, form_str(RPL_TRACEOPERATOR),
from, to, get_client_class(&target_p->localClient->confs), name,
IsIPSpoof(target_p) ? "255.255.255.255" : target_p->sockhost,
CurrentTime - target_p->localClient->lasttime,
@@ -222,7 +222,7 @@ do_actual_trace(struct Client *source_p, int parc, char *parv[])
}
else
{
- sendto_one(source_p, RPL_TRACEUSER,
+ sendto_one(source_p,form_str(RPL_TRACEUSER),
from, to, get_client_class(&target_p->localClient->confs), name,
IsIPSpoof(target_p) ? "255.255.255.255" : target_p->sockhost,
CurrentTime - target_p->localClient->lasttime,
@@ -230,7 +230,7 @@ do_actual_trace(struct Client *source_p, int parc, char *parv[])
}
}
- sendto_one(source_p, RPL_ENDOFTRACE,
+ sendto_one(source_p, form_str(RPL_ENDOFTRACE),
from, to, tname);
return;
}
@@ -282,11 +282,11 @@ do_actual_trace(struct Client *source_p, int parc, char *parv[])
const struct ClassItem *class = ptr->data;
if (class->ref_count > 0)
- sendto_one(source_p, RPL_TRACECLASS,
+ sendto_one(source_p, form_str(RPL_TRACECLASS),
from, to, class->name, class->ref_count);
}
- sendto_one(source_p, RPL_ENDOFTRACE, from, to, tname);
+ sendto_one(source_p, form_str(RPL_ENDOFTRACE), from, to, tname);
}
/* report_this_status()
@@ -322,12 +322,12 @@ report_this_status(struct Client *source_p, struct Client *target_p, int dow)
switch (target_p->status)
{
case STAT_CONNECTING:
- sendto_one(source_p, RPL_TRACECONNECTING,
+ sendto_one(source_p, form_str(RPL_TRACECONNECTING),
from, to, class_name,
HasUMode(source_p, UMODE_ADMIN) ? name : target_p->name);
break;
case STAT_HANDSHAKE:
- sendto_one(source_p, RPL_TRACEHANDSHAKE,
+ sendto_one(source_p, form_str(RPL_TRACEHANDSHAKE),
from, to, class_name,
HasUMode(source_p, UMODE_ADMIN) ? name : target_p->name);
break;
@@ -335,7 +335,7 @@ report_this_status(struct Client *source_p, struct Client *target_p, int dow)
break;
case STAT_UNKNOWN:
/* added time -Taner */
- sendto_one(source_p, RPL_TRACEUNKNOWN,
+ sendto_one(source_p, form_str(RPL_TRACEUNKNOWN),
from, to, class_name, name, target_p->sockhost,
target_p->localClient->firsttime ? /* TBD: can't be 0 */
CurrentTime - target_p->localClient->firsttime : -1);
@@ -350,7 +350,7 @@ report_this_status(struct Client *source_p, struct Client *target_p, int dow)
|| !dow || HasUMode(target_p, UMODE_OPER))
{
if (HasUMode(target_p, UMODE_ADMIN) && !ConfigFileEntry.hide_spoof_ips)
- sendto_one(source_p, RPL_TRACEOPERATOR,
+ sendto_one(source_p, form_str(RPL_TRACEOPERATOR),
from, to, class_name, name,
HasUMode(source_p, UMODE_ADMIN) ? target_p->sockhost : "255.255.255.255",
CurrentTime - target_p->localClient->lasttime,
@@ -359,13 +359,13 @@ report_this_status(struct Client *source_p, struct Client *target_p, int dow)
else if (HasUMode(target_p, UMODE_OPER))
{
if (ConfigFileEntry.hide_spoof_ips)
- sendto_one(source_p, RPL_TRACEOPERATOR,
+ sendto_one(source_p, form_str(RPL_TRACEOPERATOR),
from, to, class_name, name,
IsIPSpoof(target_p) ? "255.255.255.255" : target_p->sockhost,
CurrentTime - target_p->localClient->lasttime,
idle_time_get(source_p, target_p));
else
- sendto_one(source_p, RPL_TRACEOPERATOR,
+ sendto_one(source_p, form_str(RPL_TRACEOPERATOR),
from, to, class_name, name,
MyOper(source_p) ? target_p->sockhost :
(IsIPSpoof(target_p) ? "255.255.255.255" : target_p->sockhost),
@@ -375,13 +375,13 @@ report_this_status(struct Client *source_p, struct Client *target_p, int dow)
else
{
if (ConfigFileEntry.hide_spoof_ips)
- sendto_one(source_p, RPL_TRACEUSER,
+ sendto_one(source_p, form_str(RPL_TRACEUSER),
from, to, class_name, name,
IsIPSpoof(target_p) ? "255.255.255.255" : target_p->sockhost,
CurrentTime - target_p->localClient->lasttime,
idle_time_get(source_p, target_p));
else
- sendto_one(source_p, RPL_TRACEUSER,
+ sendto_one(source_p, form_str(RPL_TRACEUSER),
from, to, class_name, name,
MyOper(source_p) ? target_p->sockhost :
(IsIPSpoof(target_p) ? "255.255.255.255" : target_p->sockhost),
@@ -400,7 +400,7 @@ report_this_status(struct Client *source_p, struct Client *target_p, int dow)
if (!HasUMode(source_p, UMODE_ADMIN))
name = get_client_name(target_p, MASK_IP);
- sendto_one(source_p, RPL_TRACESERVER,
+ sendto_one(source_p, form_str(RPL_TRACESERVER),
from, to, class_name, servers,
clients, name, *(target_p->serv->by) ?
target_p->serv->by : "*", "*",
@@ -409,7 +409,7 @@ report_this_status(struct Client *source_p, struct Client *target_p, int dow)
}
default: /* ...we actually shouldn't come here... --msa */
- sendto_one(source_p, RPL_TRACENEWTYPE,
+ sendto_one(source_p, form_str(RPL_TRACENEWTYPE),
from, to, name);
break;
}
diff --git a/modules/m_user.c b/modules/m_user.c
index d12f92f..9db36b4 100644
--- a/modules/m_user.c
+++ b/modules/m_user.c
@@ -94,7 +94,7 @@ mr_user(struct Client *client_p, struct Client *source_p,
if (EmptyString(parv[4]))
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS, me.name,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name,
source_p->name[0] ? source_p->name : "*", "USER");
return;
}
diff --git a/modules/m_userhost.c b/modules/m_userhost.c
index 46490f5..1f7c604 100644
--- a/modules/m_userhost.c
+++ b/modules/m_userhost.c
@@ -50,7 +50,7 @@ m_userhost(struct Client *client_p, struct Client *source_p,
int cur_len;
int rl;
- cur_len = snprintf(buf, sizeof(buf), RPL_USERHOST, me.name, source_p->name, "");
+ cur_len = snprintf(buf, sizeof(buf), form_str(RPL_USERHOST), me.name, source_p->name, "");
t = buf + cur_len;
for (nick = strtoken(&p, parv[1], " "); nick && i++ < 5;
diff --git a/modules/m_users.c b/modules/m_users.c
index 90615fa..14ab296 100644
--- a/modules/m_users.c
+++ b/modules/m_users.c
@@ -46,7 +46,7 @@ m_users(struct Client *client_p, struct Client *source_p,
if (last_used + ConfigFileEntry.pace_wait_simple > CurrentTime)
{
- sendto_one(source_p, RPL_LOAD2HI,
+ sendto_one(source_p, form_str(RPL_LOAD2HI),
me.name, source_p->name);
return;
}
@@ -58,13 +58,13 @@ m_users(struct Client *client_p, struct Client *source_p,
parc, parv) != HUNTED_ISME)
return;
- sendto_one(source_p, RPL_LOCALUSERS, me.name, source_p->name,
+ sendto_one(source_p, form_str(RPL_LOCALUSERS), me.name, source_p->name,
ConfigServerHide.hide_servers ? Count.total : Count.local,
ConfigServerHide.hide_servers ? Count.max_tot : Count.max_loc,
ConfigServerHide.hide_servers ? Count.total : Count.local,
ConfigServerHide.hide_servers ? Count.max_tot : Count.max_loc);
- sendto_one(source_p, RPL_GLOBALUSERS, me.name, source_p->name,
+ sendto_one(source_p, form_str(RPL_GLOBALUSERS), me.name, source_p->name,
Count.total, Count.max_tot, Count.total, Count.max_tot);
}
@@ -82,13 +82,13 @@ mo_users(struct Client *client_p, struct Client *source_p,
return;
if (!HasUMode(source_p, UMODE_OPER) && ConfigServerHide.hide_servers)
- sendto_one(source_p, RPL_LOCALUSERS, me.name, source_p->name,
+ sendto_one(source_p, form_str(RPL_LOCALUSERS), me.name, source_p->name,
Count.total, Count.max_tot, Count.total, Count.max_tot);
else
- sendto_one(source_p, RPL_LOCALUSERS, me.name, source_p->name,
+ sendto_one(source_p, form_str(RPL_LOCALUSERS), me.name, source_p->name,
Count.local, Count.max_loc, Count.local, Count.max_loc);
- sendto_one(source_p, RPL_GLOBALUSERS, me.name, source_p->name,
+ sendto_one(source_p, form_str(RPL_GLOBALUSERS), me.name, source_p->name,
Count.total, Count.max_tot, Count.total, Count.max_tot);
}
diff --git a/modules/m_version.c b/modules/m_version.c
index 41cea48..5a9d9cc 100644
--- a/modules/m_version.c
+++ b/modules/m_version.c
@@ -101,7 +101,7 @@ m_version(struct Client *client_p, struct Client *source_p,
if ((last_used + ConfigFileEntry.pace_wait_simple) > CurrentTime)
{
/* safe enough to give this on a local connect only */
- sendto_one(source_p, RPL_LOAD2HI,
+ sendto_one(source_p, form_str(RPL_LOAD2HI),
me.name, source_p->name);
return;
}
@@ -113,7 +113,7 @@ m_version(struct Client *client_p, struct Client *source_p,
1, parc, parv) != HUNTED_ISME)
return;
- sendto_one(source_p, RPL_VERSION,
+ sendto_one(source_p, form_str(RPL_VERSION),
me.name, source_p->name, ircd_version, serno,
me.name, confopts(source_p), serveropts);
show_isupport(source_p);
@@ -133,7 +133,7 @@ mo_version(struct Client *client_p, struct Client *source_p,
1, parc, parv) != HUNTED_ISME)
return;
- sendto_one(source_p, RPL_VERSION, me.name,
+ sendto_one(source_p, form_str(RPL_VERSION), me.name,
source_p->name, ircd_version,
serno, me.name, confopts(source_p), serveropts);
@@ -152,7 +152,7 @@ ms_version(struct Client *client_p, struct Client *source_p,
if (hunt_server(client_p, source_p, ":%s VERSION :%s",
1, parc, parv) == HUNTED_ISME)
{
- sendto_one(source_p, RPL_VERSION,
+ sendto_one(source_p, form_str(RPL_VERSION),
ID_or_name(&me, client_p),
ID_or_name(source_p, client_p),
ircd_version, serno,
diff --git a/modules/m_wallops.c b/modules/m_wallops.c
index af98c48..c05a56d 100644
--- a/modules/m_wallops.c
+++ b/modules/m_wallops.c
@@ -47,7 +47,7 @@ mo_wallops(struct Client *client_p, struct Client *source_p,
if (EmptyString(message))
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
me.name, source_p->name, "WALLOPS");
return;
}
diff --git a/modules/m_watch.c b/modules/m_watch.c
index 4e0aa55..fb75aa4 100644
--- a/modules/m_watch.c
+++ b/modules/m_watch.c
@@ -44,16 +44,16 @@
*/
static void
show_watch(struct Client *client_p, const char *name,
- const char *rpl1, const char *rpl2)
+ unsigned int rpl1, unsigned int rpl2)
{
const struct Client *target_p = NULL;
if ((target_p = find_person(client_p, name)))
- sendto_one(client_p, rpl1, me.name, client_p->name,
+ sendto_one(client_p, form_str(rpl1), me.name, client_p->name,
target_p->name, target_p->username,
target_p->host, target_p->tsinfo);
else
- sendto_one(client_p, rpl2, me.name, client_p->name,
+ sendto_one(client_p, form_str(rpl2), me.name, client_p->name,
name, "*", "*", 0);
}
@@ -96,7 +96,7 @@ m_watch(struct Client *client_p, struct Client *source_p, int parc, char *parv[]
if (dlink_list_length(&source_p->localClient->watches) >=
ConfigFileEntry.max_watch)
{
- sendto_one(source_p, ERR_TOOMANYWATCH, me.name,
+ sendto_one(source_p, form_str(ERR_TOOMANYWATCH), me.name,
source_p->name, s + 1, ConfigFileEntry.max_watch);
continue;
}
@@ -152,7 +152,7 @@ m_watch(struct Client *client_p, struct Client *source_p, int parc, char *parv[]
if ((anptr = watch_find_hash(source_p->name)))
count = dlink_list_length(&anptr->watched_by);
- sendto_one(source_p, RPL_WATCHSTAT,
+ sendto_one(source_p, form_str(RPL_WATCHSTAT),
me.name, source_p->name,
dlink_list_length(&source_p->localClient->watches), count);
@@ -162,7 +162,7 @@ m_watch(struct Client *client_p, struct Client *source_p, int parc, char *parv[]
*/
if ((ptr = source_p->localClient->watches.head) == NULL)
{
- sendto_one(source_p, RPL_ENDOFWATCHLIST,
+ sendto_one(source_p, form_str(RPL_ENDOFWATCHLIST),
me.name, source_p->name, *s);
continue;
}
@@ -179,7 +179,7 @@ m_watch(struct Client *client_p, struct Client *source_p, int parc, char *parv[]
if (count + strlen(anptr->nick) + 1 > IRCD_BUFSIZE - 2)
{
- sendto_one(source_p, RPL_WATCHLIST,
+ sendto_one(source_p, form_str(RPL_WATCHLIST),
me.name, source_p->name, buf);
buf[0] = '\0';
count = strlen(source_p->name) + strlen(me.name) + 10;
@@ -190,9 +190,9 @@ m_watch(struct Client *client_p, struct Client *source_p, int parc, char *parv[]
count += (strlen(anptr->nick) + 1);
}
- sendto_one(source_p, RPL_WATCHLIST,
+ sendto_one(source_p, form_str(RPL_WATCHLIST),
me.name, source_p->name, buf);
- sendto_one(source_p, RPL_ENDOFWATCHLIST,
+ sendto_one(source_p, form_str(RPL_ENDOFWATCHLIST),
me.name, source_p->name, *s);
continue;
}
@@ -216,7 +216,7 @@ m_watch(struct Client *client_p, struct Client *source_p, int parc, char *parv[]
const struct Watch *anptr = ptr->data;
if ((target_p = find_person(source_p, anptr->nick)))
- sendto_one(source_p, RPL_NOWON, me.name, source_p->name,
+ sendto_one(source_p, form_str(RPL_NOWON), me.name, source_p->name,
target_p->name, target_p->username,
target_p->host, target_p->tsinfo);
/*
@@ -224,12 +224,12 @@ m_watch(struct Client *client_p, struct Client *source_p, int parc, char *parv[]
* 'L' (full list wanted).
*/
else if (*s == 'L')
- sendto_one(source_p, RPL_NOWOFF, me.name,
+ sendto_one(source_p, form_str(RPL_NOWOFF), me.name,
source_p->name, anptr->nick,
"*", "*", anptr->lasttime);
}
- sendto_one(source_p, RPL_ENDOFWATCHLIST,
+ sendto_one(source_p, form_str(RPL_ENDOFWATCHLIST),
me.name, source_p->name, *s);
continue;
}
diff --git a/modules/m_who.c b/modules/m_who.c
index 7939eeb..09a5495 100644
--- a/modules/m_who.c
+++ b/modules/m_who.c
@@ -63,7 +63,7 @@ m_who(struct Client *client_p, struct Client *source_p,
if (EmptyString(mask))
{
who_global(source_p, mask, server_oper);
- sendto_one(source_p, RPL_ENDOFWHO,
+ sendto_one(source_p, form_str(RPL_ENDOFWHO),
me.name, source_p->name, "*");
return;
}
@@ -81,7 +81,7 @@ m_who(struct Client *client_p, struct Client *source_p,
server_oper);
}
- sendto_one(source_p, RPL_ENDOFWHO,
+ sendto_one(source_p, form_str(RPL_ENDOFWHO),
me.name, source_p->name, "*");
return;
}
@@ -98,7 +98,7 @@ m_who(struct Client *client_p, struct Client *source_p,
do_who_on_channel(source_p, chptr, chptr->chname, 0, server_oper);
}
- sendto_one(source_p, RPL_ENDOFWHO,
+ sendto_one(source_p, form_str(RPL_ENDOFWHO),
me.name, source_p->name, mask);
return;
}
@@ -120,7 +120,7 @@ m_who(struct Client *client_p, struct Client *source_p,
else
do_who(source_p, target_p, NULL, "");
- sendto_one(source_p, RPL_ENDOFWHO,
+ sendto_one(source_p, form_str(RPL_ENDOFWHO),
me.name, source_p->name, mask);
return;
}
@@ -132,7 +132,7 @@ m_who(struct Client *client_p, struct Client *source_p,
who_global(source_p, mask, server_oper);
/* Wasn't a nick, wasn't a channel, wasn't a '*' so ... */
- sendto_one(source_p, RPL_ENDOFWHO,
+ sendto_one(source_p, form_str(RPL_ENDOFWHO),
me.name, source_p->name, mask);
}
@@ -213,7 +213,7 @@ who_global(struct Client *source_p, char *mask, int server_oper)
if ((last_used + ConfigFileEntry.pace_wait) > CurrentTime)
{
/* safe enough to give this on a local connect only */
- sendto_one(source_p, RPL_LOAD2HI, me.name, source_p->name);
+ sendto_one(source_p, form_str(RPL_LOAD2HI), me.name, source_p->name);
return;
}
@@ -324,7 +324,7 @@ do_who(struct Client *source_p, struct Client *target_p,
if (ConfigServerHide.hide_servers)
{
- sendto_one(source_p, RPL_WHOREPLY, me.name, source_p->name,
+ sendto_one(source_p, form_str(RPL_WHOREPLY), me.name, source_p->name,
(chname) ? (chname) : "*",
target_p->username, target_p->host,
HasUMode(source_p, UMODE_OPER) ? target_p->servptr->name : "*",
@@ -332,7 +332,7 @@ do_who(struct Client *source_p, struct Client *target_p,
}
else
{
- sendto_one(source_p, RPL_WHOREPLY, me.name, source_p->name,
+ sendto_one(source_p, form_str(RPL_WHOREPLY), me.name, source_p->name,
(chname) ? (chname) : "*", target_p->username,
target_p->host, target_p->servptr->name, target_p->name,
status, target_p->hopcount, target_p->info);
diff --git a/modules/m_whois.c b/modules/m_whois.c
index 3cc9fb0..6b6d247 100644
--- a/modules/m_whois.c
+++ b/modules/m_whois.c
@@ -58,7 +58,7 @@ m_whois(struct Client *client_p, struct Client *source_p,
if (parc < 2 || EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NONICKNAMEGIVEN,
+ sendto_one(source_p, form_str(ERR_NONICKNAMEGIVEN),
me.name, source_p->name);
return;
}
@@ -68,7 +68,7 @@ m_whois(struct Client *client_p, struct Client *source_p,
/* seeing as this is going across servers, we should limit it */
if ((last_used + ConfigFileEntry.pace_wait_simple) > CurrentTime)
{
- sendto_one(source_p, RPL_LOAD2HI,
+ sendto_one(source_p, form_str(RPL_LOAD2HI),
me.name, source_p->name);
return;
}
@@ -103,7 +103,7 @@ mo_whois(struct Client *client_p, struct Client *source_p,
{
if (parc < 2 || EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NONICKNAMEGIVEN,
+ sendto_one(source_p, form_str(ERR_NONICKNAMEGIVEN),
me.name, source_p->name);
return;
}
@@ -165,7 +165,7 @@ do_whois(struct Client *source_p, int parc, char *parv[])
{
if ((last_used + ConfigFileEntry.pace_wait_simple) > CurrentTime)
{
- sendto_one(source_p, RPL_LOAD2HI,
+ sendto_one(source_p, form_str(RPL_LOAD2HI),
me.name, source_p->name);
return;
}
@@ -181,11 +181,11 @@ do_whois(struct Client *source_p, int parc, char *parv[])
if (!found)
{
if (!IsDigit(*nick))
- sendto_one(source_p, ERR_NOSUCHNICK,
+ sendto_one(source_p, form_str(ERR_NOSUCHNICK),
me.name, source_p->name, nick);
}
- sendto_one(source_p, RPL_ENDOFWHOIS,
+ sendto_one(source_p, form_str(RPL_ENDOFWHOIS),
me.name, source_p->name, parv[1]);
}
@@ -293,11 +293,11 @@ whois_person(struct Client *source_p, struct Client *target_p)
server_p = target_p->servptr;
- sendto_one(source_p, RPL_WHOISUSER,
+ sendto_one(source_p, form_str(RPL_WHOISUSER),
me.name, source_p->name, target_p->name,
target_p->username, target_p->host, target_p->info);
- cur_len = mlen = snprintf(buf, sizeof(buf), RPL_WHOISCHANNELS,
+ cur_len = mlen = snprintf(buf, sizeof(buf), form_str(RPL_WHOISCHANNELS),
me.name, source_p->name, target_p->name, "");
t = buf + mlen;
@@ -330,32 +330,32 @@ whois_person(struct Client *source_p, struct Client *target_p)
}
if (HasUMode(source_p, UMODE_OPER) || !ConfigServerHide.hide_servers || target_p == source_p)
- sendto_one(source_p, RPL_WHOISSERVER,
+ sendto_one(source_p, form_str(RPL_WHOISSERVER),
me.name, source_p->name, target_p->name,
server_p->name, server_p->info);
else
- sendto_one(source_p, RPL_WHOISSERVER,
+ sendto_one(source_p, form_str(RPL_WHOISSERVER),
me.name, source_p->name, target_p->name,
ConfigServerHide.hidden_name,
ServerInfo.network_desc);
if (HasUMode(target_p, UMODE_REGISTERED))
- sendto_one(source_p, RPL_WHOISREGNICK,
+ sendto_one(source_p, form_str(RPL_WHOISREGNICK),
me.name, source_p->name, target_p->name);
if (target_p->away[0])
- sendto_one(source_p, RPL_AWAY,
+ sendto_one(source_p, form_str(RPL_AWAY),
me.name, source_p->name, target_p->name,
target_p->away);
if (HasUMode(target_p, UMODE_CALLERID) && !HasUMode(target_p, UMODE_SOFTCALLERID))
- sendto_one(source_p, RPL_TARGUMODEG,
+ sendto_one(source_p, form_str(RPL_TARGUMODEG),
me.name, source_p->name, target_p->name);
if (HasUMode(target_p, UMODE_OPER))
if (!HasUMode(target_p, UMODE_HIDDEN) || HasUMode(source_p, UMODE_OPER))
- sendto_one(source_p, HasUMode(target_p, UMODE_ADMIN) ? RPL_WHOISADMIN :
- RPL_WHOISOPERATOR,
+ sendto_one(source_p, form_str(HasUMode(target_p, UMODE_ADMIN) ? RPL_WHOISADMIN :
+ RPL_WHOISOPERATOR),
me.name, source_p->name, target_p->name);
if (target_p->sockhost[0] && strcmp(target_p->sockhost, "0"))
@@ -367,7 +367,7 @@ whois_person(struct Client *source_p, struct Client *target_p)
else
show_ip = 1;
- sendto_one(source_p, RPL_WHOISACTUALLY,
+ sendto_one(source_p, form_str(RPL_WHOISACTUALLY),
me.name, source_p->name, target_p->name,
show_ip ? target_p->sockhost : "255.255.255.255");
}
@@ -376,10 +376,10 @@ whois_person(struct Client *source_p, struct Client *target_p)
{
#ifdef HAVE_LIBCRYPTO
if (target_p->localClient->fd.ssl)
- sendto_one(source_p, RPL_WHOISSECURE,
+ sendto_one(source_p, form_str(RPL_WHOISSECURE),
me.name, source_p->name, target_p->name);
#endif
- sendto_one(source_p, RPL_WHOISIDLE,
+ sendto_one(source_p, form_str(RPL_WHOISIDLE),
me.name, source_p->name, target_p->name,
idle_time_get(source_p, target_p),
target_p->localClient->firsttime);
diff --git a/modules/m_whowas.c b/modules/m_whowas.c
index 21c4cde..2f6da27 100644
--- a/modules/m_whowas.c
+++ b/modules/m_whowas.c
@@ -75,17 +75,17 @@ whowas_do(struct Client *client_p, struct Client *source_p,
if (!irccmp(nick, temp->name))
{
- sendto_one(source_p, RPL_WHOWASUSER,
+ sendto_one(source_p, form_str(RPL_WHOWASUSER),
me.name, source_p->name, temp->name,
temp->username, temp->hostname,
temp->realname);
if (ConfigServerHide.hide_servers && !HasUMode(source_p, UMODE_OPER))
- sendto_one(source_p, RPL_WHOISSERVER,
+ sendto_one(source_p, form_str(RPL_WHOISSERVER),
me.name, source_p->name, temp->name,
ServerInfo.network_name, myctime(temp->logoff));
else
- sendto_one(source_p, RPL_WHOISSERVER,
+ sendto_one(source_p, form_str(RPL_WHOISSERVER),
me.name, source_p->name, temp->name,
temp->servername, myctime(temp->logoff));
++cur;
@@ -96,10 +96,10 @@ whowas_do(struct Client *client_p, struct Client *source_p,
}
if (!cur)
- sendto_one(source_p, ERR_WASNOSUCHNICK,
+ sendto_one(source_p, form_str(ERR_WASNOSUCHNICK),
me.name, source_p->name, nick);
- sendto_one(source_p, RPL_ENDOFWHOWAS,
+ sendto_one(source_p, form_str(RPL_ENDOFWHOWAS),
me.name, source_p->name, parv[1]);
}
@@ -116,14 +116,14 @@ m_whowas(struct Client *client_p, struct Client *source_p,
if (parc < 2 || EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NONICKNAMEGIVEN,
+ sendto_one(source_p, form_str(ERR_NONICKNAMEGIVEN),
me.name, source_p->name);
return;
}
if ((last_used + ConfigFileEntry.pace_wait) > CurrentTime)
{
- sendto_one(source_p, RPL_LOAD2HI,
+ sendto_one(source_p,form_str(RPL_LOAD2HI),
me.name, source_p->name);
return;
}
@@ -139,7 +139,7 @@ mo_whowas(struct Client *client_p, struct Client *source_p,
{
if (parc < 2 || EmptyString(parv[1]))
{
- sendto_one(source_p, ERR_NONICKNAMEGIVEN,
+ sendto_one(source_p, form_str(ERR_NONICKNAMEGIVEN),
me.name, source_p->name);
return;
}
diff --git a/modules/m_xline.c b/modules/m_xline.c
index 2841b6d..9127b08 100644
--- a/modules/m_xline.c
+++ b/modules/m_xline.c
@@ -74,7 +74,7 @@ mo_xline(struct Client *client_p, struct Client *source_p,
if (!HasOFlag(source_p, OPER_FLAG_X))
{
- sendto_one(source_p, ERR_NOPRIVS,
+ sendto_one(source_p, form_str(ERR_NOPRIVS),
me.name, source_p->name, "xline");
return;
}
@@ -232,7 +232,7 @@ mo_unxline(struct Client *client_p, struct Client *source_p,
if (!HasOFlag(source_p, OPER_FLAG_X))
{
- sendto_one(source_p, ERR_NOPRIVS,
+ sendto_one(source_p, form_str(ERR_NOPRIVS),
me.name, source_p->name, "unxline");
return;
}
@@ -298,7 +298,7 @@ valid_xline(struct Client *source_p, char *gecos, char *reason, int warn)
if (EmptyString(reason))
{
if (warn)
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
me.name, source_p->name, "XLINE");
return 0;
}
diff --git a/src/Makefile.am b/src/Makefile.am
index 65d16db..ae67d4b 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -38,6 +38,7 @@ ircd_SOURCES = channel.c \
modules.c \
motd.c \
rng_mt.c \
+ numeric.c \
packet.c \
parse.c \
s_bsd_epoll.c \
diff --git a/src/Makefile.in b/src/Makefile.in
index 6ab4f01..32c567a 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -76,14 +76,14 @@ am_ircd_OBJECTS = channel.$(OBJEXT) channel_mode.$(OBJEXT) \
list.$(OBJEXT) listener.$(OBJEXT) log.$(OBJEXT) \
match.$(OBJEXT) memory.$(OBJEXT) mempool.$(OBJEXT) \
modules.$(OBJEXT) motd.$(OBJEXT) rng_mt.$(OBJEXT) \
- packet.$(OBJEXT) parse.$(OBJEXT) s_bsd_epoll.$(OBJEXT) \
- s_bsd_poll.$(OBJEXT) s_bsd_devpoll.$(OBJEXT) \
- s_bsd_kqueue.$(OBJEXT) s_bsd_select.$(OBJEXT) \
- restart.$(OBJEXT) resv.$(OBJEXT) rsa.$(OBJEXT) \
- s_auth.$(OBJEXT) s_bsd.$(OBJEXT) s_gline.$(OBJEXT) \
- s_misc.$(OBJEXT) s_serv.$(OBJEXT) s_user.$(OBJEXT) \
- send.$(OBJEXT) version.$(OBJEXT) watch.$(OBJEXT) \
- whowas.$(OBJEXT)
+ numeric.$(OBJEXT) packet.$(OBJEXT) parse.$(OBJEXT) \
+ s_bsd_epoll.$(OBJEXT) s_bsd_poll.$(OBJEXT) \
+ s_bsd_devpoll.$(OBJEXT) s_bsd_kqueue.$(OBJEXT) \
+ s_bsd_select.$(OBJEXT) restart.$(OBJEXT) resv.$(OBJEXT) \
+ rsa.$(OBJEXT) s_auth.$(OBJEXT) s_bsd.$(OBJEXT) \
+ s_gline.$(OBJEXT) s_misc.$(OBJEXT) s_serv.$(OBJEXT) \
+ s_user.$(OBJEXT) send.$(OBJEXT) version.$(OBJEXT) \
+ watch.$(OBJEXT) whowas.$(OBJEXT)
ircd_OBJECTS = $(am_ircd_OBJECTS)
am__DEPENDENCIES_1 =
AM_V_lt = $(am__v_lt_@AM_V@)
@@ -349,6 +349,7 @@ ircd_SOURCES = channel.c \
modules.c \
motd.c \
rng_mt.c \
+ numeric.c \
packet.c \
parse.c \
s_bsd_epoll.c \
@@ -494,6 +495,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mempool.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/modules.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/motd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/numeric.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/packet.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parse.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/restart.Po@am__quote@
diff --git a/src/channel.c b/src/channel.c
index c3e201e..ac31a36 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -444,7 +444,7 @@ channel_member_names(struct Client *source_p, struct Channel *chptr,
if (PubChannel(chptr) || is_member)
{
- t = lbuf + sprintf(lbuf, RPL_NAMREPLY,
+ t = lbuf + sprintf(lbuf, form_str(RPL_NAMREPLY),
me.name, source_p->name,
channel_pub_or_secret(chptr),
chptr->chname);
@@ -494,7 +494,7 @@ channel_member_names(struct Client *source_p, struct Channel *chptr,
}
if (show_eon)
- sendto_one(source_p, RPL_ENDOFNAMES,
+ sendto_one(source_p, form_str(RPL_ENDOFNAMES),
me.name, source_p->name, chptr->chname);
}
@@ -648,7 +648,7 @@ is_banned(const struct Channel *chptr, const struct Client *who)
* \return ERR_BANNEDFROMCHAN, ERR_INVITEONLYCHAN, ERR_CHANNELISFULL
* or 0 if allowed to join.
*/
-const char *
+int
can_join(struct Client *source_p, struct Channel *chptr, const char *key)
{
if (is_banned(chptr, source_p))
@@ -677,7 +677,7 @@ can_join(struct Client *source_p, struct Channel *chptr, const char *key)
chptr->mode.limit)
return ERR_CHANNELISFULL;
- return NULL;
+ return 0;
}
int
@@ -720,7 +720,7 @@ can_send(struct Channel *chptr, struct Client *source_p, struct Membership *ms)
if (MyClient(source_p) && !IsExemptResv(source_p))
if (!(HasUMode(source_p, UMODE_OPER) && ConfigFileEntry.oper_pass_resv))
if (!match_find_resv(chptr->chname) == ConfigChannel.restrict_channels)
- return CAN_SEND_NO;
+ return ERR_CANNOTSENDTOCHAN;
if (ms != NULL || (ms = find_channel_link(source_p, chptr)))
{
@@ -731,14 +731,14 @@ can_send(struct Channel *chptr, struct Client *source_p, struct Membership *ms)
if (ConfigChannel.quiet_on_ban && MyClient(source_p))
{
if (ms->flags & CHFL_BAN_SILENCED)
- return CAN_SEND_NO;
+ return ERR_CANNOTSENDTOCHAN;
if (!(ms->flags & CHFL_BAN_CHECKED))
{
if (is_banned(chptr, source_p))
{
ms->flags |= (CHFL_BAN_CHECKED|CHFL_BAN_SILENCED);
- return CAN_SEND_NO;
+ return ERR_CANNOTSENDTOCHAN;
}
ms->flags |= CHFL_BAN_CHECKED;
@@ -746,10 +746,10 @@ can_send(struct Channel *chptr, struct Client *source_p, struct Membership *ms)
}
}
else if (chptr->mode.mode & MODE_NOPRIVMSGS)
- return CAN_SEND_NO;
+ return ERR_CANNOTSENDTOCHAN;
if (chptr->mode.mode & MODE_MODERATED)
- return CAN_SEND_NO;
+ return ERR_CANNOTSENDTOCHAN;
return CAN_SEND_NONOP;
}
diff --git a/src/channel_mode.c b/src/channel_mode.c
index 7d82913..2a21b76 100644
--- a/src/channel_mode.c
+++ b/src/channel_mode.c
@@ -168,7 +168,7 @@ add_id(struct Client *client_p, struct Channel *chptr, char *banid, int type)
if (num_mask >= ConfigChannel.max_bans)
{
- sendto_one(client_p, ERR_BANLISTFULL,
+ sendto_one(client_p, form_str(ERR_BANLISTFULL),
me.name, client_p->name, chptr->chname, banid);
return 0;
}
@@ -546,7 +546,7 @@ chm_nosuch(struct Client *client_p, struct Client *source_p,
return;
*errors |= SM_ERR_UNKNOWN;
- sendto_one(source_p, ERR_UNKNOWNMODE, me.name,
+ sendto_one(source_p, form_str(ERR_UNKNOWNMODE), me.name,
source_p->name, c);
}
@@ -563,8 +563,8 @@ chm_simple(struct Client *client_p, struct Client *source_p, struct Channel *chp
((mode_type == MODE_PRIVATE) && (alev < CHACCESS_CHANOP)))
{
if (!(*errors & SM_ERR_NOOPS))
- sendto_one(source_p, alev == CHACCESS_NOTONCHAN ?
- ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED,
+ sendto_one(source_p, form_str(alev == CHACCESS_NOTONCHAN ?
+ ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED),
me.name, source_p->name, chname);
*errors |= SM_ERR_NOOPS;
return;
@@ -625,8 +625,8 @@ chm_registered(struct Client *client_p, struct Client *source_p, struct Channel
if (!IsServer(source_p) && !HasFlag(source_p, FLAGS_SERVICE))
{
if (!(*errors & SM_ERR_ONLYSERVER))
- sendto_one(source_p, alev == CHACCESS_NOTONCHAN ?
- ERR_NOTONCHANNEL : ERR_ONLYSERVERSCANCHANGE,
+ sendto_one(source_p, form_str(alev == CHACCESS_NOTONCHAN ?
+ ERR_NOTONCHANNEL : ERR_ONLYSERVERSCANCHANGE),
me.name, source_p->name, chname);
*errors |= SM_ERR_ONLYSERVER;
return;
@@ -687,8 +687,8 @@ chm_operonly(struct Client *client_p, struct Client *source_p, struct Channel *c
((mode_type == MODE_PRIVATE) && (alev < CHACCESS_CHANOP)))
{
if (!(*errors & SM_ERR_NOOPS))
- sendto_one(source_p, alev == CHACCESS_NOTONCHAN ?
- ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED,
+ sendto_one(source_p, form_str(alev == CHACCESS_NOTONCHAN ?
+ ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED),
me.name, source_p->name, chname);
*errors |= SM_ERR_NOOPS;
return;
@@ -698,10 +698,10 @@ chm_operonly(struct Client *client_p, struct Client *source_p, struct Channel *c
if (!(*errors & SM_ERR_NOTOPER))
{
if (alev == CHACCESS_NOTONCHAN)
- sendto_one(source_p, ERR_NOTONCHANNEL,
+ sendto_one(source_p, form_str(ERR_NOTONCHANNEL),
me.name, source_p->name, chname);
else
- sendto_one(source_p, ERR_NOPRIVILEGES,
+ sendto_one(source_p, form_str(ERR_NOPRIVILEGES),
me.name, source_p->name);
}
@@ -764,13 +764,13 @@ chm_ban(struct Client *client_p, struct Client *source_p,
DLINK_FOREACH(ptr, chptr->banlist.head)
{
const struct Ban *banptr = ptr->data;
- sendto_one(client_p, RPL_BANLIST,
+ sendto_one(client_p, form_str(RPL_BANLIST),
me.name, client_p->name, chname,
banptr->name, banptr->username, banptr->host,
banptr->who, banptr->when);
}
- sendto_one(source_p, RPL_ENDOFBANLIST, me.name,
+ sendto_one(source_p, form_str(RPL_ENDOFBANLIST), me.name,
source_p->name, chname);
return;
}
@@ -778,8 +778,8 @@ chm_ban(struct Client *client_p, struct Client *source_p,
if (alev < CHACCESS_HALFOP)
{
if (!(*errors & SM_ERR_NOOPS))
- sendto_one(source_p, alev == CHACCESS_NOTONCHAN ?
- ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED,
+ sendto_one(source_p, form_str(alev == CHACCESS_NOTONCHAN ?
+ ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED),
me.name, source_p->name, chname);
*errors |= SM_ERR_NOOPS;
return;
@@ -830,8 +830,8 @@ chm_except(struct Client *client_p, struct Client *source_p,
if (alev < CHACCESS_HALFOP)
{
if (!(*errors & SM_ERR_NOOPS))
- sendto_one(source_p, alev == CHACCESS_NOTONCHAN ?
- ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED,
+ sendto_one(source_p, form_str(alev == CHACCESS_NOTONCHAN ?
+ ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED),
me.name, source_p->name, chname);
*errors |= SM_ERR_NOOPS;
return;
@@ -849,13 +849,13 @@ chm_except(struct Client *client_p, struct Client *source_p,
DLINK_FOREACH(ptr, chptr->exceptlist.head)
{
const struct Ban *banptr = ptr->data;
- sendto_one(client_p, RPL_EXCEPTLIST,
+ sendto_one(client_p, form_str(RPL_EXCEPTLIST),
me.name, client_p->name, chname,
banptr->name, banptr->username, banptr->host,
banptr->who, banptr->when);
}
- sendto_one(source_p, RPL_ENDOFEXCEPTLIST, me.name,
+ sendto_one(source_p, form_str(RPL_ENDOFEXCEPTLIST), me.name,
source_p->name, chname);
return;
}
@@ -905,8 +905,8 @@ chm_invex(struct Client *client_p, struct Client *source_p,
if (alev < CHACCESS_HALFOP)
{
if (!(*errors & SM_ERR_NOOPS))
- sendto_one(source_p, alev == CHACCESS_NOTONCHAN ?
- ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED,
+ sendto_one(source_p, form_str(alev == CHACCESS_NOTONCHAN ?
+ ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED),
me.name, source_p->name, chname);
*errors |= SM_ERR_NOOPS;
return;
@@ -924,13 +924,13 @@ chm_invex(struct Client *client_p, struct Client *source_p,
DLINK_FOREACH(ptr, chptr->invexlist.head)
{
const struct Ban *banptr = ptr->data;
- sendto_one(client_p, RPL_INVITELIST, me.name,
+ sendto_one(client_p, form_str(RPL_INVITELIST), me.name,
client_p->name, chname,
banptr->name, banptr->username, banptr->host,
banptr->who, banptr->when);
}
- sendto_one(source_p, RPL_ENDOFINVITELIST, me.name,
+ sendto_one(source_p, form_str(RPL_ENDOFINVITELIST), me.name,
source_p->name, chname);
return;
}
@@ -1014,8 +1014,8 @@ chm_op(struct Client *client_p, struct Client *source_p,
if (alev < CHACCESS_CHANOP)
{
if (!(*errors & SM_ERR_NOOPS))
- sendto_one(source_p, alev == CHACCESS_NOTONCHAN ?
- ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED,
+ sendto_one(source_p, form_str(alev == CHACCESS_NOTONCHAN ?
+ ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED),
me.name, source_p->name, chname);
*errors |= SM_ERR_NOOPS;
return;
@@ -1034,7 +1034,7 @@ chm_op(struct Client *client_p, struct Client *source_p,
if ((member = find_channel_link(targ_p, chptr)) == NULL)
{
if (!(*errors & SM_ERR_NOTONCHANNEL))
- sendto_one(source_p, ERR_USERNOTINCHANNEL,
+ sendto_one(source_p, form_str(ERR_USERNOTINCHANNEL),
me.name, source_p->name, opnick, chname);
*errors |= SM_ERR_NOTONCHANNEL;
return;
@@ -1120,8 +1120,8 @@ chm_hop(struct Client *client_p, struct Client *source_p,
((chptr->mode.mode & MODE_PRIVATE) ? CHACCESS_CHANOP : CHACCESS_HALFOP))
{
if (!(*errors & SM_ERR_NOOPS))
- sendto_one(source_p, alev == CHACCESS_NOTONCHAN ?
- ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED,
+ sendto_one(source_p, form_str(alev == CHACCESS_NOTONCHAN ?
+ ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED),
me.name, source_p->name, chname);
*errors |= SM_ERR_NOOPS;
return;
@@ -1140,7 +1140,7 @@ chm_hop(struct Client *client_p, struct Client *source_p,
if ((member = find_channel_link(targ_p, chptr)) == NULL)
{
if (!(*errors & SM_ERR_NOTONCHANNEL))
- sendto_one(source_p, ERR_USERNOTINCHANNEL,
+ sendto_one(source_p, form_str(ERR_USERNOTINCHANNEL),
me.name, source_p->name, opnick, chname);
*errors |= SM_ERR_NOTONCHANNEL;
return;
@@ -1196,8 +1196,8 @@ chm_voice(struct Client *client_p, struct Client *source_p,
if (alev < CHACCESS_HALFOP)
{
if (!(*errors & SM_ERR_NOOPS))
- sendto_one(source_p, alev == CHACCESS_NOTONCHAN ?
- ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED,
+ sendto_one(source_p, form_str(alev == CHACCESS_NOTONCHAN ?
+ ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED),
me.name, source_p->name, chname);
*errors |= SM_ERR_NOOPS;
return;
@@ -1216,7 +1216,7 @@ chm_voice(struct Client *client_p, struct Client *source_p,
if ((member = find_channel_link(targ_p, chptr)) == NULL)
{
if (!(*errors & SM_ERR_NOTONCHANNEL))
- sendto_one(source_p, ERR_USERNOTINCHANNEL,
+ sendto_one(source_p, form_str(ERR_USERNOTINCHANNEL),
me.name, source_p->name, opnick, chname);
*errors |= SM_ERR_NOTONCHANNEL;
return;
@@ -1258,8 +1258,8 @@ chm_limit(struct Client *client_p, struct Client *source_p,
if (alev < CHACCESS_HALFOP)
{
if (!(*errors & SM_ERR_NOOPS))
- sendto_one(source_p, alev == CHACCESS_NOTONCHAN ?
- ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED,
+ sendto_one(source_p, form_str(alev == CHACCESS_NOTONCHAN ?
+ ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED),
me.name, source_p->name, chname);
*errors |= SM_ERR_NOOPS;
return;
@@ -1323,8 +1323,8 @@ chm_key(struct Client *client_p, struct Client *source_p,
if (alev < CHACCESS_HALFOP)
{
if (!(*errors & SM_ERR_NOOPS))
- sendto_one(source_p, alev == CHACCESS_NOTONCHAN ?
- ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED,
+ sendto_one(source_p, form_str(alev == CHACCESS_NOTONCHAN ?
+ ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED),
me.name, source_p->name, chname);
*errors |= SM_ERR_NOOPS;
return;
diff --git a/src/client.c b/src/client.c
index 3962e0e..17e5b34 100644
--- a/src/client.c
+++ b/src/client.c
@@ -462,7 +462,7 @@ ban_them(struct Client *client_p, struct MaskItem *conf)
type_string, get_client_name(client_p, HIDE_IP));
if (IsClient(client_p))
- sendto_one(client_p, ERR_YOUREBANNEDCREEP,
+ sendto_one(client_p, form_str(ERR_YOUREBANNEDCREEP),
me.name, client_p->name, user_reason);
exit_client(client_p, &me, user_reason);
@@ -546,7 +546,7 @@ find_chasing(struct Client *client_p, struct Client *source_p, const char *user,
(time_t)ConfigFileEntry.kill_chase_time_limit))
== NULL)
{
- sendto_one(source_p, ERR_NOSUCHNICK,
+ sendto_one(source_p, form_str(ERR_NOSUCHNICK),
me.name, source_p->name, user);
return NULL;
}
diff --git a/src/conf.c b/src/conf.c
index c8c1f63..ff564f6 100644
--- a/src/conf.c
+++ b/src/conf.c
@@ -251,7 +251,7 @@ report_confitem_types(struct Client *source_p, enum maskitem_type type)
{
conf = ptr->data;
- sendto_one(source_p, RPL_STATSXLINE,
+ sendto_one(source_p, form_str(RPL_STATSXLINE),
me.name, source_p->name,
conf->until ? "x": "X", conf->count,
conf->name, conf->reason);
@@ -264,7 +264,7 @@ report_confitem_types(struct Client *source_p, enum maskitem_type type)
{
conf = ptr->data;
- sendto_one(source_p, RPL_STATSXLINE,
+ sendto_one(source_p, form_str(RPL_STATSXLINE),
me.name, source_p->name,
"XR", conf->count,
conf->name, conf->reason);
@@ -276,7 +276,7 @@ report_confitem_types(struct Client *source_p, enum maskitem_type type)
{
conf = ptr->data;
- sendto_one(source_p, RPL_STATSKLINE, me.name,
+ sendto_one(source_p, form_str(RPL_STATSKLINE), me.name,
source_p->name, "KR", conf->host, conf->user,
conf->reason);
}
@@ -298,7 +298,7 @@ report_confitem_types(struct Client *source_p, enum maskitem_type type)
else
*p++ = ToLower(shared->letter);
- sendto_one(source_p, RPL_STATSULINE,
+ sendto_one(source_p, form_str(RPL_STATSULINE),
me.name, source_p->name, conf->name,
conf->user?conf->user: "*",
conf->host?conf->host: "*", buf);
@@ -318,7 +318,7 @@ report_confitem_types(struct Client *source_p, enum maskitem_type type)
else
*p++ = ToLower(shared->letter);
- sendto_one(source_p, RPL_STATSULINE,
+ sendto_one(source_p, form_str(RPL_STATSULINE),
me.name, source_p->name, conf->name,
"*", "*", buf);
}
@@ -332,12 +332,12 @@ report_confitem_types(struct Client *source_p, enum maskitem_type type)
/* Don't allow non opers to see oper privs */
if (HasUMode(source_p, UMODE_OPER))
- sendto_one(source_p, RPL_STATSOLINE,
+ sendto_one(source_p, form_str(RPL_STATSOLINE),
me.name, source_p->name, 'O', conf->user, conf->host,
conf->name, oper_privs_as_string(conf->port),
conf->class ? conf->class->name : "<default>");
else
- sendto_one(source_p, RPL_STATSOLINE,
+ sendto_one(source_p, form_str(RPL_STATSOLINE),
me.name, source_p->name, 'O', conf->user, conf->host,
conf->name, "0",
conf->class ? conf->class->name : "<default>");
@@ -348,7 +348,7 @@ report_confitem_types(struct Client *source_p, enum maskitem_type type)
DLINK_FOREACH(ptr, class_get_list()->head)
{
class = ptr->data;
- sendto_one(source_p, RPL_STATSYLINE,
+ sendto_one(source_p, form_str(RPL_STATSYLINE),
me.name, source_p->name, 'Y',
class->name, class->ping_freq,
class->con_freq,
@@ -365,7 +365,7 @@ report_confitem_types(struct Client *source_p, enum maskitem_type type)
DLINK_FOREACH(ptr, service_items.head)
{
conf = ptr->data;
- sendto_one(source_p, RPL_STATSSERVICE,
+ sendto_one(source_p, form_str(RPL_STATSSERVICE),
me.name, source_p->name, 'S', "*", conf->name, 0, 0);
}
break;
@@ -391,12 +391,12 @@ report_confitem_types(struct Client *source_p, enum maskitem_type type)
* Allow admins to see actual ips unless hide_server_ips is enabled
*/
if (!ConfigServerHide.hide_server_ips && HasUMode(source_p, UMODE_ADMIN))
- sendto_one(source_p, RPL_STATSCLINE,
+ sendto_one(source_p, form_str(RPL_STATSCLINE),
me.name, source_p->name, 'C', conf->host,
buf, conf->name, conf->port,
conf->class ? conf->class->name : "<default>");
else
- sendto_one(source_p, RPL_STATSCLINE,
+ sendto_one(source_p, form_str(RPL_STATSCLINE),
me.name, source_p->name, 'C',
"*@127.0.0.1", buf, conf->name, conf->port,
conf->class ? conf->class->name : "<default>");
@@ -409,7 +409,7 @@ report_confitem_types(struct Client *source_p, enum maskitem_type type)
conf = ptr->data;
DLINK_FOREACH(dptr, conf->hub_list.head)
- sendto_one(source_p, RPL_STATSHLINE, me.name,
+ sendto_one(source_p, form_str(RPL_STATSHLINE), me.name,
source_p->name, 'H', dptr->data, conf->name, 0, "*");
}
@@ -418,7 +418,7 @@ report_confitem_types(struct Client *source_p, enum maskitem_type type)
conf = ptr->data;
DLINK_FOREACH(dptr, conf->leaf_list.head)
- sendto_one(source_p, RPL_STATSLLINE, me.name,
+ sendto_one(source_p, form_str(RPL_STATSLLINE), me.name,
source_p->name, 'L', dptr->data, conf->name, 0, "*");
}
@@ -549,7 +549,7 @@ verify_access(struct Client *client_p)
{
if (IsConfRedir(conf))
{
- sendto_one(client_p, RPL_REDIR,
+ sendto_one(client_p, form_str(RPL_REDIR),
me.name, client_p->name,
conf->name ? conf->name : "",
conf->port);
@@ -2146,7 +2146,7 @@ parse_aline(const char *cmd, struct Client *source_p,
if (parc == 0)
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
me.name, source_p->name, cmd);
return -1;
}
@@ -2181,14 +2181,14 @@ parse_aline(const char *cmd, struct Client *source_p,
if (!HasOFlag(source_p, OPER_FLAG_REMOTEBAN))
{
- sendto_one(source_p, ERR_NOPRIVS,
+ sendto_one(source_p, form_str(ERR_NOPRIVS),
me.name, source_p->name, "remoteban");
return -1;
}
if (parc == 0 || EmptyString(*parv))
{
- sendto_one(source_p, ERR_NEEDMOREPARAMS,
+ sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
me.name, source_p->name, cmd);
return -1;
}
diff --git a/src/conf_lexer.c b/src/conf_lexer.c
index a1e3a9f..ea3bd39 100644
--- a/src/conf_lexer.c
+++ b/src/conf_lexer.c
@@ -364,8 +364,8 @@ static void yy_fatal_error (yyconst char msg[] );
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 247
-#define YY_END_OF_BUFFER 248
+#define YY_NUM_RULES 248
+#define YY_END_OF_BUFFER 249
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -373,24 +373,24 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static yyconst flex_int16_t yy_accept[1586] =
+static yyconst flex_int16_t yy_accept[1598] =
{ 0,
- 4, 4, 248, 246, 4, 3, 246, 5, 246, 246,
- 6, 246, 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 246, 246, 246, 246, 246, 4, 3, 0, 7,
- 5, 245, 0, 2, 5, 6, 0, 0, 0, 0,
+ 4, 4, 249, 247, 4, 3, 247, 5, 247, 247,
+ 6, 247, 247, 247, 247, 247, 247, 247, 247, 247,
+ 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
+ 247, 247, 247, 247, 247, 247, 4, 3, 0, 7,
+ 5, 246, 0, 2, 5, 6, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 69, 0, 239, 0, 0, 0, 0, 0, 0,
- 0, 244, 0, 0, 0, 0, 0, 0, 0, 100,
+ 0, 69, 0, 240, 0, 0, 0, 0, 0, 0,
+ 0, 245, 0, 0, 0, 0, 0, 0, 0, 101,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 226, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 227, 0,
0, 0, 0, 0, 30, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 65, 0, 0, 0,
@@ -398,157 +398,159 @@ static yyconst flex_int16_t yy_accept[1586] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 208, 0,
- 0, 0, 0, 0, 0, 147, 0, 0, 150, 0,
- 0, 0, 0, 210, 132, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 209,
+ 0, 0, 0, 0, 0, 0, 148, 0, 0, 151,
+ 0, 0, 0, 0, 211, 133, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 169, 0, 0,
- 0, 0, 0, 13, 0, 200, 234, 0, 0, 0,
- 0, 0, 0, 0, 0, 225, 203, 0, 0, 28,
+ 0, 0, 0, 0, 0, 0, 0, 0, 170, 0,
+ 0, 0, 0, 0, 13, 0, 201, 235, 0, 0,
+ 0, 0, 0, 0, 0, 0, 226, 204, 0, 0,
+ 28, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 41, 0, 0, 206, 0, 0, 0, 0,
+
+ 0, 0, 0, 64, 229, 0, 0, 0, 70, 71,
+ 0, 0, 74, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 95,
+ 0, 0, 0, 99, 0, 0, 0, 0, 0, 108,
+ 0, 0, 195, 0, 115, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 129, 0, 0, 0, 0,
+ 0, 0, 152, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 156, 0, 0, 0, 0,
+ 0, 0, 0, 165, 0, 0, 0, 0, 0, 225,
+ 0, 221, 0, 0, 9, 0, 0, 0, 234, 0,
+
+ 0, 202, 0, 0, 21, 0, 0, 205, 0, 0,
+ 0, 34, 0, 0, 37, 0, 0, 0, 0, 0,
+ 42, 0, 44, 0, 46, 0, 0, 0, 0, 0,
+ 0, 228, 0, 0, 0, 0, 239, 0, 0, 76,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 41, 0, 0, 205, 0, 0, 0, 0, 0,
-
- 0, 0, 64, 228, 0, 0, 0, 70, 71, 0,
- 0, 74, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 94, 0, 0,
- 0, 98, 0, 0, 0, 0, 0, 107, 0, 0,
- 194, 0, 114, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 128, 0, 0, 0, 0, 0, 0,
- 151, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 155, 0, 0, 0, 0, 0, 0,
- 0, 164, 0, 0, 0, 0, 0, 224, 0, 220,
- 0, 0, 9, 0, 0, 0, 233, 0, 0, 201,
-
- 0, 0, 21, 0, 0, 204, 0, 0, 0, 34,
- 0, 0, 37, 0, 0, 0, 0, 0, 42, 0,
- 44, 0, 46, 0, 0, 0, 0, 0, 0, 227,
- 0, 0, 0, 0, 238, 0, 0, 76, 0, 0,
+ 0, 0, 0, 0, 0, 244, 0, 0, 0, 0,
+ 0, 0, 223, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 243, 0, 0, 0, 0, 0, 222,
+ 0, 0, 0, 120, 0, 123, 0, 0, 0, 0,
+ 0, 0, 0, 142, 0, 0, 0, 0, 0, 0,
+
+ 207, 0, 153, 139, 0, 0, 0, 0, 0, 0,
+ 140, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 166, 0, 0, 0, 224, 169, 220,
+ 0, 0, 0, 11, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 40, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 58, 0, 0, 0, 0, 0, 0, 238, 0,
+ 0, 0, 0, 0, 0, 79, 219, 81, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 119, 0, 122, 0, 0, 0, 0, 0, 0, 0,
- 141, 0, 0, 0, 0, 0, 0, 206, 0, 152,
+ 243, 0, 0, 231, 0, 0, 194, 222, 0, 0,
- 138, 0, 0, 0, 0, 0, 0, 139, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 165, 0, 0, 0, 223, 168, 219, 0, 0, 0,
- 11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 40, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 58, 0,
- 0, 0, 0, 0, 0, 237, 0, 0, 0, 0,
- 0, 0, 79, 218, 81, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 242, 0, 230,
- 0, 0, 193, 221, 0, 0, 0, 0, 0, 0,
-
+ 0, 0, 0, 0, 0, 111, 0, 0, 0, 0,
+ 0, 0, 119, 0, 0, 124, 125, 0, 0, 0,
+ 0, 0, 233, 0, 143, 0, 0, 149, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 110, 0, 0, 0, 0, 0, 0, 118, 0,
- 0, 123, 124, 0, 0, 0, 0, 0, 232, 0,
- 142, 0, 0, 148, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 157, 209,
- 0, 0, 0, 197, 0, 0, 0, 166, 215, 0,
- 167, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 18, 0, 22, 23, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 45, 0, 0, 0, 0,
- 0, 53, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 158, 210, 0, 0, 0, 198, 0, 0,
+ 0, 167, 216, 0, 168, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 18, 0, 22, 23, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 45,
+ 0, 0, 0, 0, 0, 53, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 229, 0, 0, 192, 207, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 230, 0, 0,
+ 193, 208, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 126, 0, 0, 0, 0, 231, 0, 0,
- 0, 145, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 127, 0, 0,
+ 0, 0, 232, 0, 0, 0, 146, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 159, 158, 0, 196, 161, 0, 0, 0, 0,
- 0, 0, 0, 14, 216, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 160, 159, 0, 197,
+ 162, 0, 0, 0, 0, 0, 0, 0, 14, 217,
- 0, 0, 0, 0, 0, 0, 0, 211, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 66, 0, 0, 0, 0, 236, 0, 0,
- 0, 0, 0, 191, 0, 0, 0, 0, 84, 0,
- 0, 0, 0, 0, 0, 241, 85, 0, 0, 0,
- 0, 0, 0, 0, 0, 104, 0, 109, 0, 212,
- 0, 0, 0, 0, 111, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 212, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 66, 0, 0,
+ 0, 0, 237, 0, 0, 0, 0, 0, 192, 0,
+ 0, 0, 0, 84, 0, 0, 0, 0, 0, 0,
+ 242, 0, 85, 0, 0, 0, 0, 0, 0, 0,
+ 0, 105, 0, 110, 0, 213, 0, 0, 0, 0,
+ 112, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 15, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 38, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 15, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 38,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 214, 0, 0, 235, 0, 0, 78, 0, 0, 0,
- 0, 0, 83, 86, 0, 0, 0, 0, 91, 240,
+ 0, 0, 0, 0, 0, 0, 215, 0, 0, 236,
+ 0, 0, 78, 0, 0, 0, 0, 0, 83, 86,
+ 0, 0, 0, 0, 91, 241, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 187, 0, 113, 0, 0, 0,
- 120, 121, 125, 0, 0, 0, 0, 0, 0, 0,
+ 0, 188, 0, 114, 0, 0, 0, 121, 122, 126,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 160, 0, 0, 0, 1, 0, 1, 0, 0, 0,
- 0, 0, 202, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 161, 0, 0,
+ 0, 1, 0, 1, 0, 0, 0, 0, 0, 203,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 55, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 171, 0, 0, 87, 0,
- 0, 0, 88, 0, 0, 0, 56, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 115, 0, 0, 0, 0, 0, 0, 0, 143,
- 144, 0, 213, 149, 0, 0, 0, 0, 0, 0,
+ 55, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 172, 0, 0, 87, 0, 0, 0, 88,
+ 0, 0, 0, 0, 56, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 116,
+ 0, 0, 0, 0, 0, 0, 0, 144, 145, 0,
+ 214, 150, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,
- 0, 0, 29, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 54, 0, 59, 0,
- 0, 0, 0, 0, 0, 0, 0, 189, 180, 0,
- 82, 0, 0, 0, 195, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 199, 0,
- 112, 0, 117, 0, 129, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 24, 0, 0,
+ 29, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 54, 0, 59, 0, 0, 0,
+ 0, 0, 0, 0, 0, 190, 181, 0, 82, 0,
+ 0, 0, 196, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 200, 0, 113,
+ 0, 118, 0, 130, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 162, 0, 0, 0,
-
- 0, 0, 0, 0, 0, 0, 31, 0, 0, 0,
- 36, 39, 0, 0, 0, 47, 48, 0, 0, 0,
- 0, 62, 0, 0, 0, 0, 0, 0, 0, 77,
- 0, 0, 0, 0, 0, 0, 0, 0, 96, 97,
- 99, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 116, 0, 0, 0, 0, 0, 217, 153, 0, 0,
+
+ 0, 0, 0, 0, 0, 163, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 31, 0, 0, 0, 36,
+ 39, 0, 0, 0, 47, 48, 0, 0, 0, 0,
+ 62, 0, 0, 0, 0, 0, 0, 0, 77, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 97, 98,
+ 100, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 117, 0, 0, 0, 0, 0, 218, 154, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 178, 0, 0, 0, 10, 0, 0, 0, 0,
+ 0, 179, 0, 0, 0, 10, 0, 0, 0, 0,
0, 0, 0, 0, 35, 0, 43, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 175, 0, 0, 95, 0, 0, 103,
- 0, 106, 0, 0, 0, 0, 0, 0, 0, 140,
- 146, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 163, 0, 0, 179, 181, 0, 0, 0, 16,
- 0, 0, 0, 0, 0, 0, 49, 51, 0, 0,
- 0, 0, 63, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 108,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 8, 176, 0, 0,
- 0, 0, 0, 0, 0, 0, 52, 0, 0, 0,
-
- 61, 67, 0, 0, 73, 0, 0, 0, 0, 0,
- 89, 0, 92, 0, 0, 105, 0, 0, 0, 0,
- 0, 0, 0, 137, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 19, 20, 0, 0, 0,
- 0, 0, 0, 0, 57, 0, 0, 72, 0, 0,
- 0, 0, 172, 90, 0, 0, 102, 0, 198, 188,
- 0, 0, 0, 0, 0, 0, 0, 182, 0, 0,
+ 0, 0, 0, 176, 0, 0, 0, 96, 0, 0,
+ 104, 0, 107, 0, 0, 0, 0, 0, 0, 0,
+ 141, 147, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 164, 0, 0, 180, 182, 0, 0, 0,
+ 16, 0, 0, 0, 0, 0, 0, 49, 51, 0,
+ 0, 0, 0, 63, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 92, 0, 0, 0, 0, 0,
+ 0, 109, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 8, 177,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 52, 0,
+ 0, 0, 61, 67, 0, 0, 73, 0, 0, 0,
+ 0, 0, 89, 0, 93, 0, 0, 106, 0, 0,
+ 0, 0, 0, 0, 0, 138, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 19, 20, 0,
+ 0, 0, 0, 0, 0, 0, 57, 0, 0, 72,
+ 0, 0, 0, 0, 173, 90, 0, 0, 103, 0,
+ 199, 189, 0, 0, 0, 0, 0, 0, 0, 183,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 127, 0, 0, 0, 134, 136, 135, 185, 184,
- 183, 186, 0, 0, 0, 25, 0, 0, 0, 0,
- 170, 0, 0, 0, 0, 0, 173, 174, 0, 101,
- 0, 0, 0, 0, 0, 156, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 190, 0, 0, 0, 131,
- 0, 0, 0, 0, 0, 0, 0, 0, 60, 68,
- 0, 0, 0, 130, 133, 0, 0, 0, 0, 32,
- 0, 0, 75, 0, 17, 154, 0, 0, 0, 0,
- 50, 93, 0, 0, 0, 33, 0, 0, 27, 0,
- 0, 0, 26, 177, 0
+ 0, 0, 0, 128, 0, 0, 0, 135, 137, 136,
+ 186, 185, 184, 187, 0, 0, 0, 25, 0, 0,
+ 0, 0, 171, 0, 0, 0, 0, 0, 174, 175,
+ 0, 102, 0, 0, 0, 0, 0, 157, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 191, 0, 0,
+ 0, 132, 0, 0, 0, 0, 0, 0, 0, 0,
+ 60, 68, 0, 0, 0, 131, 134, 0, 0, 0,
+ 0, 32, 0, 0, 75, 0, 17, 155, 0, 0,
+ 0, 0, 50, 94, 0, 0, 0, 33, 0, 0,
+ 27, 0, 0, 0, 26, 178, 0
+
} ;
static yyconst flex_int32_t yy_ec[256] =
@@ -594,363 +596,369 @@ static yyconst flex_int32_t yy_meta[69] =
1, 1, 1, 1, 1, 1, 1, 1
} ;
-static yyconst flex_int16_t yy_base[1591] =
+static yyconst flex_int16_t yy_base[1603] =
{ 0,
- 0, 0, 3039, 3040, 3036, 0, 66, 0, 64, 66,
+ 0, 0, 3062, 3063, 3059, 0, 66, 0, 64, 66,
66, 98, 43, 146, 75, 58, 85, 76, 117, 109,
51, 154, 155, 197, 239, 53, 177, 57, 143, 283,
- 323, 190, 122, 168, 128, 175, 3035, 0, 86, 3040,
- 0, 3040, 170, 3040, 0, 220, 191, 188, 188, 198,
+ 323, 190, 122, 168, 128, 175, 3058, 0, 86, 3063,
+ 0, 3063, 170, 3063, 0, 220, 191, 188, 188, 198,
200, 202, 203, 204, 220, 223, 240, 239, 245, 231,
227, 276, 278, 244, 237, 254, 261, 271, 308, 287,
288, 305, 300, 329, 335, 298, 332, 330, 335, 331,
324, 330, 344, 329, 344, 348, 345, 364, 371, 379,
- 369, 342, 367, 375, 391, 378, 388, 394, 394, 2994,
-
- 385, 395, 416, 388, 385, 430, 392, 466, 406, 441,
- 436, 434, 412, 439, 465, 438, 453, 438, 445, 449,
- 454, 2993, 473, 476, 518, 488, 483, 487, 506, 495,
- 509, 510, 509, 512, 498, 3040, 515, 519, 514, 534,
- 531, 2992, 530, 531, 529, 533, 534, 544, 540, 556,
- 543, 564, 542, 565, 3040, 572, 561, 557, 561, 569,
- 563, 577, 570, 579, 575, 583, 586, 578, 581, 592,
- 584, 597, 596, 608, 587, 598, 2991, 603, 610, 137,
- 607, 602, 615, 615, 628, 626, 624, 616, 622, 3040,
- 627, 2990, 621, 641, 623, 626, 631, 647, 652, 651,
-
- 637, 650, 674, 664, 652, 667, 654, 667, 669, 661,
- 665, 680, 682, 671, 669, 683, 690, 695, 3040, 683,
- 685, 2989, 686, 702, 687, 3040, 696, 697, 3040, 715,
- 712, 706, 712, 3040, 708, 709, 716, 728, 716, 734,
- 727, 738, 740, 724, 734, 736, 740, 747, 743, 741,
- 741, 749, 748, 754, 758, 760, 760, 3040, 768, 765,
- 769, 768, 2988, 3040, 782, 3040, 772, 787, 787, 780,
- 781, 2987, 778, 778, 794, 3040, 3040, 793, 781, 3040,
- 785, 802, 801, 2986, 794, 801, 789, 810, 800, 799,
- 818, 3040, 809, 812, 3040, 815, 817, 832, 837, 831,
-
- 834, 2985, 3040, 827, 834, 830, 830, 3040, 3040, 2984,
- 846, 2983, 851, 849, 845, 2982, 838, 855, 847, 862,
- 894, 866, 875, 862, 877, 873, 880, 3040, 875, 2981,
- 877, 2980, 875, 884, 884, 893, 900, 920, 2979, 884,
- 3040, 2978, 3040, 909, 891, 910, 916, 919, 922, 918,
- 926, 926, 950, 2977, 933, 936, 937, 948, 950, 936,
- 3040, 947, 957, 955, 3007, 971, 946, 951, 965, 3007,
- 2974, 984, 990, 3040, 988, 974, 987, 988, 986, 981,
- 994, 3040, 999, 985, 992, 2973, 990, 990, 1005, 994,
- 993, 995, 1007, 1014, 1014, 1007, 3040, 1007, 1017, 2972,
-
- 1034, 1042, 3040, 1040, 1044, 3040, 1036, 1041, 1039, 3040,
- 1044, 1039, 3040, 1041, 1054, 1039, 1047, 1058, 3040, 1058,
- 3040, 1063, 2971, 1053, 1051, 1048, 1060, 1056, 1064, 3040,
- 1075, 1074, 1073, 1081, 1074, 1095, 1074, 2970, 2969, 1088,
- 2968, 1088, 1085, 1101, 1104, 1107, 1103, 1100, 1109, 1101,
- 1109, 1118, 1116, 1102, 1097, 1118, 1120, 1112, 1131, 1118,
- 1134, 1143, 1129, 1150, 1150, 1147, 1153, 1149, 1144, 1145,
- 2967, 1165, 1154, 1144, 1169, 1175, 1157, 2966, 1159, 1162,
- 3040, 1171, 3040, 1169, 1176, 1173, 1192, 1201, 1189, 1205,
- 3040, 1196, 1195, 1212, 1201, 1215, 2965, 3040, 1219, 2964,
-
- 3040, 1218, 1213, 1219, 2963, 1205, 1221, 3040, 1215, 1207,
- 1214, 1216, 1230, 1227, 1230, 1236, 1227, 1241, 1253, 1246,
- 2991, 1247, 1250, 1263, 3040, 3040, 3040, 1263, 2961, 1250,
- 3040, 1261, 1257, 1260, 1268, 1260, 1272, 1267, 1271, 1263,
- 1263, 1264, 1269, 1281, 1275, 1280, 1278, 2960, 3040, 1298,
- 2959, 1289, 1297, 1310, 2958, 1298, 2957, 1314, 2956, 1316,
- 1316, 1303, 2955, 1322, 1315, 3040, 1321, 1311, 1328, 1330,
- 1334, 1333, 3040, 3040, 3040, 1335, 1325, 1339, 1334, 1331,
- 1363, 1349, 1350, 1344, 1345, 1353, 1351, 3040, 1352, 1355,
- 1364, 1363, 1359, 3040, 1376, 1378, 1382, 1374, 1378, 1386,
-
- 1374, 1371, 1387, 2954, 1377, 1391, 1382, 1383, 1399, 1393,
- 1406, 3040, 1393, 1402, 1413, 1403, 1410, 2953, 3040, 1411,
- 1423, 3040, 1427, 1410, 1428, 1408, 1426, 1434, 1418, 1438,
- 1432, 1437, 1423, 3040, 1432, 1434, 1433, 1430, 1435, 1445,
- 2952, 1442, 1474, 1449, 2951, 1450, 2950, 1457, 3040, 3040,
- 1471, 1472, 1460, 3040, 1477, 1480, 1479, 3040, 3040, 1476,
- 3040, 1488, 1478, 1475, 1493, 1496, 1485, 1496, 1492, 1487,
- 1484, 3040, 1488, 3040, 1508, 2949, 1495, 2948, 2947, 2946,
- 1514, 1513, 1518, 1516, 2945, 3040, 1512, 1520, 1527, 1532,
- 1527, 3040, 1521, 1535, 1529, 1533, 1529, 1533, 1538, 1548,
-
- 1539, 1538, 1553, 1550, 1532, 1554, 1543, 1563, 1564, 1554,
- 1565, 1579, 1583, 1573, 1583, 1589, 1580, 1590, 1586, 1585,
- 1594, 1593, 3040, 1594, 1578, 3040, 3040, 1597, 1584, 2944,
- 1603, 1585, 2943, 2942, 1602, 1592, 1591, 1585, 1601, 1604,
- 1603, 1608, 1618, 1629, 1623, 1626, 1632, 1628, 1635, 1627,
- 1628, 1646, 3040, 1628, 1646, 1630, 1641, 3040, 1636, 1647,
- 1643, 1639, 1650, 1646, 1650, 1648, 1644, 1659, 1665, 1660,
- 1655, 2941, 2940, 2939, 2938, 2937, 1676, 1682, 2936, 1688,
- 2935, 3040, 3040, 1688, 3040, 3040, 1688, 2934, 90, 1695,
- 1680, 1688, 1687, 3040, 3040, 1697, 1698, 1693, 1694, 1689,
-
- 1705, 1700, 1712, 1701, 1696, 1711, 1707, 3040, 1701, 1709,
- 1713, 1734, 1736, 1732, 1730, 1740, 1745, 1738, 1752, 1749,
- 1733, 1741, 3040, 1744, 1755, 1746, 1744, 1745, 1760, 1754,
- 1756, 1757, 1754, 3040, 1752, 1758, 1774, 1758, 3040, 1772,
- 2933, 1780, 1784, 1792, 1792, 1782, 3040, 1794, 1790, 1787,
- 1803, 1794, 1804, 1795, 1807, 3040, 1809, 3040, 1799, 3040,
- 1793, 1800, 1816, 1801, 3040, 1812, 1819, 1811, 2932, 1822,
- 1809, 1810, 1824, 2931, 1826, 1842, 1840, 1835, 1851, 1851,
- 2930, 1855, 1840, 1856, 1842, 1854, 1859, 1853, 1867, 1864,
- 1867, 1857, 1858, 1859, 1860, 2929, 1853, 1863, 1874, 1876,
-
- 1879, 1877, 1878, 453, 2966, 2954, 1874, 1896, 2926, 2925,
- 2924, 3040, 1891, 1903, 1904, 1899, 1896, 1899, 1894, 1915,
- 1912, 1914, 1920, 3040, 1909, 1918, 1916, 1925, 1925, 1915,
- 2923, 1908, 1919, 1931, 1913, 1921, 2922, 1932, 1934, 1939,
- 2921, 1943, 1946, 3040, 1944, 1961, 3040, 1962, 1945, 2920,
- 1946, 1956, 3040, 3040, 1967, 1951, 1951, 2919, 3040, 3040,
- 1960, 1955, 1953, 1972, 1979, 1974, 2918, 1968, 1971, 1967,
- 1985, 2917, 2916, 1983, 2915, 1982, 3040, 1989, 1998, 1989,
- 3040, 3040, 3040, 2002, 1995, 1996, 2014, 1996, 2015, 2007,
- 2009, 2019, 2021, 2008, 2020, 2024, 2013, 2013, 2016, 2017,
-
- 2027, 2021, 2023, 2024, 2025, 2022, 2029, 2032, 2042, 2050,
- 3040, 2045, 2053, 2949, 2948, 2936, 2935, 2051, 2051, 2067,
- 2069, 2053, 3040, 2063, 2061, 2064, 2068, 2069, 2064, 2074,
- 2074, 2083, 2069, 2081, 2073, 2079, 2074, 2083, 2080, 2096,
- 2097, 2096, 2105, 3040, 2108, 2113, 2106, 2907, 2104, 2112,
- 2902, 2896, 2112, 2105, 2106, 3040, 2116, 2114, 3040, 2126,
- 2132, 2129, 3040, 2120, 2129, 2138, 3040, 2128, 2125, 2132,
- 2142, 2133, 2892, 2134, 2891, 2131, 2132, 2138, 2143, 2144,
- 2162, 3040, 2172, 2173, 2171, 2161, 2177, 843, 2169, 3040,
- 3040, 2184, 3040, 3040, 2177, 2184, 2179, 842, 841, 2190,
-
- 640, 2173, 2188, 2190, 2191, 2192, 2189, 2190, 2196, 2182,
- 2191, 2197, 2198, 2187, 2201, 2205, 2197, 2226, 488, 3040,
- 2217, 2224, 3040, 2227, 2231, 2223, 2225, 2232, 2221, 482,
- 2231, 2236, 2241, 2227, 2240, 2231, 3040, 465, 3040, 2233,
- 2234, 2243, 2236, 2242, 2255, 2237, 2244, 426, 3040, 2265,
- 3040, 2270, 2267, 2273, 3040, 2282, 2285, 2271, 2287, 2287,
- 2274, 2280, 2276, 2281, 2296, 2281, 2288, 2298, 3040, 2295,
- 3040, 2292, 3040, 2306, 3040, 422, 2298, 2292, 2298, 2308,
- 2313, 2321, 2313, 2316, 2322, 2327, 2340, 2324, 2325, 2326,
- 2328, 2334, 2330, 2331, 2349, 2333, 3040, 2340, 2340, 2339,
-
- 2343, 2350, 2351, 2352, 2359, 2344, 3040, 420, 2345, 2346,
- 3040, 3040, 2358, 2359, 2364, 3040, 3040, 2379, 2369, 2391,
- 2380, 3040, 2387, 2381, 416, 401, 2383, 2391, 2392, 3040,
- 2399, 2385, 2390, 2400, 2403, 2395, 2410, 2408, 3040, 3040,
- 3040, 384, 2397, 2410, 2406, 2401, 383, 2403, 2400, 2407,
- 3040, 2412, 2421, 2428, 2433, 2438, 3040, 3040, 2447, 2440,
- 2445, 381, 2446, 2450, 377, 339, 289, 287, 2449, 2450,
- 281, 3040, 2455, 2452, 2440, 3040, 2446, 2442, 2443, 2449,
- 2463, 280, 2464, 2463, 3040, 2454, 3040, 2457, 2454, 259,
- 2458, 2461, 2464, 2467, 2467, 2488, 2476, 2489, 2490, 2496,
-
- 249, 2498, 2486, 3040, 2501, 2491, 3040, 2491, 2499, 3040,
- 2508, 3040, 2512, 2512, 2495, 2503, 2506, 2516, 2497, 3040,
- 3040, 2503, 2506, 2506, 2521, 2508, 2522, 2525, 2526, 2530,
- 2536, 3040, 237, 2550, 3040, 3040, 2553, 2554, 236, 3040,
- 2537, 2545, 2543, 2555, 229, 2545, 3040, 257, 2562, 2555,
- 200, 2551, 3040, 2552, 2558, 2560, 2570, 2571, 2576, 2567,
- 2574, 2572, 2561, 2590, 2579, 2590, 2587, 2609, 2606, 3040,
- 2600, 2608, 2589, 152, 2611, 2597, 2610, 2610, 2612, 2618,
- 2610, 2611, 2613, 2614, 2615, 2618, 3040, 3040, 2618, 144,
- 2612, 2629, 2616, 2635, 2639, 2639, 3040, 2628, 2647, 2644,
-
- 3040, 3040, 2650, 2645, 3040, 150, 2652, 2651, 2649, 2651,
- 3040, 2663, 145, 2660, 2653, 3040, 2662, 2658, 2673, 2667,
- 124, 2675, 109, 3040, 2667, 2671, 2669, 2681, 2675, 2676,
- 2677, 2678, 2681, 2687, 2698, 3040, 3040, 2693, 2695, 2713,
- 2705, 2705, 2718, 2704, 3040, 2708, 2711, 3040, 2714, 2713,
- 2723, 2726, 3040, 3040, 2713, 2724, 3040, 2723, 3040, 3040,
- 2717, 2731, 2729, 2733, 2737, 2737, 2739, 3040, 2719, 2725,
- 2731, 2732, 2741, 2752, 2753, 2753, 2752, 2757, 2762, 2765,
- 2774, 2779, 2776, 2777, 2776, 2781, 2769, 2771, 2781, 2771,
- 2787, 3040, 2784, 2783, 2787, 3040, 3040, 3040, 3040, 3040,
-
- 3040, 3040, 2788, 2794, 2785, 3040, 2805, 100, 2806, 2802,
- 3040, 2801, 2808, 2824, 2815, 2817, 3040, 3040, 2817, 3040,
- 2814, 2821, 2829, 2823, 2833, 3040, 2838, 2822, 2838, 2831,
- 2843, 2836, 2827, 2827, 2840, 3040, 2834, 2842, 2847, 3040,
- 2853, 2859, 2858, 95, 2854, 2856, 2866, 2866, 3040, 3040,
- 2862, 2871, 2880, 3040, 3040, 2867, 2882, 2885, 2868, 3040,
- 2886, 2879, 3040, 2889, 3040, 3040, 93, 2880, 2883, 2879,
- 3040, 3040, 2879, 2879, 2881, 3040, 2894, 2890, 3040, 2892,
- 2886, 2907, 3040, 3040, 3040, 105, 2954, 97, 84, 81
+ 369, 342, 382, 377, 391, 383, 389, 394, 395, 3017,
+
+ 387, 397, 416, 389, 386, 433, 392, 469, 409, 471,
+ 438, 434, 412, 434, 429, 439, 455, 439, 447, 449,
+ 454, 3016, 474, 477, 519, 489, 483, 493, 522, 498,
+ 507, 510, 509, 513, 503, 3063, 520, 531, 514, 531,
+ 530, 3015, 530, 531, 530, 533, 540, 547, 543, 559,
+ 546, 567, 549, 573, 3063, 576, 564, 561, 565, 573,
+ 565, 579, 572, 582, 578, 586, 586, 584, 582, 593,
+ 585, 598, 597, 611, 593, 601, 3014, 606, 613, 137,
+ 614, 610, 619, 618, 632, 630, 626, 618, 624, 3063,
+ 630, 3013, 624, 644, 628, 629, 630, 632, 648, 653,
+
+ 656, 644, 658, 673, 668, 655, 670, 663, 676, 678,
+ 666, 671, 685, 687, 673, 673, 689, 694, 700, 3063,
+ 689, 685, 3012, 691, 704, 692, 3063, 703, 705, 3063,
+ 719, 715, 709, 715, 3063, 715, 716, 723, 730, 718,
+ 738, 732, 739, 742, 726, 737, 740, 744, 753, 747,
+ 742, 742, 750, 754, 766, 766, 764, 763, 3063, 771,
+ 768, 776, 775, 3011, 3063, 789, 3063, 774, 789, 790,
+ 783, 784, 3010, 780, 780, 796, 3063, 3063, 796, 785,
+ 3063, 789, 807, 807, 3009, 798, 802, 790, 811, 806,
+ 811, 826, 3063, 813, 815, 3063, 818, 820, 839, 845,
+
+ 834, 840, 3008, 3063, 828, 837, 833, 833, 3063, 3063,
+ 3007, 848, 3006, 852, 850, 846, 3005, 844, 861, 851,
+ 863, 895, 871, 881, 884, 866, 891, 877, 884, 3063,
+ 885, 3004, 886, 3003, 888, 893, 895, 905, 912, 920,
+ 3002, 899, 3063, 3001, 3063, 929, 917, 925, 931, 933,
+ 933, 928, 934, 934, 954, 3000, 940, 944, 942, 979,
+ 955, 942, 3063, 951, 962, 962, 3030, 972, 952, 954,
+ 980, 3030, 2997, 995, 996, 3063, 995, 984, 996, 997,
+ 994, 989, 1000, 3063, 1005, 992, 998, 2996, 996, 997,
+ 1014, 1003, 1004, 1006, 1019, 1024, 1028, 1015, 3063, 1020,
+
+ 1033, 2995, 1043, 1048, 3063, 1046, 1051, 3063, 1046, 1050,
+ 1048, 3063, 1052, 1047, 3063, 1047, 1060, 1046, 1053, 1064,
+ 3063, 1065, 3063, 1070, 2994, 1061, 1060, 1059, 1071, 1068,
+ 1083, 3063, 1082, 1079, 1087, 1093, 1082, 1101, 1080, 2993,
+ 2992, 1095, 2991, 1098, 1094, 1110, 1112, 1115, 1109, 1106,
+ 1116, 1107, 1115, 1137, 1126, 1111, 1108, 1127, 1132, 1142,
+ 1135, 1148, 1136, 1149, 1150, 1140, 1159, 1162, 1159, 1164,
+ 1158, 1153, 1152, 2990, 1173, 1160, 1155, 1196, 1184, 1174,
+ 2989, 1177, 1177, 3063, 1190, 3063, 1184, 1202, 1192, 1203,
+ 1208, 1202, 1212, 3063, 1205, 1204, 1221, 1210, 1222, 2988,
+
+ 3063, 1227, 2987, 3063, 1249, 1221, 1225, 2986, 1212, 1230,
+ 3063, 1227, 1218, 1226, 1226, 1238, 1246, 1249, 1255, 1243,
+ 1252, 1260, 1255, 3014, 1258, 1261, 1273, 3063, 3063, 3063,
+ 1273, 2984, 1259, 3063, 1270, 1264, 1268, 1286, 1268, 1278,
+ 1277, 1287, 1280, 1279, 1280, 1292, 1307, 1300, 1303, 1297,
+ 2983, 3063, 1317, 2982, 1305, 1308, 1325, 2981, 1302, 2980,
+ 1320, 2979, 1324, 1344, 1312, 2978, 1330, 1322, 3063, 1328,
+ 1317, 1335, 1346, 1351, 1349, 3063, 3063, 3063, 1351, 1348,
+ 1365, 1359, 1354, 1366, 1369, 1370, 1361, 1357, 1366, 1363,
+ 3063, 1364, 1380, 1367, 1376, 1376, 1372, 3063, 1387, 1390,
+
+ 1396, 1392, 1396, 1405, 1393, 1390, 1410, 2977, 1401, 1418,
+ 1410, 1409, 1424, 1413, 1426, 3063, 1410, 1414, 1423, 1416,
+ 1422, 2976, 3063, 1423, 1434, 3063, 1438, 1422, 1441, 1421,
+ 1437, 1446, 1432, 1456, 1452, 1453, 1442, 3063, 1455, 1458,
+ 1460, 1458, 1461, 1470, 2975, 1462, 1500, 1469, 2974, 1468,
+ 2973, 1472, 3063, 3063, 1485, 1486, 1472, 3063, 1488, 1490,
+ 1489, 3063, 3063, 1483, 3063, 1494, 1484, 1482, 1509, 1513,
+ 1508, 1520, 1519, 1515, 1510, 3063, 1513, 3063, 1528, 2972,
+ 1515, 2971, 2970, 2969, 1532, 1528, 1532, 1530, 2968, 3063,
+ 1525, 1539, 1538, 1543, 1539, 3063, 1534, 1549, 1542, 1547,
+
+ 1547, 1551, 1557, 1567, 1558, 1561, 1577, 1577, 1560, 1580,
+ 1568, 1583, 1584, 1572, 1580, 1593, 1597, 1586, 1596, 1601,
+ 1593, 1604, 1600, 1599, 1607, 1608, 2967, 3063, 1612, 1596,
+ 3063, 3063, 1615, 1603, 2966, 1622, 1604, 2965, 2964, 1625,
+ 1616, 1618, 1613, 1627, 1629, 1623, 1628, 1636, 1644, 1637,
+ 1640, 1645, 1641, 1647, 1640, 1642, 1660, 3063, 1642, 1659,
+ 1645, 1659, 3063, 1654, 1665, 1662, 1658, 1669, 1669, 1674,
+ 1675, 1672, 1685, 1690, 1680, 1675, 2963, 2962, 2961, 2960,
+ 2959, 1694, 1697, 2958, 1702, 2957, 3063, 3063, 1702, 3063,
+ 3063, 1701, 2956, 90, 1708, 1692, 1701, 1701, 3063, 3063,
+
+ 1711, 1712, 1706, 1709, 1707, 1721, 1719, 1743, 1721, 1715,
+ 1728, 1729, 3063, 1730, 1735, 1732, 1750, 1748, 1742, 1743,
+ 1753, 1758, 1750, 1765, 1763, 1747, 1755, 3063, 1757, 1770,
+ 1764, 1762, 1763, 1779, 1773, 1775, 1780, 1778, 3063, 1779,
+ 1786, 1800, 1783, 3063, 1792, 2955, 1800, 1802, 1807, 1806,
+ 1796, 1804, 3063, 1808, 1804, 1801, 1819, 1808, 1819, 1811,
+ 1823, 3063, 1830, 3063, 1820, 3063, 1813, 1820, 1836, 1826,
+ 3063, 1837, 1847, 1840, 2954, 1851, 1837, 1836, 1845, 2953,
+ 1848, 1863, 1859, 1850, 1866, 1865, 2952, 1869, 1854, 1871,
+ 1857, 1869, 1875, 1869, 1886, 1884, 1886, 1877, 1878, 1879,
+
+ 1885, 2951, 1878, 1891, 1903, 1905, 1907, 1903, 1899, 456,
+ 2985, 2973, 1896, 1917, 2945, 2943, 2942, 3063, 1910, 1918,
+ 1919, 1913, 1910, 1913, 1909, 1930, 1927, 1930, 1936, 3063,
+ 1928, 1938, 1935, 1945, 1945, 1935, 2940, 1933, 1944, 1959,
+ 1942, 1950, 2936, 1960, 1960, 1960, 2933, 1965, 1967, 3063,
+ 1963, 1976, 3063, 1977, 1959, 2931, 1960, 1970, 3063, 3063,
+ 1988, 1966, 1965, 2930, 3063, 3063, 1971, 1976, 1975, 1974,
+ 1993, 2000, 1995, 2929, 1996, 2002, 1998, 2016, 2927, 2925,
+ 2014, 2924, 2011, 3063, 2016, 2021, 2014, 3063, 3063, 3063,
+ 2027, 2015, 2012, 2030, 2011, 2031, 2023, 2025, 2035, 2038,
+
+ 2027, 2040, 2045, 2034, 2034, 2037, 2038, 2053, 2048, 2052,
+ 2054, 2055, 2053, 2058, 2059, 2065, 2075, 3063, 2070, 2073,
+ 2961, 1493, 1333, 1286, 2067, 2067, 2082, 2085, 2069, 3063,
+ 2079, 2077, 2081, 2087, 2089, 2085, 2095, 2095, 2104, 2090,
+ 2107, 2100, 2108, 2104, 2113, 2111, 2125, 2124, 2119, 2130,
+ 3063, 2133, 2133, 2122, 1157, 2120, 2127, 1098, 934, 2128,
+ 2121, 2122, 3063, 2132, 2131, 3063, 2145, 2152, 2150, 3063,
+ 2141, 2150, 2160, 2160, 3063, 2155, 2153, 2163, 2173, 2164,
+ 893, 2166, 864, 2163, 2162, 2167, 2169, 2173, 2188, 3063,
+ 2193, 2190, 2188, 2178, 2195, 861, 2186, 3063, 3063, 2201,
+
+ 3063, 3063, 2195, 2204, 2202, 843, 842, 2212, 483, 2195,
+ 2211, 2212, 2213, 2219, 2217, 2221, 2227, 2213, 2223, 2229,
+ 2228, 2216, 2227, 2234, 2223, 2247, 469, 3063, 2234, 2241,
+ 3063, 2244, 2249, 2240, 2242, 2250, 2241, 466, 2254, 2258,
+ 2263, 2250, 2262, 2253, 3063, 437, 3063, 2260, 2274, 2271,
+ 2265, 2272, 2284, 2269, 2270, 431, 3063, 2286, 3063, 2295,
+ 2286, 2289, 3063, 2298, 2305, 2305, 2291, 2307, 2307, 2296,
+ 2305, 2302, 2307, 2323, 2305, 2312, 2323, 3063, 2325, 3063,
+ 2324, 3063, 2339, 3063, 425, 2330, 2325, 2331, 2341, 2342,
+ 2347, 2342, 2343, 2344, 2345, 2359, 2344, 2345, 2346, 2348,
+
+ 2356, 2355, 2357, 2375, 2358, 3063, 2365, 2365, 2364, 2371,
+ 2379, 2383, 2385, 2391, 2377, 3063, 423, 2378, 2379, 3063,
+ 3063, 2387, 2385, 2393, 3063, 3063, 2406, 2391, 2409, 2399,
+ 3063, 2407, 2401, 422, 420, 2403, 2411, 2414, 3063, 2424,
+ 2411, 2416, 2425, 2428, 2420, 2424, 2439, 2438, 3063, 3063,
+ 3063, 384, 2430, 2444, 2440, 2435, 381, 2437, 2434, 2442,
+ 3063, 2444, 2451, 2459, 2461, 2461, 3063, 3063, 2467, 2461,
+ 2466, 380, 2467, 2472, 347, 339, 289, 287, 2472, 2476,
+ 281, 3063, 2482, 2479, 2468, 3063, 2472, 2468, 2470, 2478,
+ 2493, 280, 2497, 2497, 3063, 2488, 3063, 2491, 2488, 259,
+
+ 2492, 2496, 2496, 2497, 2498, 2516, 2499, 2509, 2511, 2517,
+ 249, 2519, 2508, 3063, 2524, 2530, 2519, 3063, 2519, 2528,
+ 3063, 2537, 3063, 2539, 2540, 2526, 2534, 2540, 2551, 2532,
+ 3063, 3063, 2539, 2541, 2541, 2557, 2546, 2558, 2557, 2558,
+ 2559, 2561, 3063, 237, 2572, 3063, 3063, 2575, 2576, 236,
+ 3063, 2560, 2570, 2570, 2584, 229, 2574, 3063, 257, 2591,
+ 2582, 200, 2579, 3063, 2583, 2589, 2594, 2605, 2606, 2612,
+ 2599, 2610, 2609, 2604, 3063, 2622, 2611, 2619, 2612, 2631,
+ 2628, 3063, 2622, 2631, 2614, 152, 2638, 2625, 2638, 2639,
+ 2641, 2645, 2638, 2642, 2644, 2648, 2650, 2653, 3063, 3063,
+
+ 2654, 144, 2647, 2664, 2652, 2673, 2675, 2671, 3063, 2660,
+ 2676, 2669, 3063, 3063, 2672, 2667, 3063, 150, 2674, 2674,
+ 2674, 2678, 3063, 2691, 145, 2688, 2682, 3063, 2691, 2685,
+ 2701, 2698, 124, 2706, 109, 3063, 2701, 2706, 2704, 2717,
+ 2710, 2711, 2713, 2716, 2717, 2719, 2730, 3063, 3063, 2722,
+ 2720, 2735, 2727, 2727, 2741, 2729, 3063, 2735, 2739, 3063,
+ 2742, 2742, 2752, 2753, 3063, 3063, 2741, 2755, 3063, 2754,
+ 3063, 3063, 2751, 2766, 2764, 2769, 2772, 2772, 2775, 3063,
+ 2757, 2761, 2763, 2764, 2770, 2777, 2775, 2775, 2774, 2780,
+ 2787, 2792, 2802, 2807, 2805, 2806, 2803, 2809, 2800, 2802,
+
+ 2815, 2806, 2822, 3063, 2820, 2818, 2822, 3063, 3063, 3063,
+ 3063, 3063, 3063, 3063, 2824, 2832, 2821, 3063, 2837, 100,
+ 2838, 2831, 3063, 2826, 2830, 2846, 2837, 2840, 3063, 3063,
+ 2842, 3063, 2841, 2849, 2857, 2852, 2862, 3063, 2865, 2850,
+ 2869, 2862, 2877, 2871, 2862, 2863, 2875, 3063, 2869, 2878,
+ 2885, 3063, 2889, 2891, 2890, 95, 2883, 2881, 2888, 2888,
+ 3063, 3063, 2884, 2894, 2905, 3063, 3063, 2894, 2910, 2913,
+ 2897, 3063, 2915, 2906, 3063, 2917, 3063, 3063, 93, 2911,
+ 2914, 2913, 3063, 3063, 2914, 2914, 2917, 3063, 2929, 2925,
+ 3063, 2928, 2924, 2943, 3063, 3063, 3063, 105, 2990, 97,
+
+ 84, 81
} ;
-static yyconst flex_int16_t yy_def[1591] =
+static yyconst flex_int16_t yy_def[1603] =
{ 0,
- 1585, 1, 1585, 1585, 1585, 1586, 1587, 1588, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1586, 1587, 1585,
- 1588, 1585, 1585, 1585, 1588, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
-
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
-
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
-
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
-
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
-
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
-
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
-
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
-
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
-
- 1585, 1585, 1585, 1585, 1589, 1590, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
-
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1589, 1589, 1590, 1590, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
-
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
-
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
-
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
-
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
-
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 0, 1585, 1585, 1585, 1585, 1585
+ 1597, 1, 1597, 1597, 1597, 1598, 1599, 1600, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1598, 1599, 1597,
+ 1600, 1597, 1597, 1597, 1600, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1601, 1602, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1601, 1601, 1602, 1602, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 0, 1597, 1597, 1597,
+
+ 1597, 1597
} ;
-static yyconst flex_int16_t yy_nxt[3109] =
+static yyconst flex_int16_t yy_nxt[3132] =
{ 0,
4, 5, 6, 7, 8, 4, 9, 10, 11, 11,
11, 11, 11, 4, 4, 12, 13, 14, 15, 16,
@@ -960,343 +968,346 @@ static yyconst flex_int16_t yy_nxt[3109] =
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 4, 40, 40,
42, 44, 53, 45, 46, 46, 46, 46, 46, 66,
- 83, 1016, 54, 102, 1014, 67, 68, 43, 40, 40,
- 61, 904, 106, 905, 62, 74, 69, 41, 63, 53,
+ 83, 1023, 54, 102, 1021, 67, 68, 43, 40, 40,
+ 61, 910, 106, 911, 62, 74, 69, 41, 63, 53,
- 70, 64, 75, 906, 65, 38, 66, 83, 71, 54,
+ 70, 64, 75, 912, 65, 38, 66, 83, 71, 54,
102, 72, 67, 68, 43, 47, 48, 61, 49, 106,
73, 62, 74, 69, 50, 63, 51, 70, 64, 75,
- 80, 65, 76, 52, 1573, 71, 1558, 81, 72, 82,
- 77, 1529, 47, 48, 127, 49, 78, 73, 308, 309,
- 1464, 50, 79, 51, 130, 1436, 1437, 80, 107, 76,
- 52, 55, 108, 56, 81, 1462, 82, 77, 57, 58,
+ 80, 65, 76, 52, 1585, 71, 1570, 81, 72, 82,
+ 77, 1541, 47, 48, 127, 49, 78, 73, 309, 310,
+ 1476, 50, 79, 51, 130, 1448, 1449, 80, 107, 76,
+ 52, 55, 108, 56, 81, 1474, 82, 77, 57, 58,
84, 127, 59, 78, 88, 60, 109, 85, 89, 79,
- 86, 130, 87, 128, 90, 107, 1455, 129, 55, 108,
- 56, 1449, 103, 1422, 131, 57, 58, 84, 132, 59,
+ 86, 130, 87, 128, 90, 107, 1467, 129, 55, 108,
+ 56, 1461, 103, 1434, 131, 57, 58, 84, 132, 59,
104, 88, 60, 109, 85, 89, 105, 86, 133, 87,
128, 90, 91, 92, 129, 134, 93, 124, 125, 103,
94, 131, 135, 126, 136, 132, 95, 104, 46, 46,
46, 46, 46, 105, 137, 133, 138, 139, 140, 91,
- 92, 1400, 134, 93, 124, 125, 141, 94, 142, 135,
+ 92, 1412, 134, 93, 124, 125, 141, 94, 142, 135,
126, 136, 143, 95, 96, 144, 97, 145, 98, 148,
- 146, 137, 99, 138, 139, 140, 149, 157, 100, 1397,
- 1395, 158, 159, 141, 101, 142, 160, 1389, 1385, 143,
+ 146, 137, 99, 138, 139, 140, 149, 157, 100, 1409,
+ 1407, 158, 159, 141, 101, 142, 160, 1401, 1397, 143,
147, 96, 144, 97, 145, 98, 148, 146, 161, 99,
- 1360, 150, 151, 149, 157, 100, 152, 155, 158, 159,
+ 1371, 150, 151, 149, 157, 100, 152, 155, 158, 159,
- 1349, 101, 110, 160, 153, 111, 112, 147, 113, 154,
+ 1360, 101, 110, 160, 153, 111, 112, 147, 113, 154,
165, 156, 114, 115, 166, 161, 116, 117, 150, 151,
- 167, 1343, 1334, 152, 155, 162, 168, 163, 1331, 110,
- 1330, 153, 111, 112, 173, 113, 154, 165, 156, 114,
+ 167, 1354, 1345, 152, 155, 162, 168, 163, 1342, 110,
+ 1341, 153, 111, 112, 173, 113, 154, 165, 156, 114,
115, 166, 164, 116, 117, 118, 169, 167, 119, 120,
174, 177, 162, 168, 163, 121, 122, 170, 171, 178,
179, 173, 123, 175, 172, 176, 180, 181, 182, 164,
183, 184, 118, 169, 185, 119, 120, 174, 177, 186,
- 1329, 193, 121, 122, 170, 171, 178, 179, 194, 123,
+ 1340, 193, 121, 122, 170, 171, 178, 179, 1339, 123,
175, 172, 176, 180, 181, 182, 189, 183, 184, 187,
- 190, 185, 191, 195, 188, 198, 186, 192, 193, 196,
- 199, 202, 204, 200, 205, 194, 209, 210, 1328, 197,
- 213, 222, 1325, 189, 1313, 1308, 187, 190, 201, 191,
- 195, 188, 198, 206, 192, 231, 196, 199, 202, 204,
- 200, 205, 1296, 209, 210, 211, 197, 213, 222, 207,
- 208, 227, 229, 212, 904, 201, 905, 1295, 223, 232,
- 206, 1283, 231, 1253, 235, 228, 906, 1231, 236, 224,
- 237, 238, 211, 225, 230, 226, 207, 208, 227, 229,
- 212, 214, 239, 215, 216, 223, 232, 217, 218, 240,
- 219, 235, 228, 220, 233, 236, 224, 237, 238, 221,
-
- 225, 230, 226, 242, 234, 243, 1220, 250, 214, 239,
- 215, 216, 251, 252, 217, 218, 240, 219, 256, 253,
- 220, 233, 254, 1213, 257, 255, 221, 259, 260, 1204,
- 242, 234, 243, 244, 250, 261, 245, 262, 263, 251,
- 252, 264, 258, 246, 247, 256, 253, 266, 265, 254,
- 248, 257, 255, 267, 259, 260, 249, 268, 270, 271,
- 244, 272, 261, 245, 262, 263, 273, 274, 264, 258,
- 246, 247, 275, 276, 266, 265, 277, 248, 278, 279,
- 267, 280, 281, 249, 268, 270, 271, 282, 272, 283,
- 284, 285, 286, 273, 274, 287, 288, 289, 290, 275,
-
- 276, 291, 292, 277, 295, 278, 279, 293, 280, 281,
- 296, 297, 298, 299, 282, 300, 283, 284, 285, 286,
- 294, 303, 287, 288, 289, 290, 301, 302, 291, 292,
- 304, 295, 306, 307, 293, 310, 311, 296, 297, 298,
- 299, 312, 300, 314, 313, 315, 316, 294, 303, 317,
- 318, 319, 320, 301, 302, 322, 323, 304, 324, 306,
- 307, 326, 310, 311, 325, 327, 328, 329, 312, 330,
- 314, 313, 315, 316, 331, 332, 317, 318, 319, 320,
- 337, 1186, 322, 323, 338, 324, 339, 340, 326, 341,
- 342, 333, 327, 328, 329, 343, 330, 344, 334, 345,
-
- 346, 331, 332, 335, 347, 348, 349, 337, 336, 350,
- 351, 338, 352, 339, 340, 356, 341, 342, 333, 353,
- 357, 354, 343, 358, 344, 334, 345, 346, 359, 360,
- 335, 347, 348, 349, 361, 336, 350, 351, 362, 352,
- 363, 364, 356, 367, 365, 368, 353, 357, 354, 366,
- 358, 369, 370, 371, 372, 359, 360, 374, 375, 376,
- 377, 361, 378, 379, 373, 362, 380, 363, 364, 381,
- 367, 365, 368, 382, 384, 385, 386, 387, 369, 370,
- 371, 372, 383, 388, 374, 375, 376, 377, 389, 378,
- 379, 373, 390, 380, 391, 392, 381, 393, 394, 396,
-
- 382, 384, 385, 386, 387, 397, 398, 399, 400, 401,
- 388, 403, 404, 405, 406, 389, 407, 408, 409, 390,
- 410, 391, 392, 412, 393, 394, 396, 413, 414, 415,
- 416, 417, 397, 398, 399, 400, 401, 418, 403, 404,
- 405, 406, 419, 407, 408, 409, 420, 410, 421, 422,
- 412, 423, 424, 428, 413, 414, 415, 416, 417, 426,
- 430, 431, 432, 433, 418, 435, 425, 437, 438, 419,
- 439, 441, 427, 420, 442, 421, 422, 443, 423, 424,
- 428, 444, 1184, 1183, 1177, 454, 426, 430, 431, 432,
- 433, 455, 435, 425, 437, 438, 456, 439, 441, 459,
-
- 457, 442, 460, 461, 443, 458, 463, 465, 444, 445,
- 446, 447, 454, 466, 467, 448, 468, 449, 455, 469,
- 450, 475, 451, 456, 477, 478, 459, 457, 452, 460,
- 461, 453, 458, 463, 465, 470, 445, 446, 447, 479,
- 466, 467, 448, 468, 449, 480, 469, 450, 475, 451,
- 481, 477, 478, 471, 482, 452, 483, 472, 453, 484,
- 485, 473, 470, 489, 490, 486, 479, 493, 491, 496,
- 497, 494, 480, 498, 499, 500, 495, 481, 492, 505,
- 471, 482, 487, 483, 472, 506, 484, 485, 502, 503,
- 489, 490, 486, 507, 493, 491, 496, 497, 494, 510,
-
- 498, 499, 500, 495, 504, 511, 505, 512, 513, 487,
- 514, 515, 506, 516, 517, 502, 503, 518, 519, 521,
- 507, 522, 524, 525, 526, 520, 510, 527, 528, 529,
- 530, 504, 511, 531, 512, 513, 534, 514, 515, 535,
- 516, 517, 532, 536, 518, 519, 521, 533, 522, 524,
- 525, 526, 520, 538, 527, 528, 529, 530, 539, 540,
- 531, 541, 542, 534, 543, 544, 535, 545, 546, 532,
- 536, 547, 548, 549, 533, 550, 551, 552, 553, 555,
- 538, 556, 557, 558, 559, 539, 540, 560, 541, 542,
- 562, 543, 544, 563, 545, 546, 564, 561, 547, 548,
-
- 549, 565, 550, 551, 552, 553, 555, 566, 556, 557,
- 558, 559, 567, 568, 560, 571, 573, 562, 574, 575,
- 563, 576, 577, 564, 561, 578, 580, 581, 565, 579,
- 582, 587, 583, 585, 566, 588, 589, 590, 591, 567,
- 568, 592, 571, 573, 584, 574, 575, 586, 576, 577,
- 593, 594, 578, 580, 581, 595, 579, 582, 587, 583,
- 585, 598, 588, 589, 590, 591, 596, 599, 592, 600,
- 601, 584, 602, 597, 586, 603, 604, 593, 594, 605,
- 607, 611, 595, 608, 609, 616, 618, 612, 598, 610,
- 619, 622, 614, 596, 599, 623, 600, 601, 613, 602,
-
- 597, 620, 603, 604, 621, 624, 605, 607, 611, 615,
- 608, 609, 616, 618, 612, 625, 610, 619, 622, 614,
- 626, 627, 623, 629, 628, 613, 630, 631, 620, 632,
- 633, 621, 624, 634, 636, 641, 615, 638, 642, 644,
- 645, 639, 625, 646, 640, 647, 648, 626, 627, 649,
- 629, 628, 650, 630, 631, 651, 632, 633, 652, 653,
- 634, 636, 641, 654, 638, 642, 644, 645, 639, 655,
- 646, 640, 647, 648, 656, 657, 649, 659, 660, 650,
- 661, 662, 651, 664, 665, 652, 653, 666, 667, 670,
- 654, 668, 671, 672, 673, 674, 655, 675, 676, 677,
-
- 678, 656, 657, 679, 659, 660, 680, 661, 662, 669,
- 664, 665, 681, 683, 666, 667, 670, 685, 668, 671,
- 672, 673, 674, 686, 675, 676, 677, 678, 687, 688,
- 679, 692, 694, 680, 696, 697, 699, 689, 701, 681,
- 683, 702, 690, 703, 685, 704, 698, 705, 706, 707,
- 686, 708, 709, 710, 711, 687, 688, 712, 692, 694,
- 713, 696, 697, 699, 689, 701, 716, 717, 702, 690,
- 703, 718, 704, 698, 705, 706, 707, 719, 708, 709,
- 710, 711, 714, 720, 712, 721, 722, 713, 723, 715,
- 724, 725, 726, 716, 717, 727, 728, 729, 718, 730,
-
- 731, 732, 733, 734, 719, 735, 737, 738, 739, 714,
- 720, 740, 721, 722, 741, 723, 715, 724, 725, 726,
- 742, 743, 727, 728, 729, 744, 730, 731, 732, 733,
- 734, 745, 735, 737, 738, 739, 746, 747, 740, 748,
- 750, 741, 751, 752, 753, 754, 755, 742, 743, 756,
- 757, 758, 744, 759, 760, 761, 762, 763, 745, 764,
- 765, 766, 767, 746, 747, 768, 748, 750, 769, 751,
- 752, 753, 754, 755, 771, 777, 756, 757, 758, 779,
- 759, 760, 761, 762, 763, 781, 764, 765, 766, 767,
- 782, 783, 768, 772, 784, 769, 785, 773, 786, 774,
-
- 787, 771, 777, 775, 776, 788, 779, 789, 790, 791,
- 792, 793, 781, 794, 795, 796, 797, 782, 783, 798,
- 772, 784, 799, 785, 773, 786, 774, 787, 800, 802,
- 775, 776, 788, 806, 789, 790, 791, 792, 793, 807,
- 794, 795, 796, 797, 808, 809, 798, 811, 812, 799,
- 814, 815, 816, 817, 818, 800, 802, 819, 813, 820,
- 806, 821, 822, 823, 824, 825, 807, 826, 827, 828,
- 829, 808, 809, 830, 811, 812, 831, 814, 815, 816,
- 817, 818, 832, 833, 819, 813, 820, 834, 821, 822,
- 823, 824, 825, 835, 826, 827, 828, 829, 836, 837,
-
- 830, 838, 839, 831, 840, 841, 842, 843, 844, 832,
- 833, 845, 846, 847, 834, 848, 849, 850, 852, 853,
- 835, 856, 857, 858, 859, 836, 837, 860, 838, 839,
- 861, 840, 841, 842, 843, 844, 862, 863, 845, 846,
- 847, 864, 848, 849, 850, 852, 853, 865, 856, 857,
- 858, 859, 866, 867, 860, 868, 869, 861, 870, 871,
- 872, 873, 874, 862, 863, 875, 876, 877, 864, 878,
- 879, 880, 881, 882, 865, 883, 884, 885, 886, 866,
- 867, 887, 868, 869, 888, 870, 871, 872, 873, 874,
- 889, 890, 875, 876, 877, 896, 878, 879, 880, 881,
-
- 882, 897, 883, 884, 885, 886, 899, 901, 887, 902,
- 907, 888, 908, 909, 910, 911, 912, 889, 890, 913,
- 914, 915, 896, 918, 922, 916, 923, 919, 897, 924,
- 925, 926, 920, 899, 901, 927, 902, 907, 917, 908,
- 909, 910, 911, 912, 921, 928, 913, 914, 915, 929,
- 918, 922, 916, 923, 919, 930, 924, 925, 926, 920,
- 931, 932, 927, 933, 934, 917, 935, 936, 937, 938,
- 939, 921, 928, 940, 941, 942, 929, 943, 944, 945,
- 946, 947, 930, 948, 949, 950, 951, 931, 932, 952,
- 933, 934, 953, 935, 936, 937, 938, 939, 954, 956,
-
- 940, 941, 942, 957, 943, 944, 945, 946, 947, 958,
- 948, 949, 950, 951, 959, 960, 952, 961, 962, 953,
- 963, 964, 966, 967, 968, 954, 956, 969, 970, 971,
- 957, 965, 972, 973, 974, 975, 958, 976, 977, 978,
- 980, 959, 960, 981, 961, 962, 982, 963, 964, 966,
- 967, 968, 983, 985, 969, 970, 971, 986, 965, 972,
- 973, 974, 975, 987, 976, 977, 978, 980, 988, 989,
- 981, 990, 992, 982, 993, 994, 995, 996, 997, 983,
- 985, 998, 999, 1000, 986, 1001, 1002, 1003, 1004, 1005,
- 987, 1007, 1008, 1009, 1010, 988, 989, 1011, 990, 992,
-
- 1012, 993, 994, 995, 996, 997, 1013, 1018, 998, 999,
- 1000, 1019, 1001, 1002, 1003, 1004, 1005, 1023, 1007, 1008,
- 1009, 1010, 1024, 1025, 1011, 1026, 1027, 1012, 1028, 1029,
- 1030, 1031, 1032, 1013, 1018, 1033, 1034, 1035, 1019, 1036,
- 1037, 1038, 1039, 1041, 1023, 1042, 1043, 1044, 1045, 1024,
- 1025, 1047, 1026, 1027, 1048, 1028, 1029, 1030, 1031, 1032,
- 1049, 1051, 1033, 1034, 1035, 1052, 1036, 1037, 1038, 1039,
- 1041, 1053, 1042, 1043, 1044, 1045, 1054, 1055, 1047, 1056,
- 1058, 1048, 1059, 1063, 1060, 1064, 1066, 1049, 1051, 1067,
- 1068, 1069, 1052, 1061, 1070, 1071, 1073, 1074, 1053, 1075,
-
- 1076, 1062, 1079, 1054, 1055, 1081, 1056, 1058, 1082, 1059,
- 1063, 1060, 1064, 1066, 1083, 1084, 1067, 1068, 1069, 1085,
- 1061, 1070, 1071, 1073, 1074, 1086, 1075, 1076, 1062, 1079,
- 1087, 1088, 1081, 1089, 1090, 1082, 1091, 1092, 1093, 1094,
- 1095, 1083, 1084, 1096, 1097, 1098, 1085, 1099, 1100, 1101,
- 1102, 1103, 1086, 1104, 1105, 1106, 1107, 1087, 1088, 1108,
- 1089, 1090, 1109, 1091, 1092, 1093, 1094, 1095, 1110, 1111,
- 1096, 1097, 1098, 1112, 1099, 1100, 1101, 1102, 1103, 1113,
- 1104, 1105, 1106, 1107, 1114, 1115, 1108, 1116, 1117, 1109,
- 1118, 1119, 1120, 1121, 1122, 1110, 1111, 1123, 1124, 1125,
-
- 1112, 1126, 1127, 1128, 1129, 1130, 1113, 1131, 1132, 1133,
- 1134, 1114, 1115, 1135, 1116, 1117, 1136, 1118, 1119, 1120,
- 1121, 1122, 1137, 1138, 1123, 1124, 1125, 1139, 1126, 1127,
- 1128, 1129, 1130, 1140, 1131, 1132, 1133, 1134, 1141, 1143,
- 1135, 1144, 1147, 1136, 1148, 1149, 1150, 1151, 1152, 1137,
- 1138, 1153, 1154, 1155, 1139, 1156, 1157, 1158, 1159, 1160,
- 1140, 1161, 1162, 1164, 1166, 1141, 1143, 1167, 1144, 1147,
- 1168, 1148, 1149, 1150, 1151, 1152, 1169, 1170, 1153, 1154,
- 1155, 1171, 1156, 1157, 1158, 1159, 1160, 1172, 1161, 1162,
- 1164, 1166, 1173, 1174, 1167, 1175, 1176, 1168, 1178, 1179,
-
- 1180, 1181, 1182, 1169, 1170, 1185, 1187, 1188, 1171, 1189,
- 1190, 1191, 1192, 1193, 1172, 1194, 1195, 1196, 1197, 1173,
- 1174, 1198, 1175, 1176, 1199, 1178, 1179, 1180, 1181, 1182,
- 1200, 1201, 1185, 1187, 1188, 1202, 1189, 1190, 1191, 1192,
- 1193, 1203, 1194, 1195, 1196, 1197, 1205, 1206, 1198, 1207,
- 1208, 1199, 1209, 1210, 1211, 1212, 1214, 1200, 1201, 1215,
- 1216, 1217, 1202, 1218, 1219, 1221, 1224, 1222, 1203, 1225,
- 1226, 1229, 1227, 1205, 1206, 1223, 1207, 1208, 1230, 1209,
- 1210, 1211, 1212, 1214, 1232, 1233, 1215, 1216, 1217, 1228,
- 1218, 1219, 1221, 1224, 1222, 1234, 1225, 1226, 1229, 1227,
-
- 1235, 1236, 1237, 1238, 1239, 1230, 1240, 1241, 1242, 1243,
- 1244, 1232, 1233, 1245, 1247, 1248, 1228, 1249, 1250, 1246,
- 1251, 1252, 1234, 1254, 1255, 1256, 1257, 1235, 1236, 1237,
- 1238, 1239, 1258, 1240, 1241, 1242, 1243, 1244, 1259, 1260,
- 1245, 1247, 1248, 1261, 1249, 1250, 1246, 1251, 1252, 1262,
- 1254, 1255, 1256, 1257, 1263, 1264, 1265, 1266, 1267, 1258,
- 1268, 1269, 1270, 1271, 1272, 1259, 1260, 1273, 1274, 1275,
- 1261, 1276, 1277, 1278, 1279, 1280, 1262, 1281, 1282, 1284,
- 1285, 1263, 1264, 1265, 1266, 1267, 1286, 1268, 1269, 1270,
- 1271, 1272, 1287, 1288, 1273, 1274, 1275, 1289, 1276, 1277,
-
- 1278, 1279, 1280, 1290, 1281, 1282, 1284, 1285, 1291, 1292,
- 1293, 1294, 1297, 1286, 1298, 1299, 1300, 1301, 1302, 1287,
- 1288, 1303, 1304, 1305, 1289, 1306, 1307, 1309, 1310, 1311,
- 1290, 1312, 1314, 1315, 1316, 1291, 1292, 1293, 1294, 1297,
- 1317, 1298, 1299, 1300, 1301, 1302, 1318, 1319, 1303, 1304,
- 1305, 1320, 1306, 1307, 1309, 1310, 1311, 1321, 1312, 1314,
- 1315, 1316, 1322, 1323, 1324, 1326, 1327, 1317, 1332, 1333,
- 1335, 1336, 1337, 1318, 1319, 1338, 1339, 1340, 1320, 1341,
- 1342, 1344, 1345, 1346, 1321, 1347, 1348, 1350, 1351, 1322,
- 1323, 1324, 1326, 1327, 1352, 1332, 1333, 1335, 1336, 1337,
-
- 1353, 1354, 1338, 1339, 1340, 1355, 1341, 1342, 1344, 1345,
- 1346, 1356, 1347, 1348, 1350, 1351, 1357, 1358, 1359, 1361,
- 1362, 1352, 1363, 1364, 1365, 1366, 1367, 1353, 1354, 1368,
- 1369, 1370, 1355, 1371, 1372, 1373, 1374, 1375, 1356, 1376,
- 1377, 1378, 1379, 1357, 1358, 1359, 1361, 1362, 1380, 1363,
- 1364, 1365, 1366, 1367, 1381, 1382, 1368, 1369, 1370, 1383,
- 1371, 1372, 1373, 1374, 1375, 1384, 1376, 1377, 1378, 1379,
- 1386, 1387, 1388, 1390, 1391, 1380, 1392, 1394, 1393, 1396,
- 1398, 1381, 1382, 1399, 1401, 1402, 1383, 1403, 1404, 1405,
- 1406, 1407, 1384, 1410, 1411, 1412, 1408, 1386, 1387, 1388,
-
- 1390, 1391, 1409, 1392, 1394, 1393, 1396, 1398, 1413, 1414,
- 1399, 1401, 1402, 1415, 1403, 1404, 1405, 1406, 1407, 1416,
- 1410, 1411, 1412, 1408, 1417, 1418, 1419, 1420, 1421, 1409,
- 1423, 1424, 1425, 1426, 1427, 1413, 1414, 1428, 1429, 1430,
- 1415, 1431, 1432, 1433, 1434, 1435, 1416, 1438, 1439, 1440,
- 1441, 1417, 1418, 1419, 1420, 1421, 1442, 1423, 1424, 1425,
- 1426, 1427, 1443, 1444, 1428, 1429, 1430, 1445, 1431, 1432,
- 1433, 1434, 1435, 1446, 1438, 1439, 1440, 1441, 1447, 1448,
- 1450, 1451, 1452, 1442, 1453, 1454, 1456, 1457, 1458, 1443,
- 1444, 1459, 1460, 1461, 1445, 1463, 1465, 1466, 1467, 1468,
-
- 1446, 1469, 1470, 1471, 1472, 1447, 1448, 1450, 1451, 1452,
- 1473, 1453, 1454, 1456, 1457, 1458, 1474, 1475, 1459, 1460,
- 1461, 1476, 1463, 1465, 1466, 1467, 1468, 1477, 1469, 1470,
- 1471, 1472, 1478, 1479, 1480, 1481, 1482, 1473, 1483, 1484,
- 1485, 1486, 1487, 1474, 1475, 1488, 1489, 1490, 1476, 1491,
- 1492, 1493, 1494, 1495, 1477, 1496, 1497, 1498, 1499, 1478,
- 1479, 1480, 1481, 1482, 1500, 1483, 1484, 1485, 1486, 1487,
- 1501, 1502, 1488, 1489, 1490, 1503, 1491, 1492, 1493, 1494,
- 1495, 1504, 1496, 1497, 1498, 1499, 1505, 1506, 1507, 1508,
- 1509, 1500, 1510, 1511, 1512, 1513, 1514, 1501, 1502, 1515,
-
- 1516, 1517, 1503, 1518, 1519, 1520, 1521, 1522, 1504, 1523,
- 1524, 1525, 1526, 1505, 1506, 1507, 1508, 1509, 1527, 1510,
- 1511, 1512, 1513, 1514, 1528, 1530, 1515, 1516, 1517, 1531,
- 1518, 1519, 1520, 1521, 1522, 1532, 1523, 1524, 1525, 1526,
- 1533, 1534, 1535, 1536, 1537, 1527, 1538, 1539, 1540, 1541,
- 1542, 1528, 1530, 1543, 1544, 1545, 1531, 1546, 1547, 1548,
- 1549, 1550, 1532, 1551, 1552, 1553, 1554, 1533, 1534, 1535,
- 1536, 1537, 1555, 1538, 1539, 1540, 1541, 1542, 1556, 1557,
- 1543, 1544, 1545, 1559, 1546, 1547, 1548, 1549, 1550, 1560,
- 1551, 1552, 1553, 1554, 1561, 1562, 1563, 1564, 1565, 1555,
-
- 1566, 1567, 1568, 1569, 1570, 1556, 1557, 1571, 1572, 1574,
- 1559, 1575, 1576, 1577, 1578, 1579, 1560, 1580, 1581, 1582,
- 1583, 1561, 1562, 1563, 1564, 1565, 1584, 1566, 1567, 1568,
- 1569, 1570, 1165, 1163, 1571, 1572, 1574, 1146, 1575, 1576,
- 1577, 1578, 1579, 1145, 1580, 1581, 1582, 1583, 1142, 1017,
- 1017, 1015, 1015, 1584, 39, 39, 1080, 1078, 1077, 1072,
- 1065, 1057, 1050, 1046, 1040, 1022, 1021, 1020, 1017, 1015,
- 1006, 991, 984, 979, 955, 903, 900, 898, 895, 894,
- 893, 892, 891, 855, 854, 851, 810, 805, 804, 803,
- 801, 780, 778, 770, 749, 736, 700, 695, 693, 691,
-
- 684, 682, 663, 658, 643, 637, 635, 617, 606, 572,
- 570, 569, 554, 537, 523, 509, 508, 501, 488, 476,
- 474, 464, 462, 440, 436, 434, 429, 411, 402, 395,
- 355, 321, 305, 269, 241, 203, 37, 37, 1585, 3,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
-
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585
+ 190, 185, 191, 194, 188, 196, 186, 192, 193, 197,
+ 199, 200, 203, 201, 205, 195, 206, 210, 211, 198,
+ 214, 1336, 1324, 189, 223, 1319, 187, 190, 202, 191,
+ 194, 188, 196, 207, 192, 232, 197, 199, 200, 203,
+ 201, 205, 195, 206, 210, 211, 198, 214, 212, 208,
+ 209, 223, 230, 228, 233, 202, 213, 910, 234, 911,
+ 207, 1306, 232, 1305, 1293, 236, 1263, 229, 235, 912,
+ 237, 238, 1240, 239, 231, 212, 208, 209, 1229, 230,
+ 228, 233, 240, 213, 215, 234, 216, 217, 224, 241,
+ 218, 219, 236, 220, 229, 235, 221, 237, 238, 225,
+
+ 239, 231, 222, 226, 243, 227, 244, 1222, 251, 240,
+ 1213, 215, 252, 216, 217, 224, 241, 218, 219, 253,
+ 220, 257, 258, 221, 1195, 254, 225, 260, 261, 222,
+ 226, 243, 227, 244, 245, 251, 262, 246, 255, 252,
+ 259, 256, 263, 264, 247, 248, 253, 267, 257, 258,
+ 268, 249, 254, 265, 260, 261, 269, 250, 271, 272,
+ 266, 245, 273, 262, 246, 255, 274, 259, 256, 263,
+ 264, 247, 248, 275, 267, 276, 277, 268, 249, 278,
+ 265, 279, 280, 269, 250, 271, 272, 266, 281, 273,
+ 282, 283, 284, 274, 285, 286, 287, 288, 289, 290,
+
+ 275, 291, 276, 277, 292, 293, 278, 294, 279, 280,
+ 296, 297, 298, 299, 300, 281, 301, 282, 283, 284,
+ 295, 285, 286, 287, 288, 289, 290, 304, 291, 302,
+ 303, 292, 293, 305, 294, 307, 308, 296, 297, 298,
+ 299, 300, 311, 301, 312, 313, 315, 295, 314, 316,
+ 317, 318, 319, 320, 304, 321, 302, 303, 323, 324,
+ 305, 325, 307, 308, 326, 328, 329, 330, 331, 311,
+ 327, 312, 313, 315, 332, 314, 316, 317, 318, 319,
+ 320, 333, 321, 334, 339, 323, 324, 340, 325, 341,
+ 335, 326, 328, 329, 330, 331, 342, 336, 343, 344,
+
+ 345, 332, 337, 346, 347, 348, 349, 338, 333, 350,
+ 334, 339, 351, 352, 340, 353, 341, 335, 354, 355,
+ 358, 356, 359, 342, 336, 343, 344, 345, 360, 337,
+ 346, 347, 348, 349, 338, 361, 350, 362, 363, 351,
+ 352, 364, 353, 365, 366, 354, 355, 358, 356, 359,
+ 369, 367, 370, 371, 372, 360, 368, 373, 376, 374,
+ 377, 378, 361, 379, 362, 363, 380, 381, 364, 375,
+ 365, 366, 382, 383, 384, 386, 387, 369, 367, 370,
+ 371, 372, 388, 385, 373, 376, 374, 377, 378, 389,
+ 379, 390, 391, 380, 381, 392, 375, 393, 394, 382,
+
+ 383, 384, 386, 387, 395, 396, 398, 399, 400, 388,
+ 401, 402, 403, 405, 406, 407, 389, 408, 390, 391,
+ 409, 410, 392, 411, 393, 394, 412, 414, 415, 416,
+ 417, 395, 396, 398, 399, 400, 418, 401, 402, 403,
+ 405, 406, 407, 419, 408, 420, 421, 409, 410, 422,
+ 411, 423, 424, 412, 414, 415, 416, 417, 425, 430,
+ 426, 432, 428, 418, 433, 434, 435, 437, 439, 440,
+ 419, 441, 420, 421, 427, 429, 422, 443, 423, 424,
+ 444, 445, 446, 1193, 1192, 425, 430, 426, 432, 428,
+ 456, 433, 434, 435, 437, 439, 440, 457, 441, 458,
+
+ 459, 427, 1186, 462, 443, 1174, 463, 444, 445, 446,
+ 447, 448, 449, 464, 460, 466, 450, 456, 451, 461,
+ 468, 452, 469, 453, 457, 470, 458, 459, 471, 454,
+ 462, 472, 455, 463, 1172, 473, 478, 447, 448, 449,
+ 464, 460, 466, 450, 480, 451, 461, 468, 452, 469,
+ 453, 481, 470, 474, 482, 471, 454, 475, 472, 455,
+ 483, 476, 473, 478, 484, 485, 486, 487, 488, 489,
+ 492, 480, 493, 494, 499, 1154, 500, 501, 481, 502,
+ 474, 482, 503, 495, 475, 508, 490, 483, 509, 505,
+ 506, 484, 485, 486, 487, 488, 489, 492, 496, 493,
+
+ 494, 499, 497, 500, 501, 507, 502, 498, 510, 503,
+ 513, 514, 508, 490, 515, 509, 505, 506, 516, 517,
+ 518, 519, 520, 521, 522, 496, 524, 525, 527, 497,
+ 528, 523, 507, 529, 498, 510, 530, 513, 514, 531,
+ 532, 515, 533, 534, 537, 516, 517, 518, 519, 520,
+ 521, 522, 538, 524, 525, 527, 535, 528, 523, 539,
+ 529, 536, 541, 530, 542, 543, 531, 532, 544, 533,
+ 534, 537, 545, 546, 547, 548, 549, 550, 551, 538,
+ 552, 553, 554, 535, 555, 556, 539, 558, 536, 541,
+ 559, 542, 543, 560, 561, 544, 562, 565, 566, 545,
+
+ 546, 547, 548, 549, 550, 551, 563, 552, 553, 554,
+ 567, 555, 556, 568, 558, 569, 564, 559, 570, 571,
+ 560, 561, 574, 562, 565, 566, 576, 577, 578, 579,
+ 580, 581, 583, 563, 584, 582, 585, 567, 586, 1153,
+ 568, 590, 569, 564, 591, 570, 571, 592, 593, 574,
+ 587, 594, 588, 576, 577, 578, 579, 580, 581, 583,
+ 595, 584, 582, 585, 596, 586, 589, 597, 590, 598,
+ 599, 591, 602, 600, 592, 593, 603, 587, 594, 588,
+ 601, 604, 605, 606, 607, 608, 609, 595, 611, 612,
+ 613, 596, 615, 589, 597, 614, 598, 599, 1150, 602,
+
+ 600, 618, 620, 603, 622, 623, 626, 601, 604, 605,
+ 606, 607, 608, 609, 616, 611, 612, 613, 619, 615,
+ 624, 627, 614, 625, 628, 617, 629, 630, 618, 620,
+ 633, 622, 623, 626, 631, 634, 635, 632, 636, 637,
+ 638, 616, 640, 645, 646, 619, 648, 624, 627, 649,
+ 625, 628, 617, 629, 630, 650, 651, 633, 652, 653,
+ 654, 631, 634, 635, 632, 636, 637, 638, 642, 640,
+ 645, 646, 643, 648, 655, 644, 649, 656, 657, 658,
+ 659, 660, 650, 651, 661, 652, 653, 654, 663, 664,
+ 665, 666, 668, 669, 670, 642, 671, 674, 675, 643,
+
+ 1024, 655, 644, 676, 656, 657, 658, 659, 660, 672,
+ 677, 661, 678, 679, 680, 663, 664, 665, 666, 668,
+ 669, 670, 681, 671, 674, 675, 682, 673, 683, 684,
+ 676, 685, 687, 689, 690, 696, 672, 677, 698, 678,
+ 679, 680, 700, 691, 692, 703, 705, 1024, 706, 681,
+ 707, 708, 693, 682, 709, 683, 684, 694, 685, 687,
+ 689, 690, 696, 701, 710, 698, 711, 712, 713, 700,
+ 691, 692, 703, 705, 702, 706, 714, 707, 708, 693,
+ 715, 709, 716, 717, 694, 718, 720, 721, 722, 723,
+ 701, 710, 719, 711, 712, 713, 724, 725, 726, 727,
+
+ 728, 702, 729, 714, 730, 731, 732, 715, 733, 716,
+ 717, 734, 718, 720, 721, 722, 723, 735, 736, 719,
+ 737, 738, 739, 724, 725, 726, 727, 728, 740, 729,
+ 742, 730, 731, 732, 743, 733, 744, 745, 734, 746,
+ 747, 748, 749, 750, 735, 736, 751, 737, 738, 739,
+ 752, 753, 755, 756, 757, 740, 758, 742, 759, 760,
+ 761, 743, 762, 744, 745, 763, 746, 747, 748, 749,
+ 750, 764, 767, 751, 765, 766, 768, 752, 753, 755,
+ 756, 757, 769, 758, 770, 759, 760, 761, 771, 762,
+ 772, 773, 763, 774, 776, 782, 1022, 784, 764, 767,
+
+ 786, 765, 766, 768, 787, 788, 789, 790, 791, 769,
+ 792, 770, 793, 794, 795, 771, 796, 772, 773, 777,
+ 774, 776, 782, 778, 784, 779, 797, 786, 798, 780,
+ 781, 787, 788, 789, 790, 791, 799, 792, 800, 793,
+ 794, 795, 801, 796, 802, 803, 777, 804, 805, 807,
+ 778, 811, 779, 797, 812, 798, 780, 781, 813, 814,
+ 816, 819, 820, 799, 821, 800, 822, 817, 823, 801,
+ 824, 802, 803, 825, 804, 805, 807, 818, 811, 826,
+ 827, 812, 828, 829, 830, 813, 814, 816, 819, 820,
+ 831, 821, 832, 822, 817, 823, 833, 824, 834, 835,
+
+ 825, 836, 837, 838, 818, 839, 826, 827, 840, 828,
+ 829, 830, 841, 842, 843, 844, 845, 831, 846, 832,
+ 847, 848, 849, 833, 850, 834, 835, 851, 836, 837,
+ 838, 853, 839, 854, 855, 840, 856, 858, 859, 841,
+ 842, 843, 844, 845, 862, 846, 863, 847, 848, 849,
+ 864, 850, 865, 866, 851, 867, 868, 869, 853, 870,
+ 854, 855, 871, 856, 858, 859, 872, 873, 874, 875,
+ 876, 862, 877, 863, 878, 879, 880, 864, 881, 865,
+ 866, 882, 867, 868, 869, 883, 870, 884, 885, 871,
+ 886, 887, 888, 872, 873, 874, 875, 876, 889, 877,
+
+ 890, 878, 879, 880, 891, 881, 892, 893, 882, 894,
+ 895, 896, 883, 902, 884, 885, 903, 886, 887, 888,
+ 905, 907, 908, 913, 914, 889, 915, 890, 916, 917,
+ 918, 891, 919, 892, 893, 920, 894, 895, 896, 921,
+ 902, 922, 924, 903, 928, 929, 930, 905, 907, 908,
+ 913, 914, 931, 915, 923, 916, 917, 918, 925, 919,
+ 932, 933, 920, 926, 934, 935, 921, 936, 922, 924,
+ 937, 928, 929, 930, 938, 927, 939, 940, 941, 931,
+ 942, 923, 943, 944, 945, 925, 946, 932, 933, 947,
+ 926, 934, 935, 948, 936, 949, 950, 937, 951, 952,
+
+ 953, 938, 927, 939, 940, 941, 954, 942, 955, 943,
+ 944, 945, 956, 946, 957, 958, 947, 959, 960, 962,
+ 948, 963, 949, 950, 964, 951, 952, 953, 965, 966,
+ 967, 968, 969, 954, 970, 955, 973, 971, 974, 956,
+ 975, 957, 958, 976, 959, 960, 962, 972, 963, 977,
+ 978, 964, 979, 980, 981, 965, 966, 967, 968, 969,
+ 982, 970, 983, 973, 971, 974, 984, 975, 985, 987,
+ 976, 988, 989, 990, 972, 992, 977, 978, 993, 979,
+ 980, 981, 994, 995, 996, 997, 999, 982, 1000, 983,
+ 1001, 1002, 1003, 984, 1004, 985, 987, 1005, 988, 989,
+
+ 990, 1006, 992, 1007, 1008, 993, 1009, 1010, 1011, 994,
+ 995, 996, 997, 999, 1012, 1000, 1014, 1001, 1002, 1003,
+ 1015, 1004, 1016, 1017, 1005, 1018, 1019, 1020, 1006, 1025,
+ 1007, 1008, 1026, 1009, 1010, 1011, 1030, 1031, 1032, 1033,
+ 1034, 1012, 1035, 1014, 1036, 1037, 1038, 1015, 1039, 1016,
+ 1017, 1040, 1018, 1019, 1020, 1041, 1025, 1042, 1043, 1026,
+ 1044, 1045, 1046, 1030, 1031, 1032, 1033, 1034, 1048, 1035,
+ 1049, 1036, 1037, 1038, 1050, 1039, 1051, 1052, 1040, 1054,
+ 1055, 1056, 1041, 1058, 1042, 1043, 1059, 1044, 1045, 1046,
+ 1060, 1061, 1062, 1063, 1065, 1048, 1066, 1049, 1070, 1071,
+
+ 1073, 1050, 1074, 1051, 1052, 1067, 1054, 1055, 1056, 1075,
+ 1058, 1076, 1077, 1059, 1068, 1078, 1079, 1060, 1061, 1062,
+ 1063, 1065, 1069, 1066, 1081, 1070, 1071, 1073, 1082, 1074,
+ 1083, 1084, 1067, 1087, 1089, 1090, 1075, 1091, 1076, 1077,
+ 1092, 1068, 1078, 1079, 1093, 1094, 1095, 1096, 1097, 1069,
+ 1098, 1081, 1099, 1100, 1101, 1082, 1102, 1083, 1084, 1103,
+ 1087, 1089, 1090, 1104, 1091, 1105, 1106, 1092, 1107, 1108,
+ 1109, 1093, 1094, 1095, 1096, 1097, 1110, 1098, 1111, 1099,
+ 1100, 1101, 1112, 1102, 1113, 1114, 1103, 1115, 1116, 1117,
+ 1104, 1118, 1105, 1106, 1119, 1107, 1108, 1109, 1120, 1121,
+
+ 1122, 1123, 1124, 1110, 1125, 1111, 1126, 1127, 1128, 1112,
+ 1129, 1113, 1114, 1130, 1115, 1116, 1117, 1131, 1118, 1132,
+ 1133, 1119, 1134, 1135, 1136, 1120, 1121, 1122, 1123, 1124,
+ 1137, 1125, 1138, 1126, 1127, 1128, 1139, 1129, 1140, 1141,
+ 1130, 1142, 1143, 1144, 1131, 1145, 1132, 1133, 1146, 1134,
+ 1135, 1136, 1147, 1148, 1149, 1151, 1152, 1137, 1155, 1138,
+ 1156, 1157, 1158, 1139, 1159, 1140, 1141, 1160, 1142, 1143,
+ 1144, 1161, 1145, 1162, 1163, 1146, 1164, 1165, 1166, 1147,
+ 1148, 1149, 1151, 1152, 1167, 1155, 1168, 1156, 1157, 1158,
+ 1169, 1159, 1170, 1171, 1160, 1173, 1175, 1176, 1161, 1177,
+
+ 1162, 1163, 1178, 1164, 1165, 1166, 1179, 1180, 1181, 1182,
+ 1183, 1167, 1184, 1168, 1185, 1187, 1188, 1169, 1189, 1170,
+ 1171, 1190, 1173, 1175, 1176, 1191, 1177, 1194, 1196, 1178,
+ 1197, 1198, 1199, 1179, 1180, 1181, 1182, 1183, 1200, 1184,
+ 1201, 1185, 1187, 1188, 1202, 1189, 1203, 1204, 1190, 1205,
+ 1206, 1207, 1191, 1208, 1194, 1196, 1209, 1197, 1198, 1199,
+ 1210, 1211, 1212, 1214, 1215, 1200, 1216, 1201, 1217, 1218,
+ 1219, 1202, 1220, 1203, 1204, 1221, 1205, 1206, 1207, 1223,
+ 1208, 1224, 1225, 1209, 1226, 1227, 1228, 1210, 1211, 1212,
+ 1214, 1215, 1230, 1216, 1233, 1217, 1218, 1219, 1234, 1220,
+
+ 1235, 1236, 1221, 1238, 1239, 1241, 1223, 1231, 1224, 1225,
+ 1242, 1226, 1227, 1228, 1243, 1232, 1244, 1245, 1237, 1230,
+ 1246, 1233, 1247, 1248, 1249, 1234, 1250, 1235, 1236, 1251,
+ 1238, 1239, 1241, 1252, 1231, 1253, 1254, 1242, 1257, 1258,
+ 1255, 1243, 1259, 1244, 1245, 1237, 1256, 1246, 1260, 1247,
+ 1248, 1249, 1261, 1250, 1262, 1264, 1251, 1265, 1266, 1267,
+ 1252, 1268, 1253, 1254, 1269, 1257, 1258, 1255, 1270, 1259,
+ 1271, 1272, 1273, 1256, 1274, 1260, 1275, 1276, 1277, 1261,
+ 1278, 1262, 1264, 1279, 1265, 1266, 1267, 1280, 1268, 1281,
+ 1282, 1269, 1283, 1284, 1285, 1270, 1286, 1271, 1272, 1273,
+
+ 1287, 1274, 1288, 1275, 1276, 1277, 1289, 1278, 1290, 1291,
+ 1279, 1292, 1294, 1295, 1280, 1296, 1281, 1282, 1297, 1283,
+ 1284, 1285, 1298, 1286, 1299, 1300, 1301, 1287, 1302, 1288,
+ 1303, 1304, 1307, 1289, 1308, 1290, 1291, 1309, 1292, 1294,
+ 1295, 1310, 1296, 1311, 1312, 1297, 1313, 1314, 1315, 1298,
+ 1316, 1299, 1300, 1301, 1317, 1302, 1318, 1303, 1304, 1307,
+ 1320, 1308, 1321, 1322, 1309, 1323, 1325, 1326, 1310, 1327,
+ 1311, 1312, 1328, 1313, 1314, 1315, 1329, 1316, 1330, 1331,
+ 1332, 1317, 1333, 1318, 1334, 1335, 1337, 1320, 1338, 1321,
+ 1322, 1343, 1323, 1325, 1326, 1344, 1327, 1346, 1347, 1328,
+
+ 1348, 1349, 1350, 1329, 1351, 1330, 1331, 1332, 1352, 1333,
+ 1353, 1334, 1335, 1337, 1355, 1338, 1356, 1357, 1343, 1358,
+ 1359, 1361, 1344, 1362, 1346, 1347, 1363, 1348, 1349, 1350,
+ 1364, 1351, 1365, 1366, 1367, 1352, 1368, 1353, 1369, 1370,
+ 1372, 1355, 1373, 1356, 1357, 1374, 1358, 1359, 1361, 1375,
+ 1362, 1376, 1377, 1363, 1378, 1379, 1380, 1364, 1381, 1365,
+ 1366, 1367, 1382, 1368, 1383, 1369, 1370, 1372, 1384, 1373,
+ 1385, 1386, 1374, 1387, 1388, 1389, 1375, 1390, 1376, 1377,
+ 1391, 1378, 1379, 1380, 1392, 1381, 1393, 1394, 1395, 1382,
+ 1396, 1383, 1398, 1399, 1400, 1384, 1402, 1385, 1386, 1403,
+
+ 1387, 1388, 1389, 1404, 1390, 1405, 1406, 1391, 1408, 1410,
+ 1411, 1392, 1413, 1393, 1394, 1395, 1414, 1396, 1415, 1398,
+ 1399, 1400, 1416, 1402, 1417, 1418, 1403, 1419, 1420, 1422,
+ 1404, 1423, 1405, 1406, 1421, 1408, 1410, 1411, 1424, 1413,
+ 1425, 1426, 1427, 1414, 1428, 1415, 1429, 1430, 1431, 1416,
+ 1432, 1417, 1418, 1433, 1419, 1420, 1422, 1435, 1423, 1436,
+ 1437, 1421, 1438, 1439, 1440, 1424, 1441, 1425, 1426, 1427,
+ 1442, 1428, 1443, 1429, 1430, 1431, 1444, 1432, 1445, 1446,
+ 1433, 1447, 1450, 1451, 1435, 1452, 1436, 1437, 1453, 1438,
+ 1439, 1440, 1454, 1441, 1455, 1456, 1457, 1442, 1458, 1443,
+
+ 1459, 1460, 1462, 1444, 1463, 1445, 1446, 1464, 1447, 1450,
+ 1451, 1465, 1452, 1466, 1468, 1453, 1469, 1470, 1471, 1454,
+ 1472, 1455, 1456, 1457, 1473, 1458, 1475, 1459, 1460, 1462,
+ 1477, 1463, 1478, 1479, 1464, 1480, 1481, 1482, 1465, 1483,
+ 1466, 1468, 1484, 1469, 1470, 1471, 1485, 1472, 1486, 1487,
+ 1488, 1473, 1489, 1475, 1490, 1491, 1492, 1477, 1493, 1478,
+ 1479, 1494, 1480, 1481, 1482, 1495, 1483, 1496, 1497, 1484,
+ 1498, 1499, 1500, 1485, 1501, 1486, 1487, 1488, 1502, 1489,
+ 1503, 1490, 1491, 1492, 1504, 1493, 1505, 1506, 1494, 1507,
+ 1508, 1509, 1495, 1510, 1496, 1497, 1511, 1498, 1499, 1500,
+
+ 1512, 1501, 1513, 1514, 1515, 1502, 1516, 1503, 1517, 1518,
+ 1519, 1504, 1520, 1505, 1506, 1521, 1507, 1508, 1509, 1522,
+ 1510, 1523, 1524, 1511, 1525, 1526, 1527, 1512, 1528, 1513,
+ 1514, 1515, 1529, 1516, 1530, 1517, 1518, 1519, 1531, 1520,
+ 1532, 1533, 1521, 1534, 1535, 1536, 1522, 1537, 1523, 1524,
+ 1538, 1525, 1526, 1527, 1539, 1528, 1540, 1542, 1543, 1529,
+ 1544, 1530, 1545, 1546, 1547, 1531, 1548, 1532, 1533, 1549,
+ 1534, 1535, 1536, 1550, 1537, 1551, 1552, 1538, 1553, 1554,
+ 1555, 1539, 1556, 1540, 1542, 1543, 1557, 1544, 1558, 1545,
+ 1546, 1547, 1559, 1548, 1560, 1561, 1549, 1562, 1563, 1564,
+
+ 1550, 1565, 1551, 1552, 1566, 1553, 1554, 1555, 1567, 1556,
+ 1568, 1569, 1571, 1557, 1572, 1558, 1573, 1574, 1575, 1559,
+ 1576, 1560, 1561, 1577, 1562, 1563, 1564, 1578, 1565, 1579,
+ 1580, 1566, 1581, 1582, 1583, 1567, 1584, 1568, 1569, 1571,
+ 1586, 1572, 1587, 1573, 1574, 1575, 1588, 1576, 1589, 1590,
+ 1577, 1591, 1592, 1593, 1578, 1594, 1579, 1580, 1595, 1581,
+ 1582, 1583, 1596, 1584, 1022, 1088, 1086, 1586, 1085, 1587,
+ 1080, 1072, 1064, 1588, 1057, 1589, 1590, 1053, 1591, 1592,
+ 1593, 1047, 1594, 1029, 1028, 1595, 1027, 1024, 1022, 1596,
+ 39, 39, 1013, 998, 991, 986, 961, 909, 906, 904,
+
+ 901, 900, 899, 898, 897, 861, 860, 857, 852, 815,
+ 810, 809, 808, 806, 785, 783, 775, 754, 741, 704,
+ 699, 697, 695, 688, 686, 667, 662, 647, 641, 639,
+ 621, 610, 575, 573, 572, 557, 540, 526, 512, 511,
+ 504, 491, 479, 477, 467, 465, 442, 438, 436, 431,
+ 413, 404, 397, 357, 322, 306, 270, 242, 204, 37,
+ 37, 1597, 3, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597
} ;
-static yyconst flex_int16_t yy_chk[3109] =
+static yyconst flex_int16_t yy_chk[3132] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -1306,340 +1317,343 @@ static yyconst flex_int16_t yy_chk[3109] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 7, 7,
9, 10, 13, 10, 11, 11, 11, 11, 11, 16,
- 21, 1590, 13, 26, 1589, 16, 16, 9, 39, 39,
- 15, 789, 28, 789, 15, 18, 16, 1588, 15, 13,
+ 21, 1602, 13, 26, 1601, 16, 16, 9, 39, 39,
+ 15, 794, 28, 794, 15, 18, 16, 1600, 15, 13,
- 17, 15, 18, 789, 15, 1586, 16, 21, 17, 13,
+ 17, 15, 18, 794, 15, 1598, 16, 21, 17, 13,
26, 17, 16, 16, 9, 12, 12, 15, 12, 28,
17, 15, 18, 16, 12, 15, 12, 17, 15, 18,
- 20, 15, 19, 12, 1567, 17, 1544, 20, 17, 20,
- 19, 1508, 12, 12, 33, 12, 19, 17, 180, 180,
- 1423, 12, 19, 12, 35, 1390, 1390, 20, 29, 19,
- 12, 14, 29, 14, 20, 1421, 20, 19, 14, 14,
+ 20, 15, 19, 12, 1579, 17, 1556, 20, 17, 20,
+ 19, 1520, 12, 12, 33, 12, 19, 17, 180, 180,
+ 1435, 12, 19, 12, 35, 1402, 1402, 20, 29, 19,
+ 12, 14, 29, 14, 20, 1433, 20, 19, 14, 14,
22, 33, 14, 19, 23, 14, 29, 22, 23, 19,
- 22, 35, 22, 34, 23, 29, 1413, 34, 14, 29,
- 14, 1406, 27, 1374, 36, 14, 14, 22, 43, 14,
+ 22, 35, 22, 34, 23, 29, 1425, 34, 14, 29,
+ 14, 1418, 27, 1386, 36, 14, 14, 22, 43, 14,
27, 23, 14, 29, 22, 23, 27, 22, 47, 22,
34, 23, 24, 24, 34, 48, 24, 32, 32, 27,
24, 36, 49, 32, 50, 43, 24, 27, 46, 46,
46, 46, 46, 27, 51, 47, 52, 53, 54, 24,
- 24, 1351, 48, 24, 32, 32, 55, 24, 55, 49,
+ 24, 1362, 48, 24, 32, 32, 55, 24, 55, 49,
32, 50, 56, 24, 25, 57, 25, 58, 25, 60,
- 59, 51, 25, 52, 53, 54, 61, 64, 25, 1348,
- 1345, 65, 66, 55, 25, 55, 67, 1339, 1333, 56,
+ 59, 51, 25, 52, 53, 54, 61, 64, 25, 1359,
+ 1356, 65, 66, 55, 25, 55, 67, 1350, 1344, 56,
59, 25, 57, 25, 58, 25, 60, 59, 68, 25,
- 1301, 62, 62, 61, 64, 25, 62, 63, 65, 66,
+ 1311, 62, 62, 61, 64, 25, 62, 63, 65, 66,
- 1290, 25, 30, 67, 62, 30, 30, 59, 30, 62,
+ 1300, 25, 30, 67, 62, 30, 30, 59, 30, 62,
70, 63, 30, 30, 71, 68, 30, 30, 62, 62,
- 72, 1282, 1271, 62, 63, 69, 73, 69, 1268, 30,
- 1267, 62, 30, 30, 76, 30, 62, 70, 63, 30,
+ 72, 1292, 1281, 62, 63, 69, 73, 69, 1278, 30,
+ 1277, 62, 30, 30, 76, 30, 62, 70, 63, 30,
30, 71, 69, 30, 30, 31, 74, 72, 31, 31,
77, 79, 69, 73, 69, 31, 31, 74, 75, 80,
81, 76, 31, 78, 75, 78, 82, 83, 84, 69,
85, 86, 31, 74, 87, 31, 31, 77, 79, 88,
- 1266, 92, 31, 31, 74, 75, 80, 81, 93, 31,
+ 1276, 92, 31, 31, 74, 75, 80, 81, 1275, 31,
78, 75, 78, 82, 83, 84, 90, 85, 86, 89,
- 90, 87, 91, 94, 89, 96, 88, 91, 92, 95,
- 97, 99, 101, 98, 102, 93, 104, 105, 1265, 95,
- 107, 109, 1262, 90, 1247, 1242, 89, 90, 98, 91,
- 94, 89, 96, 103, 91, 113, 95, 97, 99, 101,
- 98, 102, 1226, 104, 105, 106, 95, 107, 109, 103,
- 103, 111, 112, 106, 904, 98, 904, 1225, 110, 114,
- 103, 1208, 113, 1176, 116, 111, 904, 1148, 117, 110,
- 118, 119, 106, 110, 112, 110, 103, 103, 111, 112,
- 106, 108, 120, 108, 108, 110, 114, 108, 108, 121,
- 108, 116, 111, 108, 115, 117, 110, 118, 119, 108,
-
- 110, 112, 110, 123, 115, 124, 1138, 126, 108, 120,
- 108, 108, 127, 128, 108, 108, 121, 108, 130, 128,
- 108, 115, 129, 1130, 131, 129, 108, 132, 133, 1119,
- 123, 115, 124, 125, 126, 134, 125, 135, 137, 127,
- 128, 138, 131, 125, 125, 130, 128, 139, 138, 129,
- 125, 131, 129, 140, 132, 133, 125, 141, 143, 144,
- 125, 145, 134, 125, 135, 137, 146, 147, 138, 131,
- 125, 125, 148, 149, 139, 138, 150, 125, 151, 152,
- 140, 153, 154, 125, 141, 143, 144, 156, 145, 157,
- 158, 159, 160, 146, 147, 161, 162, 163, 164, 148,
-
- 149, 165, 166, 150, 168, 151, 152, 167, 153, 154,
- 169, 170, 171, 172, 156, 173, 157, 158, 159, 160,
- 167, 175, 161, 162, 163, 164, 174, 174, 165, 166,
- 176, 168, 178, 179, 167, 181, 182, 169, 170, 171,
- 172, 183, 173, 184, 183, 185, 186, 167, 175, 187,
- 188, 189, 191, 174, 174, 193, 194, 176, 195, 178,
- 179, 196, 181, 182, 195, 197, 198, 199, 183, 200,
- 184, 183, 185, 186, 201, 202, 187, 188, 189, 191,
- 204, 1101, 193, 194, 205, 195, 206, 207, 196, 208,
- 209, 203, 197, 198, 199, 210, 200, 211, 203, 212,
-
- 213, 201, 202, 203, 214, 215, 216, 204, 203, 217,
- 218, 205, 220, 206, 207, 223, 208, 209, 203, 221,
- 224, 221, 210, 225, 211, 203, 212, 213, 227, 228,
- 203, 214, 215, 216, 230, 203, 217, 218, 231, 220,
- 232, 233, 223, 236, 235, 237, 221, 224, 221, 235,
- 225, 238, 239, 240, 241, 227, 228, 242, 243, 244,
- 245, 230, 246, 247, 241, 231, 248, 232, 233, 249,
- 236, 235, 237, 250, 251, 252, 253, 254, 238, 239,
- 240, 241, 250, 255, 242, 243, 244, 245, 256, 246,
- 247, 241, 257, 248, 259, 260, 249, 261, 262, 265,
-
- 250, 251, 252, 253, 254, 267, 268, 269, 270, 271,
- 255, 273, 274, 275, 278, 256, 279, 281, 282, 257,
- 283, 259, 260, 285, 261, 262, 265, 286, 287, 288,
- 289, 290, 267, 268, 269, 270, 271, 291, 273, 274,
- 275, 278, 293, 279, 281, 282, 294, 283, 296, 297,
- 285, 298, 299, 301, 286, 287, 288, 289, 290, 300,
- 304, 305, 306, 307, 291, 311, 299, 313, 314, 293,
- 315, 317, 300, 294, 318, 296, 297, 319, 298, 299,
- 301, 320, 1099, 1098, 1088, 322, 300, 304, 305, 306,
- 307, 323, 311, 299, 313, 314, 324, 315, 317, 326,
-
- 325, 318, 327, 329, 319, 325, 331, 333, 320, 321,
- 321, 321, 322, 334, 335, 321, 336, 321, 323, 337,
- 321, 340, 321, 324, 344, 345, 326, 325, 321, 327,
- 329, 321, 325, 331, 333, 338, 321, 321, 321, 346,
- 334, 335, 321, 336, 321, 347, 337, 321, 340, 321,
- 348, 344, 345, 338, 349, 321, 350, 338, 321, 351,
- 352, 338, 338, 355, 356, 353, 346, 358, 357, 359,
- 360, 358, 347, 362, 363, 364, 358, 348, 357, 367,
- 338, 349, 353, 350, 338, 368, 351, 352, 366, 366,
- 355, 356, 353, 369, 358, 357, 359, 360, 358, 372,
-
- 362, 363, 364, 358, 366, 373, 367, 375, 376, 353,
- 377, 378, 368, 379, 380, 366, 366, 381, 383, 384,
- 369, 385, 387, 388, 389, 383, 372, 390, 391, 392,
- 393, 366, 373, 394, 375, 376, 396, 377, 378, 398,
- 379, 380, 395, 399, 381, 383, 384, 395, 385, 387,
- 388, 389, 383, 401, 390, 391, 392, 393, 402, 404,
- 394, 405, 407, 396, 408, 409, 398, 411, 412, 395,
- 399, 414, 415, 416, 395, 417, 418, 420, 422, 424,
- 401, 425, 426, 427, 428, 402, 404, 429, 405, 407,
- 431, 408, 409, 432, 411, 412, 433, 429, 414, 415,
-
- 416, 434, 417, 418, 420, 422, 424, 435, 425, 426,
- 427, 428, 436, 437, 429, 440, 442, 431, 443, 444,
- 432, 445, 446, 433, 429, 447, 448, 449, 434, 447,
- 450, 453, 451, 452, 435, 454, 455, 456, 457, 436,
- 437, 458, 440, 442, 451, 443, 444, 452, 445, 446,
- 459, 460, 447, 448, 449, 461, 447, 450, 453, 451,
- 452, 463, 454, 455, 456, 457, 462, 464, 458, 465,
- 466, 451, 467, 462, 452, 468, 469, 459, 460, 470,
- 472, 474, 461, 473, 473, 477, 479, 475, 463, 473,
- 480, 484, 476, 462, 464, 485, 465, 466, 475, 467,
-
- 462, 482, 468, 469, 482, 486, 470, 472, 474, 476,
- 473, 473, 477, 479, 475, 487, 473, 480, 484, 476,
- 488, 489, 485, 490, 489, 475, 492, 493, 482, 494,
- 495, 482, 486, 496, 499, 503, 476, 502, 504, 506,
- 507, 502, 487, 509, 502, 510, 511, 488, 489, 512,
- 490, 489, 513, 492, 493, 514, 494, 495, 515, 516,
- 496, 499, 503, 517, 502, 504, 506, 507, 502, 518,
- 509, 502, 510, 511, 519, 520, 512, 522, 523, 513,
- 524, 528, 514, 530, 532, 515, 516, 533, 534, 536,
- 517, 535, 537, 538, 539, 540, 518, 541, 542, 543,
-
- 544, 519, 520, 545, 522, 523, 546, 524, 528, 535,
- 530, 532, 547, 550, 533, 534, 536, 552, 535, 537,
- 538, 539, 540, 553, 541, 542, 543, 544, 554, 554,
- 545, 556, 558, 546, 560, 561, 562, 554, 564, 547,
- 550, 565, 554, 567, 552, 568, 561, 569, 570, 571,
- 553, 572, 576, 577, 578, 554, 554, 579, 556, 558,
- 580, 560, 561, 562, 554, 564, 582, 583, 565, 554,
- 567, 584, 568, 561, 569, 570, 571, 585, 572, 576,
- 577, 578, 581, 586, 579, 587, 589, 580, 590, 581,
- 591, 592, 593, 582, 583, 595, 596, 597, 584, 598,
-
- 599, 600, 601, 602, 585, 603, 605, 606, 607, 581,
- 586, 608, 587, 589, 609, 590, 581, 591, 592, 593,
- 610, 611, 595, 596, 597, 613, 598, 599, 600, 601,
- 602, 614, 603, 605, 606, 607, 615, 616, 608, 617,
- 620, 609, 621, 623, 624, 625, 626, 610, 611, 627,
- 628, 629, 613, 630, 631, 631, 632, 633, 614, 635,
- 636, 637, 638, 615, 616, 639, 617, 620, 640, 621,
- 623, 624, 625, 626, 642, 644, 627, 628, 629, 646,
- 630, 631, 631, 632, 633, 648, 635, 636, 637, 638,
- 651, 652, 639, 643, 653, 640, 655, 643, 656, 643,
-
- 657, 642, 644, 643, 643, 660, 646, 662, 663, 664,
- 665, 666, 648, 667, 668, 669, 670, 651, 652, 671,
- 643, 653, 673, 655, 643, 656, 643, 657, 675, 677,
- 643, 643, 660, 681, 662, 663, 664, 665, 666, 682,
- 667, 668, 669, 670, 683, 684, 671, 687, 688, 673,
- 689, 690, 691, 693, 694, 675, 677, 695, 688, 696,
- 681, 697, 698, 699, 700, 701, 682, 702, 703, 704,
- 705, 683, 684, 706, 687, 688, 707, 689, 690, 691,
- 693, 694, 708, 709, 695, 688, 696, 710, 697, 698,
- 699, 700, 701, 711, 702, 703, 704, 705, 712, 713,
-
- 706, 714, 715, 707, 716, 717, 718, 719, 720, 708,
- 709, 721, 722, 724, 710, 725, 728, 729, 731, 732,
- 711, 735, 736, 737, 738, 712, 713, 739, 714, 715,
- 740, 716, 717, 718, 719, 720, 741, 742, 721, 722,
- 724, 743, 725, 728, 729, 731, 732, 744, 735, 736,
- 737, 738, 745, 746, 739, 747, 748, 740, 749, 750,
- 751, 752, 754, 741, 742, 755, 756, 757, 743, 759,
- 760, 761, 762, 763, 744, 764, 765, 766, 767, 745,
- 746, 768, 747, 748, 769, 749, 750, 751, 752, 754,
- 770, 771, 755, 756, 757, 777, 759, 760, 761, 762,
-
- 763, 778, 764, 765, 766, 767, 780, 784, 768, 787,
- 790, 769, 791, 792, 793, 796, 797, 770, 771, 798,
- 799, 800, 777, 802, 804, 801, 805, 803, 778, 806,
- 807, 809, 803, 780, 784, 810, 787, 790, 801, 791,
- 792, 793, 796, 797, 803, 811, 798, 799, 800, 812,
- 802, 804, 801, 805, 803, 813, 806, 807, 809, 803,
- 814, 815, 810, 816, 817, 801, 818, 819, 820, 821,
- 822, 803, 811, 824, 825, 826, 812, 827, 828, 829,
- 830, 831, 813, 832, 833, 835, 836, 814, 815, 837,
- 816, 817, 838, 818, 819, 820, 821, 822, 840, 842,
-
- 824, 825, 826, 843, 827, 828, 829, 830, 831, 844,
- 832, 833, 835, 836, 845, 846, 837, 848, 849, 838,
- 850, 851, 852, 853, 854, 840, 842, 855, 857, 859,
- 843, 851, 861, 862, 863, 864, 844, 866, 867, 868,
- 870, 845, 846, 871, 848, 849, 872, 850, 851, 852,
- 853, 854, 873, 875, 855, 857, 859, 876, 851, 861,
- 862, 863, 864, 877, 866, 867, 868, 870, 878, 879,
- 871, 880, 882, 872, 883, 884, 885, 886, 887, 873,
- 875, 888, 889, 890, 876, 891, 892, 893, 894, 895,
- 877, 897, 898, 899, 900, 878, 879, 901, 880, 882,
-
- 902, 883, 884, 885, 886, 887, 903, 907, 888, 889,
- 890, 908, 891, 892, 893, 894, 895, 913, 897, 898,
- 899, 900, 914, 915, 901, 916, 917, 902, 918, 919,
- 920, 921, 922, 903, 907, 923, 925, 926, 908, 927,
- 928, 929, 930, 932, 913, 933, 934, 935, 936, 914,
- 915, 938, 916, 917, 939, 918, 919, 920, 921, 922,
- 940, 942, 923, 925, 926, 943, 927, 928, 929, 930,
- 932, 945, 933, 934, 935, 936, 946, 948, 938, 949,
- 951, 939, 952, 956, 955, 957, 961, 940, 942, 962,
- 963, 964, 943, 955, 965, 966, 968, 969, 945, 970,
-
- 971, 955, 974, 946, 948, 976, 949, 951, 978, 952,
- 956, 955, 957, 961, 979, 980, 962, 963, 964, 984,
- 955, 965, 966, 968, 969, 985, 970, 971, 955, 974,
- 986, 987, 976, 988, 989, 978, 990, 991, 992, 993,
- 994, 979, 980, 995, 996, 997, 984, 998, 999, 1000,
- 1001, 1002, 985, 1003, 1004, 1005, 1006, 986, 987, 1007,
- 988, 989, 1008, 990, 991, 992, 993, 994, 1009, 1010,
- 995, 996, 997, 1012, 998, 999, 1000, 1001, 1002, 1013,
- 1003, 1004, 1005, 1006, 1018, 1019, 1007, 1020, 1021, 1008,
- 1022, 1024, 1025, 1026, 1027, 1009, 1010, 1028, 1029, 1030,
-
- 1012, 1031, 1032, 1033, 1034, 1035, 1013, 1036, 1037, 1038,
- 1039, 1018, 1019, 1040, 1020, 1021, 1041, 1022, 1024, 1025,
- 1026, 1027, 1042, 1043, 1028, 1029, 1030, 1045, 1031, 1032,
- 1033, 1034, 1035, 1046, 1036, 1037, 1038, 1039, 1047, 1049,
- 1040, 1050, 1053, 1041, 1054, 1055, 1057, 1058, 1060, 1042,
- 1043, 1061, 1062, 1064, 1045, 1065, 1066, 1068, 1069, 1070,
- 1046, 1071, 1072, 1074, 1076, 1047, 1049, 1077, 1050, 1053,
- 1078, 1054, 1055, 1057, 1058, 1060, 1079, 1080, 1061, 1062,
- 1064, 1081, 1065, 1066, 1068, 1069, 1070, 1083, 1071, 1072,
- 1074, 1076, 1084, 1085, 1077, 1086, 1087, 1078, 1089, 1092,
-
- 1095, 1096, 1097, 1079, 1080, 1100, 1102, 1103, 1081, 1104,
- 1105, 1106, 1107, 1108, 1083, 1109, 1110, 1111, 1112, 1084,
- 1085, 1113, 1086, 1087, 1114, 1089, 1092, 1095, 1096, 1097,
- 1115, 1116, 1100, 1102, 1103, 1117, 1104, 1105, 1106, 1107,
- 1108, 1118, 1109, 1110, 1111, 1112, 1121, 1122, 1113, 1124,
- 1125, 1114, 1126, 1127, 1128, 1129, 1131, 1115, 1116, 1132,
- 1133, 1134, 1117, 1135, 1136, 1140, 1142, 1141, 1118, 1143,
- 1144, 1146, 1145, 1121, 1122, 1141, 1124, 1125, 1147, 1126,
- 1127, 1128, 1129, 1131, 1150, 1152, 1132, 1133, 1134, 1145,
- 1135, 1136, 1140, 1142, 1141, 1153, 1143, 1144, 1146, 1145,
-
- 1154, 1156, 1157, 1158, 1159, 1147, 1160, 1161, 1162, 1163,
- 1164, 1150, 1152, 1165, 1166, 1167, 1145, 1168, 1170, 1165,
- 1172, 1174, 1153, 1177, 1178, 1179, 1180, 1154, 1156, 1157,
- 1158, 1159, 1181, 1160, 1161, 1162, 1163, 1164, 1182, 1183,
- 1165, 1166, 1167, 1184, 1168, 1170, 1165, 1172, 1174, 1185,
- 1177, 1178, 1179, 1180, 1186, 1187, 1188, 1189, 1190, 1181,
- 1191, 1192, 1193, 1194, 1195, 1182, 1183, 1196, 1198, 1199,
- 1184, 1200, 1201, 1202, 1203, 1204, 1185, 1205, 1206, 1209,
- 1210, 1186, 1187, 1188, 1189, 1190, 1213, 1191, 1192, 1193,
- 1194, 1195, 1214, 1215, 1196, 1198, 1199, 1218, 1200, 1201,
-
- 1202, 1203, 1204, 1219, 1205, 1206, 1209, 1210, 1220, 1221,
- 1223, 1224, 1227, 1213, 1228, 1229, 1231, 1232, 1233, 1214,
- 1215, 1234, 1235, 1236, 1218, 1237, 1238, 1243, 1244, 1245,
- 1219, 1246, 1248, 1249, 1250, 1220, 1221, 1223, 1224, 1227,
- 1252, 1228, 1229, 1231, 1232, 1233, 1253, 1254, 1234, 1235,
- 1236, 1255, 1237, 1238, 1243, 1244, 1245, 1256, 1246, 1248,
- 1249, 1250, 1259, 1260, 1261, 1263, 1264, 1252, 1269, 1270,
- 1273, 1274, 1275, 1253, 1254, 1277, 1278, 1279, 1255, 1280,
- 1281, 1283, 1284, 1286, 1256, 1288, 1289, 1291, 1292, 1259,
- 1260, 1261, 1263, 1264, 1293, 1269, 1270, 1273, 1274, 1275,
-
- 1294, 1295, 1277, 1278, 1279, 1296, 1280, 1281, 1283, 1284,
- 1286, 1297, 1288, 1289, 1291, 1292, 1298, 1299, 1300, 1302,
- 1303, 1293, 1305, 1306, 1308, 1309, 1311, 1294, 1295, 1313,
- 1314, 1315, 1296, 1316, 1317, 1318, 1319, 1322, 1297, 1323,
- 1324, 1325, 1326, 1298, 1299, 1300, 1302, 1303, 1327, 1305,
- 1306, 1308, 1309, 1311, 1328, 1329, 1313, 1314, 1315, 1330,
- 1316, 1317, 1318, 1319, 1322, 1331, 1323, 1324, 1325, 1326,
- 1334, 1337, 1338, 1341, 1342, 1327, 1343, 1344, 1343, 1346,
- 1349, 1328, 1329, 1350, 1352, 1354, 1330, 1355, 1356, 1357,
- 1358, 1359, 1331, 1361, 1362, 1363, 1360, 1334, 1337, 1338,
-
- 1341, 1342, 1360, 1343, 1344, 1343, 1346, 1349, 1364, 1365,
- 1350, 1352, 1354, 1366, 1355, 1356, 1357, 1358, 1359, 1367,
- 1361, 1362, 1363, 1360, 1368, 1369, 1371, 1372, 1373, 1360,
- 1375, 1376, 1377, 1378, 1379, 1364, 1365, 1380, 1381, 1382,
- 1366, 1383, 1384, 1385, 1386, 1389, 1367, 1391, 1392, 1393,
- 1394, 1368, 1369, 1371, 1372, 1373, 1395, 1375, 1376, 1377,
- 1378, 1379, 1396, 1398, 1380, 1381, 1382, 1399, 1383, 1384,
- 1385, 1386, 1389, 1400, 1391, 1392, 1393, 1394, 1403, 1404,
- 1407, 1408, 1409, 1395, 1410, 1412, 1414, 1415, 1417, 1396,
- 1398, 1418, 1419, 1420, 1399, 1422, 1425, 1426, 1427, 1428,
-
- 1400, 1429, 1430, 1431, 1432, 1403, 1404, 1407, 1408, 1409,
- 1433, 1410, 1412, 1414, 1415, 1417, 1434, 1435, 1418, 1419,
- 1420, 1438, 1422, 1425, 1426, 1427, 1428, 1439, 1429, 1430,
- 1431, 1432, 1440, 1441, 1442, 1443, 1444, 1433, 1446, 1447,
- 1449, 1450, 1451, 1434, 1435, 1452, 1455, 1456, 1438, 1458,
- 1461, 1462, 1463, 1464, 1439, 1465, 1466, 1467, 1469, 1440,
- 1441, 1442, 1443, 1444, 1470, 1446, 1447, 1449, 1450, 1451,
- 1471, 1472, 1452, 1455, 1456, 1473, 1458, 1461, 1462, 1463,
- 1464, 1474, 1465, 1466, 1467, 1469, 1475, 1476, 1477, 1478,
- 1479, 1470, 1480, 1481, 1482, 1483, 1484, 1471, 1472, 1485,
-
- 1486, 1487, 1473, 1488, 1489, 1490, 1491, 1493, 1474, 1494,
- 1495, 1503, 1504, 1475, 1476, 1477, 1478, 1479, 1505, 1480,
- 1481, 1482, 1483, 1484, 1507, 1509, 1485, 1486, 1487, 1510,
- 1488, 1489, 1490, 1491, 1493, 1512, 1494, 1495, 1503, 1504,
- 1513, 1514, 1515, 1516, 1519, 1505, 1521, 1522, 1523, 1524,
- 1525, 1507, 1509, 1527, 1528, 1529, 1510, 1530, 1531, 1532,
- 1533, 1534, 1512, 1535, 1537, 1538, 1539, 1513, 1514, 1515,
- 1516, 1519, 1541, 1521, 1522, 1523, 1524, 1525, 1542, 1543,
- 1527, 1528, 1529, 1545, 1530, 1531, 1532, 1533, 1534, 1546,
- 1535, 1537, 1538, 1539, 1547, 1548, 1551, 1552, 1553, 1541,
-
- 1556, 1557, 1558, 1559, 1561, 1542, 1543, 1562, 1564, 1568,
- 1545, 1569, 1570, 1573, 1574, 1575, 1546, 1577, 1578, 1580,
- 1581, 1547, 1548, 1551, 1552, 1553, 1582, 1556, 1557, 1558,
- 1559, 1561, 1075, 1073, 1562, 1564, 1568, 1052, 1569, 1570,
- 1573, 1574, 1575, 1051, 1577, 1578, 1580, 1581, 1048, 1017,
- 1016, 1015, 1014, 1582, 1587, 1587, 975, 973, 972, 967,
- 958, 950, 941, 937, 931, 911, 910, 909, 906, 905,
- 896, 881, 874, 869, 841, 788, 781, 779, 776, 775,
- 774, 773, 772, 734, 733, 730, 685, 680, 679, 678,
- 676, 647, 645, 641, 618, 604, 563, 559, 557, 555,
-
- 551, 548, 529, 521, 505, 500, 497, 478, 471, 441,
- 439, 438, 423, 400, 386, 371, 370, 365, 354, 342,
- 339, 332, 330, 316, 312, 310, 302, 284, 272, 263,
- 222, 192, 177, 142, 122, 100, 37, 5, 3, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
-
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585
+ 90, 87, 91, 93, 89, 94, 88, 91, 92, 95,
+ 96, 97, 99, 98, 101, 93, 102, 104, 105, 95,
+ 107, 1272, 1257, 90, 109, 1252, 89, 90, 98, 91,
+ 93, 89, 94, 103, 91, 113, 95, 96, 97, 99,
+ 98, 101, 93, 102, 104, 105, 95, 107, 106, 103,
+ 103, 109, 112, 111, 114, 98, 106, 910, 115, 910,
+ 103, 1235, 113, 1234, 1217, 116, 1185, 111, 115, 910,
+ 117, 118, 1156, 119, 112, 106, 103, 103, 1146, 112,
+ 111, 114, 120, 106, 108, 115, 108, 108, 110, 121,
+ 108, 108, 116, 108, 111, 115, 108, 117, 118, 110,
+
+ 119, 112, 108, 110, 123, 110, 124, 1138, 126, 120,
+ 1127, 108, 127, 108, 108, 110, 121, 108, 108, 128,
+ 108, 130, 131, 108, 1109, 128, 110, 132, 133, 108,
+ 110, 123, 110, 124, 125, 126, 134, 125, 129, 127,
+ 131, 129, 135, 137, 125, 125, 128, 139, 130, 131,
+ 140, 125, 128, 138, 132, 133, 141, 125, 143, 144,
+ 138, 125, 145, 134, 125, 129, 146, 131, 129, 135,
+ 137, 125, 125, 147, 139, 148, 149, 140, 125, 150,
+ 138, 151, 152, 141, 125, 143, 144, 138, 153, 145,
+ 154, 156, 157, 146, 158, 159, 160, 161, 162, 163,
+
+ 147, 164, 148, 149, 165, 166, 150, 167, 151, 152,
+ 168, 169, 170, 171, 172, 153, 173, 154, 156, 157,
+ 167, 158, 159, 160, 161, 162, 163, 175, 164, 174,
+ 174, 165, 166, 176, 167, 178, 179, 168, 169, 170,
+ 171, 172, 181, 173, 182, 183, 184, 167, 183, 185,
+ 186, 187, 188, 189, 175, 191, 174, 174, 193, 194,
+ 176, 195, 178, 179, 196, 197, 198, 199, 200, 181,
+ 196, 182, 183, 184, 201, 183, 185, 186, 187, 188,
+ 189, 202, 191, 203, 205, 193, 194, 206, 195, 207,
+ 204, 196, 197, 198, 199, 200, 208, 204, 209, 210,
+
+ 211, 201, 204, 212, 213, 214, 215, 204, 202, 216,
+ 203, 205, 217, 218, 206, 219, 207, 204, 221, 222,
+ 224, 222, 225, 208, 204, 209, 210, 211, 226, 204,
+ 212, 213, 214, 215, 204, 228, 216, 229, 231, 217,
+ 218, 232, 219, 233, 234, 221, 222, 224, 222, 225,
+ 237, 236, 238, 239, 240, 226, 236, 241, 243, 242,
+ 244, 245, 228, 246, 229, 231, 247, 248, 232, 242,
+ 233, 234, 249, 250, 251, 252, 253, 237, 236, 238,
+ 239, 240, 254, 251, 241, 243, 242, 244, 245, 255,
+ 246, 256, 257, 247, 248, 258, 242, 260, 261, 249,
+
+ 250, 251, 252, 253, 262, 263, 266, 268, 269, 254,
+ 270, 271, 272, 274, 275, 276, 255, 279, 256, 257,
+ 280, 282, 258, 283, 260, 261, 284, 286, 287, 288,
+ 289, 262, 263, 266, 268, 269, 290, 270, 271, 272,
+ 274, 275, 276, 291, 279, 292, 294, 280, 282, 295,
+ 283, 297, 298, 284, 286, 287, 288, 289, 299, 302,
+ 300, 305, 301, 290, 306, 307, 308, 312, 314, 315,
+ 291, 316, 292, 294, 300, 301, 295, 318, 297, 298,
+ 319, 320, 321, 1107, 1106, 299, 302, 300, 305, 301,
+ 323, 306, 307, 308, 312, 314, 315, 324, 316, 325,
+
+ 326, 300, 1096, 328, 318, 1083, 329, 319, 320, 321,
+ 322, 322, 322, 331, 327, 333, 322, 323, 322, 327,
+ 335, 322, 336, 322, 324, 337, 325, 326, 338, 322,
+ 328, 339, 322, 329, 1081, 340, 342, 322, 322, 322,
+ 331, 327, 333, 322, 346, 322, 327, 335, 322, 336,
+ 322, 347, 337, 340, 348, 338, 322, 340, 339, 322,
+ 349, 340, 340, 342, 350, 351, 352, 353, 354, 355,
+ 357, 346, 358, 359, 361, 1059, 362, 364, 347, 365,
+ 340, 348, 366, 359, 340, 369, 355, 349, 370, 368,
+ 368, 350, 351, 352, 353, 354, 355, 357, 360, 358,
+
+ 359, 361, 360, 362, 364, 368, 365, 360, 371, 366,
+ 374, 375, 369, 355, 377, 370, 368, 368, 378, 379,
+ 380, 381, 382, 383, 385, 360, 386, 387, 389, 360,
+ 390, 385, 368, 391, 360, 371, 392, 374, 375, 393,
+ 394, 377, 395, 396, 398, 378, 379, 380, 381, 382,
+ 383, 385, 400, 386, 387, 389, 397, 390, 385, 401,
+ 391, 397, 403, 392, 404, 406, 393, 394, 407, 395,
+ 396, 398, 409, 410, 411, 413, 414, 416, 417, 400,
+ 418, 419, 420, 397, 422, 424, 401, 426, 397, 403,
+ 427, 404, 406, 428, 429, 407, 430, 433, 434, 409,
+
+ 410, 411, 413, 414, 416, 417, 431, 418, 419, 420,
+ 435, 422, 424, 436, 426, 437, 431, 427, 438, 439,
+ 428, 429, 442, 430, 433, 434, 444, 445, 446, 447,
+ 448, 449, 450, 431, 451, 449, 452, 435, 453, 1058,
+ 436, 455, 437, 431, 456, 438, 439, 457, 458, 442,
+ 453, 459, 454, 444, 445, 446, 447, 448, 449, 450,
+ 460, 451, 449, 452, 461, 453, 454, 462, 455, 463,
+ 464, 456, 466, 465, 457, 458, 467, 453, 459, 454,
+ 465, 468, 469, 470, 471, 472, 473, 460, 475, 476,
+ 476, 461, 477, 454, 462, 476, 463, 464, 1055, 466,
+
+ 465, 479, 480, 467, 482, 483, 487, 465, 468, 469,
+ 470, 471, 472, 473, 478, 475, 476, 476, 479, 477,
+ 485, 488, 476, 485, 489, 478, 490, 491, 479, 480,
+ 493, 482, 483, 487, 492, 495, 496, 492, 497, 498,
+ 499, 478, 502, 506, 507, 479, 509, 485, 488, 510,
+ 485, 489, 478, 490, 491, 512, 513, 493, 514, 515,
+ 516, 492, 495, 496, 492, 497, 498, 499, 505, 502,
+ 506, 507, 505, 509, 517, 505, 510, 518, 519, 520,
+ 521, 522, 512, 513, 523, 514, 515, 516, 525, 526,
+ 527, 531, 533, 535, 536, 505, 537, 539, 540, 505,
+
+ 1024, 517, 505, 541, 518, 519, 520, 521, 522, 538,
+ 542, 523, 543, 544, 545, 525, 526, 527, 531, 533,
+ 535, 536, 546, 537, 539, 540, 547, 538, 548, 549,
+ 541, 550, 553, 555, 556, 559, 538, 542, 561, 543,
+ 544, 545, 563, 557, 557, 565, 567, 1023, 568, 546,
+ 570, 571, 557, 547, 572, 548, 549, 557, 550, 553,
+ 555, 556, 559, 564, 573, 561, 574, 575, 579, 563,
+ 557, 557, 565, 567, 564, 568, 580, 570, 571, 557,
+ 581, 572, 582, 583, 557, 584, 585, 586, 587, 588,
+ 564, 573, 584, 574, 575, 579, 589, 590, 592, 593,
+
+ 594, 564, 595, 580, 596, 597, 599, 581, 600, 582,
+ 583, 601, 584, 585, 586, 587, 588, 602, 603, 584,
+ 604, 605, 606, 589, 590, 592, 593, 594, 607, 595,
+ 609, 596, 597, 599, 610, 600, 611, 612, 601, 613,
+ 614, 615, 617, 618, 602, 603, 619, 604, 605, 606,
+ 620, 621, 624, 625, 627, 607, 628, 609, 629, 630,
+ 631, 610, 632, 611, 612, 633, 613, 614, 615, 617,
+ 618, 634, 636, 619, 635, 635, 637, 620, 621, 624,
+ 625, 627, 639, 628, 640, 629, 630, 631, 641, 632,
+ 642, 643, 633, 644, 646, 648, 1022, 650, 634, 636,
+
+ 652, 635, 635, 637, 655, 656, 657, 659, 660, 639,
+ 661, 640, 664, 666, 667, 641, 668, 642, 643, 647,
+ 644, 646, 648, 647, 650, 647, 669, 652, 670, 647,
+ 647, 655, 656, 657, 659, 660, 671, 661, 672, 664,
+ 666, 667, 673, 668, 674, 675, 647, 677, 679, 681,
+ 647, 685, 647, 669, 686, 670, 647, 647, 687, 688,
+ 691, 693, 694, 671, 695, 672, 697, 692, 698, 673,
+ 699, 674, 675, 700, 677, 679, 681, 692, 685, 701,
+ 702, 686, 703, 704, 705, 687, 688, 691, 693, 694,
+ 706, 695, 707, 697, 692, 698, 708, 699, 709, 710,
+
+ 700, 711, 712, 713, 692, 714, 701, 702, 715, 703,
+ 704, 705, 716, 717, 718, 719, 720, 706, 721, 707,
+ 722, 723, 724, 708, 725, 709, 710, 726, 711, 712,
+ 713, 729, 714, 730, 733, 715, 734, 736, 737, 716,
+ 717, 718, 719, 720, 740, 721, 741, 722, 723, 724,
+ 742, 725, 743, 744, 726, 745, 746, 747, 729, 748,
+ 730, 733, 749, 734, 736, 737, 750, 751, 752, 753,
+ 754, 740, 755, 741, 756, 757, 759, 742, 760, 743,
+ 744, 761, 745, 746, 747, 762, 748, 764, 765, 749,
+ 766, 767, 768, 750, 751, 752, 753, 754, 769, 755,
+
+ 770, 756, 757, 759, 771, 760, 772, 773, 761, 774,
+ 775, 776, 762, 782, 764, 765, 783, 766, 767, 768,
+ 785, 789, 792, 795, 796, 769, 797, 770, 798, 801,
+ 802, 771, 803, 772, 773, 804, 774, 775, 776, 805,
+ 782, 806, 807, 783, 809, 810, 811, 785, 789, 792,
+ 795, 796, 812, 797, 806, 798, 801, 802, 808, 803,
+ 814, 815, 804, 808, 816, 817, 805, 818, 806, 807,
+ 819, 809, 810, 811, 820, 808, 821, 822, 823, 812,
+ 824, 806, 825, 826, 827, 808, 829, 814, 815, 830,
+ 808, 816, 817, 831, 818, 832, 833, 819, 834, 835,
+
+ 836, 820, 808, 821, 822, 823, 837, 824, 838, 825,
+ 826, 827, 840, 829, 841, 842, 830, 843, 845, 847,
+ 831, 848, 832, 833, 849, 834, 835, 836, 850, 851,
+ 852, 854, 855, 837, 856, 838, 858, 857, 859, 840,
+ 860, 841, 842, 861, 843, 845, 847, 857, 848, 863,
+ 865, 849, 867, 868, 869, 850, 851, 852, 854, 855,
+ 870, 856, 872, 858, 857, 859, 873, 860, 874, 876,
+ 861, 877, 878, 879, 857, 881, 863, 865, 882, 867,
+ 868, 869, 883, 884, 885, 886, 888, 870, 889, 872,
+ 890, 891, 892, 873, 893, 874, 876, 894, 877, 878,
+
+ 879, 895, 881, 896, 897, 882, 898, 899, 900, 883,
+ 884, 885, 886, 888, 901, 889, 903, 890, 891, 892,
+ 904, 893, 905, 906, 894, 907, 908, 909, 895, 913,
+ 896, 897, 914, 898, 899, 900, 919, 920, 921, 922,
+ 923, 901, 924, 903, 925, 926, 927, 904, 928, 905,
+ 906, 929, 907, 908, 909, 931, 913, 932, 933, 914,
+ 934, 935, 936, 919, 920, 921, 922, 923, 938, 924,
+ 939, 925, 926, 927, 940, 928, 941, 942, 929, 944,
+ 945, 946, 931, 948, 932, 933, 949, 934, 935, 936,
+ 951, 952, 954, 955, 957, 938, 958, 939, 962, 963,
+
+ 967, 940, 968, 941, 942, 961, 944, 945, 946, 969,
+ 948, 970, 971, 949, 961, 972, 973, 951, 952, 954,
+ 955, 957, 961, 958, 975, 962, 963, 967, 976, 968,
+ 977, 978, 961, 981, 983, 985, 969, 986, 970, 971,
+ 987, 961, 972, 973, 991, 992, 993, 994, 995, 961,
+ 996, 975, 997, 998, 999, 976, 1000, 977, 978, 1001,
+ 981, 983, 985, 1002, 986, 1003, 1004, 987, 1005, 1006,
+ 1007, 991, 992, 993, 994, 995, 1008, 996, 1009, 997,
+ 998, 999, 1010, 1000, 1011, 1012, 1001, 1013, 1014, 1015,
+ 1002, 1016, 1003, 1004, 1017, 1005, 1006, 1007, 1019, 1020,
+
+ 1025, 1026, 1027, 1008, 1028, 1009, 1029, 1031, 1032, 1010,
+ 1033, 1011, 1012, 1034, 1013, 1014, 1015, 1035, 1016, 1036,
+ 1037, 1017, 1038, 1039, 1040, 1019, 1020, 1025, 1026, 1027,
+ 1041, 1028, 1042, 1029, 1031, 1032, 1043, 1033, 1044, 1045,
+ 1034, 1046, 1047, 1048, 1035, 1049, 1036, 1037, 1050, 1038,
+ 1039, 1040, 1052, 1053, 1054, 1056, 1057, 1041, 1060, 1042,
+ 1061, 1062, 1064, 1043, 1065, 1044, 1045, 1067, 1046, 1047,
+ 1048, 1068, 1049, 1069, 1071, 1050, 1072, 1073, 1074, 1052,
+ 1053, 1054, 1056, 1057, 1076, 1060, 1077, 1061, 1062, 1064,
+ 1078, 1065, 1079, 1080, 1067, 1082, 1084, 1085, 1068, 1086,
+
+ 1069, 1071, 1087, 1072, 1073, 1074, 1088, 1089, 1091, 1092,
+ 1093, 1076, 1094, 1077, 1095, 1097, 1100, 1078, 1103, 1079,
+ 1080, 1104, 1082, 1084, 1085, 1105, 1086, 1108, 1110, 1087,
+ 1111, 1112, 1113, 1088, 1089, 1091, 1092, 1093, 1114, 1094,
+ 1115, 1095, 1097, 1100, 1116, 1103, 1117, 1118, 1104, 1119,
+ 1120, 1121, 1105, 1122, 1108, 1110, 1123, 1111, 1112, 1113,
+ 1124, 1125, 1126, 1129, 1130, 1114, 1132, 1115, 1133, 1134,
+ 1135, 1116, 1136, 1117, 1118, 1137, 1119, 1120, 1121, 1139,
+ 1122, 1140, 1141, 1123, 1142, 1143, 1144, 1124, 1125, 1126,
+ 1129, 1130, 1148, 1132, 1150, 1133, 1134, 1135, 1151, 1136,
+
+ 1152, 1153, 1137, 1154, 1155, 1158, 1139, 1149, 1140, 1141,
+ 1160, 1142, 1143, 1144, 1161, 1149, 1162, 1164, 1153, 1148,
+ 1165, 1150, 1166, 1167, 1168, 1151, 1169, 1152, 1153, 1170,
+ 1154, 1155, 1158, 1171, 1149, 1172, 1173, 1160, 1175, 1176,
+ 1174, 1161, 1177, 1162, 1164, 1153, 1174, 1165, 1179, 1166,
+ 1167, 1168, 1181, 1169, 1183, 1186, 1170, 1187, 1188, 1189,
+ 1171, 1190, 1172, 1173, 1191, 1175, 1176, 1174, 1192, 1177,
+ 1193, 1194, 1195, 1174, 1196, 1179, 1197, 1198, 1199, 1181,
+ 1200, 1183, 1186, 1201, 1187, 1188, 1189, 1202, 1190, 1203,
+ 1204, 1191, 1205, 1207, 1208, 1192, 1209, 1193, 1194, 1195,
+
+ 1210, 1196, 1211, 1197, 1198, 1199, 1212, 1200, 1213, 1214,
+ 1201, 1215, 1218, 1219, 1202, 1222, 1203, 1204, 1223, 1205,
+ 1207, 1208, 1224, 1209, 1227, 1228, 1229, 1210, 1230, 1211,
+ 1232, 1233, 1236, 1212, 1237, 1213, 1214, 1238, 1215, 1218,
+ 1219, 1240, 1222, 1241, 1242, 1223, 1243, 1244, 1245, 1224,
+ 1246, 1227, 1228, 1229, 1247, 1230, 1248, 1232, 1233, 1236,
+ 1253, 1237, 1254, 1255, 1238, 1256, 1258, 1259, 1240, 1260,
+ 1241, 1242, 1262, 1243, 1244, 1245, 1263, 1246, 1264, 1265,
+ 1266, 1247, 1269, 1248, 1270, 1271, 1273, 1253, 1274, 1254,
+ 1255, 1279, 1256, 1258, 1259, 1280, 1260, 1283, 1284, 1262,
+
+ 1285, 1287, 1288, 1263, 1289, 1264, 1265, 1266, 1290, 1269,
+ 1291, 1270, 1271, 1273, 1293, 1274, 1294, 1296, 1279, 1298,
+ 1299, 1301, 1280, 1302, 1283, 1284, 1303, 1285, 1287, 1288,
+ 1304, 1289, 1305, 1306, 1307, 1290, 1308, 1291, 1309, 1310,
+ 1312, 1293, 1313, 1294, 1296, 1315, 1298, 1299, 1301, 1316,
+ 1302, 1317, 1319, 1303, 1320, 1322, 1324, 1304, 1325, 1305,
+ 1306, 1307, 1326, 1308, 1327, 1309, 1310, 1312, 1328, 1313,
+ 1329, 1330, 1315, 1333, 1334, 1335, 1316, 1336, 1317, 1319,
+ 1337, 1320, 1322, 1324, 1338, 1325, 1339, 1340, 1341, 1326,
+ 1342, 1327, 1345, 1348, 1349, 1328, 1352, 1329, 1330, 1353,
+
+ 1333, 1334, 1335, 1354, 1336, 1354, 1355, 1337, 1357, 1360,
+ 1361, 1338, 1363, 1339, 1340, 1341, 1365, 1342, 1366, 1345,
+ 1348, 1349, 1367, 1352, 1368, 1369, 1353, 1370, 1371, 1372,
+ 1354, 1373, 1354, 1355, 1371, 1357, 1360, 1361, 1374, 1363,
+ 1376, 1377, 1378, 1365, 1379, 1366, 1380, 1381, 1383, 1367,
+ 1384, 1368, 1369, 1385, 1370, 1371, 1372, 1387, 1373, 1388,
+ 1389, 1371, 1390, 1391, 1392, 1374, 1393, 1376, 1377, 1378,
+ 1394, 1379, 1395, 1380, 1381, 1383, 1396, 1384, 1397, 1398,
+ 1385, 1401, 1403, 1404, 1387, 1405, 1388, 1389, 1406, 1390,
+ 1391, 1392, 1407, 1393, 1408, 1410, 1411, 1394, 1412, 1395,
+
+ 1415, 1416, 1419, 1396, 1420, 1397, 1398, 1421, 1401, 1403,
+ 1404, 1422, 1405, 1424, 1426, 1406, 1427, 1429, 1430, 1407,
+ 1431, 1408, 1410, 1411, 1432, 1412, 1434, 1415, 1416, 1419,
+ 1437, 1420, 1438, 1439, 1421, 1440, 1441, 1442, 1422, 1443,
+ 1424, 1426, 1444, 1427, 1429, 1430, 1445, 1431, 1446, 1447,
+ 1450, 1432, 1451, 1434, 1452, 1453, 1454, 1437, 1455, 1438,
+ 1439, 1456, 1440, 1441, 1442, 1458, 1443, 1459, 1461, 1444,
+ 1462, 1463, 1464, 1445, 1467, 1446, 1447, 1450, 1468, 1451,
+ 1470, 1452, 1453, 1454, 1473, 1455, 1474, 1475, 1456, 1476,
+ 1477, 1478, 1458, 1479, 1459, 1461, 1481, 1462, 1463, 1464,
+
+ 1482, 1467, 1483, 1484, 1485, 1468, 1486, 1470, 1487, 1488,
+ 1489, 1473, 1490, 1474, 1475, 1491, 1476, 1477, 1478, 1492,
+ 1479, 1493, 1494, 1481, 1495, 1496, 1497, 1482, 1498, 1483,
+ 1484, 1485, 1499, 1486, 1500, 1487, 1488, 1489, 1501, 1490,
+ 1502, 1503, 1491, 1505, 1506, 1507, 1492, 1515, 1493, 1494,
+ 1516, 1495, 1496, 1497, 1517, 1498, 1519, 1521, 1522, 1499,
+ 1524, 1500, 1525, 1526, 1527, 1501, 1528, 1502, 1503, 1531,
+ 1505, 1506, 1507, 1533, 1515, 1534, 1535, 1516, 1536, 1537,
+ 1539, 1517, 1540, 1519, 1521, 1522, 1541, 1524, 1542, 1525,
+ 1526, 1527, 1543, 1528, 1544, 1545, 1531, 1546, 1547, 1549,
+
+ 1533, 1550, 1534, 1535, 1551, 1536, 1537, 1539, 1553, 1540,
+ 1554, 1555, 1557, 1541, 1558, 1542, 1559, 1560, 1563, 1543,
+ 1564, 1544, 1545, 1565, 1546, 1547, 1549, 1568, 1550, 1569,
+ 1570, 1551, 1571, 1573, 1574, 1553, 1576, 1554, 1555, 1557,
+ 1580, 1558, 1581, 1559, 1560, 1563, 1582, 1564, 1585, 1586,
+ 1565, 1587, 1589, 1590, 1568, 1592, 1569, 1570, 1593, 1571,
+ 1573, 1574, 1594, 1576, 1021, 982, 980, 1580, 979, 1581,
+ 974, 964, 956, 1582, 947, 1585, 1586, 943, 1587, 1589,
+ 1590, 937, 1592, 917, 916, 1593, 915, 912, 911, 1594,
+ 1599, 1599, 902, 887, 880, 875, 846, 793, 786, 784,
+
+ 781, 780, 779, 778, 777, 739, 738, 735, 727, 689,
+ 684, 683, 682, 680, 651, 649, 645, 622, 608, 566,
+ 562, 560, 558, 554, 551, 532, 524, 508, 503, 500,
+ 481, 474, 443, 441, 440, 425, 402, 388, 373, 372,
+ 367, 356, 344, 341, 334, 332, 317, 313, 311, 303,
+ 285, 273, 264, 223, 192, 177, 142, 122, 100, 37,
+ 5, 3, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1597
} ;
static yy_state_type yy_last_accepting_state;
@@ -1722,7 +1736,7 @@ conf_yy_fatal_error(const char *msg)
return 0;
}
-#line 1726 "conf_lexer.c"
+#line 1740 "conf_lexer.c"
#define INITIAL 0
@@ -1904,7 +1918,7 @@ YY_DECL
#line 78 "conf_lexer.l"
-#line 1908 "conf_lexer.c"
+#line 1922 "conf_lexer.c"
if ( !(yy_init) )
{
@@ -1963,13 +1977,13 @@ yy_match:
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 1586 )
+ if ( yy_current_state >= 1598 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++yy_cp;
}
- while ( yy_current_state != 1585 );
+ while ( yy_current_state != 1597 );
yy_cp = (yy_last_accepting_cpos);
yy_current_state = (yy_last_accepting_state);
@@ -2492,97 +2506,97 @@ YY_RULE_SETUP
case 92:
YY_RULE_SETUP
#line 218 "conf_lexer.l"
-{ return MIN_NONWILDCARD; }
+{ return MESSAGE_LOCALE; }
YY_BREAK
case 93:
YY_RULE_SETUP
#line 219 "conf_lexer.l"
-{ return MIN_NONWILDCARD_SIMPLE; }
+{ return MIN_NONWILDCARD; }
YY_BREAK
case 94:
YY_RULE_SETUP
#line 220 "conf_lexer.l"
-{ return NAME; }
+{ return MIN_NONWILDCARD_SIMPLE; }
YY_BREAK
case 95:
YY_RULE_SETUP
#line 221 "conf_lexer.l"
-{ return NEED_PASSWORD; }
+{ return NAME; }
YY_BREAK
case 96:
YY_RULE_SETUP
#line 222 "conf_lexer.l"
-{ return NETWORK_DESC; }
+{ return NEED_PASSWORD; }
YY_BREAK
case 97:
YY_RULE_SETUP
#line 223 "conf_lexer.l"
-{ return NETWORK_NAME; }
+{ return NETWORK_DESC; }
YY_BREAK
case 98:
YY_RULE_SETUP
#line 224 "conf_lexer.l"
-{ return NICK; }
+{ return NETWORK_NAME; }
YY_BREAK
case 99:
YY_RULE_SETUP
#line 225 "conf_lexer.l"
-{ return NICK_CHANGES; }
+{ return NICK; }
YY_BREAK
case 100:
YY_RULE_SETUP
#line 226 "conf_lexer.l"
-{ yylval.number = 0; return TBOOL; }
+{ return NICK_CHANGES; }
YY_BREAK
case 101:
YY_RULE_SETUP
#line 227 "conf_lexer.l"
-{ return NO_CREATE_ON_SPLIT; }
+{ yylval.number = 0; return TBOOL; }
YY_BREAK
case 102:
YY_RULE_SETUP
#line 228 "conf_lexer.l"
-{ return NO_JOIN_ON_SPLIT; }
+{ return NO_CREATE_ON_SPLIT; }
YY_BREAK
case 103:
YY_RULE_SETUP
#line 229 "conf_lexer.l"
-{ return NO_OPER_FLOOD; }
+{ return NO_JOIN_ON_SPLIT; }
YY_BREAK
case 104:
YY_RULE_SETUP
#line 230 "conf_lexer.l"
-{ return NO_TILDE; }
+{ return NO_OPER_FLOOD; }
YY_BREAK
case 105:
YY_RULE_SETUP
#line 231 "conf_lexer.l"
-{ return NUMBER_PER_CIDR; }
+{ return NO_TILDE; }
YY_BREAK
case 106:
YY_RULE_SETUP
#line 232 "conf_lexer.l"
-{ return NUMBER_PER_IP; }
+{ return NUMBER_PER_CIDR; }
YY_BREAK
case 107:
YY_RULE_SETUP
#line 233 "conf_lexer.l"
-{ return OPERATOR; }
+{ return NUMBER_PER_IP; }
YY_BREAK
case 108:
YY_RULE_SETUP
#line 234 "conf_lexer.l"
-{ return OPER_PASS_RESV; }
+{ return OPERATOR; }
YY_BREAK
case 109:
YY_RULE_SETUP
#line 235 "conf_lexer.l"
-{ return OPERATOR; }
+{ return OPER_PASS_RESV; }
YY_BREAK
case 110:
YY_RULE_SETUP
#line 236 "conf_lexer.l"
-{ return PASSWORD; }
+{ return OPERATOR; }
YY_BREAK
case 111:
YY_RULE_SETUP
@@ -2592,542 +2606,542 @@ YY_RULE_SETUP
case 112:
YY_RULE_SETUP
#line 238 "conf_lexer.l"
-{ return PING_COOKIE; }
+{ return PASSWORD; }
YY_BREAK
case 113:
YY_RULE_SETUP
#line 239 "conf_lexer.l"
-{ return PING_TIME; }
+{ return PING_COOKIE; }
YY_BREAK
case 114:
YY_RULE_SETUP
#line 240 "conf_lexer.l"
-{ return PORT; }
+{ return PING_TIME; }
YY_BREAK
case 115:
YY_RULE_SETUP
#line 241 "conf_lexer.l"
-{ return RESV; }
+{ return PORT; }
YY_BREAK
case 116:
YY_RULE_SETUP
#line 242 "conf_lexer.l"
-{ return QUIET_ON_BAN; }
+{ return RESV; }
YY_BREAK
case 117:
YY_RULE_SETUP
#line 243 "conf_lexer.l"
-{ return RANDOM_IDLE; }
+{ return QUIET_ON_BAN; }
YY_BREAK
case 118:
YY_RULE_SETUP
#line 244 "conf_lexer.l"
-{ return REASON; }
+{ return RANDOM_IDLE; }
YY_BREAK
case 119:
YY_RULE_SETUP
#line 245 "conf_lexer.l"
-{ return T_RECVQ; }
+{ return REASON; }
YY_BREAK
case 120:
YY_RULE_SETUP
#line 246 "conf_lexer.l"
-{ return REDIRPORT; }
+{ return T_RECVQ; }
YY_BREAK
case 121:
YY_RULE_SETUP
#line 247 "conf_lexer.l"
-{ return REDIRSERV; }
+{ return REDIRPORT; }
YY_BREAK
case 122:
YY_RULE_SETUP
#line 248 "conf_lexer.l"
-{ return REGEX_T; }
+{ return REDIRSERV; }
YY_BREAK
case 123:
YY_RULE_SETUP
#line 249 "conf_lexer.l"
-{ return REHASH; }
+{ return REGEX_T; }
YY_BREAK
case 124:
YY_RULE_SETUP
#line 250 "conf_lexer.l"
-{ return REMOTE; }
+{ return REHASH; }
YY_BREAK
case 125:
YY_RULE_SETUP
#line 251 "conf_lexer.l"
-{ return REMOTEBAN; }
+{ return REMOTE; }
YY_BREAK
case 126:
YY_RULE_SETUP
#line 252 "conf_lexer.l"
-{ return T_RESTART; }
+{ return REMOTEBAN; }
YY_BREAK
case 127:
YY_RULE_SETUP
#line 253 "conf_lexer.l"
-{ return RESTRICT_CHANNELS; }
+{ return T_RESTART; }
YY_BREAK
case 128:
YY_RULE_SETUP
#line 254 "conf_lexer.l"
-{ return RESV; }
+{ return RESTRICT_CHANNELS; }
YY_BREAK
case 129:
YY_RULE_SETUP
#line 255 "conf_lexer.l"
-{ return RESV_EXEMPT; }
+{ return RESV; }
YY_BREAK
case 130:
YY_RULE_SETUP
#line 256 "conf_lexer.l"
-{ return RSA_PRIVATE_KEY_FILE; }
+{ return RESV_EXEMPT; }
YY_BREAK
case 131:
YY_RULE_SETUP
#line 257 "conf_lexer.l"
-{ return RSA_PUBLIC_KEY_FILE; }
+{ return RSA_PRIVATE_KEY_FILE; }
YY_BREAK
case 132:
YY_RULE_SETUP
#line 258 "conf_lexer.l"
-{ return T_SSL; }
+{ return RSA_PUBLIC_KEY_FILE; }
YY_BREAK
case 133:
YY_RULE_SETUP
#line 259 "conf_lexer.l"
-{ return SSL_CERTIFICATE_FILE; }
+{ return T_SSL; }
YY_BREAK
case 134:
YY_RULE_SETUP
#line 260 "conf_lexer.l"
-{ return T_SSL_CLIENT_METHOD; }
+{ return SSL_CERTIFICATE_FILE; }
YY_BREAK
case 135:
YY_RULE_SETUP
#line 261 "conf_lexer.l"
-{ return T_SSL_SERVER_METHOD; }
+{ return T_SSL_CLIENT_METHOD; }
YY_BREAK
case 136:
YY_RULE_SETUP
#line 262 "conf_lexer.l"
-{ return SSL_DH_PARAM_FILE; }
+{ return T_SSL_SERVER_METHOD; }
YY_BREAK
case 137:
YY_RULE_SETUP
#line 263 "conf_lexer.l"
-{ return T_SSL_CIPHER_LIST; }
+{ return SSL_DH_PARAM_FILE; }
YY_BREAK
case 138:
YY_RULE_SETUP
#line 264 "conf_lexer.l"
-{ return T_SSLV3; }
+{ return T_SSL_CIPHER_LIST; }
YY_BREAK
case 139:
YY_RULE_SETUP
#line 265 "conf_lexer.l"
-{ return T_TLSV1; }
+{ return T_SSLV3; }
YY_BREAK
case 140:
YY_RULE_SETUP
#line 266 "conf_lexer.l"
-{ return SEND_PASSWORD; }
+{ return T_TLSV1; }
YY_BREAK
case 141:
YY_RULE_SETUP
#line 267 "conf_lexer.l"
-{ return SENDQ; }
+{ return SEND_PASSWORD; }
YY_BREAK
case 142:
YY_RULE_SETUP
#line 268 "conf_lexer.l"
-{ return T_SERVER; }
+{ return SENDQ; }
YY_BREAK
case 143:
YY_RULE_SETUP
#line 269 "conf_lexer.l"
-{ return SERVERHIDE; }
+{ return T_SERVER; }
YY_BREAK
case 144:
YY_RULE_SETUP
#line 270 "conf_lexer.l"
-{ return SERVERINFO; }
+{ return SERVERHIDE; }
YY_BREAK
case 145:
YY_RULE_SETUP
#line 271 "conf_lexer.l"
-{ return T_SERVICE; }
+{ return SERVERINFO; }
YY_BREAK
case 146:
YY_RULE_SETUP
#line 272 "conf_lexer.l"
-{ return T_SERVICES_NAME; }
+{ return T_SERVICE; }
YY_BREAK
case 147:
YY_RULE_SETUP
#line 273 "conf_lexer.l"
-{ return T_SET; }
+{ return T_SERVICES_NAME; }
YY_BREAK
case 148:
YY_RULE_SETUP
#line 274 "conf_lexer.l"
-{ return T_SHARED; }
+{ return T_SET; }
YY_BREAK
case 149:
YY_RULE_SETUP
#line 275 "conf_lexer.l"
-{ return SHORT_MOTD; }
+{ return T_SHARED; }
YY_BREAK
case 150:
YY_RULE_SETUP
#line 276 "conf_lexer.l"
-{ return IRCD_SID; }
+{ return SHORT_MOTD; }
YY_BREAK
case 151:
YY_RULE_SETUP
#line 277 "conf_lexer.l"
-{ return T_SIZE; }
+{ return IRCD_SID; }
YY_BREAK
case 152:
YY_RULE_SETUP
#line 278 "conf_lexer.l"
-{ return SPOOF; }
+{ return T_SIZE; }
YY_BREAK
case 153:
YY_RULE_SETUP
#line 279 "conf_lexer.l"
-{ return SPOOF_NOTICE; }
+{ return SPOOF; }
YY_BREAK
case 154:
YY_RULE_SETUP
#line 280 "conf_lexer.l"
-{ return TKLINE_EXPIRE_NOTICES; }
+{ return SPOOF_NOTICE; }
YY_BREAK
case 155:
YY_RULE_SETUP
#line 281 "conf_lexer.l"
-{ return TYPE; }
+{ return TKLINE_EXPIRE_NOTICES; }
YY_BREAK
case 156:
YY_RULE_SETUP
#line 282 "conf_lexer.l"
-{ return TRUE_NO_OPER_FLOOD; }
+{ return TYPE; }
YY_BREAK
case 157:
YY_RULE_SETUP
#line 283 "conf_lexer.l"
-{ return T_UMODES; }
+{ return TRUE_NO_OPER_FLOOD; }
YY_BREAK
case 158:
YY_RULE_SETUP
#line 284 "conf_lexer.l"
-{ return UNKLINE; }
+{ return T_UMODES; }
YY_BREAK
case 159:
YY_RULE_SETUP
#line 285 "conf_lexer.l"
-{ return T_UNDLINE; }
+{ return UNKLINE; }
YY_BREAK
case 160:
YY_RULE_SETUP
#line 286 "conf_lexer.l"
-{ return T_UNLIMITED; }
+{ return T_UNDLINE; }
YY_BREAK
case 161:
YY_RULE_SETUP
#line 287 "conf_lexer.l"
-{ return USE_EGD; }
+{ return T_UNLIMITED; }
YY_BREAK
case 162:
YY_RULE_SETUP
#line 288 "conf_lexer.l"
-{ return USE_LOGGING; }
+{ return USE_EGD; }
YY_BREAK
case 163:
YY_RULE_SETUP
#line 289 "conf_lexer.l"
-{ return THROTTLE_TIME; }
+{ return USE_LOGGING; }
YY_BREAK
case 164:
YY_RULE_SETUP
#line 290 "conf_lexer.l"
-{ return USER; }
+{ return THROTTLE_TIME; }
YY_BREAK
case 165:
YY_RULE_SETUP
#line 291 "conf_lexer.l"
-{ return VHOST; }
+{ return USER; }
YY_BREAK
case 166:
YY_RULE_SETUP
#line 292 "conf_lexer.l"
-{ return VHOST6; }
+{ return VHOST; }
YY_BREAK
case 167:
YY_RULE_SETUP
#line 293 "conf_lexer.l"
-{ return T_WEBIRC; }
+{ return VHOST6; }
YY_BREAK
case 168:
YY_RULE_SETUP
#line 294 "conf_lexer.l"
-{ return XLINE; }
+{ return T_WEBIRC; }
YY_BREAK
case 169:
YY_RULE_SETUP
#line 295 "conf_lexer.l"
-{ yylval.number = 1; return TBOOL; }
+{ return XLINE; }
YY_BREAK
case 170:
YY_RULE_SETUP
-#line 297 "conf_lexer.l"
-{ return FAILED_OPER_NOTICE; }
+#line 296 "conf_lexer.l"
+{ yylval.number = 1; return TBOOL; }
YY_BREAK
case 171:
YY_RULE_SETUP
#line 298 "conf_lexer.l"
-{ return MAX_ACCEPT; }
+{ return FAILED_OPER_NOTICE; }
YY_BREAK
case 172:
YY_RULE_SETUP
#line 299 "conf_lexer.l"
-{ return MAX_NICK_CHANGES; }
+{ return MAX_ACCEPT; }
YY_BREAK
case 173:
YY_RULE_SETUP
#line 300 "conf_lexer.l"
-{ return MAX_CHANS_PER_OPER; }
+{ return MAX_NICK_CHANGES; }
YY_BREAK
case 174:
YY_RULE_SETUP
#line 301 "conf_lexer.l"
-{ return MAX_CHANS_PER_USER; }
+{ return MAX_CHANS_PER_OPER; }
YY_BREAK
case 175:
YY_RULE_SETUP
#line 302 "conf_lexer.l"
-{ return MAX_NICK_TIME; }
+{ return MAX_CHANS_PER_USER; }
YY_BREAK
case 176:
YY_RULE_SETUP
#line 303 "conf_lexer.l"
-{ return ANTI_NICK_FLOOD; }
+{ return MAX_NICK_TIME; }
YY_BREAK
case 177:
YY_RULE_SETUP
#line 304 "conf_lexer.l"
-{ return ANTI_SPAM_EXIT_MESSAGE_TIME; }
+{ return ANTI_NICK_FLOOD; }
YY_BREAK
case 178:
YY_RULE_SETUP
#line 305 "conf_lexer.l"
-{ return TS_MAX_DELTA; }
+{ return ANTI_SPAM_EXIT_MESSAGE_TIME; }
YY_BREAK
case 179:
YY_RULE_SETUP
#line 306 "conf_lexer.l"
-{ return TS_WARN_DELTA; }
+{ return TS_MAX_DELTA; }
YY_BREAK
case 180:
YY_RULE_SETUP
#line 307 "conf_lexer.l"
-{ return LINKS_DELAY; }
+{ return TS_WARN_DELTA; }
YY_BREAK
case 181:
YY_RULE_SETUP
#line 308 "conf_lexer.l"
-{ return WARN_NO_NLINE; }
+{ return LINKS_DELAY; }
YY_BREAK
case 182:
YY_RULE_SETUP
-#line 310 "conf_lexer.l"
-{ return STATS_E_DISABLED; }
+#line 309 "conf_lexer.l"
+{ return WARN_NO_NLINE; }
YY_BREAK
case 183:
YY_RULE_SETUP
#line 311 "conf_lexer.l"
-{ return STATS_O_OPER_ONLY; }
+{ return STATS_E_DISABLED; }
YY_BREAK
case 184:
YY_RULE_SETUP
#line 312 "conf_lexer.l"
-{ return STATS_K_OPER_ONLY; }
+{ return STATS_O_OPER_ONLY; }
YY_BREAK
case 185:
YY_RULE_SETUP
#line 313 "conf_lexer.l"
-{ return STATS_I_OPER_ONLY; }
+{ return STATS_K_OPER_ONLY; }
YY_BREAK
case 186:
YY_RULE_SETUP
#line 314 "conf_lexer.l"
-{ return STATS_P_OPER_ONLY; }
+{ return STATS_I_OPER_ONLY; }
YY_BREAK
case 187:
YY_RULE_SETUP
#line 315 "conf_lexer.l"
-{ return PACE_WAIT; }
+{ return STATS_P_OPER_ONLY; }
YY_BREAK
case 188:
YY_RULE_SETUP
#line 316 "conf_lexer.l"
-{ return PACE_WAIT_SIMPLE; }
+{ return PACE_WAIT; }
YY_BREAK
case 189:
YY_RULE_SETUP
#line 317 "conf_lexer.l"
-{ return KNOCK_DELAY; }
+{ return PACE_WAIT_SIMPLE; }
YY_BREAK
case 190:
YY_RULE_SETUP
#line 318 "conf_lexer.l"
-{ return KNOCK_DELAY_CHANNEL; }
+{ return KNOCK_DELAY; }
YY_BREAK
case 191:
YY_RULE_SETUP
#line 319 "conf_lexer.l"
-{ return MAX_BANS; }
+{ return KNOCK_DELAY_CHANNEL; }
YY_BREAK
case 192:
YY_RULE_SETUP
#line 320 "conf_lexer.l"
-{ return MODULES; }
+{ return MAX_BANS; }
YY_BREAK
case 193:
YY_RULE_SETUP
#line 321 "conf_lexer.l"
-{ return MODULE; }
+{ return MODULES; }
YY_BREAK
case 194:
YY_RULE_SETUP
#line 322 "conf_lexer.l"
-{ return PATH; }
+{ return MODULE; }
YY_BREAK
case 195:
YY_RULE_SETUP
#line 323 "conf_lexer.l"
-{ return MAX_TARGETS; }
+{ return PATH; }
YY_BREAK
case 196:
YY_RULE_SETUP
-#line 325 "conf_lexer.l"
-{ return T_UNXLINE; }
+#line 324 "conf_lexer.l"
+{ return MAX_TARGETS; }
YY_BREAK
case 197:
YY_RULE_SETUP
#line 326 "conf_lexer.l"
-{ return T_UNRESV; }
+{ return T_UNXLINE; }
YY_BREAK
case 198:
YY_RULE_SETUP
-#line 328 "conf_lexer.l"
-{ return OPER_ONLY_UMODES; }
+#line 327 "conf_lexer.l"
+{ return T_UNRESV; }
YY_BREAK
case 199:
YY_RULE_SETUP
#line 329 "conf_lexer.l"
-{ return OPER_UMODES; }
+{ return OPER_ONLY_UMODES; }
YY_BREAK
case 200:
YY_RULE_SETUP
#line 330 "conf_lexer.l"
-{ return T_BOTS; }
+{ return OPER_UMODES; }
YY_BREAK
case 201:
YY_RULE_SETUP
#line 331 "conf_lexer.l"
-{ return T_CCONN; }
+{ return T_BOTS; }
YY_BREAK
case 202:
YY_RULE_SETUP
#line 332 "conf_lexer.l"
-{ return T_CCONN_FULL; }
+{ return T_CCONN; }
YY_BREAK
case 203:
YY_RULE_SETUP
#line 333 "conf_lexer.l"
-{ return T_DEAF; }
+{ return T_CCONN_FULL; }
YY_BREAK
case 204:
YY_RULE_SETUP
#line 334 "conf_lexer.l"
-{ return T_DEBUG; }
+{ return T_DEAF; }
YY_BREAK
case 205:
YY_RULE_SETUP
#line 335 "conf_lexer.l"
-{ return T_FULL; }
+{ return T_DEBUG; }
YY_BREAK
case 206:
YY_RULE_SETUP
#line 336 "conf_lexer.l"
-{ return T_SKILL; }
+{ return T_FULL; }
YY_BREAK
case 207:
YY_RULE_SETUP
#line 337 "conf_lexer.l"
-{ return T_NCHANGE; }
+{ return T_SKILL; }
YY_BREAK
case 208:
YY_RULE_SETUP
#line 338 "conf_lexer.l"
-{ return T_REJ; }
+{ return T_NCHANGE; }
YY_BREAK
case 209:
YY_RULE_SETUP
#line 339 "conf_lexer.l"
-{ return T_UNAUTH; }
+{ return T_REJ; }
YY_BREAK
case 210:
YY_RULE_SETUP
#line 340 "conf_lexer.l"
-{ return T_SPY; }
+{ return T_UNAUTH; }
YY_BREAK
case 211:
YY_RULE_SETUP
#line 341 "conf_lexer.l"
-{ return T_EXTERNAL; }
+{ return T_SPY; }
YY_BREAK
case 212:
YY_RULE_SETUP
#line 342 "conf_lexer.l"
-{ return T_OPERWALL; }
+{ return T_EXTERNAL; }
YY_BREAK
case 213:
YY_RULE_SETUP
#line 343 "conf_lexer.l"
-{ return T_SERVNOTICE; }
+{ return T_OPERWALL; }
YY_BREAK
case 214:
YY_RULE_SETUP
#line 344 "conf_lexer.l"
-{ return T_INVISIBLE; }
+{ return T_SERVNOTICE; }
YY_BREAK
case 215:
YY_RULE_SETUP
#line 345 "conf_lexer.l"
-{ return T_WALLOP; }
+{ return T_INVISIBLE; }
YY_BREAK
case 216:
YY_RULE_SETUP
#line 346 "conf_lexer.l"
-{ return T_CALLERID; }
+{ return T_WALLOP; }
YY_BREAK
case 217:
YY_RULE_SETUP
#line 347 "conf_lexer.l"
-{ return T_SOFTCALLERID; }
+{ return T_CALLERID; }
YY_BREAK
case 218:
YY_RULE_SETUP
#line 348 "conf_lexer.l"
-{ return T_LOCOPS; }
+{ return T_SOFTCALLERID; }
YY_BREAK
case 219:
YY_RULE_SETUP
-#line 350 "conf_lexer.l"
-{ return YEARS; }
+#line 349 "conf_lexer.l"
+{ return T_LOCOPS; }
YY_BREAK
case 220:
YY_RULE_SETUP
@@ -3137,7 +3151,7 @@ YY_RULE_SETUP
case 221:
YY_RULE_SETUP
#line 352 "conf_lexer.l"
-{ return MONTHS; }
+{ return YEARS; }
YY_BREAK
case 222:
YY_RULE_SETUP
@@ -3147,7 +3161,7 @@ YY_RULE_SETUP
case 223:
YY_RULE_SETUP
#line 354 "conf_lexer.l"
-{ return WEEKS; }
+{ return MONTHS; }
YY_BREAK
case 224:
YY_RULE_SETUP
@@ -3157,7 +3171,7 @@ YY_RULE_SETUP
case 225:
YY_RULE_SETUP
#line 356 "conf_lexer.l"
-{ return DAYS; }
+{ return WEEKS; }
YY_BREAK
case 226:
YY_RULE_SETUP
@@ -3167,7 +3181,7 @@ YY_RULE_SETUP
case 227:
YY_RULE_SETUP
#line 358 "conf_lexer.l"
-{ return HOURS; }
+{ return DAYS; }
YY_BREAK
case 228:
YY_RULE_SETUP
@@ -3177,7 +3191,7 @@ YY_RULE_SETUP
case 229:
YY_RULE_SETUP
#line 360 "conf_lexer.l"
-{ return MINUTES; }
+{ return HOURS; }
YY_BREAK
case 230:
YY_RULE_SETUP
@@ -3187,7 +3201,7 @@ YY_RULE_SETUP
case 231:
YY_RULE_SETUP
#line 362 "conf_lexer.l"
-{ return SECONDS; }
+{ return MINUTES; }
YY_BREAK
case 232:
YY_RULE_SETUP
@@ -3196,8 +3210,8 @@ YY_RULE_SETUP
YY_BREAK
case 233:
YY_RULE_SETUP
-#line 365 "conf_lexer.l"
-{ return BYTES; }
+#line 364 "conf_lexer.l"
+{ return SECONDS; }
YY_BREAK
case 234:
YY_RULE_SETUP
@@ -3207,7 +3221,7 @@ YY_RULE_SETUP
case 235:
YY_RULE_SETUP
#line 367 "conf_lexer.l"
-{ return KBYTES; }
+{ return BYTES; }
YY_BREAK
case 236:
YY_RULE_SETUP
@@ -3232,7 +3246,7 @@ YY_RULE_SETUP
case 240:
YY_RULE_SETUP
#line 372 "conf_lexer.l"
-{ return MBYTES; }
+{ return KBYTES; }
YY_BREAK
case 241:
YY_RULE_SETUP
@@ -3257,23 +3271,28 @@ YY_RULE_SETUP
case 245:
YY_RULE_SETUP
#line 377 "conf_lexer.l"
-{ return TWODOTS; }
+{ return MBYTES; }
YY_BREAK
case 246:
YY_RULE_SETUP
-#line 379 "conf_lexer.l"
+#line 378 "conf_lexer.l"
+{ return TWODOTS; }
+ YY_BREAK
+case 247:
+YY_RULE_SETUP
+#line 380 "conf_lexer.l"
{ return yytext[0]; }
YY_BREAK
case YY_STATE_EOF(INITIAL):
-#line 380 "conf_lexer.l"
+#line 381 "conf_lexer.l"
{ if (ieof()) yyterminate(); }
YY_BREAK
-case 247:
+case 248:
YY_RULE_SETUP
-#line 382 "conf_lexer.l"
+#line 383 "conf_lexer.l"
ECHO;
YY_BREAK
-#line 3277 "conf_lexer.c"
+#line 3296 "conf_lexer.c"
case YY_END_OF_BUFFER:
{
@@ -3564,7 +3583,7 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 1586 )
+ if ( yy_current_state >= 1598 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -3592,11 +3611,11 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 1586 )
+ if ( yy_current_state >= 1598 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 1585);
+ yy_is_jam = (yy_current_state == 1597);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -4229,7 +4248,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 382 "conf_lexer.l"
+#line 383 "conf_lexer.l"
diff --git a/src/conf_lexer.l b/src/conf_lexer.l
index 3235a6d..8eebcd1 100644
--- a/src/conf_lexer.l
+++ b/src/conf_lexer.l
@@ -215,6 +215,7 @@ max_number { return MAX_NUMBER; }
max_nick_length { return MAX_NICK_LENGTH; }
max_topic_length { return MAX_TOPIC_LENGTH; }
max_watch { return MAX_WATCH; }
+message_locale { return MESSAGE_LOCALE; }
min_nonwildcard { return MIN_NONWILDCARD; }
min_nonwildcard_simple { return MIN_NONWILDCARD_SIMPLE; }
name { return NAME; }
diff --git a/src/conf_parser.c b/src/conf_parser.c
index c217f88..3a7ca94 100644
--- a/src/conf_parser.c
+++ b/src/conf_parser.c
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 2.7.12-4996. */
+/* A Bison parser, made by GNU Bison 2.7. */
/* Bison implementation for Yacc-like parsers in C
- Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
+ Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -44,7 +44,7 @@
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "2.7.12-4996"
+#define YYBISON_VERSION "2.7"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -296,142 +296,143 @@ extern int yydebug;
MAX_TARGETS = 338,
MAX_TOPIC_LENGTH = 339,
MAX_WATCH = 340,
- MIN_NONWILDCARD = 341,
- MIN_NONWILDCARD_SIMPLE = 342,
- MIN_IDLE = 343,
- MAX_IDLE = 344,
- RANDOM_IDLE = 345,
- HIDE_IDLE_FROM_OPERS = 346,
- MODULE = 347,
- MODULES = 348,
- NAME = 349,
- NEED_PASSWORD = 350,
- NETWORK_DESC = 351,
- NETWORK_NAME = 352,
- NICK = 353,
- NICK_CHANGES = 354,
- NO_CREATE_ON_SPLIT = 355,
- NO_JOIN_ON_SPLIT = 356,
- NO_OPER_FLOOD = 357,
- NO_TILDE = 358,
- NUMBER = 359,
- NUMBER_PER_CIDR = 360,
- NUMBER_PER_IP = 361,
- OPERATOR = 362,
- OPERS_BYPASS_CALLERID = 363,
- OPER_ONLY_UMODES = 364,
- OPER_PASS_RESV = 365,
- OPER_SPY_T = 366,
- OPER_UMODES = 367,
- JOIN_FLOOD_COUNT = 368,
- JOIN_FLOOD_TIME = 369,
- PACE_WAIT = 370,
- PACE_WAIT_SIMPLE = 371,
- PASSWORD = 372,
- PATH = 373,
- PING_COOKIE = 374,
- PING_TIME = 375,
- PORT = 376,
- QSTRING = 377,
- QUIET_ON_BAN = 378,
- REASON = 379,
- REDIRPORT = 380,
- REDIRSERV = 381,
- REGEX_T = 382,
- REHASH = 383,
- REMOTE = 384,
- REMOTEBAN = 385,
- RESTRICT_CHANNELS = 386,
- RSA_PRIVATE_KEY_FILE = 387,
- RSA_PUBLIC_KEY_FILE = 388,
- SSL_CERTIFICATE_FILE = 389,
- SSL_DH_PARAM_FILE = 390,
- T_SSL_CLIENT_METHOD = 391,
- T_SSL_SERVER_METHOD = 392,
- T_SSLV3 = 393,
- T_TLSV1 = 394,
- RESV = 395,
- RESV_EXEMPT = 396,
- SECONDS = 397,
- MINUTES = 398,
- HOURS = 399,
- DAYS = 400,
- WEEKS = 401,
- MONTHS = 402,
- YEARS = 403,
- SENDQ = 404,
- SEND_PASSWORD = 405,
- SERVERHIDE = 406,
- SERVERINFO = 407,
- IRCD_SID = 408,
- TKLINE_EXPIRE_NOTICES = 409,
- T_SHARED = 410,
- T_CLUSTER = 411,
- TYPE = 412,
- SHORT_MOTD = 413,
- SPOOF = 414,
- SPOOF_NOTICE = 415,
- STATS_E_DISABLED = 416,
- STATS_I_OPER_ONLY = 417,
- STATS_K_OPER_ONLY = 418,
- STATS_O_OPER_ONLY = 419,
- STATS_P_OPER_ONLY = 420,
- TBOOL = 421,
- TMASKED = 422,
- TS_MAX_DELTA = 423,
- TS_WARN_DELTA = 424,
- TWODOTS = 425,
- T_ALL = 426,
- T_BOTS = 427,
- T_SOFTCALLERID = 428,
- T_CALLERID = 429,
- T_CCONN = 430,
- T_CCONN_FULL = 431,
- T_SSL_CIPHER_LIST = 432,
- T_DEAF = 433,
- T_DEBUG = 434,
- T_DLINE = 435,
- T_EXTERNAL = 436,
- T_FULL = 437,
- T_INVISIBLE = 438,
- T_IPV4 = 439,
- T_IPV6 = 440,
- T_LOCOPS = 441,
- T_MAX_CLIENTS = 442,
- T_NCHANGE = 443,
- T_OPERWALL = 444,
- T_RECVQ = 445,
- T_REJ = 446,
- T_SERVER = 447,
- T_SERVNOTICE = 448,
- T_SET = 449,
- T_SKILL = 450,
- T_SPY = 451,
- T_SSL = 452,
- T_UMODES = 453,
- T_UNAUTH = 454,
- T_UNDLINE = 455,
- T_UNLIMITED = 456,
- T_UNRESV = 457,
- T_UNXLINE = 458,
- T_GLOBOPS = 459,
- T_WALLOP = 460,
- T_WEBIRC = 461,
- T_RESTART = 462,
- T_SERVICE = 463,
- T_SERVICES_NAME = 464,
- THROTTLE_TIME = 465,
- TRUE_NO_OPER_FLOOD = 466,
- UNKLINE = 467,
- USER = 468,
- USE_EGD = 469,
- USE_LOGGING = 470,
- VHOST = 471,
- VHOST6 = 472,
- XLINE = 473,
- WARN_NO_NLINE = 474,
- T_SIZE = 475,
- T_FILE = 476
+ MESSAGE_LOCALE = 341,
+ MIN_NONWILDCARD = 342,
+ MIN_NONWILDCARD_SIMPLE = 343,
+ MIN_IDLE = 344,
+ MAX_IDLE = 345,
+ RANDOM_IDLE = 346,
+ HIDE_IDLE_FROM_OPERS = 347,
+ MODULE = 348,
+ MODULES = 349,
+ NAME = 350,
+ NEED_PASSWORD = 351,
+ NETWORK_DESC = 352,
+ NETWORK_NAME = 353,
+ NICK = 354,
+ NICK_CHANGES = 355,
+ NO_CREATE_ON_SPLIT = 356,
+ NO_JOIN_ON_SPLIT = 357,
+ NO_OPER_FLOOD = 358,
+ NO_TILDE = 359,
+ NUMBER = 360,
+ NUMBER_PER_CIDR = 361,
+ NUMBER_PER_IP = 362,
+ OPERATOR = 363,
+ OPERS_BYPASS_CALLERID = 364,
+ OPER_ONLY_UMODES = 365,
+ OPER_PASS_RESV = 366,
+ OPER_SPY_T = 367,
+ OPER_UMODES = 368,
+ JOIN_FLOOD_COUNT = 369,
+ JOIN_FLOOD_TIME = 370,
+ PACE_WAIT = 371,
+ PACE_WAIT_SIMPLE = 372,
+ PASSWORD = 373,
+ PATH = 374,
+ PING_COOKIE = 375,
+ PING_TIME = 376,
+ PORT = 377,
+ QSTRING = 378,
+ QUIET_ON_BAN = 379,
+ REASON = 380,
+ REDIRPORT = 381,
+ REDIRSERV = 382,
+ REGEX_T = 383,
+ REHASH = 384,
+ REMOTE = 385,
+ REMOTEBAN = 386,
+ RESTRICT_CHANNELS = 387,
+ RSA_PRIVATE_KEY_FILE = 388,
+ RSA_PUBLIC_KEY_FILE = 389,
+ SSL_CERTIFICATE_FILE = 390,
+ SSL_DH_PARAM_FILE = 391,
+ T_SSL_CLIENT_METHOD = 392,
+ T_SSL_SERVER_METHOD = 393,
+ T_SSLV3 = 394,
+ T_TLSV1 = 395,
+ RESV = 396,
+ RESV_EXEMPT = 397,
+ SECONDS = 398,
+ MINUTES = 399,
+ HOURS = 400,
+ DAYS = 401,
+ WEEKS = 402,
+ MONTHS = 403,
+ YEARS = 404,
+ SENDQ = 405,
+ SEND_PASSWORD = 406,
+ SERVERHIDE = 407,
+ SERVERINFO = 408,
+ IRCD_SID = 409,
+ TKLINE_EXPIRE_NOTICES = 410,
+ T_SHARED = 411,
+ T_CLUSTER = 412,
+ TYPE = 413,
+ SHORT_MOTD = 414,
+ SPOOF = 415,
+ SPOOF_NOTICE = 416,
+ STATS_E_DISABLED = 417,
+ STATS_I_OPER_ONLY = 418,
+ STATS_K_OPER_ONLY = 419,
+ STATS_O_OPER_ONLY = 420,
+ STATS_P_OPER_ONLY = 421,
+ TBOOL = 422,
+ TMASKED = 423,
+ TS_MAX_DELTA = 424,
+ TS_WARN_DELTA = 425,
+ TWODOTS = 426,
+ T_ALL = 427,
+ T_BOTS = 428,
+ T_SOFTCALLERID = 429,
+ T_CALLERID = 430,
+ T_CCONN = 431,
+ T_CCONN_FULL = 432,
+ T_SSL_CIPHER_LIST = 433,
+ T_DEAF = 434,
+ T_DEBUG = 435,
+ T_DLINE = 436,
+ T_EXTERNAL = 437,
+ T_FULL = 438,
+ T_INVISIBLE = 439,
+ T_IPV4 = 440,
+ T_IPV6 = 441,
+ T_LOCOPS = 442,
+ T_MAX_CLIENTS = 443,
+ T_NCHANGE = 444,
+ T_OPERWALL = 445,
+ T_RECVQ = 446,
+ T_REJ = 447,
+ T_SERVER = 448,
+ T_SERVNOTICE = 449,
+ T_SET = 450,
+ T_SKILL = 451,
+ T_SPY = 452,
+ T_SSL = 453,
+ T_UMODES = 454,
+ T_UNAUTH = 455,
+ T_UNDLINE = 456,
+ T_UNLIMITED = 457,
+ T_UNRESV = 458,
+ T_UNXLINE = 459,
+ T_GLOBOPS = 460,
+ T_WALLOP = 461,
+ T_WEBIRC = 462,
+ T_RESTART = 463,
+ T_SERVICE = 464,
+ T_SERVICES_NAME = 465,
+ THROTTLE_TIME = 466,
+ TRUE_NO_OPER_FLOOD = 467,
+ UNKLINE = 468,
+ USER = 469,
+ USE_EGD = 470,
+ USE_LOGGING = 471,
+ VHOST = 472,
+ VHOST6 = 473,
+ XLINE = 474,
+ WARN_NO_NLINE = 475,
+ T_SIZE = 476,
+ T_FILE = 477
};
#endif
/* Tokens. */
@@ -518,142 +519,143 @@ extern int yydebug;
#define MAX_TARGETS 338
#define MAX_TOPIC_LENGTH 339
#define MAX_WATCH 340
-#define MIN_NONWILDCARD 341
-#define MIN_NONWILDCARD_SIMPLE 342
-#define MIN_IDLE 343
-#define MAX_IDLE 344
-#define RANDOM_IDLE 345
-#define HIDE_IDLE_FROM_OPERS 346
-#define MODULE 347
-#define MODULES 348
-#define NAME 349
-#define NEED_PASSWORD 350
-#define NETWORK_DESC 351
-#define NETWORK_NAME 352
-#define NICK 353
-#define NICK_CHANGES 354
-#define NO_CREATE_ON_SPLIT 355
-#define NO_JOIN_ON_SPLIT 356
-#define NO_OPER_FLOOD 357
-#define NO_TILDE 358
-#define NUMBER 359
-#define NUMBER_PER_CIDR 360
-#define NUMBER_PER_IP 361
-#define OPERATOR 362
-#define OPERS_BYPASS_CALLERID 363
-#define OPER_ONLY_UMODES 364
-#define OPER_PASS_RESV 365
-#define OPER_SPY_T 366
-#define OPER_UMODES 367
-#define JOIN_FLOOD_COUNT 368
-#define JOIN_FLOOD_TIME 369
-#define PACE_WAIT 370
-#define PACE_WAIT_SIMPLE 371
-#define PASSWORD 372
-#define PATH 373
-#define PING_COOKIE 374
-#define PING_TIME 375
-#define PORT 376
-#define QSTRING 377
-#define QUIET_ON_BAN 378
-#define REASON 379
-#define REDIRPORT 380
-#define REDIRSERV 381
-#define REGEX_T 382
-#define REHASH 383
-#define REMOTE 384
-#define REMOTEBAN 385
-#define RESTRICT_CHANNELS 386
-#define RSA_PRIVATE_KEY_FILE 387
-#define RSA_PUBLIC_KEY_FILE 388
-#define SSL_CERTIFICATE_FILE 389
-#define SSL_DH_PARAM_FILE 390
-#define T_SSL_CLIENT_METHOD 391
-#define T_SSL_SERVER_METHOD 392
-#define T_SSLV3 393
-#define T_TLSV1 394
-#define RESV 395
-#define RESV_EXEMPT 396
-#define SECONDS 397
-#define MINUTES 398
-#define HOURS 399
-#define DAYS 400
-#define WEEKS 401
-#define MONTHS 402
-#define YEARS 403
-#define SENDQ 404
-#define SEND_PASSWORD 405
-#define SERVERHIDE 406
-#define SERVERINFO 407
-#define IRCD_SID 408
-#define TKLINE_EXPIRE_NOTICES 409
-#define T_SHARED 410
-#define T_CLUSTER 411
-#define TYPE 412
-#define SHORT_MOTD 413
-#define SPOOF 414
-#define SPOOF_NOTICE 415
-#define STATS_E_DISABLED 416
-#define STATS_I_OPER_ONLY 417
-#define STATS_K_OPER_ONLY 418
-#define STATS_O_OPER_ONLY 419
-#define STATS_P_OPER_ONLY 420
-#define TBOOL 421
-#define TMASKED 422
-#define TS_MAX_DELTA 423
-#define TS_WARN_DELTA 424
-#define TWODOTS 425
-#define T_ALL 426
-#define T_BOTS 427
-#define T_SOFTCALLERID 428
-#define T_CALLERID 429
-#define T_CCONN 430
-#define T_CCONN_FULL 431
-#define T_SSL_CIPHER_LIST 432
-#define T_DEAF 433
-#define T_DEBUG 434
-#define T_DLINE 435
-#define T_EXTERNAL 436
-#define T_FULL 437
-#define T_INVISIBLE 438
-#define T_IPV4 439
-#define T_IPV6 440
-#define T_LOCOPS 441
-#define T_MAX_CLIENTS 442
-#define T_NCHANGE 443
-#define T_OPERWALL 444
-#define T_RECVQ 445
-#define T_REJ 446
-#define T_SERVER 447
-#define T_SERVNOTICE 448
-#define T_SET 449
-#define T_SKILL 450
-#define T_SPY 451
-#define T_SSL 452
-#define T_UMODES 453
-#define T_UNAUTH 454
-#define T_UNDLINE 455
-#define T_UNLIMITED 456
-#define T_UNRESV 457
-#define T_UNXLINE 458
-#define T_GLOBOPS 459
-#define T_WALLOP 460
-#define T_WEBIRC 461
-#define T_RESTART 462
-#define T_SERVICE 463
-#define T_SERVICES_NAME 464
-#define THROTTLE_TIME 465
-#define TRUE_NO_OPER_FLOOD 466
-#define UNKLINE 467
-#define USER 468
-#define USE_EGD 469
-#define USE_LOGGING 470
-#define VHOST 471
-#define VHOST6 472
-#define XLINE 473
-#define WARN_NO_NLINE 474
-#define T_SIZE 475
-#define T_FILE 476
+#define MESSAGE_LOCALE 341
+#define MIN_NONWILDCARD 342
+#define MIN_NONWILDCARD_SIMPLE 343
+#define MIN_IDLE 344
+#define MAX_IDLE 345
+#define RANDOM_IDLE 346
+#define HIDE_IDLE_FROM_OPERS 347
+#define MODULE 348
+#define MODULES 349
+#define NAME 350
+#define NEED_PASSWORD 351
+#define NETWORK_DESC 352
+#define NETWORK_NAME 353
+#define NICK 354
+#define NICK_CHANGES 355
+#define NO_CREATE_ON_SPLIT 356
+#define NO_JOIN_ON_SPLIT 357
+#define NO_OPER_FLOOD 358
+#define NO_TILDE 359
+#define NUMBER 360
+#define NUMBER_PER_CIDR 361
+#define NUMBER_PER_IP 362
+#define OPERATOR 363
+#define OPERS_BYPASS_CALLERID 364
+#define OPER_ONLY_UMODES 365
+#define OPER_PASS_RESV 366
+#define OPER_SPY_T 367
+#define OPER_UMODES 368
+#define JOIN_FLOOD_COUNT 369
+#define JOIN_FLOOD_TIME 370
+#define PACE_WAIT 371
+#define PACE_WAIT_SIMPLE 372
+#define PASSWORD 373
+#define PATH 374
+#define PING_COOKIE 375
+#define PING_TIME 376
+#define PORT 377
+#define QSTRING 378
+#define QUIET_ON_BAN 379
+#define REASON 380
+#define REDIRPORT 381
+#define REDIRSERV 382
+#define REGEX_T 383
+#define REHASH 384
+#define REMOTE 385
+#define REMOTEBAN 386
+#define RESTRICT_CHANNELS 387
+#define RSA_PRIVATE_KEY_FILE 388
+#define RSA_PUBLIC_KEY_FILE 389
+#define SSL_CERTIFICATE_FILE 390
+#define SSL_DH_PARAM_FILE 391
+#define T_SSL_CLIENT_METHOD 392
+#define T_SSL_SERVER_METHOD 393
+#define T_SSLV3 394
+#define T_TLSV1 395
+#define RESV 396
+#define RESV_EXEMPT 397
+#define SECONDS 398
+#define MINUTES 399
+#define HOURS 400
+#define DAYS 401
+#define WEEKS 402
+#define MONTHS 403
+#define YEARS 404
+#define SENDQ 405
+#define SEND_PASSWORD 406
+#define SERVERHIDE 407
+#define SERVERINFO 408
+#define IRCD_SID 409
+#define TKLINE_EXPIRE_NOTICES 410
+#define T_SHARED 411
+#define T_CLUSTER 412
+#define TYPE 413
+#define SHORT_MOTD 414
+#define SPOOF 415
+#define SPOOF_NOTICE 416
+#define STATS_E_DISABLED 417
+#define STATS_I_OPER_ONLY 418
+#define STATS_K_OPER_ONLY 419
+#define STATS_O_OPER_ONLY 420
+#define STATS_P_OPER_ONLY 421
+#define TBOOL 422
+#define TMASKED 423
+#define TS_MAX_DELTA 424
+#define TS_WARN_DELTA 425
+#define TWODOTS 426
+#define T_ALL 427
+#define T_BOTS 428
+#define T_SOFTCALLERID 429
+#define T_CALLERID 430
+#define T_CCONN 431
+#define T_CCONN_FULL 432
+#define T_SSL_CIPHER_LIST 433
+#define T_DEAF 434
+#define T_DEBUG 435
+#define T_DLINE 436
+#define T_EXTERNAL 437
+#define T_FULL 438
+#define T_INVISIBLE 439
+#define T_IPV4 440
+#define T_IPV6 441
+#define T_LOCOPS 442
+#define T_MAX_CLIENTS 443
+#define T_NCHANGE 444
+#define T_OPERWALL 445
+#define T_RECVQ 446
+#define T_REJ 447
+#define T_SERVER 448
+#define T_SERVNOTICE 449
+#define T_SET 450
+#define T_SKILL 451
+#define T_SPY 452
+#define T_SSL 453
+#define T_UMODES 454
+#define T_UNAUTH 455
+#define T_UNDLINE 456
+#define T_UNLIMITED 457
+#define T_UNRESV 458
+#define T_UNXLINE 459
+#define T_GLOBOPS 460
+#define T_WALLOP 461
+#define T_WEBIRC 462
+#define T_RESTART 463
+#define T_SERVICE 464
+#define T_SERVICES_NAME 465
+#define THROTTLE_TIME 466
+#define TRUE_NO_OPER_FLOOD 467
+#define UNKLINE 468
+#define USER 469
+#define USE_EGD 470
+#define USE_LOGGING 471
+#define VHOST 472
+#define VHOST6 473
+#define XLINE 474
+#define WARN_NO_NLINE 475
+#define T_SIZE 476
+#define T_FILE 477
@@ -668,7 +670,7 @@ typedef union YYSTYPE
/* Line 387 of yacc.c */
-#line 672 "conf_parser.c"
+#line 674 "conf_parser.c"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -696,7 +698,7 @@ int yyparse ();
/* Copy the second part of user declarations. */
/* Line 390 of yacc.c */
-#line 700 "conf_parser.c"
+#line 702 "conf_parser.c"
#ifdef short
# undef short
@@ -757,14 +759,6 @@ typedef short int yytype_int16;
# endif
#endif
-#ifndef __attribute__
-/* This feature is available in gcc versions 2.5 and later. */
-# if (! defined __GNUC__ || __GNUC__ < 2 \
- || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
-# define __attribute__(Spec) /* empty */
-# endif
-#endif
-
/* Suppress unused-variable warnings by "using" E. */
#if ! defined lint || defined __GNUC__
# define YYUSE(E) ((void) (E))
@@ -772,7 +766,6 @@ typedef short int yytype_int16;
# define YYUSE(E) /* empty */
#endif
-
/* Identity function, used to suppress warnings about constant conditions. */
#ifndef lint
# define YYID(N) (N)
@@ -925,20 +918,20 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 1201
+#define YYLAST 1211
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 227
+#define YYNTOKENS 228
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 289
+#define YYNNTS 290
/* YYNRULES -- Number of rules. */
-#define YYNRULES 641
+#define YYNRULES 643
/* YYNRULES -- Number of states. */
-#define YYNSTATES 1254
+#define YYNSTATES 1259
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 476
+#define YYMAXUTOK 477
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -950,15 +943,15 @@ static const yytype_uint8 yytranslate[] =
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 226, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 222,
- 2, 225, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 227, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 223,
+ 2, 226, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 224, 2, 223, 2, 2, 2, 2,
+ 2, 2, 2, 225, 2, 224, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -993,7 +986,7 @@ static const yytype_uint8 yytranslate[] =
185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
- 215, 216, 217, 218, 219, 220, 221
+ 215, 216, 217, 218, 219, 220, 221, 222
};
#if YYDEBUG
@@ -1050,293 +1043,293 @@ static const yytype_uint16 yyprhs[] =
1364, 1366, 1368, 1370, 1372, 1374, 1376, 1378, 1380, 1382,
1384, 1386, 1388, 1390, 1392, 1394, 1396, 1398, 1400, 1402,
1404, 1406, 1408, 1410, 1412, 1414, 1416, 1418, 1420, 1422,
- 1424, 1426, 1428, 1430, 1432, 1434, 1436, 1438, 1440, 1445,
- 1450, 1455, 1460, 1465, 1470, 1475, 1480, 1485, 1490, 1495,
- 1500, 1505, 1510, 1515, 1520, 1525, 1530, 1535, 1540, 1545,
- 1550, 1555, 1560, 1565, 1570, 1575, 1580, 1585, 1590, 1595,
- 1600, 1605, 1610, 1615, 1620, 1625, 1630, 1635, 1640, 1645,
- 1650, 1655, 1660, 1665, 1666, 1672, 1676, 1678, 1680, 1682,
- 1684, 1686, 1688, 1690, 1692, 1694, 1696, 1698, 1700, 1702,
- 1704, 1706, 1708, 1710, 1712, 1714, 1716, 1718, 1719, 1725,
- 1729, 1731, 1733, 1735, 1737, 1739, 1741, 1743, 1745, 1747,
- 1749, 1751, 1753, 1755, 1757, 1759, 1761, 1763, 1765, 1767,
- 1769, 1771, 1776, 1781, 1786, 1792, 1795, 1797, 1799, 1801,
- 1803, 1805, 1807, 1809, 1811, 1813, 1815, 1817, 1819, 1821,
- 1823, 1825, 1827, 1832, 1837, 1842, 1847, 1852, 1857, 1862,
- 1867, 1872, 1877, 1882, 1887, 1892, 1897, 1903, 1906, 1908,
- 1910, 1912, 1914, 1916, 1918, 1920, 1922, 1927, 1932, 1937,
- 1942, 1947
+ 1424, 1426, 1428, 1430, 1432, 1434, 1436, 1438, 1440, 1442,
+ 1447, 1452, 1457, 1462, 1467, 1472, 1477, 1482, 1487, 1492,
+ 1497, 1502, 1507, 1512, 1517, 1522, 1527, 1532, 1537, 1542,
+ 1547, 1552, 1557, 1562, 1567, 1572, 1577, 1582, 1587, 1592,
+ 1597, 1602, 1607, 1612, 1617, 1622, 1627, 1632, 1637, 1642,
+ 1647, 1652, 1657, 1662, 1667, 1672, 1673, 1679, 1683, 1685,
+ 1687, 1689, 1691, 1693, 1695, 1697, 1699, 1701, 1703, 1705,
+ 1707, 1709, 1711, 1713, 1715, 1717, 1719, 1721, 1723, 1725,
+ 1726, 1732, 1736, 1738, 1740, 1742, 1744, 1746, 1748, 1750,
+ 1752, 1754, 1756, 1758, 1760, 1762, 1764, 1766, 1768, 1770,
+ 1772, 1774, 1776, 1778, 1783, 1788, 1793, 1799, 1802, 1804,
+ 1806, 1808, 1810, 1812, 1814, 1816, 1818, 1820, 1822, 1824,
+ 1826, 1828, 1830, 1832, 1834, 1839, 1844, 1849, 1854, 1859,
+ 1864, 1869, 1874, 1879, 1884, 1889, 1894, 1899, 1904, 1910,
+ 1913, 1915, 1917, 1919, 1921, 1923, 1925, 1927, 1929, 1934,
+ 1939, 1944, 1949, 1954
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int16 yyrhs[] =
{
- 228, 0, -1, -1, 228, 229, -1, 263, -1, 269,
- -1, 283, -1, 490, -1, 301, -1, 324, -1, 338,
- -1, 239, -1, 507, -1, 353, -1, 360, -1, 364,
- -1, 374, -1, 383, -1, 403, -1, 413, -1, 419,
- -1, 433, -1, 423, -1, 234, -1, 1, 222, -1,
- 1, 223, -1, -1, 231, -1, 104, 230, -1, 104,
- 142, 230, -1, 104, 143, 230, -1, 104, 144, 230,
- -1, 104, 145, 230, -1, 104, 146, 230, -1, 104,
- 147, 230, -1, 104, 148, 230, -1, -1, 233, -1,
- 104, 232, -1, 104, 9, 232, -1, 104, 10, 232,
- -1, 104, 11, 232, -1, 93, 224, 235, 223, 222,
- -1, 235, 236, -1, 236, -1, 237, -1, 238, -1,
- 1, 222, -1, 92, 225, 122, 222, -1, 118, 225,
- 122, 222, -1, 152, 224, 240, 223, 222, -1, 240,
- 241, -1, 241, -1, 252, -1, 257, -1, 262, -1,
- 254, -1, 255, -1, 256, -1, 259, -1, 260, -1,
- 261, -1, 250, -1, 249, -1, 258, -1, 253, -1,
- 248, -1, 242, -1, 243, -1, 251, -1, 1, 222,
- -1, 136, 225, 244, 222, -1, 137, 225, 246, 222,
- -1, 244, 226, 245, -1, 245, -1, 138, -1, 139,
- -1, 246, 226, 247, -1, 247, -1, 138, -1, 139,
- -1, 134, 225, 122, 222, -1, 132, 225, 122, 222,
- -1, 135, 225, 122, 222, -1, 177, 225, 122, 222,
- -1, 94, 225, 122, 222, -1, 153, 225, 122, 222,
- -1, 24, 225, 122, 222, -1, 97, 225, 122, 222,
- -1, 96, 225, 122, 222, -1, 216, 225, 122, 222,
- -1, 217, 225, 122, 222, -1, 187, 225, 104, 222,
- -1, 80, 225, 104, 222, -1, 84, 225, 104, 222,
- -1, 57, 225, 166, 222, -1, 4, 224, 264, 223,
- 222, -1, 264, 265, -1, 265, -1, 266, -1, 268,
- -1, 267, -1, 1, 222, -1, 94, 225, 122, 222,
- -1, 31, 225, 122, 222, -1, 24, 225, 122, 222,
- -1, 71, 224, 270, 223, 222, -1, 270, 271, -1,
- 271, -1, 272, -1, 273, -1, 1, 222, -1, 215,
- 225, 166, 222, -1, -1, 274, 221, 224, 275, 223,
- 222, -1, 275, 276, -1, 276, -1, 277, -1, 279,
- -1, 278, -1, 1, 222, -1, 94, 225, 122, 222,
- -1, 220, 225, 233, 222, -1, 220, 225, 201, 222,
- -1, -1, 157, 280, 225, 281, 222, -1, 281, 226,
- 282, -1, 282, -1, 213, -1, 107, -1, 40, -1,
- 180, -1, 64, -1, 62, -1, 179, -1, -1, 107,
- 284, 224, 285, 223, 222, -1, 285, 286, -1, 286,
- -1, 287, -1, 288, -1, 289, -1, 293, -1, 292,
- -1, 290, -1, 291, -1, 297, -1, 1, 222, -1,
- 94, 225, 122, 222, -1, 213, 225, 122, 222, -1,
- 117, 225, 122, 222, -1, 32, 225, 166, 222, -1,
- 133, 225, 122, 222, -1, 17, 225, 122, 222, -1,
- -1, 198, 294, 225, 295, 222, -1, 295, 226, 296,
- -1, 296, -1, 172, -1, 175, -1, 176, -1, 178,
- -1, 179, -1, 182, -1, 51, -1, 195, -1, 188,
- -1, 191, -1, 199, -1, 196, -1, 181, -1, 189,
- -1, 193, -1, 183, -1, 205, -1, 173, -1, 174,
- -1, 186, -1, -1, 36, 298, 225, 299, 222, -1,
- 299, 226, 300, -1, 300, -1, 47, -1, 129, -1,
- 64, -1, 212, -1, 180, -1, 200, -1, 218, -1,
- 40, -1, 25, -1, 207, -1, 128, -1, 4, -1,
- 99, -1, 189, -1, 204, -1, 111, -1, 130, -1,
- 194, -1, 92, -1, -1, 17, 302, 224, 303, 223,
- 222, -1, 303, 304, -1, 304, -1, 305, -1, 315,
- -1, 316, -1, 306, -1, 317, -1, 307, -1, 308,
- -1, 309, -1, 310, -1, 311, -1, 312, -1, 313,
- -1, 314, -1, 318, -1, 319, -1, 320, -1, 1,
- 222, -1, 94, 225, 122, 222, -1, 120, 225, 231,
- 222, -1, 106, 225, 104, 222, -1, 19, 225, 231,
- 222, -1, 82, 225, 104, 222, -1, 76, 225, 104,
- 222, -1, 78, 225, 104, 222, -1, 77, 225, 104,
- 222, -1, 149, 225, 233, 222, -1, 190, 225, 233,
- 222, -1, 15, 225, 104, 222, -1, 16, 225, 104,
- 222, -1, 105, 225, 104, 222, -1, 88, 225, 231,
- 222, -1, 89, 225, 231, 222, -1, -1, 36, 321,
- 225, 322, 222, -1, 322, 226, 323, -1, 323, -1,
- 90, -1, 91, -1, -1, 70, 325, 224, 330, 223,
- 222, -1, -1, 36, 327, 225, 328, 222, -1, 328,
- 226, 329, -1, 329, -1, 197, -1, 51, -1, 192,
- -1, 330, 331, -1, 331, -1, 332, -1, 326, -1,
- 336, -1, 337, -1, 1, 222, -1, -1, 121, 225,
- 334, 333, 222, -1, 334, 226, 335, -1, 335, -1,
- 104, -1, 104, 170, 104, -1, 61, 225, 122, 222,
- -1, 56, 225, 122, 222, -1, -1, 48, 339, 224,
- 340, 223, 222, -1, 340, 341, -1, 341, -1, 342,
- -1, 343, -1, 344, -1, 346, -1, 350, -1, 351,
- -1, 352, -1, 345, -1, 1, 222, -1, 213, 225,
- 122, 222, -1, 117, 225, 122, 222, -1, 17, 225,
- 122, 222, -1, 32, 225, 166, 222, -1, -1, 36,
- 347, 225, 348, 222, -1, 348, 226, 349, -1, 349,
- -1, 160, -1, 33, -1, 65, -1, 49, -1, 13,
- -1, 103, -1, 43, -1, 141, -1, 206, -1, 95,
- -1, 159, 225, 122, 222, -1, 126, 225, 122, 222,
- -1, 125, 225, 104, 222, -1, -1, 140, 354, 224,
- 355, 223, 222, -1, 355, 356, -1, 356, -1, 357,
- -1, 358, -1, 359, -1, 1, 222, -1, 124, 225,
- 122, 222, -1, 14, 225, 122, 222, -1, 98, 225,
- 122, 222, -1, 208, 224, 361, 223, 222, -1, 361,
- 362, -1, 362, -1, 363, -1, 1, -1, 94, 225,
- 122, 222, -1, -1, 155, 365, 224, 366, 223, 222,
- -1, 366, 367, -1, 367, -1, 368, -1, 369, -1,
- 370, -1, 1, 222, -1, 94, 225, 122, 222, -1,
- 213, 225, 122, 222, -1, -1, 157, 371, 225, 372,
- 222, -1, 372, 226, 373, -1, 373, -1, 64, -1,
- 212, -1, 180, -1, 200, -1, 218, -1, 203, -1,
- 140, -1, 202, -1, 186, -1, 171, -1, -1, 156,
- 375, 224, 376, 223, 222, -1, 376, 377, -1, 377,
- -1, 378, -1, 379, -1, 1, 222, -1, 94, 225,
- 122, 222, -1, -1, 157, 380, 225, 381, 222, -1,
- 381, 226, 382, -1, 382, -1, 64, -1, 212, -1,
- 180, -1, 200, -1, 218, -1, 203, -1, 140, -1,
- 202, -1, 186, -1, 171, -1, -1, 18, 384, 224,
- 385, 223, 222, -1, 385, 386, -1, 386, -1, 387,
- -1, 388, -1, 389, -1, 390, -1, 391, -1, 393,
- -1, 392, -1, 402, -1, 394, -1, 399, -1, 400,
- -1, 401, -1, 398, -1, 1, 222, -1, 94, 225,
- 122, 222, -1, 56, 225, 122, 222, -1, 216, 225,
- 122, 222, -1, 150, 225, 122, 222, -1, 3, 225,
- 122, 222, -1, 121, 225, 104, 222, -1, 5, 225,
- 184, 222, -1, 5, 225, 185, 222, -1, -1, 36,
- 395, 225, 396, 222, -1, 396, 226, 397, -1, 397,
- -1, 8, -1, 197, -1, 32, 225, 166, 222, -1,
- 58, 225, 122, 222, -1, 68, 225, 122, 222, -1,
- 17, 225, 122, 222, -1, 177, 225, 122, 222, -1,
- -1, 62, 404, 224, 409, 223, 222, -1, -1, 157,
- 406, 225, 407, 222, -1, 407, 226, 408, -1, 408,
- -1, 127, -1, 409, 410, -1, 410, -1, 411, -1,
- 412, -1, 405, -1, 1, -1, 213, 225, 122, 222,
- -1, 124, 225, 122, 222, -1, -1, 23, 414, 224,
- 415, 223, 222, -1, 415, 416, -1, 416, -1, 417,
- -1, 418, -1, 1, -1, 61, 225, 122, 222, -1,
- 124, 225, 122, 222, -1, 34, 224, 420, 223, 222,
- -1, 420, 421, -1, 421, -1, 422, -1, 1, -1,
- 61, 225, 122, 222, -1, -1, 38, 424, 224, 429,
- 223, 222, -1, -1, 157, 426, 225, 427, 222, -1,
- 427, 226, 428, -1, 428, -1, 127, -1, 429, 430,
- -1, 430, -1, 431, -1, 432, -1, 425, -1, 1,
- -1, 94, 225, 122, 222, -1, 124, 225, 122, 222,
- -1, 39, 224, 434, 223, 222, -1, 434, 435, -1,
- 435, -1, 444, -1, 445, -1, 447, -1, 448, -1,
- 449, -1, 450, -1, 451, -1, 452, -1, 453, -1,
- 454, -1, 443, -1, 456, -1, 457, -1, 471, -1,
- 459, -1, 461, -1, 463, -1, 462, -1, 466, -1,
- 460, -1, 467, -1, 468, -1, 469, -1, 470, -1,
- 483, -1, 472, -1, 473, -1, 474, -1, 479, -1,
- 464, -1, 465, -1, 489, -1, 487, -1, 488, -1,
- 446, -1, 478, -1, 455, -1, 476, -1, 477, -1,
- 442, -1, 437, -1, 438, -1, 439, -1, 440, -1,
- 441, -1, 458, -1, 436, -1, 475, -1, 1, -1,
- 85, 225, 104, 222, -1, 42, 225, 166, 222, -1,
- 41, 225, 231, 222, -1, 44, 225, 231, 222, -1,
- 45, 225, 104, 222, -1, 46, 225, 104, 222, -1,
- 154, 225, 166, 222, -1, 63, 225, 231, 222, -1,
- 55, 225, 166, 222, -1, 59, 225, 166, 222, -1,
- 28, 225, 166, 222, -1, 35, 225, 166, 222, -1,
- 6, 225, 166, 222, -1, 81, 225, 231, 222, -1,
- 79, 225, 104, 222, -1, 72, 225, 104, 222, -1,
- 7, 225, 231, 222, -1, 169, 225, 231, 222, -1,
- 168, 225, 231, 222, -1, 50, 225, 104, 222, -1,
- 60, 225, 166, 222, -1, 219, 225, 166, 222, -1,
- 161, 225, 166, 222, -1, 164, 225, 166, 222, -1,
- 165, 225, 166, 222, -1, 163, 225, 166, 222, -1,
- 163, 225, 167, 222, -1, 162, 225, 166, 222, -1,
- 162, 225, 167, 222, -1, 115, 225, 231, 222, -1,
- 12, 225, 231, 222, -1, 108, 225, 166, 222, -1,
- 116, 225, 231, 222, -1, 158, 225, 166, 222, -1,
- 102, 225, 166, 222, -1, 211, 225, 166, 222, -1,
- 110, 225, 166, 222, -1, 29, 225, 104, 222, -1,
- 83, 225, 104, 222, -1, 214, 225, 166, 222, -1,
- 30, 225, 122, 222, -1, 209, 225, 122, 222, -1,
- 119, 225, 166, 222, -1, 26, 225, 166, 222, -1,
- 210, 225, 231, 222, -1, -1, 112, 480, 225, 481,
- 222, -1, 481, 226, 482, -1, 482, -1, 172, -1,
- 175, -1, 176, -1, 178, -1, 179, -1, 182, -1,
- 51, -1, 195, -1, 188, -1, 191, -1, 199, -1,
- 196, -1, 181, -1, 189, -1, 193, -1, 183, -1,
- 205, -1, 173, -1, 174, -1, 186, -1, -1, 109,
- 484, 225, 485, 222, -1, 485, 226, 486, -1, 486,
- -1, 172, -1, 175, -1, 176, -1, 178, -1, 179,
- -1, 182, -1, 195, -1, 51, -1, 188, -1, 191,
- -1, 199, -1, 196, -1, 181, -1, 189, -1, 193,
- -1, 183, -1, 205, -1, 173, -1, 174, -1, 186,
- -1, 86, 225, 104, 222, -1, 87, 225, 104, 222,
- -1, 20, 225, 104, 222, -1, 14, 224, 491, 223,
- 222, -1, 491, 492, -1, 492, -1, 500, -1, 495,
- -1, 496, -1, 497, -1, 498, -1, 499, -1, 501,
- -1, 502, -1, 503, -1, 494, -1, 504, -1, 505,
- -1, 506, -1, 493, -1, 1, -1, 27, 225, 166,
- 222, -1, 131, 225, 166, 222, -1, 66, 225, 231,
- 222, -1, 67, 225, 231, 222, -1, 75, 225, 104,
- 222, -1, 74, 225, 104, 222, -1, 123, 225, 166,
- 222, -1, 73, 225, 104, 222, -1, 22, 225, 104,
- 222, -1, 21, 225, 104, 222, -1, 100, 225, 166,
- 222, -1, 101, 225, 166, 222, -1, 113, 225, 104,
- 222, -1, 114, 225, 231, 222, -1, 151, 224, 508,
- 223, 222, -1, 508, 509, -1, 509, -1, 510, -1,
- 511, -1, 513, -1, 514, -1, 512, -1, 515, -1,
- 1, -1, 37, 225, 166, 222, -1, 54, 225, 166,
- 222, -1, 52, 225, 122, 222, -1, 69, 225, 231,
- 222, -1, 51, 225, 166, 222, -1, 53, 225, 166,
- 222, -1
+ 229, 0, -1, -1, 229, 230, -1, 264, -1, 270,
+ -1, 284, -1, 492, -1, 302, -1, 325, -1, 339,
+ -1, 240, -1, 509, -1, 354, -1, 361, -1, 365,
+ -1, 375, -1, 384, -1, 404, -1, 414, -1, 420,
+ -1, 434, -1, 424, -1, 235, -1, 1, 223, -1,
+ 1, 224, -1, -1, 232, -1, 105, 231, -1, 105,
+ 143, 231, -1, 105, 144, 231, -1, 105, 145, 231,
+ -1, 105, 146, 231, -1, 105, 147, 231, -1, 105,
+ 148, 231, -1, 105, 149, 231, -1, -1, 234, -1,
+ 105, 233, -1, 105, 9, 233, -1, 105, 10, 233,
+ -1, 105, 11, 233, -1, 94, 225, 236, 224, 223,
+ -1, 236, 237, -1, 237, -1, 238, -1, 239, -1,
+ 1, 223, -1, 93, 226, 123, 223, -1, 119, 226,
+ 123, 223, -1, 153, 225, 241, 224, 223, -1, 241,
+ 242, -1, 242, -1, 253, -1, 258, -1, 263, -1,
+ 255, -1, 256, -1, 257, -1, 260, -1, 261, -1,
+ 262, -1, 251, -1, 250, -1, 259, -1, 254, -1,
+ 249, -1, 243, -1, 244, -1, 252, -1, 1, 223,
+ -1, 137, 226, 245, 223, -1, 138, 226, 247, 223,
+ -1, 245, 227, 246, -1, 246, -1, 139, -1, 140,
+ -1, 247, 227, 248, -1, 248, -1, 139, -1, 140,
+ -1, 135, 226, 123, 223, -1, 133, 226, 123, 223,
+ -1, 136, 226, 123, 223, -1, 178, 226, 123, 223,
+ -1, 95, 226, 123, 223, -1, 154, 226, 123, 223,
+ -1, 24, 226, 123, 223, -1, 98, 226, 123, 223,
+ -1, 97, 226, 123, 223, -1, 217, 226, 123, 223,
+ -1, 218, 226, 123, 223, -1, 188, 226, 105, 223,
+ -1, 80, 226, 105, 223, -1, 84, 226, 105, 223,
+ -1, 57, 226, 167, 223, -1, 4, 225, 265, 224,
+ 223, -1, 265, 266, -1, 266, -1, 267, -1, 269,
+ -1, 268, -1, 1, 223, -1, 95, 226, 123, 223,
+ -1, 31, 226, 123, 223, -1, 24, 226, 123, 223,
+ -1, 71, 225, 271, 224, 223, -1, 271, 272, -1,
+ 272, -1, 273, -1, 274, -1, 1, 223, -1, 216,
+ 226, 167, 223, -1, -1, 275, 222, 225, 276, 224,
+ 223, -1, 276, 277, -1, 277, -1, 278, -1, 280,
+ -1, 279, -1, 1, 223, -1, 95, 226, 123, 223,
+ -1, 221, 226, 234, 223, -1, 221, 226, 202, 223,
+ -1, -1, 158, 281, 226, 282, 223, -1, 282, 227,
+ 283, -1, 283, -1, 214, -1, 108, -1, 40, -1,
+ 181, -1, 64, -1, 62, -1, 180, -1, -1, 108,
+ 285, 225, 286, 224, 223, -1, 286, 287, -1, 287,
+ -1, 288, -1, 289, -1, 290, -1, 294, -1, 293,
+ -1, 291, -1, 292, -1, 298, -1, 1, 223, -1,
+ 95, 226, 123, 223, -1, 214, 226, 123, 223, -1,
+ 118, 226, 123, 223, -1, 32, 226, 167, 223, -1,
+ 134, 226, 123, 223, -1, 17, 226, 123, 223, -1,
+ -1, 199, 295, 226, 296, 223, -1, 296, 227, 297,
+ -1, 297, -1, 173, -1, 176, -1, 177, -1, 179,
+ -1, 180, -1, 183, -1, 51, -1, 196, -1, 189,
+ -1, 192, -1, 200, -1, 197, -1, 182, -1, 190,
+ -1, 194, -1, 184, -1, 206, -1, 174, -1, 175,
+ -1, 187, -1, -1, 36, 299, 226, 300, 223, -1,
+ 300, 227, 301, -1, 301, -1, 47, -1, 130, -1,
+ 64, -1, 213, -1, 181, -1, 201, -1, 219, -1,
+ 40, -1, 25, -1, 208, -1, 129, -1, 4, -1,
+ 100, -1, 190, -1, 205, -1, 112, -1, 131, -1,
+ 195, -1, 93, -1, -1, 17, 303, 225, 304, 224,
+ 223, -1, 304, 305, -1, 305, -1, 306, -1, 316,
+ -1, 317, -1, 307, -1, 318, -1, 308, -1, 309,
+ -1, 310, -1, 311, -1, 312, -1, 313, -1, 314,
+ -1, 315, -1, 319, -1, 320, -1, 321, -1, 1,
+ 223, -1, 95, 226, 123, 223, -1, 121, 226, 232,
+ 223, -1, 107, 226, 105, 223, -1, 19, 226, 232,
+ 223, -1, 82, 226, 105, 223, -1, 76, 226, 105,
+ 223, -1, 78, 226, 105, 223, -1, 77, 226, 105,
+ 223, -1, 150, 226, 234, 223, -1, 191, 226, 234,
+ 223, -1, 15, 226, 105, 223, -1, 16, 226, 105,
+ 223, -1, 106, 226, 105, 223, -1, 89, 226, 232,
+ 223, -1, 90, 226, 232, 223, -1, -1, 36, 322,
+ 226, 323, 223, -1, 323, 227, 324, -1, 324, -1,
+ 91, -1, 92, -1, -1, 70, 326, 225, 331, 224,
+ 223, -1, -1, 36, 328, 226, 329, 223, -1, 329,
+ 227, 330, -1, 330, -1, 198, -1, 51, -1, 193,
+ -1, 331, 332, -1, 332, -1, 333, -1, 327, -1,
+ 337, -1, 338, -1, 1, 223, -1, -1, 122, 226,
+ 335, 334, 223, -1, 335, 227, 336, -1, 336, -1,
+ 105, -1, 105, 171, 105, -1, 61, 226, 123, 223,
+ -1, 56, 226, 123, 223, -1, -1, 48, 340, 225,
+ 341, 224, 223, -1, 341, 342, -1, 342, -1, 343,
+ -1, 344, -1, 345, -1, 347, -1, 351, -1, 352,
+ -1, 353, -1, 346, -1, 1, 223, -1, 214, 226,
+ 123, 223, -1, 118, 226, 123, 223, -1, 17, 226,
+ 123, 223, -1, 32, 226, 167, 223, -1, -1, 36,
+ 348, 226, 349, 223, -1, 349, 227, 350, -1, 350,
+ -1, 161, -1, 33, -1, 65, -1, 49, -1, 13,
+ -1, 104, -1, 43, -1, 142, -1, 207, -1, 96,
+ -1, 160, 226, 123, 223, -1, 127, 226, 123, 223,
+ -1, 126, 226, 105, 223, -1, -1, 141, 355, 225,
+ 356, 224, 223, -1, 356, 357, -1, 357, -1, 358,
+ -1, 359, -1, 360, -1, 1, 223, -1, 125, 226,
+ 123, 223, -1, 14, 226, 123, 223, -1, 99, 226,
+ 123, 223, -1, 209, 225, 362, 224, 223, -1, 362,
+ 363, -1, 363, -1, 364, -1, 1, -1, 95, 226,
+ 123, 223, -1, -1, 156, 366, 225, 367, 224, 223,
+ -1, 367, 368, -1, 368, -1, 369, -1, 370, -1,
+ 371, -1, 1, 223, -1, 95, 226, 123, 223, -1,
+ 214, 226, 123, 223, -1, -1, 158, 372, 226, 373,
+ 223, -1, 373, 227, 374, -1, 374, -1, 64, -1,
+ 213, -1, 181, -1, 201, -1, 219, -1, 204, -1,
+ 141, -1, 203, -1, 187, -1, 172, -1, -1, 157,
+ 376, 225, 377, 224, 223, -1, 377, 378, -1, 378,
+ -1, 379, -1, 380, -1, 1, 223, -1, 95, 226,
+ 123, 223, -1, -1, 158, 381, 226, 382, 223, -1,
+ 382, 227, 383, -1, 383, -1, 64, -1, 213, -1,
+ 181, -1, 201, -1, 219, -1, 204, -1, 141, -1,
+ 203, -1, 187, -1, 172, -1, -1, 18, 385, 225,
+ 386, 224, 223, -1, 386, 387, -1, 387, -1, 388,
+ -1, 389, -1, 390, -1, 391, -1, 392, -1, 394,
+ -1, 393, -1, 403, -1, 395, -1, 400, -1, 401,
+ -1, 402, -1, 399, -1, 1, 223, -1, 95, 226,
+ 123, 223, -1, 56, 226, 123, 223, -1, 217, 226,
+ 123, 223, -1, 151, 226, 123, 223, -1, 3, 226,
+ 123, 223, -1, 122, 226, 105, 223, -1, 5, 226,
+ 185, 223, -1, 5, 226, 186, 223, -1, -1, 36,
+ 396, 226, 397, 223, -1, 397, 227, 398, -1, 398,
+ -1, 8, -1, 198, -1, 32, 226, 167, 223, -1,
+ 58, 226, 123, 223, -1, 68, 226, 123, 223, -1,
+ 17, 226, 123, 223, -1, 178, 226, 123, 223, -1,
+ -1, 62, 405, 225, 410, 224, 223, -1, -1, 158,
+ 407, 226, 408, 223, -1, 408, 227, 409, -1, 409,
+ -1, 128, -1, 410, 411, -1, 411, -1, 412, -1,
+ 413, -1, 406, -1, 1, -1, 214, 226, 123, 223,
+ -1, 125, 226, 123, 223, -1, -1, 23, 415, 225,
+ 416, 224, 223, -1, 416, 417, -1, 417, -1, 418,
+ -1, 419, -1, 1, -1, 61, 226, 123, 223, -1,
+ 125, 226, 123, 223, -1, 34, 225, 421, 224, 223,
+ -1, 421, 422, -1, 422, -1, 423, -1, 1, -1,
+ 61, 226, 123, 223, -1, -1, 38, 425, 225, 430,
+ 224, 223, -1, -1, 158, 427, 226, 428, 223, -1,
+ 428, 227, 429, -1, 429, -1, 128, -1, 430, 431,
+ -1, 431, -1, 432, -1, 433, -1, 426, -1, 1,
+ -1, 95, 226, 123, 223, -1, 125, 226, 123, 223,
+ -1, 39, 225, 435, 224, 223, -1, 435, 436, -1,
+ 436, -1, 445, -1, 446, -1, 448, -1, 449, -1,
+ 450, -1, 451, -1, 452, -1, 453, -1, 454, -1,
+ 455, -1, 444, -1, 457, -1, 458, -1, 473, -1,
+ 460, -1, 462, -1, 464, -1, 463, -1, 467, -1,
+ 461, -1, 468, -1, 469, -1, 470, -1, 471, -1,
+ 472, -1, 485, -1, 474, -1, 475, -1, 476, -1,
+ 481, -1, 465, -1, 466, -1, 491, -1, 489, -1,
+ 490, -1, 447, -1, 480, -1, 456, -1, 478, -1,
+ 479, -1, 443, -1, 438, -1, 439, -1, 440, -1,
+ 441, -1, 442, -1, 459, -1, 437, -1, 477, -1,
+ 1, -1, 85, 226, 105, 223, -1, 42, 226, 167,
+ 223, -1, 41, 226, 232, 223, -1, 44, 226, 232,
+ 223, -1, 45, 226, 105, 223, -1, 46, 226, 105,
+ 223, -1, 155, 226, 167, 223, -1, 63, 226, 232,
+ 223, -1, 55, 226, 167, 223, -1, 59, 226, 167,
+ 223, -1, 28, 226, 167, 223, -1, 35, 226, 167,
+ 223, -1, 6, 226, 167, 223, -1, 81, 226, 232,
+ 223, -1, 79, 226, 105, 223, -1, 72, 226, 105,
+ 223, -1, 7, 226, 232, 223, -1, 170, 226, 232,
+ 223, -1, 169, 226, 232, 223, -1, 50, 226, 105,
+ 223, -1, 60, 226, 167, 223, -1, 220, 226, 167,
+ 223, -1, 162, 226, 167, 223, -1, 165, 226, 167,
+ 223, -1, 166, 226, 167, 223, -1, 164, 226, 167,
+ 223, -1, 164, 226, 168, 223, -1, 163, 226, 167,
+ 223, -1, 163, 226, 168, 223, -1, 116, 226, 232,
+ 223, -1, 12, 226, 232, 223, -1, 109, 226, 167,
+ 223, -1, 117, 226, 232, 223, -1, 159, 226, 167,
+ 223, -1, 103, 226, 167, 223, -1, 212, 226, 167,
+ 223, -1, 111, 226, 167, 223, -1, 86, 226, 123,
+ 223, -1, 29, 226, 105, 223, -1, 83, 226, 105,
+ 223, -1, 215, 226, 167, 223, -1, 30, 226, 123,
+ 223, -1, 210, 226, 123, 223, -1, 120, 226, 167,
+ 223, -1, 26, 226, 167, 223, -1, 211, 226, 232,
+ 223, -1, -1, 113, 482, 226, 483, 223, -1, 483,
+ 227, 484, -1, 484, -1, 173, -1, 176, -1, 177,
+ -1, 179, -1, 180, -1, 183, -1, 51, -1, 196,
+ -1, 189, -1, 192, -1, 200, -1, 197, -1, 182,
+ -1, 190, -1, 194, -1, 184, -1, 206, -1, 174,
+ -1, 175, -1, 187, -1, -1, 110, 486, 226, 487,
+ 223, -1, 487, 227, 488, -1, 488, -1, 173, -1,
+ 176, -1, 177, -1, 179, -1, 180, -1, 183, -1,
+ 196, -1, 51, -1, 189, -1, 192, -1, 200, -1,
+ 197, -1, 182, -1, 190, -1, 194, -1, 184, -1,
+ 206, -1, 174, -1, 175, -1, 187, -1, 87, 226,
+ 105, 223, -1, 88, 226, 105, 223, -1, 20, 226,
+ 105, 223, -1, 14, 225, 493, 224, 223, -1, 493,
+ 494, -1, 494, -1, 502, -1, 497, -1, 498, -1,
+ 499, -1, 500, -1, 501, -1, 503, -1, 504, -1,
+ 505, -1, 496, -1, 506, -1, 507, -1, 508, -1,
+ 495, -1, 1, -1, 27, 226, 167, 223, -1, 132,
+ 226, 167, 223, -1, 66, 226, 232, 223, -1, 67,
+ 226, 232, 223, -1, 75, 226, 105, 223, -1, 74,
+ 226, 105, 223, -1, 124, 226, 167, 223, -1, 73,
+ 226, 105, 223, -1, 22, 226, 105, 223, -1, 21,
+ 226, 105, 223, -1, 101, 226, 167, 223, -1, 102,
+ 226, 167, 223, -1, 114, 226, 105, 223, -1, 115,
+ 226, 232, 223, -1, 152, 225, 510, 224, 223, -1,
+ 510, 511, -1, 511, -1, 512, -1, 513, -1, 515,
+ -1, 516, -1, 514, -1, 517, -1, 1, -1, 37,
+ 226, 167, 223, -1, 54, 226, 167, 223, -1, 52,
+ 226, 123, 223, -1, 69, 226, 232, 223, -1, 51,
+ 226, 167, 223, -1, 53, 226, 167, 223, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 363, 363, 364, 367, 368, 369, 370, 371, 372,
- 373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
- 383, 384, 385, 386, 387, 388, 392, 392, 393, 397,
- 401, 405, 409, 413, 417, 421, 427, 427, 428, 429,
- 430, 431, 438, 441, 441, 442, 442, 442, 444, 450,
- 457, 459, 459, 460, 460, 461, 461, 462, 462, 463,
- 463, 464, 464, 465, 465, 466, 466, 467, 467, 468,
- 469, 472, 473, 475, 475, 476, 482, 490, 490, 491,
- 497, 505, 547, 606, 634, 642, 657, 672, 681, 695,
- 704, 732, 762, 787, 809, 831, 840, 842, 842, 843,
- 843, 844, 844, 846, 855, 864, 876, 877, 877, 879,
- 879, 880, 882, 889, 889, 902, 903, 905, 905, 906,
- 906, 908, 916, 919, 925, 924, 930, 930, 931, 935,
- 939, 943, 947, 951, 955, 966, 965, 1042, 1042, 1043,
- 1043, 1043, 1044, 1044, 1044, 1045, 1045, 1045, 1047, 1053,
- 1059, 1065, 1076, 1082, 1089, 1088, 1094, 1094, 1095, 1099,
- 1103, 1107, 1111, 1115, 1119, 1123, 1127, 1131, 1135, 1139,
- 1143, 1147, 1151, 1155, 1159, 1163, 1167, 1171, 1178, 1177,
- 1183, 1183, 1184, 1188, 1192, 1196, 1200, 1204, 1208, 1212,
- 1216, 1220, 1224, 1228, 1232, 1236, 1240, 1244, 1248, 1252,
- 1256, 1267, 1266, 1327, 1327, 1328, 1329, 1329, 1330, 1331,
- 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1338, 1339, 1340,
- 1341, 1342, 1344, 1350, 1356, 1362, 1368, 1374, 1380, 1386,
- 1392, 1398, 1405, 1411, 1417, 1423, 1432, 1442, 1441, 1447,
- 1447, 1448, 1452, 1463, 1462, 1469, 1468, 1473, 1473, 1474,
- 1478, 1482, 1488, 1488, 1489, 1489, 1489, 1489, 1489, 1491,
- 1491, 1493, 1493, 1495, 1509, 1529, 1535, 1545, 1544, 1586,
- 1586, 1587, 1587, 1587, 1587, 1588, 1588, 1588, 1589, 1589,
- 1591, 1597, 1603, 1609, 1621, 1620, 1626, 1626, 1627, 1631,
- 1635, 1639, 1643, 1647, 1651, 1655, 1659, 1663, 1669, 1683,
- 1692, 1706, 1705, 1720, 1720, 1721, 1721, 1721, 1721, 1723,
- 1729, 1735, 1744, 1746, 1746, 1747, 1747, 1749, 1765, 1764,
- 1789, 1789, 1790, 1790, 1790, 1790, 1792, 1798, 1818, 1817,
- 1823, 1823, 1824, 1828, 1832, 1836, 1840, 1844, 1848, 1852,
- 1856, 1860, 1870, 1869, 1890, 1890, 1891, 1891, 1891, 1893,
- 1900, 1899, 1905, 1905, 1906, 1910, 1914, 1918, 1922, 1926,
- 1930, 1934, 1938, 1942, 1952, 1951, 2017, 2017, 2018, 2018,
- 2018, 2019, 2019, 2020, 2020, 2020, 2021, 2021, 2021, 2022,
- 2022, 2023, 2025, 2031, 2037, 2043, 2056, 2069, 2075, 2079,
- 2088, 2087, 2092, 2092, 2093, 2097, 2103, 2114, 2120, 2126,
- 2132, 2148, 2147, 2210, 2209, 2215, 2215, 2216, 2222, 2222,
- 2223, 2223, 2223, 2223, 2225, 2245, 2255, 2254, 2281, 2281,
- 2282, 2282, 2282, 2284, 2290, 2299, 2301, 2301, 2302, 2302,
- 2304, 2322, 2321, 2367, 2366, 2372, 2372, 2373, 2379, 2379,
- 2380, 2380, 2380, 2380, 2382, 2388, 2397, 2400, 2400, 2401,
- 2401, 2402, 2402, 2403, 2403, 2404, 2404, 2405, 2405, 2406,
- 2407, 2408, 2408, 2409, 2409, 2410, 2410, 2411, 2411, 2412,
- 2412, 2413, 2413, 2414, 2414, 2415, 2415, 2416, 2416, 2417,
- 2417, 2418, 2418, 2419, 2420, 2420, 2421, 2422, 2423, 2423,
- 2424, 2424, 2425, 2426, 2427, 2428, 2428, 2429, 2432, 2437,
- 2443, 2449, 2455, 2460, 2465, 2470, 2475, 2480, 2485, 2490,
- 2495, 2500, 2505, 2510, 2515, 2520, 2525, 2531, 2542, 2547,
- 2552, 2557, 2562, 2567, 2570, 2575, 2578, 2583, 2588, 2593,
- 2598, 2603, 2608, 2613, 2618, 2623, 2628, 2633, 2638, 2647,
- 2656, 2661, 2666, 2672, 2671, 2676, 2676, 2677, 2680, 2683,
- 2686, 2689, 2692, 2695, 2698, 2701, 2704, 2707, 2710, 2713,
- 2716, 2719, 2722, 2725, 2728, 2731, 2734, 2740, 2739, 2744,
- 2744, 2745, 2748, 2751, 2754, 2757, 2760, 2763, 2766, 2769,
- 2772, 2775, 2778, 2781, 2784, 2787, 2790, 2793, 2796, 2799,
- 2802, 2807, 2812, 2817, 2826, 2829, 2829, 2830, 2831, 2831,
- 2832, 2832, 2833, 2833, 2834, 2835, 2835, 2836, 2837, 2837,
- 2838, 2838, 2840, 2845, 2850, 2855, 2860, 2865, 2870, 2875,
- 2880, 2885, 2890, 2895, 2900, 2905, 2913, 2916, 2916, 2917,
- 2917, 2918, 2919, 2919, 2920, 2921, 2923, 2929, 2935, 2944,
- 2958, 2964
+ 0, 364, 364, 365, 368, 369, 370, 371, 372, 373,
+ 374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
+ 384, 385, 386, 387, 388, 389, 393, 393, 394, 398,
+ 402, 406, 410, 414, 418, 422, 428, 428, 429, 430,
+ 431, 432, 439, 442, 442, 443, 443, 443, 445, 451,
+ 458, 460, 460, 461, 461, 462, 462, 463, 463, 464,
+ 464, 465, 465, 466, 466, 467, 467, 468, 468, 469,
+ 470, 473, 474, 476, 476, 477, 483, 491, 491, 492,
+ 498, 506, 548, 607, 635, 643, 658, 673, 682, 696,
+ 705, 733, 763, 788, 810, 832, 841, 843, 843, 844,
+ 844, 845, 845, 847, 856, 865, 877, 878, 878, 880,
+ 880, 881, 883, 890, 890, 903, 904, 906, 906, 907,
+ 907, 909, 917, 920, 926, 925, 931, 931, 932, 936,
+ 940, 944, 948, 952, 956, 967, 966, 1043, 1043, 1044,
+ 1044, 1044, 1045, 1045, 1045, 1046, 1046, 1046, 1048, 1054,
+ 1060, 1066, 1077, 1083, 1090, 1089, 1095, 1095, 1096, 1100,
+ 1104, 1108, 1112, 1116, 1120, 1124, 1128, 1132, 1136, 1140,
+ 1144, 1148, 1152, 1156, 1160, 1164, 1168, 1172, 1179, 1178,
+ 1184, 1184, 1185, 1189, 1193, 1197, 1201, 1205, 1209, 1213,
+ 1217, 1221, 1225, 1229, 1233, 1237, 1241, 1245, 1249, 1253,
+ 1257, 1268, 1267, 1328, 1328, 1329, 1330, 1330, 1331, 1332,
+ 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1339, 1340, 1341,
+ 1342, 1343, 1345, 1351, 1357, 1363, 1369, 1375, 1381, 1387,
+ 1393, 1399, 1406, 1412, 1418, 1424, 1433, 1443, 1442, 1448,
+ 1448, 1449, 1453, 1464, 1463, 1470, 1469, 1474, 1474, 1475,
+ 1479, 1483, 1489, 1489, 1490, 1490, 1490, 1490, 1490, 1492,
+ 1492, 1494, 1494, 1496, 1510, 1530, 1536, 1546, 1545, 1587,
+ 1587, 1588, 1588, 1588, 1588, 1589, 1589, 1589, 1590, 1590,
+ 1592, 1598, 1604, 1610, 1622, 1621, 1627, 1627, 1628, 1632,
+ 1636, 1640, 1644, 1648, 1652, 1656, 1660, 1664, 1670, 1684,
+ 1693, 1707, 1706, 1721, 1721, 1722, 1722, 1722, 1722, 1724,
+ 1730, 1736, 1745, 1747, 1747, 1748, 1748, 1750, 1766, 1765,
+ 1790, 1790, 1791, 1791, 1791, 1791, 1793, 1799, 1819, 1818,
+ 1824, 1824, 1825, 1829, 1833, 1837, 1841, 1845, 1849, 1853,
+ 1857, 1861, 1871, 1870, 1891, 1891, 1892, 1892, 1892, 1894,
+ 1901, 1900, 1906, 1906, 1907, 1911, 1915, 1919, 1923, 1927,
+ 1931, 1935, 1939, 1943, 1953, 1952, 2018, 2018, 2019, 2019,
+ 2019, 2020, 2020, 2021, 2021, 2021, 2022, 2022, 2022, 2023,
+ 2023, 2024, 2026, 2032, 2038, 2044, 2057, 2070, 2076, 2080,
+ 2089, 2088, 2093, 2093, 2094, 2098, 2104, 2115, 2121, 2127,
+ 2133, 2149, 2148, 2211, 2210, 2216, 2216, 2217, 2223, 2223,
+ 2224, 2224, 2224, 2224, 2226, 2246, 2256, 2255, 2282, 2282,
+ 2283, 2283, 2283, 2285, 2291, 2300, 2302, 2302, 2303, 2303,
+ 2305, 2323, 2322, 2368, 2367, 2373, 2373, 2374, 2380, 2380,
+ 2381, 2381, 2381, 2381, 2383, 2389, 2398, 2401, 2401, 2402,
+ 2402, 2403, 2403, 2404, 2404, 2405, 2405, 2406, 2406, 2407,
+ 2408, 2409, 2409, 2410, 2410, 2411, 2411, 2412, 2412, 2413,
+ 2413, 2414, 2414, 2415, 2416, 2416, 2417, 2417, 2418, 2418,
+ 2419, 2419, 2420, 2420, 2421, 2422, 2422, 2423, 2424, 2425,
+ 2425, 2426, 2426, 2427, 2428, 2429, 2430, 2430, 2431, 2434,
+ 2439, 2445, 2451, 2457, 2462, 2467, 2472, 2477, 2482, 2487,
+ 2492, 2497, 2502, 2507, 2512, 2517, 2522, 2527, 2533, 2544,
+ 2549, 2554, 2559, 2564, 2569, 2572, 2577, 2580, 2585, 2590,
+ 2595, 2600, 2605, 2610, 2615, 2620, 2625, 2636, 2641, 2646,
+ 2651, 2660, 2669, 2674, 2679, 2685, 2684, 2689, 2689, 2690,
+ 2693, 2696, 2699, 2702, 2705, 2708, 2711, 2714, 2717, 2720,
+ 2723, 2726, 2729, 2732, 2735, 2738, 2741, 2744, 2747, 2753,
+ 2752, 2757, 2757, 2758, 2761, 2764, 2767, 2770, 2773, 2776,
+ 2779, 2782, 2785, 2788, 2791, 2794, 2797, 2800, 2803, 2806,
+ 2809, 2812, 2815, 2820, 2825, 2830, 2839, 2842, 2842, 2843,
+ 2844, 2844, 2845, 2845, 2846, 2846, 2847, 2848, 2848, 2849,
+ 2850, 2850, 2851, 2851, 2853, 2858, 2863, 2868, 2873, 2878,
+ 2883, 2888, 2893, 2898, 2903, 2908, 2913, 2918, 2926, 2929,
+ 2929, 2930, 2930, 2931, 2932, 2932, 2933, 2934, 2936, 2942,
+ 2948, 2957, 2971, 2977
};
#endif
@@ -1364,10 +1357,10 @@ static const char *const yytname[] =
"LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_OPER",
"MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
"MAX_NICK_CHANGES", "MAX_NICK_LENGTH", "MAX_NICK_TIME", "MAX_NUMBER",
- "MAX_TARGETS", "MAX_TOPIC_LENGTH", "MAX_WATCH", "MIN_NONWILDCARD",
- "MIN_NONWILDCARD_SIMPLE", "MIN_IDLE", "MAX_IDLE", "RANDOM_IDLE",
- "HIDE_IDLE_FROM_OPERS", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
- "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
+ "MAX_TARGETS", "MAX_TOPIC_LENGTH", "MAX_WATCH", "MESSAGE_LOCALE",
+ "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE", "MIN_IDLE", "MAX_IDLE",
+ "RANDOM_IDLE", "HIDE_IDLE_FROM_OPERS", "MODULE", "MODULES", "NAME",
+ "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
"NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
"NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPERATOR",
"OPERS_BYPASS_CALLERID", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
@@ -1466,17 +1459,17 @@ static const char *const yytname[] =
"general_opers_bypass_callerid", "general_pace_wait_simple",
"general_short_motd", "general_no_oper_flood",
"general_true_no_oper_flood", "general_oper_pass_resv",
- "general_dots_in_ident", "general_max_targets", "general_use_egd",
- "general_egdpool_path", "general_services_name", "general_ping_cookie",
- "general_disable_auth", "general_throttle_time", "general_oper_umodes",
- "$@25", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
- "$@26", "umode_items", "umode_item", "general_min_nonwildcard",
- "general_min_nonwildcard_simple", "general_default_floodcount",
- "channel_entry", "channel_items", "channel_item",
- "channel_disable_fake_channels", "channel_restrict_channels",
- "channel_knock_delay", "channel_knock_delay_channel",
- "channel_max_chans_per_user", "channel_max_chans_per_oper",
- "channel_quiet_on_ban", "channel_max_bans",
+ "general_message_locale", "general_dots_in_ident", "general_max_targets",
+ "general_use_egd", "general_egdpool_path", "general_services_name",
+ "general_ping_cookie", "general_disable_auth", "general_throttle_time",
+ "general_oper_umodes", "$@25", "umode_oitems", "umode_oitem",
+ "general_oper_only_umodes", "$@26", "umode_items", "umode_item",
+ "general_min_nonwildcard", "general_min_nonwildcard_simple",
+ "general_default_floodcount", "channel_entry", "channel_items",
+ "channel_item", "channel_disable_fake_channels",
+ "channel_restrict_channels", "channel_knock_delay",
+ "channel_knock_delay_channel", "channel_max_chans_per_user",
+ "channel_max_chans_per_oper", "channel_quiet_on_ban", "channel_max_bans",
"channel_default_split_user_count", "channel_default_split_server_count",
"channel_no_create_on_split", "channel_no_join_on_split",
"channel_jflood_count", "channel_jflood_time", "serverhide_entry",
@@ -1514,78 +1507,78 @@ static const yytype_uint16 yytoknum[] =
445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
- 475, 476, 59, 125, 123, 61, 44
+ 475, 476, 477, 59, 125, 123, 61, 44
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint16 yyr1[] =
{
- 0, 227, 228, 228, 229, 229, 229, 229, 229, 229,
- 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
- 229, 229, 229, 229, 229, 229, 230, 230, 231, 231,
- 231, 231, 231, 231, 231, 231, 232, 232, 233, 233,
- 233, 233, 234, 235, 235, 236, 236, 236, 237, 238,
- 239, 240, 240, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 242, 243, 244, 244, 245, 245, 246, 246, 247,
- 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
- 257, 258, 259, 260, 261, 262, 263, 264, 264, 265,
- 265, 265, 265, 266, 267, 268, 269, 270, 270, 271,
- 271, 271, 272, 274, 273, 275, 275, 276, 276, 276,
- 276, 277, 278, 278, 280, 279, 281, 281, 282, 282,
- 282, 282, 282, 282, 282, 284, 283, 285, 285, 286,
- 286, 286, 286, 286, 286, 286, 286, 286, 287, 288,
- 289, 290, 291, 292, 294, 293, 295, 295, 296, 296,
- 296, 296, 296, 296, 296, 296, 296, 296, 296, 296,
- 296, 296, 296, 296, 296, 296, 296, 296, 298, 297,
- 299, 299, 300, 300, 300, 300, 300, 300, 300, 300,
- 300, 300, 300, 300, 300, 300, 300, 300, 300, 300,
- 300, 302, 301, 303, 303, 304, 304, 304, 304, 304,
- 304, 304, 304, 304, 304, 304, 304, 304, 304, 304,
- 304, 304, 305, 306, 307, 308, 309, 310, 311, 312,
- 313, 314, 315, 316, 317, 318, 319, 321, 320, 322,
- 322, 323, 323, 325, 324, 327, 326, 328, 328, 329,
- 329, 329, 330, 330, 331, 331, 331, 331, 331, 333,
- 332, 334, 334, 335, 335, 336, 337, 339, 338, 340,
- 340, 341, 341, 341, 341, 341, 341, 341, 341, 341,
- 342, 343, 344, 345, 347, 346, 348, 348, 349, 349,
- 349, 349, 349, 349, 349, 349, 349, 349, 350, 351,
- 352, 354, 353, 355, 355, 356, 356, 356, 356, 357,
- 358, 359, 360, 361, 361, 362, 362, 363, 365, 364,
- 366, 366, 367, 367, 367, 367, 368, 369, 371, 370,
- 372, 372, 373, 373, 373, 373, 373, 373, 373, 373,
- 373, 373, 375, 374, 376, 376, 377, 377, 377, 378,
- 380, 379, 381, 381, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 384, 383, 385, 385, 386, 386,
- 386, 386, 386, 386, 386, 386, 386, 386, 386, 386,
- 386, 386, 387, 388, 389, 390, 391, 392, 393, 393,
- 395, 394, 396, 396, 397, 397, 398, 399, 400, 401,
- 402, 404, 403, 406, 405, 407, 407, 408, 409, 409,
- 410, 410, 410, 410, 411, 412, 414, 413, 415, 415,
- 416, 416, 416, 417, 418, 419, 420, 420, 421, 421,
- 422, 424, 423, 426, 425, 427, 427, 428, 429, 429,
- 430, 430, 430, 430, 431, 432, 433, 434, 434, 435,
- 435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
- 435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
- 435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
- 435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
- 435, 435, 435, 435, 435, 435, 435, 435, 436, 437,
+ 0, 228, 229, 229, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 231, 231, 232, 232,
+ 232, 232, 232, 232, 232, 232, 233, 233, 234, 234,
+ 234, 234, 235, 236, 236, 237, 237, 237, 238, 239,
+ 240, 241, 241, 242, 242, 242, 242, 242, 242, 242,
+ 242, 242, 242, 242, 242, 242, 242, 242, 242, 242,
+ 242, 243, 244, 245, 245, 246, 246, 247, 247, 248,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
+ 258, 259, 260, 261, 262, 263, 264, 265, 265, 266,
+ 266, 266, 266, 267, 268, 269, 270, 271, 271, 272,
+ 272, 272, 273, 275, 274, 276, 276, 277, 277, 277,
+ 277, 278, 279, 279, 281, 280, 282, 282, 283, 283,
+ 283, 283, 283, 283, 283, 285, 284, 286, 286, 287,
+ 287, 287, 287, 287, 287, 287, 287, 287, 288, 289,
+ 290, 291, 292, 293, 295, 294, 296, 296, 297, 297,
+ 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
+ 297, 297, 297, 297, 297, 297, 297, 297, 299, 298,
+ 300, 300, 301, 301, 301, 301, 301, 301, 301, 301,
+ 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
+ 301, 303, 302, 304, 304, 305, 305, 305, 305, 305,
+ 305, 305, 305, 305, 305, 305, 305, 305, 305, 305,
+ 305, 305, 306, 307, 308, 309, 310, 311, 312, 313,
+ 314, 315, 316, 317, 318, 319, 320, 322, 321, 323,
+ 323, 324, 324, 326, 325, 328, 327, 329, 329, 330,
+ 330, 330, 331, 331, 332, 332, 332, 332, 332, 334,
+ 333, 335, 335, 336, 336, 337, 338, 340, 339, 341,
+ 341, 342, 342, 342, 342, 342, 342, 342, 342, 342,
+ 343, 344, 345, 346, 348, 347, 349, 349, 350, 350,
+ 350, 350, 350, 350, 350, 350, 350, 350, 351, 352,
+ 353, 355, 354, 356, 356, 357, 357, 357, 357, 358,
+ 359, 360, 361, 362, 362, 363, 363, 364, 366, 365,
+ 367, 367, 368, 368, 368, 368, 369, 370, 372, 371,
+ 373, 373, 374, 374, 374, 374, 374, 374, 374, 374,
+ 374, 374, 376, 375, 377, 377, 378, 378, 378, 379,
+ 381, 380, 382, 382, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 385, 384, 386, 386, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 388, 389, 390, 391, 392, 393, 394, 394,
+ 396, 395, 397, 397, 398, 398, 399, 400, 401, 402,
+ 403, 405, 404, 407, 406, 408, 408, 409, 410, 410,
+ 411, 411, 411, 411, 412, 413, 415, 414, 416, 416,
+ 417, 417, 417, 418, 419, 420, 421, 421, 422, 422,
+ 423, 425, 424, 427, 426, 428, 428, 429, 430, 430,
+ 431, 431, 431, 431, 432, 433, 434, 435, 435, 436,
+ 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
+ 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
+ 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
+ 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
+ 436, 436, 436, 436, 436, 436, 436, 436, 436, 437,
438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
- 458, 459, 460, 461, 461, 462, 462, 463, 464, 465,
+ 458, 459, 460, 461, 462, 462, 463, 463, 464, 465,
466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
- 476, 477, 478, 480, 479, 481, 481, 482, 482, 482,
- 482, 482, 482, 482, 482, 482, 482, 482, 482, 482,
- 482, 482, 482, 482, 482, 482, 482, 484, 483, 485,
- 485, 486, 486, 486, 486, 486, 486, 486, 486, 486,
- 486, 486, 486, 486, 486, 486, 486, 486, 486, 486,
- 486, 487, 488, 489, 490, 491, 491, 492, 492, 492,
- 492, 492, 492, 492, 492, 492, 492, 492, 492, 492,
- 492, 492, 493, 494, 495, 496, 497, 498, 499, 500,
- 501, 502, 503, 504, 505, 506, 507, 508, 508, 509,
- 509, 509, 509, 509, 509, 509, 510, 511, 512, 513,
- 514, 515
+ 476, 477, 478, 479, 480, 482, 481, 483, 483, 484,
+ 484, 484, 484, 484, 484, 484, 484, 484, 484, 484,
+ 484, 484, 484, 484, 484, 484, 484, 484, 484, 486,
+ 485, 487, 487, 488, 488, 488, 488, 488, 488, 488,
+ 488, 488, 488, 488, 488, 488, 488, 488, 488, 488,
+ 488, 488, 488, 489, 490, 491, 492, 493, 493, 494,
+ 494, 494, 494, 494, 494, 494, 494, 494, 494, 494,
+ 494, 494, 494, 494, 495, 496, 497, 498, 499, 500,
+ 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
+ 510, 511, 511, 511, 511, 511, 511, 511, 512, 513,
+ 514, 515, 516, 517
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -1640,22 +1633,22 @@ static const yytype_uint8 yyr2[] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 4, 4,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 0, 5, 3, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 0, 5, 3,
+ 4, 4, 4, 4, 4, 0, 5, 3, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
+ 5, 3, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 4, 4, 4, 5, 2, 1, 1, 1, 1,
+ 1, 1, 1, 4, 4, 4, 5, 2, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 5, 2, 1, 1,
- 1, 1, 1, 1, 1, 1, 4, 4, 4, 4,
- 4, 4
+ 1, 1, 1, 1, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 5, 2,
+ 1, 1, 1, 1, 1, 1, 1, 1, 4, 4,
+ 4, 4, 4, 4
};
/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
@@ -1670,326 +1663,326 @@ static const yytype_uint16 yydefact[] =
20, 22, 21, 7, 12, 24, 25, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 98, 99, 101, 100, 611, 0, 0, 0,
+ 0, 0, 98, 99, 101, 100, 613, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 596, 610, 606, 598, 599, 600, 601, 602,
- 597, 603, 604, 605, 607, 608, 609, 0, 0, 0,
- 429, 0, 0, 427, 428, 0, 497, 0, 0, 0,
+ 0, 0, 598, 612, 608, 600, 601, 602, 603, 604,
+ 599, 605, 606, 607, 609, 610, 611, 0, 0, 0,
+ 429, 0, 0, 427, 428, 0, 498, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 567, 0, 543, 0, 0,
+ 0, 0, 0, 0, 0, 0, 569, 0, 545, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 448, 495, 489, 490,
- 491, 492, 493, 488, 459, 449, 450, 483, 451, 452,
- 453, 454, 455, 456, 457, 458, 485, 460, 461, 494,
- 463, 468, 464, 466, 465, 478, 479, 467, 469, 470,
- 471, 472, 462, 474, 475, 476, 496, 486, 487, 484,
- 477, 473, 481, 482, 480, 0, 0, 0, 0, 0,
- 0, 108, 109, 110, 0, 0, 0, 0, 0, 44,
- 45, 46, 0, 0, 635, 0, 0, 0, 0, 0,
- 0, 0, 628, 629, 630, 633, 631, 632, 634, 0,
+ 0, 0, 0, 0, 0, 0, 0, 448, 496, 490,
+ 491, 492, 493, 494, 489, 459, 449, 450, 484, 451,
+ 452, 453, 454, 455, 456, 457, 458, 486, 460, 461,
+ 495, 463, 468, 464, 466, 465, 479, 480, 467, 469,
+ 470, 471, 472, 473, 462, 475, 476, 477, 497, 487,
+ 488, 485, 478, 474, 482, 483, 481, 0, 0, 0,
+ 0, 0, 0, 108, 109, 110, 0, 0, 0, 0,
+ 0, 44, 45, 46, 0, 0, 637, 0, 0, 0,
+ 0, 0, 0, 0, 630, 631, 632, 635, 633, 634,
+ 636, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 52, 67,
- 68, 66, 63, 62, 69, 53, 65, 56, 57, 58,
- 54, 64, 59, 60, 61, 55, 0, 0, 316, 0,
- 0, 314, 315, 102, 0, 0, 0, 0, 97, 0,
+ 52, 67, 68, 66, 63, 62, 69, 53, 65, 56,
+ 57, 58, 54, 64, 59, 60, 61, 55, 0, 0,
+ 316, 0, 0, 314, 315, 102, 0, 0, 0, 0,
+ 97, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 597, 0, 0, 0,
+ 0, 237, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 204, 205, 208, 210, 211,
+ 212, 213, 214, 215, 216, 217, 206, 207, 209, 218,
+ 219, 220, 0, 0, 0, 0, 0, 390, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 367, 368, 369,
+ 370, 371, 372, 374, 373, 376, 380, 377, 378, 379,
+ 375, 422, 0, 0, 0, 419, 420, 421, 0, 0,
+ 426, 443, 0, 0, 433, 442, 0, 439, 440, 441,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 595, 0, 0, 0, 0, 237,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 204, 205, 208, 210, 211, 212, 213,
- 214, 215, 216, 217, 206, 207, 209, 218, 219, 220,
- 0, 0, 0, 0, 0, 390, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 367, 368, 369, 370, 371,
- 372, 374, 373, 376, 380, 377, 378, 379, 375, 422,
- 0, 0, 0, 419, 420, 421, 0, 0, 426, 443,
- 0, 0, 433, 442, 0, 439, 440, 441, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 447, 0, 0, 0, 284, 0, 0, 0, 0, 0,
+ 0, 270, 271, 272, 273, 278, 274, 275, 276, 277,
+ 413, 0, 403, 0, 412, 0, 409, 410, 411, 0,
+ 245, 0, 0, 0, 255, 0, 253, 254, 256, 257,
+ 111, 0, 0, 107, 0, 47, 0, 0, 0, 43,
+ 0, 0, 0, 178, 0, 0, 0, 154, 0, 0,
+ 138, 139, 140, 141, 144, 145, 143, 142, 146, 0,
+ 0, 0, 0, 0, 304, 305, 306, 307, 0, 0,
+ 0, 0, 0, 0, 0, 629, 70, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 447, 0, 0,
- 0, 284, 0, 0, 0, 0, 0, 0, 270, 271,
- 272, 273, 278, 274, 275, 276, 277, 413, 0, 403,
- 0, 412, 0, 409, 410, 411, 0, 245, 0, 0,
- 0, 255, 0, 253, 254, 256, 257, 111, 0, 0,
- 107, 0, 47, 0, 0, 0, 43, 0, 0, 0,
- 178, 0, 0, 0, 154, 0, 0, 138, 139, 140,
- 141, 144, 145, 143, 142, 146, 0, 0, 0, 0,
- 0, 304, 305, 306, 307, 0, 0, 0, 0, 0,
- 0, 0, 627, 70, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 51, 0, 0, 328, 0,
+ 0, 321, 322, 323, 324, 0, 0, 350, 0, 345,
+ 346, 347, 0, 0, 313, 0, 0, 0, 96, 0,
+ 0, 0, 26, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 596, 221, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 51, 0, 0, 328, 0, 0, 321, 322,
- 323, 324, 0, 0, 350, 0, 345, 346, 347, 0,
- 0, 313, 0, 0, 0, 96, 0, 0, 0, 26,
+ 0, 0, 0, 203, 381, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 366,
+ 0, 0, 0, 418, 0, 425, 0, 0, 0, 0,
+ 438, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 594, 221, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 203, 381, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 366, 0, 0, 0,
- 418, 0, 425, 0, 0, 0, 0, 438, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 446, 279, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 269, 0, 0, 0, 0, 408, 258,
+ 0, 0, 0, 0, 0, 252, 0, 106, 0, 0,
+ 0, 42, 147, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 137, 308, 0, 0, 0, 0, 303, 0,
+ 0, 0, 0, 0, 0, 628, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 75, 76, 0, 74,
+ 79, 80, 0, 78, 0, 0, 0, 0, 0, 50,
+ 325, 0, 0, 0, 0, 320, 348, 0, 0, 0,
+ 344, 0, 312, 105, 104, 103, 623, 622, 614, 26,
+ 26, 26, 26, 26, 26, 26, 28, 27, 616, 617,
+ 621, 619, 618, 624, 625, 626, 627, 620, 615, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 36, 0, 0, 202, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 446, 279,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 269,
- 0, 0, 0, 0, 408, 258, 0, 0, 0, 0,
- 0, 252, 0, 106, 0, 0, 0, 42, 147, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 137, 308,
- 0, 0, 0, 0, 303, 0, 0, 0, 0, 0,
- 0, 626, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 75, 76, 0, 74, 79, 80, 0, 78,
- 0, 0, 0, 0, 0, 50, 325, 0, 0, 0,
- 0, 320, 348, 0, 0, 0, 344, 0, 312, 105,
- 104, 103, 621, 620, 612, 26, 26, 26, 26, 26,
- 26, 26, 28, 27, 614, 615, 619, 617, 616, 622,
- 623, 624, 625, 618, 613, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,
- 0, 0, 202, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 365, 0, 0,
- 417, 430, 0, 0, 0, 432, 510, 514, 528, 593,
- 541, 508, 535, 538, 509, 500, 499, 501, 502, 503,
- 517, 506, 507, 518, 505, 513, 512, 511, 536, 498,
- 591, 592, 532, 529, 578, 571, 588, 589, 572, 573,
- 574, 575, 583, 576, 586, 590, 579, 584, 580, 585,
- 577, 582, 581, 587, 0, 570, 534, 553, 547, 564,
- 565, 548, 549, 550, 551, 559, 552, 562, 566, 555,
- 560, 556, 561, 554, 558, 557, 563, 0, 546, 527,
- 530, 540, 504, 531, 520, 525, 526, 523, 524, 521,
- 522, 516, 515, 539, 542, 533, 537, 519, 0, 0,
- 0, 0, 0, 0, 0, 0, 268, 0, 0, 0,
- 402, 0, 0, 0, 263, 259, 262, 244, 112, 0,
- 0, 124, 0, 0, 116, 117, 119, 118, 48, 49,
- 0, 0, 0, 0, 0, 0, 0, 0, 136, 0,
- 0, 0, 302, 636, 640, 638, 641, 637, 639, 87,
- 95, 93, 94, 85, 89, 88, 82, 81, 83, 71,
- 0, 72, 0, 86, 84, 92, 90, 91, 0, 0,
- 0, 319, 0, 0, 343, 317, 29, 30, 31, 32,
- 33, 34, 35, 232, 233, 225, 241, 242, 0, 240,
- 227, 229, 228, 226, 235, 236, 222, 234, 224, 223,
- 36, 36, 36, 38, 37, 230, 231, 386, 388, 389,
- 399, 396, 394, 395, 0, 393, 383, 397, 398, 382,
- 387, 385, 400, 384, 423, 424, 444, 445, 437, 0,
- 436, 568, 0, 544, 0, 282, 283, 292, 289, 294,
- 291, 290, 297, 293, 295, 288, 296, 0, 287, 281,
- 300, 299, 298, 280, 415, 407, 0, 406, 414, 250,
- 251, 249, 0, 248, 266, 265, 0, 0, 0, 120,
- 0, 0, 0, 0, 115, 153, 151, 193, 190, 189,
- 182, 184, 200, 194, 197, 192, 183, 198, 186, 195,
- 199, 187, 196, 191, 185, 188, 0, 181, 148, 150,
- 152, 164, 158, 175, 176, 159, 160, 161, 162, 170,
- 163, 173, 177, 166, 171, 167, 172, 165, 169, 168,
- 174, 0, 157, 149, 310, 311, 309, 73, 77, 326,
- 332, 338, 341, 334, 340, 335, 339, 337, 333, 336,
- 0, 331, 327, 349, 354, 360, 363, 356, 362, 357,
- 361, 359, 355, 358, 0, 353, 238, 0, 39, 40,
- 41, 391, 0, 434, 0, 569, 545, 285, 0, 404,
- 0, 246, 0, 264, 261, 260, 0, 0, 0, 0,
- 114, 179, 0, 155, 0, 329, 0, 351, 0, 239,
- 392, 435, 286, 405, 247, 121, 130, 133, 132, 129,
- 134, 131, 128, 0, 127, 123, 122, 180, 156, 330,
- 352, 125, 0, 126
+ 0, 365, 0, 0, 417, 430, 0, 0, 0, 432,
+ 511, 515, 529, 595, 543, 509, 537, 540, 510, 501,
+ 500, 502, 503, 504, 518, 507, 508, 519, 506, 514,
+ 513, 512, 538, 499, 536, 593, 594, 533, 530, 580,
+ 573, 590, 591, 574, 575, 576, 577, 585, 578, 588,
+ 592, 581, 586, 582, 587, 579, 584, 583, 589, 0,
+ 572, 535, 555, 549, 566, 567, 550, 551, 552, 553,
+ 561, 554, 564, 568, 557, 562, 558, 563, 556, 560,
+ 559, 565, 0, 548, 528, 531, 542, 505, 532, 521,
+ 526, 527, 524, 525, 522, 523, 517, 516, 541, 544,
+ 534, 539, 520, 0, 0, 0, 0, 0, 0, 0,
+ 0, 268, 0, 0, 0, 402, 0, 0, 0, 263,
+ 259, 262, 244, 112, 0, 0, 124, 0, 0, 116,
+ 117, 119, 118, 48, 49, 0, 0, 0, 0, 0,
+ 0, 0, 0, 136, 0, 0, 0, 302, 638, 642,
+ 640, 643, 639, 641, 87, 95, 93, 94, 85, 89,
+ 88, 82, 81, 83, 71, 0, 72, 0, 86, 84,
+ 92, 90, 91, 0, 0, 0, 319, 0, 0, 343,
+ 317, 29, 30, 31, 32, 33, 34, 35, 232, 233,
+ 225, 241, 242, 0, 240, 227, 229, 228, 226, 235,
+ 236, 222, 234, 224, 223, 36, 36, 36, 38, 37,
+ 230, 231, 386, 388, 389, 399, 396, 394, 395, 0,
+ 393, 383, 397, 398, 382, 387, 385, 400, 384, 423,
+ 424, 444, 445, 437, 0, 436, 570, 0, 546, 0,
+ 282, 283, 292, 289, 294, 291, 290, 297, 293, 295,
+ 288, 296, 0, 287, 281, 300, 299, 298, 280, 415,
+ 407, 0, 406, 414, 250, 251, 249, 0, 248, 266,
+ 265, 0, 0, 0, 120, 0, 0, 0, 0, 115,
+ 153, 151, 193, 190, 189, 182, 184, 200, 194, 197,
+ 192, 183, 198, 186, 195, 199, 187, 196, 191, 185,
+ 188, 0, 181, 148, 150, 152, 164, 158, 175, 176,
+ 159, 160, 161, 162, 170, 163, 173, 177, 166, 171,
+ 167, 172, 165, 169, 168, 174, 0, 157, 149, 310,
+ 311, 309, 73, 77, 326, 332, 338, 341, 334, 340,
+ 335, 339, 337, 333, 336, 0, 331, 327, 349, 354,
+ 360, 363, 356, 362, 357, 361, 359, 355, 358, 0,
+ 353, 238, 0, 39, 40, 41, 391, 0, 434, 0,
+ 571, 547, 285, 0, 404, 0, 246, 0, 264, 261,
+ 260, 0, 0, 0, 0, 114, 179, 0, 155, 0,
+ 329, 0, 351, 0, 239, 392, 435, 286, 405, 247,
+ 121, 130, 133, 132, 129, 134, 131, 128, 0, 127,
+ 123, 122, 180, 156, 330, 352, 125, 0, 126
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 1, 24, 792, 793, 1043, 1044, 25, 228, 229,
- 230, 231, 26, 267, 268, 269, 270, 754, 755, 758,
- 759, 271, 272, 273, 274, 275, 276, 277, 278, 279,
- 280, 281, 282, 283, 284, 285, 27, 71, 72, 73,
- 74, 75, 28, 220, 221, 222, 223, 224, 963, 964,
- 965, 966, 967, 1111, 1243, 1244, 29, 60, 506, 507,
- 508, 509, 510, 511, 512, 513, 514, 725, 1161, 1162,
- 515, 721, 1136, 1137, 30, 49, 332, 333, 334, 335,
- 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
- 346, 347, 348, 349, 596, 1028, 1029, 31, 57, 481,
- 706, 1102, 1103, 482, 483, 484, 1108, 955, 956, 485,
- 486, 32, 55, 457, 458, 459, 460, 461, 462, 463,
- 692, 1087, 1088, 464, 465, 466, 33, 61, 520, 521,
- 522, 523, 524, 34, 290, 291, 292, 35, 64, 557,
- 558, 559, 560, 561, 768, 1180, 1181, 36, 65, 565,
- 566, 567, 568, 774, 1194, 1195, 37, 50, 364, 365,
- 366, 367, 368, 369, 370, 371, 372, 373, 616, 1054,
- 1055, 374, 375, 376, 377, 378, 38, 56, 471, 701,
- 1096, 1097, 472, 473, 474, 475, 39, 51, 382, 383,
- 384, 385, 40, 112, 113, 114, 41, 53, 393, 635,
- 1069, 1070, 394, 395, 396, 397, 42, 165, 166, 167,
- 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
- 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
- 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
- 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
- 208, 209, 210, 428, 917, 918, 211, 426, 894, 895,
- 212, 213, 214, 43, 91, 92, 93, 94, 95, 96,
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
- 44, 241, 242, 243, 244, 245, 246, 247, 248
+ -1, 1, 24, 796, 797, 1048, 1049, 25, 230, 231,
+ 232, 233, 26, 269, 270, 271, 272, 758, 759, 762,
+ 763, 273, 274, 275, 276, 277, 278, 279, 280, 281,
+ 282, 283, 284, 285, 286, 287, 27, 71, 72, 73,
+ 74, 75, 28, 222, 223, 224, 225, 226, 968, 969,
+ 970, 971, 972, 1116, 1248, 1249, 29, 60, 509, 510,
+ 511, 512, 513, 514, 515, 516, 517, 729, 1166, 1167,
+ 518, 725, 1141, 1142, 30, 49, 334, 335, 336, 337,
+ 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
+ 348, 349, 350, 351, 599, 1033, 1034, 31, 57, 484,
+ 710, 1107, 1108, 485, 486, 487, 1113, 960, 961, 488,
+ 489, 32, 55, 460, 461, 462, 463, 464, 465, 466,
+ 696, 1092, 1093, 467, 468, 469, 33, 61, 523, 524,
+ 525, 526, 527, 34, 292, 293, 294, 35, 64, 560,
+ 561, 562, 563, 564, 772, 1185, 1186, 36, 65, 568,
+ 569, 570, 571, 778, 1199, 1200, 37, 50, 366, 367,
+ 368, 369, 370, 371, 372, 373, 374, 375, 619, 1059,
+ 1060, 376, 377, 378, 379, 380, 38, 56, 474, 705,
+ 1101, 1102, 475, 476, 477, 478, 39, 51, 384, 385,
+ 386, 387, 40, 112, 113, 114, 41, 53, 395, 638,
+ 1074, 1075, 396, 397, 398, 399, 42, 166, 167, 168,
+ 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
+ 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
+ 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
+ 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
+ 209, 210, 211, 212, 431, 922, 923, 213, 429, 899,
+ 900, 214, 215, 216, 43, 91, 92, 93, 94, 95,
+ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
+ 106, 44, 243, 244, 245, 246, 247, 248, 249, 250
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -820
+#define YYPACT_NINF -954
static const yytype_int16 yypact[] =
{
- -820, 585, -820, -131, -219, -213, -820, -820, -820, -202,
- -820, -195, -820, -820, -820, -178, -151, -820, -820, -149,
- -146, -820, -820, -130, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, 31, 836, -121,
- -118, -109, 27, -83, 358, -77, -68, -62, 63, 206,
- -59, -42, 495, 405, -37, -11, 18, -185, -155, -98,
- -9, 30, -820, -820, -820, -820, -820, 41, 43, 45,
- 56, 60, 67, 78, 80, 83, 88, 104, 107, 112,
- 129, 151, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, 629, 423, 59,
- -820, 133, 19, -820, -820, 11, -820, 138, 141, 142,
- 143, 147, 148, 150, 155, 157, 158, 160, 165, 169,
- 170, 171, 172, 180, 184, 185, 186, 187, 189, 190,
- 194, 195, 198, 200, 202, -820, 207, -820, 208, 210,
- 211, 217, 223, 224, 226, 227, 228, 229, 231, 232,
- 233, 236, 239, 240, 244, 125, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, 321, 176, 295, 14, 250,
- 76, -820, -820, -820, 105, 23, 251, 253, 25, -820,
- -820, -820, 471, 65, -820, 257, 258, 259, 262, 267,
- 272, 5, -820, -820, -820, -820, -820, -820, -820, 39,
- 273, 275, 279, 281, 283, 284, 286, 288, 289, 290,
- 293, 299, 300, 305, 306, 308, 310, 175, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, 7, 17, -820, 318,
- 40, -820, -820, -820, 254, 309, 428, 128, -820, 297,
- 447, 386, 449, 449, 450, 452, 455, 394, 396, 459,
- 449, 400, 404, 349, -820, 356, 354, 355, 359, -820,
- 362, 365, 368, 369, 370, 371, 373, 376, 380, 381,
- 382, 384, 8, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- 361, 385, 387, 389, 390, -820, 391, 392, 393, 395,
- 402, 403, 407, 409, 313, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- 411, 413, 20, -820, -820, -820, 489, 419, -820, -820,
- 417, 424, -820, -820, 24, -820, -820, -820, 463, 449,
- 449, 521, 486, 488, 553, 537, 494, 449, 497, 449,
- 557, 562, 563, 502, 504, 506, 449, 570, 571, 449,
- 572, 575, 576, 577, 516, 517, 460, 520, 462, 449,
- 449, 524, 529, 530, 531, -45, 174, 532, 533, 449,
- 449, 578, 449, 536, 538, 544, 490, -820, 492, 496,
- 499, -820, 508, 513, 514, 518, 522, 33, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, 523, -820,
- 525, -820, 37, -820, -820, -820, 493, -820, 526, 527,
- 528, -820, 15, -820, -820, -820, -820, -820, 547, 498,
- -820, 539, -820, 594, 597, 500, -820, 534, 541, 545,
- -820, 546, 551, 555, -820, 558, 16, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, 535, 559, 561, 564,
- 81, -820, -820, -820, -820, 579, 580, 620, 589, 607,
- 449, 565, -820, -820, 666, 624, 688, 695, 684, 685,
- 687, 690, 692, 694, 64, 204, 708, 712, 698, 713,
- 718, 625, -820, 626, 617, -820, 619, 44, -820, -820,
- -820, -820, 628, 627, -820, 52, -820, -820, -820, 731,
- 632, -820, 634, 637, 639, -820, 640, 642, 643, 584,
- 652, 653, 654, 655, 656, 657, 659, 662, 663, 664,
- 665, -820, -820, 784, 785, 449, 668, 786, 787, 790,
- 791, 449, 449, 774, 793, 795, 449, 796, 796, 679,
- -820, -820, 782, 162, 783, 740, 682, 792, 794, 797,
- 798, 804, 799, 800, 801, 691, -820, 802, 803, 693,
- -820, 696, -820, 805, 806, 701, 707, -820, 709, 710,
- 711, 716, 717, 719, 720, 721, 722, 723, 724, 725,
- 726, 729, 730, 732, 733, 734, 735, 736, 738, 739,
- 741, 742, 743, 744, 746, 747, 586, 748, 622, 749,
- 750, 751, 752, 753, 754, 755, 756, 757, 758, 759,
- 760, 761, 762, 763, 764, 765, 766, 767, -820, -820,
- 808, 768, 715, 813, 849, 840, 868, 869, 770, -820,
- 871, 769, 873, 775, -820, -820, 771, 876, 877, 896,
- 779, -820, 780, -820, 29, 781, 788, -820, -820, 882,
- 839, 789, 884, 885, 886, 807, 887, 809, -820, -820,
- 889, 890, 891, 811, -820, 812, 814, 815, 816, 817,
- 818, -820, 819, 820, 821, 822, 823, 824, 825, 826,
- 827, 828, -820, -820, -187, -820, -820, -820, -186, -820,
- 829, 830, 831, 832, 833, -820, -820, 893, 810, 894,
- 834, -820, -820, 895, 835, 837, -820, 841, -820, -820,
- -820, -820, -820, -820, -820, 449, 449, 449, 449, 449,
- 449, 449, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, 842, 843, 844, 270, 845,
- 846, 847, 848, 850, 851, 852, 853, 854, 855, 4,
- 856, 857, -820, 858, 859, 860, 861, 862, -4, 863,
- 864, 865, 866, 867, 870, 872, 874, -820, 875, 878,
- -820, -820, 879, 880, 892, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -179, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -159, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, 881, 883,
- 548, 888, 897, 898, 899, 900, -820, 901, 902, 903,
- -820, -2, 904, 905, 920, 686, -820, -820, -820, 906,
- 907, -820, 908, 97, -820, -820, -820, -820, -820, -820,
- 909, 912, 446, 913, 914, 915, 650, 916, -820, 917,
- 918, 919, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- 64, -820, 204, -820, -820, -820, -820, -820, 921, 491,
- 922, -820, 923, 680, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -154, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- 796, 796, 796, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -139, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -133,
- -820, -820, 586, -820, 622, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -26, -820, -820,
- -820, -820, -820, -820, -820, -820, -7, -820, -820, -820,
- -820, -820, 36, -820, -820, -820, 924, 896, 925, -820,
- 935, 926, -97, 927, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, 51, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, 54, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- 93, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, 99, -820, -820, 270, -820, -820,
- -820, -820, -4, -820, 892, -820, -820, -820, 548, -820,
- 902, -820, -2, -820, -820, -820, 928, 315, 930, 931,
- -820, -820, 446, -820, 650, -820, 491, -820, 680, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, 101, -820, -820, -820, -820, -820, -820,
- -820, -820, 315, -820
+ -954, 667, -954, -157, -216, -210, -954, -954, -954, -202,
+ -954, -199, -954, -954, -954, -196, -188, -954, -954, -183,
+ -169, -954, -954, -161, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, 23, 794, -150,
+ -147, -145, 12, -121, 408, -115, -105, -100, 50, 89,
+ -91, -75, 332, 324, -52, -45, 6, -53, -39, -19,
+ -3, 19, -954, -954, -954, -954, -954, 34, 37, 39,
+ 62, 69, 80, 83, 85, 97, 112, 118, 125, 131,
+ 142, 292, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, 621, 526, 7,
+ -954, 153, 18, -954, -954, 31, -954, 156, 161, 162,
+ 163, 165, 166, 169, 170, 171, 172, 174, 176, 177,
+ 179, 184, 186, 187, 197, 199, 200, 201, 203, 204,
+ 206, 209, 214, 215, 216, 218, -954, 219, -954, 220,
+ 221, 222, 239, 243, 247, 249, 250, 251, 255, 256,
+ 257, 258, 259, 260, 262, 264, 116, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, 438, 185, 27,
+ -14, 271, 45, -954, -954, -954, 17, 74, 272, 273,
+ 81, -954, -954, -954, 338, 123, -954, 275, 277, 278,
+ 279, 282, 283, 33, -954, -954, -954, -954, -954, -954,
+ -954, 92, 287, 288, 294, 297, 300, 304, 306, 307,
+ 308, 309, 310, 312, 314, 325, 327, 328, 329, 154,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, 10, 11,
+ -954, 331, 20, -954, -954, -954, 343, 387, 436, 157,
+ -954, 456, 461, 244, 471, 471, 474, 476, 478, 418,
+ 419, 483, 471, 422, 424, 369, -954, 370, 371, 373,
+ 375, -954, 376, 377, 381, 382, 384, 385, 388, 390,
+ 391, 399, 400, 404, 240, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, 372, 407, 409, 412, 413, -954, 416, 420,
+ 423, 427, 429, 433, 434, 435, 13, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, 437, 440, 4, -954, -954, -954, 490, 411,
+ -954, -954, 443, 446, -954, -954, 38, -954, -954, -954,
+ 460, 471, 471, 539, 487, 495, 540, 527, 497, 471,
+ 506, 471, 569, 570, 574, 511, 515, 519, 471, 582,
+ 586, 471, 587, 588, 572, 591, 595, 535, 542, 486,
+ 546, 488, 471, 471, 550, 551, 552, 553, -55, -15,
+ 554, 555, 471, 471, 600, 471, 557, 558, 559, 507,
+ -954, 508, 509, 510, -954, 513, 514, 518, 525, 532,
+ 21, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, 533, -954, 538, -954, 40, -954, -954, -954, 522,
+ -954, 548, 562, 566, -954, 16, -954, -954, -954, -954,
+ -954, 565, 543, -954, 516, -954, 610, 645, 549, -954,
+ 575, 567, 576, -954, 579, 580, 583, -954, 584, 59,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, 577,
+ 592, 596, 599, 60, -954, -954, -954, -954, 609, 611,
+ 654, 618, 647, 471, 594, -954, -954, 703, 660, 723,
+ 729, 714, 718, 721, 724, 726, 731, 181, 223, 732,
+ 735, 754, 740, 741, 642, -954, 643, 644, -954, 646,
+ 110, -954, -954, -954, -954, 652, 651, -954, 88, -954,
+ -954, -954, 755, 657, -954, 658, 659, 661, -954, 662,
+ 663, 664, 401, 665, 668, 669, 671, 674, 675, 676,
+ 677, 678, 679, 680, -954, -954, 774, 785, 471, 681,
+ 788, 799, 800, 801, 471, 471, 787, 806, 807, 471,
+ 808, 808, 691, -954, -954, 792, 35, 793, 750, 693,
+ 797, 798, 802, 804, 817, 805, 809, 810, 700, -954,
+ 811, 812, 701, -954, 706, -954, 813, 814, 704, 708,
+ -954, 715, 716, 717, 719, 720, 722, 725, 727, 728,
+ 730, 733, 734, 736, 737, 738, 739, 742, 743, 744,
+ 745, 746, 747, 748, 749, 751, 752, 753, 756, 757,
+ 573, 758, 607, 759, 760, 761, 762, 763, 764, 765,
+ 766, 767, 768, 769, 770, 771, 772, 773, 775, 776,
+ 777, 778, -954, -954, 818, 779, 780, 821, 842, 826,
+ 829, 831, 781, -954, 832, 782, 835, 784, -954, -954,
+ 783, 840, 841, 868, 789, -954, 790, -954, 32, 791,
+ 795, -954, -954, 854, 830, 796, 855, 879, 880, 803,
+ 882, 815, -954, -954, 887, 888, 892, 816, -954, 819,
+ 820, 822, 823, 824, 825, -954, 827, 828, 833, 834,
+ 836, 837, 838, 839, 843, 844, -954, -954, -192, -954,
+ -954, -954, -187, -954, 845, 846, 847, 848, 849, -954,
+ -954, 893, 850, 894, 851, -954, -954, 896, 852, 856,
+ -954, 857, -954, -954, -954, -954, -954, -954, -954, 471,
+ 471, 471, 471, 471, 471, 471, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, 858,
+ 859, 860, 284, 861, 862, 863, 864, 865, 866, 867,
+ 869, 870, 871, 87, 872, 873, -954, 874, 875, 876,
+ 877, 878, -4, 881, 883, 884, 885, 886, 889, 890,
+ 891, -954, 895, 897, -954, -954, 898, 899, 900, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -179,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -168, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, 901, 902, 547, 903, 904, 905, 906,
+ 907, -954, 908, 909, 910, -954, -26, 911, 912, 853,
+ 913, -954, -954, -954, 914, 915, -954, 916, 26, -954,
+ -954, -954, -954, -954, -954, 920, 921, 475, 922, 923,
+ 924, 656, 925, -954, 926, 927, 928, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, 181, -954, 223, -954, -954,
+ -954, -954, -954, 929, 428, 930, -954, 931, 670, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -165, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, 808, 808, 808, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -17,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, 47, -954, -954, 573, -954, 607,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, 71, -954, -954, -954, -954, -954, -954, -954,
+ -954, 77, -954, -954, -954, -954, -954, 114, -954, -954,
+ -954, 918, 868, 932, -954, 917, 933, -99, 934, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, 126, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, 127, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, 129, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, 137,
+ -954, -954, 284, -954, -954, -954, -954, -4, -954, 900,
+ -954, -954, -954, 547, -954, 909, -954, -26, -954, -954,
+ -954, 935, 237, 937, 938, -954, -954, 475, -954, 656,
+ -954, 428, -954, 670, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, 150, -954,
+ -954, -954, -954, -954, -954, -954, -954, 237, -954
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -820, -820, -820, 82, -300, -819, -607, -820, -820, 689,
- -820, -820, -820, -820, 910, -820, -820, -820, 21, -820,
- 22, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, 947, -820,
- -820, -820, -820, -820, 838, -820, -820, -820, -820, 57,
- -820, -820, -820, -820, -820, -230, -820, -820, -820, 519,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -201,
- -820, -820, -820, -196, -820, -820, -820, 772, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -170, -820, -820, -820,
- -820, -820, -182, -820, 609, -820, -820, -820, -46, -820,
- -820, -820, -820, -820, 605, -820, -820, -820, -820, -820,
- -820, -820, -137, -820, -820, -820, -820, -820, -820, 573,
- -820, -820, -820, -820, -820, 911, -820, -820, -820, -820,
- 542, -820, -820, -820, -820, -820, -128, -820, -820, -820,
- 543, -820, -820, -820, -820, -122, -820, -820, -820, 745,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- -107, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -103, -820, 641, -820, -820, -820, -820, -820, 773,
- -820, -820, -820, -820, 999, -820, -820, -820, -820, -820,
- -820, -92, -820, 776, -820, -820, -820, -820, 949, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, 42, -820, -820, -820, 46,
- -820, -820, -820, -820, -820, 1024, -820, -820, -820, -820,
- -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
- -820, -820, 932, -820, -820, -820, -820, -820, -820
+ -954, -954, -954, -577, -302, -953, -610, -954, -954, 936,
+ -954, -954, -954, -954, 786, -954, -954, -954, 15, -954,
+ 14, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, 954, -954,
+ -954, -954, -954, -954, 940, -954, -954, -954, -954, 58,
+ -954, -954, -954, -954, -954, -230, -954, -954, -954, 521,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -198,
+ -954, -954, -954, -195, -954, -954, -954, 699, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -167, -954, -954, -954,
+ -954, -954, -181, -954, 556, -954, -954, -954, -78, -954,
+ -954, -954, -954, -954, 589, -954, -954, -954, -954, -954,
+ -954, -954, -160, -954, -954, -954, -954, -954, -954, 529,
+ -954, -954, -954, -954, -954, 919, -954, -954, -954, -954,
+ 484, -954, -954, -954, -954, -954, -177, -954, -954, -954,
+ 496, -954, -954, -954, -954, -175, -954, -954, -954, 697,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -142, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -140, -954, 598, -954, -954, -954, -954, -954, 707,
+ -954, -954, -954, -954, 965, -954, -954, -954, -954, -954,
+ -954, -107, -954, 709, -954, -954, -954, -954, 944, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, 24, -954, -954, -954,
+ 42, -954, -954, -954, -954, -954, 1020, -954, -954, -954,
+ -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+ -954, -954, -954, 939, -954, -954, -954, -954, -954, -954
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
@@ -1998,390 +1991,392 @@ static const yytype_int16 yypgoto[] =
#define YYTABLE_NINF -114
static const yytype_int16 yytable[] =
{
- 820, 821, 580, 581, 1052, 47, 234, 819, 553, 315,
- 588, 48, 389, 1040, 1041, 1042, 476, 497, 562, 288,
- 110, 379, 52, 316, 317, 389, 225, 318, 110, 54,
- 959, 67, 67, 498, 448, 999, 1001, 293, 467, 1000,
- 1002, 288, 235, 1071, 319, 553, 58, 1072, 499, 1099,
- 449, 477, 500, 562, 68, 68, 236, 237, 238, 239,
- 379, 69, 69, 1073, 218, 450, 516, 1074, 1196, 451,
- 294, 478, 1197, 59, 240, 62, 479, 218, 63, 517,
- 111, 380, 516, 1201, 320, 321, 322, 1202, 111, 1203,
- 323, 45, 46, 1204, 66, 517, 324, 325, 959, 639,
- 640, 554, 326, 107, 1218, 390, 108, 647, 819, 649,
- 501, 563, 289, 327, 328, 109, 656, 226, 390, 659,
- 380, 675, 676, 960, 70, 70, 116, 295, 329, 669,
- 670, 117, 118, 502, 289, 391, 480, 119, 554, 681,
- 682, 115, 684, 227, 381, 120, 563, 215, 391, 503,
- 452, 121, 76, 122, 123, 124, 216, 330, 453, 454,
- 125, 468, 217, 518, 555, 232, 126, 127, 392, 128,
- 129, 130, 77, 78, 564, 131, 249, 467, 79, 518,
- 132, 392, 233, 381, 133, 134, 961, 286, 135, 519,
- 1100, 960, 455, 1053, 469, 1101, 1207, 136, 331, 250,
- 1208, 555, 752, 753, 137, 519, 138, 225, 139, 564,
- 140, 141, 142, 287, 504, 1209, 296, 80, 81, 1210,
- 556, 1198, 1199, 1200, 82, 83, 84, 143, 531, 505,
- 740, 609, 251, 144, 145, 146, 487, 147, 710, 727,
- 148, 149, 387, 629, 150, 492, 456, 636, 495, 962,
- 470, 85, 86, 297, 961, 252, 698, 556, 1211, 253,
- 703, 533, 1212, 570, 87, 88, 299, 770, 300, 254,
- 301, 255, 256, 1221, 89, 775, 1223, 1222, 219, 151,
- 1224, 302, 90, 152, -113, 303, 153, 154, 155, 156,
- 157, 219, 304, 158, 159, 807, 476, -113, 226, 489,
- 468, 813, 814, 305, 733, 306, 818, 257, 307, 258,
- 259, 260, 261, 308, 350, 1225, 351, 962, 352, 1226,
- 1113, 1227, 448, 1251, 227, 1228, 491, 1252, 262, 309,
- 353, 477, 310, 469, 160, 161, 162, 311, 449, 163,
- 677, 678, 756, 757, 164, 354, 824, 825, 446, 355,
- 575, 478, 263, 450, 312, 1236, 479, 451, 386, 116,
- 1026, 1027, 264, 398, 117, 118, 399, 400, 401, 356,
- 119, 357, 402, 403, 313, 404, 572, 1237, 120, 1238,
- 405, 358, 406, 407, 121, 408, 122, 123, 124, 470,
- 409, 265, 266, 125, 410, 411, 412, 413, 551, 126,
- 127, 576, 128, 129, 130, 414, 249, 359, 131, 415,
- 416, 417, 418, 132, 419, 420, 480, 133, 134, 421,
- 422, 135, 1239, 423, 350, 424, 351, 425, 352, 250,
- 136, 573, 427, 429, 360, 430, 431, 137, 452, 138,
- 353, 139, 432, 140, 141, 142, 453, 454, 433, 434,
- 1117, 435, 436, 437, 438, 354, 439, 440, 441, 355,
- 143, 442, 251, 361, 443, 444, 144, 145, 146, 445,
- 147, 1118, 497, 148, 149, 488, 493, 150, 494, 356,
- 455, 357, 525, 526, 527, 252, 1119, 528, 498, 253,
- 362, 358, 529, 1120, 1240, 1241, 234, 530, 534, 254,
- 535, 255, 256, 499, 536, 1219, 537, 500, 538, 539,
- 1121, 540, 151, 541, 542, 543, 152, 359, 544, 153,
- 154, 155, 156, 157, 545, 546, 158, 159, 1242, 363,
- 547, 548, 235, 549, 456, 550, 625, 257, 1122, 258,
- 259, 260, 261, 569, 360, 1123, 236, 237, 238, 239,
- 574, 577, 578, 579, 582, 1170, 583, 1124, 262, 584,
- 585, 1077, 586, 587, 240, 501, 589, 160, 161, 162,
- 590, 591, 163, 361, 1125, 1126, 1127, 164, 592, 593,
- 594, 1078, 263, 611, 595, 2, 3, 597, 502, 4,
- 598, 1079, 264, 599, 600, 601, 602, 1080, 603, 5,
- 362, 604, 6, 7, 503, 605, 606, 607, 8, 608,
- 612, 631, 613, 1081, 614, 615, 617, 618, 619, 9,
- 620, 265, 266, 10, 11, 641, 1128, 621, 622, 638,
- 315, 1171, 623, 12, 624, 1129, 627, 874, 628, 363,
- 1130, 632, 633, 1082, 316, 317, 1131, 13, 318, 634,
- 1132, 1083, 642, 1133, 643, 14, 15, 644, 1134, 645,
- 646, 650, 1172, 648, 1135, 319, 651, 652, 653, 504,
- 654, 1173, 655, 897, 657, 658, 660, 1174, 16, 661,
- 662, 663, 664, 665, 505, 666, 667, 668, 579, 1084,
- 671, 1175, 17, 1176, 1177, 672, 673, 674, 679, 680,
- 683, 1141, 685, 1178, 686, 320, 321, 322, 1085, 1179,
- 687, 323, 688, 712, 689, 705, 715, 324, 325, 716,
- 713, 690, 717, 326, 691, 18, 785, 786, 787, 788,
- 789, 790, 791, 693, 327, 328, 19, 20, 694, 695,
- 21, 22, 737, 696, 1184, 735, 736, 697, 700, 329,
- 702, 707, 708, 709, 1086, 738, 718, 729, 875, 876,
- 877, 878, 879, 714, 880, 881, 719, 882, 883, 884,
- 720, 722, 885, 739, 886, 887, 723, 888, 330, 889,
- 724, 890, 891, 726, 730, 892, 731, 741, 742, 732,
- 743, 893, 744, 23, 898, 899, 900, 901, 902, 745,
- 903, 904, 762, 905, 906, 907, 746, 747, 908, 748,
- 909, 910, 749, 911, 750, 912, 751, 913, 914, 331,
- 1185, 915, 1142, 1143, 1144, 1145, 1146, 916, 1147, 1148,
- 760, 1149, 1150, 1151, 761, 763, 1152, 76, 1153, 1154,
- 764, 1155, 767, 1156, 769, 1157, 1158, 765, 766, 1159,
- 772, 1186, 773, 777, 778, 1160, 779, 77, 78, 780,
- 1187, 781, 782, 79, 783, 784, 1188, 1016, 1017, 1018,
- 1019, 1020, 1021, 1022, 794, 795, 796, 797, 798, 799,
- 1189, 800, 1190, 1191, 801, 802, 803, 804, 805, 806,
- 809, 810, 1192, 808, 811, 812, 815, 816, 1193, 817,
- 819, 822, 80, 81, 823, 826, 827, 828, 833, 82,
- 83, 84, 1107, 837, 829, 840, 830, 496, 841, 831,
- 832, 834, 835, 836, 838, 839, 844, 842, 843, 845,
- 938, 846, 847, 848, 939, 941, 85, 86, 849, 850,
- 940, 851, 852, 853, 854, 855, 856, 857, 858, 87,
- 88, 859, 860, 942, 861, 862, 863, 864, 865, 89,
- 866, 867, 943, 868, 869, 870, 871, 90, 872, 873,
- 896, 919, 920, 921, 922, 923, 924, 925, 926, 927,
- 928, 929, 930, 931, 932, 933, 934, 935, 936, 937,
- 944, 945, 946, 947, 948, 949, 951, 950, 952, 953,
- 954, 957, 958, 968, 970, 971, 973, 974, 975, 977,
- 969, 979, 980, 981, 972, 1008, 1010, 1012, 298, 1068,
- 1114, 1167, 1253, 1248, 1168, 728, 1247, 1229, 1213, 1095,
- 1234, 978, 976, 982, 983, 1009, 984, 985, 986, 987,
- 988, 989, 990, 991, 992, 993, 994, 995, 996, 997,
- 998, 1003, 1004, 1005, 1006, 1007, 1011, 1216, 490, 1014,
- 1013, 1214, 699, 1015, 1023, 1024, 1025, 1030, 1031, 1032,
- 1033, 1232, 1034, 1035, 1036, 1037, 1038, 1039, 1045, 1046,
- 1047, 1048, 1049, 1050, 1051, 1056, 1057, 1058, 1059, 1060,
- 1106, 711, 1061, 734, 1062, 1230, 1063, 1064, 1249, 771,
- 1065, 1066, 1067, 1075, 610, 1076, 1250, 1233, 776, 626,
- 1089, 388, 1231, 704, 447, 314, 1206, 0, 1205, 1090,
- 1091, 1092, 1093, 1094, 0, 1098, 1104, 1105, 1109, 0,
- 0, 1115, 1110, 1112, 1116, 1138, 1139, 1140, 1163, 1164,
- 1165, 1166, 0, 1169, 1182, 1183, 0, 1215, 0, 1220,
- 1235, 1217, 1245, 1246, 0, 630, 0, 0, 0, 0,
+ 824, 825, 583, 584, 1057, 381, 823, 290, 381, 47,
+ 591, 556, 565, 110, 352, 48, 353, 479, 354, 110,
+ 67, 290, 451, 52, 67, 1104, 54, 964, 479, 58,
+ 355, 1004, 391, 964, 236, 1005, 1006, 59, 452, 391,
+ 1007, 470, 62, 68, 1076, 356, 220, 68, 1077, 357,
+ 69, 220, 480, 453, 69, 1078, 63, 454, 1201, 1079,
+ 500, 519, 1202, 480, 66, 382, 45, 46, 382, 358,
+ 237, 359, 481, 111, 520, 107, 501, 482, 108, 111,
+ 109, 360, 227, 481, 238, 239, 240, 241, 482, 565,
+ 227, 502, 1203, 1204, 1205, 503, 1045, 1046, 1047, 642,
+ 643, 291, 242, 1223, 115, 557, 566, 650, 361, 652,
+ 217, 556, 679, 680, 70, 291, 659, 116, 70, 662,
+ 218, 965, 117, 118, 519, 219, 392, 965, 119, 383,
+ 673, 674, 383, 392, 234, 362, 120, 520, 483, 455,
+ 685, 686, 121, 688, 122, 123, 124, 456, 457, 483,
+ 235, 125, 681, 682, 504, 251, 393, 126, 127, 521,
+ 128, 129, 130, 393, 363, 471, 131, 1105, 558, 567,
+ 295, 132, 1106, 288, 228, 133, 134, 505, 252, 135,
+ 289, 458, 228, 566, 966, 522, 470, 296, 136, 394,
+ 966, 364, 823, 506, 1058, 137, 394, 138, 472, 139,
+ 229, 140, 141, 142, 143, 557, 1206, 297, 229, 490,
+ 1207, 253, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 144,
+ 828, 829, 521, 298, 559, 145, 146, 147, 632, 148,
+ 365, 744, 149, 150, 254, 459, 151, 628, 255, 494,
+ 714, 317, 389, 299, 573, 702, 567, 967, 522, 256,
+ 1118, 257, 258, 967, 473, 318, 319, 534, 507, 320,
+ 301, 221, 639, 302, 707, 303, 221, -113, 558, 492,
+ 1208, 152, -113, 508, 1209, 153, 321, 1241, 154, 155,
+ 156, 157, 158, 731, 737, 159, 160, 259, 304, 260,
+ 261, 262, 263, 76, 1212, 305, 811, 495, 1213, 1242,
+ 1214, 1243, 817, 818, 1215, 498, 306, 822, 264, 307,
+ 471, 308, 779, 77, 78, 536, 322, 323, 324, 79,
+ 756, 757, 325, 309, 559, 251, 161, 162, 163, 326,
+ 327, 164, 265, 236, 774, 328, 165, 1216, 310, 500,
+ 449, 1217, 266, 472, 311, 1244, 329, 330, 252, 1226,
+ 1228, 312, 1230, 1227, 1229, 501, 1231, 313, 80, 81,
+ 1232, 331, 760, 761, 1233, 82, 83, 84, 314, 237,
+ 502, 267, 268, 1256, 503, 1031, 1032, 1257, 554, 388,
+ 578, 253, 400, 238, 239, 240, 241, 401, 402, 403,
+ 332, 404, 405, 85, 86, 406, 407, 408, 409, 473,
+ 410, 242, 411, 412, 254, 413, 87, 88, 255, 116,
+ 414, 581, 415, 416, 117, 118, 89, 1245, 1246, 256,
+ 119, 257, 258, 417, 90, 418, 419, 420, 120, 421,
+ 422, 333, 423, 504, 121, 424, 122, 123, 124, 451,
+ 425, 426, 427, 125, 428, 430, 432, 433, 434, 126,
+ 127, 1247, 128, 129, 130, 452, 505, 259, 131, 260,
+ 261, 262, 263, 132, 612, 435, 575, 133, 134, 436,
+ 453, 135, 506, 437, 454, 438, 439, 440, 264, 1122,
+ 136, 441, 442, 443, 444, 445, 446, 137, 447, 138,
+ 448, 139, 1175, 140, 141, 142, 143, 491, 496, 497,
+ 1123, 528, 265, 529, 530, 531, 582, 1224, 532, 533,
+ 576, 144, 266, 537, 538, 1124, 315, 145, 146, 147,
+ 539, 148, 1125, 540, 149, 150, 541, 352, 151, 353,
+ 542, 354, 543, 544, 545, 546, 547, 507, 548, 1126,
+ 549, 267, 268, 355, 789, 790, 791, 792, 793, 794,
+ 795, 550, 508, 551, 552, 553, 455, 572, 356, 577,
+ 1082, 579, 357, 152, 456, 457, 580, 153, 1127, 1176,
+ 154, 155, 156, 157, 158, 1128, 582, 159, 160, 585,
+ 1083, 586, 358, 587, 359, 588, 589, 1129, 590, 592,
+ 1084, 593, 594, 595, 360, 614, 1085, 596, 458, 597,
+ 1177, 598, 600, 601, 1130, 1131, 1132, 602, 603, 1178,
+ 604, 605, 1086, 634, 606, 1179, 607, 608, 161, 162,
+ 163, 361, 317, 164, 879, 609, 610, 641, 165, 1180,
+ 611, 1181, 1182, 615, 635, 616, 318, 319, 617, 618,
+ 320, 1183, 620, 1087, 644, 647, 621, 1184, 362, 622,
+ 648, 1088, 459, 623, 645, 624, 1133, 321, 902, 625,
+ 626, 627, 646, 630, 649, 1134, 631, 2, 3, 636,
+ 1135, 4, 637, 651, 653, 654, 1136, 363, 656, 655,
+ 1137, 5, 657, 1138, 6, 7, 658, 660, 1139, 1089,
+ 8, 661, 663, 664, 1140, 665, 666, 322, 323, 324,
+ 667, 9, 668, 325, 364, 10, 11, 1146, 1090, 669,
+ 326, 327, 670, 671, 672, 12, 328, 675, 676, 677,
+ 678, 683, 684, 687, 689, 690, 691, 329, 330, 13,
+ 692, 693, 716, 719, 1189, 694, 695, 14, 15, 697,
+ 698, 718, 331, 365, 699, 709, 880, 881, 882, 883,
+ 884, 700, 885, 886, 1091, 887, 888, 889, 701, 704,
+ 890, 16, 891, 892, 706, 893, 717, 894, 720, 895,
+ 896, 332, 721, 897, 711, 17, 739, 741, 740, 898,
+ 903, 904, 905, 906, 907, 742, 908, 909, 712, 910,
+ 911, 912, 713, 723, 913, 76, 914, 915, 722, 916,
+ 733, 917, 724, 918, 919, 726, 727, 920, 18, 728,
+ 730, 1190, 333, 921, 743, 77, 78, 745, 734, 19,
+ 20, 79, 735, 21, 22, 736, 746, 747, 748, 1147,
+ 1148, 1149, 1150, 1151, 749, 1152, 1153, 750, 1154, 1155,
+ 1156, 751, 1191, 1157, 752, 1158, 1159, 753, 1160, 754,
+ 1161, 1192, 1162, 1163, 755, 764, 1164, 1193, 765, 766,
+ 80, 81, 1165, 767, 768, 769, 770, 82, 83, 84,
+ 771, 1194, 773, 1195, 1196, 776, 23, 777, 781, 809,
+ 782, 783, 784, 1197, 785, 786, 787, 788, 798, 1198,
+ 810, 799, 800, 813, 801, 85, 86, 802, 803, 804,
+ 805, 806, 807, 808, 814, 815, 816, 812, 87, 88,
+ 819, 820, 821, 823, 826, 827, 830, 831, 89, 832,
+ 833, 834, 837, 841, 844, 835, 90, 836, 838, 845,
+ 848, 849, 839, 840, 842, 843, 846, 847, 850, 851,
+ 852, 943, 853, 854, 946, 855, 944, 947, 856, 948,
+ 857, 858, 949, 859, 950, 952, 860, 861, 954, 862,
+ 863, 864, 865, 957, 958, 866, 867, 868, 869, 870,
+ 871, 872, 873, 959, 874, 875, 876, 975, 978, 877,
+ 878, 901, 924, 925, 926, 927, 928, 929, 930, 931,
+ 932, 933, 934, 935, 936, 937, 938, 976, 939, 940,
+ 941, 942, 979, 980, 951, 982, 945, 955, 953, 956,
+ 984, 985, 962, 963, 973, 986, 1013, 1015, 974, 1017,
+ 1172, 1173, 977, 1218, 1111, 300, 1119, 1258, 1073, 981,
+ 732, 1253, 1252, 613, 1219, 1234, 1239, 1100, 983, 987,
+ 1221, 715, 988, 989, 775, 990, 991, 992, 993, 703,
+ 994, 995, 738, 1237, 1254, 555, 996, 997, 1255, 998,
+ 999, 1000, 1001, 629, 780, 1235, 1002, 1003, 1008, 1009,
+ 1010, 1011, 1012, 708, 1016, 1238, 1014, 390, 1018, 1019,
+ 1020, 1028, 1029, 1030, 1035, 1036, 1037, 1038, 1039, 1040,
+ 1041, 633, 1042, 1043, 1044, 1050, 1051, 1052, 1053, 1054,
+ 1055, 1056, 1236, 1211, 1061, 640, 1062, 1063, 1064, 1065,
+ 450, 316, 1066, 1067, 1068, 0, 0, 0, 1069, 1210,
+ 1070, 1071, 1072, 0, 1080, 1081, 1094, 1095, 1096, 1097,
+ 1098, 1099, 0, 1103, 1109, 1110, 0, 1114, 0, 0,
+ 1112, 1115, 1117, 1120, 1121, 1143, 1144, 1145, 1168, 1169,
+ 1170, 1171, 1174, 1187, 1188, 1220, 0, 1225, 1240, 1222,
+ 1250, 1251, 493, 0, 0, 0, 499, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 637, 0, 0, 532, 0, 0, 0, 552, 0, 0,
+ 0, 0, 535, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 571
+ 0, 574
};
#define yypact_value_is_default(Yystate) \
- (!!((Yystate) == (-820)))
+ (!!((Yystate) == (-954)))
#define yytable_value_is_error(Yytable_value) \
YYID (0)
static const yytype_int16 yycheck[] =
{
- 607, 608, 302, 303, 8, 224, 1, 104, 1, 1,
- 310, 224, 1, 9, 10, 11, 1, 1, 1, 1,
- 1, 1, 224, 15, 16, 1, 1, 19, 1, 224,
- 1, 1, 1, 17, 1, 222, 222, 222, 1, 226,
- 226, 1, 37, 222, 36, 1, 224, 226, 32, 51,
- 17, 36, 36, 1, 24, 24, 51, 52, 53, 54,
- 1, 31, 31, 222, 1, 32, 1, 226, 222, 36,
- 225, 56, 226, 224, 69, 224, 61, 1, 224, 14,
- 61, 61, 1, 222, 76, 77, 78, 226, 61, 222,
- 82, 222, 223, 226, 224, 14, 88, 89, 1, 399,
- 400, 94, 94, 224, 201, 94, 224, 407, 104, 409,
- 94, 94, 94, 105, 106, 224, 416, 92, 94, 419,
- 61, 166, 167, 94, 94, 94, 1, 225, 120, 429,
- 430, 6, 7, 117, 94, 124, 121, 12, 94, 439,
- 440, 224, 442, 118, 124, 20, 94, 224, 124, 133,
- 117, 26, 1, 28, 29, 30, 224, 149, 125, 126,
- 35, 124, 224, 98, 157, 224, 41, 42, 157, 44,
- 45, 46, 21, 22, 157, 50, 1, 1, 27, 98,
- 55, 157, 224, 124, 59, 60, 157, 224, 63, 124,
- 192, 94, 159, 197, 157, 197, 222, 72, 190, 24,
- 226, 157, 138, 139, 79, 124, 81, 1, 83, 157,
- 85, 86, 87, 224, 198, 222, 225, 66, 67, 226,
- 213, 1040, 1041, 1042, 73, 74, 75, 102, 223, 213,
- 530, 223, 57, 108, 109, 110, 222, 112, 223, 223,
- 115, 116, 223, 223, 119, 222, 213, 223, 223, 220,
- 213, 100, 101, 223, 157, 80, 223, 213, 222, 84,
- 223, 222, 226, 223, 113, 114, 225, 223, 225, 94,
- 225, 96, 97, 222, 123, 223, 222, 226, 215, 154,
- 226, 225, 131, 158, 221, 225, 161, 162, 163, 164,
- 165, 215, 225, 168, 169, 595, 1, 221, 92, 223,
- 124, 601, 602, 225, 223, 225, 606, 132, 225, 134,
- 135, 136, 137, 225, 1, 222, 3, 220, 5, 226,
- 223, 222, 1, 222, 118, 226, 221, 226, 153, 225,
- 17, 36, 225, 157, 209, 210, 211, 225, 17, 214,
- 166, 167, 138, 139, 219, 32, 184, 185, 223, 36,
- 222, 56, 177, 32, 225, 40, 61, 36, 225, 1,
- 90, 91, 187, 225, 6, 7, 225, 225, 225, 56,
- 12, 58, 225, 225, 223, 225, 122, 62, 20, 64,
- 225, 68, 225, 225, 26, 225, 28, 29, 30, 213,
- 225, 216, 217, 35, 225, 225, 225, 225, 223, 41,
- 42, 104, 44, 45, 46, 225, 1, 94, 50, 225,
- 225, 225, 225, 55, 225, 225, 121, 59, 60, 225,
- 225, 63, 107, 225, 1, 225, 3, 225, 5, 24,
- 72, 122, 225, 225, 121, 225, 225, 79, 117, 81,
- 17, 83, 225, 85, 86, 87, 125, 126, 225, 225,
- 4, 225, 225, 225, 225, 32, 225, 225, 225, 36,
- 102, 225, 57, 150, 225, 225, 108, 109, 110, 225,
- 112, 25, 1, 115, 116, 225, 225, 119, 225, 56,
- 159, 58, 225, 225, 225, 80, 40, 225, 17, 84,
- 177, 68, 225, 47, 179, 180, 1, 225, 225, 94,
- 225, 96, 97, 32, 225, 1112, 225, 36, 225, 225,
- 64, 225, 154, 225, 225, 225, 158, 94, 225, 161,
- 162, 163, 164, 165, 225, 225, 168, 169, 213, 216,
- 225, 225, 37, 225, 213, 225, 223, 132, 92, 134,
- 135, 136, 137, 225, 121, 99, 51, 52, 53, 54,
- 122, 104, 166, 104, 104, 64, 104, 111, 153, 104,
- 166, 13, 166, 104, 69, 94, 166, 209, 210, 211,
- 166, 222, 214, 150, 128, 129, 130, 219, 222, 225,
- 225, 33, 177, 222, 225, 0, 1, 225, 117, 4,
- 225, 43, 187, 225, 225, 225, 225, 49, 225, 14,
- 177, 225, 17, 18, 133, 225, 225, 225, 23, 225,
- 225, 122, 225, 65, 225, 225, 225, 225, 225, 34,
- 225, 216, 217, 38, 39, 104, 180, 225, 225, 166,
- 1, 140, 225, 48, 225, 189, 225, 51, 225, 216,
- 194, 222, 225, 95, 15, 16, 200, 62, 19, 225,
- 204, 103, 166, 207, 166, 70, 71, 104, 212, 122,
- 166, 104, 171, 166, 218, 36, 104, 104, 166, 198,
- 166, 180, 166, 51, 104, 104, 104, 186, 93, 104,
- 104, 104, 166, 166, 213, 225, 166, 225, 104, 141,
- 166, 200, 107, 202, 203, 166, 166, 166, 166, 166,
- 122, 51, 166, 212, 166, 76, 77, 78, 160, 218,
- 166, 82, 222, 166, 222, 222, 122, 88, 89, 122,
- 222, 225, 222, 94, 225, 140, 142, 143, 144, 145,
- 146, 147, 148, 225, 105, 106, 151, 152, 225, 225,
- 155, 156, 122, 225, 64, 166, 166, 225, 225, 120,
- 225, 225, 225, 225, 206, 166, 222, 222, 172, 173,
- 174, 175, 176, 224, 178, 179, 225, 181, 182, 183,
- 225, 225, 186, 166, 188, 189, 225, 191, 149, 193,
- 225, 195, 196, 225, 225, 199, 225, 222, 122, 225,
- 166, 205, 104, 208, 172, 173, 174, 175, 176, 104,
- 178, 179, 104, 181, 182, 183, 122, 122, 186, 122,
- 188, 189, 122, 191, 122, 193, 122, 195, 196, 190,
- 140, 199, 172, 173, 174, 175, 176, 205, 178, 179,
- 122, 181, 182, 183, 122, 122, 186, 1, 188, 189,
- 122, 191, 225, 193, 225, 195, 196, 222, 222, 199,
- 222, 171, 225, 122, 222, 205, 222, 21, 22, 222,
- 180, 222, 222, 27, 222, 222, 186, 785, 786, 787,
- 788, 789, 790, 791, 222, 222, 222, 222, 222, 222,
- 200, 222, 202, 203, 222, 222, 222, 222, 104, 104,
- 104, 104, 212, 225, 104, 104, 122, 104, 218, 104,
- 104, 222, 66, 67, 122, 122, 166, 225, 104, 73,
- 74, 75, 226, 222, 122, 222, 122, 228, 222, 122,
- 122, 122, 122, 122, 122, 122, 225, 122, 122, 222,
- 122, 222, 222, 222, 166, 122, 100, 101, 222, 222,
- 225, 222, 222, 222, 222, 222, 222, 222, 222, 113,
- 114, 222, 222, 104, 222, 222, 222, 222, 222, 123,
- 222, 222, 122, 222, 222, 222, 222, 131, 222, 222,
- 222, 222, 222, 222, 222, 222, 222, 222, 222, 222,
- 222, 222, 222, 222, 222, 222, 222, 222, 222, 222,
- 122, 122, 222, 122, 225, 122, 225, 222, 122, 122,
- 104, 222, 222, 222, 122, 166, 122, 122, 122, 122,
- 222, 122, 122, 122, 225, 122, 122, 122, 71, 127,
- 963, 1000, 1252, 1224, 1002, 506, 1222, 1197, 104, 127,
- 1212, 222, 225, 222, 222, 225, 222, 222, 222, 222,
- 222, 222, 222, 222, 222, 222, 222, 222, 222, 222,
- 222, 222, 222, 222, 222, 222, 222, 122, 220, 222,
- 225, 1107, 457, 222, 222, 222, 222, 222, 222, 222,
- 222, 1208, 222, 222, 222, 222, 222, 222, 222, 222,
- 222, 222, 222, 222, 222, 222, 222, 222, 222, 222,
- 170, 482, 222, 520, 222, 1202, 222, 222, 1226, 557,
- 222, 222, 222, 222, 332, 222, 1228, 1210, 565, 364,
- 222, 112, 1204, 472, 165, 91, 1074, -1, 1072, 222,
- 222, 222, 222, 222, -1, 222, 222, 222, 222, -1,
- -1, 222, 225, 225, 222, 222, 222, 222, 222, 222,
- 222, 222, -1, 222, 222, 222, -1, 222, -1, 222,
- 222, 225, 222, 222, -1, 382, -1, -1, -1, -1,
+ 610, 611, 304, 305, 8, 1, 105, 1, 1, 225,
+ 312, 1, 1, 1, 1, 225, 3, 1, 5, 1,
+ 1, 1, 1, 225, 1, 51, 225, 1, 1, 225,
+ 17, 223, 1, 1, 1, 227, 223, 225, 17, 1,
+ 227, 1, 225, 24, 223, 32, 1, 24, 227, 36,
+ 31, 1, 36, 32, 31, 223, 225, 36, 223, 227,
+ 1, 1, 227, 36, 225, 61, 223, 224, 61, 56,
+ 37, 58, 56, 61, 14, 225, 17, 61, 225, 61,
+ 225, 68, 1, 56, 51, 52, 53, 54, 61, 1,
+ 1, 32, 1045, 1046, 1047, 36, 9, 10, 11, 401,
+ 402, 95, 69, 202, 225, 95, 95, 409, 95, 411,
+ 225, 1, 167, 168, 95, 95, 418, 1, 95, 421,
+ 225, 95, 6, 7, 1, 225, 95, 95, 12, 125,
+ 432, 433, 125, 95, 225, 122, 20, 14, 122, 118,
+ 442, 443, 26, 445, 28, 29, 30, 126, 127, 122,
+ 225, 35, 167, 168, 95, 1, 125, 41, 42, 99,
+ 44, 45, 46, 125, 151, 125, 50, 193, 158, 158,
+ 223, 55, 198, 225, 93, 59, 60, 118, 24, 63,
+ 225, 160, 93, 95, 158, 125, 1, 226, 72, 158,
+ 158, 178, 105, 134, 198, 79, 158, 81, 158, 83,
+ 119, 85, 86, 87, 88, 95, 223, 226, 119, 223,
+ 227, 57, 789, 790, 791, 792, 793, 794, 795, 103,
+ 185, 186, 99, 226, 214, 109, 110, 111, 224, 113,
+ 217, 533, 116, 117, 80, 214, 120, 224, 84, 222,
+ 224, 1, 224, 224, 224, 224, 158, 221, 125, 95,
+ 224, 97, 98, 221, 214, 15, 16, 224, 199, 19,
+ 226, 216, 224, 226, 224, 226, 216, 222, 158, 224,
+ 223, 155, 222, 214, 227, 159, 36, 40, 162, 163,
+ 164, 165, 166, 224, 224, 169, 170, 133, 226, 135,
+ 136, 137, 138, 1, 223, 226, 598, 223, 227, 62,
+ 223, 64, 604, 605, 227, 224, 226, 609, 154, 226,
+ 125, 226, 224, 21, 22, 223, 76, 77, 78, 27,
+ 139, 140, 82, 226, 214, 1, 210, 211, 212, 89,
+ 90, 215, 178, 1, 224, 95, 220, 223, 226, 1,
+ 224, 227, 188, 158, 226, 108, 106, 107, 24, 223,
+ 223, 226, 223, 227, 227, 17, 227, 226, 66, 67,
+ 223, 121, 139, 140, 227, 73, 74, 75, 226, 37,
+ 32, 217, 218, 223, 36, 91, 92, 227, 224, 226,
+ 223, 57, 226, 51, 52, 53, 54, 226, 226, 226,
+ 150, 226, 226, 101, 102, 226, 226, 226, 226, 214,
+ 226, 69, 226, 226, 80, 226, 114, 115, 84, 1,
+ 226, 167, 226, 226, 6, 7, 124, 180, 181, 95,
+ 12, 97, 98, 226, 132, 226, 226, 226, 20, 226,
+ 226, 191, 226, 95, 26, 226, 28, 29, 30, 1,
+ 226, 226, 226, 35, 226, 226, 226, 226, 226, 41,
+ 42, 214, 44, 45, 46, 17, 118, 133, 50, 135,
+ 136, 137, 138, 55, 224, 226, 123, 59, 60, 226,
+ 32, 63, 134, 226, 36, 226, 226, 226, 154, 4,
+ 72, 226, 226, 226, 226, 226, 226, 79, 226, 81,
+ 226, 83, 64, 85, 86, 87, 88, 226, 226, 226,
+ 25, 226, 178, 226, 226, 226, 105, 1117, 226, 226,
+ 123, 103, 188, 226, 226, 40, 224, 109, 110, 111,
+ 226, 113, 47, 226, 116, 117, 226, 1, 120, 3,
+ 226, 5, 226, 226, 226, 226, 226, 199, 226, 64,
+ 226, 217, 218, 17, 143, 144, 145, 146, 147, 148,
+ 149, 226, 214, 226, 226, 226, 118, 226, 32, 123,
+ 13, 105, 36, 155, 126, 127, 105, 159, 93, 141,
+ 162, 163, 164, 165, 166, 100, 105, 169, 170, 105,
+ 33, 105, 56, 105, 58, 167, 167, 112, 105, 167,
+ 43, 167, 223, 223, 68, 223, 49, 226, 160, 226,
+ 172, 226, 226, 226, 129, 130, 131, 226, 226, 181,
+ 226, 226, 65, 123, 226, 187, 226, 226, 210, 211,
+ 212, 95, 1, 215, 51, 226, 226, 167, 220, 201,
+ 226, 203, 204, 226, 223, 226, 15, 16, 226, 226,
+ 19, 213, 226, 96, 105, 105, 226, 219, 122, 226,
+ 123, 104, 214, 226, 167, 226, 181, 36, 51, 226,
+ 226, 226, 167, 226, 167, 190, 226, 0, 1, 226,
+ 195, 4, 226, 167, 105, 105, 201, 151, 167, 105,
+ 205, 14, 167, 208, 17, 18, 167, 105, 213, 142,
+ 23, 105, 105, 105, 219, 123, 105, 76, 77, 78,
+ 105, 34, 167, 82, 178, 38, 39, 51, 161, 167,
+ 89, 90, 226, 167, 226, 48, 95, 167, 167, 167,
+ 167, 167, 167, 123, 167, 167, 167, 106, 107, 62,
+ 223, 223, 167, 123, 64, 226, 226, 70, 71, 226,
+ 226, 225, 121, 217, 226, 223, 173, 174, 175, 176,
+ 177, 226, 179, 180, 207, 182, 183, 184, 226, 226,
+ 187, 94, 189, 190, 226, 192, 223, 194, 123, 196,
+ 197, 150, 223, 200, 226, 108, 167, 123, 167, 206,
+ 173, 174, 175, 176, 177, 167, 179, 180, 226, 182,
+ 183, 184, 226, 226, 187, 1, 189, 190, 223, 192,
+ 223, 194, 226, 196, 197, 226, 226, 200, 141, 226,
+ 226, 141, 191, 206, 167, 21, 22, 223, 226, 152,
+ 153, 27, 226, 156, 157, 226, 123, 167, 105, 173,
+ 174, 175, 176, 177, 105, 179, 180, 123, 182, 183,
+ 184, 123, 172, 187, 123, 189, 190, 123, 192, 123,
+ 194, 181, 196, 197, 123, 123, 200, 187, 123, 105,
+ 66, 67, 206, 123, 123, 223, 223, 73, 74, 75,
+ 226, 201, 226, 203, 204, 223, 209, 226, 123, 105,
+ 223, 223, 223, 213, 223, 223, 223, 223, 223, 219,
+ 105, 223, 223, 105, 223, 101, 102, 223, 223, 223,
+ 223, 223, 223, 223, 105, 105, 105, 226, 114, 115,
+ 123, 105, 105, 105, 223, 123, 123, 167, 124, 226,
+ 123, 123, 105, 223, 223, 123, 132, 123, 123, 223,
+ 226, 223, 123, 123, 123, 123, 123, 123, 223, 223,
+ 223, 123, 223, 223, 123, 223, 167, 105, 223, 123,
+ 223, 223, 123, 223, 123, 123, 223, 223, 123, 223,
+ 223, 223, 223, 123, 123, 223, 223, 223, 223, 223,
+ 223, 223, 223, 105, 223, 223, 223, 123, 123, 223,
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
+ 223, 223, 223, 223, 223, 223, 223, 167, 223, 223,
+ 223, 223, 123, 123, 223, 123, 226, 223, 226, 226,
+ 123, 123, 223, 223, 223, 123, 123, 123, 223, 123,
+ 1005, 1007, 226, 105, 171, 71, 968, 1257, 128, 226,
+ 509, 1229, 1227, 334, 1112, 1202, 1217, 128, 223, 223,
+ 123, 485, 223, 223, 560, 223, 223, 223, 223, 460,
+ 223, 223, 523, 1213, 1231, 269, 223, 223, 1233, 223,
+ 223, 223, 223, 366, 568, 1207, 223, 223, 223, 223,
+ 223, 223, 223, 475, 223, 1215, 226, 112, 226, 223,
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
+ 223, 384, 223, 223, 223, 223, 223, 223, 223, 223,
+ 223, 223, 1209, 1079, 223, 396, 223, 223, 223, 223,
+ 166, 91, 223, 223, 223, -1, -1, -1, 223, 1077,
+ 223, 223, 223, -1, 223, 223, 223, 223, 223, 223,
+ 223, 223, -1, 223, 223, 223, -1, 223, -1, -1,
+ 227, 226, 226, 223, 223, 223, 223, 223, 223, 223,
+ 223, 223, 223, 223, 223, 223, -1, 223, 223, 226,
+ 223, 223, 222, -1, -1, -1, 230, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 394, -1, -1, 241, -1, -1, -1, 267, -1, -1,
+ -1, -1, 243, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 290
+ -1, 292
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint16 yystos[] =
{
- 0, 228, 0, 1, 4, 14, 17, 18, 23, 34,
- 38, 39, 48, 62, 70, 71, 93, 107, 140, 151,
- 152, 155, 156, 208, 229, 234, 239, 263, 269, 283,
- 301, 324, 338, 353, 360, 364, 374, 383, 403, 413,
- 419, 423, 433, 490, 507, 222, 223, 224, 224, 302,
- 384, 414, 224, 424, 224, 339, 404, 325, 224, 224,
- 284, 354, 224, 224, 365, 375, 224, 1, 24, 31,
- 94, 264, 265, 266, 267, 268, 1, 21, 22, 27,
- 66, 67, 73, 74, 75, 100, 101, 113, 114, 123,
- 131, 491, 492, 493, 494, 495, 496, 497, 498, 499,
- 500, 501, 502, 503, 504, 505, 506, 224, 224, 224,
- 1, 61, 420, 421, 422, 224, 1, 6, 7, 12,
+ 0, 229, 0, 1, 4, 14, 17, 18, 23, 34,
+ 38, 39, 48, 62, 70, 71, 94, 108, 141, 152,
+ 153, 156, 157, 209, 230, 235, 240, 264, 270, 284,
+ 302, 325, 339, 354, 361, 365, 375, 384, 404, 414,
+ 420, 424, 434, 492, 509, 223, 224, 225, 225, 303,
+ 385, 415, 225, 425, 225, 340, 405, 326, 225, 225,
+ 285, 355, 225, 225, 366, 376, 225, 1, 24, 31,
+ 95, 265, 266, 267, 268, 269, 1, 21, 22, 27,
+ 66, 67, 73, 74, 75, 101, 102, 114, 115, 124,
+ 132, 493, 494, 495, 496, 497, 498, 499, 500, 501,
+ 502, 503, 504, 505, 506, 507, 508, 225, 225, 225,
+ 1, 61, 421, 422, 423, 225, 1, 6, 7, 12,
20, 26, 28, 29, 30, 35, 41, 42, 44, 45,
46, 50, 55, 59, 60, 63, 72, 79, 81, 83,
- 85, 86, 87, 102, 108, 109, 110, 112, 115, 116,
- 119, 154, 158, 161, 162, 163, 164, 165, 168, 169,
- 209, 210, 211, 214, 219, 434, 435, 436, 437, 438,
+ 85, 86, 87, 88, 103, 109, 110, 111, 113, 116,
+ 117, 120, 155, 159, 162, 163, 164, 165, 166, 169,
+ 170, 210, 211, 212, 215, 220, 435, 436, 437, 438,
439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
- 479, 483, 487, 488, 489, 224, 224, 224, 1, 215,
- 270, 271, 272, 273, 274, 1, 92, 118, 235, 236,
- 237, 238, 224, 224, 1, 37, 51, 52, 53, 54,
- 69, 508, 509, 510, 511, 512, 513, 514, 515, 1,
- 24, 57, 80, 84, 94, 96, 97, 132, 134, 135,
- 136, 137, 153, 177, 187, 216, 217, 240, 241, 242,
- 243, 248, 249, 250, 251, 252, 253, 254, 255, 256,
- 257, 258, 259, 260, 261, 262, 224, 224, 1, 94,
- 361, 362, 363, 222, 225, 225, 225, 223, 265, 225,
- 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
- 225, 225, 225, 223, 492, 1, 15, 16, 19, 36,
- 76, 77, 78, 82, 88, 89, 94, 105, 106, 120,
- 149, 190, 303, 304, 305, 306, 307, 308, 309, 310,
- 311, 312, 313, 314, 315, 316, 317, 318, 319, 320,
- 1, 3, 5, 17, 32, 36, 56, 58, 68, 94,
- 121, 150, 177, 216, 385, 386, 387, 388, 389, 390,
- 391, 392, 393, 394, 398, 399, 400, 401, 402, 1,
- 61, 124, 415, 416, 417, 418, 225, 223, 421, 1,
- 94, 124, 157, 425, 429, 430, 431, 432, 225, 225,
- 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
- 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
- 225, 225, 225, 225, 225, 225, 484, 225, 480, 225,
- 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
- 225, 225, 225, 225, 225, 225, 223, 435, 1, 17,
- 32, 36, 117, 125, 126, 159, 213, 340, 341, 342,
- 343, 344, 345, 346, 350, 351, 352, 1, 124, 157,
- 213, 405, 409, 410, 411, 412, 1, 36, 56, 61,
- 121, 326, 330, 331, 332, 336, 337, 222, 225, 223,
- 271, 221, 222, 225, 225, 223, 236, 1, 17, 32,
- 36, 94, 117, 133, 198, 213, 285, 286, 287, 288,
- 289, 290, 291, 292, 293, 297, 1, 14, 98, 124,
- 355, 356, 357, 358, 359, 225, 225, 225, 225, 225,
- 225, 223, 509, 222, 225, 225, 225, 225, 225, 225,
- 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
- 225, 223, 241, 1, 94, 157, 213, 366, 367, 368,
- 369, 370, 1, 94, 157, 376, 377, 378, 379, 225,
- 223, 362, 122, 122, 122, 222, 104, 104, 166, 104,
- 231, 231, 104, 104, 104, 166, 166, 104, 231, 166,
- 166, 222, 222, 225, 225, 225, 321, 225, 225, 225,
- 225, 225, 225, 225, 225, 225, 225, 225, 225, 223,
- 304, 222, 225, 225, 225, 225, 395, 225, 225, 225,
- 225, 225, 225, 225, 225, 223, 386, 225, 225, 223,
- 416, 122, 222, 225, 225, 426, 223, 430, 166, 231,
- 231, 104, 166, 166, 104, 122, 166, 231, 166, 231,
- 104, 104, 104, 166, 166, 166, 231, 104, 104, 231,
- 104, 104, 104, 104, 166, 166, 225, 166, 225, 231,
- 231, 166, 166, 166, 166, 166, 167, 166, 167, 166,
- 166, 231, 231, 122, 231, 166, 166, 166, 222, 222,
- 225, 225, 347, 225, 225, 225, 225, 225, 223, 341,
- 225, 406, 225, 223, 410, 222, 327, 225, 225, 225,
- 223, 331, 166, 222, 224, 122, 122, 222, 222, 225,
- 225, 298, 225, 225, 225, 294, 225, 223, 286, 222,
- 225, 225, 225, 223, 356, 166, 166, 122, 166, 166,
- 231, 222, 122, 166, 104, 104, 122, 122, 122, 122,
- 122, 122, 138, 139, 244, 245, 138, 139, 246, 247,
- 122, 122, 104, 122, 122, 222, 222, 225, 371, 225,
- 223, 367, 222, 225, 380, 223, 377, 122, 222, 222,
- 222, 222, 222, 222, 222, 142, 143, 144, 145, 146,
- 147, 148, 230, 231, 222, 222, 222, 222, 222, 222,
- 222, 222, 222, 222, 222, 104, 104, 231, 225, 104,
- 104, 104, 104, 231, 231, 122, 104, 104, 231, 104,
- 233, 233, 222, 122, 184, 185, 122, 166, 225, 122,
- 122, 122, 122, 104, 122, 122, 122, 222, 122, 122,
- 222, 222, 122, 122, 225, 222, 222, 222, 222, 222,
- 222, 222, 222, 222, 222, 222, 222, 222, 222, 222,
- 222, 222, 222, 222, 222, 222, 222, 222, 222, 222,
- 222, 222, 222, 222, 51, 172, 173, 174, 175, 176,
- 178, 179, 181, 182, 183, 186, 188, 189, 191, 193,
- 195, 196, 199, 205, 485, 486, 222, 51, 172, 173,
- 174, 175, 176, 178, 179, 181, 182, 183, 186, 188,
- 189, 191, 193, 195, 196, 199, 205, 481, 482, 222,
- 222, 222, 222, 222, 222, 222, 222, 222, 222, 222,
- 222, 222, 222, 222, 222, 222, 222, 222, 122, 166,
- 225, 122, 104, 122, 122, 122, 222, 122, 225, 122,
- 222, 225, 122, 122, 104, 334, 335, 222, 222, 1,
- 94, 157, 220, 275, 276, 277, 278, 279, 222, 222,
- 122, 166, 225, 122, 122, 122, 225, 122, 222, 122,
- 122, 122, 222, 222, 222, 222, 222, 222, 222, 222,
- 222, 222, 222, 222, 222, 222, 222, 222, 222, 222,
- 226, 222, 226, 222, 222, 222, 222, 222, 122, 225,
- 122, 222, 122, 225, 222, 222, 230, 230, 230, 230,
- 230, 230, 230, 222, 222, 222, 90, 91, 322, 323,
- 222, 222, 222, 222, 222, 222, 222, 222, 222, 222,
- 9, 10, 11, 232, 233, 222, 222, 222, 222, 222,
- 222, 222, 8, 197, 396, 397, 222, 222, 222, 222,
- 222, 222, 222, 222, 222, 222, 222, 222, 127, 427,
- 428, 222, 226, 222, 226, 222, 222, 13, 33, 43,
- 49, 65, 95, 103, 141, 160, 206, 348, 349, 222,
- 222, 222, 222, 222, 222, 127, 407, 408, 222, 51,
- 192, 197, 328, 329, 222, 222, 170, 226, 333, 222,
- 225, 280, 225, 223, 276, 222, 222, 4, 25, 40,
- 47, 64, 92, 99, 111, 128, 129, 130, 180, 189,
- 194, 200, 204, 207, 212, 218, 299, 300, 222, 222,
- 222, 51, 172, 173, 174, 175, 176, 178, 179, 181,
- 182, 183, 186, 188, 189, 191, 193, 195, 196, 199,
- 205, 295, 296, 222, 222, 222, 222, 245, 247, 222,
- 64, 140, 171, 180, 186, 200, 202, 203, 212, 218,
- 372, 373, 222, 222, 64, 140, 171, 180, 186, 200,
- 202, 203, 212, 218, 381, 382, 222, 226, 232, 232,
- 232, 222, 226, 222, 226, 486, 482, 222, 226, 222,
- 226, 222, 226, 104, 335, 222, 122, 225, 201, 233,
- 222, 222, 226, 222, 226, 222, 226, 222, 226, 323,
- 397, 428, 349, 408, 329, 222, 40, 62, 64, 107,
- 179, 180, 213, 281, 282, 222, 222, 300, 296, 373,
- 382, 222, 226, 282
+ 479, 480, 481, 485, 489, 490, 491, 225, 225, 225,
+ 1, 216, 271, 272, 273, 274, 275, 1, 93, 119,
+ 236, 237, 238, 239, 225, 225, 1, 37, 51, 52,
+ 53, 54, 69, 510, 511, 512, 513, 514, 515, 516,
+ 517, 1, 24, 57, 80, 84, 95, 97, 98, 133,
+ 135, 136, 137, 138, 154, 178, 188, 217, 218, 241,
+ 242, 243, 244, 249, 250, 251, 252, 253, 254, 255,
+ 256, 257, 258, 259, 260, 261, 262, 263, 225, 225,
+ 1, 95, 362, 363, 364, 223, 226, 226, 226, 224,
+ 266, 226, 226, 226, 226, 226, 226, 226, 226, 226,
+ 226, 226, 226, 226, 226, 224, 494, 1, 15, 16,
+ 19, 36, 76, 77, 78, 82, 89, 90, 95, 106,
+ 107, 121, 150, 191, 304, 305, 306, 307, 308, 309,
+ 310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
+ 320, 321, 1, 3, 5, 17, 32, 36, 56, 58,
+ 68, 95, 122, 151, 178, 217, 386, 387, 388, 389,
+ 390, 391, 392, 393, 394, 395, 399, 400, 401, 402,
+ 403, 1, 61, 125, 416, 417, 418, 419, 226, 224,
+ 422, 1, 95, 125, 158, 426, 430, 431, 432, 433,
+ 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
+ 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
+ 226, 226, 226, 226, 226, 226, 226, 226, 226, 486,
+ 226, 482, 226, 226, 226, 226, 226, 226, 226, 226,
+ 226, 226, 226, 226, 226, 226, 226, 226, 226, 224,
+ 436, 1, 17, 32, 36, 118, 126, 127, 160, 214,
+ 341, 342, 343, 344, 345, 346, 347, 351, 352, 353,
+ 1, 125, 158, 214, 406, 410, 411, 412, 413, 1,
+ 36, 56, 61, 122, 327, 331, 332, 333, 337, 338,
+ 223, 226, 224, 272, 222, 223, 226, 226, 224, 237,
+ 1, 17, 32, 36, 95, 118, 134, 199, 214, 286,
+ 287, 288, 289, 290, 291, 292, 293, 294, 298, 1,
+ 14, 99, 125, 356, 357, 358, 359, 360, 226, 226,
+ 226, 226, 226, 226, 224, 511, 223, 226, 226, 226,
+ 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
+ 226, 226, 226, 226, 224, 242, 1, 95, 158, 214,
+ 367, 368, 369, 370, 371, 1, 95, 158, 377, 378,
+ 379, 380, 226, 224, 363, 123, 123, 123, 223, 105,
+ 105, 167, 105, 232, 232, 105, 105, 105, 167, 167,
+ 105, 232, 167, 167, 223, 223, 226, 226, 226, 322,
+ 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
+ 226, 226, 224, 305, 223, 226, 226, 226, 226, 396,
+ 226, 226, 226, 226, 226, 226, 226, 226, 224, 387,
+ 226, 226, 224, 417, 123, 223, 226, 226, 427, 224,
+ 431, 167, 232, 232, 105, 167, 167, 105, 123, 167,
+ 232, 167, 232, 105, 105, 105, 167, 167, 167, 232,
+ 105, 105, 232, 105, 105, 123, 105, 105, 167, 167,
+ 226, 167, 226, 232, 232, 167, 167, 167, 167, 167,
+ 168, 167, 168, 167, 167, 232, 232, 123, 232, 167,
+ 167, 167, 223, 223, 226, 226, 348, 226, 226, 226,
+ 226, 226, 224, 342, 226, 407, 226, 224, 411, 223,
+ 328, 226, 226, 226, 224, 332, 167, 223, 225, 123,
+ 123, 223, 223, 226, 226, 299, 226, 226, 226, 295,
+ 226, 224, 287, 223, 226, 226, 226, 224, 357, 167,
+ 167, 123, 167, 167, 232, 223, 123, 167, 105, 105,
+ 123, 123, 123, 123, 123, 123, 139, 140, 245, 246,
+ 139, 140, 247, 248, 123, 123, 105, 123, 123, 223,
+ 223, 226, 372, 226, 224, 368, 223, 226, 381, 224,
+ 378, 123, 223, 223, 223, 223, 223, 223, 223, 143,
+ 144, 145, 146, 147, 148, 149, 231, 232, 223, 223,
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 105,
+ 105, 232, 226, 105, 105, 105, 105, 232, 232, 123,
+ 105, 105, 232, 105, 234, 234, 223, 123, 185, 186,
+ 123, 167, 226, 123, 123, 123, 123, 105, 123, 123,
+ 123, 223, 123, 123, 223, 223, 123, 123, 226, 223,
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 51,
+ 173, 174, 175, 176, 177, 179, 180, 182, 183, 184,
+ 187, 189, 190, 192, 194, 196, 197, 200, 206, 487,
+ 488, 223, 51, 173, 174, 175, 176, 177, 179, 180,
+ 182, 183, 184, 187, 189, 190, 192, 194, 196, 197,
+ 200, 206, 483, 484, 223, 223, 223, 223, 223, 223,
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
+ 223, 223, 223, 123, 167, 226, 123, 105, 123, 123,
+ 123, 223, 123, 226, 123, 223, 226, 123, 123, 105,
+ 335, 336, 223, 223, 1, 95, 158, 221, 276, 277,
+ 278, 279, 280, 223, 223, 123, 167, 226, 123, 123,
+ 123, 226, 123, 223, 123, 123, 123, 223, 223, 223,
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
+ 223, 223, 223, 223, 223, 227, 223, 227, 223, 223,
+ 223, 223, 223, 123, 226, 123, 223, 123, 226, 223,
+ 223, 231, 231, 231, 231, 231, 231, 231, 223, 223,
+ 223, 91, 92, 323, 324, 223, 223, 223, 223, 223,
+ 223, 223, 223, 223, 223, 9, 10, 11, 233, 234,
+ 223, 223, 223, 223, 223, 223, 223, 8, 198, 397,
+ 398, 223, 223, 223, 223, 223, 223, 223, 223, 223,
+ 223, 223, 223, 128, 428, 429, 223, 227, 223, 227,
+ 223, 223, 13, 33, 43, 49, 65, 96, 104, 142,
+ 161, 207, 349, 350, 223, 223, 223, 223, 223, 223,
+ 128, 408, 409, 223, 51, 193, 198, 329, 330, 223,
+ 223, 171, 227, 334, 223, 226, 281, 226, 224, 277,
+ 223, 223, 4, 25, 40, 47, 64, 93, 100, 112,
+ 129, 130, 131, 181, 190, 195, 201, 205, 208, 213,
+ 219, 300, 301, 223, 223, 223, 51, 173, 174, 175,
+ 176, 177, 179, 180, 182, 183, 184, 187, 189, 190,
+ 192, 194, 196, 197, 200, 206, 296, 297, 223, 223,
+ 223, 223, 246, 248, 223, 64, 141, 172, 181, 187,
+ 201, 203, 204, 213, 219, 373, 374, 223, 223, 64,
+ 141, 172, 181, 187, 201, 203, 204, 213, 219, 382,
+ 383, 223, 227, 233, 233, 233, 223, 227, 223, 227,
+ 488, 484, 223, 227, 223, 227, 223, 227, 105, 336,
+ 223, 123, 226, 202, 234, 223, 223, 227, 223, 227,
+ 223, 227, 223, 227, 324, 398, 429, 350, 409, 330,
+ 223, 40, 62, 64, 108, 180, 181, 214, 282, 283,
+ 223, 223, 301, 297, 374, 383, 223, 227, 283
};
#define yyerrok (yyerrstatus = 0)
@@ -2499,7 +2494,11 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep)
# else
YYUSE (yyoutput);
# endif
- YYUSE (yytype);
+ switch (yytype)
+ {
+ default:
+ break;
+ }
}
@@ -2889,7 +2888,12 @@ yydestruct (yymsg, yytype, yyvaluep)
yymsg = "Deleting";
YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
- YYUSE (yytype);
+ switch (yytype)
+ {
+
+ default:
+ break;
+ }
}
@@ -3173,108 +3177,108 @@ yyreduce:
switch (yyn)
{
case 26:
-/* Line 1787 of yacc.c */
-#line 392 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 393 "conf_parser.y"
{ (yyval.number) = 0; }
break;
case 28:
-/* Line 1787 of yacc.c */
-#line 394 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 395 "conf_parser.y"
{
(yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
}
break;
case 29:
-/* Line 1787 of yacc.c */
-#line 398 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 399 "conf_parser.y"
{
(yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
}
break;
case 30:
-/* Line 1787 of yacc.c */
-#line 402 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 403 "conf_parser.y"
{
(yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
}
break;
case 31:
-/* Line 1787 of yacc.c */
-#line 406 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 407 "conf_parser.y"
{
(yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
}
break;
case 32:
-/* Line 1787 of yacc.c */
-#line 410 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 411 "conf_parser.y"
{
(yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
}
break;
case 33:
-/* Line 1787 of yacc.c */
-#line 414 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 415 "conf_parser.y"
{
(yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
}
break;
case 34:
-/* Line 1787 of yacc.c */
-#line 418 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 419 "conf_parser.y"
{
(yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[(3) - (3)].number);
}
break;
case 35:
-/* Line 1787 of yacc.c */
-#line 422 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 423 "conf_parser.y"
{
(yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 365 + (yyvsp[(3) - (3)].number);
}
break;
case 36:
-/* Line 1787 of yacc.c */
-#line 427 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 428 "conf_parser.y"
{ (yyval.number) = 0; }
break;
case 38:
-/* Line 1787 of yacc.c */
-#line 428 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 429 "conf_parser.y"
{ (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
break;
case 39:
-/* Line 1787 of yacc.c */
-#line 429 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 430 "conf_parser.y"
{ (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
break;
case 40:
-/* Line 1787 of yacc.c */
-#line 430 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 431 "conf_parser.y"
{ (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
break;
case 41:
-/* Line 1787 of yacc.c */
-#line 431 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 432 "conf_parser.y"
{ (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
break;
case 48:
-/* Line 1787 of yacc.c */
-#line 445 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 446 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
add_conf_module(libio_basename(yylval.string));
@@ -3282,8 +3286,8 @@ yyreduce:
break;
case 49:
-/* Line 1787 of yacc.c */
-#line 451 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 452 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
mod_add_path(yylval.string);
@@ -3291,8 +3295,8 @@ yyreduce:
break;
case 75:
-/* Line 1787 of yacc.c */
-#line 477 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 478 "conf_parser.y"
{
#ifdef HAVE_LIBCRYPTO
if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
@@ -3302,8 +3306,8 @@ yyreduce:
break;
case 76:
-/* Line 1787 of yacc.c */
-#line 483 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 484 "conf_parser.y"
{
#ifdef HAVE_LIBCRYPTO
if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
@@ -3313,8 +3317,8 @@ yyreduce:
break;
case 79:
-/* Line 1787 of yacc.c */
-#line 492 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 493 "conf_parser.y"
{
#ifdef HAVE_LIBCRYPTO
if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
@@ -3324,8 +3328,8 @@ yyreduce:
break;
case 80:
-/* Line 1787 of yacc.c */
-#line 498 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 499 "conf_parser.y"
{
#ifdef HAVE_LIBCRYPTO
if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
@@ -3335,8 +3339,8 @@ yyreduce:
break;
case 81:
-/* Line 1787 of yacc.c */
-#line 506 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 507 "conf_parser.y"
{
#ifdef HAVE_LIBCRYPTO
if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
@@ -3380,8 +3384,8 @@ yyreduce:
break;
case 82:
-/* Line 1787 of yacc.c */
-#line 548 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 549 "conf_parser.y"
{
#ifdef HAVE_LIBCRYPTO
if (conf_parser_ctx.pass == 1)
@@ -3442,8 +3446,8 @@ yyreduce:
break;
case 83:
-/* Line 1787 of yacc.c */
-#line 607 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 608 "conf_parser.y"
{
/* TBD - XXX: error reporting */
#ifdef HAVE_LIBCRYPTO
@@ -3473,8 +3477,8 @@ yyreduce:
break;
case 84:
-/* Line 1787 of yacc.c */
-#line 635 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 636 "conf_parser.y"
{
#ifdef HAVE_LIBCRYPTO
if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
@@ -3484,8 +3488,8 @@ yyreduce:
break;
case 85:
-/* Line 1787 of yacc.c */
-#line 643 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 644 "conf_parser.y"
{
/* this isn't rehashable */
if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
@@ -3502,8 +3506,8 @@ yyreduce:
break;
case 86:
-/* Line 1787 of yacc.c */
-#line 658 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 659 "conf_parser.y"
{
/* this isn't rehashable */
if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
@@ -3520,8 +3524,8 @@ yyreduce:
break;
case 87:
-/* Line 1787 of yacc.c */
-#line 673 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 674 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
{
@@ -3532,8 +3536,8 @@ yyreduce:
break;
case 88:
-/* Line 1787 of yacc.c */
-#line 682 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 683 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
{
@@ -3549,8 +3553,8 @@ yyreduce:
break;
case 89:
-/* Line 1787 of yacc.c */
-#line 696 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 697 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
{
@@ -3561,8 +3565,8 @@ yyreduce:
break;
case 90:
-/* Line 1787 of yacc.c */
-#line 705 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 706 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
{
@@ -3592,8 +3596,8 @@ yyreduce:
break;
case 91:
-/* Line 1787 of yacc.c */
-#line 733 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 734 "conf_parser.y"
{
#ifdef IPV6
if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
@@ -3625,8 +3629,8 @@ yyreduce:
break;
case 92:
-/* Line 1787 of yacc.c */
-#line 763 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 764 "conf_parser.y"
{
if (conf_parser_ctx.pass != 2)
break;
@@ -3653,8 +3657,8 @@ yyreduce:
break;
case 93:
-/* Line 1787 of yacc.c */
-#line 788 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 789 "conf_parser.y"
{
if (conf_parser_ctx.pass != 2)
break;
@@ -3678,8 +3682,8 @@ yyreduce:
break;
case 94:
-/* Line 1787 of yacc.c */
-#line 810 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 811 "conf_parser.y"
{
if (conf_parser_ctx.pass != 2)
break;
@@ -3703,8 +3707,8 @@ yyreduce:
break;
case 95:
-/* Line 1787 of yacc.c */
-#line 832 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 833 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
ServerInfo.hub = yylval.number;
@@ -3712,8 +3716,8 @@ yyreduce:
break;
case 103:
-/* Line 1787 of yacc.c */
-#line 847 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 848 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
{
@@ -3724,8 +3728,8 @@ yyreduce:
break;
case 104:
-/* Line 1787 of yacc.c */
-#line 856 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 857 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
{
@@ -3736,8 +3740,8 @@ yyreduce:
break;
case 105:
-/* Line 1787 of yacc.c */
-#line 865 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 866 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
{
@@ -3748,8 +3752,8 @@ yyreduce:
break;
case 112:
-/* Line 1787 of yacc.c */
-#line 883 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 884 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
ConfigLoggingEntry.use_logging = yylval.number;
@@ -3757,8 +3761,8 @@ yyreduce:
break;
case 113:
-/* Line 1787 of yacc.c */
-#line 889 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 890 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
reset_block_state();
@@ -3766,8 +3770,8 @@ yyreduce:
break;
case 114:
-/* Line 1787 of yacc.c */
-#line 893 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 894 "conf_parser.y"
{
if (conf_parser_ctx.pass != 2)
break;
@@ -3779,8 +3783,8 @@ yyreduce:
break;
case 121:
-/* Line 1787 of yacc.c */
-#line 909 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 910 "conf_parser.y"
{
if (conf_parser_ctx.pass != 2)
break;
@@ -3790,24 +3794,24 @@ yyreduce:
break;
case 122:
-/* Line 1787 of yacc.c */
-#line 917 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 918 "conf_parser.y"
{
block_state.size.value = (yyvsp[(3) - (4)].number);
}
break;
case 123:
-/* Line 1787 of yacc.c */
-#line 920 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 921 "conf_parser.y"
{
block_state.size.value = 0;
}
break;
case 124:
-/* Line 1787 of yacc.c */
-#line 925 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 926 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.type.value = 0;
@@ -3815,8 +3819,8 @@ yyreduce:
break;
case 128:
-/* Line 1787 of yacc.c */
-#line 932 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 933 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.type.value = LOG_TYPE_USER;
@@ -3824,8 +3828,8 @@ yyreduce:
break;
case 129:
-/* Line 1787 of yacc.c */
-#line 936 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 937 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.type.value = LOG_TYPE_OPER;
@@ -3833,8 +3837,8 @@ yyreduce:
break;
case 130:
-/* Line 1787 of yacc.c */
-#line 940 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 941 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.type.value = LOG_TYPE_GLINE;
@@ -3842,8 +3846,8 @@ yyreduce:
break;
case 131:
-/* Line 1787 of yacc.c */
-#line 944 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 945 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.type.value = LOG_TYPE_DLINE;
@@ -3851,8 +3855,8 @@ yyreduce:
break;
case 132:
-/* Line 1787 of yacc.c */
-#line 948 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 949 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.type.value = LOG_TYPE_KLINE;
@@ -3860,8 +3864,8 @@ yyreduce:
break;
case 133:
-/* Line 1787 of yacc.c */
-#line 952 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 953 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.type.value = LOG_TYPE_KILL;
@@ -3869,8 +3873,8 @@ yyreduce:
break;
case 134:
-/* Line 1787 of yacc.c */
-#line 956 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 957 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.type.value = LOG_TYPE_DEBUG;
@@ -3878,8 +3882,8 @@ yyreduce:
break;
case 135:
-/* Line 1787 of yacc.c */
-#line 966 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 967 "conf_parser.y"
{
if (conf_parser_ctx.pass != 2)
break;
@@ -3890,8 +3894,8 @@ yyreduce:
break;
case 136:
-/* Line 1787 of yacc.c */
-#line 973 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 974 "conf_parser.y"
{
dlink_node *ptr = NULL;
@@ -3963,8 +3967,8 @@ yyreduce:
break;
case 148:
-/* Line 1787 of yacc.c */
-#line 1048 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1049 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
@@ -3972,8 +3976,8 @@ yyreduce:
break;
case 149:
-/* Line 1787 of yacc.c */
-#line 1054 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1055 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
@@ -3981,8 +3985,8 @@ yyreduce:
break;
case 150:
-/* Line 1787 of yacc.c */
-#line 1060 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1061 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
@@ -3990,8 +3994,8 @@ yyreduce:
break;
case 151:
-/* Line 1787 of yacc.c */
-#line 1066 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1067 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
{
@@ -4004,8 +4008,8 @@ yyreduce:
break;
case 152:
-/* Line 1787 of yacc.c */
-#line 1077 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1078 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
@@ -4013,8 +4017,8 @@ yyreduce:
break;
case 153:
-/* Line 1787 of yacc.c */
-#line 1083 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1084 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
@@ -4022,8 +4026,8 @@ yyreduce:
break;
case 154:
-/* Line 1787 of yacc.c */
-#line 1089 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1090 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.modes.value = 0;
@@ -4031,8 +4035,8 @@ yyreduce:
break;
case 158:
-/* Line 1787 of yacc.c */
-#line 1096 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1097 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.modes.value |= UMODE_BOTS;
@@ -4040,8 +4044,8 @@ yyreduce:
break;
case 159:
-/* Line 1787 of yacc.c */
-#line 1100 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1101 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.modes.value |= UMODE_CCONN;
@@ -4049,8 +4053,8 @@ yyreduce:
break;
case 160:
-/* Line 1787 of yacc.c */
-#line 1104 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1105 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.modes.value |= UMODE_CCONN_FULL;
@@ -4058,8 +4062,8 @@ yyreduce:
break;
case 161:
-/* Line 1787 of yacc.c */
-#line 1108 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1109 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.modes.value |= UMODE_DEAF;
@@ -4067,8 +4071,8 @@ yyreduce:
break;
case 162:
-/* Line 1787 of yacc.c */
-#line 1112 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1113 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.modes.value |= UMODE_DEBUG;
@@ -4076,8 +4080,8 @@ yyreduce:
break;
case 163:
-/* Line 1787 of yacc.c */
-#line 1116 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1117 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.modes.value |= UMODE_FULL;
@@ -4085,8 +4089,8 @@ yyreduce:
break;
case 164:
-/* Line 1787 of yacc.c */
-#line 1120 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1121 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.modes.value |= UMODE_HIDDEN;
@@ -4094,8 +4098,8 @@ yyreduce:
break;
case 165:
-/* Line 1787 of yacc.c */
-#line 1124 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1125 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.modes.value |= UMODE_SKILL;
@@ -4103,8 +4107,8 @@ yyreduce:
break;
case 166:
-/* Line 1787 of yacc.c */
-#line 1128 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1129 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.modes.value |= UMODE_NCHANGE;
@@ -4112,8 +4116,8 @@ yyreduce:
break;
case 167:
-/* Line 1787 of yacc.c */
-#line 1132 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1133 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.modes.value |= UMODE_REJ;
@@ -4121,8 +4125,8 @@ yyreduce:
break;
case 168:
-/* Line 1787 of yacc.c */
-#line 1136 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1137 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.modes.value |= UMODE_UNAUTH;
@@ -4130,8 +4134,8 @@ yyreduce:
break;
case 169:
-/* Line 1787 of yacc.c */
-#line 1140 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1141 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.modes.value |= UMODE_SPY;
@@ -4139,8 +4143,8 @@ yyreduce:
break;
case 170:
-/* Line 1787 of yacc.c */
-#line 1144 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1145 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.modes.value |= UMODE_EXTERNAL;
@@ -4148,8 +4152,8 @@ yyreduce:
break;
case 171:
-/* Line 1787 of yacc.c */
-#line 1148 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1149 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.modes.value |= UMODE_OPERWALL;
@@ -4157,8 +4161,8 @@ yyreduce:
break;
case 172:
-/* Line 1787 of yacc.c */
-#line 1152 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1153 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.modes.value |= UMODE_SERVNOTICE;
@@ -4166,8 +4170,8 @@ yyreduce:
break;
case 173:
-/* Line 1787 of yacc.c */
-#line 1156 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1157 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.modes.value |= UMODE_INVISIBLE;
@@ -4175,8 +4179,8 @@ yyreduce:
break;
case 174:
-/* Line 1787 of yacc.c */
-#line 1160 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1161 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.modes.value |= UMODE_WALLOP;
@@ -4184,8 +4188,8 @@ yyreduce:
break;
case 175:
-/* Line 1787 of yacc.c */
-#line 1164 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1165 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.modes.value |= UMODE_SOFTCALLERID;
@@ -4193,8 +4197,8 @@ yyreduce:
break;
case 176:
-/* Line 1787 of yacc.c */
-#line 1168 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1169 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.modes.value |= UMODE_CALLERID;
@@ -4202,8 +4206,8 @@ yyreduce:
break;
case 177:
-/* Line 1787 of yacc.c */
-#line 1172 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1173 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.modes.value |= UMODE_LOCOPS;
@@ -4211,8 +4215,8 @@ yyreduce:
break;
case 178:
-/* Line 1787 of yacc.c */
-#line 1178 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1179 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.port.value = 0;
@@ -4220,8 +4224,8 @@ yyreduce:
break;
case 182:
-/* Line 1787 of yacc.c */
-#line 1185 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1186 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.port.value |= OPER_FLAG_GLOBAL_KILL;
@@ -4229,8 +4233,8 @@ yyreduce:
break;
case 183:
-/* Line 1787 of yacc.c */
-#line 1189 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1190 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.port.value |= OPER_FLAG_REMOTE;
@@ -4238,8 +4242,8 @@ yyreduce:
break;
case 184:
-/* Line 1787 of yacc.c */
-#line 1193 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1194 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.port.value |= OPER_FLAG_K;
@@ -4247,8 +4251,8 @@ yyreduce:
break;
case 185:
-/* Line 1787 of yacc.c */
-#line 1197 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1198 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.port.value |= OPER_FLAG_UNKLINE;
@@ -4256,8 +4260,8 @@ yyreduce:
break;
case 186:
-/* Line 1787 of yacc.c */
-#line 1201 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1202 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.port.value |= OPER_FLAG_DLINE;
@@ -4265,8 +4269,8 @@ yyreduce:
break;
case 187:
-/* Line 1787 of yacc.c */
-#line 1205 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1206 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.port.value |= OPER_FLAG_UNDLINE;
@@ -4274,8 +4278,8 @@ yyreduce:
break;
case 188:
-/* Line 1787 of yacc.c */
-#line 1209 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1210 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.port.value |= OPER_FLAG_X;
@@ -4283,8 +4287,8 @@ yyreduce:
break;
case 189:
-/* Line 1787 of yacc.c */
-#line 1213 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1214 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.port.value |= OPER_FLAG_GLINE;
@@ -4292,8 +4296,8 @@ yyreduce:
break;
case 190:
-/* Line 1787 of yacc.c */
-#line 1217 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1218 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.port.value |= OPER_FLAG_DIE;
@@ -4301,8 +4305,8 @@ yyreduce:
break;
case 191:
-/* Line 1787 of yacc.c */
-#line 1221 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1222 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.port.value |= OPER_FLAG_RESTART;
@@ -4310,8 +4314,8 @@ yyreduce:
break;
case 192:
-/* Line 1787 of yacc.c */
-#line 1225 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1226 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.port.value |= OPER_FLAG_REHASH;
@@ -4319,8 +4323,8 @@ yyreduce:
break;
case 193:
-/* Line 1787 of yacc.c */
-#line 1229 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1230 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.port.value |= OPER_FLAG_ADMIN;
@@ -4328,8 +4332,8 @@ yyreduce:
break;
case 194:
-/* Line 1787 of yacc.c */
-#line 1233 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1234 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.port.value |= OPER_FLAG_N;
@@ -4337,8 +4341,8 @@ yyreduce:
break;
case 195:
-/* Line 1787 of yacc.c */
-#line 1237 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1238 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.port.value |= OPER_FLAG_OPERWALL;
@@ -4346,8 +4350,8 @@ yyreduce:
break;
case 196:
-/* Line 1787 of yacc.c */
-#line 1241 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1242 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.port.value |= OPER_FLAG_GLOBOPS;
@@ -4355,8 +4359,8 @@ yyreduce:
break;
case 197:
-/* Line 1787 of yacc.c */
-#line 1245 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1246 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.port.value |= OPER_FLAG_OPER_SPY;
@@ -4364,8 +4368,8 @@ yyreduce:
break;
case 198:
-/* Line 1787 of yacc.c */
-#line 1249 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1250 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.port.value |= OPER_FLAG_REMOTEBAN;
@@ -4373,8 +4377,8 @@ yyreduce:
break;
case 199:
-/* Line 1787 of yacc.c */
-#line 1253 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1254 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.port.value |= OPER_FLAG_SET;
@@ -4382,8 +4386,8 @@ yyreduce:
break;
case 200:
-/* Line 1787 of yacc.c */
-#line 1257 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1258 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.port.value |= OPER_FLAG_MODULE;
@@ -4391,8 +4395,8 @@ yyreduce:
break;
case 201:
-/* Line 1787 of yacc.c */
-#line 1267 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1268 "conf_parser.y"
{
if (conf_parser_ctx.pass != 1)
break;
@@ -4408,8 +4412,8 @@ yyreduce:
break;
case 202:
-/* Line 1787 of yacc.c */
-#line 1279 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1280 "conf_parser.y"
{
struct ClassItem *class = NULL;
@@ -4460,8 +4464,8 @@ yyreduce:
break;
case 222:
-/* Line 1787 of yacc.c */
-#line 1345 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1346 "conf_parser.y"
{
if (conf_parser_ctx.pass == 1)
strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
@@ -4469,8 +4473,8 @@ yyreduce:
break;
case 223:
-/* Line 1787 of yacc.c */
-#line 1351 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1352 "conf_parser.y"
{
if (conf_parser_ctx.pass == 1)
block_state.ping_freq.value = (yyvsp[(3) - (4)].number);
@@ -4478,8 +4482,8 @@ yyreduce:
break;
case 224:
-/* Line 1787 of yacc.c */
-#line 1357 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1358 "conf_parser.y"
{
if (conf_parser_ctx.pass == 1)
block_state.max_perip.value = (yyvsp[(3) - (4)].number);
@@ -4487,8 +4491,8 @@ yyreduce:
break;
case 225:
-/* Line 1787 of yacc.c */
-#line 1363 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1364 "conf_parser.y"
{
if (conf_parser_ctx.pass == 1)
block_state.con_freq.value = (yyvsp[(3) - (4)].number);
@@ -4496,8 +4500,8 @@ yyreduce:
break;
case 226:
-/* Line 1787 of yacc.c */
-#line 1369 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1370 "conf_parser.y"
{
if (conf_parser_ctx.pass == 1)
block_state.max_total.value = (yyvsp[(3) - (4)].number);
@@ -4505,8 +4509,8 @@ yyreduce:
break;
case 227:
-/* Line 1787 of yacc.c */
-#line 1375 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1376 "conf_parser.y"
{
if (conf_parser_ctx.pass == 1)
block_state.max_global.value = (yyvsp[(3) - (4)].number);
@@ -4514,8 +4518,8 @@ yyreduce:
break;
case 228:
-/* Line 1787 of yacc.c */
-#line 1381 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1382 "conf_parser.y"
{
if (conf_parser_ctx.pass == 1)
block_state.max_local.value = (yyvsp[(3) - (4)].number);
@@ -4523,8 +4527,8 @@ yyreduce:
break;
case 229:
-/* Line 1787 of yacc.c */
-#line 1387 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1388 "conf_parser.y"
{
if (conf_parser_ctx.pass == 1)
block_state.max_ident.value = (yyvsp[(3) - (4)].number);
@@ -4532,8 +4536,8 @@ yyreduce:
break;
case 230:
-/* Line 1787 of yacc.c */
-#line 1393 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1394 "conf_parser.y"
{
if (conf_parser_ctx.pass == 1)
block_state.max_sendq.value = (yyvsp[(3) - (4)].number);
@@ -4541,8 +4545,8 @@ yyreduce:
break;
case 231:
-/* Line 1787 of yacc.c */
-#line 1399 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1400 "conf_parser.y"
{
if (conf_parser_ctx.pass == 1)
if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
@@ -4551,8 +4555,8 @@ yyreduce:
break;
case 232:
-/* Line 1787 of yacc.c */
-#line 1406 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1407 "conf_parser.y"
{
if (conf_parser_ctx.pass == 1)
block_state.cidr_bitlen_ipv4.value = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
@@ -4560,8 +4564,8 @@ yyreduce:
break;
case 233:
-/* Line 1787 of yacc.c */
-#line 1412 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1413 "conf_parser.y"
{
if (conf_parser_ctx.pass == 1)
block_state.cidr_bitlen_ipv6.value = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
@@ -4569,8 +4573,8 @@ yyreduce:
break;
case 234:
-/* Line 1787 of yacc.c */
-#line 1418 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1419 "conf_parser.y"
{
if (conf_parser_ctx.pass == 1)
block_state.number_per_cidr.value = (yyvsp[(3) - (4)].number);
@@ -4578,8 +4582,8 @@ yyreduce:
break;
case 235:
-/* Line 1787 of yacc.c */
-#line 1424 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1425 "conf_parser.y"
{
if (conf_parser_ctx.pass != 1)
break;
@@ -4590,8 +4594,8 @@ yyreduce:
break;
case 236:
-/* Line 1787 of yacc.c */
-#line 1433 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1434 "conf_parser.y"
{
if (conf_parser_ctx.pass != 1)
break;
@@ -4602,8 +4606,8 @@ yyreduce:
break;
case 237:
-/* Line 1787 of yacc.c */
-#line 1442 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1443 "conf_parser.y"
{
if (conf_parser_ctx.pass == 1)
block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
@@ -4611,8 +4615,8 @@ yyreduce:
break;
case 241:
-/* Line 1787 of yacc.c */
-#line 1449 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1450 "conf_parser.y"
{
if (conf_parser_ctx.pass == 1)
block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
@@ -4620,8 +4624,8 @@ yyreduce:
break;
case 242:
-/* Line 1787 of yacc.c */
-#line 1453 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1454 "conf_parser.y"
{
if (conf_parser_ctx.pass == 1)
block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
@@ -4629,8 +4633,8 @@ yyreduce:
break;
case 243:
-/* Line 1787 of yacc.c */
-#line 1463 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1464 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
reset_block_state();
@@ -4638,16 +4642,16 @@ yyreduce:
break;
case 245:
-/* Line 1787 of yacc.c */
-#line 1469 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1470 "conf_parser.y"
{
block_state.flags.value = 0;
}
break;
case 249:
-/* Line 1787 of yacc.c */
-#line 1475 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1476 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= LISTENER_SSL;
@@ -4655,8 +4659,8 @@ yyreduce:
break;
case 250:
-/* Line 1787 of yacc.c */
-#line 1479 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1480 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= LISTENER_HIDDEN;
@@ -4664,8 +4668,8 @@ yyreduce:
break;
case 251:
-/* Line 1787 of yacc.c */
-#line 1483 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1484 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= LISTENER_SERVER;
@@ -4673,14 +4677,14 @@ yyreduce:
break;
case 259:
-/* Line 1787 of yacc.c */
-#line 1491 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1492 "conf_parser.y"
{ block_state.flags.value = 0; }
break;
case 263:
-/* Line 1787 of yacc.c */
-#line 1496 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1497 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
{
@@ -4698,8 +4702,8 @@ yyreduce:
break;
case 264:
-/* Line 1787 of yacc.c */
-#line 1510 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1511 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
{
@@ -4721,8 +4725,8 @@ yyreduce:
break;
case 265:
-/* Line 1787 of yacc.c */
-#line 1530 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1531 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
@@ -4730,8 +4734,8 @@ yyreduce:
break;
case 266:
-/* Line 1787 of yacc.c */
-#line 1536 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1537 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
@@ -4739,8 +4743,8 @@ yyreduce:
break;
case 267:
-/* Line 1787 of yacc.c */
-#line 1545 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1546 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
reset_block_state();
@@ -4748,8 +4752,8 @@ yyreduce:
break;
case 268:
-/* Line 1787 of yacc.c */
-#line 1549 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1550 "conf_parser.y"
{
dlink_node *ptr = NULL;
@@ -4789,8 +4793,8 @@ yyreduce:
break;
case 280:
-/* Line 1787 of yacc.c */
-#line 1592 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1593 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
@@ -4798,8 +4802,8 @@ yyreduce:
break;
case 281:
-/* Line 1787 of yacc.c */
-#line 1598 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1599 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
@@ -4807,8 +4811,8 @@ yyreduce:
break;
case 282:
-/* Line 1787 of yacc.c */
-#line 1604 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1605 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
@@ -4816,8 +4820,8 @@ yyreduce:
break;
case 283:
-/* Line 1787 of yacc.c */
-#line 1610 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1611 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
{
@@ -4830,8 +4834,8 @@ yyreduce:
break;
case 284:
-/* Line 1787 of yacc.c */
-#line 1621 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1622 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
@@ -4839,8 +4843,8 @@ yyreduce:
break;
case 288:
-/* Line 1787 of yacc.c */
-#line 1628 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1629 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
@@ -4848,8 +4852,8 @@ yyreduce:
break;
case 289:
-/* Line 1787 of yacc.c */
-#line 1632 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1633 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= CONF_FLAGS_NOLIMIT;
@@ -4857,8 +4861,8 @@ yyreduce:
break;
case 290:
-/* Line 1787 of yacc.c */
-#line 1636 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1637 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
@@ -4866,8 +4870,8 @@ yyreduce:
break;
case 291:
-/* Line 1787 of yacc.c */
-#line 1640 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1641 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
@@ -4875,8 +4879,8 @@ yyreduce:
break;
case 292:
-/* Line 1787 of yacc.c */
-#line 1644 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1645 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
@@ -4884,8 +4888,8 @@ yyreduce:
break;
case 293:
-/* Line 1787 of yacc.c */
-#line 1648 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1649 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= CONF_FLAGS_NO_TILDE;
@@ -4893,8 +4897,8 @@ yyreduce:
break;
case 294:
-/* Line 1787 of yacc.c */
-#line 1652 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1653 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
@@ -4902,8 +4906,8 @@ yyreduce:
break;
case 295:
-/* Line 1787 of yacc.c */
-#line 1656 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1657 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
@@ -4911,8 +4915,8 @@ yyreduce:
break;
case 296:
-/* Line 1787 of yacc.c */
-#line 1660 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1661 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= CONF_FLAGS_WEBIRC;
@@ -4920,8 +4924,8 @@ yyreduce:
break;
case 297:
-/* Line 1787 of yacc.c */
-#line 1664 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1665 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
@@ -4929,8 +4933,8 @@ yyreduce:
break;
case 298:
-/* Line 1787 of yacc.c */
-#line 1670 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1671 "conf_parser.y"
{
if (conf_parser_ctx.pass != 2)
break;
@@ -4946,8 +4950,8 @@ yyreduce:
break;
case 299:
-/* Line 1787 of yacc.c */
-#line 1684 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1685 "conf_parser.y"
{
if (conf_parser_ctx.pass != 2)
break;
@@ -4958,8 +4962,8 @@ yyreduce:
break;
case 300:
-/* Line 1787 of yacc.c */
-#line 1693 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1694 "conf_parser.y"
{
if (conf_parser_ctx.pass != 2)
break;
@@ -4970,8 +4974,8 @@ yyreduce:
break;
case 301:
-/* Line 1787 of yacc.c */
-#line 1706 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1707 "conf_parser.y"
{
if (conf_parser_ctx.pass != 2)
break;
@@ -4982,8 +4986,8 @@ yyreduce:
break;
case 302:
-/* Line 1787 of yacc.c */
-#line 1713 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1714 "conf_parser.y"
{
if (IsChanPrefix(block_state.name.buf[0]))
create_channel_resv(block_state.name.buf, block_state.rpass.buf);
@@ -4993,8 +4997,8 @@ yyreduce:
break;
case 309:
-/* Line 1787 of yacc.c */
-#line 1724 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1725 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
@@ -5002,8 +5006,8 @@ yyreduce:
break;
case 310:
-/* Line 1787 of yacc.c */
-#line 1730 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1731 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
@@ -5011,8 +5015,8 @@ yyreduce:
break;
case 311:
-/* Line 1787 of yacc.c */
-#line 1736 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1737 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
@@ -5020,8 +5024,8 @@ yyreduce:
break;
case 317:
-/* Line 1787 of yacc.c */
-#line 1750 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1751 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
{
@@ -5035,8 +5039,8 @@ yyreduce:
break;
case 318:
-/* Line 1787 of yacc.c */
-#line 1765 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1766 "conf_parser.y"
{
if (conf_parser_ctx.pass != 2)
break;
@@ -5051,8 +5055,8 @@ yyreduce:
break;
case 319:
-/* Line 1787 of yacc.c */
-#line 1776 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1777 "conf_parser.y"
{
struct MaskItem *conf = NULL;
@@ -5068,8 +5072,8 @@ yyreduce:
break;
case 326:
-/* Line 1787 of yacc.c */
-#line 1793 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1794 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
@@ -5077,8 +5081,8 @@ yyreduce:
break;
case 327:
-/* Line 1787 of yacc.c */
-#line 1799 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1800 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
{
@@ -5099,8 +5103,8 @@ yyreduce:
break;
case 328:
-/* Line 1787 of yacc.c */
-#line 1818 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1819 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value = 0;
@@ -5108,8 +5112,8 @@ yyreduce:
break;
case 332:
-/* Line 1787 of yacc.c */
-#line 1825 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1826 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= SHARED_KLINE;
@@ -5117,8 +5121,8 @@ yyreduce:
break;
case 333:
-/* Line 1787 of yacc.c */
-#line 1829 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1830 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= SHARED_UNKLINE;
@@ -5126,8 +5130,8 @@ yyreduce:
break;
case 334:
-/* Line 1787 of yacc.c */
-#line 1833 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1834 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= SHARED_DLINE;
@@ -5135,8 +5139,8 @@ yyreduce:
break;
case 335:
-/* Line 1787 of yacc.c */
-#line 1837 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1838 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= SHARED_UNDLINE;
@@ -5144,8 +5148,8 @@ yyreduce:
break;
case 336:
-/* Line 1787 of yacc.c */
-#line 1841 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1842 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= SHARED_XLINE;
@@ -5153,8 +5157,8 @@ yyreduce:
break;
case 337:
-/* Line 1787 of yacc.c */
-#line 1845 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1846 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= SHARED_UNXLINE;
@@ -5162,8 +5166,8 @@ yyreduce:
break;
case 338:
-/* Line 1787 of yacc.c */
-#line 1849 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1850 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= SHARED_RESV;
@@ -5171,8 +5175,8 @@ yyreduce:
break;
case 339:
-/* Line 1787 of yacc.c */
-#line 1853 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1854 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= SHARED_UNRESV;
@@ -5180,8 +5184,8 @@ yyreduce:
break;
case 340:
-/* Line 1787 of yacc.c */
-#line 1857 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1858 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= SHARED_LOCOPS;
@@ -5189,8 +5193,8 @@ yyreduce:
break;
case 341:
-/* Line 1787 of yacc.c */
-#line 1861 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1862 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value = SHARED_ALL;
@@ -5198,8 +5202,8 @@ yyreduce:
break;
case 342:
-/* Line 1787 of yacc.c */
-#line 1870 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1871 "conf_parser.y"
{
if (conf_parser_ctx.pass != 2)
break;
@@ -5212,8 +5216,8 @@ yyreduce:
break;
case 343:
-/* Line 1787 of yacc.c */
-#line 1879 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1880 "conf_parser.y"
{
struct MaskItem *conf = NULL;
@@ -5227,8 +5231,8 @@ yyreduce:
break;
case 349:
-/* Line 1787 of yacc.c */
-#line 1894 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1895 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
@@ -5236,8 +5240,8 @@ yyreduce:
break;
case 350:
-/* Line 1787 of yacc.c */
-#line 1900 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1901 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value = 0;
@@ -5245,8 +5249,8 @@ yyreduce:
break;
case 354:
-/* Line 1787 of yacc.c */
-#line 1907 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1908 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= SHARED_KLINE;
@@ -5254,8 +5258,8 @@ yyreduce:
break;
case 355:
-/* Line 1787 of yacc.c */
-#line 1911 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1912 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= SHARED_UNKLINE;
@@ -5263,8 +5267,8 @@ yyreduce:
break;
case 356:
-/* Line 1787 of yacc.c */
-#line 1915 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1916 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= SHARED_DLINE;
@@ -5272,8 +5276,8 @@ yyreduce:
break;
case 357:
-/* Line 1787 of yacc.c */
-#line 1919 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1920 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= SHARED_UNDLINE;
@@ -5281,8 +5285,8 @@ yyreduce:
break;
case 358:
-/* Line 1787 of yacc.c */
-#line 1923 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1924 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= SHARED_XLINE;
@@ -5290,8 +5294,8 @@ yyreduce:
break;
case 359:
-/* Line 1787 of yacc.c */
-#line 1927 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1928 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= SHARED_UNXLINE;
@@ -5299,8 +5303,8 @@ yyreduce:
break;
case 360:
-/* Line 1787 of yacc.c */
-#line 1931 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1932 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= SHARED_RESV;
@@ -5308,8 +5312,8 @@ yyreduce:
break;
case 361:
-/* Line 1787 of yacc.c */
-#line 1935 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1936 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= SHARED_UNRESV;
@@ -5317,8 +5321,8 @@ yyreduce:
break;
case 362:
-/* Line 1787 of yacc.c */
-#line 1939 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1940 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= SHARED_LOCOPS;
@@ -5326,8 +5330,8 @@ yyreduce:
break;
case 363:
-/* Line 1787 of yacc.c */
-#line 1943 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1944 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value = SHARED_ALL;
@@ -5335,8 +5339,8 @@ yyreduce:
break;
case 364:
-/* Line 1787 of yacc.c */
-#line 1952 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1953 "conf_parser.y"
{
if (conf_parser_ctx.pass != 2)
@@ -5348,8 +5352,8 @@ yyreduce:
break;
case 365:
-/* Line 1787 of yacc.c */
-#line 1960 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 1961 "conf_parser.y"
{
struct MaskItem *conf = NULL;
struct addrinfo hints, *res;
@@ -5409,8 +5413,8 @@ yyreduce:
break;
case 382:
-/* Line 1787 of yacc.c */
-#line 2026 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2027 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
@@ -5418,8 +5422,8 @@ yyreduce:
break;
case 383:
-/* Line 1787 of yacc.c */
-#line 2032 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2033 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
@@ -5427,8 +5431,8 @@ yyreduce:
break;
case 384:
-/* Line 1787 of yacc.c */
-#line 2038 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2039 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
@@ -5436,8 +5440,8 @@ yyreduce:
break;
case 385:
-/* Line 1787 of yacc.c */
-#line 2044 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2045 "conf_parser.y"
{
if (conf_parser_ctx.pass != 2)
break;
@@ -5452,8 +5456,8 @@ yyreduce:
break;
case 386:
-/* Line 1787 of yacc.c */
-#line 2057 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2058 "conf_parser.y"
{
if (conf_parser_ctx.pass != 2)
break;
@@ -5468,8 +5472,8 @@ yyreduce:
break;
case 387:
-/* Line 1787 of yacc.c */
-#line 2070 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2071 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.port.value = (yyvsp[(3) - (4)].number);
@@ -5477,8 +5481,8 @@ yyreduce:
break;
case 388:
-/* Line 1787 of yacc.c */
-#line 2076 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2077 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.aftype.value = AF_INET;
@@ -5486,8 +5490,8 @@ yyreduce:
break;
case 389:
-/* Line 1787 of yacc.c */
-#line 2080 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2081 "conf_parser.y"
{
#ifdef IPV6
if (conf_parser_ctx.pass == 2)
@@ -5497,16 +5501,16 @@ yyreduce:
break;
case 390:
-/* Line 1787 of yacc.c */
-#line 2088 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2089 "conf_parser.y"
{
block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
}
break;
case 394:
-/* Line 1787 of yacc.c */
-#line 2094 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2095 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
@@ -5514,8 +5518,8 @@ yyreduce:
break;
case 395:
-/* Line 1787 of yacc.c */
-#line 2098 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2099 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.flags.value |= CONF_FLAGS_SSL;
@@ -5523,8 +5527,8 @@ yyreduce:
break;
case 396:
-/* Line 1787 of yacc.c */
-#line 2104 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2105 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
{
@@ -5537,8 +5541,8 @@ yyreduce:
break;
case 397:
-/* Line 1787 of yacc.c */
-#line 2115 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2116 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
@@ -5546,8 +5550,8 @@ yyreduce:
break;
case 398:
-/* Line 1787 of yacc.c */
-#line 2121 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2122 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
@@ -5555,8 +5559,8 @@ yyreduce:
break;
case 399:
-/* Line 1787 of yacc.c */
-#line 2127 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2128 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
@@ -5564,8 +5568,8 @@ yyreduce:
break;
case 400:
-/* Line 1787 of yacc.c */
-#line 2133 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2134 "conf_parser.y"
{
#ifdef HAVE_LIBCRYPTO
if (conf_parser_ctx.pass == 2)
@@ -5578,8 +5582,8 @@ yyreduce:
break;
case 401:
-/* Line 1787 of yacc.c */
-#line 2148 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2149 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
reset_block_state();
@@ -5587,8 +5591,8 @@ yyreduce:
break;
case 402:
-/* Line 1787 of yacc.c */
-#line 2152 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2153 "conf_parser.y"
{
struct MaskItem *conf = NULL;
@@ -5648,8 +5652,8 @@ yyreduce:
break;
case 403:
-/* Line 1787 of yacc.c */
-#line 2210 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2211 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.port.value = 0;
@@ -5657,8 +5661,8 @@ yyreduce:
break;
case 407:
-/* Line 1787 of yacc.c */
-#line 2217 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2218 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.port.value = 1;
@@ -5666,8 +5670,8 @@ yyreduce:
break;
case 414:
-/* Line 1787 of yacc.c */
-#line 2226 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2227 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
@@ -5689,8 +5693,8 @@ yyreduce:
break;
case 415:
-/* Line 1787 of yacc.c */
-#line 2246 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2247 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
@@ -5698,8 +5702,8 @@ yyreduce:
break;
case 416:
-/* Line 1787 of yacc.c */
-#line 2255 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2256 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
reset_block_state();
@@ -5707,8 +5711,8 @@ yyreduce:
break;
case 417:
-/* Line 1787 of yacc.c */
-#line 2259 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2260 "conf_parser.y"
{
struct MaskItem *conf = NULL;
@@ -5733,8 +5737,8 @@ yyreduce:
break;
case 423:
-/* Line 1787 of yacc.c */
-#line 2285 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2286 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
@@ -5742,8 +5746,8 @@ yyreduce:
break;
case 424:
-/* Line 1787 of yacc.c */
-#line 2291 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2292 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
@@ -5751,8 +5755,8 @@ yyreduce:
break;
case 430:
-/* Line 1787 of yacc.c */
-#line 2305 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2306 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
{
@@ -5768,8 +5772,8 @@ yyreduce:
break;
case 431:
-/* Line 1787 of yacc.c */
-#line 2322 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2323 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
reset_block_state();
@@ -5777,8 +5781,8 @@ yyreduce:
break;
case 432:
-/* Line 1787 of yacc.c */
-#line 2326 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2327 "conf_parser.y"
{
struct MaskItem *conf = NULL;
@@ -5821,8 +5825,8 @@ yyreduce:
break;
case 433:
-/* Line 1787 of yacc.c */
-#line 2367 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2368 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.port.value = 0;
@@ -5830,8 +5834,8 @@ yyreduce:
break;
case 437:
-/* Line 1787 of yacc.c */
-#line 2374 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2375 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
block_state.port.value = 1;
@@ -5839,8 +5843,8 @@ yyreduce:
break;
case 444:
-/* Line 1787 of yacc.c */
-#line 2383 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2384 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
@@ -5848,173 +5852,173 @@ yyreduce:
break;
case 445:
-/* Line 1787 of yacc.c */
-#line 2389 "conf_parser.y"
+/* Line 1792 of yacc.c */
+#line 2390 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
}
break;
- case 498:
-/* Line 1787 of yacc.c */
-#line 2433 "conf_parser.y"
+ case 499:
+/* Line 1792 of yacc.c */
+#line 2435 "conf_parser.y"
{
ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
}
break;
- case 499:
-/* Line 1787 of yacc.c */
-#line 2438 "conf_parser.y"
+ case 500:
+/* Line 1792 of yacc.c */
+#line 2440 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
ConfigFileEntry.glines = yylval.number;
}
break;
- case 500:
-/* Line 1787 of yacc.c */
-#line 2444 "conf_parser.y"
+ case 501:
+/* Line 1792 of yacc.c */
+#line 2446 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
}
break;
- case 501:
-/* Line 1787 of yacc.c */
-#line 2450 "conf_parser.y"
+ case 502:
+/* Line 1792 of yacc.c */
+#line 2452 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
}
break;
- case 502:
-/* Line 1787 of yacc.c */
-#line 2456 "conf_parser.y"
+ case 503:
+/* Line 1792 of yacc.c */
+#line 2458 "conf_parser.y"
{
ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
}
break;
- case 503:
-/* Line 1787 of yacc.c */
-#line 2461 "conf_parser.y"
+ case 504:
+/* Line 1792 of yacc.c */
+#line 2463 "conf_parser.y"
{
ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
}
break;
- case 504:
-/* Line 1787 of yacc.c */
-#line 2466 "conf_parser.y"
+ case 505:
+/* Line 1792 of yacc.c */
+#line 2468 "conf_parser.y"
{
ConfigFileEntry.tkline_expire_notices = yylval.number;
}
break;
- case 505:
-/* Line 1787 of yacc.c */
-#line 2471 "conf_parser.y"
+ case 506:
+/* Line 1792 of yacc.c */
+#line 2473 "conf_parser.y"
{
ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
}
break;
- case 506:
-/* Line 1787 of yacc.c */
-#line 2476 "conf_parser.y"
+ case 507:
+/* Line 1792 of yacc.c */
+#line 2478 "conf_parser.y"
{
ConfigFileEntry.hide_spoof_ips = yylval.number;
}
break;
- case 507:
-/* Line 1787 of yacc.c */
-#line 2481 "conf_parser.y"
+ case 508:
+/* Line 1792 of yacc.c */
+#line 2483 "conf_parser.y"
{
ConfigFileEntry.ignore_bogus_ts = yylval.number;
}
break;
- case 508:
-/* Line 1787 of yacc.c */
-#line 2486 "conf_parser.y"
+ case 509:
+/* Line 1792 of yacc.c */
+#line 2488 "conf_parser.y"
{
ConfigFileEntry.disable_remote = yylval.number;
}
break;
- case 509:
-/* Line 1787 of yacc.c */
-#line 2491 "conf_parser.y"
+ case 510:
+/* Line 1792 of yacc.c */
+#line 2493 "conf_parser.y"
{
ConfigFileEntry.failed_oper_notice = yylval.number;
}
break;
- case 510:
-/* Line 1787 of yacc.c */
-#line 2496 "conf_parser.y"
+ case 511:
+/* Line 1792 of yacc.c */
+#line 2498 "conf_parser.y"
{
ConfigFileEntry.anti_nick_flood = yylval.number;
}
break;
- case 511:
-/* Line 1787 of yacc.c */
-#line 2501 "conf_parser.y"
+ case 512:
+/* Line 1792 of yacc.c */
+#line 2503 "conf_parser.y"
{
ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
}
break;
- case 512:
-/* Line 1787 of yacc.c */
-#line 2506 "conf_parser.y"
+ case 513:
+/* Line 1792 of yacc.c */
+#line 2508 "conf_parser.y"
{
ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
}
break;
- case 513:
-/* Line 1787 of yacc.c */
-#line 2511 "conf_parser.y"
+ case 514:
+/* Line 1792 of yacc.c */
+#line 2513 "conf_parser.y"
{
ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
}
break;
- case 514:
-/* Line 1787 of yacc.c */
-#line 2516 "conf_parser.y"
+ case 515:
+/* Line 1792 of yacc.c */
+#line 2518 "conf_parser.y"
{
ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
}
break;
- case 515:
-/* Line 1787 of yacc.c */
-#line 2521 "conf_parser.y"
+ case 516:
+/* Line 1792 of yacc.c */
+#line 2523 "conf_parser.y"
{
ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
}
break;
- case 516:
-/* Line 1787 of yacc.c */
-#line 2526 "conf_parser.y"
+ case 517:
+/* Line 1792 of yacc.c */
+#line 2528 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
}
break;
- case 517:
-/* Line 1787 of yacc.c */
-#line 2532 "conf_parser.y"
+ case 518:
+/* Line 1792 of yacc.c */
+#line 2534 "conf_parser.y"
{
if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
{
@@ -6026,169 +6030,183 @@ yyreduce:
}
break;
- case 518:
-/* Line 1787 of yacc.c */
-#line 2543 "conf_parser.y"
+ case 519:
+/* Line 1792 of yacc.c */
+#line 2545 "conf_parser.y"
{
ConfigFileEntry.invisible_on_connect = yylval.number;
}
break;
- case 519:
-/* Line 1787 of yacc.c */
-#line 2548 "conf_parser.y"
+ case 520:
+/* Line 1792 of yacc.c */
+#line 2550 "conf_parser.y"
{
ConfigFileEntry.warn_no_nline = yylval.number;
}
break;
- case 520:
-/* Line 1787 of yacc.c */
-#line 2553 "conf_parser.y"
+ case 521:
+/* Line 1792 of yacc.c */
+#line 2555 "conf_parser.y"
{
ConfigFileEntry.stats_e_disabled = yylval.number;
}
break;
- case 521:
-/* Line 1787 of yacc.c */
-#line 2558 "conf_parser.y"
+ case 522:
+/* Line 1792 of yacc.c */
+#line 2560 "conf_parser.y"
{
ConfigFileEntry.stats_o_oper_only = yylval.number;
}
break;
- case 522:
-/* Line 1787 of yacc.c */
-#line 2563 "conf_parser.y"
+ case 523:
+/* Line 1792 of yacc.c */
+#line 2565 "conf_parser.y"
{
ConfigFileEntry.stats_P_oper_only = yylval.number;
}
break;
- case 523:
-/* Line 1787 of yacc.c */
-#line 2568 "conf_parser.y"
+ case 524:
+/* Line 1792 of yacc.c */
+#line 2570 "conf_parser.y"
{
ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
}
break;
- case 524:
-/* Line 1787 of yacc.c */
-#line 2571 "conf_parser.y"
+ case 525:
+/* Line 1792 of yacc.c */
+#line 2573 "conf_parser.y"
{
ConfigFileEntry.stats_k_oper_only = 1;
}
break;
- case 525:
-/* Line 1787 of yacc.c */
-#line 2576 "conf_parser.y"
+ case 526:
+/* Line 1792 of yacc.c */
+#line 2578 "conf_parser.y"
{
ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
}
break;
- case 526:
-/* Line 1787 of yacc.c */
-#line 2579 "conf_parser.y"
+ case 527:
+/* Line 1792 of yacc.c */
+#line 2581 "conf_parser.y"
{
ConfigFileEntry.stats_i_oper_only = 1;
}
break;
- case 527:
-/* Line 1787 of yacc.c */
-#line 2584 "conf_parser.y"
+ case 528:
+/* Line 1792 of yacc.c */
+#line 2586 "conf_parser.y"
{
ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
}
break;
- case 528:
-/* Line 1787 of yacc.c */
-#line 2589 "conf_parser.y"
+ case 529:
+/* Line 1792 of yacc.c */
+#line 2591 "conf_parser.y"
{
ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
}
break;
- case 529:
-/* Line 1787 of yacc.c */
-#line 2594 "conf_parser.y"
+ case 530:
+/* Line 1792 of yacc.c */
+#line 2596 "conf_parser.y"
{
ConfigFileEntry.opers_bypass_callerid = yylval.number;
}
break;
- case 530:
-/* Line 1787 of yacc.c */
-#line 2599 "conf_parser.y"
+ case 531:
+/* Line 1792 of yacc.c */
+#line 2601 "conf_parser.y"
{
ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
}
break;
- case 531:
-/* Line 1787 of yacc.c */
-#line 2604 "conf_parser.y"
+ case 532:
+/* Line 1792 of yacc.c */
+#line 2606 "conf_parser.y"
{
ConfigFileEntry.short_motd = yylval.number;
}
break;
- case 532:
-/* Line 1787 of yacc.c */
-#line 2609 "conf_parser.y"
+ case 533:
+/* Line 1792 of yacc.c */
+#line 2611 "conf_parser.y"
{
ConfigFileEntry.no_oper_flood = yylval.number;
}
break;
- case 533:
-/* Line 1787 of yacc.c */
-#line 2614 "conf_parser.y"
+ case 534:
+/* Line 1792 of yacc.c */
+#line 2616 "conf_parser.y"
{
ConfigFileEntry.true_no_oper_flood = yylval.number;
}
break;
- case 534:
-/* Line 1787 of yacc.c */
-#line 2619 "conf_parser.y"
+ case 535:
+/* Line 1792 of yacc.c */
+#line 2621 "conf_parser.y"
{
ConfigFileEntry.oper_pass_resv = yylval.number;
}
break;
- case 535:
-/* Line 1787 of yacc.c */
-#line 2624 "conf_parser.y"
+ case 536:
+/* Line 1792 of yacc.c */
+#line 2626 "conf_parser.y"
+ {
+ if (conf_parser_ctx.pass == 2)
+ {
+ if (strlen(yylval.string) > LOCALE_LENGTH-2)
+ yylval.string[LOCALE_LENGTH-1] = '\0';
+
+ set_locale(yylval.string);
+ }
+}
+ break;
+
+ case 537:
+/* Line 1792 of yacc.c */
+#line 2637 "conf_parser.y"
{
ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
}
break;
- case 536:
-/* Line 1787 of yacc.c */
-#line 2629 "conf_parser.y"
+ case 538:
+/* Line 1792 of yacc.c */
+#line 2642 "conf_parser.y"
{
ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
}
break;
- case 537:
-/* Line 1787 of yacc.c */
-#line 2634 "conf_parser.y"
+ case 539:
+/* Line 1792 of yacc.c */
+#line 2647 "conf_parser.y"
{
ConfigFileEntry.use_egd = yylval.number;
}
break;
- case 538:
-/* Line 1787 of yacc.c */
-#line 2639 "conf_parser.y"
+ case 540:
+/* Line 1792 of yacc.c */
+#line 2652 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
{
@@ -6198,9 +6216,9 @@ yyreduce:
}
break;
- case 539:
-/* Line 1787 of yacc.c */
-#line 2648 "conf_parser.y"
+ case 541:
+/* Line 1792 of yacc.c */
+#line 2661 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
{
@@ -6210,523 +6228,523 @@ yyreduce:
}
break;
- case 540:
-/* Line 1787 of yacc.c */
-#line 2657 "conf_parser.y"
+ case 542:
+/* Line 1792 of yacc.c */
+#line 2670 "conf_parser.y"
{
ConfigFileEntry.ping_cookie = yylval.number;
}
break;
- case 541:
-/* Line 1787 of yacc.c */
-#line 2662 "conf_parser.y"
+ case 543:
+/* Line 1792 of yacc.c */
+#line 2675 "conf_parser.y"
{
ConfigFileEntry.disable_auth = yylval.number;
}
break;
- case 542:
-/* Line 1787 of yacc.c */
-#line 2667 "conf_parser.y"
+ case 544:
+/* Line 1792 of yacc.c */
+#line 2680 "conf_parser.y"
{
ConfigFileEntry.throttle_time = yylval.number;
}
break;
- case 543:
-/* Line 1787 of yacc.c */
-#line 2672 "conf_parser.y"
+ case 545:
+/* Line 1792 of yacc.c */
+#line 2685 "conf_parser.y"
{
ConfigFileEntry.oper_umodes = 0;
}
break;
- case 547:
-/* Line 1787 of yacc.c */
-#line 2678 "conf_parser.y"
+ case 549:
+/* Line 1792 of yacc.c */
+#line 2691 "conf_parser.y"
{
ConfigFileEntry.oper_umodes |= UMODE_BOTS;
}
break;
- case 548:
-/* Line 1787 of yacc.c */
-#line 2681 "conf_parser.y"
+ case 550:
+/* Line 1792 of yacc.c */
+#line 2694 "conf_parser.y"
{
ConfigFileEntry.oper_umodes |= UMODE_CCONN;
}
break;
- case 549:
-/* Line 1787 of yacc.c */
-#line 2684 "conf_parser.y"
+ case 551:
+/* Line 1792 of yacc.c */
+#line 2697 "conf_parser.y"
{
ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
}
break;
- case 550:
-/* Line 1787 of yacc.c */
-#line 2687 "conf_parser.y"
+ case 552:
+/* Line 1792 of yacc.c */
+#line 2700 "conf_parser.y"
{
ConfigFileEntry.oper_umodes |= UMODE_DEAF;
}
break;
- case 551:
-/* Line 1787 of yacc.c */
-#line 2690 "conf_parser.y"
+ case 553:
+/* Line 1792 of yacc.c */
+#line 2703 "conf_parser.y"
{
ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
}
break;
- case 552:
-/* Line 1787 of yacc.c */
-#line 2693 "conf_parser.y"
+ case 554:
+/* Line 1792 of yacc.c */
+#line 2706 "conf_parser.y"
{
ConfigFileEntry.oper_umodes |= UMODE_FULL;
}
break;
- case 553:
-/* Line 1787 of yacc.c */
-#line 2696 "conf_parser.y"
+ case 555:
+/* Line 1792 of yacc.c */
+#line 2709 "conf_parser.y"
{
ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
}
break;
- case 554:
-/* Line 1787 of yacc.c */
-#line 2699 "conf_parser.y"
+ case 556:
+/* Line 1792 of yacc.c */
+#line 2712 "conf_parser.y"
{
ConfigFileEntry.oper_umodes |= UMODE_SKILL;
}
break;
- case 555:
-/* Line 1787 of yacc.c */
-#line 2702 "conf_parser.y"
+ case 557:
+/* Line 1792 of yacc.c */
+#line 2715 "conf_parser.y"
{
ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
}
break;
- case 556:
-/* Line 1787 of yacc.c */
-#line 2705 "conf_parser.y"
+ case 558:
+/* Line 1792 of yacc.c */
+#line 2718 "conf_parser.y"
{
ConfigFileEntry.oper_umodes |= UMODE_REJ;
}
break;
- case 557:
-/* Line 1787 of yacc.c */
-#line 2708 "conf_parser.y"
+ case 559:
+/* Line 1792 of yacc.c */
+#line 2721 "conf_parser.y"
{
ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
}
break;
- case 558:
-/* Line 1787 of yacc.c */
-#line 2711 "conf_parser.y"
+ case 560:
+/* Line 1792 of yacc.c */
+#line 2724 "conf_parser.y"
{
ConfigFileEntry.oper_umodes |= UMODE_SPY;
}
break;
- case 559:
-/* Line 1787 of yacc.c */
-#line 2714 "conf_parser.y"
+ case 561:
+/* Line 1792 of yacc.c */
+#line 2727 "conf_parser.y"
{
ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
}
break;
- case 560:
-/* Line 1787 of yacc.c */
-#line 2717 "conf_parser.y"
+ case 562:
+/* Line 1792 of yacc.c */
+#line 2730 "conf_parser.y"
{
ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
}
break;
- case 561:
-/* Line 1787 of yacc.c */
-#line 2720 "conf_parser.y"
+ case 563:
+/* Line 1792 of yacc.c */
+#line 2733 "conf_parser.y"
{
ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
}
break;
- case 562:
-/* Line 1787 of yacc.c */
-#line 2723 "conf_parser.y"
+ case 564:
+/* Line 1792 of yacc.c */
+#line 2736 "conf_parser.y"
{
ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
}
break;
- case 563:
-/* Line 1787 of yacc.c */
-#line 2726 "conf_parser.y"
+ case 565:
+/* Line 1792 of yacc.c */
+#line 2739 "conf_parser.y"
{
ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
}
break;
- case 564:
-/* Line 1787 of yacc.c */
-#line 2729 "conf_parser.y"
+ case 566:
+/* Line 1792 of yacc.c */
+#line 2742 "conf_parser.y"
{
ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
}
break;
- case 565:
-/* Line 1787 of yacc.c */
-#line 2732 "conf_parser.y"
+ case 567:
+/* Line 1792 of yacc.c */
+#line 2745 "conf_parser.y"
{
ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
}
break;
- case 566:
-/* Line 1787 of yacc.c */
-#line 2735 "conf_parser.y"
+ case 568:
+/* Line 1792 of yacc.c */
+#line 2748 "conf_parser.y"
{
ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
}
break;
- case 567:
-/* Line 1787 of yacc.c */
-#line 2740 "conf_parser.y"
+ case 569:
+/* Line 1792 of yacc.c */
+#line 2753 "conf_parser.y"
{
ConfigFileEntry.oper_only_umodes = 0;
}
break;
- case 571:
-/* Line 1787 of yacc.c */
-#line 2746 "conf_parser.y"
+ case 573:
+/* Line 1792 of yacc.c */
+#line 2759 "conf_parser.y"
{
ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
}
break;
- case 572:
-/* Line 1787 of yacc.c */
-#line 2749 "conf_parser.y"
+ case 574:
+/* Line 1792 of yacc.c */
+#line 2762 "conf_parser.y"
{
ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
}
break;
- case 573:
-/* Line 1787 of yacc.c */
-#line 2752 "conf_parser.y"
+ case 575:
+/* Line 1792 of yacc.c */
+#line 2765 "conf_parser.y"
{
ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
}
break;
- case 574:
-/* Line 1787 of yacc.c */
-#line 2755 "conf_parser.y"
+ case 576:
+/* Line 1792 of yacc.c */
+#line 2768 "conf_parser.y"
{
ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
}
break;
- case 575:
-/* Line 1787 of yacc.c */
-#line 2758 "conf_parser.y"
+ case 577:
+/* Line 1792 of yacc.c */
+#line 2771 "conf_parser.y"
{
ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
}
break;
- case 576:
-/* Line 1787 of yacc.c */
-#line 2761 "conf_parser.y"
+ case 578:
+/* Line 1792 of yacc.c */
+#line 2774 "conf_parser.y"
{
ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
}
break;
- case 577:
-/* Line 1787 of yacc.c */
-#line 2764 "conf_parser.y"
+ case 579:
+/* Line 1792 of yacc.c */
+#line 2777 "conf_parser.y"
{
ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
}
break;
- case 578:
-/* Line 1787 of yacc.c */
-#line 2767 "conf_parser.y"
+ case 580:
+/* Line 1792 of yacc.c */
+#line 2780 "conf_parser.y"
{
ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
}
break;
- case 579:
-/* Line 1787 of yacc.c */
-#line 2770 "conf_parser.y"
+ case 581:
+/* Line 1792 of yacc.c */
+#line 2783 "conf_parser.y"
{
ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
}
break;
- case 580:
-/* Line 1787 of yacc.c */
-#line 2773 "conf_parser.y"
+ case 582:
+/* Line 1792 of yacc.c */
+#line 2786 "conf_parser.y"
{
ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
}
break;
- case 581:
-/* Line 1787 of yacc.c */
-#line 2776 "conf_parser.y"
+ case 583:
+/* Line 1792 of yacc.c */
+#line 2789 "conf_parser.y"
{
ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
}
break;
- case 582:
-/* Line 1787 of yacc.c */
-#line 2779 "conf_parser.y"
+ case 584:
+/* Line 1792 of yacc.c */
+#line 2792 "conf_parser.y"
{
ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
}
break;
- case 583:
-/* Line 1787 of yacc.c */
-#line 2782 "conf_parser.y"
+ case 585:
+/* Line 1792 of yacc.c */
+#line 2795 "conf_parser.y"
{
ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
}
break;
- case 584:
-/* Line 1787 of yacc.c */
-#line 2785 "conf_parser.y"
+ case 586:
+/* Line 1792 of yacc.c */
+#line 2798 "conf_parser.y"
{
ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
}
break;
- case 585:
-/* Line 1787 of yacc.c */
-#line 2788 "conf_parser.y"
+ case 587:
+/* Line 1792 of yacc.c */
+#line 2801 "conf_parser.y"
{
ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
}
break;
- case 586:
-/* Line 1787 of yacc.c */
-#line 2791 "conf_parser.y"
+ case 588:
+/* Line 1792 of yacc.c */
+#line 2804 "conf_parser.y"
{
ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
}
break;
- case 587:
-/* Line 1787 of yacc.c */
-#line 2794 "conf_parser.y"
+ case 589:
+/* Line 1792 of yacc.c */
+#line 2807 "conf_parser.y"
{
ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
}
break;
- case 588:
-/* Line 1787 of yacc.c */
-#line 2797 "conf_parser.y"
+ case 590:
+/* Line 1792 of yacc.c */
+#line 2810 "conf_parser.y"
{
ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
}
break;
- case 589:
-/* Line 1787 of yacc.c */
-#line 2800 "conf_parser.y"
+ case 591:
+/* Line 1792 of yacc.c */
+#line 2813 "conf_parser.y"
{
ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
}
break;
- case 590:
-/* Line 1787 of yacc.c */
-#line 2803 "conf_parser.y"
+ case 592:
+/* Line 1792 of yacc.c */
+#line 2816 "conf_parser.y"
{
ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
}
break;
- case 591:
-/* Line 1787 of yacc.c */
-#line 2808 "conf_parser.y"
+ case 593:
+/* Line 1792 of yacc.c */
+#line 2821 "conf_parser.y"
{
ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
}
break;
- case 592:
-/* Line 1787 of yacc.c */
-#line 2813 "conf_parser.y"
+ case 594:
+/* Line 1792 of yacc.c */
+#line 2826 "conf_parser.y"
{
ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
}
break;
- case 593:
-/* Line 1787 of yacc.c */
-#line 2818 "conf_parser.y"
+ case 595:
+/* Line 1792 of yacc.c */
+#line 2831 "conf_parser.y"
{
ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
}
break;
- case 612:
-/* Line 1787 of yacc.c */
-#line 2841 "conf_parser.y"
+ case 614:
+/* Line 1792 of yacc.c */
+#line 2854 "conf_parser.y"
{
ConfigChannel.disable_fake_channels = yylval.number;
}
break;
- case 613:
-/* Line 1787 of yacc.c */
-#line 2846 "conf_parser.y"
+ case 615:
+/* Line 1792 of yacc.c */
+#line 2859 "conf_parser.y"
{
ConfigChannel.restrict_channels = yylval.number;
}
break;
- case 614:
-/* Line 1787 of yacc.c */
-#line 2851 "conf_parser.y"
+ case 616:
+/* Line 1792 of yacc.c */
+#line 2864 "conf_parser.y"
{
ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
}
break;
- case 615:
-/* Line 1787 of yacc.c */
-#line 2856 "conf_parser.y"
+ case 617:
+/* Line 1792 of yacc.c */
+#line 2869 "conf_parser.y"
{
ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
}
break;
- case 616:
-/* Line 1787 of yacc.c */
-#line 2861 "conf_parser.y"
+ case 618:
+/* Line 1792 of yacc.c */
+#line 2874 "conf_parser.y"
{
ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
}
break;
- case 617:
-/* Line 1787 of yacc.c */
-#line 2866 "conf_parser.y"
+ case 619:
+/* Line 1792 of yacc.c */
+#line 2879 "conf_parser.y"
{
ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
}
break;
- case 618:
-/* Line 1787 of yacc.c */
-#line 2871 "conf_parser.y"
+ case 620:
+/* Line 1792 of yacc.c */
+#line 2884 "conf_parser.y"
{
ConfigChannel.quiet_on_ban = yylval.number;
}
break;
- case 619:
-/* Line 1787 of yacc.c */
-#line 2876 "conf_parser.y"
+ case 621:
+/* Line 1792 of yacc.c */
+#line 2889 "conf_parser.y"
{
ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
}
break;
- case 620:
-/* Line 1787 of yacc.c */
-#line 2881 "conf_parser.y"
+ case 622:
+/* Line 1792 of yacc.c */
+#line 2894 "conf_parser.y"
{
ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
}
break;
- case 621:
-/* Line 1787 of yacc.c */
-#line 2886 "conf_parser.y"
+ case 623:
+/* Line 1792 of yacc.c */
+#line 2899 "conf_parser.y"
{
ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
}
break;
- case 622:
-/* Line 1787 of yacc.c */
-#line 2891 "conf_parser.y"
+ case 624:
+/* Line 1792 of yacc.c */
+#line 2904 "conf_parser.y"
{
ConfigChannel.no_create_on_split = yylval.number;
}
break;
- case 623:
-/* Line 1787 of yacc.c */
-#line 2896 "conf_parser.y"
+ case 625:
+/* Line 1792 of yacc.c */
+#line 2909 "conf_parser.y"
{
ConfigChannel.no_join_on_split = yylval.number;
}
break;
- case 624:
-/* Line 1787 of yacc.c */
-#line 2901 "conf_parser.y"
+ case 626:
+/* Line 1792 of yacc.c */
+#line 2914 "conf_parser.y"
{
GlobalSetOptions.joinfloodcount = yylval.number;
}
break;
- case 625:
-/* Line 1787 of yacc.c */
-#line 2906 "conf_parser.y"
+ case 627:
+/* Line 1792 of yacc.c */
+#line 2919 "conf_parser.y"
{
GlobalSetOptions.joinfloodtime = yylval.number;
}
break;
- case 636:
-/* Line 1787 of yacc.c */
-#line 2924 "conf_parser.y"
+ case 638:
+/* Line 1792 of yacc.c */
+#line 2937 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
ConfigServerHide.flatten_links = yylval.number;
}
break;
- case 637:
-/* Line 1787 of yacc.c */
-#line 2930 "conf_parser.y"
+ case 639:
+/* Line 1792 of yacc.c */
+#line 2943 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
ConfigServerHide.hide_servers = yylval.number;
}
break;
- case 638:
-/* Line 1787 of yacc.c */
-#line 2936 "conf_parser.y"
+ case 640:
+/* Line 1792 of yacc.c */
+#line 2949 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
{
@@ -6736,9 +6754,9 @@ yyreduce:
}
break;
- case 639:
-/* Line 1787 of yacc.c */
-#line 2945 "conf_parser.y"
+ case 641:
+/* Line 1792 of yacc.c */
+#line 2958 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
{
@@ -6753,18 +6771,18 @@ yyreduce:
}
break;
- case 640:
-/* Line 1787 of yacc.c */
-#line 2959 "conf_parser.y"
+ case 642:
+/* Line 1792 of yacc.c */
+#line 2972 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
ConfigServerHide.hidden = yylval.number;
}
break;
- case 641:
-/* Line 1787 of yacc.c */
-#line 2965 "conf_parser.y"
+ case 643:
+/* Line 1792 of yacc.c */
+#line 2978 "conf_parser.y"
{
if (conf_parser_ctx.pass == 2)
ConfigServerHide.hide_server_ips = yylval.number;
@@ -6772,8 +6790,8 @@ yyreduce:
break;
-/* Line 1787 of yacc.c */
-#line 6777 "conf_parser.c"
+/* Line 1792 of yacc.c */
+#line 6795 "conf_parser.c"
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
diff --git a/src/conf_parser.h b/src/conf_parser.h
index a8d45f6..b60977e 100644
--- a/src/conf_parser.h
+++ b/src/conf_parser.h
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 2.7.12-4996. */
+/* A Bison parser, made by GNU Bison 2.7. */
/* Bison interface for Yacc-like parsers in C
- Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
+ Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -129,142 +129,143 @@ extern int yydebug;
MAX_TARGETS = 338,
MAX_TOPIC_LENGTH = 339,
MAX_WATCH = 340,
- MIN_NONWILDCARD = 341,
- MIN_NONWILDCARD_SIMPLE = 342,
- MIN_IDLE = 343,
- MAX_IDLE = 344,
- RANDOM_IDLE = 345,
- HIDE_IDLE_FROM_OPERS = 346,
- MODULE = 347,
- MODULES = 348,
- NAME = 349,
- NEED_PASSWORD = 350,
- NETWORK_DESC = 351,
- NETWORK_NAME = 352,
- NICK = 353,
- NICK_CHANGES = 354,
- NO_CREATE_ON_SPLIT = 355,
- NO_JOIN_ON_SPLIT = 356,
- NO_OPER_FLOOD = 357,
- NO_TILDE = 358,
- NUMBER = 359,
- NUMBER_PER_CIDR = 360,
- NUMBER_PER_IP = 361,
- OPERATOR = 362,
- OPERS_BYPASS_CALLERID = 363,
- OPER_ONLY_UMODES = 364,
- OPER_PASS_RESV = 365,
- OPER_SPY_T = 366,
- OPER_UMODES = 367,
- JOIN_FLOOD_COUNT = 368,
- JOIN_FLOOD_TIME = 369,
- PACE_WAIT = 370,
- PACE_WAIT_SIMPLE = 371,
- PASSWORD = 372,
- PATH = 373,
- PING_COOKIE = 374,
- PING_TIME = 375,
- PORT = 376,
- QSTRING = 377,
- QUIET_ON_BAN = 378,
- REASON = 379,
- REDIRPORT = 380,
- REDIRSERV = 381,
- REGEX_T = 382,
- REHASH = 383,
- REMOTE = 384,
- REMOTEBAN = 385,
- RESTRICT_CHANNELS = 386,
- RSA_PRIVATE_KEY_FILE = 387,
- RSA_PUBLIC_KEY_FILE = 388,
- SSL_CERTIFICATE_FILE = 389,
- SSL_DH_PARAM_FILE = 390,
- T_SSL_CLIENT_METHOD = 391,
- T_SSL_SERVER_METHOD = 392,
- T_SSLV3 = 393,
- T_TLSV1 = 394,
- RESV = 395,
- RESV_EXEMPT = 396,
- SECONDS = 397,
- MINUTES = 398,
- HOURS = 399,
- DAYS = 400,
- WEEKS = 401,
- MONTHS = 402,
- YEARS = 403,
- SENDQ = 404,
- SEND_PASSWORD = 405,
- SERVERHIDE = 406,
- SERVERINFO = 407,
- IRCD_SID = 408,
- TKLINE_EXPIRE_NOTICES = 409,
- T_SHARED = 410,
- T_CLUSTER = 411,
- TYPE = 412,
- SHORT_MOTD = 413,
- SPOOF = 414,
- SPOOF_NOTICE = 415,
- STATS_E_DISABLED = 416,
- STATS_I_OPER_ONLY = 417,
- STATS_K_OPER_ONLY = 418,
- STATS_O_OPER_ONLY = 419,
- STATS_P_OPER_ONLY = 420,
- TBOOL = 421,
- TMASKED = 422,
- TS_MAX_DELTA = 423,
- TS_WARN_DELTA = 424,
- TWODOTS = 425,
- T_ALL = 426,
- T_BOTS = 427,
- T_SOFTCALLERID = 428,
- T_CALLERID = 429,
- T_CCONN = 430,
- T_CCONN_FULL = 431,
- T_SSL_CIPHER_LIST = 432,
- T_DEAF = 433,
- T_DEBUG = 434,
- T_DLINE = 435,
- T_EXTERNAL = 436,
- T_FULL = 437,
- T_INVISIBLE = 438,
- T_IPV4 = 439,
- T_IPV6 = 440,
- T_LOCOPS = 441,
- T_MAX_CLIENTS = 442,
- T_NCHANGE = 443,
- T_OPERWALL = 444,
- T_RECVQ = 445,
- T_REJ = 446,
- T_SERVER = 447,
- T_SERVNOTICE = 448,
- T_SET = 449,
- T_SKILL = 450,
- T_SPY = 451,
- T_SSL = 452,
- T_UMODES = 453,
- T_UNAUTH = 454,
- T_UNDLINE = 455,
- T_UNLIMITED = 456,
- T_UNRESV = 457,
- T_UNXLINE = 458,
- T_GLOBOPS = 459,
- T_WALLOP = 460,
- T_WEBIRC = 461,
- T_RESTART = 462,
- T_SERVICE = 463,
- T_SERVICES_NAME = 464,
- THROTTLE_TIME = 465,
- TRUE_NO_OPER_FLOOD = 466,
- UNKLINE = 467,
- USER = 468,
- USE_EGD = 469,
- USE_LOGGING = 470,
- VHOST = 471,
- VHOST6 = 472,
- XLINE = 473,
- WARN_NO_NLINE = 474,
- T_SIZE = 475,
- T_FILE = 476
+ MESSAGE_LOCALE = 341,
+ MIN_NONWILDCARD = 342,
+ MIN_NONWILDCARD_SIMPLE = 343,
+ MIN_IDLE = 344,
+ MAX_IDLE = 345,
+ RANDOM_IDLE = 346,
+ HIDE_IDLE_FROM_OPERS = 347,
+ MODULE = 348,
+ MODULES = 349,
+ NAME = 350,
+ NEED_PASSWORD = 351,
+ NETWORK_DESC = 352,
+ NETWORK_NAME = 353,
+ NICK = 354,
+ NICK_CHANGES = 355,
+ NO_CREATE_ON_SPLIT = 356,
+ NO_JOIN_ON_SPLIT = 357,
+ NO_OPER_FLOOD = 358,
+ NO_TILDE = 359,
+ NUMBER = 360,
+ NUMBER_PER_CIDR = 361,
+ NUMBER_PER_IP = 362,
+ OPERATOR = 363,
+ OPERS_BYPASS_CALLERID = 364,
+ OPER_ONLY_UMODES = 365,
+ OPER_PASS_RESV = 366,
+ OPER_SPY_T = 367,
+ OPER_UMODES = 368,
+ JOIN_FLOOD_COUNT = 369,
+ JOIN_FLOOD_TIME = 370,
+ PACE_WAIT = 371,
+ PACE_WAIT_SIMPLE = 372,
+ PASSWORD = 373,
+ PATH = 374,
+ PING_COOKIE = 375,
+ PING_TIME = 376,
+ PORT = 377,
+ QSTRING = 378,
+ QUIET_ON_BAN = 379,
+ REASON = 380,
+ REDIRPORT = 381,
+ REDIRSERV = 382,
+ REGEX_T = 383,
+ REHASH = 384,
+ REMOTE = 385,
+ REMOTEBAN = 386,
+ RESTRICT_CHANNELS = 387,
+ RSA_PRIVATE_KEY_FILE = 388,
+ RSA_PUBLIC_KEY_FILE = 389,
+ SSL_CERTIFICATE_FILE = 390,
+ SSL_DH_PARAM_FILE = 391,
+ T_SSL_CLIENT_METHOD = 392,
+ T_SSL_SERVER_METHOD = 393,
+ T_SSLV3 = 394,
+ T_TLSV1 = 395,
+ RESV = 396,
+ RESV_EXEMPT = 397,
+ SECONDS = 398,
+ MINUTES = 399,
+ HOURS = 400,
+ DAYS = 401,
+ WEEKS = 402,
+ MONTHS = 403,
+ YEARS = 404,
+ SENDQ = 405,
+ SEND_PASSWORD = 406,
+ SERVERHIDE = 407,
+ SERVERINFO = 408,
+ IRCD_SID = 409,
+ TKLINE_EXPIRE_NOTICES = 410,
+ T_SHARED = 411,
+ T_CLUSTER = 412,
+ TYPE = 413,
+ SHORT_MOTD = 414,
+ SPOOF = 415,
+ SPOOF_NOTICE = 416,
+ STATS_E_DISABLED = 417,
+ STATS_I_OPER_ONLY = 418,
+ STATS_K_OPER_ONLY = 419,
+ STATS_O_OPER_ONLY = 420,
+ STATS_P_OPER_ONLY = 421,
+ TBOOL = 422,
+ TMASKED = 423,
+ TS_MAX_DELTA = 424,
+ TS_WARN_DELTA = 425,
+ TWODOTS = 426,
+ T_ALL = 427,
+ T_BOTS = 428,
+ T_SOFTCALLERID = 429,
+ T_CALLERID = 430,
+ T_CCONN = 431,
+ T_CCONN_FULL = 432,
+ T_SSL_CIPHER_LIST = 433,
+ T_DEAF = 434,
+ T_DEBUG = 435,
+ T_DLINE = 436,
+ T_EXTERNAL = 437,
+ T_FULL = 438,
+ T_INVISIBLE = 439,
+ T_IPV4 = 440,
+ T_IPV6 = 441,
+ T_LOCOPS = 442,
+ T_MAX_CLIENTS = 443,
+ T_NCHANGE = 444,
+ T_OPERWALL = 445,
+ T_RECVQ = 446,
+ T_REJ = 447,
+ T_SERVER = 448,
+ T_SERVNOTICE = 449,
+ T_SET = 450,
+ T_SKILL = 451,
+ T_SPY = 452,
+ T_SSL = 453,
+ T_UMODES = 454,
+ T_UNAUTH = 455,
+ T_UNDLINE = 456,
+ T_UNLIMITED = 457,
+ T_UNRESV = 458,
+ T_UNXLINE = 459,
+ T_GLOBOPS = 460,
+ T_WALLOP = 461,
+ T_WEBIRC = 462,
+ T_RESTART = 463,
+ T_SERVICE = 464,
+ T_SERVICES_NAME = 465,
+ THROTTLE_TIME = 466,
+ TRUE_NO_OPER_FLOOD = 467,
+ UNKLINE = 468,
+ USER = 469,
+ USE_EGD = 470,
+ USE_LOGGING = 471,
+ VHOST = 472,
+ VHOST6 = 473,
+ XLINE = 474,
+ WARN_NO_NLINE = 475,
+ T_SIZE = 476,
+ T_FILE = 477
};
#endif
/* Tokens. */
@@ -351,157 +352,158 @@ extern int yydebug;
#define MAX_TARGETS 338
#define MAX_TOPIC_LENGTH 339
#define MAX_WATCH 340
-#define MIN_NONWILDCARD 341
-#define MIN_NONWILDCARD_SIMPLE 342
-#define MIN_IDLE 343
-#define MAX_IDLE 344
-#define RANDOM_IDLE 345
-#define HIDE_IDLE_FROM_OPERS 346
-#define MODULE 347
-#define MODULES 348
-#define NAME 349
-#define NEED_PASSWORD 350
-#define NETWORK_DESC 351
-#define NETWORK_NAME 352
-#define NICK 353
-#define NICK_CHANGES 354
-#define NO_CREATE_ON_SPLIT 355
-#define NO_JOIN_ON_SPLIT 356
-#define NO_OPER_FLOOD 357
-#define NO_TILDE 358
-#define NUMBER 359
-#define NUMBER_PER_CIDR 360
-#define NUMBER_PER_IP 361
-#define OPERATOR 362
-#define OPERS_BYPASS_CALLERID 363
-#define OPER_ONLY_UMODES 364
-#define OPER_PASS_RESV 365
-#define OPER_SPY_T 366
-#define OPER_UMODES 367
-#define JOIN_FLOOD_COUNT 368
-#define JOIN_FLOOD_TIME 369
-#define PACE_WAIT 370
-#define PACE_WAIT_SIMPLE 371
-#define PASSWORD 372
-#define PATH 373
-#define PING_COOKIE 374
-#define PING_TIME 375
-#define PORT 376
-#define QSTRING 377
-#define QUIET_ON_BAN 378
-#define REASON 379
-#define REDIRPORT 380
-#define REDIRSERV 381
-#define REGEX_T 382
-#define REHASH 383
-#define REMOTE 384
-#define REMOTEBAN 385
-#define RESTRICT_CHANNELS 386
-#define RSA_PRIVATE_KEY_FILE 387
-#define RSA_PUBLIC_KEY_FILE 388
-#define SSL_CERTIFICATE_FILE 389
-#define SSL_DH_PARAM_FILE 390
-#define T_SSL_CLIENT_METHOD 391
-#define T_SSL_SERVER_METHOD 392
-#define T_SSLV3 393
-#define T_TLSV1 394
-#define RESV 395
-#define RESV_EXEMPT 396
-#define SECONDS 397
-#define MINUTES 398
-#define HOURS 399
-#define DAYS 400
-#define WEEKS 401
-#define MONTHS 402
-#define YEARS 403
-#define SENDQ 404
-#define SEND_PASSWORD 405
-#define SERVERHIDE 406
-#define SERVERINFO 407
-#define IRCD_SID 408
-#define TKLINE_EXPIRE_NOTICES 409
-#define T_SHARED 410
-#define T_CLUSTER 411
-#define TYPE 412
-#define SHORT_MOTD 413
-#define SPOOF 414
-#define SPOOF_NOTICE 415
-#define STATS_E_DISABLED 416
-#define STATS_I_OPER_ONLY 417
-#define STATS_K_OPER_ONLY 418
-#define STATS_O_OPER_ONLY 419
-#define STATS_P_OPER_ONLY 420
-#define TBOOL 421
-#define TMASKED 422
-#define TS_MAX_DELTA 423
-#define TS_WARN_DELTA 424
-#define TWODOTS 425
-#define T_ALL 426
-#define T_BOTS 427
-#define T_SOFTCALLERID 428
-#define T_CALLERID 429
-#define T_CCONN 430
-#define T_CCONN_FULL 431
-#define T_SSL_CIPHER_LIST 432
-#define T_DEAF 433
-#define T_DEBUG 434
-#define T_DLINE 435
-#define T_EXTERNAL 436
-#define T_FULL 437
-#define T_INVISIBLE 438
-#define T_IPV4 439
-#define T_IPV6 440
-#define T_LOCOPS 441
-#define T_MAX_CLIENTS 442
-#define T_NCHANGE 443
-#define T_OPERWALL 444
-#define T_RECVQ 445
-#define T_REJ 446
-#define T_SERVER 447
-#define T_SERVNOTICE 448
-#define T_SET 449
-#define T_SKILL 450
-#define T_SPY 451
-#define T_SSL 452
-#define T_UMODES 453
-#define T_UNAUTH 454
-#define T_UNDLINE 455
-#define T_UNLIMITED 456
-#define T_UNRESV 457
-#define T_UNXLINE 458
-#define T_GLOBOPS 459
-#define T_WALLOP 460
-#define T_WEBIRC 461
-#define T_RESTART 462
-#define T_SERVICE 463
-#define T_SERVICES_NAME 464
-#define THROTTLE_TIME 465
-#define TRUE_NO_OPER_FLOOD 466
-#define UNKLINE 467
-#define USER 468
-#define USE_EGD 469
-#define USE_LOGGING 470
-#define VHOST 471
-#define VHOST6 472
-#define XLINE 473
-#define WARN_NO_NLINE 474
-#define T_SIZE 475
-#define T_FILE 476
+#define MESSAGE_LOCALE 341
+#define MIN_NONWILDCARD 342
+#define MIN_NONWILDCARD_SIMPLE 343
+#define MIN_IDLE 344
+#define MAX_IDLE 345
+#define RANDOM_IDLE 346
+#define HIDE_IDLE_FROM_OPERS 347
+#define MODULE 348
+#define MODULES 349
+#define NAME 350
+#define NEED_PASSWORD 351
+#define NETWORK_DESC 352
+#define NETWORK_NAME 353
+#define NICK 354
+#define NICK_CHANGES 355
+#define NO_CREATE_ON_SPLIT 356
+#define NO_JOIN_ON_SPLIT 357
+#define NO_OPER_FLOOD 358
+#define NO_TILDE 359
+#define NUMBER 360
+#define NUMBER_PER_CIDR 361
+#define NUMBER_PER_IP 362
+#define OPERATOR 363
+#define OPERS_BYPASS_CALLERID 364
+#define OPER_ONLY_UMODES 365
+#define OPER_PASS_RESV 366
+#define OPER_SPY_T 367
+#define OPER_UMODES 368
+#define JOIN_FLOOD_COUNT 369
+#define JOIN_FLOOD_TIME 370
+#define PACE_WAIT 371
+#define PACE_WAIT_SIMPLE 372
+#define PASSWORD 373
+#define PATH 374
+#define PING_COOKIE 375
+#define PING_TIME 376
+#define PORT 377
+#define QSTRING 378
+#define QUIET_ON_BAN 379
+#define REASON 380
+#define REDIRPORT 381
+#define REDIRSERV 382
+#define REGEX_T 383
+#define REHASH 384
+#define REMOTE 385
+#define REMOTEBAN 386
+#define RESTRICT_CHANNELS 387
+#define RSA_PRIVATE_KEY_FILE 388
+#define RSA_PUBLIC_KEY_FILE 389
+#define SSL_CERTIFICATE_FILE 390
+#define SSL_DH_PARAM_FILE 391
+#define T_SSL_CLIENT_METHOD 392
+#define T_SSL_SERVER_METHOD 393
+#define T_SSLV3 394
+#define T_TLSV1 395
+#define RESV 396
+#define RESV_EXEMPT 397
+#define SECONDS 398
+#define MINUTES 399
+#define HOURS 400
+#define DAYS 401
+#define WEEKS 402
+#define MONTHS 403
+#define YEARS 404
+#define SENDQ 405
+#define SEND_PASSWORD 406
+#define SERVERHIDE 407
+#define SERVERINFO 408
+#define IRCD_SID 409
+#define TKLINE_EXPIRE_NOTICES 410
+#define T_SHARED 411
+#define T_CLUSTER 412
+#define TYPE 413
+#define SHORT_MOTD 414
+#define SPOOF 415
+#define SPOOF_NOTICE 416
+#define STATS_E_DISABLED 417
+#define STATS_I_OPER_ONLY 418
+#define STATS_K_OPER_ONLY 419
+#define STATS_O_OPER_ONLY 420
+#define STATS_P_OPER_ONLY 421
+#define TBOOL 422
+#define TMASKED 423
+#define TS_MAX_DELTA 424
+#define TS_WARN_DELTA 425
+#define TWODOTS 426
+#define T_ALL 427
+#define T_BOTS 428
+#define T_SOFTCALLERID 429
+#define T_CALLERID 430
+#define T_CCONN 431
+#define T_CCONN_FULL 432
+#define T_SSL_CIPHER_LIST 433
+#define T_DEAF 434
+#define T_DEBUG 435
+#define T_DLINE 436
+#define T_EXTERNAL 437
+#define T_FULL 438
+#define T_INVISIBLE 439
+#define T_IPV4 440
+#define T_IPV6 441
+#define T_LOCOPS 442
+#define T_MAX_CLIENTS 443
+#define T_NCHANGE 444
+#define T_OPERWALL 445
+#define T_RECVQ 446
+#define T_REJ 447
+#define T_SERVER 448
+#define T_SERVNOTICE 449
+#define T_SET 450
+#define T_SKILL 451
+#define T_SPY 452
+#define T_SSL 453
+#define T_UMODES 454
+#define T_UNAUTH 455
+#define T_UNDLINE 456
+#define T_UNLIMITED 457
+#define T_UNRESV 458
+#define T_UNXLINE 459
+#define T_GLOBOPS 460
+#define T_WALLOP 461
+#define T_WEBIRC 462
+#define T_RESTART 463
+#define T_SERVICE 464
+#define T_SERVICES_NAME 465
+#define THROTTLE_TIME 466
+#define TRUE_NO_OPER_FLOOD 467
+#define UNKLINE 468
+#define USER 469
+#define USE_EGD 470
+#define USE_LOGGING 471
+#define VHOST 472
+#define VHOST6 473
+#define XLINE 474
+#define WARN_NO_NLINE 475
+#define T_SIZE 476
+#define T_FILE 477
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
{
-/* Line 2053 of yacc.c */
+/* Line 2058 of yacc.c */
#line 138 "conf_parser.y"
int number;
char *string;
-/* Line 2053 of yacc.c */
-#line 505 "conf_parser.h"
+/* Line 2058 of yacc.c */
+#line 507 "conf_parser.h"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
diff --git a/src/conf_parser.y b/src/conf_parser.y
index 5c38e45..3112e24 100644
--- a/src/conf_parser.y
+++ b/src/conf_parser.y
@@ -221,6 +221,7 @@ reset_block_state(void)
%token MAX_TARGETS
%token MAX_TOPIC_LENGTH
%token MAX_WATCH
+%token MESSAGE_LOCALE
%token MIN_NONWILDCARD
%token MIN_NONWILDCARD_SIMPLE
%token MIN_IDLE
@@ -2411,6 +2412,7 @@ general_item: general_hide_spoof_ips | general_ignore_bogus_ts |
general_pace_wait_simple | general_stats_P_oper_only |
general_short_motd | general_no_oper_flood |
general_true_no_oper_flood | general_oper_pass_resv |
+ general_message_locale |
general_oper_only_umodes | general_max_targets |
general_use_egd | general_egdpool_path |
general_oper_umodes | general_caller_id_wait |
@@ -2620,6 +2622,17 @@ general_oper_pass_resv: OPER_PASS_RESV '=' TBOOL ';'
ConfigFileEntry.oper_pass_resv = yylval.number;
};
+general_message_locale: MESSAGE_LOCALE '=' QSTRING ';'
+{
+ if (conf_parser_ctx.pass == 2)
+ {
+ if (strlen(yylval.string) > LOCALE_LENGTH-2)
+ yylval.string[LOCALE_LENGTH-1] = '\0';
+
+ set_locale(yylval.string);
+ }
+};
+
general_dots_in_ident: DOTS_IN_IDENT '=' NUMBER ';'
{
ConfigFileEntry.dots_in_ident = $3;
diff --git a/src/hash.c b/src/hash.c
index c02feeb..4dad3c7 100644
--- a/src/hash.c
+++ b/src/hash.c
@@ -780,7 +780,7 @@ list_one_channel(struct Client *source_p, struct Channel *chptr,
if (!list_allow_channel(chptr->chname, list_task))
return;
- sendto_one(source_p, RPL_LIST, me.name, source_p->name,
+ sendto_one(source_p, form_str(RPL_LIST), me.name, source_p->name,
chptr->chname, dlink_list_length(&chptr->members),
chptr->topic);
}
@@ -831,6 +831,6 @@ safe_list_channels(struct Client *source_p, struct ListTask *list_task,
}
free_list_task(list_task, source_p);
- sendto_one(source_p, RPL_LISTEND,
+ sendto_one(source_p, form_str(RPL_LISTEND),
me.name, source_p->name);
}
diff --git a/src/irc_res.c b/src/irc_res.c
index 8db1fa6..c7577c3 100644
--- a/src/irc_res.c
+++ b/src/irc_res.c
@@ -830,7 +830,7 @@ report_dns_servers(struct Client *source_p)
getnameinfo((struct sockaddr *)&(irc_nsaddr_list[i]),
irc_nsaddr_list[i].ss_len, ipaddr,
sizeof(ipaddr), NULL, 0, NI_NUMERICHOST);
- sendto_one(source_p, RPL_STATSALINE,
+ sendto_one(source_p, form_str(RPL_STATSALINE),
me.name, source_p->name, ipaddr);
}
}
diff --git a/src/listener.c b/src/listener.c
index bac4c9a..bd577a7 100644
--- a/src/listener.c
+++ b/src/listener.c
@@ -104,7 +104,7 @@ show_ports(struct Client *source_p)
if (listener->flags & LISTENER_SSL)
*p++ = 's';
*p = '\0';
- sendto_one(source_p, RPL_STATSPLINE,
+ sendto_one(source_p, form_str(RPL_STATSPLINE),
me.name, source_p->name, 'P', listener->port,
HasUMode(source_p, UMODE_ADMIN) ? listener->name : me.name,
listener->ref_count, buf,
diff --git a/src/messages.tab b/src/messages.tab
new file mode 100644
index 0000000..5a292f6
--- /dev/null
+++ b/src/messages.tab
@@ -0,0 +1,1029 @@
+/************************************************************************
+ * IRC - Internet Relay Chat, src/messages.tab
+ * Copyright (C) 1992 Darren Reed
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 1, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * $Id$
+ */
+
+static struct NumericInfo replies[] = {
+/* 000 */ {NULL, NULL, NULL},
+/* 001 */ {"RPL_WELCOME", ":%s 001 %s :Welcome to the %s Internet Relay Chat Network %s", NULL},
+/* 002 */ {"RPL_YOURHOST", ":%s 002 %s :Your host is %s, running version %s", NULL},
+/* 003 */ {"RPL_CREATED", ":%s 003 %s :This server was created %s", NULL},
+#ifdef HALFOPS
+/* 004 */ {"RPL_MYINFO", ":%s 004 %s %s %s %s biklmnoprstveIhORS bkloveIh", NULL},
+#else
+/* 004 */ {"RPL_MYINFO", ":%s 004 %s %s %s %s biklmnoprstveIORS bkloveI", NULL},
+#endif
+/* 005 */ {"RPL_ISUPPORT", ":%s 005 %s %s :are supported by this server", NULL},
+/* 006 */ {NULL, NULL, NULL},
+/* 007 */ {NULL, NULL, NULL},
+/* 008 */ {NULL, NULL, NULL},
+/* 009 */ {NULL, NULL, NULL},
+/* 010 */ {"RPL_REDIR", ":%s 010 %s %s %d :Please use this Server/Port instead", NULL},
+/* 011 */ {NULL, NULL, NULL},
+/* 012 */ {NULL, NULL, NULL},
+/* 013 */ {NULL, NULL, NULL},
+/* 014 */ {NULL, NULL, NULL},
+/* 015 */ {"RPL_MAP", ":%s 015 %s :%s", NULL},
+/* 016 */ {NULL, NULL, NULL},
+/* 017 */ {"RPL_MAPEND", ":%s 017 %s :End of /MAP", NULL},
+/* 018 */ {NULL, NULL, NULL},
+/* 019 */ {NULL, NULL, NULL},
+/* 020 */ {NULL, NULL, NULL},
+/* 021 */ {NULL, NULL, NULL},
+/* 022 */ {NULL, NULL, NULL},
+/* 023 */ {NULL, NULL, NULL},
+/* 024 */ {NULL, NULL, NULL},
+/* 025 */ {NULL, NULL, NULL},
+/* 026 */ {NULL, NULL, NULL},
+/* 027 */ {NULL, NULL, NULL},
+/* 028 */ {NULL, NULL, NULL},
+/* 029 */ {NULL, NULL, NULL},
+/* 030 */ {NULL, NULL, NULL},
+/* 031 */ {NULL, NULL, NULL},
+/* 032 */ {NULL, NULL, NULL},
+/* 033 */ {NULL, NULL, NULL},
+/* 034 */ {NULL, NULL, NULL},
+/* 035 */ {NULL, NULL, NULL},
+/* 036 */ {NULL, NULL, NULL},
+/* 037 */ {NULL, NULL, NULL},
+/* 038 */ {NULL, NULL, NULL},
+/* 039 */ {NULL, NULL, NULL},
+/* 040 */ {NULL, NULL, NULL},
+/* 041 */ {NULL, NULL, NULL},
+/* 042 */ {"RPL_YOURID", ":%s 042 %s %s :your unique ID", NULL},
+/* 043 */ {NULL, NULL, NULL},
+/* 044 */ {NULL, NULL, NULL},
+/* 045 */ {NULL, NULL, NULL},
+/* 046 */ {NULL, NULL, NULL},
+/* 047 */ {NULL, NULL, NULL},
+/* 048 */ {NULL, NULL, NULL},
+/* 049 */ {NULL, NULL, NULL},
+/* 050 */ {NULL, NULL, NULL},
+/* 051 */ {NULL, NULL, NULL},
+/* 052 */ {NULL, NULL, NULL},
+/* 053 */ {NULL, NULL, NULL},
+/* 054 */ {NULL, NULL, NULL},
+/* 055 */ {NULL, NULL, NULL},
+/* 056 */ {NULL, NULL, NULL},
+/* 057 */ {NULL, NULL, NULL},
+/* 058 */ {NULL, NULL, NULL},
+/* 059 */ {NULL, NULL, NULL},
+/* 060 */ {NULL, NULL, NULL},
+/* 061 */ {NULL, NULL, NULL},
+/* 062 */ {NULL, NULL, NULL},
+/* 063 */ {NULL, NULL, NULL},
+/* 064 */ {NULL, NULL, NULL},
+/* 065 */ {NULL, NULL, NULL},
+/* 066 */ {NULL, NULL, NULL},
+/* 067 */ {NULL, NULL, NULL},
+/* 068 */ {NULL, NULL, NULL},
+/* 069 */ {NULL, NULL, NULL},
+/* 070 */ {NULL, NULL, NULL},
+/* 071 */ {NULL, NULL, NULL},
+/* 072 */ {NULL, NULL, NULL},
+/* 073 */ {NULL, NULL, NULL},
+/* 074 */ {NULL, NULL, NULL},
+/* 075 */ {NULL, NULL, NULL},
+/* 076 */ {NULL, NULL, NULL},
+/* 077 */ {NULL, NULL, NULL},
+/* 078 */ {NULL, NULL, NULL},
+/* 079 */ {NULL, NULL, NULL},
+/* 080 */ {NULL, NULL, NULL},
+/* 081 */ {NULL, NULL, NULL},
+/* 082 */ {NULL, NULL, NULL},
+/* 083 */ {NULL, NULL, NULL},
+/* 084 */ {NULL, NULL, NULL},
+/* 085 */ {NULL, NULL, NULL},
+/* 086 */ {NULL, NULL, NULL},
+/* 087 */ {NULL, NULL, NULL},
+/* 088 */ {NULL, NULL, NULL},
+/* 089 */ {NULL, NULL, NULL},
+/* 090 */ {NULL, NULL, NULL},
+/* 091 */ {NULL, NULL, NULL},
+/* 092 */ {NULL, NULL, NULL},
+/* 093 */ {NULL, NULL, NULL},
+/* 094 */ {NULL, NULL, NULL},
+/* 095 */ {NULL, NULL, NULL},
+/* 096 */ {NULL, NULL, NULL},
+/* 097 */ {NULL, NULL, NULL},
+/* 098 */ {NULL, NULL, NULL},
+/* 099 */ {NULL, NULL, NULL},
+/* 100 */ {NULL, NULL, NULL},
+/* 101 */ {NULL, NULL, NULL},
+/* 102 */ {NULL, NULL, NULL},
+/* 103 */ {NULL, NULL, NULL},
+/* 104 */ {NULL, NULL, NULL},
+/* 105 */ {NULL, NULL, NULL},
+/* 106 */ {NULL, NULL, NULL},
+/* 107 */ {NULL, NULL, NULL},
+/* 108 */ {NULL, NULL, NULL},
+/* 109 */ {NULL, NULL, NULL},
+/* 110 */ {NULL, NULL, NULL},
+/* 111 */ {NULL, NULL, NULL},
+/* 112 */ {NULL, NULL, NULL},
+/* 113 */ {NULL, NULL, NULL},
+/* 114 */ {NULL, NULL, NULL},
+/* 115 */ {NULL, NULL, NULL},
+/* 116 */ {NULL, NULL, NULL},
+/* 117 */ {NULL, NULL, NULL},
+/* 118 */ {NULL, NULL, NULL},
+/* 119 */ {NULL, NULL, NULL},
+/* 120 */ {NULL, NULL, NULL},
+/* 121 */ {NULL, NULL, NULL},
+/* 122 */ {NULL, NULL, NULL},
+/* 123 */ {NULL, NULL, NULL},
+/* 124 */ {NULL, NULL, NULL},
+/* 125 */ {NULL, NULL, NULL},
+/* 126 */ {NULL, NULL, NULL},
+/* 127 */ {NULL, NULL, NULL},
+/* 128 */ {NULL, NULL, NULL},
+/* 129 */ {NULL, NULL, NULL},
+/* 130 */ {NULL, NULL, NULL},
+/* 131 */ {NULL, NULL, NULL},
+/* 132 */ {NULL, NULL, NULL},
+/* 133 */ {NULL, NULL, NULL},
+/* 134 */ {NULL, NULL, NULL},
+/* 135 */ {NULL, NULL, NULL},
+/* 136 */ {NULL, NULL, NULL},
+/* 137 */ {NULL, NULL, NULL},
+/* 138 */ {NULL, NULL, NULL},
+/* 139 */ {NULL, NULL, NULL},
+/* 140 */ {NULL, NULL, NULL},
+/* 141 */ {NULL, NULL, NULL},
+/* 142 */ {NULL, NULL, NULL},
+/* 143 */ {NULL, NULL, NULL},
+/* 144 */ {NULL, NULL, NULL},
+/* 145 */ {NULL, NULL, NULL},
+/* 146 */ {NULL, NULL, NULL},
+/* 147 */ {NULL, NULL, NULL},
+/* 148 */ {NULL, NULL, NULL},
+/* 149 */ {NULL, NULL, NULL},
+/* 150 */ {NULL, NULL, NULL},
+/* 151 */ {NULL, NULL, NULL},
+/* 152 */ {NULL, NULL, NULL},
+/* 153 */ {NULL, NULL, NULL},
+/* 154 */ {NULL, NULL, NULL},
+/* 155 */ {NULL, NULL, NULL},
+/* 156 */ {NULL, NULL, NULL},
+/* 157 */ {NULL, NULL, NULL},
+/* 158 */ {NULL, NULL, NULL},
+/* 159 */ {NULL, NULL, NULL},
+/* 160 */ {NULL, NULL, NULL},
+/* 161 */ {NULL, NULL, NULL},
+/* 162 */ {NULL, NULL, NULL},
+/* 163 */ {NULL, NULL, NULL},
+/* 164 */ {NULL, NULL, NULL},
+/* 165 */ {NULL, NULL, NULL},
+/* 166 */ {NULL, NULL, NULL},
+/* 167 */ {NULL, NULL, NULL},
+/* 168 */ {NULL, NULL, NULL},
+/* 169 */ {NULL, NULL, NULL},
+/* 170 */ {NULL, NULL, NULL},
+/* 171 */ {NULL, NULL, NULL},
+/* 172 */ {NULL, NULL, NULL},
+/* 173 */ {NULL, NULL, NULL},
+/* 174 */ {NULL, NULL, NULL},
+/* 175 */ {NULL, NULL, NULL},
+/* 176 */ {NULL, NULL, NULL},
+/* 177 */ {NULL, NULL, NULL},
+/* 178 */ {NULL, NULL, NULL},
+/* 179 */ {NULL, NULL, NULL},
+/* 180 */ {NULL, NULL, NULL},
+/* 181 */ {NULL, NULL, NULL},
+/* 182 */ {NULL, NULL, NULL},
+/* 183 */ {NULL, NULL, NULL},
+/* 184 */ {NULL, NULL, NULL},
+/* 185 */ {NULL, NULL, NULL},
+/* 186 */ {NULL, NULL, NULL},
+/* 187 */ {NULL, NULL, NULL},
+/* 188 */ {NULL, NULL, NULL},
+/* 189 */ {NULL, NULL, NULL},
+/* 190 */ {NULL, NULL, NULL},
+/* 191 */ {NULL, NULL, NULL},
+/* 192 */ {NULL, NULL, NULL},
+/* 193 */ {NULL, NULL, NULL},
+/* 194 */ {NULL, NULL, NULL},
+/* 195 */ {NULL, NULL, NULL},
+/* 196 */ {NULL, NULL, NULL},
+/* 197 */ {NULL, NULL, NULL},
+/* 198 */ {NULL, NULL, NULL},
+/* 199 */ {NULL, NULL, NULL},
+/* 200 */ {"RPL_TRACELINK", ":%s 200 %s Link %s %s %s", NULL},
+/* 201 */ {"RPL_TRACECONNECTING", ":%s 201 %s Try. %s %s", NULL},
+/* 202 */ {"RPL_TRACEHANDSHAKE", ":%s 202 %s H.S. %s %s", NULL},
+/* 203 */ {"RPL_TRACEUNKNOWN", ":%s 203 %s ???? %s %s (%s) %d", NULL},
+/* 204 */ {"RPL_TRACEOPERATOR", ":%s 204 %s Oper %s %s (%s) %lu %lu", NULL},
+/* 205 */ {"RPL_TRACEUSER", ":%s 205 %s User %s %s (%s) %lu %lu", NULL},
+/* 206 */ {"RPL_TRACESERVER", ":%s 206 %s Serv %s %dS %dC %s %s!%s@%s %lu", NULL},
+/* 207 */ {NULL, NULL, NULL},
+/* 208 */ {"RPL_TRACENEWTYPE", ":%s 208 %s <newtype> 0 %s", NULL},
+/* 209 */ {"RPL_TRACECLASS", ":%s 209 %s Class %s %d", NULL},
+/* 210 */ {NULL, NULL, NULL},
+/* 211 */ {"RPL_STATSLINKINFO", ":%s 211 %s %s %u %u %llu %u %llu :%u %u %s", NULL},
+/* 212 */ {"RPL_STATSCOMMANDS", ":%s 212 %s %s %u %llu :%u", NULL},
+/* 213 */ {"RPL_STATSCLINE", ":%s 213 %s %c %s %s %s %d %s", NULL},
+/* 214 */ {"RPL_STATSNLINE", ":%s 214 %s %c %s * %s %d %s", NULL},
+/* 215 */ {"RPL_STATSILINE", ":%s 215 %s %c %s * %s@%s %d %s", NULL},
+/* 216 */ {"RPL_STATSKLINE", ":%s 216 %s %s %s * %s :%s", NULL},
+/* 217 */ {"RPL_STATSQLINE", ":%s 217 %s %c %u %s :%s", NULL},
+/* 218 */ {"RPL_STATSYLINE", ":%s 218 %s %c %s %u %u %u %u %u %u %u/%u %u/%u %s", NULL},
+/* 219 */ {"RPL_ENDOFSTATS", ":%s 219 %s %c :End of /STATS report", NULL},
+/* 220 */ {"RPL_STATSPLINE", ":%s 220 %s %c %d %s %d %s :%s", NULL},
+/* 221 */ {"RPL_UMODEIS", ":%s 221 %s %s", NULL},
+/* 222 */ {NULL, NULL, NULL},
+/* 223 */ {NULL, NULL, NULL},
+/* 224 */ {NULL, NULL, NULL},
+/* 225 */ {"RPL_STATSDLINE", ":%s 225 %s %c %s :%s", NULL},
+/* 226 */ {"RPL_STATSALINE", ":%s 226 %s %s", NULL},
+/* 227 */ {NULL, NULL, NULL},
+/* 228 */ {NULL, NULL, NULL},
+/* 229 */ {NULL, NULL, NULL},
+/* 230 */ {NULL, NULL, NULL},
+/* 231 */ {NULL, NULL, NULL},
+/* 232 */ {NULL, NULL, NULL},
+/* 233 */ {NULL, NULL, NULL},
+/* 234 */ {NULL, NULL, NULL},
+/* 235 */ {NULL, NULL, NULL},
+/* 236 */ {NULL, NULL, NULL},
+/* 237 */ {NULL, NULL, NULL},
+/* 238 */ {NULL, NULL, NULL},
+/* 239 */ {NULL, NULL, NULL},
+/* 240 */ {NULL, NULL, NULL},
+/* 241 */ {"RPL_STATSLLINE", ":%s 241 %s %c %s * %s %d %s", NULL},
+/* 242 */ {"RPL_STATSUPTIME", ":%s 242 %s :Server Up %d days, %d:%02d:%02d", NULL},
+/* 243 */ {"RPL_STATSOLINE", ":%s 243 %s %c %s@%s * %s %s %s", NULL},
+/* 244 */ {"RPL_STATSHLINE", ":%s 244 %s %c %s * %s %d %s", NULL},
+/* 245 */ {"RPL_STATSSLINE", NULL, NULL},
+/* 246 */ {"RPL_STATSSERVICE", ":%s 246 %s %c %s * %s %d %d", NULL},
+/* 247 */ {"RPL_STATSXLINE", ":%s 247 %s %s %d %s :%s", NULL},
+/* 248 */ {"RPL_STATSULINE", ":%s 248 %s U %s %s@%s %s", NULL},
+/* 249 */ {NULL, NULL, NULL},
+/* 250 */ {"RPL_STATSCONN", ":%s 250 %s :Highest connection count: %d (%d clients) (%llu connections received)", NULL},
+/* 251 */ {"RPL_LUSERCLIENT", ":%s 251 %s :There are %d users and %d invisible on %d servers", NULL},
+/* 252 */ {"RPL_LUSEROP", ":%s 252 %s %d :IRC Operators online", NULL},
+/* 253 */ {"RPL_LUSERUNKNOWN", ":%s 253 %s %d :unknown connection(s)", NULL},
+/* 254 */ {"RPL_LUSERCHANNELS", ":%s 254 %s %d :channels formed", NULL},
+/* 255 */ {"RPL_LUSERME", ":%s 255 %s :I have %d clients and %d servers", NULL},
+/* 256 */ {"RPL_ADMINME", ":%s 256 %s :Administrative info about %s", NULL},
+/* 257 */ {"RPL_ADMINLOC1", ":%s 257 %s :%s", NULL},
+/* 258 */ {"RPL_ADMINLOC2", ":%s 258 %s :%s", NULL},
+/* 259 */ {"RPL_ADMINEMAIL", ":%s 259 %s :%s", NULL},
+/* 260 */ {NULL, NULL, NULL},
+/* 261 */ {NULL, NULL, NULL},
+/* 262 */ {"RPL_ENDOFTRACE", ":%s 262 %s %s :End of TRACE", NULL},
+/* 263 */ {"RPL_LOAD2HI", ":%s 263 %s :Server load is temporarily too heavy. Please wait a while and try again.", NULL},
+/* 264 */ {NULL, NULL, NULL},
+/* 265 */ {"RPL_LOCALUSERS", ":%s 265 %s :Current local users: %d Max: %d", NULL},
+/* 266 */ {"RPL_GLOBALUSERS", ":%s 266 %s :Current global users: %d Max: %d", NULL},
+/* 267 */ {NULL, NULL, NULL},
+/* 268 */ {NULL, NULL, NULL},
+/* 269 */ {NULL, NULL, NULL},
+/* 270 */ {NULL, NULL, NULL},
+/* 271 */ {NULL, NULL, NULL},
+/* 272 */ {NULL, NULL, NULL},
+/* 273 */ {NULL, NULL, NULL},
+/* 274 */ {NULL, NULL, NULL},
+/* 275 */ {NULL, NULL, NULL},
+/* 276 */ {NULL, NULL, NULL},
+/* 277 */ {NULL, NULL, NULL},
+/* 278 */ {NULL, NULL, NULL},
+/* 279 */ {NULL, NULL, NULL},
+/* 280 */ {NULL, NULL, NULL},
+/* 281 */ {"RPL_ACCEPTLIST", ":%s 281 %s :%s", NULL},
+/* 282 */ {"RPL_ENDOFACCEPT", ":%s 282 %s :End of /ACCEPT list.", NULL},
+/* 283 */ {NULL, NULL, NULL},
+/* 284 */ {NULL, NULL, NULL},
+/* 285 */ {NULL, NULL, NULL},
+/* 286 */ {NULL, NULL, NULL},
+/* 287 */ {NULL, NULL, NULL},
+/* 288 */ {NULL, NULL, NULL},
+/* 289 */ {NULL, NULL, NULL},
+/* 290 */ {NULL, NULL, NULL},
+/* 291 */ {NULL, NULL, NULL},
+/* 292 */ {NULL, NULL, NULL},
+/* 293 */ {NULL, NULL, NULL},
+/* 294 */ {NULL, NULL, NULL},
+/* 295 */ {NULL, NULL, NULL},
+/* 296 */ {NULL, NULL, NULL},
+/* 297 */ {NULL, NULL, NULL},
+/* 298 */ {NULL, NULL, NULL},
+/* 299 */ {NULL, NULL, NULL},
+/* 300 */ {NULL, NULL, NULL},
+/* 301 */ {"RPL_AWAY", ":%s 301 %s %s :%s", NULL},
+/* 302 */ {"RPL_USERHOST", ":%s 302 %s :%s", NULL},
+/* 303 */ {"RPL_ISON", ":%s 303 %s :", NULL},
+/* 304 */ {"RPL_TEXT", NULL, NULL},
+/* 305 */ {"RPL_UNAWAY", ":%s 305 %s :You are no longer marked as being away", NULL},
+/* 306 */ {"RPL_NOWAWAY", ":%s 306 %s :You have been marked as being away", NULL},
+/* 307 */ {"RPL_WHOISREGNICK", ":%s 307 %s %s :has identified for this nick", NULL},
+/* 308 */ {"RPL_WHOISADMIN", ":%s 313 %s %s :is a Server Administrator", NULL},
+/* 309 */ {NULL, NULL, NULL},
+/* 310 */ {NULL, NULL, NULL},
+/* 311 */ {"RPL_WHOISUSER", ":%s 311 %s %s %s %s * :%s", NULL},
+/* 312 */ {"RPL_WHOISSERVER", ":%s 312 %s %s %s :%s", NULL},
+/* 313 */ {"RPL_WHOISOPERATOR", ":%s 313 %s %s :is an IRC Operator", NULL},
+/* 314 */ {"RPL_WHOWASUSER", ":%s 314 %s %s %s %s * :%s", NULL},
+/* 315 */ {"RPL_ENDOFWHO", ":%s 315 %s %s :End of /WHO list.", NULL},
+/* 316 */ {"RPL_WHOISCHANOP", NULL, NULL},
+/* 317 */ {"RPL_WHOISIDLE", ":%s 317 %s %s %u %d :seconds idle, signon time", NULL},
+/* 318 */ {"RPL_ENDOFWHOIS", ":%s 318 %s %s :End of /WHOIS list.", NULL},
+/* 319 */ {"RPL_WHOISCHANNELS", ":%s 319 %s %s :%s", NULL},
+/* 320 */ {NULL, NULL, NULL},
+/* 321 */ {"RPL_LISTSTART", ":%s 321 %s Channel :Users Name", NULL},
+/* 322 */ {"RPL_LIST", ":%s 322 %s %s %d :%s", NULL},
+/* 323 */ {"RPL_LISTEND", ":%s 323 %s :End of /LIST", NULL},
+/* 324 */ {"RPL_CHANNELMODEIS", ":%s 324 %s %s %s %s", NULL},
+/* 325 */ {NULL, NULL, NULL},
+/* 326 */ {NULL, NULL, NULL},
+/* 327 */ {NULL, NULL, NULL},
+/* 328 */ {NULL, NULL, NULL},
+/* 329 */ {"RPL_CREATIONTIME", ":%s 329 %s %s %lu", NULL},
+/* 330 */ {NULL, NULL, NULL},
+/* 331 */ {"RPL_NOTOPIC", ":%s 331 %s %s :No topic is set.", NULL},
+/* 332 */ {"RPL_TOPIC", ":%s 332 %s %s :%s", NULL},
+/* 333 */ {"RPL_TOPICWHOTIME", ":%s 333 %s %s %s %lu", NULL},
+/* 334 */ {NULL, NULL, NULL},
+/* 335 */ {NULL, NULL, NULL},
+/* 336 */ {NULL, NULL, NULL},
+/* 337 */ {NULL, NULL, NULL},
+/* 338 */ {"RPL_WHOISACTUALLY", ":%s 338 %s %s %s :actually using host", NULL},
+/* 339 */ {NULL, NULL, NULL},
+/* 340 */ {NULL, NULL, NULL},
+/* 341 */ {"RPL_INVITING", ":%s 341 %s %s %s", NULL},
+/* 342 */ {NULL, NULL, NULL},
+/* 343 */ {NULL, NULL, NULL},
+/* 344 */ {NULL, NULL, NULL},
+/* 345 */ {NULL, NULL, NULL},
+/* 346 */ {"RPL_INVEXLIST", ":%s 346 %s %s %s!%s@%s %s %lu", NULL},
+/* 347 */ {"RPL_ENDOFINVEXLIST", ":%s 347 %s %s :End of Channel Invite List", NULL},
+/* 348 */ {"RPL_EXCEPTLIST", ":%s 348 %s %s %s!%s@%s %s %lu", NULL},
+/* 349 */ {"RPL_ENDOFEXCEPTLIST", ":%s 349 %s %s :End of Channel Exception List", NULL},
+/* 350 */ {NULL, NULL, NULL},
+/* 351 */ {"RPL_VERSION", ":%s 351 %s %s(%s). %s :%s%s", NULL},
+/* 352 */ {"RPL_WHOREPLY", ":%s 352 %s %s %s %s %s %s %s :%d %s", NULL},
+/* 353 */ {"RPL_NAMREPLY", ":%s 353 %s %s %s :", NULL},
+/* 354 */ {NULL, NULL, NULL},
+/* 355 */ {NULL, NULL, NULL},
+/* 356 */ {NULL, NULL, NULL},
+/* 357 */ {NULL, NULL, NULL},
+/* 358 */ {NULL, NULL, NULL},
+/* 359 */ {NULL, NULL, NULL},
+/* 360 */ {NULL, NULL, NULL},
+/* 361 */ {NULL, NULL, NULL},
+/* 362 */ {"RPL_CLOSING", ":%s 362 %s %s :Closed. Status = %d", NULL},
+/* 363 */ {"RPL_CLOSEEND", ":%s 363 %s %d: Connections Closed", NULL},
+/* 364 */ {"RPL_LINKS", ":%s 364 %s %s %s :%d %s", NULL},
+/* 365 */ {"RPL_ENDOFLINKS", ":%s 365 %s %s :End of /LINKS list.", NULL},
+/* 366 */ {"RPL_ENDOFNAMES", ":%s 366 %s %s :End of /NAMES list.", NULL},
+/* 367 */ {"RPL_BANLIST", ":%s 367 %s %s %s!%s@%s %s %lu", NULL},
+/* 368 */ {"RPL_ENDOFBANLIST", ":%s 368 %s %s :End of Channel Ban List", NULL},
+/* 369 */ {"RPL_ENDOFWHOWAS", ":%s 369 %s %s :End of WHOWAS", NULL},
+/* 370 */ {NULL, NULL, NULL},
+/* 371 */ {"RPL_INFO", ":%s 371 %s :%s", NULL},
+/* 372 */ {"RPL_MOTD", ":%s 372 %s :- %s", NULL},
+/* 373 */ {"RPL_INFOSTART", ":%s 373 %s :Server INFO", NULL},
+/* 374 */ {"RPL_ENDOFINFO", ":%s 374 %s :End of /INFO list.", NULL},
+/* 375 */ {"RPL_MOTDSTART", ":%s 375 %s :- %s Message of the Day - ", NULL},
+/* 376 */ {"RPL_ENDOFMOTD", ":%s 376 %s :End of /MOTD command.", NULL},
+/* 377 */ {NULL, NULL, NULL},
+/* 378 */ {NULL, NULL, NULL},
+/* 379 */ {NULL, NULL, NULL},
+/* 380 */ {NULL, NULL, NULL},
+/* 381 */ {"RPL_YOUREOPER", ":%s 381 %s :You have entered... the Twilight Zone!", NULL},
+/* 382 */ {"RPL_REHASHING", ":%s 382 %s %s :Rehashing", NULL},
+/* 383 */ {NULL, NULL, NULL},
+/* 384 */ {NULL, NULL, NULL},
+/* 385 */ {NULL, NULL, NULL},
+/* 386 */ {NULL, ":%s 386 %s :%s", NULL},
+/* 387 */ {NULL, NULL, NULL},
+/* 388 */ {NULL, NULL, NULL},
+/* 389 */ {NULL, NULL, NULL},
+/* 390 */ {NULL, NULL, NULL},
+/* 391 */ {"RPL_TIME", ":%s 391 %s %s :%s", NULL},
+/* 392 */ {NULL, NULL, NULL},
+/* 393 */ {NULL, NULL, NULL},
+/* 394 */ {NULL, NULL, NULL},
+/* 395 */ {NULL, NULL, NULL},
+/* 396 */ {"RPL_HOSTHIDDEN", ":%s 396 %s %s :is now your hidden host", NULL},
+/* 397 */ {NULL, NULL, NULL},
+/* 398 */ {NULL, NULL, NULL},
+/* 399 */ {NULL, NULL, NULL},
+/* 400 */ {NULL, NULL, NULL},
+/* 401 */ {"ERR_NOSUCHNICK", ":%s 401 %s %s :No such nick/channel", NULL},
+/* 402 */ {"ERR_NOSUCHSERVER", ":%s 402 %s %s :No such server", NULL},
+/* 403 */ {"ERR_NOSUCHCHANNEL", ":%s 403 %s %s :No such channel", NULL},
+/* 404 */ {"ERR_CANNOTSENDTOCHAN", ":%s 404 %s %s :Cannot send to channel", NULL},
+/* 405 */ {"ERR_TOOMANYCHANNELS", ":%s 405 %s %s :You have joined too many channels", NULL},
+/* 406 */ {"ERR_WASNOSUCHNICK", ":%s 406 %s %s :There was no such nickname", NULL},
+/* 407 */ {"ERR_TOOMANYTARGETS", ":%s 407 %s %s :Too many recipients. Only %d processed", NULL},
+/* 408 */ {NULL, NULL, NULL},
+/* 409 */ {"ERR_NOORIGIN", ":%s 409 %s :No origin specified", NULL},
+/* 410 */ {"ERR_INVALIDCAPCMD", ":%s 410 %s %s :Invalid CAP subcommand", NULL},
+/* 411 */ {"ERR_NORECIPIENT", ":%s 411 %s :No recipient given (%s)", NULL},
+/* 412 */ {"ERR_NOTEXTTOSEND", ":%s 412 %s :No text to send", NULL},
+/* 413 */ {"ERR_NOTOPLEVEL", ":%s 413 %s %s :No toplevel domain specified", NULL},
+/* 414 */ {"ERR_WILDTOPLEVEL", ":%s 414 %s %s :Wildcard in toplevel Domain", NULL},
+/* 415 */ {NULL, NULL, NULL},
+/* 416 */ {NULL, NULL, NULL},
+/* 417 */ {NULL, NULL, NULL},
+/* 418 */ {NULL, NULL, NULL},
+/* 419 */ {NULL, NULL, NULL},
+/* 420 */ {NULL, NULL, NULL},
+/* 421 */ {"ERR_UNKNOWNCOMMAND", ":%s 421 %s %s :Unknown command", NULL},
+/* 422 */ {"ERR_NOMOTD", ":%s 422 %s :MOTD File is missing", NULL},
+/* 423 */ {"ERR_NOADMININFO", ":%s 423 %s %s :No administrative info available", NULL},
+/* 424 */ {NULL, NULL, NULL},
+/* 425 */ {NULL, NULL, NULL},
+/* 426 */ {NULL, NULL, NULL},
+/* 427 */ {NULL, NULL, NULL},
+/* 428 */ {NULL, NULL, NULL},
+/* 429 */ {NULL, NULL, NULL},
+/* 430 */ {NULL, NULL, NULL},
+/* 431 */ {"ERR_NONICKNAMEGIVEN", ":%s 431 %s :No nickname given", NULL},
+/* 432 */ {"ERR_ERRONEUSNICKNAME", ":%s 432 %s %s :Erroneous Nickname", NULL},
+/* 433 */ {"ERR_NICKNAMEINUSE", ":%s 433 %s %s :Nickname is already in use.", NULL},
+/* 434 */ {NULL, NULL, NULL},
+/* 435 */ {NULL, NULL, NULL},
+/* 436 */ {"ERR_NICKCOLLISION", ":%s 436 %s %s :Nickname collision KILL", NULL},
+/* 437 */ {"ERR_UNAVAILRESOURCE", ":%s 437 %s %s :Nick/channel is temporarily unavailable", NULL},
+/* 438 */ {"ERR_NICKTOOFAST", ":%s 438 %s %s %s :Nick change too fast. Please wait %d seconds.", NULL},
+/* 439 */ {NULL, NULL, NULL},
+/* 440 */ {"ERR_SERVICESDOWN", ":%s 440 %s %s :Services is currently down.", NULL},
+/* 441 */ {"ERR_USERNOTINCHANNEL", ":%s 441 %s %s %s :They aren't on that channel", NULL},
+/* 442 */ {"ERR_NOTONCHANNEL", ":%s 442 %s %s :You're not on that channel", NULL},
+/* 443 */ {"ERR_USERONCHANNEL", ":%s 443 %s %s %s :is already on channel", NULL},
+/* 444 */ {NULL, NULL, NULL},
+/* 445 */ {NULL, NULL, NULL},
+/* 446 */ {NULL, NULL, NULL},
+/* 447 */ {NULL, NULL, NULL},
+/* 448 */ {NULL, NULL, NULL},
+/* 449 */ {NULL, NULL, NULL},
+/* 450 */ {NULL, NULL, NULL},
+/* 451 */ {"ERR_NOTREGISTERED", ":%s 451 %s :You have not registered", NULL},
+/* 452 */ {NULL, NULL, NULL},
+/* 453 */ {NULL, NULL, NULL},
+/* 454 */ {NULL, NULL, NULL},
+/* 455 */ {NULL, NULL, NULL},
+/* 456 */ {"ERR_ACCEPTFULL", ":%s 456 %s :Accept list is full", NULL},
+/* 457 */ {"ERR_ACCEPTEXIST", ":%s 457 %s %s!%s@%s :is already on your accept list", NULL},
+/* 458 */ {"ERR_ACCEPTNOT", ":%s 458 %s %s!%s@%s :is not on your accept list", NULL},
+/* 459 */ {NULL, NULL, NULL},
+/* 460 */ {NULL, NULL, NULL},
+/* 461 */ {"ERR_NEEDMOREPARAMS", ":%s 461 %s %s :Not enough parameters", NULL},
+/* 462 */ {"ERR_ALREADYREGISTRED", ":%s 462 %s :You may not reregister", NULL},
+/* 463 */ {NULL, NULL, NULL},
+/* 464 */ {"ERR_PASSWDMISMATCH", ":%s 464 %s :Password Incorrect", NULL},
+/* 465 */ {"ERR_YOUREBANNEDCREEP", ":%s 465 %s :You are banned from this server- %s", NULL},
+/* 466 */ {NULL, NULL, NULL},
+/* 467 */ {NULL, NULL, NULL},
+/* 468 */ {"ERR_ONLYSERVERSCANCHANGE", ":%s 468 %s %s :Only servers can change that mode", NULL},
+/* 469 */ {NULL, NULL, NULL},
+/* 470 */ {"ERR_OPERONLYCHAN", ":%s 470 %s %s :Cannot join channel (+O)", NULL},
+/* 471 */ {"ERR_CHANNELISFULL", ":%s 471 %s %s :Cannot join channel (+l)", NULL},
+/* 472 */ {"ERR_UNKNOWNMODE", ":%s 472 %s %c :is unknown mode char to me", NULL},
+/* 473 */ {"ERR_INVITEONLYCHAN", ":%s 473 %s %s :Cannot join channel (+i)", NULL},
+/* 474 */ {"ERR_BANNEDFROMCHAN", ":%s 474 %s %s :Cannot join channel (+b)", NULL},
+/* 475 */ {"ERR_BADCHANNELKEY", ":%s 475 %s %s :Cannot join channel (+k)", NULL},
+/* 476 */ {NULL, NULL, NULL},
+/* 477 */ {"ERR_NEEDREGGEDNICK", ":%s 477 %s %s :You need to identify to a registered nick to join or speak in that "
+ "channel.", NULL},
+/* 478 */ {"ERR_BANLISTFULL", ":%s 478 %s %s %s :Channel ban list is full", NULL},
+/* 479 */ {"ERR_BADCHANNAME", ":%s 479 %s %s :Illegal channel name", NULL},
+/* 480 */ {"ERR_SSLONLYCHAN", ":%s 480 %s %s :Cannot join channel (+S)", NULL},
+/* 481 */ {"ERR_NOPRIVILEGES", ":%s 481 %s :Permission Denied - You're not an IRC operator", NULL},
+/* 482 */ {"ERR_CHANOPRIVSNEEDED", ":%s 482 %s %s :You're not channel operator", NULL},
+/* 483 */ {"ERR_CANTKILLSERVER", ":%s 483 %s :You can't kill a server!", NULL},
+/* 484 */ {"ERR_RESTRICTED", ":%s 484 %s :You are restricted", NULL},
+/* 485 */ {NULL, NULL, NULL},
+/* 486 */ {"ERR_NONONREG", ":%s 486 %s %s :You must identify to a registered "
+ "nick to private message that person", NULL},
+/* 487 */ {NULL, NULL, NULL},
+/* 488 */ {NULL, NULL, NULL},
+/* 489 */ {NULL, NULL, NULL},
+/* 490 */ {NULL, NULL, NULL},
+/* 491 */ {"ERR_NOOPERHOST", ":%s 491 %s :Only few of mere mortals may try to enter the twilight zone", NULL},
+/* 492 */ {NULL, NULL, NULL},
+/* 493 */ {NULL, NULL, NULL},
+/* 494 */ {NULL, NULL, NULL},
+/* 495 */ {NULL, NULL, NULL},
+/* 496 */ {NULL, NULL, NULL},
+/* 497 */ {NULL, NULL, NULL},
+/* 498 */ {NULL, NULL, NULL},
+/* 499 */ {NULL, NULL, NULL},
+/* 500 */ {NULL, NULL, NULL},
+/* 501 */ {"ERR_UMODEUNKNOWNFLAG", ":%s 501 %s :Unknown MODE flag", NULL},
+/* 502 */ {"ERR_USERSDONTMATCH", ":%s 502 %s :Can't change mode for other users", NULL},
+/* 503 */ {"ERR_GHOSTEDCLIENT", ":%s 503 %s :Message could not be delivered to %s", NULL},
+/* 504 */ {"ERR_USERNOTONSERV", ":%s 504 %s %s :User is not on this server", NULL},
+/* 505 */ {NULL, NULL, NULL},
+/* 506 */ {NULL, NULL, NULL},
+/* 507 */ {NULL, NULL, NULL},
+/* 508 */ {NULL, NULL, NULL},
+/* 509 */ {NULL, NULL, NULL},
+/* 510 */ {NULL, NULL, NULL},
+/* 511 */ {NULL, NULL, NULL},
+/* 512 */ {"ERR_TOOMANYWATCH", ":%s 512 %s %s :Maximum size for WATCH-list is %d entries", NULL},
+/* 513 */ {"ERR_WRONGPONG", ":%s 513 %s :To connect type /QUOTE PONG %u", NULL},
+/* 514 */ {NULL, NULL, NULL},
+/* 515 */ {NULL, NULL, NULL},
+/* 516 */ {NULL, NULL, NULL},
+/* 517 */ {NULL, NULL, NULL},
+/* 518 */ {NULL, NULL, NULL},
+/* 519 */ {NULL, NULL, NULL},
+/* 520 */ {NULL, NULL, NULL},
+/* 521 */ {"ERR_LISTSYNTAX", ":%s 521 %s :Bad list syntax, type /QUOTE HELP LIST", NULL},
+/* 522 */ {NULL, NULL, NULL},
+/* 523 */ {NULL, NULL, NULL},
+/* 524 */ {"ERR_HELPNOTFOUND", ":%s 524 %s %s :Help not found", NULL},
+/* 525 */ {NULL, NULL, NULL},
+/* 526 */ {NULL, NULL, NULL},
+/* 527 */ {NULL, NULL, NULL},
+/* 528 */ {NULL, NULL, NULL},
+/* 529 */ {NULL, NULL, NULL},
+/* 530 */ {NULL, NULL, NULL},
+/* 531 */ {NULL, NULL, NULL},
+/* 532 */ {NULL, NULL, NULL},
+/* 533 */ {NULL, NULL, NULL},
+/* 534 */ {NULL, NULL, NULL},
+/* 535 */ {NULL, NULL, NULL},
+/* 536 */ {NULL, NULL, NULL},
+/* 537 */ {NULL, NULL, NULL},
+/* 538 */ {NULL, NULL, NULL},
+/* 539 */ {NULL, NULL, NULL},
+/* 540 */ {NULL, NULL, NULL},
+/* 541 */ {NULL, NULL, NULL},
+/* 542 */ {NULL, NULL, NULL},
+/* 543 */ {NULL, NULL, NULL},
+/* 544 */ {NULL, NULL, NULL},
+/* 545 */ {NULL, NULL, NULL},
+/* 546 */ {NULL, NULL, NULL},
+/* 547 */ {NULL, NULL, NULL},
+/* 548 */ {NULL, NULL, NULL},
+/* 549 */ {NULL, NULL, NULL},
+/* 550 */ {NULL, NULL, NULL},
+/* 551 */ {NULL, NULL, NULL},
+/* 552 */ {NULL, NULL, NULL},
+/* 553 */ {NULL, NULL, NULL},
+/* 554 */ {NULL, NULL, NULL},
+/* 555 */ {NULL, NULL, NULL},
+/* 556 */ {NULL, NULL, NULL},
+/* 557 */ {NULL, NULL, NULL},
+/* 558 */ {NULL, NULL, NULL},
+/* 559 */ {NULL, NULL, NULL},
+/* 560 */ {NULL, NULL, NULL},
+/* 561 */ {NULL, NULL, NULL},
+/* 562 */ {NULL, NULL, NULL},
+/* 563 */ {NULL, NULL, NULL},
+/* 564 */ {NULL, NULL, NULL},
+/* 565 */ {NULL, NULL, NULL},
+/* 566 */ {NULL, NULL, NULL},
+/* 567 */ {NULL, NULL, NULL},
+/* 568 */ {NULL, NULL, NULL},
+/* 569 */ {NULL, NULL, NULL},
+/* 570 */ {NULL, NULL, NULL},
+/* 571 */ {NULL, NULL, NULL},
+/* 572 */ {NULL, NULL, NULL},
+/* 573 */ {NULL, NULL, NULL},
+/* 574 */ {NULL, NULL, NULL},
+/* 575 */ {NULL, NULL, NULL},
+/* 576 */ {NULL, NULL, NULL},
+/* 577 */ {NULL, NULL, NULL},
+/* 578 */ {NULL, NULL, NULL},
+/* 579 */ {NULL, NULL, NULL},
+/* 580 */ {NULL, NULL, NULL},
+/* 581 */ {NULL, NULL, NULL},
+/* 582 */ {NULL, NULL, NULL},
+/* 583 */ {NULL, NULL, NULL},
+/* 584 */ {NULL, NULL, NULL},
+/* 585 */ {NULL, NULL, NULL},
+/* 586 */ {NULL, NULL, NULL},
+/* 587 */ {NULL, NULL, NULL},
+/* 588 */ {NULL, NULL, NULL},
+/* 589 */ {NULL, NULL, NULL},
+/* 590 */ {NULL, NULL, NULL},
+/* 591 */ {NULL, NULL, NULL},
+/* 592 */ {NULL, NULL, NULL},
+/* 593 */ {NULL, NULL, NULL},
+/* 594 */ {NULL, NULL, NULL},
+/* 595 */ {NULL, NULL, NULL},
+/* 596 */ {NULL, NULL, NULL},
+/* 597 */ {NULL, NULL, NULL},
+/* 598 */ {NULL, NULL, NULL},
+/* 599 */ {NULL, NULL, NULL},
+/* 600 */ {"RPL_LOGON", ":%s 600 %s %s %s %s %d :logged online", NULL},
+/* 601 */ {"RPL_LOGOFF", ":%s 601 %s %s %s %s %d :logged offline", NULL},
+/* 602 */ {"RPL_WATCHOFF", ":%s 602 %s %s %s %s %d :stopped watching", NULL},
+/* 603 */ {"RPL_WATCHSTAT", ":%s 603 %s :You have %u and are on %u WATCH entries", NULL},
+/* 604 */ {"RPL_NOWON", ":%s 604 %s %s %s %s %d :is online", NULL},
+/* 605 */ {"RPL_NOWOFF", ":%s 605 %s %s %s %s %d :is offline", NULL},
+/* 606 */ {"RPL_WATCHLIST", ":%s 606 %s :%s", NULL},
+/* 607 */ {"RPL_ENDOFWATCHLIST", ":%s 607 %s :End of WATCH %c", NULL},
+/* 608 */ {NULL, NULL, NULL},
+/* 609 */ {NULL, NULL, NULL},
+/* 610 */ {NULL, NULL, NULL},
+/* 611 */ {NULL, NULL, NULL},
+/* 612 */ {NULL, NULL, NULL},
+/* 613 */ {NULL, NULL, NULL},
+/* 614 */ {NULL, NULL, NULL},
+/* 615 */ {NULL, NULL, NULL},
+/* 616 */ {NULL, NULL, NULL},
+/* 617 */ {NULL, NULL, NULL},
+/* 618 */ {NULL, NULL, NULL},
+/* 619 */ {NULL, NULL, NULL},
+/* 620 */ {NULL, NULL, NULL},
+/* 621 */ {NULL, NULL, NULL},
+/* 622 */ {NULL, NULL, NULL},
+/* 623 */ {NULL, NULL, NULL},
+/* 624 */ {NULL, NULL, NULL},
+/* 625 */ {NULL, NULL, NULL},
+/* 626 */ {NULL, NULL, NULL},
+/* 627 */ {NULL, NULL, NULL},
+/* 628 */ {NULL, NULL, NULL},
+/* 629 */ {NULL, NULL, NULL},
+/* 630 */ {NULL, NULL, NULL},
+/* 631 */ {NULL, NULL, NULL},
+/* 632 */ {NULL, NULL, NULL},
+/* 633 */ {NULL, NULL, NULL},
+/* 634 */ {NULL, NULL, NULL},
+/* 635 */ {NULL, NULL, NULL},
+/* 636 */ {NULL, NULL, NULL},
+/* 637 */ {NULL, NULL, NULL},
+/* 638 */ {NULL, NULL, NULL},
+/* 639 */ {NULL, NULL, NULL},
+/* 640 */ {NULL, NULL, NULL},
+/* 641 */ {NULL, NULL, NULL},
+/* 642 */ {NULL, NULL, NULL},
+/* 643 */ {NULL, NULL, NULL},
+/* 644 */ {NULL, NULL, NULL},
+/* 645 */ {NULL, NULL, NULL},
+/* 646 */ {NULL, NULL, NULL},
+/* 647 */ {NULL, NULL, NULL},
+/* 648 */ {NULL, NULL, NULL},
+/* 649 */ {NULL, NULL, NULL},
+/* 650 */ {NULL, NULL, NULL},
+/* 651 */ {NULL, NULL, NULL},
+/* 652 */ {NULL, NULL, NULL},
+/* 653 */ {NULL, NULL, NULL},
+/* 654 */ {NULL, NULL, NULL},
+/* 655 */ {NULL, NULL, NULL},
+/* 656 */ {NULL, NULL, NULL},
+/* 657 */ {NULL, NULL, NULL},
+/* 658 */ {NULL, NULL, NULL},
+/* 659 */ {NULL, NULL, NULL},
+/* 660 */ {NULL, NULL, NULL},
+/* 661 */ {NULL, NULL, NULL},
+/* 662 */ {NULL, NULL, NULL},
+/* 663 */ {NULL, NULL, NULL},
+/* 664 */ {NULL, NULL, NULL},
+/* 665 */ {NULL, NULL, NULL},
+/* 666 */ {NULL, NULL, NULL},
+/* 667 */ {NULL, NULL, NULL},
+/* 668 */ {NULL, NULL, NULL},
+/* 669 */ {NULL, NULL, NULL},
+/* 670 */ {NULL, NULL, NULL},
+/* 671 */ {"RPL_WHOISSECURE", ":%s 671 %s %s :is connected via SSL (secure link)", NULL},
+/* 672 */ {NULL, NULL, NULL},
+/* 673 */ {NULL, NULL, NULL},
+/* 674 */ {NULL, NULL, NULL},
+/* 675 */ {NULL, NULL, NULL},
+/* 676 */ {NULL, NULL, NULL},
+/* 677 */ {NULL, NULL, NULL},
+/* 678 */ {NULL, NULL, NULL},
+/* 679 */ {NULL, NULL, NULL},
+/* 680 */ {NULL, NULL, NULL},
+/* 681 */ {NULL, NULL, NULL},
+/* 682 */ {NULL, NULL, NULL},
+/* 683 */ {NULL, NULL, NULL},
+/* 684 */ {NULL, NULL, NULL},
+/* 685 */ {NULL, NULL, NULL},
+/* 686 */ {NULL, NULL, NULL},
+/* 687 */ {NULL, NULL, NULL},
+/* 688 */ {NULL, NULL, NULL},
+/* 689 */ {NULL, NULL, NULL},
+/* 690 */ {NULL, NULL, NULL},
+/* 691 */ {NULL, NULL, NULL},
+/* 692 */ {NULL, NULL, NULL},
+/* 693 */ {NULL, NULL, NULL},
+/* 694 */ {NULL, NULL, NULL},
+/* 695 */ {NULL, NULL, NULL},
+/* 696 */ {NULL, NULL, NULL},
+/* 697 */ {NULL, NULL, NULL},
+/* 698 */ {NULL, NULL, NULL},
+/* 699 */ {NULL, NULL, NULL},
+/* 700 */ {NULL, NULL, NULL},
+/* 701 */ {NULL, NULL, NULL},
+/* 702 */ {"RPL_MODLIST", ":%s 702 %s %s %p %s %s", NULL},
+/* 703 */ {"RPL_ENDOFMODLIST", ":%s 703 %s :End of /MODLIST.", NULL},
+/* 704 */ {"RPL_HELPSTART", ":%s 704 %s %s :%s", NULL},
+/* 705 */ {"RPL_HELPTXT", ":%s 705 %s %s :%s", NULL},
+/* 706 */ {"RPL_ENDOFHELP", ":%s 706 %s %s :End of /HELP.", NULL},
+/* 707 */ {NULL, NULL, NULL},
+/* 708 */ {"RPL_ETRACE_FULL", ":%s 708 %s %s %s %s %s %s %s %s %s :%s", NULL},
+/* 709 */ {"RPL_ETRACE", ":%s 709 %s %s %s %s %s %s %s :%s", NULL},
+/* 710 */ {"RPL_KNOCK", ":%s 710 %s %s %s!%s@%s :has asked for an invite.", NULL},
+/* 711 */ {"RPL_KNOCKDLVR", ":%s 711 %s %s :Your KNOCK has been delivered.", NULL},
+/* 712 */ {"ERR_TOOMANYKNOCK", ":%s 712 %s %s :Too many KNOCKs (%s).", NULL},
+/* 713 */ {"ERR_CHANOPEN", ":%s 713 %s %s :Channel is open.", NULL},
+/* 714 */ {"ERR_KNOCKONCHAN", ":%s 714 %s %s :You are already on that channel.", NULL},
+/* 715 */ {NULL, NULL, NULL},
+/* 716 */ {"RPL_TARGUMODEG", ":%s 716 %s %s :is in +g mode (server side ignore)", NULL},
+/* 717 */ {"RPL_TARGNOTIFY", ":%s 717 %s %s :has been informed that you messaged them.", NULL},
+/* 718 */ {"RPL_UMODEGMSG", ":%s 718 %s %s :is messaging you, and you are umode +g.", NULL},
+/* 719 */ {NULL, NULL, NULL},
+/* 720 */ {NULL, NULL, NULL},
+/* 721 */ {NULL, NULL, NULL},
+/* 722 */ {NULL, NULL, NULL},
+/* 723 */ {"ERR_NOPRIVS", ":%s 723 %s %s :Insufficient oper privs.", NULL },
+/* 724 */ {"RPL_TESTMASK", ":%s 724 %s %s!%s@%s %u %u :Local/remote clients match.", NULL },
+/* 725 */ {"RPL_TESTLINE", ":%s 725 %s %c %ld %s :%s", NULL },
+/* 726 */ {"RPL_NOTESTLINE", ":%s 726 %s %s :No matches", NULL },
+/* 727 */ {NULL, NULL, NULL},
+/* 728 */ {NULL, NULL, NULL},
+/* 729 */ {NULL, NULL, NULL},
+/* 730 */ {NULL, NULL, NULL},
+/* 731 */ {NULL, NULL, NULL},
+/* 732 */ {NULL, NULL, NULL},
+/* 733 */ {NULL, NULL, NULL},
+/* 734 */ {NULL, NULL, NULL},
+/* 735 */ {NULL, NULL, NULL},
+/* 736 */ {NULL, NULL, NULL},
+/* 737 */ {NULL, NULL, NULL},
+/* 738 */ {NULL, NULL, NULL},
+/* 739 */ {NULL, NULL, NULL},
+/* 740 */ {NULL, NULL, NULL},
+/* 741 */ {NULL, NULL, NULL},
+/* 742 */ {NULL, NULL, NULL},
+/* 743 */ {NULL, NULL, NULL},
+/* 744 */ {NULL, NULL, NULL},
+/* 745 */ {NULL, NULL, NULL},
+/* 746 */ {NULL, NULL, NULL},
+/* 747 */ {NULL, NULL, NULL},
+/* 748 */ {NULL, NULL, NULL},
+/* 749 */ {NULL, NULL, NULL},
+/* 750 */ {NULL, NULL, NULL},
+/* 751 */ {NULL, NULL, NULL},
+/* 752 */ {NULL, NULL, NULL},
+/* 753 */ {NULL, NULL, NULL},
+/* 754 */ {NULL, NULL, NULL},
+/* 755 */ {NULL, NULL, NULL},
+/* 756 */ {NULL, NULL, NULL},
+/* 757 */ {NULL, NULL, NULL},
+/* 758 */ {NULL, NULL, NULL},
+/* 759 */ {NULL, NULL, NULL},
+/* 760 */ {NULL, NULL, NULL},
+/* 761 */ {NULL, NULL, NULL},
+/* 762 */ {NULL, NULL, NULL},
+/* 763 */ {NULL, NULL, NULL},
+/* 764 */ {NULL, NULL, NULL},
+/* 765 */ {NULL, NULL, NULL},
+/* 766 */ {NULL, NULL, NULL},
+/* 767 */ {NULL, NULL, NULL},
+/* 768 */ {NULL, NULL, NULL},
+/* 769 */ {NULL, NULL, NULL},
+/* 770 */ {NULL, NULL, NULL},
+/* 771 */ {NULL, NULL, NULL},
+/* 772 */ {NULL, NULL, NULL},
+/* 773 */ {NULL, NULL, NULL},
+/* 774 */ {NULL, NULL, NULL},
+/* 775 */ {NULL, NULL, NULL},
+/* 776 */ {NULL, NULL, NULL},
+/* 777 */ {NULL, NULL, NULL},
+/* 778 */ {NULL, NULL, NULL},
+/* 779 */ {NULL, NULL, NULL},
+/* 780 */ {NULL, NULL, NULL},
+/* 781 */ {NULL, NULL, NULL},
+/* 782 */ {NULL, NULL, NULL},
+/* 783 */ {NULL, NULL, NULL},
+/* 784 */ {NULL, NULL, NULL},
+/* 785 */ {NULL, NULL, NULL},
+/* 786 */ {NULL, NULL, NULL},
+/* 787 */ {NULL, NULL, NULL},
+/* 788 */ {NULL, NULL, NULL},
+/* 789 */ {NULL, NULL, NULL},
+/* 790 */ {NULL, NULL, NULL},
+/* 791 */ {NULL, NULL, NULL},
+/* 792 */ {NULL, NULL, NULL},
+/* 793 */ {NULL, NULL, NULL},
+/* 794 */ {NULL, NULL, NULL},
+/* 795 */ {NULL, NULL, NULL},
+/* 796 */ {NULL, NULL, NULL},
+/* 797 */ {NULL, NULL, NULL},
+/* 798 */ {NULL, NULL, NULL},
+/* 799 */ {NULL, NULL, NULL},
+/* 800 */ {NULL, NULL, NULL},
+/* 801 */ {NULL, NULL, NULL},
+/* 802 */ {NULL, NULL, NULL},
+/* 803 */ {NULL, NULL, NULL},
+/* 804 */ {NULL, NULL, NULL},
+/* 805 */ {NULL, NULL, NULL},
+/* 806 */ {NULL, NULL, NULL},
+/* 807 */ {NULL, NULL, NULL},
+/* 808 */ {NULL, NULL, NULL},
+/* 809 */ {NULL, NULL, NULL},
+/* 810 */ {NULL, NULL, NULL},
+/* 811 */ {NULL, NULL, NULL},
+/* 812 */ {NULL, NULL, NULL},
+/* 813 */ {NULL, NULL, NULL},
+/* 814 */ {NULL, NULL, NULL},
+/* 815 */ {NULL, NULL, NULL},
+/* 816 */ {NULL, NULL, NULL},
+/* 817 */ {NULL, NULL, NULL},
+/* 818 */ {NULL, NULL, NULL},
+/* 819 */ {NULL, NULL, NULL},
+/* 820 */ {NULL, NULL, NULL},
+/* 821 */ {NULL, NULL, NULL},
+/* 822 */ {NULL, NULL, NULL},
+/* 823 */ {NULL, NULL, NULL},
+/* 824 */ {NULL, NULL, NULL},
+/* 825 */ {NULL, NULL, NULL},
+/* 826 */ {NULL, NULL, NULL},
+/* 827 */ {NULL, NULL, NULL},
+/* 828 */ {NULL, NULL, NULL},
+/* 829 */ {NULL, NULL, NULL},
+/* 830 */ {NULL, NULL, NULL},
+/* 831 */ {NULL, NULL, NULL},
+/* 832 */ {NULL, NULL, NULL},
+/* 833 */ {NULL, NULL, NULL},
+/* 834 */ {NULL, NULL, NULL},
+/* 835 */ {NULL, NULL, NULL},
+/* 836 */ {NULL, NULL, NULL},
+/* 837 */ {NULL, NULL, NULL},
+/* 838 */ {NULL, NULL, NULL},
+/* 839 */ {NULL, NULL, NULL},
+/* 840 */ {NULL, NULL, NULL},
+/* 841 */ {NULL, NULL, NULL},
+/* 842 */ {NULL, NULL, NULL},
+/* 843 */ {NULL, NULL, NULL},
+/* 844 */ {NULL, NULL, NULL},
+/* 845 */ {NULL, NULL, NULL},
+/* 846 */ {NULL, NULL, NULL},
+/* 847 */ {NULL, NULL, NULL},
+/* 848 */ {NULL, NULL, NULL},
+/* 849 */ {NULL, NULL, NULL},
+/* 850 */ {NULL, NULL, NULL},
+/* 851 */ {NULL, NULL, NULL},
+/* 852 */ {NULL, NULL, NULL},
+/* 853 */ {NULL, NULL, NULL},
+/* 854 */ {NULL, NULL, NULL},
+/* 855 */ {NULL, NULL, NULL},
+/* 856 */ {NULL, NULL, NULL},
+/* 857 */ {NULL, NULL, NULL},
+/* 858 */ {NULL, NULL, NULL},
+/* 859 */ {NULL, NULL, NULL},
+/* 860 */ {NULL, NULL, NULL},
+/* 861 */ {NULL, NULL, NULL},
+/* 862 */ {NULL, NULL, NULL},
+/* 863 */ {NULL, NULL, NULL},
+/* 864 */ {NULL, NULL, NULL},
+/* 865 */ {NULL, NULL, NULL},
+/* 866 */ {NULL, NULL, NULL},
+/* 867 */ {NULL, NULL, NULL},
+/* 868 */ {NULL, NULL, NULL},
+/* 869 */ {NULL, NULL, NULL},
+/* 870 */ {NULL, NULL, NULL},
+/* 871 */ {NULL, NULL, NULL},
+/* 872 */ {NULL, NULL, NULL},
+/* 873 */ {NULL, NULL, NULL},
+/* 874 */ {NULL, NULL, NULL},
+/* 875 */ {NULL, NULL, NULL},
+/* 876 */ {NULL, NULL, NULL},
+/* 877 */ {NULL, NULL, NULL},
+/* 878 */ {NULL, NULL, NULL},
+/* 879 */ {NULL, NULL, NULL},
+/* 880 */ {NULL, NULL, NULL},
+/* 881 */ {NULL, NULL, NULL},
+/* 882 */ {NULL, NULL, NULL},
+/* 883 */ {NULL, NULL, NULL},
+/* 884 */ {NULL, NULL, NULL},
+/* 885 */ {NULL, NULL, NULL},
+/* 886 */ {NULL, NULL, NULL},
+/* 887 */ {NULL, NULL, NULL},
+/* 888 */ {NULL, NULL, NULL},
+/* 889 */ {NULL, NULL, NULL},
+/* 890 */ {NULL, NULL, NULL},
+/* 891 */ {NULL, NULL, NULL},
+/* 892 */ {NULL, NULL, NULL},
+/* 893 */ {NULL, NULL, NULL},
+/* 894 */ {NULL, NULL, NULL},
+/* 895 */ {NULL, NULL, NULL},
+/* 896 */ {NULL, NULL, NULL},
+/* 897 */ {NULL, NULL, NULL},
+/* 898 */ {NULL, NULL, NULL},
+/* 899 */ {NULL, NULL, NULL},
+/* 900 */ {NULL, NULL, NULL},
+/* 901 */ {NULL, NULL, NULL},
+/* 902 */ {NULL, NULL, NULL},
+/* 903 */ {NULL, NULL, NULL},
+/* 904 */ {NULL, NULL, NULL},
+/* 905 */ {NULL, NULL, NULL},
+/* 906 */ {NULL, NULL, NULL},
+/* 907 */ {NULL, NULL, NULL},
+/* 908 */ {NULL, NULL, NULL},
+/* 909 */ {NULL, NULL, NULL},
+/* 910 */ {NULL, NULL, NULL},
+/* 911 */ {NULL, NULL, NULL},
+/* 912 */ {NULL, NULL, NULL},
+/* 913 */ {NULL, NULL, NULL},
+/* 914 */ {NULL, NULL, NULL},
+/* 915 */ {NULL, NULL, NULL},
+/* 916 */ {NULL, NULL, NULL},
+/* 917 */ {NULL, NULL, NULL},
+/* 918 */ {NULL, NULL, NULL},
+/* 919 */ {NULL, NULL, NULL},
+/* 920 */ {NULL, NULL, NULL},
+/* 921 */ {NULL, NULL, NULL},
+/* 922 */ {NULL, NULL, NULL},
+/* 923 */ {NULL, NULL, NULL},
+/* 924 */ {NULL, NULL, NULL},
+/* 925 */ {NULL, NULL, NULL},
+/* 926 */ {NULL, NULL, NULL},
+/* 927 */ {NULL, NULL, NULL},
+/* 928 */ {NULL, NULL, NULL},
+/* 929 */ {NULL, NULL, NULL},
+/* 930 */ {NULL, NULL, NULL},
+/* 931 */ {NULL, NULL, NULL},
+/* 932 */ {NULL, NULL, NULL},
+/* 933 */ {NULL, NULL, NULL},
+/* 934 */ {NULL, NULL, NULL},
+/* 935 */ {NULL, NULL, NULL},
+/* 936 */ {NULL, NULL, NULL},
+/* 937 */ {NULL, NULL, NULL},
+/* 938 */ {NULL, NULL, NULL},
+/* 939 */ {NULL, NULL, NULL},
+/* 940 */ {NULL, NULL, NULL},
+/* 941 */ {NULL, NULL, NULL},
+/* 942 */ {NULL, NULL, NULL},
+/* 943 */ {NULL, NULL, NULL},
+/* 944 */ {NULL, NULL, NULL},
+/* 945 */ {NULL, NULL, NULL},
+/* 946 */ {NULL, NULL, NULL},
+/* 947 */ {NULL, NULL, NULL},
+/* 948 */ {NULL, NULL, NULL},
+/* 949 */ {NULL, NULL, NULL},
+/* 950 */ {NULL, NULL, NULL},
+/* 951 */ {NULL, NULL, NULL},
+/* 952 */ {NULL, NULL, NULL},
+/* 953 */ {NULL, NULL, NULL},
+/* 954 */ {NULL, NULL, NULL},
+/* 955 */ {NULL, NULL, NULL},
+/* 956 */ {NULL, NULL, NULL},
+/* 957 */ {NULL, NULL, NULL},
+/* 958 */ {NULL, NULL, NULL},
+/* 959 */ {NULL, NULL, NULL},
+/* 960 */ {NULL, NULL, NULL},
+/* 961 */ {NULL, NULL, NULL},
+/* 962 */ {NULL, NULL, NULL},
+/* 963 */ {NULL, NULL, NULL},
+/* 964 */ {NULL, NULL, NULL},
+/* 965 */ {NULL, NULL, NULL},
+/* 966 */ {NULL, NULL, NULL},
+/* 967 */ {NULL, NULL, NULL},
+/* 968 */ {NULL, NULL, NULL},
+/* 969 */ {NULL, NULL, NULL},
+/* 970 */ {NULL, NULL, NULL},
+/* 971 */ {NULL, NULL, NULL},
+/* 972 */ {NULL, NULL, NULL},
+/* 973 */ {NULL, NULL, NULL},
+/* 974 */ {NULL, NULL, NULL},
+/* 975 */ {NULL, NULL, NULL},
+/* 976 */ {NULL, NULL, NULL},
+/* 977 */ {NULL, NULL, NULL},
+/* 978 */ {NULL, NULL, NULL},
+/* 979 */ {NULL, NULL, NULL},
+/* 980 */ {NULL, NULL, NULL},
+/* 981 */ {NULL, NULL, NULL},
+/* 982 */ {NULL, NULL, NULL},
+/* 983 */ {NULL, NULL, NULL},
+/* 984 */ {NULL, NULL, NULL},
+/* 985 */ {NULL, NULL, NULL},
+/* 986 */ {NULL, NULL, NULL},
+/* 987 */ {NULL, NULL, NULL},
+/* 988 */ {NULL, NULL, NULL},
+/* 989 */ {NULL, NULL, NULL},
+/* 990 */ {NULL, NULL, NULL},
+/* 991 */ {NULL, NULL, NULL},
+/* 992 */ {NULL, NULL, NULL},
+/* 993 */ {NULL, NULL, NULL},
+/* 994 */ {NULL, NULL, NULL},
+/* 995 */ {NULL, NULL, NULL},
+/* 996 */ {NULL, NULL, NULL},
+/* 997 */ {NULL, NULL, NULL},
+/* 998 */ {NULL, NULL, NULL},
+/* 999 */ {NULL, NULL, NULL}
+};
diff --git a/src/motd.c b/src/motd.c
index cbaf070..62293e4 100644
--- a/src/motd.c
+++ b/src/motd.c
@@ -74,20 +74,20 @@ send_message_file(struct Client *source_p, MessageFile *motdToPrint)
{
case USER_MOTD:
if (motdToPrint->contentsOfFile == NULL)
- sendto_one(source_p, ERR_NOMOTD, from, to);
+ sendto_one(source_p, form_str(ERR_NOMOTD), from, to);
else
{
- sendto_one(source_p, RPL_MOTDSTART,
+ sendto_one(source_p, form_str(RPL_MOTDSTART),
from, to, me.name);
for (linePointer = motdToPrint->contentsOfFile; linePointer;
linePointer = linePointer->next)
{
- sendto_one(source_p, RPL_MOTD,
+ sendto_one(source_p, form_str(RPL_MOTD),
from, to, linePointer->line);
}
- sendto_one(source_p, RPL_ENDOFMOTD, from, to);
+ sendto_one(source_p, form_str(RPL_ENDOFMOTD), from, to);
}
break;
@@ -109,7 +109,7 @@ send_message_file(struct Client *source_p, MessageFile *motdToPrint)
for (linePointer = motdToPrint->contentsOfFile; linePointer;
linePointer = linePointer->next)
{
- sendto_one(source_p, RPL_ISUPPORT,
+ sendto_one(source_p, form_str(RPL_ISUPPORT),
me.name, source_p->name, linePointer->line);
}
}
diff --git a/src/numeric.c b/src/numeric.c
index e08c48d..21c574e 100644
--- a/src/numeric.c
+++ b/src/numeric.c
@@ -30,3 +30,198 @@
#include "log.h"
#include "send.h"
#include "client.h"
+#include "messages.tab"
+
+static char used_locale[LOCALE_LENGTH] = "standard";
+
+/*
+ * form_str
+ *
+ * inputs - numeric
+ * output - corresponding string
+ * side effects - NONE
+ */
+const char* form_str(int numeric)
+{
+ assert(-1 < numeric);
+ assert(numeric < ERR_LAST_ERR_MSG);
+
+ if (numeric > ERR_LAST_ERR_MSG)
+ numeric = ERR_LAST_ERR_MSG;
+ if (numeric < 0)
+ numeric = ERR_LAST_ERR_MSG;
+
+ assert(replies[numeric].standard != NULL);
+
+ return (replies[numeric].translated != NULL ? replies[numeric].translated :
+ replies[numeric].standard);
+}
+
+/* Attempts to change a numeric with index "reply" to "new_reply".
+ * Returns 1 if ok, 0 otherwise.
+ */
+static int
+change_reply(const char *locale, int linecnt, int reply, char *new_reply)
+{
+ int found;
+ char *new = new_reply;
+ const char *old = replies[reply].standard;
+
+ for (; *new; new++)
+ {
+ if (*new == '%')
+ {
+ if (!*++new) break;
+ if (*new != '%')
+ {
+ /* We've just found a format symbol. Check if it is the next format
+ * symbol in the original reply.
+ */
+ for (; *new >= '0' && *new <= '9'; new++); /* skip size prefix */
+ found = 0;
+ for (; *old; old++)
+ {
+ if (*old == '%')
+ {
+ if (!*++old) break; /* shouldn't happen */
+ if (*old != '%')
+ {
+ for (; *old >= '0' && *old <= '9'; old++); /* skip size prefix */
+ if (*new != *old++)
+ {
+ ilog(LOG_TYPE_IRCD, "Incompatible format symbols (%s.lang, %d)",
+ locale, linecnt);
+ return 0;
+ }
+ found = 1;
+ break;
+ }
+ }
+ }
+ if (!found)
+ {
+ ilog(LOG_TYPE_IRCD, "Too many format symbols (%s.lang, %d)", locale, linecnt);
+ return(0);
+ }
+ }
+ }
+ }
+
+ MyFree(replies[reply].translated);
+ replies[reply].translated = xstrdup(new_reply);
+ return(1);
+}
+
+/* Loads a language file. Errors are logged into the log file. */
+void
+set_locale(const char *locale)
+{
+ int i, res = 1, linecnt = 0;
+ char buffer[IRCD_BUFSIZE + 1];
+ char *ident, *reply;
+ FILE *f;
+
+ /* Restore standard replies */
+ for (i = 0; i <= ERR_LAST_ERR_MSG; i++) /* 0 isn't a magic number! ;> */
+ {
+ if (replies[i].translated != NULL)
+ {
+ MyFree(replies[i].translated);
+ replies[i].translated = NULL;
+ }
+ }
+
+ if (strchr(locale, '/') != NULL)
+ {
+ strlcpy(used_locale, "standard", sizeof(used_locale)); /* XXX paranoid */
+ return;
+ }
+
+ /* yes, I know - the slash isn't necessary. But I have to be sure
+ * that it'll work even if some lame admin won't put "/" at the end
+ * of MSGPATH.
+ */
+ snprintf(buffer, sizeof(buffer), "%s/%s.lang", MSGPATH, locale);
+ if ((f = fopen(buffer, "r")) == NULL)
+ {
+ strlcpy(used_locale, "standard", sizeof(used_locale)); /* XXX */
+ return;
+ }
+
+ /* Process the language file */
+ while (fgets(buffer, sizeof(buffer), f))
+ {
+ ++linecnt;
+ if (buffer[0] == ';')
+ continue; /* that's a comment */
+
+ if ((ident = strpbrk(buffer, "\r\n")) != NULL)
+ *ident = '\0';
+
+ /* skip spaces if there are any */
+ for (ident = buffer; *ident == ' ' || *ident == '\t'; ident++)/* null */;
+ if (*ident == '\0')
+ continue; /* empty line */
+
+ /* skip after the reply identificator */
+ for (reply = ident; *reply != ' ' && *reply != '\t' && *reply != ':';
+ reply++)
+ if (*reply == '\0') goto error;
+
+ if (*reply == ' ' || *reply == '\t')
+ {
+ for (*reply++ = '\0'; *reply == ' ' || *reply == '\t'; reply++);
+ if (*reply != ':')
+ {
+ error:
+ ilog(LOG_TYPE_IRCD, "Invalid line in language file (%s.lang, %d)",
+ locale, linecnt);
+ res = 0;
+ continue;
+ }
+ }
+ else
+ *reply++ = '\0';
+ if (*ident == '\0')
+ goto error;
+
+ /* skip to the beginning of reply */
+ while (*reply == ' ' || *reply == '\t') reply++;
+ if (*reply == '\0')
+ goto error;
+
+ for (i = 0; i <= ERR_LAST_ERR_MSG; i++)
+ {
+ if (replies[i].name != NULL)
+ {
+ if (irccmp(replies[i].name, ident) == 0)
+ {
+ if (!change_reply(locale, linecnt, i, reply)) res = 0;
+ i = -1;
+ break;
+ }
+ }
+ }
+ if (i != -1)
+ {
+ ilog(LOG_TYPE_IRCD,
+ "Unknown numeric %s (%s.lang, %d)", ident, locale, linecnt);
+ res = 0;
+ }
+ }
+ fclose(f);
+
+ strlcpy(used_locale, locale, sizeof(used_locale));
+ if (!res)
+ sendto_realops_flags(UMODE_ALL, L_ADMIN, SEND_NOTICE,
+ "Language file [%s] contains "
+ "errors, check server log file for more details",
+ used_locale);
+}
+
+/* Returns the name of current locale. */
+const char *
+get_locale(void)
+{
+ return used_locale;
+}
diff --git a/src/parse.c b/src/parse.c
index 31b9268..019d861 100644
--- a/src/parse.c
+++ b/src/parse.c
@@ -223,7 +223,7 @@ parse(struct Client *client_p, char *pbuffer, char *bufend)
if (*pbuffer != '\0')
{
if (IsClient(from))
- sendto_one(from, ERR_UNKNOWNCOMMAND,
+ sendto_one(from, form_str(ERR_UNKNOWNCOMMAND),
me.name, from->name, ch);
}
@@ -315,7 +315,7 @@ handle_command(struct Message *mptr, struct Client *client_p,
{
if (!IsServer(client_p))
{
- sendto_one(client_p, ERR_NEEDMOREPARAMS, me.name,
+ sendto_one(client_p, form_str(ERR_NEEDMOREPARAMS), me.name,
EmptyString(hpara[0]) ? "*" : hpara[0], mptr->cmd);
}
else
@@ -512,7 +512,7 @@ recurse_report_messages(struct Client *source_p, const struct MessageTree *mtree
unsigned int i;
if (mtree->msg != NULL)
- sendto_one(source_p, RPL_STATSCOMMANDS,
+ sendto_one(source_p, form_str(RPL_STATSCOMMANDS),
me.name, source_p->name, mtree->msg->cmd,
mtree->msg->count, mtree->msg->bytes,
mtree->msg->rcount);
@@ -723,7 +723,7 @@ void
m_not_oper(struct Client *client_p, struct Client *source_p,
int parc, char *parv[])
{
- sendto_one(source_p, ERR_NOPRIVILEGES,
+ sendto_one(source_p, form_str(ERR_NOPRIVILEGES),
me.name, source_p->name);
}
@@ -731,7 +731,7 @@ void
m_unregistered(struct Client *client_p, struct Client *source_p,
int parc, char *parv[])
{
- sendto_one(source_p, ERR_NOTREGISTERED, me.name,
+ sendto_one(source_p, form_str(ERR_NOTREGISTERED), me.name,
source_p->name[0] ? source_p->name : "*");
}
@@ -739,7 +739,7 @@ void
m_registered(struct Client *client_p, struct Client *source_p,
int parc, char *parv[])
{
- sendto_one(source_p, ERR_ALREADYREGISTRED,
+ sendto_one(source_p, form_str(ERR_ALREADYREGISTRED),
me.name, source_p->name);
}
diff --git a/src/resv.c b/src/resv.c
index 898d106..3ac0490 100644
--- a/src/resv.c
+++ b/src/resv.c
@@ -133,7 +133,7 @@ report_resv(struct Client *source_p)
DLINK_FOREACH(ptr, resv_channel_list.head)
{
conf = ptr->data;
- sendto_one(source_p, RPL_STATSQLINE,
+ sendto_one(source_p, form_str(RPL_STATSQLINE),
me.name, source_p->name,
conf->until ? 'q' : 'Q', conf->count,
conf->name, conf->reason);
@@ -142,7 +142,7 @@ report_resv(struct Client *source_p)
DLINK_FOREACH(ptr, nresv_items.head)
{
conf = ptr->data;
- sendto_one(source_p, RPL_STATSQLINE,
+ sendto_one(source_p, form_str(RPL_STATSQLINE),
me.name, source_p->name,
conf->until ? 'q' : 'Q', conf->count,
conf->name, conf->reason);
diff --git a/src/s_serv.c b/src/s_serv.c
index f7785a5..7d57988 100644
--- a/src/s_serv.c
+++ b/src/s_serv.c
@@ -201,7 +201,7 @@ hunt_server(struct Client *client_p, struct Client *source_p, const char *comman
{
if (!(target_p = hash_find_server(parv[server])))
{
- sendto_one(source_p, ERR_NOSUCHSERVER,
+ sendto_one(source_p, form_str(ERR_NOSUCHSERVER),
me.name, source_p->name, parv[server]);
return(HUNTED_NOSUCH);
}
@@ -229,7 +229,7 @@ hunt_server(struct Client *client_p, struct Client *source_p, const char *comman
{
if(!IsRegistered(target_p))
{
- sendto_one(source_p, ERR_NOSUCHSERVER,
+ sendto_one(source_p, form_str(ERR_NOSUCHSERVER),
me.name, source_p->name, parv[server]);
return HUNTED_NOSUCH;
}
@@ -252,7 +252,7 @@ hunt_server(struct Client *client_p, struct Client *source_p, const char *comman
return(HUNTED_PASS);
}
- sendto_one(source_p, ERR_NOSUCHSERVER,
+ sendto_one(source_p, form_str(ERR_NOSUCHSERVER),
me.name, source_p->name, parv[server]);
return(HUNTED_NOSUCH);
}
diff --git a/src/s_user.c b/src/s_user.c
index f237755..3ec002c 100644
--- a/src/s_user.c
+++ b/src/s_user.c
@@ -189,48 +189,48 @@ show_lusers(struct Client *source_p)
}
if (!ConfigServerHide.hide_servers || HasUMode(source_p, UMODE_OPER))
- sendto_one(source_p, RPL_LUSERCLIENT,
+ sendto_one(source_p, form_str(RPL_LUSERCLIENT),
from, to, (Count.total-Count.invisi),
Count.invisi, dlink_list_length(&global_serv_list));
else
- sendto_one(source_p, RPL_LUSERCLIENT, from, to,
+ sendto_one(source_p, form_str(RPL_LUSERCLIENT), from, to,
(Count.total-Count.invisi), Count.invisi, 1);
if (Count.oper > 0)
- sendto_one(source_p, RPL_LUSEROP,
+ sendto_one(source_p, form_str(RPL_LUSEROP),
from, to, Count.oper);
if (dlink_list_length(&unknown_list) > 0)
- sendto_one(source_p, RPL_LUSERUNKNOWN,
+ sendto_one(source_p, form_str(RPL_LUSERUNKNOWN),
from, to, dlink_list_length(&unknown_list));
if (dlink_list_length(&global_channel_list) > 0)
- sendto_one(source_p, RPL_LUSERCHANNELS,
+ sendto_one(source_p, form_str(RPL_LUSERCHANNELS),
from, to, dlink_list_length(&global_channel_list));
if (!ConfigServerHide.hide_servers || HasUMode(source_p, UMODE_OPER))
{
- sendto_one(source_p, RPL_LUSERME,
+ sendto_one(source_p, form_str(RPL_LUSERME),
from, to, Count.local, Count.myserver);
- sendto_one(source_p, RPL_LOCALUSERS,
+ sendto_one(source_p, form_str(RPL_LOCALUSERS),
from, to, Count.local, Count.max_loc,
Count.local, Count.max_loc);
}
else
{
- sendto_one(source_p, RPL_LUSERME,
+ sendto_one(source_p, form_str(RPL_LUSERME),
from, to, Count.total, 0);
- sendto_one(source_p, RPL_LOCALUSERS,
+ sendto_one(source_p, form_str(RPL_LOCALUSERS),
from, to, Count.total, Count.max_tot,
Count.total, Count.max_tot);
}
- sendto_one(source_p, RPL_GLOBALUSERS,
+ sendto_one(source_p, form_str(RPL_GLOBALUSERS),
from, to, Count.total, Count.max_tot,
Count.total, Count.max_tot);
if (!ConfigServerHide.hide_servers || HasUMode(source_p, UMODE_OPER))
- sendto_one(source_p, RPL_STATSCONN, from, to,
+ sendto_one(source_p, form_str(RPL_STATSCONN), from, to,
Count.max_loc_con, Count.max_loc_cli, Count.totalrestartcount);
if (Count.local > Count.max_loc_cli)
@@ -358,7 +358,7 @@ register_local_user(struct Client *source_p)
if (!match_conf_password(pass, conf))
{
++ServerStats.is_ref;
- sendto_one(source_p, ERR_PASSWDMISMATCH,
+ sendto_one(source_p, form_str(ERR_PASSWDMISMATCH),
me.name, source_p->name);
exit_client(source_p, &me, "Bad Password");
return;
@@ -841,14 +841,14 @@ set_user_mode(struct Client *client_p, struct Client *source_p,
if ((target_p = find_person(client_p, parv[1])) == NULL)
{
if (MyConnect(source_p))
- sendto_one(source_p, ERR_NOSUCHCHANNEL,
+ sendto_one(source_p, form_str(ERR_NOSUCHCHANNEL),
me.name, source_p->name, parv[1]);
return;
}
if (source_p != target_p)
{
- sendto_one(source_p, ERR_USERSDONTMATCH,
+ sendto_one(source_p, form_str(ERR_USERSDONTMATCH),
me.name, source_p->name);
return;
}
@@ -863,7 +863,7 @@ set_user_mode(struct Client *client_p, struct Client *source_p,
*m++ = (char)i;
*m = '\0';
- sendto_one(source_p, RPL_UMODEIS,
+ sendto_one(source_p, form_str(RPL_UMODEIS),
me.name, source_p->name, buf);
return;
}
@@ -954,7 +954,7 @@ set_user_mode(struct Client *client_p, struct Client *source_p,
}
if (badflag)
- sendto_one(source_p, ERR_UMODEUNKNOWNFLAG,
+ sendto_one(source_p, form_str(ERR_UMODEUNKNOWNFLAG),
me.name, source_p->name);
if (HasUMode(source_p, UMODE_NCHANGE) && !HasOFlag(source_p, OPER_FLAG_N))
@@ -1122,18 +1122,18 @@ user_welcome(struct Client *source_p)
ssl_get_cipher(source_p->localClient->fd.ssl));
#endif
- sendto_one(source_p, RPL_WELCOME, me.name, source_p->name,
+ sendto_one(source_p, form_str(RPL_WELCOME), me.name, source_p->name,
ServerInfo.network_name, source_p->name);
- sendto_one(source_p, RPL_YOURHOST, me.name, source_p->name,
+ sendto_one(source_p, form_str(RPL_YOURHOST), me.name, source_p->name,
get_listener_name(source_p->localClient->listener), ircd_version);
- sendto_one(source_p, RPL_CREATED,
+ sendto_one(source_p, form_str(RPL_CREATED),
me.name, source_p->name, built_date);
- sendto_one(source_p, RPL_MYINFO,
+ sendto_one(source_p, form_str(RPL_MYINFO),
me.name, source_p->name, me.name, ircd_version, umode_buffer);
show_isupport(source_p);
if (source_p->id[0] != '\0')
- sendto_one(source_p, RPL_YOURID, me.name,
+ sendto_one(source_p, form_str(RPL_YOURID), me.name,
source_p->name, source_p->id);
show_lusers(source_p);
@@ -1145,12 +1145,12 @@ user_welcome(struct Client *source_p)
sendto_one(source_p,
":%s NOTICE %s :*** Notice -- Please read the motd if you haven't "
"read it", me.name, source_p->name);
- sendto_one(source_p, RPL_MOTDSTART,
+ sendto_one(source_p, form_str(RPL_MOTDSTART),
me.name, source_p->name, me.name);
- sendto_one(source_p, RPL_MOTD,
+ sendto_one(source_p, form_str(RPL_MOTD),
me.name, source_p->name,
"*** This is the short motd ***");
- sendto_one(source_p, RPL_ENDOFMOTD,
+ sendto_one(source_p, form_str(RPL_ENDOFMOTD),
me.name, source_p->name);
}
else
@@ -1235,7 +1235,7 @@ oper_up(struct Client *source_p)
sendto_realops_flags(UMODE_ALL, L_ALL, SEND_NOTICE, "%s is now an operator",
get_oper_name(source_p));
send_umode_out(source_p, source_p, old);
- sendto_one(source_p, RPL_YOUREOPER, me.name, source_p->name);
+ sendto_one(source_p, form_str(RPL_YOUREOPER), me.name, source_p->name);
}
static char new_uid[TOTALSIDUID + 1]; /* allow for \0 */
@@ -1443,7 +1443,7 @@ rebuild_isupport_message_line(void)
int n = 0;
int tokens = 0;
size_t len = 0;
- size_t reserve = strlen(me.name) + HOSTLEN + strlen(RPL_ISUPPORT);
+ size_t reserve = strlen(me.name) + HOSTLEN + strlen(form_str(RPL_ISUPPORT));
destroy_MessageLine(isupportFile);
diff --git a/src/send.c b/src/send.c
index 9442471..b7bf044 100644
--- a/src/send.c
+++ b/src/send.c
@@ -172,7 +172,7 @@ send_message_remote(struct Client *to, struct Client *from,
AddFlag(to, FLAGS_KILLED);
if (IsClient(from))
- sendto_one(from, ERR_GHOSTEDCLIENT,
+ sendto_one(from, form_str(ERR_GHOSTEDCLIENT),
me.name, from->name, to->name, to->username,
to->host, to->from);
diff --git a/src/watch.c b/src/watch.c
index ecc9268..2384849 100644
--- a/src/watch.c
+++ b/src/watch.c
@@ -82,7 +82,7 @@ watch_count_memory(unsigned int *const count, uint64_t *const memory)
* \param reply numeric to send. Either RPL_LOGON or RPL_LOGOFF
*/
void
-watch_check_hash(struct Client *client_p, const char *reply)
+watch_check_hash(struct Client *client_p, int reply)
{
struct Watch *anptr = NULL;
dlink_node *ptr = NULL;
@@ -97,8 +97,8 @@ watch_check_hash(struct Client *client_p, const char *reply)
DLINK_FOREACH(ptr, anptr->watched_by.head)
{
struct Client *target_p = ptr->data;
-/* XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX */
- sendto_one(target_p, reply,
+
+ sendto_one(target_p, form_str(reply),
me.name, target_p->name, client_p->name,
client_p->username, client_p->host,
anptr->lasttime, client_p->info);