summaryrefslogtreecommitdiff
path: root/Build
diff options
context:
space:
mode:
Diffstat (limited to 'Build')
-rw-r--r--Build/source/utils/xindy-new/xindy/Makefile.in592
-rw-r--r--Build/source/utils/xindy-new/xindy/README126
-rw-r--r--Build/source/utils/xindy-new/xindy/TODO.autoconf55
-rw-r--r--Build/source/utils/xindy-new/xindy/VERSION1
-rw-r--r--Build/source/utils/xindy-new/xindy/doc/next.gifbin0 -> 172 bytes
-rw-r--r--Build/source/utils/xindy-new/xindy/doc/prev.gifbin0 -> 220 bytes
-rw-r--r--Build/source/utils/xindy-new/xindy/doc/toc.gifbin0 -> 145 bytes
-rw-r--r--Build/source/utils/xindy-new/xindy/m4/ac_prog_latex.m419
-rw-r--r--Build/source/utils/xindy-new/xindy/m4/ac_prog_pdflatex.m419
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/albanian/latin1.pl144
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/belarusian/cp1251.pl72
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/belarusian/iso88595.pl72
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/belarusian/isoir111.pl72
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/bulgarian/cp1251.pl72
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/bulgarian/iso88595.pl72
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/bulgarian/koi8-r.pl72
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/croatian/cp1250.pl148
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/croatian/latin2.pl148
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/czech/cp1250.pl145
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/czech/latin2.pl145
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/danish/cp1252.pl145
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/danish/latin1.xdy299
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/danish/latin9.pl145
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/dutch/ij-as-ij-latin1.pl148
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/dutch/latin1.xdy300
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/english/ascii.xdy272
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/english/cp1252.pl146
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/english/latin9.pl146
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/esperanto/latin3.pl145
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/estonian/cp1252.pl144
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/estonian/latin9.pl144
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/finnish/cp1252.pl145
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/finnish/latin9.pl145
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/french/cp1252.pl146
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/french/latin9.pl146
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/general/cp1252.pl150
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/general/cp850.pl150
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/general/latin1.xdy500
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/general/latin9.pl150
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/german/din5007-latin1.pl149
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/german/duden-latin1.pl146
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/greek/iso88597.pl47
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/greek/translit-latin4.pl145
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/greek/translit-tex.xdy230
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/hebrew/iso88598.pl45
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/hungarian/cp1250.pl147
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/hungarian/latin2.pl147
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/icelandic/cp1252.pl145
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/icelandic/latin1.xdy320
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/icelandic/latin9.pl145
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/italian/latin1.pl145
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/kurdish/bedirxan-latin5.pl145
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/kurdish/latin5.xdy304
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/kurdish/turkish-i-latin5.pl145
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/latvian/latin4.pl145
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/lithuanian/latin4.pl144
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/lower-sorbian/cp1250.pl145
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/lower-sorbian/latin2.pl145
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/macedonian/cp1251.pl72
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/macedonian/iso88595.pl72
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/macedonian/isoir111.pl72
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/norwegian/latin1.pl145
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/polish/cp1250.pl145
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/polish/latin2.pl145
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/portuguese/latin1.pl146
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/romanian/latin2.pl144
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/russian/cp1251.pl72
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/russian/iso88595.pl72
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/russian/koi8-r.pl72
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/russian/translit-iso-tex.xdy307
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/russian/translit-tex.xdy291
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/russian/translit-tgl-tex.xdy315
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/serbian/cp1251.pl72
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/serbian/iso88595.pl72
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/serbian/isoir111.pl72
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/slovak/large-cp1250.pl146
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/slovak/large-latin2.pl146
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/slovak/small-cp1250.pl146
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/slovak/small-latin2.pl146
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/slovenian/cp1250.pl148
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/slovenian/latin2.pl148
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/spanish/modern-latin1.pl146
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/spanish/traditional-latin1.pl146
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/swedish/cp1252.pl145
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/swedish/latin1.xdy298
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/swedish/latin9.pl145
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/turkish/latin3.pl144
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/turkish/latin5.pl144
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/ukrainian/cp1251.pl72
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/ukrainian/koi8-u.pl72
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/upper-sorbian/cp1250.pl145
-rw-r--r--Build/source/utils/xindy-new/xindy/make-rules/alphabets/upper-sorbian/latin2.pl145
-rw-r--r--Build/source/utils/xindy-new/xindy/src/defaults.xdy.in5
-rw-r--r--Build/source/utils/xindy-new/xindy/src/ordrules.lsp408
-rw-r--r--Build/source/utils/xindy-new/xindy/user-commands/xindy.v2.in302
95 files changed, 14007 insertions, 0 deletions
diff --git a/Build/source/utils/xindy-new/xindy/Makefile.in b/Build/source/utils/xindy-new/xindy/Makefile.in
new file mode 100644
index 00000000000..fe11cb9691c
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/Makefile.in
@@ -0,0 +1,592 @@
+# Makefile.in generated by automake 1.11 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 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@
+
+# Makefile for xindy
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@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 = :
+
+# do we build make-rules?
+@BUILDRULES_TRUE@am__append_1 = make-rules
+
+# do we build docs?
+@BUILDDOCS_TRUE@am__append_2 = doc
+subdir = xindy
+DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ AUTHORS COPYING INSTALL NEWS
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/../../m4/kpse-warnings.m4 \
+ $(top_srcdir)/xindy/VERSION $(top_srcdir)/ac/xindy.ac \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/../../build-aux/mkinstalldirs
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+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__installdirs = "$(DESTDIR)$(versiondir)"
+DATA = $(version_DATA)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = src tex2xindy modules user-commands make-rules doc
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+pkglibdir = @pkglibdir@
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CLISP = @CLISP@
+CONVERT_FROM_UTF8 = @CONVERT_FROM_UTF8@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EXEEXT = @EXEEXT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LATEX = @LATEX@
+LDFLAGS = @LDFLAGS@
+LEX = @LEX@
+LEXLIB = @LEXLIB@
+LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+OBJEXT = @OBJEXT@
+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@
+PDFLATEX = @PDFLATEX@
+PERL = @PERL@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+WARNING_CFLAGS = @WARNING_CFLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+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_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+memdir = @memdir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+ACLOCAL_AMFLAGS = -I m4
+SUBDIRS = src tex2xindy modules user-commands $(am__append_1) \
+ $(am__append_2)
+EXTRA_DIST = setup.sh ChangeLog.Gour VERSION TODO.autoconf
+versiondir = ${pkglibdir}
+version_DATA = VERSION
+all: all-recursive
+
+.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 xindy/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign xindy/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):
+install-versionDATA: $(version_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(versiondir)" || $(MKDIR_P) "$(DESTDIR)$(versiondir)"
+ @list='$(version_DATA)'; test -n "$(versiondir)" || list=; \
+ 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)$(versiondir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(versiondir)" || exit $$?; \
+ done
+
+uninstall-versionDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(version_DATA)'; test -n "$(versiondir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(versiondir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(versiondir)" && rm -f $$files
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+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
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(DATA)
+installdirs: installdirs-recursive
+installdirs-am:
+ for dir in "$(DESTDIR)$(versiondir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+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-recursive
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-local \
+ distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-versionDATA
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-versionDATA
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-am clean clean-generic ctags \
+ ctags-recursive distclean distclean-generic distclean-local \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am 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 install-versionDATA installcheck installcheck-am \
+ installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
+ uninstall-versionDATA
+
+
+distclean-local:
+ rm -rf autom4te.cache
+
+# 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/Build/source/utils/xindy-new/xindy/README b/Build/source/utils/xindy-new/xindy/README
new file mode 100644
index 00000000000..952a0a952e9
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/README
@@ -0,0 +1,126 @@
+$Id: README.distrib-source,v 1.1 2008/01/09 15:14:21 jschrod Exp $
+------------------------------------------------------------
+
+xindy (`fleXible INDexing sYstem') is a flexible index processor that
+creates tagged index for publication system. xindy merges, sorts, and
+outputs markup for raw index entries. It is highly configurable. It
+supports many languages.
+
+This is the source distribution of xindy release 2.3,
+aka the `Gour and Jrg Waited Too Long For It Release'.
+Release notes are available in the file NEWS, in this directory.
+
+It is available from Sourceforge, see http://www.xindy.org/ for more
+information. This Web Site also contains the most up-to-date
+information about xindy.
+
+
+INSTALLATION (Short Version)
+------------
+Unpack the distribution archive, a directory xindy-<version> will
+be created. Usual steps follow:
+
+ $ cd xindy-<version>
+ $ ./configure
+ $ make
+ $ make install
+
+You need to use GNU make; e.g., on FreeBSD or on Solaris, you need to
+install it and use the command gmake instead of make.
+
+By default, installation will be done in the /usr/local/ tree.
+You can change that with the configure option `--prefix'.
+
+The long version of the installation instructions are in the file
+INSTALL.
+
+Please note: The xindy modules directory location (currently,
+$prefix/lib/xindy/modules/) is bound to be changed in future
+distributions. This only matters if you install additional modules
+there, at future updates.
+
+
+UPDATE INSTALLATION
+-------------------
+There is no specific update installation procedure, sorry. You need to
+install xindy anew.
+
+If you had installed xindy 2.2 RC1 (the LaTeX Companion Release)
+and you had additional xindy module files installed in the system-wide
+directories, you need to move them manually to the new modules tree.
+That is located in $prefix/lib/xindy/modules/ ($prefix is /usr/local/
+by default).
+
+
+USAGE
+-----
+There are two main commands:
+ -- texindy, for creation of indexes for LaTeX documents
+ -- xindy, for generic index creation
+
+Manuals for these commands are installed in appropriate man
+directories and additionally supplied in PDF format, in the
+/doc/ subdirectory of the distribution, which gets installed as
+$prefix/share/doc/xindy-<version>/.
+
+This documentation directory has more documentation. Technical reports
+are on our Web Site, http://www.xindy.org/.
+
+
+KNOWN ISSUES
+------------
+Known problems and wanted enhancements of xindy are documented in our
+SourceForge tracker system, accessible on the Web at
+https://sourceforge.net/tracker/?group_id=10646
+
+
+FEEDBACK / MAILING LIST
+-----------------------
+Everybody is encouraged to port xindy to new platforms. For any kind
+of suggestions, helpful comments, questions, bug reports and such,
+please mail to the xindy mailing list
+
+ xindy-discuss@lists.sourceforge.net
+
+This is a low-volume mailing list; with a few emails per month.
+You can subscribe to the list by visiting
+
+ http://lists.sourceforge.net/lists/listinfo/xindy-discuss
+
+Mailing list archives are public and can be read at
+
+ http://sourceforge.net/mailarchive/forum.php?forum=xindy-discuss
+
+
+DISTRIBUTION CONTENT
+--------------------
+This distribution contains
+ -- xindy kernel (src/, tex2xindy/, user-commands/)
+ -- sort-rules for many languages (make-rules/)
+ -- base xindy styles, as described in the LaTeX Companion (modules/)
+
+
+LEGALESE
+--------
+This package is freely distributable software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License
+(GPL) as published by the Free Software Foundation.
+
+This software 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 in
+the file COPYING along with this package; if not, write to the Free
+Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+The xindy run-time environment contains CLISP, which is released under
+GPL version 2 (only). Please refer to rte/clisp-<version>/COPYRIGHT
+for the specific statement.
+
+The xindy run-time environment contains a xindy-specific CLISP-plugin
+named ordrules, which is released under GPL version 2 or later.
+
+The xindy kernel modules and base styles are released under GPL
+version 2 or later.
diff --git a/Build/source/utils/xindy-new/xindy/TODO.autoconf b/Build/source/utils/xindy-new/xindy/TODO.autoconf
new file mode 100644
index 00000000000..a441c9e1b0e
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/TODO.autoconf
@@ -0,0 +1,55 @@
+
+[Check] FIXMEs in configure.ac
+
+ -- flex for tex2indy?
+ -- Does one really need to look for -fl?
+
+ -- Are the canonical system type defs needed for TeX Live?
+ They're commented out at the moment.
+
+Sat Mar 28 18:07:07 2009 schrod
+----------------------------------------------------------------------
+
+[Missing] Changes from Vladimir for TeX Live
+
+Review and apply.
+
+Sun Mar 29 13:50:45 2009 schrod
+----------------------------------------------------------------------
+
+[Change] Determine path of Perl by autoconf
+
+AC_PATH_PROG
+and substitute it
+
+Windozify the Perl scripts
+
+Sat Mar 28 18:15:05 2009 schrod
+----------------------------------------------------------------------
+
+[Change] strtoul() might not exist
+
+Replace it with function from gnulib.
+AC_REPLACE_FUNCS
+
+Sun Mar 29 13:46:35 2009 schrod
+----------------------------------------------------------------------
+
+[Change] No need to insist on GNU make any more
+
+pattern rules
+variable subtitutions
+
+OK: src user-commands tex2xindy
+TBD: make-rules
+
+Sat Mar 28 18:18:03 2009 schrod
+----------------------------------------------------------------------
+
+[Proposal] make dist via automake
+
+Don't know if that's worth the hassle...
+
+Sun Mar 29 12:39:52 2009 schrod
+----------------------------------------------------------------------
+
diff --git a/Build/source/utils/xindy-new/xindy/VERSION b/Build/source/utils/xindy-new/xindy/VERSION
new file mode 100644
index 00000000000..74a7fa1a42f
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/VERSION
@@ -0,0 +1 @@
+2.4-rc1
diff --git a/Build/source/utils/xindy-new/xindy/doc/next.gif b/Build/source/utils/xindy-new/xindy/doc/next.gif
new file mode 100644
index 00000000000..7a2dbe955e0
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/doc/next.gif
Binary files differ
diff --git a/Build/source/utils/xindy-new/xindy/doc/prev.gif b/Build/source/utils/xindy-new/xindy/doc/prev.gif
new file mode 100644
index 00000000000..aef90f1fc49
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/doc/prev.gif
Binary files differ
diff --git a/Build/source/utils/xindy-new/xindy/doc/toc.gif b/Build/source/utils/xindy-new/xindy/doc/toc.gif
new file mode 100644
index 00000000000..3d1aebf3274
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/doc/toc.gif
Binary files differ
diff --git a/Build/source/utils/xindy-new/xindy/m4/ac_prog_latex.m4 b/Build/source/utils/xindy-new/xindy/m4/ac_prog_latex.m4
new file mode 100644
index 00000000000..450eaf91daf
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/m4/ac_prog_latex.m4
@@ -0,0 +1,19 @@
+dnl @synopsis AC_PROG_LATEX
+dnl
+dnl This macro test if latex is installed. If latex is installed, it
+dnl set $latex to the right value
+dnl
+dnl @category LaTeX
+dnl @author Mathieu Boretti <boretti@bss-network.com>
+dnl @version 2005-01-21
+dnl @license GPLWithACException
+
+AC_DEFUN([AC_PROG_LATEX],[
+AC_CHECK_PROGS(latex,[latex elatex lambda],no)
+export latex;
+if test $latex = "no" ;
+then
+ AC_MSG_ERROR([Unable to find a LaTeX application]);
+fi
+AC_SUBST(latex)
+])
diff --git a/Build/source/utils/xindy-new/xindy/m4/ac_prog_pdflatex.m4 b/Build/source/utils/xindy-new/xindy/m4/ac_prog_pdflatex.m4
new file mode 100644
index 00000000000..4ab0ee45291
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/m4/ac_prog_pdflatex.m4
@@ -0,0 +1,19 @@
+dnl @synopsis AC_PROG_PDFLATEX
+dnl
+dnl This macro test if pdflatex is installed. If pdflatex is installed,
+dnl it set $pdflatex to the right value
+dnl
+dnl @category LaTeX
+dnl @author Mathieu Boretti <boretti@bss-network.com>
+dnl @version 2005-01-21
+dnl @license GPLWithACException
+
+AC_DEFUN([AC_PROG_PDFLATEX],[
+AC_CHECK_PROGS(pdflatex,[pdflatex],no)
+export pdflatex;
+if test $pdflatex = "no" ;
+then
+ AC_MSG_ERROR([Unable to find a PDFLaTeX application]);
+fi
+AC_SUBST(pdflatex)
+])
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/albanian/latin1.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/albanian/latin1.pl
new file mode 100644
index 00000000000..632fb12db52
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/albanian/latin1.pl
@@ -0,0 +1,144 @@
+#!/usr/bin/perl
+
+$language = "Albanian";
+$prefix = "sq";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+['', ['','']],
+['D', ['d','D']],
+['Dh', ['dh','Dh','DH']],
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+['', ['','']],
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+['Gj', ['gj','Gj','GJ']],
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+['Ll', ['ll','Ll','LL']],
+ [], # ly (hungarian)
+ [], # l with caron (slovak/large)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+['M', ['m','M']],
+['N', ['n','N']],
+['Nj', ['nj','Nj','NJ']],
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+['Rr', ['rr','Rr','RR']],
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+['Sh', ['sh','Sh','SH']],
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+['Th', ['th','Th','TH']],
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+['Xh', ['xh','Xh','XH']],
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+['Zh', ['zh','Zh','ZH']],
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/belarusian/cp1251.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/belarusian/cp1251.pl
new file mode 100644
index 00000000000..3880a2c9a9f
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/belarusian/cp1251.pl
@@ -0,0 +1,72 @@
+#!/usr/bin/perl
+
+$language = "Belarusian";
+$prefix = "be";
+$script = "cyrillic";
+
+$alphabet = [
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # ghe with upturn (ukrainian)
+['', ['','']],
+ [], # dje (serbian)
+ [], # gje (macedonian)
+['', ['',''],['','']],
+ [], # io (mongolian)
+ [], # ukrainian ie
+['', ['','']],
+['', ['','']],
+ [], # dze (macedonian)
+['', ['','']],
+['', ['','']],
+ [], # yi (ukrainian)
+['', ['','']],
+ [], # je (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+ [], # lje (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+ [], # nje (macedonian, serbian)
+['', ['','']],
+ [], # barred o (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # tshe (serbian)
+ [], # kje (macedonian)
+['', ['','']],
+['', ['','']],
+ [], # straight u (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # dzhe (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [],
+ [],
+ [],
+ []
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/belarusian/iso88595.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/belarusian/iso88595.pl
new file mode 100644
index 00000000000..edbcdb109ea
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/belarusian/iso88595.pl
@@ -0,0 +1,72 @@
+#!/usr/bin/perl
+
+$language = "Belarusian";
+$prefix = "be";
+$script = "cyrillic";
+
+$alphabet = [
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # ghe with upturn (ukrainian)
+['', ['','']],
+ [], # dje (serbian)
+ [], # gje (macedonian)
+['', ['',''],['','']],
+ [], # io (mongolian)
+ [], # ukrainian ie
+['', ['','']],
+['', ['','']],
+ [], # dze (macedonian)
+['', ['','']],
+['', ['','']],
+ [], # yi (ukrainian)
+['', ['','']],
+ [], # je (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+ [], # lje (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+ [], # nje (macedonian, serbian)
+['', ['','']],
+ [], # barred o (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # tshe (serbian)
+ [], # kje (macedonian)
+['', ['','']],
+['', ['','']],
+ [], # straight u (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # dzhe (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [],
+ [],
+ [],
+ []
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/belarusian/isoir111.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/belarusian/isoir111.pl
new file mode 100644
index 00000000000..55905ff7559
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/belarusian/isoir111.pl
@@ -0,0 +1,72 @@
+#!/usr/bin/perl
+
+$language = "Belarusian";
+$prefix = "be";
+$script = "cyrillic";
+
+$alphabet = [
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # ghe with upturn (ukrainian)
+['', ['','']],
+ [], # dje (serbian)
+ [], # gje (macedonian)
+['', ['',''],['','']],
+ [], # io (mongolian)
+ [], # ukrainian ie
+['', ['','']],
+['', ['','']],
+ [], # dze (macedonian)
+['', ['','']],
+['', ['','']],
+ [], # yi (ukrainian)
+['', ['','']],
+ [], # je (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+ [], # lje (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+ [], # nje (macedonian, serbian)
+['', ['','']],
+ [], # barred o (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # tshe (serbian)
+ [], # kje (macedonian)
+['', ['','']],
+['', ['','']],
+ [], # straight u (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # dzhe (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [],
+ [],
+ [],
+ []
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/bulgarian/cp1251.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/bulgarian/cp1251.pl
new file mode 100644
index 00000000000..b18ba01af3f
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/bulgarian/cp1251.pl
@@ -0,0 +1,72 @@
+#!/usr/bin/perl
+
+$language = "Bulgarian";
+$prefix = "bg";
+$script = "cyrillic";
+
+$alphabet = [
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # ghe with upturn (ukrainian)
+['', ['','']],
+ [], # dje (serbian)
+ [], # gje (macedonian)
+['', ['','']],
+ [], # io (mongolian)
+ [], # ukrainian ie
+['', ['','']],
+['', ['','']],
+ [], # dze (macedonian)
+['', ['','']],
+ [], # belarusian-ukrainian i
+ [], # yi (ukrainian)
+['', ['','']],
+ [], # je (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+ [], # lje (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+ [], # nje (macedonian, serbian)
+['', ['','']],
+ [], # barred o (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # tshe (serbian)
+ [], # kje (macedonian)
+['', ['','']],
+ [], # short u (belarusian)
+ [], # straight u (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # dzhe (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # yeru (belarusian, russian)
+['', ['','']],
+ [],
+ [], # e (belarusian, russian)
+['', ['','']],
+['', ['','']],
+ [],
+[],
+ [],
+ []
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/bulgarian/iso88595.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/bulgarian/iso88595.pl
new file mode 100644
index 00000000000..a745b534f38
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/bulgarian/iso88595.pl
@@ -0,0 +1,72 @@
+#!/usr/bin/perl
+
+$language = "Bulgarian";
+$prefix = "bg";
+$script = "cyrillic";
+
+$alphabet = [
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # ghe with upturn (ukrainian)
+['', ['','']],
+ [], # dje (serbian)
+ [], # gje (macedonian)
+['', ['','']],
+ [], # io (mongolian)
+ [], # ukrainian ie
+['', ['','']],
+['', ['','']],
+ [], # dze (macedonian)
+['', ['','']],
+ [], # belarusian-ukrainian i
+ [], # yi (ukrainian)
+['', ['','']],
+ [], # je (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+ [], # lje (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+ [], # nje (macedonian, serbian)
+['', ['','']],
+ [], # barred o (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # tshe (serbian)
+ [], # kje (macedonian)
+['', ['','']],
+ [], # short u (belarusian)
+ [], # straight u (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # dzhe (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # yeru (belarusian, russian)
+['', ['','']],
+ [],
+ [], # e (belarusian, russian)
+['', ['','']],
+['', ['','']],
+ [],
+[],
+ [],
+ []
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/bulgarian/koi8-r.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/bulgarian/koi8-r.pl
new file mode 100644
index 00000000000..79e53a25250
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/bulgarian/koi8-r.pl
@@ -0,0 +1,72 @@
+#!/usr/bin/perl
+
+$language = "Bulgarian";
+$prefix = "bg";
+$script = "cyrillic";
+
+$alphabet = [
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # ghe with upturn (ukrainian)
+['', ['','']],
+ [], # dje (serbian)
+ [], # gje (macedonian)
+['', ['','']],
+ [], # io (mongolian)
+ [], # ukrainian ie
+['', ['','']],
+['', ['','']],
+ [], # dze (macedonian)
+['', ['','']],
+ [], # belarusian-ukrainian i
+ [], # yi (ukrainian)
+['', ['','']],
+ [], # je (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+ [], # lje (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+ [], # nje (macedonian, serbian)
+['', ['','']],
+ [], # barred o (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # tshe (serbian)
+ [], # kje (macedonian)
+['', ['','']],
+ [], # short u (belarusian)
+ [], # straight u (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # dzhe (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # yeru (belarusian, russian)
+['', ['','']],
+ [],
+ [], # e (belarusian, russian)
+['', ['','']],
+['', ['','']],
+ [],
+[],
+ [],
+ []
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/croatian/cp1250.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/croatian/cp1250.pl
new file mode 100644
index 00000000000..ef624f39335
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/croatian/cp1250.pl
@@ -0,0 +1,148 @@
+#!/usr/bin/perl
+
+$language = "Croatian";
+$prefix = "hr";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'] ],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+['', ['','']],
+['', ['','']],
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+['D', ['d','D','D']],
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+['', ['','']],
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'] ],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G'] ],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I'] ],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K'] ],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+['Lj', ['lj','Lj','LJ']],
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+['Nj', ['nj','Nj','NJ']],
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'] ],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R'] ],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+['', ['','']],
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'] ],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+['', ['','']],
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$ligatures = [
+
+
+
+
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+$sortcase = "Aa";
+#$sortcase = "aA";
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/croatian/latin2.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/croatian/latin2.pl
new file mode 100644
index 00000000000..5f94c9c0321
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/croatian/latin2.pl
@@ -0,0 +1,148 @@
+#!/usr/bin/perl
+
+$language = "Croatian";
+$prefix = "hr";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'] ],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+['', ['','']],
+['', ['','']],
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+['D', ['d','D','D']],
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+['', ['','']],
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'] ],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G'] ],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I'] ],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K'] ],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+['Lj', ['lj','Lj','LJ']],
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+['Nj', ['nj','Nj','NJ']],
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'] ],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R'] ],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+['', ['','']],
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'] ],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+['', ['','']],
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$ligatures = [
+
+
+
+
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+$sortcase = "Aa";
+#$sortcase = "aA";
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/czech/cp1250.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/czech/cp1250.pl
new file mode 100644
index 00000000000..a8dda762d5f
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/czech/cp1250.pl
@@ -0,0 +1,145 @@
+#!/usr/bin/perl
+
+$language = "Czech";
+$prefix = "cs";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'], ['',''],['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (many)
+ [], # cs (hungarian)
+['', ['','']],
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D'], ['','']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'], ['',''], ['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+['Ch', ['ch','Ch','CH']],
+ [], # dotless i (turkish)
+['I', ['i','I'], ['','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N'], ['','']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'], ['',''],['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+['', ['','']],
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+['', ['','']],
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T'], ['','']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'], ['',''], ['',''],['','']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y'], ['','']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+['', ['','']],
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$ligatures = [
+[[''], 'after', [['s','s']]],
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+$sortcase = "Aa";
+#$sortcase = "aA";
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/czech/latin2.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/czech/latin2.pl
new file mode 100644
index 00000000000..7af4d817e4c
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/czech/latin2.pl
@@ -0,0 +1,145 @@
+#!/usr/bin/perl
+
+$language = "Czech";
+$prefix = "cs";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'], ['',''],['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (many)
+ [], # cs (hungarian)
+['', ['','']],
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D'], ['','']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'], ['',''], ['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+['Ch', ['ch','Ch','CH']],
+ [], # dotless i (turkish)
+['I', ['i','I'], ['','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N'], ['','']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'], ['',''],['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+['', ['','']],
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+['', ['','']],
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T'], ['','']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'], ['',''], ['',''],['','']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y'], ['','']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+['', ['','']],
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$ligatures = [
+[[''], 'after', [['s','s']]],
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+$sortcase = "Aa";
+#$sortcase = "aA";
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/danish/cp1252.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/danish/cp1252.pl
new file mode 100644
index 00000000000..dd3e3dedae2
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/danish/cp1252.pl
@@ -0,0 +1,145 @@
+#!/usr/bin/perl
+
+$language = "Danish";
+$prefix = "da";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'],['',''],['',''],['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C'],['','']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D'],['','']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'],['',''],['',''],['',''],['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I'],['','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'],['',''],['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'],['','']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y'],['',''],['','']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+['', ['','']],
+['', ['',''],['',''],['','']],
+['', ['',''],['aa','Aa','AA']],
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+[['',''], 'after', [['t','h'], ['T','h']]]
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/danish/latin1.xdy b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/danish/latin1.xdy
new file mode 100644
index 00000000000..3162e0169e7
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/danish/latin1.xdy
@@ -0,0 +1,299 @@
+;; Rules for xindy; generated by make-rules.pl
+;; language: Danish
+
+(define-letter-group "A" :prefixes (""))
+(define-letter-group "B" :after "A" :prefixes (""))
+(define-letter-group "C" :after "B" :prefixes (""))
+(define-letter-group "D" :after "C" :prefixes (""))
+(define-letter-group "E" :after "D" :prefixes (""))
+(define-letter-group "F" :after "E" :prefixes (""))
+(define-letter-group "G" :after "F" :prefixes (""))
+(define-letter-group "H" :after "G" :prefixes (""))
+(define-letter-group "I" :after "H" :prefixes (""))
+(define-letter-group "J" :after "I" :prefixes (""))
+(define-letter-group "K" :after "J" :prefixes (""))
+(define-letter-group "L" :after "K" :prefixes (""))
+(define-letter-group "M" :after "L" :prefixes (""))
+(define-letter-group "N" :after "M" :prefixes (""))
+(define-letter-group "O" :after "N" :prefixes (""))
+(define-letter-group "P" :after "O" :prefixes (""))
+(define-letter-group "Q" :after "P" :prefixes (""))
+(define-letter-group "R" :after "Q" :prefixes (""))
+(define-letter-group "S" :after "R" :prefixes (""))
+(define-letter-group "T" :after "S" :prefixes (""))
+(define-letter-group "U" :after "T" :prefixes (""))
+(define-letter-group "V" :after "U" :prefixes (""))
+(define-letter-group "W" :after "V" :prefixes (""))
+(define-letter-group "X" :after "W" :prefixes (""))
+(define-letter-group "Y" :after "X" :prefixes (""))
+(define-letter-group "Z" :after "Y" :prefixes (""))
+(define-letter-group "" :after "Z" :prefixes (""))
+(define-letter-group "" :after "" :prefixes (""))
+(define-letter-group "" :after "" :prefixes (""))
+
+(define-rule-set "da-alphabetize"
+
+ :rules (("A" "" :string)
+ ("a" "" :string)
+ ("B" "" :string)
+ ("b" "" :string)
+ ("C" "" :string)
+ ("c" "" :string)
+ ("d" "" :string)
+ ("D" "" :string)
+ ("E" "" :string)
+ ("e" "" :string)
+ ("F" "" :string)
+ ("f" "" :string)
+ ("G" "" :string)
+ ("g" "" :string)
+ ("h" "" :string)
+ ("H" "" :string)
+ ("I" "" :string)
+ ("i" "" :string)
+ ("j" "" :string)
+ ("J" "" :string)
+ ("K" "" :string)
+ ("k" "" :string)
+ ("L" "" :string)
+ ("l" "" :string)
+ ("M" "" :string)
+ ("m" "" :string)
+ ("N" "" :string)
+ ("n" "" :string)
+ ("O" "" :string)
+ ("o" "" :string)
+ ("P" "" :string)
+ ("p" "" :string)
+ ("Q" "" :string)
+ ("q" "" :string)
+ ("R" "" :string)
+ ("r" "" :string)
+ ("S" "" :string)
+ ("s" "" :string)
+ ("" "" :string)
+ ("T" "" :string)
+ ("t" "" :string)
+ ("U" "" :string)
+ ("u" "" :string)
+ ("V" "" :string)
+ ("v" "" :string)
+ ("w" "" :string)
+ ("W" "" :string)
+ ("X" "" :string)
+ ("x" "" :string)
+ ("y" "" :string)
+ ("Y" "" :string)
+ ("Z" "" :string)
+ ("z" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ))
+
+(define-rule-set "da-resolve-diacritics"
+
+ :rules (("A" "" :string)
+ ("B" "" :string)
+ ("C" "" :string)
+ ("D" "" :string)
+ ("" "" :string)
+ ("E" "" :string)
+ ("" "" :string)
+ ("F" "" :string)
+ ("G" "" :string)
+ ("H" "" :string)
+ ("I" "" :string)
+ ("J" "" :string)
+ ("K" "" :string)
+ ("L" "" :string)
+ ("M" "" :string)
+ ("N" "" :string)
+ ("O" "" :string)
+ ("P" "" :string)
+ ("Q" "" :string)
+ ("R" "" :string)
+ ("S" "" :string)
+ ("T" "" :string)
+ ("U" "" :string)
+ ("V" "" :string)
+ ("W" "" :string)
+ ("" "" :string)
+ ("X" "" :string)
+ ("Y" "" :string)
+ ("Z" "" :string)
+ ("a" "" :string)
+ ("b" "" :string)
+ ("c" "" :string)
+ ("d" "" :string)
+ ("" "" :string)
+ ("e" "" :string)
+ ("" "" :string)
+ ("f" "" :string)
+ ("g" "" :string)
+ ("h" "" :string)
+ ("i" "" :string)
+ ("j" "" :string)
+ ("k" "" :string)
+ ("l" "" :string)
+ ("m" "" :string)
+ ("n" "" :string)
+ ("o" "" :string)
+ ("p" "" :string)
+ ("q" "" :string)
+ ("r" "" :string)
+ ("s" "" :string)
+ ("t" "" :string)
+ ("u" "" :string)
+ ("v" "" :string)
+ ("w" "" :string)
+ ("" "" :string)
+ ("x" "" :string)
+ ("y" "" :string)
+ ("z" "" :string)
+ ("" "" :string)
+ ))
+
+(define-rule-set "da-resolve-case"
+
+ :rules (("A" "8" :string)
+ ("B" "8" :string)
+ ("C" "8" :string)
+ ("D" "8" :string)
+ ("" "8" :string)
+ ("E" "8" :string)
+ ("" "8" :string)
+ ("F" "8" :string)
+ ("G" "8" :string)
+ ("H" "8" :string)
+ ("I" "8" :string)
+ ("J" "8" :string)
+ ("K" "8" :string)
+ ("L" "8" :string)
+ ("M" "8" :string)
+ ("N" "8" :string)
+ ("O" "8" :string)
+ ("P" "8" :string)
+ ("Q" "8" :string)
+ ("R" "8" :string)
+ ("S" "8" :string)
+ ("T" "8" :string)
+ ("U" "8" :string)
+ ("V" "8" :string)
+ ("W" "8" :string)
+ ("" "8" :string)
+ ("X" "8" :string)
+ ("Y" "8" :string)
+ ("Z" "8" :string)
+ ("a" "9" :string)
+ ("b" "9" :string)
+ ("c" "9" :string)
+ ("d" "9" :string)
+ ("" "9" :string)
+ ("e" "9" :string)
+ ("" "9" :string)
+ ("f" "9" :string)
+ ("g" "9" :string)
+ ("h" "9" :string)
+ ("i" "9" :string)
+ ("j" "9" :string)
+ ("k" "9" :string)
+ ("l" "9" :string)
+ ("m" "9" :string)
+ ("n" "9" :string)
+ ("o" "9" :string)
+ ("p" "9" :string)
+ ("q" "9" :string)
+ ("r" "9" :string)
+ ("s" "9" :string)
+ ("t" "9" :string)
+ ("u" "9" :string)
+ ("v" "9" :string)
+ ("w" "9" :string)
+ ("" "9" :string)
+ ("x" "9" :string)
+ ("y" "9" :string)
+ ("z" "9" :string)
+ ("" "99" :string)
+ ))
+
+(define-rule-set "da-ignore-special"
+
+ :rules (("!" "" :string)
+ ("'" "" :string)
+ ("-" "" :string)
+ ("." "" :string)
+ ("?" "" :string)
+ ))
+
+(define-rule-set "da-resolve-special"
+
+ :rules (("?" "" :string)
+ ("!" "" :string)
+ ("." "" :string)
+ ("B" "" :string)
+ ("C" "" :string)
+ ("D" "" :string)
+ ("" "" :string)
+ ("E" "" :string)
+ ("" "" :string)
+ ("F" "" :string)
+ ("G" "" :string)
+ ("H" "" :string)
+ ("I" "" :string)
+ ("J" "" :string)
+ ("K" "" :string)
+ ("L" "" :string)
+ ("M" "" :string)
+ ("N" "" :string)
+ ("O" "" :string)
+ ("P" "" :string)
+ ("Q" "" :string)
+ ("R" "" :string)
+ ("S" "" :string)
+ ("T" "" :string)
+ ("U" "" :string)
+ ("V" "" :string)
+ ("W" "" :string)
+ ("" "" :string)
+ ("X" "" :string)
+ ("Y" "" :string)
+ ("Z" "" :string)
+ ("a" "" :string)
+ ("b" "" :string)
+ ("c" "" :string)
+ ("d" "" :string)
+ ("" "" :string)
+ ("e" "" :string)
+ ("" "" :string)
+ ("f" "" :string)
+ ("g" "" :string)
+ ("h" "" :string)
+ ("i" "" :string)
+ ("j" "" :string)
+ ("k" "" :string)
+ ("l" "" :string)
+ ("m" "" :string)
+ ("n" "" :string)
+ ("o" "" :string)
+ ("p" "" :string)
+ ("q" "" :string)
+ ("r" "" :string)
+ ("s" "" :string)
+ ("t" "" :string)
+ ("u" "" :string)
+ ("v" "" :string)
+ ("w" "" :string)
+ ("" "" :string)
+ ("x" "" :string)
+ ("y" "" :string)
+ ("z" "" :string)
+ ("A" "" :string)
+ ("" "" :string)
+ ("-" "" :string)
+ ("'" "" :string)
+ ))
+
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/danish/latin9.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/danish/latin9.pl
new file mode 100644
index 00000000000..89ee37be0ae
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/danish/latin9.pl
@@ -0,0 +1,145 @@
+#!/usr/bin/perl
+
+$language = "Danish";
+$prefix = "da";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'],['',''],['',''],['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C'],['','']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D'],['','']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'],['',''],['',''],['',''],['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I'],['','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'],['',''],['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'],['','']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y'],['',''],['','']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+['', ['','']],
+['', ['',''],['',''],['','']],
+['', ['',''],['aa','Aa','AA']],
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+[['',''], 'after', [['t','h'], ['T','h']]]
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/dutch/ij-as-ij-latin1.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/dutch/ij-as-ij-latin1.pl
new file mode 100644
index 00000000000..9704c976872
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/dutch/ij-as-ij-latin1.pl
@@ -0,0 +1,148 @@
+#!/usr/bin/perl
+
+# Not quite sure about this -- MV
+
+$language = "Dutch";
+$variant = "Ligature IJ sorted as I+J";
+$prefix = "nl";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'],['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'], ['',''], ['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I'],['','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'], ['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'],['','']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'', '{', '}');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/dutch/latin1.xdy b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/dutch/latin1.xdy
new file mode 100644
index 00000000000..5878dab4741
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/dutch/latin1.xdy
@@ -0,0 +1,300 @@
+;; Rules for xindy; generated by make-rules.pl
+;; language: Dutch
+
+(define-letter-group "A" :prefixes (""))
+(define-letter-group "B" :after "A" :prefixes (""))
+(define-letter-group "C" :after "B" :prefixes (""))
+(define-letter-group "D" :after "C" :prefixes (""))
+(define-letter-group "E" :after "D" :prefixes (""))
+(define-letter-group "F" :after "E" :prefixes (""))
+(define-letter-group "G" :after "F" :prefixes (""))
+(define-letter-group "H" :after "G" :prefixes (""))
+(define-letter-group "I" :after "H" :prefixes (""))
+(define-letter-group "J" :after "I" :prefixes (""))
+(define-letter-group "K" :after "J" :prefixes (""))
+(define-letter-group "L" :after "K" :prefixes (""))
+(define-letter-group "M" :after "L" :prefixes (""))
+(define-letter-group "N" :after "M" :prefixes (""))
+(define-letter-group "O" :after "N" :prefixes (""))
+(define-letter-group "P" :after "O" :prefixes (""))
+(define-letter-group "Q" :after "P" :prefixes (""))
+(define-letter-group "R" :after "Q" :prefixes (""))
+(define-letter-group "S" :after "R" :prefixes (""))
+(define-letter-group "T" :after "S" :prefixes (""))
+(define-letter-group "U" :after "T" :prefixes (""))
+(define-letter-group "V" :after "U" :prefixes (""))
+(define-letter-group "W" :after "V" :prefixes (""))
+(define-letter-group "X" :after "W" :prefixes (""))
+(define-letter-group "Y" :after "X" :prefixes (""))
+(define-letter-group "Z" :after "Y" :prefixes (""))
+
+(define-rule-set "nl-alphabetize"
+
+ :rules (("A" "" :string)
+ ("a" "" :string)
+ ("B" "" :string)
+ ("b" "" :string)
+ ("C" "" :string)
+ ("c" "" :string)
+ ("D" "" :string)
+ ("d" "" :string)
+ ("E" "" :string)
+ ("" "" :string)
+ ("e" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("f" "" :string)
+ ("F" "" :string)
+ ("G" "" :string)
+ ("g" "" :string)
+ ("H" "" :string)
+ ("h" "" :string)
+ ("I" "" :string)
+ ("i" "" :string)
+ ("J" "" :string)
+ ("j" "" :string)
+ ("K" "" :string)
+ ("k" "" :string)
+ ("L" "" :string)
+ ("l" "" :string)
+ ("m" "" :string)
+ ("M" "" :string)
+ ("N" "" :string)
+ ("n" "" :string)
+ ("o" "" :string)
+ ("O" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("p" "" :string)
+ ("P" "" :string)
+ ("q" "" :string)
+ ("Q" "" :string)
+ ("r" "" :string)
+ ("R" "" :string)
+ ("S" "" :string)
+ ("s" "" :string)
+ ("" "" :string)
+ ("t" "" :string)
+ ("T" "" :string)
+ ("U" "" :string)
+ ("u" "" :string)
+ ("v" "" :string)
+ ("V" "" :string)
+ ("W" "" :string)
+ ("w" "" :string)
+ ("X" "" :string)
+ ("x" "" :string)
+ ("Y" "" :string)
+ ("y" "" :string)
+ ("Z" "" :string)
+ ("z" "" :string)
+ ))
+
+(define-rule-set "nl-resolve-diacritics"
+
+ :rules (("A" "" :string)
+ ("B" "" :string)
+ ("C" "" :string)
+ ("D" "" :string)
+ ("E" "" :string)
+ ("F" "" :string)
+ ("G" "" :string)
+ ("H" "" :string)
+ ("I" "" :string)
+ ("x" "" :string)
+ ("J" "" :string)
+ ("K" "" :string)
+ ("y" "" :string)
+ ("L" "" :string)
+ ("M" "" :string)
+ ("N" "" :string)
+ ("O" "" :string)
+ ("P" "" :string)
+ ("Q" "" :string)
+ ("R" "" :string)
+ ("S" "" :string)
+ ("T" "" :string)
+ ("U" "" :string)
+ ("V" "" :string)
+ ("z" "" :string)
+ ("W" "" :string)
+ ("X" "" :string)
+ ("Y" "" :string)
+ ("Z" "" :string)
+ ("a" "" :string)
+ ("b" "" :string)
+ ("c" "" :string)
+ ("d" "" :string)
+ ("e" "" :string)
+ ("f" "" :string)
+ ("g" "" :string)
+ ("h" "" :string)
+ ("i" "" :string)
+ ("j" "" :string)
+ ("k" "" :string)
+ ("l" "" :string)
+ ("m" "" :string)
+ ("n" "" :string)
+ ("o" "" :string)
+ ("p" "" :string)
+ ("q" "" :string)
+ ("r" "" :string)
+ ("s" "" :string)
+ ("t" "" :string)
+ ("u" "" :string)
+ ("v" "" :string)
+ ("w" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ))
+
+(define-rule-set "nl-resolve-case"
+
+ :rules (("A" "8" :string)
+ ("B" "8" :string)
+ ("C" "8" :string)
+ ("D" "8" :string)
+ ("E" "8" :string)
+ ("F" "8" :string)
+ ("G" "8" :string)
+ ("H" "8" :string)
+ ("I" "8" :string)
+ ("" "8" :string)
+ ("J" "8" :string)
+ ("K" "8" :string)
+ ("" "8" :string)
+ ("L" "8" :string)
+ ("M" "8" :string)
+ ("N" "8" :string)
+ ("O" "8" :string)
+ ("P" "8" :string)
+ ("Q" "8" :string)
+ ("R" "8" :string)
+ ("S" "8" :string)
+ ("T" "8" :string)
+ ("U" "8" :string)
+ ("V" "8" :string)
+ ("" "8" :string)
+ ("W" "8" :string)
+ ("X" "8" :string)
+ ("Y" "8" :string)
+ ("Z" "8" :string)
+ ("a" "9" :string)
+ ("b" "9" :string)
+ ("c" "9" :string)
+ ("d" "9" :string)
+ ("e" "9" :string)
+ ("f" "9" :string)
+ ("g" "9" :string)
+ ("h" "9" :string)
+ ("i" "9" :string)
+ ("" "9" :string)
+ ("j" "9" :string)
+ ("k" "9" :string)
+ ("" "9" :string)
+ ("l" "9" :string)
+ ("m" "9" :string)
+ ("n" "9" :string)
+ ("o" "9" :string)
+ ("p" "9" :string)
+ ("q" "9" :string)
+ ("r" "9" :string)
+ ("s" "9" :string)
+ ("t" "9" :string)
+ ("u" "9" :string)
+ ("v" "9" :string)
+ ("" "9" :string)
+ ("w" "9" :string)
+ ("x" "9" :string)
+ ("y" "9" :string)
+ ("z" "9" :string)
+ ("" "99" :string)
+ ))
+
+(define-rule-set "nl-ignore-special"
+
+ :rules (("!" "" :string)
+ ("'" "" :string)
+ ("-" "" :string)
+ ("." "" :string)
+ ("{" "" :string)
+ ("}" "" :string)
+ ("?" "" :string)
+ ))
+
+(define-rule-set "nl-resolve-special"
+
+ :rules (("?" "" :string)
+ ("!" "" :string)
+ ("." "" :string)
+ ("y" "" :string)
+ ("z" "" :string)
+ ("A" "" :string)
+ ("B" "" :string)
+ ("C" "" :string)
+ ("D" "" :string)
+ ("E" "" :string)
+ ("F" "" :string)
+ ("G" "" :string)
+ ("H" "" :string)
+ ("" "" :string)
+ ("I" "" :string)
+ ("J" "" :string)
+ ("" "" :string)
+ ("K" "" :string)
+ ("L" "" :string)
+ ("M" "" :string)
+ ("N" "" :string)
+ ("O" "" :string)
+ ("P" "" :string)
+ ("Q" "" :string)
+ ("R" "" :string)
+ ("S" "" :string)
+ ("T" "" :string)
+ ("U" "" :string)
+ ("" "" :string)
+ ("V" "" :string)
+ ("W" "" :string)
+ ("X" "" :string)
+ ("Y" "" :string)
+ ("Z" "" :string)
+ ("a" "" :string)
+ ("b" "" :string)
+ ("c" "" :string)
+ ("d" "" :string)
+ ("e" "" :string)
+ ("f" "" :string)
+ ("g" "" :string)
+ ("h" "" :string)
+ ("" "" :string)
+ ("i" "" :string)
+ ("j" "" :string)
+ ("" "" :string)
+ ("k" "" :string)
+ ("l" "" :string)
+ ("m" "" :string)
+ ("n" "" :string)
+ ("o" "" :string)
+ ("p" "" :string)
+ ("q" "" :string)
+ ("r" "" :string)
+ ("s" "" :string)
+ ("t" "" :string)
+ ("u" "" :string)
+ ("" "" :string)
+ ("v" "" :string)
+ ("w" "" :string)
+ ("x" "" :string)
+ ("" "" :string)
+ ("-" "" :string)
+ ("'" "" :string)
+ ("{" "" :string)
+ ("}" "" :string)
+ ))
+
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/english/ascii.xdy b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/english/ascii.xdy
new file mode 100644
index 00000000000..171e3bab15f
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/english/ascii.xdy
@@ -0,0 +1,272 @@
+;; Rules for xindy; generated by make-rules.pl
+;; language: English
+
+(define-letter-group "A" :prefixes (""))
+(define-letter-group "B" :after "A" :prefixes (""))
+(define-letter-group "C" :after "B" :prefixes (""))
+(define-letter-group "D" :after "C" :prefixes (""))
+(define-letter-group "E" :after "D" :prefixes (""))
+(define-letter-group "F" :after "E" :prefixes (""))
+(define-letter-group "G" :after "F" :prefixes (""))
+(define-letter-group "H" :after "G" :prefixes (""))
+(define-letter-group "I" :after "H" :prefixes (""))
+(define-letter-group "J" :after "I" :prefixes (""))
+(define-letter-group "K" :after "J" :prefixes (""))
+(define-letter-group "L" :after "K" :prefixes (""))
+(define-letter-group "M" :after "L" :prefixes (""))
+(define-letter-group "N" :after "M" :prefixes (""))
+(define-letter-group "O" :after "N" :prefixes (""))
+(define-letter-group "P" :after "O" :prefixes (""))
+(define-letter-group "Q" :after "P" :prefixes (""))
+(define-letter-group "R" :after "Q" :prefixes (""))
+(define-letter-group "S" :after "R" :prefixes (""))
+(define-letter-group "T" :after "S" :prefixes (""))
+(define-letter-group "U" :after "T" :prefixes (""))
+(define-letter-group "V" :after "U" :prefixes (""))
+(define-letter-group "W" :after "V" :prefixes (""))
+(define-letter-group "X" :after "W" :prefixes (""))
+(define-letter-group "Y" :after "X" :prefixes (""))
+(define-letter-group "Z" :after "Y" :prefixes (""))
+
+(define-rule-set "en-alphabetize"
+
+ :rules (("A" "" :string)
+ ("a" "" :string)
+ ("B" "" :string)
+ ("b" "" :string)
+ ("C" "" :string)
+ ("c" "" :string)
+ ("D" "" :string)
+ ("d" "" :string)
+ ("E" "" :string)
+ ("e" "" :string)
+ ("F" "" :string)
+ ("f" "" :string)
+ ("G" "" :string)
+ ("g" "" :string)
+ ("H" "" :string)
+ ("h" "" :string)
+ ("I" "" :string)
+ ("i" "" :string)
+ ("J" "" :string)
+ ("j" "" :string)
+ ("K" "" :string)
+ ("k" "" :string)
+ ("L" "" :string)
+ ("l" "" :string)
+ ("M" "" :string)
+ ("m" "" :string)
+ ("N" "" :string)
+ ("n" "" :string)
+ ("O" "" :string)
+ ("o" "" :string)
+ ("P" "" :string)
+ ("p" "" :string)
+ ("Q" "" :string)
+ ("q" "" :string)
+ ("R" "" :string)
+ ("r" "" :string)
+ ("S" "" :string)
+ ("s" "" :string)
+ ("T" "" :string)
+ ("t" "" :string)
+ ("U" "" :string)
+ ("u" "" :string)
+ ("V" "" :string)
+ ("v" "" :string)
+ ("W" "" :string)
+ ("w" "" :string)
+ ("X" "" :string)
+ ("x" "" :string)
+ ("Y" "" :string)
+ ("y" "" :string)
+ ("Z" "" :string)
+ ("z" "" :string)
+ ))
+
+(define-rule-set "en-resolve-diacritics"
+
+ :rules (("A" "" :string)
+ ("B" "" :string)
+ ("C" "" :string)
+ ("D" "" :string)
+ ("E" "" :string)
+ ("F" "" :string)
+ ("G" "" :string)
+ ("H" "" :string)
+ ("I" "" :string)
+ ("J" "" :string)
+ ("K" "" :string)
+ ("L" "" :string)
+ ("M" "" :string)
+ ("N" "" :string)
+ ("O" "" :string)
+ ("P" "" :string)
+ ("Q" "" :string)
+ ("R" "" :string)
+ ("S" "" :string)
+ ("T" "" :string)
+ ("U" "" :string)
+ ("V" "" :string)
+ ("W" "" :string)
+ ("X" "" :string)
+ ("Y" "" :string)
+ ("Z" "" :string)
+ ("a" "" :string)
+ ("b" "" :string)
+ ("c" "" :string)
+ ("d" "" :string)
+ ("e" "" :string)
+ ("f" "" :string)
+ ("g" "" :string)
+ ("h" "" :string)
+ ("i" "" :string)
+ ("j" "" :string)
+ ("k" "" :string)
+ ("l" "" :string)
+ ("m" "" :string)
+ ("n" "" :string)
+ ("o" "" :string)
+ ("p" "" :string)
+ ("q" "" :string)
+ ("r" "" :string)
+ ("s" "" :string)
+ ("t" "" :string)
+ ("u" "" :string)
+ ("v" "" :string)
+ ("w" "" :string)
+ ("x" "" :string)
+ ("y" "" :string)
+ ("z" "" :string)
+ ))
+
+(define-rule-set "en-resolve-case"
+
+ :rules (("A" "8" :string)
+ ("B" "8" :string)
+ ("C" "8" :string)
+ ("D" "8" :string)
+ ("E" "8" :string)
+ ("F" "8" :string)
+ ("G" "8" :string)
+ ("H" "8" :string)
+ ("I" "8" :string)
+ ("J" "8" :string)
+ ("K" "8" :string)
+ ("L" "8" :string)
+ ("M" "8" :string)
+ ("N" "8" :string)
+ ("O" "8" :string)
+ ("P" "8" :string)
+ ("Q" "8" :string)
+ ("R" "8" :string)
+ ("S" "8" :string)
+ ("T" "8" :string)
+ ("U" "8" :string)
+ ("V" "8" :string)
+ ("W" "8" :string)
+ ("X" "8" :string)
+ ("Y" "8" :string)
+ ("Z" "8" :string)
+ ("a" "9" :string)
+ ("b" "9" :string)
+ ("c" "9" :string)
+ ("d" "9" :string)
+ ("e" "9" :string)
+ ("f" "9" :string)
+ ("g" "9" :string)
+ ("h" "9" :string)
+ ("i" "9" :string)
+ ("j" "9" :string)
+ ("k" "9" :string)
+ ("l" "9" :string)
+ ("m" "9" :string)
+ ("n" "9" :string)
+ ("o" "9" :string)
+ ("p" "9" :string)
+ ("q" "9" :string)
+ ("r" "9" :string)
+ ("s" "9" :string)
+ ("t" "9" :string)
+ ("u" "9" :string)
+ ("v" "9" :string)
+ ("w" "9" :string)
+ ("x" "9" :string)
+ ("y" "9" :string)
+ ("z" "9" :string)
+ ))
+
+(define-rule-set "en-ignore-special"
+
+ :rules (("!" "" :string)
+ ("'" "" :string)
+ ("-" "" :string)
+ ("." "" :string)
+ ("{" "" :string)
+ ("}" "" :string)
+ ("?" "" :string)
+ ))
+
+(define-rule-set "en-resolve-special"
+
+ :rules (("?" "" :string)
+ ("!" "" :string)
+ ("." "" :string)
+ ("C" "" :string)
+ ("D" "" :string)
+ ("E" "" :string)
+ ("F" "" :string)
+ ("G" "" :string)
+ ("H" "" :string)
+ ("I" "" :string)
+ ("J" "" :string)
+ ("K" "" :string)
+ ("L" "" :string)
+ ("M" "" :string)
+ ("N" "" :string)
+ ("O" "" :string)
+ ("P" "" :string)
+ ("Q" "" :string)
+ ("R" "" :string)
+ ("S" "" :string)
+ ("T" "" :string)
+ ("U" "" :string)
+ ("V" "" :string)
+ ("W" "" :string)
+ ("X" "" :string)
+ ("Y" "" :string)
+ ("Z" "" :string)
+ ("a" "" :string)
+ ("b" "" :string)
+ ("c" "" :string)
+ ("d" "" :string)
+ ("e" "" :string)
+ ("f" "" :string)
+ ("g" "" :string)
+ ("h" "" :string)
+ ("i" "" :string)
+ ("j" "" :string)
+ ("k" "" :string)
+ ("l" "" :string)
+ ("m" "" :string)
+ ("n" "" :string)
+ ("A" "" :string)
+ ("o" "" :string)
+ ("p" "" :string)
+ ("q" "" :string)
+ ("r" "" :string)
+ ("s" "" :string)
+ ("t" "" :string)
+ ("u" "" :string)
+ ("v" "" :string)
+ ("w" "" :string)
+ ("x" "" :string)
+ ("y" "" :string)
+ ("z" "" :string)
+ ("B" "" :string)
+ ("-" "" :string)
+ ("'" "" :string)
+ ("{" "" :string)
+ ("}" "" :string)
+ ))
+
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/english/cp1252.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/english/cp1252.pl
new file mode 100644
index 00000000000..1cea424628d
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/english/cp1252.pl
@@ -0,0 +1,146 @@
+#!/usr/bin/perl
+
+$language = "English";
+$prefix = "en";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'],['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C'],['','']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D'],['','']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'],['',''],['',''],['',''],['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I'],['','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N'],['','']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'],['',''],['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+[],
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+['', ['','']],
+[],
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+[['',''], 'after', [['a','e'], ['A','e']]],
+[['',''], 'after', [['o','e'], ['O','e']]]
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'', '{', '}');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/english/latin9.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/english/latin9.pl
new file mode 100644
index 00000000000..bafb500811c
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/english/latin9.pl
@@ -0,0 +1,146 @@
+#!/usr/bin/perl
+
+$language = "English";
+$prefix = "en";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'],['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C'],['','']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D'],['','']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'],['',''],['',''],['',''],['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I'],['','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N'],['','']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'],['',''],['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+[],
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+['', ['','']],
+[],
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+[['',''], 'after', [['a','e'], ['A','e']]],
+[['',''], 'after', [['o','e'], ['O','e']]]
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'', '{', '}');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/esperanto/latin3.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/esperanto/latin3.pl
new file mode 100644
index 00000000000..9a77c47ad9c
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/esperanto/latin3.pl
@@ -0,0 +1,145 @@
+#!/usr/bin/perl
+
+$language = "Esperanto";
+$prefix = "eo";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+['', ['','']],
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+['', ['','']],
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+['', ['','']],
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+['', ['','']],
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+['', ['','']],
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U']],
+['', ['','']],
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+[[''], 'after', [['s','s']]]
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/estonian/cp1252.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/estonian/cp1252.pl
new file mode 100644
index 00000000000..9a036a1c4d7
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/estonian/cp1252.pl
@@ -0,0 +1,144 @@
+#!/usr/bin/perl
+
+$language = "Estonian";
+$prefix = "et";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+['', ['','']],
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+['Z', ['z','Z']],
+['', ['','']],
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V'],['w','W']],
+ [], # w (many)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+ [], # z (many)
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/estonian/latin9.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/estonian/latin9.pl
new file mode 100644
index 00000000000..773772d6000
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/estonian/latin9.pl
@@ -0,0 +1,144 @@
+#!/usr/bin/perl
+
+$language = "Estonian";
+$prefix = "et";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+['', ['','']],
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+['Z', ['z','Z']],
+['', ['','']],
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V'],['w','W']],
+ [], # w (many)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+ [], # z (many)
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/finnish/cp1252.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/finnish/cp1252.pl
new file mode 100644
index 00000000000..01624cfa4cf
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/finnish/cp1252.pl
@@ -0,0 +1,145 @@
+#!/usr/bin/perl
+
+$language = "Finnish";
+$prefix = "fi";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'], ['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S'], ['','']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V'], ['w','W']],
+ [], # w (many)
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y'], ['','']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z'], ['','']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+['', ['','']],
+['', ['',''],['','']],
+['', ['',''],['',''],['','']],
+ [] # a with ring above (icelandic)
+];
+
+#$sortcase = 'Aa';
+$sortcase = 'aA';
+
+$ligatures = [
+[[''], 'after', [['s','s']]]
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'', '{', '}');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/finnish/latin9.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/finnish/latin9.pl
new file mode 100644
index 00000000000..a7b71077b45
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/finnish/latin9.pl
@@ -0,0 +1,145 @@
+#!/usr/bin/perl
+
+$language = "Finnish";
+$prefix = "fi";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'], ['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S'], ['','']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V'], ['w','W']],
+ [], # w (many)
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y'], ['','']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z'], ['','']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+['', ['','']],
+['', ['',''],['','']],
+['', ['',''],['',''],['','']],
+ [] # a with ring above (icelandic)
+];
+
+#$sortcase = 'Aa';
+$sortcase = 'aA';
+
+$ligatures = [
+[[''], 'after', [['s','s']]]
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'', '{', '}');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/french/cp1252.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/french/cp1252.pl
new file mode 100644
index 00000000000..36a261558bb
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/french/cp1252.pl
@@ -0,0 +1,146 @@
+#!/usr/bin/perl
+
+$language = "French";
+$prefix = "fr";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'],['',''],['',''],['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C'],['','']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'],['',''],['',''],['',''],['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I'], ['',''],['','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N'],['','']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'], ['',''],['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'],['',''],['',''],['','']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y'], ['','']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zs (hungarian)
+ [], # zh (albanian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+[['',''], 'after', [['a','e'], ['A','e']]],
+[['',''], 'after', [['o','e'], ['O','e']]]
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/french/latin9.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/french/latin9.pl
new file mode 100644
index 00000000000..8fe8ea0e09e
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/french/latin9.pl
@@ -0,0 +1,146 @@
+#!/usr/bin/perl
+
+$language = "French";
+$prefix = "fr";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'],['',''],['',''],['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C'],['','']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'],['',''],['',''],['',''],['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I'], ['',''],['','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N'],['','']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'], ['',''],['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'],['',''],['',''],['','']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y'], ['','']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zs (hungarian)
+ [], # zh (albanian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+[['',''], 'after', [['a','e'], ['A','e']]],
+[['',''], 'after', [['o','e'], ['O','e']]]
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/general/cp1252.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/general/cp1252.pl
new file mode 100644
index 00000000000..eb1c5c60229
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/general/cp1252.pl
@@ -0,0 +1,150 @@
+#!/usr/bin/perl
+
+$language = "A general sorting order for Western European languages";
+$prefix = "xy";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'],['',''],['',''],['',''],['',''],['',''],
+ ['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C'],['','']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'],['',''],['',''],['',''],['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I'],['',''],['',''],['',''],['','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N'],['','']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'],['',''],['',''],['',''],['',''],['',''],
+ ['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S'],['','']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'],['',''],['',''],['',''],['',''],
+ ],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y'],['',''],['','']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z'],['','']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+[[''], 'after', [['s','s']]],
+[['',''], 'after', [['a','e'], ['A','e']]],
+[['',''], 'after', [['o','e'], ['O','e']]]
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/general/cp850.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/general/cp850.pl
new file mode 100644
index 00000000000..cbc98fee23f
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/general/cp850.pl
@@ -0,0 +1,150 @@
+#!/usr/bin/perl
+
+$language = "A general sorting order for Western European languages";
+$prefix = "xy";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'],['',''],['',''],['',''],['',''],['',''],
+ ['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C'],['','']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'],['',''],['',''],['',''],['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I'],['',''],['',''],['',''],['','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N'],['','']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'],['',''],['',''],['',''],['',''],['',''],
+ ['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'],['',''],['',''],['',''],['',''],
+ ],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y'],['',''],['']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+[[''], 'after', [['s','s']]],
+[['',''], 'after', [['a','e'], ['A','e']]],
+
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/general/latin1.xdy b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/general/latin1.xdy
new file mode 100644
index 00000000000..c6523c21917
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/general/latin1.xdy
@@ -0,0 +1,500 @@
+;; Rules for xindy; generated by make-rules.pl
+;; language: A general sorting order for Western European languages
+
+(define-letter-group "A" :prefixes (""))
+(define-letter-group "B" :after "A" :prefixes (""))
+(define-letter-group "C" :after "B" :prefixes (""))
+(define-letter-group "D" :after "C" :prefixes (""))
+(define-letter-group "E" :after "D" :prefixes (""))
+(define-letter-group "F" :after "E" :prefixes (""))
+(define-letter-group "G" :after "F" :prefixes (""))
+(define-letter-group "H" :after "G" :prefixes (""))
+(define-letter-group "I" :after "H" :prefixes (""))
+(define-letter-group "J" :after "I" :prefixes (""))
+(define-letter-group "K" :after "J" :prefixes (""))
+(define-letter-group "L" :after "K" :prefixes (""))
+(define-letter-group "M" :after "L" :prefixes (""))
+(define-letter-group "N" :after "M" :prefixes (""))
+(define-letter-group "O" :after "N" :prefixes (""))
+(define-letter-group "P" :after "O" :prefixes (""))
+(define-letter-group "Q" :after "P" :prefixes (""))
+(define-letter-group "R" :after "Q" :prefixes (""))
+(define-letter-group "S" :after "R" :prefixes (""))
+(define-letter-group "T" :after "S" :prefixes (""))
+(define-letter-group "U" :after "T" :prefixes (""))
+(define-letter-group "V" :after "U" :prefixes (""))
+(define-letter-group "W" :after "V" :prefixes (""))
+(define-letter-group "X" :after "W" :prefixes (""))
+(define-letter-group "Y" :after "X" :prefixes (""))
+(define-letter-group "Z" :after "Y" :prefixes (""))
+
+(define-rule-set "xy-alphabetize"
+
+ :rules (("" "" :string)
+ ("A" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("a" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("B" "" :string)
+ ("b" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("C" "" :string)
+ ("c" "" :string)
+ ("D" "" :string)
+ ("d" "" :string)
+ ("E" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("e" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("F" "" :string)
+ ("f" "" :string)
+ ("G" "" :string)
+ ("g" "" :string)
+ ("H" "" :string)
+ ("h" "" :string)
+ ("I" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("i" "" :string)
+ ("J" "" :string)
+ ("j" "" :string)
+ ("K" "" :string)
+ ("k" "" :string)
+ ("L" "" :string)
+ ("l" "" :string)
+ ("m" "" :string)
+ ("M" "" :string)
+ ("N" "" :string)
+ ("n" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("O" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("o" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("P" "" :string)
+ ("p" "" :string)
+ ("Q" "" :string)
+ ("q" "" :string)
+ ("r" "" :string)
+ ("R" "" :string)
+ ("s" "" :string)
+ ("S" "" :string)
+ ("" "" :string)
+ ("T" "" :string)
+ ("t" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("U" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("u" "" :string)
+ ("" "" :string)
+ ("v" "" :string)
+ ("V" "" :string)
+ ("w" "" :string)
+ ("W" "" :string)
+ ("x" "" :string)
+ ("X" "" :string)
+ ("" "" :string)
+ ("y" "" :string)
+ ("Y" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("z" "" :string)
+ ("Z" "" :string)
+ ))
+
+(define-rule-set "xy-resolve-diacritics"
+
+ :rules (("Z" "" :string)
+ ("t" "" :string)
+ ("A" "" :string)
+ ("B" "" :string)
+ ("l" "" :string)
+ ("C" "" :string)
+ ("k" "" :string)
+ ("D" "" :string)
+ ("j" "" :string)
+ ("E" "" :string)
+ ("u" "" :string)
+ ("i" "" :string)
+ ("F" "" :string)
+ ("G" "" :string)
+ ("v" "" :string)
+ ("H" "" :string)
+ ("w" "" :string)
+ ("I" "" :string)
+ ("x" "" :string)
+ ("J" "" :string)
+ ("h" "" :string)
+ ("K" "" :string)
+ ("y" "" :string)
+ ("L" "" :string)
+ ("a" "" :string)
+ ("M" "" :string)
+ ("z" "" :string)
+ ("N" "" :string)
+ ("g" "" :string)
+ ("O" "" :string)
+ ("f" "" :string)
+ ("P" "" :string)
+ ("Q" "" :string)
+ ("R" "" :string)
+ ("S" "" :string)
+ ("T" "" :string)
+ ("e" "" :string)
+ ("U" "" :string)
+ ("d" "" :string)
+ ("V" "" :string)
+ ("c" "" :string)
+ ("W" "" :string)
+ ("X" "" :string)
+ ("b" "" :string)
+ ("Y" "" :string)
+ ("m" "" :string)
+ ("n" "" :string)
+ ("o" "" :string)
+ ("p" "" :string)
+ ("q" "" :string)
+ ("r" "" :string)
+ ("s" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ))
+
+(define-rule-set "xy-resolve-case"
+
+ :rules (("" "8" :string)
+ ("" "8" :string)
+ ("A" "8" :string)
+ ("B" "8" :string)
+ ("" "8" :string)
+ ("C" "8" :string)
+ ("" "8" :string)
+ ("D" "8" :string)
+ ("" "8" :string)
+ ("E" "8" :string)
+ ("" "8" :string)
+ ("" "8" :string)
+ ("F" "8" :string)
+ ("G" "8" :string)
+ ("" "8" :string)
+ ("H" "8" :string)
+ ("" "8" :string)
+ ("I" "8" :string)
+ ("" "8" :string)
+ ("J" "8" :string)
+ ("" "8" :string)
+ ("K" "8" :string)
+ ("" "8" :string)
+ ("L" "8" :string)
+ ("" "8" :string)
+ ("M" "8" :string)
+ ("" "8" :string)
+ ("N" "8" :string)
+ ("" "8" :string)
+ ("O" "8" :string)
+ ("" "8" :string)
+ ("P" "8" :string)
+ ("Q" "8" :string)
+ ("" "8" :string)
+ ("R" "8" :string)
+ ("" "8" :string)
+ ("S" "8" :string)
+ ("" "8" :string)
+ ("T" "8" :string)
+ ("" "8" :string)
+ ("U" "8" :string)
+ ("" "8" :string)
+ ("V" "8" :string)
+ ("" "8" :string)
+ ("W" "8" :string)
+ ("X" "8" :string)
+ ("" "8" :string)
+ ("Y" "8" :string)
+ ("" "8" :string)
+ ("Z" "8" :string)
+ ("" "8" :string)
+ ("" "8" :string)
+ ("" "8" :string)
+ ("" "89" :string)
+ ("" "9" :string)
+ ("" "9" :string)
+ ("a" "9" :string)
+ ("b" "9" :string)
+ ("" "9" :string)
+ ("c" "9" :string)
+ ("" "9" :string)
+ ("d" "9" :string)
+ ("" "9" :string)
+ ("e" "9" :string)
+ ("" "9" :string)
+ ("f" "9" :string)
+ ("g" "9" :string)
+ ("" "9" :string)
+ ("h" "9" :string)
+ ("" "9" :string)
+ ("i" "9" :string)
+ ("" "9" :string)
+ ("j" "9" :string)
+ ("" "9" :string)
+ ("k" "9" :string)
+ ("" "9" :string)
+ ("l" "9" :string)
+ ("" "9" :string)
+ ("m" "9" :string)
+ ("" "9" :string)
+ ("n" "9" :string)
+ ("" "9" :string)
+ ("o" "9" :string)
+ ("" "9" :string)
+ ("p" "9" :string)
+ ("q" "9" :string)
+ ("" "9" :string)
+ ("r" "9" :string)
+ ("" "9" :string)
+ ("s" "9" :string)
+ ("" "9" :string)
+ ("t" "9" :string)
+ ("" "9" :string)
+ ("u" "9" :string)
+ ("" "9" :string)
+ ("v" "9" :string)
+ ("" "9" :string)
+ ("w" "9" :string)
+ ("x" "9" :string)
+ ("" "9" :string)
+ ("y" "9" :string)
+ ("" "9" :string)
+ ("z" "9" :string)
+ ("" "9" :string)
+ ("" "9" :string)
+ ("" "9" :string)
+ ("" "9" :string)
+ ("" "9" :string)
+ ("" "99" :string)
+ ("" "99" :string)
+ ))
+
+(define-rule-set "xy-ignore-special"
+
+ :rules (("!" "" :string)
+ ("'" "" :string)
+ ("-" "" :string)
+ ("." "" :string)
+ ("?" "" :string)
+ ))
+
+(define-rule-set "xy-resolve-special"
+
+ :rules (("?" "" :string)
+ ("!" "" :string)
+ ("." "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("A" "" :string)
+ ("B" "" :string)
+ ("" "" :string)
+ ("C" "" :string)
+ ("" "" :string)
+ ("D" "" :string)
+ ("" "" :string)
+ ("E" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("F" "" :string)
+ ("G" "" :string)
+ ("" "" :string)
+ ("H" "" :string)
+ ("" "" :string)
+ ("I" "" :string)
+ ("" "" :string)
+ ("J" "" :string)
+ ("" "" :string)
+ ("K" "" :string)
+ ("" "" :string)
+ ("L" "" :string)
+ ("" "" :string)
+ ("M" "" :string)
+ ("" "" :string)
+ ("N" "" :string)
+ ("" "" :string)
+ ("O" "" :string)
+ ("" "" :string)
+ ("P" "" :string)
+ ("Q" "" :string)
+ ("" "" :string)
+ ("R" "" :string)
+ ("" "" :string)
+ ("S" "" :string)
+ ("" "" :string)
+ ("T" "" :string)
+ ("" "" :string)
+ ("U" "" :string)
+ ("" "" :string)
+ ("V" "" :string)
+ ("" "" :string)
+ ("W" "" :string)
+ ("X" "" :string)
+ ("" "" :string)
+ ("Y" "" :string)
+ ("" "" :string)
+ ("Z" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("a" "" :string)
+ ("b" "" :string)
+ ("" "" :string)
+ ("c" "" :string)
+ ("" "" :string)
+ ("d" "" :string)
+ ("" "" :string)
+ ("e" "" :string)
+ ("" "" :string)
+ ("f" "" :string)
+ ("g" "" :string)
+ ("" "" :string)
+ ("h" "" :string)
+ ("" "" :string)
+ ("i" "" :string)
+ ("" "" :string)
+ ("j" "" :string)
+ ("" "" :string)
+ ("k" "" :string)
+ ("" "" :string)
+ ("l" "" :string)
+ ("" "" :string)
+ ("m" "" :string)
+ ("" "" :string)
+ ("n" "" :string)
+ ("" "" :string)
+ ("o" "" :string)
+ ("" "" :string)
+ ("p" "" :string)
+ ("q" "" :string)
+ ("" "" :string)
+ ("r" "" :string)
+ ("" "" :string)
+ ("s" "" :string)
+ ("" "" :string)
+ ("t" "" :string)
+ ("" "" :string)
+ ("u" "" :string)
+ ("" "" :string)
+ ("v" "" :string)
+ ("" "" :string)
+ ("w" "" :string)
+ ("x" "" :string)
+ ("" "" :string)
+ ("y" "" :string)
+ ("" "" :string)
+ ("z" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("-" "" :string)
+ ("'" "" :string)
+ ))
+
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/general/latin9.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/general/latin9.pl
new file mode 100644
index 00000000000..0be6256bd6c
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/general/latin9.pl
@@ -0,0 +1,150 @@
+#!/usr/bin/perl
+
+$language = "A general sorting order for Western European languages";
+$prefix = "xy";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'],['',''],['',''],['',''],['',''],['',''],
+ ['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C'],['','']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'],['',''],['',''],['',''],['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I'],['',''],['',''],['',''],['','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N'],['','']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'],['',''],['',''],['',''],['',''],['',''],
+ ['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S'],['','']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'],['',''],['',''],['',''],['',''],
+ ],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y'],['',''],['','']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z'],['','']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+[[''], 'after', [['s','s']]],
+[['',''], 'after', [['a','e'], ['A','e']]],
+[['',''], 'after', [['o','e'], ['O','e']]]
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/german/din5007-latin1.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/german/din5007-latin1.pl
new file mode 100644
index 00000000000..ee03c89ee51
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/german/din5007-latin1.pl
@@ -0,0 +1,149 @@
+#!/usr/bin/perl
+
+$language = "German";
+$variant = "DIN 5007";
+$prefix = "de";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'],['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+[[''], 'after', [['s','s']]],
+[['',''], 'after', [['a','e'], ['A','e']]],
+[['',''], 'after', [['o','e'], ['O','e']]],
+[['',''], 'after', [['u','e'], ['U','e']]]
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'', '{', '}');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/german/duden-latin1.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/german/duden-latin1.pl
new file mode 100644
index 00000000000..0b8d82d2532
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/german/duden-latin1.pl
@@ -0,0 +1,146 @@
+#!/usr/bin/perl
+
+$language = "German";
+$variant = "Duden";
+$prefix = "de";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'],[],[],[],[],[],[],[],['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'],['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'],[],[],[],[],[],[],[],['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'],[],[],[],[],[],[],[],['','']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+[[''], 'after', [['s','s']]],
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'', '{', '}');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/greek/iso88597.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/greek/iso88597.pl
new file mode 100644
index 00000000000..1e304dadec3
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/greek/iso88597.pl
@@ -0,0 +1,47 @@
+#!/usr/bin/perl
+
+$language = "Greek";
+$prefix = "el";
+$script = "greek";
+
+$alphabet = [
+['', ['', ''], ['','']],
+['', ['', '']],
+['', ['', '']],
+['', ['', '']],
+['', ['', ''], ['','']],
+['', ['', '']],
+ [],
+['', ['', ''], ['','']],
+['', ['', '']],
+['', ['', ''], ['',''], ['', ''], ['']],
+ [],
+['', ['', '']],
+['', ['', '']],
+['', ['', '']],
+['', ['', '']],
+['', ['', '']],
+['', ['', ''], ['','']],
+['', ['', '']],
+ [],
+['', ['', '']],
+['', ['', ''], ['']],
+['', ['', '']],
+['', ['', ''], ['',''], ['', ''], ['']],
+['', ['', '']],
+['', ['', '']],
+['', ['', '']],
+['', ['', ''], ['', '']]
+];
+
+@special = ('?', '!', '.', ';', '', 'letters', '-', '\'', '\\/');
+
+# first lower or upper case?
+
+$sortcase = "Aa";
+#$sortcase = "aA";
+
+#@letter_group_names = ('','','','','','','','','','','','',
+#'','','','','','','','','','','','');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/greek/translit-latin4.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/greek/translit-latin4.pl
new file mode 100644
index 00000000000..94c9c905d34
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/greek/translit-latin4.pl
@@ -0,0 +1,145 @@
+#!/usr/bin/perl
+
+$language = "Greek";
+$variant = "ISO transliteration, for western languages";
+$prefix = "el";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+ [], # c (many)
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'],['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+ [], # j (many)
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'],['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+ [], # q (many)
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+ [], # v (many)
+ [], # w (many)
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+ [], # y (many)
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+$sortcase = "Aa";
+#$sortcase = "aA";
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/greek/translit-tex.xdy b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/greek/translit-tex.xdy
new file mode 100644
index 00000000000..b7c36a03090
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/greek/translit-tex.xdy
@@ -0,0 +1,230 @@
+;; Rules for xindy; generated by make-rules.pl
+;; language: Greek
+
+(define-letter-group "A" :prefixes (""))
+(define-letter-group "B" :after "A" :prefixes (""))
+(define-letter-group "D" :after "B" :prefixes (""))
+(define-letter-group "E" :after "D" :prefixes (""))
+(define-letter-group "F" :after "E" :prefixes (""))
+(define-letter-group "G" :after "F" :prefixes (""))
+(define-letter-group "H" :after "G" :prefixes (""))
+(define-letter-group "I" :after "H" :prefixes (""))
+(define-letter-group "K" :after "I" :prefixes (""))
+(define-letter-group "L" :after "K" :prefixes (""))
+(define-letter-group "M" :after "L" :prefixes (""))
+(define-letter-group "N" :after "M" :prefixes (""))
+(define-letter-group "O" :after "N" :prefixes (""))
+(define-letter-group "P" :after "O" :prefixes (""))
+(define-letter-group "R" :after "P" :prefixes (""))
+(define-letter-group "S" :after "R" :prefixes (""))
+(define-letter-group "T" :after "S" :prefixes (""))
+(define-letter-group "U" :after "T" :prefixes (""))
+(define-letter-group "X" :after "U" :prefixes (""))
+(define-letter-group "Z" :after "X" :prefixes (""))
+
+(define-rule-set "el-alphabetize"
+
+ :rules (("\=e" "" :string)
+ ("\=E" "" :string)
+ ("\=O" "" :string)
+ ("\=o" "" :string)
+ ("A" "" :string)
+ ("a" "" :string)
+ ("B" "" :string)
+ ("b" "" :string)
+ ("D" "" :string)
+ ("d" "" :string)
+ ("E" "" :string)
+ ("e" "" :string)
+ ("F" "" :string)
+ ("f" "" :string)
+ ("G" "" :string)
+ ("g" "" :string)
+ ("H" "" :string)
+ ("h" "" :string)
+ ("I" "" :string)
+ ("i" "" :string)
+ ("K" "" :string)
+ ("k" "" :string)
+ ("L" "" :string)
+ ("l" "" :string)
+ ("M" "" :string)
+ ("m" "" :string)
+ ("N" "" :string)
+ ("n" "" :string)
+ ("O" "" :string)
+ ("o" "" :string)
+ ("P" "" :string)
+ ("p" "" :string)
+ ("R" "" :string)
+ ("r" "" :string)
+ ("S" "" :string)
+ ("s" "" :string)
+ ("T" "" :string)
+ ("t" "" :string)
+ ("u" "" :string)
+ ("U" "" :string)
+ ("X" "" :string)
+ ("x" "" :string)
+ ("Z" "" :string)
+ ("z" "" :string)
+ ))
+
+(define-rule-set "el-resolve-diacritics"
+
+ :rules (("\=O" "" :string)
+ ("\=e" "" :string)
+ ("\=o" "" :string)
+ ("\=E" "" :string)
+ ("D" "" :string)
+ ("E" "" :string)
+ ("F" "" :string)
+ ("G" "" :string)
+ ("H" "" :string)
+ ("I" "" :string)
+ ("K" "" :string)
+ ("L" "" :string)
+ ("M" "" :string)
+ ("N" "" :string)
+ ("O" "" :string)
+ ("P" "" :string)
+ ("R" "" :string)
+ ("S" "" :string)
+ ("T" "" :string)
+ ("U" "" :string)
+ ("X" "" :string)
+ ("Z" "" :string)
+ ("a" "" :string)
+ ("b" "" :string)
+ ("d" "" :string)
+ ("e" "" :string)
+ ("f" "" :string)
+ ("g" "" :string)
+ ("A" "" :string)
+ ("h" "" :string)
+ ("i" "" :string)
+ ("k" "" :string)
+ ("l" "" :string)
+ ("m" "" :string)
+ ("n" "" :string)
+ ("o" "" :string)
+ ("p" "" :string)
+ ("r" "" :string)
+ ("s" "" :string)
+ ("t" "" :string)
+ ("u" "" :string)
+ ("x" "" :string)
+ ("z" "" :string)
+ ("B" "" :string)
+ ))
+
+(define-rule-set "el-resolve-case"
+
+ :rules (("\=O" "8" :string)
+ ("\=E" "8" :string)
+ ("\=e" "9" :string)
+ ("\=o" "9" :string)
+ ("D" "8" :string)
+ ("E" "8" :string)
+ ("F" "8" :string)
+ ("G" "8" :string)
+ ("H" "8" :string)
+ ("I" "8" :string)
+ ("K" "8" :string)
+ ("L" "8" :string)
+ ("M" "8" :string)
+ ("N" "8" :string)
+ ("O" "8" :string)
+ ("P" "8" :string)
+ ("R" "8" :string)
+ ("S" "8" :string)
+ ("T" "8" :string)
+ ("U" "8" :string)
+ ("X" "8" :string)
+ ("Z" "8" :string)
+ ("A" "8" :string)
+ ("B" "8" :string)
+ ("d" "9" :string)
+ ("e" "9" :string)
+ ("f" "9" :string)
+ ("g" "9" :string)
+ ("a" "9" :string)
+ ("h" "9" :string)
+ ("i" "9" :string)
+ ("k" "9" :string)
+ ("l" "9" :string)
+ ("m" "9" :string)
+ ("n" "9" :string)
+ ("o" "9" :string)
+ ("p" "9" :string)
+ ("r" "9" :string)
+ ("s" "9" :string)
+ ("t" "9" :string)
+ ("u" "9" :string)
+ ("x" "9" :string)
+ ("z" "9" :string)
+ ("b" "9" :string)
+ ))
+
+(define-rule-set "el-ignore-special"
+
+ :rules (("!" "" :string)
+ ("'" "" :string)
+ ("-" "" :string)
+ ("." "" :string)
+ ("?" "" :string)
+ ))
+
+(define-rule-set "el-resolve-special"
+
+ :rules (("\=O" "" :string)
+ ("\=e" "" :string)
+ ("\=o" "" :string)
+ ("\=E" "" :string)
+ ("?" "" :string)
+ ("!" "" :string)
+ ("." "" :string)
+ ("F" "" :string)
+ ("G" "" :string)
+ ("H" "" :string)
+ ("I" "" :string)
+ ("K" "" :string)
+ ("L" "" :string)
+ ("M" "" :string)
+ ("N" "" :string)
+ ("O" "" :string)
+ ("P" "" :string)
+ ("R" "" :string)
+ ("S" "" :string)
+ ("T" "" :string)
+ ("U" "" :string)
+ ("X" "" :string)
+ ("Z" "" :string)
+ ("a" "" :string)
+ ("b" "" :string)
+ ("d" "" :string)
+ ("e" "" :string)
+ ("f" "" :string)
+ ("g" "" :string)
+ ("A" "" :string)
+ ("h" "" :string)
+ ("i" "" :string)
+ ("k" "" :string)
+ ("l" "" :string)
+ ("m" "" :string)
+ ("n" "" :string)
+ ("B" "" :string)
+ ("o" "" :string)
+ ("p" "" :string)
+ ("r" "" :string)
+ ("s" "" :string)
+ ("t" "" :string)
+ ("u" "" :string)
+ ("x" "" :string)
+ ("z" "" :string)
+ ("D" "" :string)
+ ("E" "" :string)
+ ("-" "" :string)
+ ("'" "" :string)
+ ))
+
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/hebrew/iso88598.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/hebrew/iso88598.pl
new file mode 100644
index 00000000000..a9d66cb9ef1
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/hebrew/iso88598.pl
@@ -0,0 +1,45 @@
+#!/usr/bin/perl
+
+$language = "Hebrew";
+$prefix = "iw";
+$script = "hebrew";
+
+$alphabet = [
+['', [''] ],
+['', [''] ],
+['', [''] ],
+['', [''] ],
+['', [''] ],
+['', [''] ],
+['', [''] ],
+['', ['']],
+['', [''] ],
+['', [''] ],
+['', ['',''] ],
+['', [''] ],
+['', ['',''] ],
+['', ['',''] ],
+['', [''] ],
+['', ['']],
+['', ['',''] ],
+['', ['',''] ],
+['', [''] ],
+['', [''] ],
+['', [''] ],
+['', [''] ]
+];
+
+$ligatures = [
+
+
+
+];
+
+@special = ('?', '!', '.', ';', '', 'letters', '-');
+
+# first lower or upper case?
+
+$sortcase = "Aa";
+#$sortcase = "aA";
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/hungarian/cp1250.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/hungarian/cp1250.pl
new file mode 100644
index 00000000000..acf1c224984
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/hungarian/cp1250.pl
@@ -0,0 +1,147 @@
+#!/usr/bin/perl
+
+# TODO: It seems that "ssz" has to be sorted like "szs" (?)
+# I don't know why, I don't know how...
+
+$language = "Hungarian";
+$prefix = "hu";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'],['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditional)
+['Cs', ['cs','Cs','CS']],
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+['D', ['dz','Dz','DZ']],
+['D', ['dzs','Dzs','DZs','DZS']],
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'],['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+['G', ['gy','Gy','GY']],
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I'],['','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+['L', ['ly','Ly','LY']],
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+['Ny', ['ny','Ny','NY']],
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'],['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+['', ['',''],['','']],
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+['Sz', ['sz','Sz','SZ']],
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+['T', ['ty','Ty','TY']],
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'],['','']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+['', ['',''],['','']],
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+['Zs', ['zs','Zs','ZS']],
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [] # a with ring above (icelandic)
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/hungarian/latin2.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/hungarian/latin2.pl
new file mode 100644
index 00000000000..acf1c224984
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/hungarian/latin2.pl
@@ -0,0 +1,147 @@
+#!/usr/bin/perl
+
+# TODO: It seems that "ssz" has to be sorted like "szs" (?)
+# I don't know why, I don't know how...
+
+$language = "Hungarian";
+$prefix = "hu";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'],['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditional)
+['Cs', ['cs','Cs','CS']],
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+['D', ['dz','Dz','DZ']],
+['D', ['dzs','Dzs','DZs','DZS']],
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'],['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+['G', ['gy','Gy','GY']],
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I'],['','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+['L', ['ly','Ly','LY']],
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+['Ny', ['ny','Ny','NY']],
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'],['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+['', ['',''],['','']],
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+['Sz', ['sz','Sz','SZ']],
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+['T', ['ty','Ty','TY']],
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'],['','']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+['', ['',''],['','']],
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+['Zs', ['zs','Zs','ZS']],
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [] # a with ring above (icelandic)
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/icelandic/cp1252.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/icelandic/cp1252.pl
new file mode 100644
index 00000000000..dd0bf0d4377
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/icelandic/cp1252.pl
@@ -0,0 +1,145 @@
+#!/usr/bin/perl
+
+$language = "Icelandic";
+$prefix = "is";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'],['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+['', ['','']],
+['E', ['e','E'],['',''],['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I'],['','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'],['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'],['',''],['','']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y'],['','']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+['', ['','']],
+ [], # wynn (english)
+['', ['',''],['',''],['','']],
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+['', ['',''],['','']],
+['', ['','']],
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+[[''], 'after', [['s','s']]]
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/icelandic/latin1.xdy b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/icelandic/latin1.xdy
new file mode 100644
index 00000000000..83828fa0e82
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/icelandic/latin1.xdy
@@ -0,0 +1,320 @@
+;; Rules for xindy; generated by make-rules.pl
+;; language: Icelandic
+
+(define-letter-group "A" :prefixes (""))
+(define-letter-group "B" :after "A" :prefixes (""))
+(define-letter-group "D" :after "B" :prefixes (""))
+(define-letter-group "" :after "D" :prefixes (""))
+(define-letter-group "E" :after "" :prefixes (""))
+(define-letter-group "F" :after "E" :prefixes (""))
+(define-letter-group "G" :after "F" :prefixes (""))
+(define-letter-group "H" :after "G" :prefixes (""))
+(define-letter-group "I" :after "H" :prefixes (""))
+(define-letter-group "J" :after "I" :prefixes (""))
+(define-letter-group "K" :after "J" :prefixes (""))
+(define-letter-group "L" :after "K" :prefixes (""))
+(define-letter-group "M" :after "L" :prefixes (""))
+(define-letter-group "N" :after "M" :prefixes (""))
+(define-letter-group "O" :after "N" :prefixes (""))
+(define-letter-group "P" :after "O" :prefixes (""))
+(define-letter-group "R" :after "P" :prefixes (""))
+(define-letter-group "S" :after "R" :prefixes (""))
+(define-letter-group "T" :after "S" :prefixes (""))
+(define-letter-group "U" :after "T" :prefixes (""))
+(define-letter-group "V" :after "U" :prefixes (""))
+(define-letter-group "X" :after "V" :prefixes (""))
+(define-letter-group "Y" :after "X" :prefixes (""))
+(define-letter-group "Z" :after "Y" :prefixes (""))
+(define-letter-group "" :after "Z" :prefixes (""))
+(define-letter-group "" :after "" :prefixes (""))
+
+(define-rule-set "is-alphabetize"
+
+ :rules (("A" "" :string)
+ ("" "" :string)
+ ("a" "" :string)
+ ("" "" :string)
+ ("B" "" :string)
+ ("b" "" :string)
+ ("d" "" :string)
+ ("D" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("e" "" :string)
+ ("E" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("F" "" :string)
+ ("f" "" :string)
+ ("G" "" :string)
+ ("g" "" :string)
+ ("H" "" :string)
+ ("h" "" :string)
+ ("" "" :string)
+ ("i" "" :string)
+ ("" "" :string)
+ ("I" "" :string)
+ ("J" "" :string)
+ ("j" "" :string)
+ ("k" "" :string)
+ ("K" "" :string)
+ ("l" "" :string)
+ ("L" "" :string)
+ ("M" "" :string)
+ ("m" "" :string)
+ ("n" "" :string)
+ ("N" "" :string)
+ ("O" "" :string)
+ ("o" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("p" "" :string)
+ ("P" "" :string)
+ ("r" "" :string)
+ ("R" "" :string)
+ ("S" "" :string)
+ ("s" "" :string)
+ ("" "" :string)
+ ("T" "" :string)
+ ("t" "" :string)
+ ("" "" :string)
+ ("U" "" :string)
+ ("" "" :string)
+ ("u" "" :string)
+ ("V" "" :string)
+ ("v" "" :string)
+ ("X" "" :string)
+ ("x" "" :string)
+ ("" "" :string)
+ ("y" "" :string)
+ ("Y" "" :string)
+ ("" "" :string)
+ ("Z" "" :string)
+ ("z" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ))
+
+(define-rule-set "is-resolve-diacritics"
+
+ :rules (("X" "" :string)
+ ("A" "" :string)
+ ("B" "" :string)
+ ("D" "" :string)
+ ("E" "" :string)
+ ("" "" :string)
+ ("F" "" :string)
+ ("G" "" :string)
+ ("H" "" :string)
+ ("I" "" :string)
+ ("Y" "" :string)
+ ("J" "" :string)
+ ("K" "" :string)
+ ("L" "" :string)
+ ("M" "" :string)
+ ("Z" "" :string)
+ ("N" "" :string)
+ ("O" "" :string)
+ ("P" "" :string)
+ ("" "" :string)
+ ("R" "" :string)
+ ("S" "" :string)
+ ("" "" :string)
+ ("T" "" :string)
+ ("U" "" :string)
+ ("V" "" :string)
+ ("a" "" :string)
+ ("b" "" :string)
+ ("d" "" :string)
+ ("e" "" :string)
+ ("" "" :string)
+ ("f" "" :string)
+ ("g" "" :string)
+ ("h" "" :string)
+ ("i" "" :string)
+ ("j" "" :string)
+ ("k" "" :string)
+ ("l" "" :string)
+ ("m" "" :string)
+ ("n" "" :string)
+ ("o" "" :string)
+ ("p" "" :string)
+ ("" "" :string)
+ ("r" "" :string)
+ ("s" "" :string)
+ ("t" "" :string)
+ ("u" "" :string)
+ ("v" "" :string)
+ ("x" "" :string)
+ ("y" "" :string)
+ ("z" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ))
+
+(define-rule-set "is-resolve-case"
+
+ :rules (("" "8" :string)
+ ("A" "8" :string)
+ ("B" "8" :string)
+ ("D" "8" :string)
+ ("E" "8" :string)
+ ("" "8" :string)
+ ("F" "8" :string)
+ ("G" "8" :string)
+ ("H" "8" :string)
+ ("I" "8" :string)
+ ("" "8" :string)
+ ("J" "8" :string)
+ ("K" "8" :string)
+ ("L" "8" :string)
+ ("M" "8" :string)
+ ("" "8" :string)
+ ("N" "8" :string)
+ ("O" "8" :string)
+ ("P" "8" :string)
+ ("" "8" :string)
+ ("R" "8" :string)
+ ("S" "8" :string)
+ ("" "8" :string)
+ ("T" "8" :string)
+ ("U" "8" :string)
+ ("V" "8" :string)
+ ("X" "8" :string)
+ ("Y" "8" :string)
+ ("Z" "8" :string)
+ ("" "8" :string)
+ ("" "8" :string)
+ ("" "8" :string)
+ ("" "9" :string)
+ ("a" "9" :string)
+ ("b" "9" :string)
+ ("d" "9" :string)
+ ("e" "9" :string)
+ ("" "9" :string)
+ ("f" "9" :string)
+ ("g" "9" :string)
+ ("h" "9" :string)
+ ("i" "9" :string)
+ ("" "9" :string)
+ ("j" "9" :string)
+ ("k" "9" :string)
+ ("l" "9" :string)
+ ("m" "9" :string)
+ ("" "9" :string)
+ ("n" "9" :string)
+ ("o" "9" :string)
+ ("p" "9" :string)
+ ("" "9" :string)
+ ("r" "9" :string)
+ ("s" "9" :string)
+ ("" "9" :string)
+ ("t" "9" :string)
+ ("u" "9" :string)
+ ("v" "9" :string)
+ ("x" "9" :string)
+ ("y" "9" :string)
+ ("z" "9" :string)
+ ("" "9" :string)
+ ("" "9" :string)
+ ("" "9" :string)
+ ("" "99" :string)
+ ))
+
+(define-rule-set "is-ignore-special"
+
+ :rules (("!" "" :string)
+ ("'" "" :string)
+ ("-" "" :string)
+ ("." "" :string)
+ ("?" "" :string)
+ ))
+
+(define-rule-set "is-resolve-special"
+
+ :rules (("?" "" :string)
+ ("!" "" :string)
+ ("." "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("A" "" :string)
+ ("B" "" :string)
+ ("D" "" :string)
+ ("E" "" :string)
+ ("" "" :string)
+ ("F" "" :string)
+ ("G" "" :string)
+ ("H" "" :string)
+ ("I" "" :string)
+ ("" "" :string)
+ ("J" "" :string)
+ ("K" "" :string)
+ ("L" "" :string)
+ ("M" "" :string)
+ ("" "" :string)
+ ("N" "" :string)
+ ("O" "" :string)
+ ("P" "" :string)
+ ("" "" :string)
+ ("R" "" :string)
+ ("S" "" :string)
+ ("" "" :string)
+ ("T" "" :string)
+ ("U" "" :string)
+ ("V" "" :string)
+ ("X" "" :string)
+ ("Y" "" :string)
+ ("Z" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("a" "" :string)
+ ("b" "" :string)
+ ("d" "" :string)
+ ("e" "" :string)
+ ("" "" :string)
+ ("f" "" :string)
+ ("g" "" :string)
+ ("h" "" :string)
+ ("i" "" :string)
+ ("" "" :string)
+ ("j" "" :string)
+ ("k" "" :string)
+ ("l" "" :string)
+ ("m" "" :string)
+ ("" "" :string)
+ ("n" "" :string)
+ ("o" "" :string)
+ ("p" "" :string)
+ ("" "" :string)
+ ("r" "" :string)
+ ("s" "" :string)
+ ("" "" :string)
+ ("t" "" :string)
+ ("u" "" :string)
+ ("v" "" :string)
+ ("x" "" :string)
+ ("y" "" :string)
+ ("z" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("-" "" :string)
+ ("'" "" :string)
+ ))
+
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/icelandic/latin9.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/icelandic/latin9.pl
new file mode 100644
index 00000000000..f0712f260e5
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/icelandic/latin9.pl
@@ -0,0 +1,145 @@
+#!/usr/bin/perl
+
+$language = "Icelandic";
+$prefix = "is";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'],['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+['', ['','']],
+['E', ['e','E'],['',''],['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I'],['','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'],['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'],['',''],['','']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y'],['','']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+['', ['','']],
+ [], # wynn (english)
+['', ['',''],['',''],['','']],
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+['', ['',''],['','']],
+['', ['','']],
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+[[''], 'after', [['s','s']]]
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/italian/latin1.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/italian/latin1.pl
new file mode 100644
index 00000000000..cf641534121
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/italian/latin1.pl
@@ -0,0 +1,145 @@
+#!/usr/bin/perl
+
+$language = "Italian";
+$prefix = "it";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'],[],[],['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'],[],['',''],['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I'],['',''],['',''],['','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'],[],['',''],['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'],['',''],['','']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zs (hungarian)
+ [], # zh (albanian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+[[''], 'after', [['s','s']]]
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/kurdish/bedirxan-latin5.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/kurdish/bedirxan-latin5.pl
new file mode 100644
index 00000000000..82e95dc5146
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/kurdish/bedirxan-latin5.pl
@@ -0,0 +1,145 @@
+#!/usr/bin/perl
+
+$language = "Kurdish";
+$variant = "Bedirxan";
+$prefix = "ku";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+['', ['','']],
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E']],
+ [], # e with caron (lower/upper sorbian)
+['', ['','']],
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I']],
+ [], # i with inverted breve below (gypsy/northrussian)
+['', ['','']],
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+ [], # q (many)
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+['', ['','']],
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U']],
+ [], # u with breve (esperanto)
+['', ['','']],
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/kurdish/latin5.xdy b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/kurdish/latin5.xdy
new file mode 100644
index 00000000000..2475b937df0
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/kurdish/latin5.xdy
@@ -0,0 +1,304 @@
+;; Rules for xindy; generated by make-rules.pl
+;; language: Kurdish
+
+(define-letter-group "A" :prefixes (""))
+(define-letter-group "B" :after "A" :prefixes (""))
+(define-letter-group "C" :after "B" :prefixes (""))
+(define-letter-group "" :after "C" :prefixes (""))
+(define-letter-group "D" :after "" :prefixes (""))
+(define-letter-group "E" :after "D" :prefixes (""))
+(define-letter-group "" :after "E" :prefixes (""))
+(define-letter-group "F" :after "" :prefixes (""))
+(define-letter-group "G" :after "F" :prefixes (""))
+(define-letter-group "H" :after "G" :prefixes (""))
+(define-letter-group "I" :after "H" :prefixes (""))
+(define-letter-group "" :after "I" :prefixes (""))
+(define-letter-group "J" :after "" :prefixes (""))
+(define-letter-group "K" :after "J" :prefixes (""))
+(define-letter-group "L" :after "K" :prefixes (""))
+(define-letter-group "M" :after "L" :prefixes (""))
+(define-letter-group "N" :after "M" :prefixes (""))
+(define-letter-group "O" :after "N" :prefixes (""))
+(define-letter-group "P" :after "O" :prefixes (""))
+(define-letter-group "R" :after "P" :prefixes (""))
+(define-letter-group "S" :after "R" :prefixes (""))
+(define-letter-group "" :after "S" :prefixes (""))
+(define-letter-group "T" :after "" :prefixes (""))
+(define-letter-group "U" :after "T" :prefixes (""))
+(define-letter-group "" :after "U" :prefixes (""))
+(define-letter-group "V" :after "" :prefixes (""))
+(define-letter-group "W" :after "V" :prefixes (""))
+(define-letter-group "X" :after "W" :prefixes (""))
+(define-letter-group "Y" :after "X" :prefixes (""))
+(define-letter-group "Z" :after "Y" :prefixes (""))
+
+(define-rule-set "ku-alphabetize"
+
+ :rules (("A" "" :string)
+ ("a" "" :string)
+ ("B" "" :string)
+ ("b" "" :string)
+ ("C" "" :string)
+ ("c" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("d" "" :string)
+ ("D" "" :string)
+ ("e" "" :string)
+ ("E" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("F" "" :string)
+ ("f" "" :string)
+ ("G" "" :string)
+ ("g" "" :string)
+ ("h" "" :string)
+ ("H" "" :string)
+ ("i" "" :string)
+ ("I" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("J" "" :string)
+ ("j" "" :string)
+ ("k" "" :string)
+ ("K" "" :string)
+ ("L" "" :string)
+ ("l" "" :string)
+ ("m" "" :string)
+ ("M" "" :string)
+ ("N" "" :string)
+ ("n" "" :string)
+ ("O" "" :string)
+ ("o" "" :string)
+ ("P" "" :string)
+ ("p" "" :string)
+ ("R" "" :string)
+ ("r" "" :string)
+ ("S" "" :string)
+ ("s" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("t" "" :string)
+ ("T" "" :string)
+ ("U" "" :string)
+ ("u" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("v" "" :string)
+ ("V" "" :string)
+ ("w" "" :string)
+ ("W" "" :string)
+ ("x" "" :string)
+ ("X" "" :string)
+ ("y" "" :string)
+ ("Y" "" :string)
+ ("Z" "" :string)
+ ("z" "" :string)
+ ))
+
+(define-rule-set "ku-resolve-diacritics"
+
+ :rules (("A" "" :string)
+ ("B" "" :string)
+ ("C" "" :string)
+ ("D" "" :string)
+ ("E" "" :string)
+ ("F" "" :string)
+ ("G" "" :string)
+ ("" "" :string)
+ ("H" "" :string)
+ ("I" "" :string)
+ ("J" "" :string)
+ ("" "" :string)
+ ("K" "" :string)
+ ("L" "" :string)
+ ("M" "" :string)
+ ("N" "" :string)
+ ("" "" :string)
+ ("O" "" :string)
+ ("P" "" :string)
+ ("R" "" :string)
+ ("S" "" :string)
+ ("T" "" :string)
+ ("U" "" :string)
+ ("V" "" :string)
+ ("W" "" :string)
+ ("X" "" :string)
+ ("Y" "" :string)
+ ("Z" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("a" "" :string)
+ ("b" "" :string)
+ ("c" "" :string)
+ ("d" "" :string)
+ ("e" "" :string)
+ ("f" "" :string)
+ ("g" "" :string)
+ ("" "" :string)
+ ("h" "" :string)
+ ("i" "" :string)
+ ("j" "" :string)
+ ("" "" :string)
+ ("k" "" :string)
+ ("l" "" :string)
+ ("m" "" :string)
+ ("n" "" :string)
+ ("" "" :string)
+ ("o" "" :string)
+ ("p" "" :string)
+ ("r" "" :string)
+ ("s" "" :string)
+ ("t" "" :string)
+ ("u" "" :string)
+ ("v" "" :string)
+ ("w" "" :string)
+ ("x" "" :string)
+ ("y" "" :string)
+ ("z" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ))
+
+(define-rule-set "ku-resolve-case"
+
+ :rules (("A" "8" :string)
+ ("B" "8" :string)
+ ("C" "8" :string)
+ ("D" "8" :string)
+ ("E" "8" :string)
+ ("F" "8" :string)
+ ("G" "8" :string)
+ ("" "8" :string)
+ ("H" "8" :string)
+ ("I" "8" :string)
+ ("J" "8" :string)
+ ("" "8" :string)
+ ("K" "8" :string)
+ ("L" "8" :string)
+ ("M" "8" :string)
+ ("N" "8" :string)
+ ("" "8" :string)
+ ("O" "8" :string)
+ ("P" "8" :string)
+ ("R" "8" :string)
+ ("S" "8" :string)
+ ("T" "8" :string)
+ ("U" "8" :string)
+ ("V" "8" :string)
+ ("W" "8" :string)
+ ("X" "8" :string)
+ ("Y" "8" :string)
+ ("Z" "8" :string)
+ ("" "8" :string)
+ ("" "8" :string)
+ ("a" "9" :string)
+ ("b" "9" :string)
+ ("c" "9" :string)
+ ("d" "9" :string)
+ ("e" "9" :string)
+ ("f" "9" :string)
+ ("g" "9" :string)
+ ("" "9" :string)
+ ("h" "9" :string)
+ ("i" "9" :string)
+ ("j" "9" :string)
+ ("" "9" :string)
+ ("k" "9" :string)
+ ("l" "9" :string)
+ ("m" "9" :string)
+ ("n" "9" :string)
+ ("" "9" :string)
+ ("o" "9" :string)
+ ("p" "9" :string)
+ ("r" "9" :string)
+ ("s" "9" :string)
+ ("t" "9" :string)
+ ("u" "9" :string)
+ ("v" "9" :string)
+ ("w" "9" :string)
+ ("x" "9" :string)
+ ("y" "9" :string)
+ ("z" "9" :string)
+ ("" "9" :string)
+ ("" "9" :string)
+ ))
+
+(define-rule-set "ku-ignore-special"
+
+ :rules (("!" "" :string)
+ ("'" "" :string)
+ ("-" "" :string)
+ ("." "" :string)
+ ("?" "" :string)
+ ))
+
+(define-rule-set "ku-resolve-special"
+
+ :rules (("?" "" :string)
+ ("!" "" :string)
+ ("." "" :string)
+ ("C" "" :string)
+ ("D" "" :string)
+ ("E" "" :string)
+ ("F" "" :string)
+ ("G" "" :string)
+ ("" "" :string)
+ ("H" "" :string)
+ ("I" "" :string)
+ ("J" "" :string)
+ ("" "" :string)
+ ("K" "" :string)
+ ("L" "" :string)
+ ("M" "" :string)
+ ("N" "" :string)
+ ("" "" :string)
+ ("O" "" :string)
+ ("P" "" :string)
+ ("R" "" :string)
+ ("S" "" :string)
+ ("T" "" :string)
+ ("U" "" :string)
+ ("V" "" :string)
+ ("W" "" :string)
+ ("X" "" :string)
+ ("Y" "" :string)
+ ("Z" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("a" "" :string)
+ ("b" "" :string)
+ ("c" "" :string)
+ ("d" "" :string)
+ ("e" "" :string)
+ ("f" "" :string)
+ ("g" "" :string)
+ ("" "" :string)
+ ("h" "" :string)
+ ("i" "" :string)
+ ("j" "" :string)
+ ("" "" :string)
+ ("k" "" :string)
+ ("l" "" :string)
+ ("m" "" :string)
+ ("n" "" :string)
+ ("" "" :string)
+ ("A" "" :string)
+ ("o" "" :string)
+ ("p" "" :string)
+ ("r" "" :string)
+ ("s" "" :string)
+ ("t" "" :string)
+ ("u" "" :string)
+ ("v" "" :string)
+ ("w" "" :string)
+ ("x" "" :string)
+ ("y" "" :string)
+ ("z" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("B" "" :string)
+ ("-" "" :string)
+ ("'" "" :string)
+ ))
+
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/kurdish/turkish-i-latin5.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/kurdish/turkish-i-latin5.pl
new file mode 100644
index 00000000000..612d0d6a42b
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/kurdish/turkish-i-latin5.pl
@@ -0,0 +1,145 @@
+#!/usr/bin/perl
+
+$language = "Kurdish";
+$variant = "Turkish i";
+$prefix = "ku";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+['', ['','']],
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E']],
+ [], # e with caron (lower/upper sorbian)
+['', ['','']],
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+['I', ['','I']],
+['', ['i','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+ [], # q (many)
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+['', ['','']],
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U']],
+ [], # u with breve (esperanto)
+['', ['','']],
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/latvian/latin4.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/latvian/latin4.pl
new file mode 100644
index 00000000000..ae2305ffd0d
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/latvian/latin4.pl
@@ -0,0 +1,145 @@
+#!/usr/bin/perl
+
+$language = "Latvian";
+$prefix = "lv";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'],['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+['', ['','']],
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'],['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+['', ['','']],
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I'],['y','Y'],['','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+['', ['','']],
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with caron (slovak/large)
+['', ['','']],
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+['', ['','']],
+['O', ['o','O'],['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+['', ['','']],
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+['', ['','']],
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'],['','']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+ [], # y (many)
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+['', ['','']],
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$ligatures = [
+[[''], 'after', [['s','s']]],
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+$sortcase = "Aa";
+#$sortcase = "aA";
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/lithuanian/latin4.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/lithuanian/latin4.pl
new file mode 100644
index 00000000000..2fcd174ada9
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/lithuanian/latin4.pl
@@ -0,0 +1,144 @@
+#!/usr/bin/perl
+
+$language = "Lithuanian";
+$prefix = "lt";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'],['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C'],['ch','Ch','CH']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+['', ['','']],
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'],['',''],['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I'],['',''],['y','Y']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+['', ['','']],
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'],['',''],['','']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+ [], # y (many)
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+['', ['','']],
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+$sortcase = "Aa";
+#$sortcase = "aA";
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/lower-sorbian/cp1250.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/lower-sorbian/cp1250.pl
new file mode 100644
index 00000000000..3710d5cd0d3
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/lower-sorbian/cp1250.pl
@@ -0,0 +1,145 @@
+#!/usr/bin/perl
+
+$language = "Lower Sorbian";
+$prefix = "s1";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (many)
+ [], # cs (hungarian)
+['', ['','']],
+['', ['','']],
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E']],
+['', ['','']],
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+['Ch', ['ch','Ch','CH']],
+ [], # dotless i (turkish)
+['I', ['i','I']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+['', ['','']],
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+['', ['','']],
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+['', ['','']],
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+['', ['','']],
+['', ['','']],
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+['', ['','']],
+['', ['','']],
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$ligatures = [
+[[''], 'after', [['s','s']]],
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+$sortcase = "Aa";
+#$sortcase = "aA";
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/lower-sorbian/latin2.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/lower-sorbian/latin2.pl
new file mode 100644
index 00000000000..e4ed97dec5e
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/lower-sorbian/latin2.pl
@@ -0,0 +1,145 @@
+#!/usr/bin/perl
+
+$language = "Lower Sorbian";
+$prefix = "s1";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (many)
+ [], # cs (hungarian)
+['', ['','']],
+['', ['','']],
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E']],
+['', ['','']],
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+['Ch', ['ch','Ch','CH']],
+ [], # dotless i (turkish)
+['I', ['i','I']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+['', ['','']],
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+['', ['','']],
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+['', ['','']],
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+['', ['','']],
+['', ['','']],
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+['', ['','']],
+['', ['','']],
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$ligatures = [
+[[''], 'after', [['s','s']]],
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+$sortcase = "Aa";
+#$sortcase = "aA";
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/macedonian/cp1251.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/macedonian/cp1251.pl
new file mode 100644
index 00000000000..a48acc17123
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/macedonian/cp1251.pl
@@ -0,0 +1,72 @@
+#!/usr/bin/perl
+
+$language = "Macedonian";
+$prefix = "mk";
+$script = "cyrillic";
+
+$alphabet = [
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # ghe with upturn (ukrainian)
+['', ['','']],
+ [], # dje (serbian)
+['', ['','']],
+['', ['','']],
+ [], # io (mongolian)
+ [], # ukrainian ie
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # belarusian-ukrainian i
+ [], # yi (ukrainian)
+ [], # short i (many)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # barred o (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # tshe (serbian)
+['', ['','']],
+['', ['','']],
+ [], # short u (belarusian)
+ [], # straight u (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # shcha (many)
+ [], # hard sign (bulgarian, russian)
+ [], # yeru (belarusian, russian)
+ [], # soft sign (many)
+ [],
+ [], # e (belarusian, russian)
+ [], # yu (many)
+ [], # ya (many)
+ [],
+ [],
+ [],
+ []
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/macedonian/iso88595.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/macedonian/iso88595.pl
new file mode 100644
index 00000000000..b2c3ebea89c
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/macedonian/iso88595.pl
@@ -0,0 +1,72 @@
+#!/usr/bin/perl
+
+$language = "Macedonian";
+$prefix = "mk";
+$script = "cyrillic";
+
+$alphabet = [
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # ghe with upturn (ukrainian)
+['', ['','']],
+ [], # dje (serbian)
+['', ['','']],
+['', ['','']],
+ [], # io (mongolian)
+ [], # ukrainian ie
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # belarusian-ukrainian i
+ [], # yi (ukrainian)
+ [], # short i (many)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # barred o (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # tshe (serbian)
+['', ['','']],
+['', ['','']],
+ [], # short u (belarusian)
+ [], # straight u (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # shcha (many)
+ [], # hard sign (bulgarian, russian)
+ [], # yeru (belarusian, russian)
+ [], # soft sign (many)
+ [],
+ [], # e (belarusian, russian)
+ [], # yu (many)
+ [], # ya (many)
+ [],
+ [],
+ [],
+ []
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/macedonian/isoir111.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/macedonian/isoir111.pl
new file mode 100644
index 00000000000..3740cf02c30
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/macedonian/isoir111.pl
@@ -0,0 +1,72 @@
+#!/usr/bin/perl
+
+$language = "Macedonian";
+$prefix = "mk";
+$script = "cyrillic";
+
+$alphabet = [
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # ghe with upturn (ukrainian)
+['', ['','']],
+ [], # dje (serbian)
+['', ['','']],
+['', ['','']],
+ [], # io (mongolian)
+ [], # ukrainian ie
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # belarusian-ukrainian i
+ [], # yi (ukrainian)
+ [], # short i (many)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # barred o (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # tshe (serbian)
+['', ['','']],
+['', ['','']],
+ [], # short u (belarusian)
+ [], # straight u (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # shcha (many)
+ [], # hard sign (bulgarian, russian)
+ [], # yeru (belarusian, russian)
+ [], # soft sign (many)
+ [],
+ [], # e (belarusian, russian)
+ [], # yu (many)
+ [], # ya (many)
+ [],
+ [],
+ [],
+ []
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/norwegian/latin1.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/norwegian/latin1.pl
new file mode 100644
index 00000000000..aec63a80ab9
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/norwegian/latin1.pl
@@ -0,0 +1,145 @@
+#!/usr/bin/perl
+
+$language = "Norwegian";
+$prefix = "no";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'],['',''],['',''],['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C'],['','']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'],['',''],['',''],['',''],['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'],['',''],['',''],['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y'],['','']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+['', ['',''],['','']],
+['', ['',''],['','']],
+['', ['','']],
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+[[''], 'after', [['s','s']]]
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/polish/cp1250.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/polish/cp1250.pl
new file mode 100644
index 00000000000..3d780ef7b5e
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/polish/cp1250.pl
@@ -0,0 +1,145 @@
+#!/usr/bin/perl
+
+$language = "Polish";
+$prefix = "pl";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+['', ['','']],
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+['', ['','']],
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+['', ['','']],
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with caron (slovak/large)
+ [], # l with cedilla/comma (latvian)
+['', ['','']],
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+['', ['','']],
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O']],
+['', ['','']],
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+['', ['','']],
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+['', ['','']],
+['', ['','']],
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$ligatures = [
+[[''], 'after', [['s','s']]],
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+$sortcase = "Aa";
+#$sortcase = "aA";
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/polish/latin2.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/polish/latin2.pl
new file mode 100644
index 00000000000..32cdec691bf
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/polish/latin2.pl
@@ -0,0 +1,145 @@
+#!/usr/bin/perl
+
+$language = "Polish";
+$prefix = "pl";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+['', ['','']],
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+['', ['','']],
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+['', ['','']],
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with caron (slovak/large)
+ [], # l with cedilla/comma (latvian)
+['', ['','']],
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+['', ['','']],
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O']],
+['', ['','']],
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+['', ['','']],
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+['', ['','']],
+['', ['','']],
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$ligatures = [
+[[''], 'after', [['s','s']]],
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+$sortcase = "Aa";
+#$sortcase = "aA";
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/portuguese/latin1.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/portuguese/latin1.pl
new file mode 100644
index 00000000000..89ca29650a6
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/portuguese/latin1.pl
@@ -0,0 +1,146 @@
+#!/usr/bin/perl
+
+$language = "Portuguese";
+$prefix = "pt";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'],['',''],['',''],['',''],['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C'],['','']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'],['',''],['',''],['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I'],['',''],['','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'],['',''],['',''],['',''],['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'],['',''],['',''],['','']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+[[''], 'after', [['s','s']]],
+[['',''], 'after', [['a','e'], ['A','e']]]
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/romanian/latin2.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/romanian/latin2.pl
new file mode 100644
index 00000000000..f3f23492fc6
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/romanian/latin2.pl
@@ -0,0 +1,144 @@
+#!/usr/bin/perl
+
+$language = "Romanian";
+$prefix = "ro";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A']],
+['', ['','']],
+['', ['','']],
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditonal)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I']],
+ [], # i with inverted breve below (gypsy/northrussian)
+['', ['','']],
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditonal)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+['', ['','']],
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+['', ['','']],
+ [], # c with acute (upper sorbian) @@
+['U', ['u','U']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/russian/cp1251.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/russian/cp1251.pl
new file mode 100644
index 00000000000..635466a39b6
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/russian/cp1251.pl
@@ -0,0 +1,72 @@
+#!/usr/bin/perl
+
+$language = "Russian";
+$prefix = "ru";
+$script = "cyrillic";
+
+$alphabet = [
+['', ['',''] ],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # ghe with upturn (ukrainian)
+['', ['','']],
+ [], # dje (serbian)
+ [], # gje (macedonian)
+['', ['',''], ['',''] ],
+ [], # io (mongolian)
+ [], # ukrainian ie
+['', ['','']],
+['', ['','']],
+ [], # dze (macedonian)
+['', ['','']],
+[],
+ [], # yi (ukrainian)
+['', ['','']],
+ [], # je (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+ [], # lje (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+ [], # nje (macedonian, serbian)
+['', ['','']],
+ [], # barred o (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # tshe (serbian)
+ [], # kje (macedonian)
+['', ['','']],
+ [], # short u (belarusian)
+ [], # straight u (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # dzhe (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+[],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [],
+ [],
+[],
+[]
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/russian/iso88595.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/russian/iso88595.pl
new file mode 100644
index 00000000000..d4b6327e6f0
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/russian/iso88595.pl
@@ -0,0 +1,72 @@
+#!/usr/bin/perl
+
+$language = "Russian";
+$prefix = "ru";
+$script = "cyrillic";
+
+$alphabet = [
+['', ['',''] ],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # ghe with upturn (ukrainian)
+['', ['','']],
+ [], # dje (serbian)
+ [], # gje (macedonian)
+['', ['',''], ['',''] ],
+ [], # io (mongolian)
+ [], # ukrainian ie
+['', ['','']],
+['', ['','']],
+ [], # dze (macedonian)
+['', ['','']],
+[],
+ [], # yi (ukrainian)
+['', ['','']],
+ [], # je (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+ [], # lje (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+ [], # nje (macedonian, serbian)
+['', ['','']],
+ [], # barred o (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # tshe (serbian)
+ [], # kje (macedonian)
+['', ['','']],
+ [], # short u (belarusian)
+ [], # straight u (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # dzhe (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+[],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [],
+ [],
+[],
+[]
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/russian/koi8-r.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/russian/koi8-r.pl
new file mode 100644
index 00000000000..06a0f78eceb
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/russian/koi8-r.pl
@@ -0,0 +1,72 @@
+#!/usr/bin/perl
+
+$language = "Russian";
+$prefix = "ru";
+$script = "cyrillic";
+
+$alphabet = [
+['', ['',''] ],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # ghe with upturn (ukrainian)
+['', ['','']],
+ [], # dje (serbian)
+ [], # gje (macedonian)
+['', ['',''], ['',''] ],
+ [], # io (mongolian)
+ [], # ukrainian ie
+['', ['','']],
+['', ['','']],
+ [], # dze (macedonian)
+['', ['','']],
+[],
+ [], # yi (ukrainian)
+['', ['','']],
+ [], # je (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+ [], # lje (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+ [], # nje (macedonian, serbian)
+['', ['','']],
+ [], # barred o (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # tshe (serbian)
+ [], # kje (macedonian)
+['', ['','']],
+ [], # short u (belarusian)
+ [], # straight u (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # dzhe (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+[],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [],
+ [],
+[],
+[]
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/russian/translit-iso-tex.xdy b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/russian/translit-iso-tex.xdy
new file mode 100644
index 00000000000..706bb59485e
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/russian/translit-iso-tex.xdy
@@ -0,0 +1,307 @@
+;; Rules for xindy; generated by make-rules.pl
+;; language: Russian
+
+(define-letter-group "A" :prefixes (""))
+(define-letter-group "B" :after "A" :prefixes (""))
+(define-letter-group "C" :after "B" :prefixes (""))
+(define-letter-group "D" :after "C" :prefixes (""))
+(define-letter-group "E" :after "D" :prefixes (""))
+(define-letter-group "F" :after "E" :prefixes (""))
+(define-letter-group "G" :after "F" :prefixes (""))
+(define-letter-group "H" :after "G" :prefixes (""))
+(define-letter-group "I" :after "H" :prefixes (""))
+(define-letter-group "J" :after "I" :prefixes (""))
+(define-letter-group "K" :after "J" :prefixes (""))
+(define-letter-group "L" :after "K" :prefixes (""))
+(define-letter-group "M" :after "L" :prefixes (""))
+(define-letter-group "N" :after "M" :prefixes (""))
+(define-letter-group "O" :after "N" :prefixes (""))
+(define-letter-group "P" :after "O" :prefixes (""))
+(define-letter-group "R" :after "P" :prefixes (""))
+(define-letter-group "S" :after "R" :prefixes (""))
+(define-letter-group "T" :after "S" :prefixes (""))
+(define-letter-group "U" :after "T" :prefixes (""))
+(define-letter-group "V" :after "U" :prefixes (""))
+(define-letter-group "Y" :after "V" :prefixes (""))
+(define-letter-group "Z" :after "Y" :prefixes (""))
+
+(define-rule-set "ru-alphabetize"
+
+ :rules (("\v C" "" :string)
+ ("\v c" "" :string)
+ ("\v s" "" :string)
+ ("\v S" "" :string)
+ ("\v z" "" :string)
+ ("\v Z" "" :string)
+ ("\^a" "" :string)
+ ("\^A" "" :string)
+ ("\`e" "" :string)
+ ("\`E" "" :string)
+ ("\~"E" "" :string)
+ ("\~"e" "" :string)
+ ("\^S" "" :string)
+ ("\^s" "" :string)
+ ("\^u" "" :string)
+ ("\^U" "" :string)
+ ("A" "" :string)
+ ("a" "" :string)
+ ("B" "" :string)
+ ("b" "" :string)
+ ("C" "" :string)
+ ("c" "" :string)
+ ("d" "" :string)
+ ("D" "" :string)
+ ("E" "" :string)
+ ("e" "" :string)
+ ("F" "" :string)
+ ("f" "" :string)
+ ("G" "" :string)
+ ("g" "" :string)
+ ("H" "" :string)
+ ("h" "" :string)
+ ("I" "" :string)
+ ("i" "" :string)
+ ("J" "" :string)
+ ("j" "" :string)
+ ("K" "" :string)
+ ("k" "" :string)
+ ("L" "" :string)
+ ("l" "" :string)
+ ("M" "" :string)
+ ("m" "" :string)
+ ("N" "" :string)
+ ("n" "" :string)
+ ("O" "" :string)
+ ("o" "" :string)
+ ("p" "" :string)
+ ("P" "" :string)
+ ("r" "" :string)
+ ("R" "" :string)
+ ("s" "" :string)
+ ("S" "" :string)
+ ("T" "" :string)
+ ("t" "" :string)
+ ("u" "" :string)
+ ("U" "" :string)
+ ("v" "" :string)
+ ("V" "" :string)
+ ("y" "" :string)
+ ("Y" "" :string)
+ ("Z" "" :string)
+ ("z" "" :string)
+ ))
+
+(define-rule-set "ru-resolve-diacritics"
+
+ :rules (("\v S" "" :string)
+ ("\v C" "" :string)
+ ("\v c" "" :string)
+ ("\v Z" "" :string)
+ ("\v z" "" :string)
+ ("\v s" "" :string)
+ ("\`E" "" :string)
+ ("\^u" "" :string)
+ ("\^U" "" :string)
+ ("\^A" "" :string)
+ ("\`e" "" :string)
+ ("\^a" "" :string)
+ ("\^S" "" :string)
+ ("\~"e" "" :string)
+ ("\~"E" "" :string)
+ ("\^s" "" :string)
+ ("B" "" :string)
+ ("C" "" :string)
+ ("D" "" :string)
+ ("E" "" :string)
+ ("F" "" :string)
+ ("G" "" :string)
+ ("H" "" :string)
+ ("I" "" :string)
+ ("J" "" :string)
+ ("K" "" :string)
+ ("L" "" :string)
+ ("M" "" :string)
+ ("N" "" :string)
+ ("O" "" :string)
+ ("P" "" :string)
+ ("R" "" :string)
+ ("S" "" :string)
+ ("T" "" :string)
+ ("b" "" :string)
+ ("c" "" :string)
+ ("d" "" :string)
+ ("Y" "" :string)
+ ("e" "" :string)
+ ("f" "" :string)
+ ("g" "" :string)
+ ("h" "" :string)
+ ("i" "" :string)
+ ("j" "" :string)
+ ("k" "" :string)
+ ("V" "" :string)
+ ("l" "" :string)
+ ("A" "" :string)
+ ("m" "" :string)
+ ("n" "" :string)
+ ("Z" "" :string)
+ ("o" "" :string)
+ ("p" "" :string)
+ ("r" "" :string)
+ ("s" "" :string)
+ ("t" "" :string)
+ ("u" "" :string)
+ ("U" "" :string)
+ ("v" "" :string)
+ ("y" "" :string)
+ ("z" "" :string)
+ ("a" "" :string)
+ ))
+
+(define-rule-set "ru-resolve-case"
+
+ :rules (("\v Z" "8" :string)
+ ("\v S" "8" :string)
+ ("\v C" "8" :string)
+ ("\v c" "9" :string)
+ ("\v s" "9" :string)
+ ("\v z" "9" :string)
+ ("\`E" "8" :string)
+ ("\^U" "8" :string)
+ ("\^S" "8" :string)
+ ("\~"E" "8" :string)
+ ("\^A" "8" :string)
+ ("\~"e" "9" :string)
+ ("\^s" "9" :string)
+ ("\^u" "9" :string)
+ ("\`e" "9" :string)
+ ("\^a" "9" :string)
+ ("A" "8" :string)
+ ("B" "8" :string)
+ ("C" "8" :string)
+ ("D" "8" :string)
+ ("E" "8" :string)
+ ("F" "8" :string)
+ ("G" "8" :string)
+ ("H" "8" :string)
+ ("I" "8" :string)
+ ("J" "8" :string)
+ ("K" "8" :string)
+ ("L" "8" :string)
+ ("M" "8" :string)
+ ("N" "8" :string)
+ ("O" "8" :string)
+ ("P" "8" :string)
+ ("R" "8" :string)
+ ("S" "8" :string)
+ ("Z" "8" :string)
+ ("Y" "8" :string)
+ ("V" "8" :string)
+ ("U" "8" :string)
+ ("T" "8" :string)
+ ("f" "9" :string)
+ ("g" "9" :string)
+ ("h" "9" :string)
+ ("i" "9" :string)
+ ("j" "9" :string)
+ ("k" "9" :string)
+ ("c" "9" :string)
+ ("l" "9" :string)
+ ("a" "9" :string)
+ ("m" "9" :string)
+ ("n" "9" :string)
+ ("b" "9" :string)
+ ("o" "9" :string)
+ ("p" "9" :string)
+ ("r" "9" :string)
+ ("s" "9" :string)
+ ("t" "9" :string)
+ ("u" "9" :string)
+ ("d" "9" :string)
+ ("v" "9" :string)
+ ("y" "9" :string)
+ ("z" "9" :string)
+ ("e" "9" :string)
+ ))
+
+(define-rule-set "ru-ignore-special"
+
+ :rules (("$''$" "" :string)
+ ("$'$" "" :string)
+ ("!" "" :string)
+ ("-" "" :string)
+ ("." "" :string)
+ ("?" "" :string)
+ ))
+
+(define-rule-set "ru-resolve-special"
+
+ :rules (("\v C" "" :string)
+ ("\v z" "" :string)
+ ("\v S" "" :string)
+ ("\v c" "" :string)
+ ("\v s" "" :string)
+ ("\v Z" "" :string)
+ ("$''$" "" :string)
+ ("\~"E" "" :string)
+ ("\^A" "" :string)
+ ("\^u" "" :string)
+ ("\^s" "" :string)
+ ("\`E" "" :string)
+ ("\^U" "" :string)
+ ("\~"e" "" :string)
+ ("\^S" "" :string)
+ ("\^a" "" :string)
+ ("\`e" "" :string)
+ ("$'$" "" :string)
+ ("?" "" :string)
+ ("!" "" :string)
+ ("." "" :string)
+ ("B" "" :string)
+ ("C" "" :string)
+ ("D" "" :string)
+ ("E" "" :string)
+ ("F" "" :string)
+ ("G" "" :string)
+ ("H" "" :string)
+ ("I" "" :string)
+ ("J" "" :string)
+ ("K" "" :string)
+ ("L" "" :string)
+ ("M" "" :string)
+ ("N" "" :string)
+ ("a" "" :string)
+ ("b" "" :string)
+ ("Z" "" :string)
+ ("c" "" :string)
+ ("d" "" :string)
+ ("Y" "" :string)
+ ("e" "" :string)
+ ("f" "" :string)
+ ("g" "" :string)
+ ("h" "" :string)
+ ("i" "" :string)
+ ("j" "" :string)
+ ("k" "" :string)
+ ("V" "" :string)
+ ("l" "" :string)
+ ("U" "" :string)
+ ("m" "" :string)
+ ("n" "" :string)
+ ("A" "" :string)
+ ("T" "" :string)
+ ("o" "" :string)
+ ("p" "" :string)
+ ("r" "" :string)
+ ("s" "" :string)
+ ("t" "" :string)
+ ("u" "" :string)
+ ("S" "" :string)
+ ("R" "" :string)
+ ("v" "" :string)
+ ("y" "" :string)
+ ("z" "" :string)
+ ("P" "" :string)
+ ("O" "" :string)
+ ("-" "" :string)
+ ))
+
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/russian/translit-tex.xdy b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/russian/translit-tex.xdy
new file mode 100644
index 00000000000..3c6b60dfe11
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/russian/translit-tex.xdy
@@ -0,0 +1,291 @@
+;; Rules for xindy; generated by make-rules.pl
+;; language: Russian
+
+(define-letter-group "A" :prefixes (""))
+(define-letter-group "B" :after "A" :prefixes (""))
+(define-letter-group "C" :after "B" :prefixes (""))
+(define-letter-group "D" :after "C" :prefixes (""))
+(define-letter-group "E" :after "D" :prefixes (""))
+(define-letter-group "F" :after "E" :prefixes (""))
+(define-letter-group "G" :after "F" :prefixes (""))
+(define-letter-group "H" :after "G" :prefixes (""))
+(define-letter-group "I" :after "H" :prefixes (""))
+(define-letter-group "J" :after "I" :prefixes (""))
+(define-letter-group "K" :after "J" :prefixes (""))
+(define-letter-group "L" :after "K" :prefixes (""))
+(define-letter-group "M" :after "L" :prefixes (""))
+(define-letter-group "N" :after "M" :prefixes (""))
+(define-letter-group "O" :after "N" :prefixes (""))
+(define-letter-group "P" :after "O" :prefixes (""))
+(define-letter-group "R" :after "P" :prefixes (""))
+(define-letter-group "S" :after "R" :prefixes (""))
+(define-letter-group "T" :after "S" :prefixes (""))
+(define-letter-group "U" :after "T" :prefixes (""))
+(define-letter-group "V" :after "U" :prefixes (""))
+(define-letter-group "Y" :after "V" :prefixes (""))
+(define-letter-group "Z" :after "Y" :prefixes (""))
+
+(define-rule-set "ru-alphabetize"
+
+ :rules (("\v c" "" :string)
+ ("\v C" "" :string)
+ ("\~"E" "" :string)
+ ("\~"e" "" :string)
+ ("\~"i" "" :string)
+ ("\~"I" "" :string)
+ ("\v s" "" :string)
+ ("\v S" "" :string)
+ ("\v z" "" :string)
+ ("\v Z" "" :string)
+ ("\.E" "" :string)
+ ("\.e" "" :string)
+ ("A" "" :string)
+ ("a" "" :string)
+ ("B" "" :string)
+ ("b" "" :string)
+ ("C" "" :string)
+ ("c" "" :string)
+ ("D" "" :string)
+ ("d" "" :string)
+ ("E" "" :string)
+ ("e" "" :string)
+ ("F" "" :string)
+ ("f" "" :string)
+ ("G" "" :string)
+ ("g" "" :string)
+ ("H" "" :string)
+ ("h" "" :string)
+ ("I" "" :string)
+ ("i" "" :string)
+ ("J" "" :string)
+ ("j" "" :string)
+ ("K" "" :string)
+ ("k" "" :string)
+ ("L" "" :string)
+ ("l" "" :string)
+ ("M" "" :string)
+ ("m" "" :string)
+ ("N" "" :string)
+ ("n" "" :string)
+ ("O" "" :string)
+ ("o" "" :string)
+ ("p" "" :string)
+ ("P" "" :string)
+ ("R" "" :string)
+ ("r" "" :string)
+ ("s" "" :string)
+ ("S" "" :string)
+ ("T" "" :string)
+ ("t" "" :string)
+ ("u" "" :string)
+ ("U" "" :string)
+ ("V" "" :string)
+ ("v" "" :string)
+ ("Y" "" :string)
+ ("y" "" :string)
+ ("Z" "" :string)
+ ("z" "" :string)
+ ))
+
+(define-rule-set "ru-resolve-diacritics"
+
+ :rules (("\~"i" "" :string)
+ ("\v c" "" :string)
+ ("\v z" "" :string)
+ ("\v C" "" :string)
+ ("\v Z" "" :string)
+ ("\v S" "" :string)
+ ("\~"I" "" :string)
+ ("\v s" "" :string)
+ ("\~"E" "" :string)
+ ("\~"e" "" :string)
+ ("\.E" "" :string)
+ ("\.e" "" :string)
+ ("F" "" :string)
+ ("G" "" :string)
+ ("H" "" :string)
+ ("I" "" :string)
+ ("J" "" :string)
+ ("K" "" :string)
+ ("L" "" :string)
+ ("M" "" :string)
+ ("N" "" :string)
+ ("O" "" :string)
+ ("P" "" :string)
+ ("R" "" :string)
+ ("S" "" :string)
+ ("T" "" :string)
+ ("U" "" :string)
+ ("V" "" :string)
+ ("Z" "" :string)
+ ("Y" "" :string)
+ ("a" "" :string)
+ ("b" "" :string)
+ ("c" "" :string)
+ ("d" "" :string)
+ ("A" "" :string)
+ ("B" "" :string)
+ ("e" "" :string)
+ ("f" "" :string)
+ ("g" "" :string)
+ ("h" "" :string)
+ ("i" "" :string)
+ ("j" "" :string)
+ ("k" "" :string)
+ ("C" "" :string)
+ ("l" "" :string)
+ ("m" "" :string)
+ ("n" "" :string)
+ ("o" "" :string)
+ ("D" "" :string)
+ ("p" "" :string)
+ ("r" "" :string)
+ ("s" "" :string)
+ ("t" "" :string)
+ ("u" "" :string)
+ ("E" "" :string)
+ ("v" "" :string)
+ ("y" "" :string)
+ ("z" "" :string)
+ ))
+
+(define-rule-set "ru-resolve-case"
+
+ :rules (("\~"E" "8" :string)
+ ("\v S" "8" :string)
+ ("\~"I" "8" :string)
+ ("\v C" "8" :string)
+ ("\v Z" "8" :string)
+ ("\v c" "9" :string)
+ ("\v s" "9" :string)
+ ("\~"e" "9" :string)
+ ("\~"i" "9" :string)
+ ("\v z" "9" :string)
+ ("\.E" "8" :string)
+ ("\.e" "9" :string)
+ ("F" "8" :string)
+ ("G" "8" :string)
+ ("H" "8" :string)
+ ("I" "8" :string)
+ ("J" "8" :string)
+ ("K" "8" :string)
+ ("L" "8" :string)
+ ("M" "8" :string)
+ ("N" "8" :string)
+ ("O" "8" :string)
+ ("P" "8" :string)
+ ("R" "8" :string)
+ ("S" "8" :string)
+ ("T" "8" :string)
+ ("U" "8" :string)
+ ("V" "8" :string)
+ ("Z" "8" :string)
+ ("Y" "8" :string)
+ ("A" "8" :string)
+ ("B" "8" :string)
+ ("C" "8" :string)
+ ("D" "8" :string)
+ ("E" "8" :string)
+ ("b" "9" :string)
+ ("e" "9" :string)
+ ("f" "9" :string)
+ ("g" "9" :string)
+ ("h" "9" :string)
+ ("i" "9" :string)
+ ("j" "9" :string)
+ ("k" "9" :string)
+ ("c" "9" :string)
+ ("l" "9" :string)
+ ("m" "9" :string)
+ ("n" "9" :string)
+ ("o" "9" :string)
+ ("d" "9" :string)
+ ("p" "9" :string)
+ ("r" "9" :string)
+ ("s" "9" :string)
+ ("t" "9" :string)
+ ("u" "9" :string)
+ ("a" "9" :string)
+ ("v" "9" :string)
+ ("y" "9" :string)
+ ("z" "9" :string)
+ ))
+
+(define-rule-set "ru-ignore-special"
+
+ :rules (("$''$" "" :string)
+ ("$'$" "" :string)
+ ("!" "" :string)
+ ("-" "" :string)
+ ("." "" :string)
+ ("?" "" :string)
+ ))
+
+(define-rule-set "ru-resolve-special"
+
+ :rules (("\~"E" "" :string)
+ ("\v c" "" :string)
+ ("\v z" "" :string)
+ ("\~"i" "" :string)
+ ("\v Z" "" :string)
+ ("\v S" "" :string)
+ ("\~"I" "" :string)
+ ("\v s" "" :string)
+ ("\~"e" "" :string)
+ ("\v C" "" :string)
+ ("$''$" "" :string)
+ ("\.E" "" :string)
+ ("\.e" "" :string)
+ ("$'$" "" :string)
+ ("?" "" :string)
+ ("!" "" :string)
+ ("." "" :string)
+ ("B" "" :string)
+ ("C" "" :string)
+ ("D" "" :string)
+ ("E" "" :string)
+ ("F" "" :string)
+ ("G" "" :string)
+ ("H" "" :string)
+ ("I" "" :string)
+ ("J" "" :string)
+ ("K" "" :string)
+ ("L" "" :string)
+ ("M" "" :string)
+ ("N" "" :string)
+ ("O" "" :string)
+ ("P" "" :string)
+ ("a" "" :string)
+ ("b" "" :string)
+ ("c" "" :string)
+ ("d" "" :string)
+ ("Z" "" :string)
+ ("Y" "" :string)
+ ("e" "" :string)
+ ("f" "" :string)
+ ("g" "" :string)
+ ("h" "" :string)
+ ("i" "" :string)
+ ("j" "" :string)
+ ("k" "" :string)
+ ("V" "" :string)
+ ("l" "" :string)
+ ("m" "" :string)
+ ("n" "" :string)
+ ("A" "" :string)
+ ("o" "" :string)
+ ("U" "" :string)
+ ("p" "" :string)
+ ("r" "" :string)
+ ("s" "" :string)
+ ("t" "" :string)
+ ("u" "" :string)
+ ("T" "" :string)
+ ("S" "" :string)
+ ("v" "" :string)
+ ("y" "" :string)
+ ("z" "" :string)
+ ("R" "" :string)
+ ("-" "" :string)
+ ))
+
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/russian/translit-tgl-tex.xdy b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/russian/translit-tgl-tex.xdy
new file mode 100644
index 00000000000..9351782bc7e
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/russian/translit-tgl-tex.xdy
@@ -0,0 +1,315 @@
+;; Rules for xindy; generated by make-rules.pl
+;; language: Russian
+
+(define-letter-group "A" :prefixes (""))
+(define-letter-group "B" :after "A" :prefixes (""))
+(define-letter-group "C" :after "B" :prefixes (""))
+(define-letter-group "D" :after "C" :prefixes (""))
+(define-letter-group "E" :after "D" :prefixes (""))
+(define-letter-group "F" :after "E" :prefixes (""))
+(define-letter-group "G" :after "F" :prefixes (""))
+(define-letter-group "H" :after "G" :prefixes (""))
+(define-letter-group "I" :after "H" :prefixes (""))
+(define-letter-group "J" :after "I" :prefixes (""))
+(define-letter-group "K" :after "J" :prefixes (""))
+(define-letter-group "L" :after "K" :prefixes (""))
+(define-letter-group "M" :after "L" :prefixes (""))
+(define-letter-group "N" :after "M" :prefixes (""))
+(define-letter-group "O" :after "N" :prefixes (""))
+(define-letter-group "P" :after "O" :prefixes (""))
+(define-letter-group "R" :after "P" :prefixes (""))
+(define-letter-group "S" :after "R" :prefixes (""))
+(define-letter-group "T" :after "S" :prefixes (""))
+(define-letter-group "U" :after "T" :prefixes (""))
+(define-letter-group "V" :after "U" :prefixes (""))
+(define-letter-group "Y" :after "V" :prefixes (""))
+(define-letter-group "Z" :after "Y" :prefixes (""))
+
+(define-rule-set "ru-alphabetize"
+
+ :rules (("\v c" "" :string)
+ ("\v C" "" :string)
+ ("\~"E" "" :string)
+ ("\~"e" "" :string)
+ ("\~"i" "" :string)
+ ("\~"I" "" :string)
+ ("\v S" "" :string)
+ ("\v s" "" :string)
+ ("\v z" "" :string)
+ ("\v Z" "" :string)
+ ("\^A" "" :string)
+ ("\^a" "" :string)
+ ("\.E" "" :string)
+ ("\.e" "" :string)
+ ("\^S" "" :string)
+ ("\^s" "" :string)
+ ("\^U" "" :string)
+ ("\^u" "" :string)
+ ("A" "" :string)
+ ("a" "" :string)
+ ("B" "" :string)
+ ("b" "" :string)
+ ("C" "" :string)
+ ("c" "" :string)
+ ("D" "" :string)
+ ("d" "" :string)
+ ("e" "" :string)
+ ("E" "" :string)
+ ("F" "" :string)
+ ("f" "" :string)
+ ("G" "" :string)
+ ("g" "" :string)
+ ("H" "" :string)
+ ("h" "" :string)
+ ("I" "" :string)
+ ("i" "" :string)
+ ("J" "" :string)
+ ("j" "" :string)
+ ("K" "" :string)
+ ("k" "" :string)
+ ("L" "" :string)
+ ("l" "" :string)
+ ("M" "" :string)
+ ("m" "" :string)
+ ("n" "" :string)
+ ("N" "" :string)
+ ("o" "" :string)
+ ("O" "" :string)
+ ("p" "" :string)
+ ("P" "" :string)
+ ("R" "" :string)
+ ("r" "" :string)
+ ("S" "" :string)
+ ("s" "" :string)
+ ("T" "" :string)
+ ("t" "" :string)
+ ("U" "" :string)
+ ("u" "" :string)
+ ("V" "" :string)
+ ("v" "" :string)
+ ("y" "" :string)
+ ("Y" "" :string)
+ ("Z" "" :string)
+ ("z" "" :string)
+ ))
+
+(define-rule-set "ru-resolve-diacritics"
+
+ :rules (("\v c" "" :string)
+ ("\v s" "" :string)
+ ("\~"i" "" :string)
+ ("\v C" "" :string)
+ ("\v z" "" :string)
+ ("\v S" "" :string)
+ ("\~"I" "" :string)
+ ("\v Z" "" :string)
+ ("\~"E" "" :string)
+ ("\~"e" "" :string)
+ ("\^u" "" :string)
+ ("\.e" "" :string)
+ ("\^A" "" :string)
+ ("\^U" "" :string)
+ ("\^a" "" :string)
+ ("\.E" "" :string)
+ ("\^S" "" :string)
+ ("\^s" "" :string)
+ ("B" "" :string)
+ ("C" "" :string)
+ ("D" "" :string)
+ ("E" "" :string)
+ ("F" "" :string)
+ ("G" "" :string)
+ ("H" "" :string)
+ ("I" "" :string)
+ ("J" "" :string)
+ ("K" "" :string)
+ ("L" "" :string)
+ ("M" "" :string)
+ ("N" "" :string)
+ ("O" "" :string)
+ ("P" "" :string)
+ ("R" "" :string)
+ ("S" "" :string)
+ ("c" "" :string)
+ ("d" "" :string)
+ ("Y" "" :string)
+ ("V" "" :string)
+ ("e" "" :string)
+ ("f" "" :string)
+ ("g" "" :string)
+ ("h" "" :string)
+ ("i" "" :string)
+ ("j" "" :string)
+ ("k" "" :string)
+ ("U" "" :string)
+ ("l" "" :string)
+ ("A" "" :string)
+ ("m" "" :string)
+ ("n" "" :string)
+ ("Z" "" :string)
+ ("o" "" :string)
+ ("a" "" :string)
+ ("p" "" :string)
+ ("r" "" :string)
+ ("s" "" :string)
+ ("t" "" :string)
+ ("u" "" :string)
+ ("T" "" :string)
+ ("v" "" :string)
+ ("y" "" :string)
+ ("z" "" :string)
+ ("b" "" :string)
+ ))
+
+(define-rule-set "ru-resolve-case"
+
+ :rules (("\~"E" "8" :string)
+ ("\v Z" "8" :string)
+ ("\v C" "8" :string)
+ ("\v S" "8" :string)
+ ("\~"I" "8" :string)
+ ("\v z" "9" :string)
+ ("\v c" "9" :string)
+ ("\~"i" "9" :string)
+ ("\v s" "9" :string)
+ ("\~"e" "9" :string)
+ ("\^S" "8" :string)
+ ("\^U" "8" :string)
+ ("\.E" "8" :string)
+ ("\^A" "8" :string)
+ ("\.e" "9" :string)
+ ("\^a" "9" :string)
+ ("\^s" "9" :string)
+ ("\^u" "9" :string)
+ ("A" "8" :string)
+ ("B" "8" :string)
+ ("C" "8" :string)
+ ("D" "8" :string)
+ ("E" "8" :string)
+ ("F" "8" :string)
+ ("G" "8" :string)
+ ("H" "8" :string)
+ ("I" "8" :string)
+ ("J" "8" :string)
+ ("K" "8" :string)
+ ("L" "8" :string)
+ ("M" "8" :string)
+ ("N" "8" :string)
+ ("O" "8" :string)
+ ("P" "8" :string)
+ ("R" "8" :string)
+ ("Y" "8" :string)
+ ("V" "8" :string)
+ ("U" "8" :string)
+ ("Z" "8" :string)
+ ("T" "8" :string)
+ ("S" "8" :string)
+ ("g" "9" :string)
+ ("h" "9" :string)
+ ("i" "9" :string)
+ ("j" "9" :string)
+ ("k" "9" :string)
+ ("c" "9" :string)
+ ("l" "9" :string)
+ ("d" "9" :string)
+ ("m" "9" :string)
+ ("n" "9" :string)
+ ("a" "9" :string)
+ ("o" "9" :string)
+ ("b" "9" :string)
+ ("p" "9" :string)
+ ("r" "9" :string)
+ ("s" "9" :string)
+ ("t" "9" :string)
+ ("u" "9" :string)
+ ("e" "9" :string)
+ ("v" "9" :string)
+ ("y" "9" :string)
+ ("z" "9" :string)
+ ("f" "9" :string)
+ ))
+
+(define-rule-set "ru-ignore-special"
+
+ :rules (("$''$" "" :string)
+ ("$'$" "" :string)
+ ("!" "" :string)
+ ("-" "" :string)
+ ("." "" :string)
+ ("?" "" :string)
+ ))
+
+(define-rule-set "ru-resolve-special"
+
+ :rules (("\~"E" "" :string)
+ ("\~"I" "" :string)
+ ("\v C" "" :string)
+ ("\~"e" "" :string)
+ ("\v Z" "" :string)
+ ("\~"i" "" :string)
+ ("\v c" "" :string)
+ ("\v S" "" :string)
+ ("\v s" "" :string)
+ ("\v z" "" :string)
+ ("$''$" "" :string)
+ ("\^A" "" :string)
+ ("\^S" "" :string)
+ ("\^U" "" :string)
+ ("\^a" "" :string)
+ ("\.E" "" :string)
+ ("\.e" "" :string)
+ ("\^s" "" :string)
+ ("\^u" "" :string)
+ ("$'$" "" :string)
+ ("?" "" :string)
+ ("!" "" :string)
+ ("." "" :string)
+ ("F" "" :string)
+ ("G" "" :string)
+ ("H" "" :string)
+ ("I" "" :string)
+ ("J" "" :string)
+ ("K" "" :string)
+ ("L" "" :string)
+ ("M" "" :string)
+ ("N" "" :string)
+ ("O" "" :string)
+ ("P" "" :string)
+ ("R" "" :string)
+ ("S" "" :string)
+ ("T" "" :string)
+ ("U" "" :string)
+ ("V" "" :string)
+ ("Y" "" :string)
+ ("Z" "" :string)
+ ("A" "" :string)
+ ("a" "" :string)
+ ("b" "" :string)
+ ("c" "" :string)
+ ("d" "" :string)
+ ("e" "" :string)
+ ("B" "" :string)
+ ("f" "" :string)
+ ("g" "" :string)
+ ("h" "" :string)
+ ("i" "" :string)
+ ("j" "" :string)
+ ("k" "" :string)
+ ("C" "" :string)
+ ("l" "" :string)
+ ("m" "" :string)
+ ("D" "" :string)
+ ("n" "" :string)
+ ("o" "" :string)
+ ("E" "" :string)
+ ("p" "" :string)
+ ("r" "" :string)
+ ("s" "" :string)
+ ("t" "" :string)
+ ("u" "" :string)
+ ("v" "" :string)
+ ("y" "" :string)
+ ("z" "" :string)
+ ("-" "" :string)
+ ))
+
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/serbian/cp1251.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/serbian/cp1251.pl
new file mode 100644
index 00000000000..926388183df
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/serbian/cp1251.pl
@@ -0,0 +1,72 @@
+#!/usr/bin/perl
+
+$language = "Serbian";
+$prefix = "sr";
+$script = "cyrillic";
+
+$alphabet = [
+['', ['',''] ],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # ghe with upturn (ukrainian)
+['', ['','']],
+['', ['','']],
+ [], # gje (macedonian)
+['', ['',''] ],
+ [], # io (mongolian)
+ [], # ukrainian ie
+['', ['','']],
+['', ['','']],
+ [], # dze (macedonian)
+['', ['',''] ],
+ [], # belarusian-ukrainian i
+ [], # yi (ukrainian)
+ [], # short i (many)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['',''] ],
+ [], # barred o (mongolian)
+['', ['','']],
+['', ['',''] ],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # kje (macedonian)
+['', ['',''] ],
+ [], # short u (belarusian)
+ [], # straight u (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # shcha (many)
+ [], # hard sign (bulgarian, russian)
+ [], # yeru (belarusian, russian)
+ [], # soft sign (many)
+ [],
+ [], # e (belarusian, russian)
+ [], # yu (many)
+ [], # ya (many)
+ [], # soft sign (ukrainian)
+ [],
+ [],
+ []
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/serbian/iso88595.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/serbian/iso88595.pl
new file mode 100644
index 00000000000..e23b9832236
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/serbian/iso88595.pl
@@ -0,0 +1,72 @@
+#!/usr/bin/perl
+
+$language = "Serbian";
+$prefix = "sr";
+$script = "cyrillic";
+
+$alphabet = [
+['', ['',''] ],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # ghe with upturn (ukrainian)
+['', ['','']],
+['', ['','']],
+ [], # gje (macedonian)
+['', ['',''] ],
+ [], # io (mongolian)
+ [], # ukrainian ie
+['', ['','']],
+['', ['','']],
+ [], # dze (macedonian)
+['', ['',''] ],
+ [], # belarusian-ukrainian i
+ [], # yi (ukrainian)
+ [], # short i (many)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['',''] ],
+ [], # barred o (mongolian)
+['', ['','']],
+['', ['',''] ],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # kje (macedonian)
+['', ['',''] ],
+ [], # short u (belarusian)
+ [], # straight u (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # shcha (many)
+ [], # hard sign (bulgarian, russian)
+ [], # yeru (belarusian, russian)
+ [], # soft sign (many)
+ [],
+ [], # e (belarusian, russian)
+ [], # yu (many)
+ [], # ya (many)
+ [], # soft sign (ukrainian)
+ [],
+ [],
+ []
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/serbian/isoir111.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/serbian/isoir111.pl
new file mode 100644
index 00000000000..eb8a377e264
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/serbian/isoir111.pl
@@ -0,0 +1,72 @@
+#!/usr/bin/perl
+
+$language = "Serbian";
+$prefix = "sr";
+$script = "cyrillic";
+
+$alphabet = [
+['', ['',''] ],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # ghe with upturn (ukrainian)
+['', ['','']],
+['', ['','']],
+ [], # gje (macedonian)
+['', ['',''] ],
+ [], # io (mongolian)
+ [], # ukrainian ie
+['', ['','']],
+['', ['','']],
+ [], # dze (macedonian)
+['', ['',''] ],
+ [], # belarusian-ukrainian i
+ [], # yi (ukrainian)
+ [], # short i (many)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['',''] ],
+ [], # barred o (mongolian)
+['', ['','']],
+['', ['',''] ],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # kje (macedonian)
+['', ['',''] ],
+ [], # short u (belarusian)
+ [], # straight u (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # shcha (many)
+ [], # hard sign (bulgarian, russian)
+ [], # yeru (belarusian, russian)
+ [], # soft sign (many)
+ [],
+ [], # e (belarusian, russian)
+ [], # yu (many)
+ [], # ya (many)
+ [], # soft sign (ukrainian)
+ [],
+ [],
+ []
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/slovak/large-cp1250.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/slovak/large-cp1250.pl
new file mode 100644
index 00000000000..037a8589c6b
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/slovak/large-cp1250.pl
@@ -0,0 +1,146 @@
+#!/usr/bin/perl
+
+$language = "Slovak";
+$variant = "large";
+$prefix = "sk";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'], ['',''], ['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+['', ['','']],
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+['', ['','']],
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'], ['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+['Ch', ['ch','Ch','CH']],
+ [], # dotless i (turkish)
+['I', ['i','I'], ['','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L'], ['','']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+['', ['','']],
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+['', ['','']],
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'], ['',''], ['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R'], ['','']],
+ [], # rr (albanian)
+['', ['','']],
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+['', ['','']],
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+['', ['','']],
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'], ['','']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y'], ['','']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+['', ['','']],
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$ligatures = [
+[[''], 'after', [['s','s']]],
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+$sortcase = "Aa";
+#$sortcase = "aA";
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/slovak/large-latin2.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/slovak/large-latin2.pl
new file mode 100644
index 00000000000..14f0a0e5617
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/slovak/large-latin2.pl
@@ -0,0 +1,146 @@
+#!/usr/bin/perl
+
+$language = "Slovak";
+$variant = "large";
+$prefix = "sk";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'], ['',''], ['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+['', ['','']],
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+['', ['','']],
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'], ['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+['Ch', ['ch','Ch','CH']],
+ [], # dotless i (turkish)
+['I', ['i','I'], ['','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L'], ['','']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+['', ['','']],
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+['', ['','']],
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'], ['',''], ['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R'], ['','']],
+ [], # rr (albanian)
+['', ['','']],
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+['', ['','']],
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+['', ['','']],
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'], ['','']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y'], ['','']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+['', ['','']],
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$ligatures = [
+[[''], 'after', [['s','s']]],
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+$sortcase = "Aa";
+#$sortcase = "aA";
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/slovak/small-cp1250.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/slovak/small-cp1250.pl
new file mode 100644
index 00000000000..218d6b3518a
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/slovak/small-cp1250.pl
@@ -0,0 +1,146 @@
+#!/usr/bin/perl
+
+$language = "Slovak";
+$variant = "small";
+$prefix = "sk";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'], ['',''], ['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C'], ['','']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D'], ['','']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'], ['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+['Ch', ['ch','Ch','CH']],
+ [], # dotless i (turkish)
+['I', ['i','I'], ['','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L'], ['',''], ['','']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N'], ['','']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'], ['',''], ['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R'], ['',''], ['','']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S'], ['','']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T'], ['','']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'], ['','']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y'], ['','']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z'], ['','']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$ligatures = [
+[[''], 'after', [['s','s']]],
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+$sortcase = "Aa";
+#$sortcase = "aA";
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/slovak/small-latin2.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/slovak/small-latin2.pl
new file mode 100644
index 00000000000..9468636b4ec
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/slovak/small-latin2.pl
@@ -0,0 +1,146 @@
+#!/usr/bin/perl
+
+$language = "Slovak";
+$variant = "small";
+$prefix = "sk";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'], ['',''], ['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C'], ['','']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D'], ['','']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'], ['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+['Ch', ['ch','Ch','CH']],
+ [], # dotless i (turkish)
+['I', ['i','I'], ['','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L'], ['',''], ['','']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N'], ['','']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'], ['',''], ['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R'], ['',''], ['','']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S'], ['','']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T'], ['','']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'], ['','']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y'], ['','']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z'], ['','']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$ligatures = [
+[[''], 'after', [['s','s']]],
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+$sortcase = "Aa";
+#$sortcase = "aA";
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/slovenian/cp1250.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/slovenian/cp1250.pl
new file mode 100644
index 00000000000..8bd9bd5ac0a
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/slovenian/cp1250.pl
@@ -0,0 +1,148 @@
+#!/usr/bin/perl
+
+$language = "Slovenian";
+$prefix = "sl";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+['', ['',''],['','']],
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D'],['','']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+['', ['','']],
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+['', ['','']],
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$ligatures = [
+
+
+
+
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+$sortcase = "Aa";
+#$sortcase = "aA";
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/slovenian/latin2.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/slovenian/latin2.pl
new file mode 100644
index 00000000000..2184852c12a
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/slovenian/latin2.pl
@@ -0,0 +1,148 @@
+#!/usr/bin/perl
+
+$language = "Slovenian";
+$prefix = "sl";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+['', ['',''],['','']],
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D'],['','']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+['', ['','']],
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+['', ['','']],
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$ligatures = [
+
+
+
+
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+$sortcase = "Aa";
+#$sortcase = "aA";
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/spanish/modern-latin1.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/spanish/modern-latin1.pl
new file mode 100644
index 00000000000..17bff7f8d1d
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/spanish/modern-latin1.pl
@@ -0,0 +1,146 @@
+#!/usr/bin/perl
+
+$language = "Spanish";
+$variant = "modern";
+$prefix = "es";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'], ['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'], ['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I'], ['','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+['', ['','']],
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'], ['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'], ['',''], ['','']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$ligatures = [
+[[''], 'after', [['s','s']]],
+];
+
+@special = ('letters', '.', '-', '\'', '', '?', '', '!');
+
+#$sortcase = "Aa";
+$sortcase = "aA";
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/spanish/traditional-latin1.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/spanish/traditional-latin1.pl
new file mode 100644
index 00000000000..69fcf5a57c6
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/spanish/traditional-latin1.pl
@@ -0,0 +1,146 @@
+#!/usr/bin/perl
+
+$language = "Spanish";
+$variant = "traditional";
+$prefix = "es";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'], ['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+['Ch', ['ch','Ch','CH']],
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'], ['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I'], ['','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+['Ll', ['ll','Ll','LL']],
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+['', ['','']],
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'], ['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'], ['',''], ['','']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, icelandic, swedish)
+ [] # a with ring above (icelandic)
+];
+
+$ligatures = [
+[[''], 'after', [['s','s']]],
+];
+
+@special = ('letters', '.', '-', '\'', '', '?', '', '!');
+
+#$sortcase = "Aa";
+$sortcase = "aA";
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/swedish/cp1252.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/swedish/cp1252.pl
new file mode 100644
index 00000000000..326feb22962
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/swedish/cp1252.pl
@@ -0,0 +1,145 @@
+#!/usr/bin/perl
+
+$language = "Swedish";
+$prefix = "sv";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'],['',''],['',''],['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C'],['','']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D'],['','']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'],['',''],['',''],['',''],['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I'],['',''],['',''],['',''],['','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N'],['','']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'],['',''],['',''],['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R'] ],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S'],['','']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'],['',''],['',''],['','']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V'], ['w','W']],
+ [], # w (many)
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y'],['',''],['','']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+['', ['','']],
+['', ['',''],['','']],
+['', ['',''],['','']],
+ [] # a with ring above (icelandic)
+];
+
+#$sortcase = 'Aa';
+$sortcase = 'aA';
+
+$ligatures = [
+[[''], 'after', [['s','s']]]
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/swedish/latin1.xdy b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/swedish/latin1.xdy
new file mode 100644
index 00000000000..edffb7e8482
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/swedish/latin1.xdy
@@ -0,0 +1,298 @@
+;; Rules for xindy; generated by make-rules.pl
+;; language: Swedish
+
+(define-letter-group "A" :prefixes (""))
+(define-letter-group "B" :after "A" :prefixes (""))
+(define-letter-group "C" :after "B" :prefixes (""))
+(define-letter-group "D" :after "C" :prefixes (""))
+(define-letter-group "E" :after "D" :prefixes (""))
+(define-letter-group "F" :after "E" :prefixes (""))
+(define-letter-group "G" :after "F" :prefixes (""))
+(define-letter-group "H" :after "G" :prefixes (""))
+(define-letter-group "I" :after "H" :prefixes (""))
+(define-letter-group "J" :after "I" :prefixes (""))
+(define-letter-group "K" :after "J" :prefixes (""))
+(define-letter-group "L" :after "K" :prefixes (""))
+(define-letter-group "M" :after "L" :prefixes (""))
+(define-letter-group "N" :after "M" :prefixes (""))
+(define-letter-group "O" :after "N" :prefixes (""))
+(define-letter-group "P" :after "O" :prefixes (""))
+(define-letter-group "Q" :after "P" :prefixes (""))
+(define-letter-group "R" :after "Q" :prefixes (""))
+(define-letter-group "S" :after "R" :prefixes (""))
+(define-letter-group "T" :after "S" :prefixes (""))
+(define-letter-group "U" :after "T" :prefixes (""))
+(define-letter-group "V" :after "U" :prefixes (""))
+(define-letter-group "X" :after "V" :prefixes (""))
+(define-letter-group "Y" :after "X" :prefixes (""))
+(define-letter-group "Z" :after "Y" :prefixes (""))
+(define-letter-group "" :after "Z" :prefixes (""))
+(define-letter-group "" :after "" :prefixes (""))
+(define-letter-group "" :after "" :prefixes (""))
+
+(define-rule-set "sv-alphabetize"
+
+ :rules (("A" "" :string)
+ ("a" "" :string)
+ ("B" "" :string)
+ ("b" "" :string)
+ ("C" "" :string)
+ ("c" "" :string)
+ ("d" "" :string)
+ ("D" "" :string)
+ ("E" "" :string)
+ ("e" "" :string)
+ ("F" "" :string)
+ ("f" "" :string)
+ ("G" "" :string)
+ ("g" "" :string)
+ ("h" "" :string)
+ ("H" "" :string)
+ ("I" "" :string)
+ ("i" "" :string)
+ ("j" "" :string)
+ ("J" "" :string)
+ ("K" "" :string)
+ ("k" "" :string)
+ ("L" "" :string)
+ ("l" "" :string)
+ ("M" "" :string)
+ ("m" "" :string)
+ ("N" "" :string)
+ ("n" "" :string)
+ ("O" "" :string)
+ ("o" "" :string)
+ ("P" "" :string)
+ ("p" "" :string)
+ ("Q" "" :string)
+ ("q" "" :string)
+ ("R" "" :string)
+ ("r" "" :string)
+ ("S" "" :string)
+ ("s" "" :string)
+ ("" "" :string)
+ ("T" "" :string)
+ ("t" "" :string)
+ ("u" "" :string)
+ ("U" "" :string)
+ ("V" "" :string)
+ ("w" "" :string)
+ ("W" "" :string)
+ ("v" "" :string)
+ ("X" "" :string)
+ ("x" "" :string)
+ ("Y" "" :string)
+ ("y" "" :string)
+ ("Z" "" :string)
+ ("z" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ("" "" :string)
+ ))
+
+(define-rule-set "sv-resolve-diacritics"
+
+ :rules (("A" "" :string)
+ ("B" "" :string)
+ ("C" "" :string)
+ ("" "" :string)
+ ("D" "" :string)
+ ("" "" :string)
+ ("E" "" :string)
+ ("F" "" :string)
+ ("G" "" :string)
+ ("H" "" :string)
+ ("I" "" :string)
+ ("J" "" :string)
+ ("K" "" :string)
+ ("L" "" :string)
+ ("M" "" :string)
+ ("N" "" :string)
+ ("O" "" :string)
+ ("P" "" :string)
+ ("Q" "" :string)
+ ("R" "" :string)
+ ("S" "" :string)
+ ("T" "" :string)
+ ("U" "" :string)
+ ("" "" :string)
+ ("V" "" :string)
+ ("z" "" :string)
+ ("X" "" :string)
+ ("Y" "" :string)
+ ("Z" "" :string)
+ ("a" "" :string)
+ ("b" "" :string)
+ ("c" "" :string)
+ ("" "" :string)
+ ("d" "" :string)
+ ("" "" :string)
+ ("e" "" :string)
+ ("f" "" :string)
+ ("g" "" :string)
+ ("h" "" :string)
+ ("i" "" :string)
+ ("j" "" :string)
+ ("k" "" :string)
+ ("l" "" :string)
+ ("m" "" :string)
+ ("n" "" :string)
+ ("o" "" :string)
+ ("p" "" :string)
+ ("q" "" :string)
+ ("r" "" :string)
+ ("s" "" :string)
+ ("t" "" :string)
+ ("u" "" :string)
+ ("" "" :string)
+ ("v" "" :string)
+ ("x" "" :string)
+ ("y" "" :string)
+ ("W" "" :string)
+ ("w" "" :string)
+ ("" "" :string)
+ ))
+
+(define-rule-set "sv-resolve-case"
+
+ :rules (("z" "0" :string)
+ ("y" "0" :string)
+ ("x" "0" :string)
+ ("w" "0" :string)
+ ("v" "0" :string)
+ ("" "0" :string)
+ ("u" "0" :string)
+ ("t" "0" :string)
+ ("s" "0" :string)
+ ("r" "0" :string)
+ ("q" "0" :string)
+ ("p" "0" :string)
+ ("o" "0" :string)
+ ("n" "0" :string)
+ ("m" "0" :string)
+ ("l" "0" :string)
+ ("k" "0" :string)
+ ("j" "0" :string)
+ ("i" "0" :string)
+ ("h" "0" :string)
+ ("g" "0" :string)
+ ("f" "0" :string)
+ ("e" "0" :string)
+ ("" "0" :string)
+ ("d" "0" :string)
+ ("" "0" :string)
+ ("c" "0" :string)
+ ("b" "0" :string)
+ ("a" "0" :string)
+ ("" "00" :string)
+ ("Z" "1" :string)
+ ("Y" "1" :string)
+ ("X" "1" :string)
+ ("W" "1" :string)
+ ("V" "1" :string)
+ ("" "1" :string)
+ ("U" "1" :string)
+ ("T" "1" :string)
+ ("S" "1" :string)
+ ("R" "1" :string)
+ ("Q" "1" :string)
+ ("P" "1" :string)
+ ("O" "1" :string)
+ ("N" "1" :string)
+ ("M" "1" :string)
+ ("L" "1" :string)
+ ("K" "1" :string)
+ ("J" "1" :string)
+ ("I" "1" :string)
+ ("H" "1" :string)
+ ("G" "1" :string)
+ ("F" "1" :string)
+ ("E" "1" :string)
+ ("" "1" :string)
+ ("D" "1" :string)
+ ("" "1" :string)
+ ("C" "1" :string)
+ ("B" "1" :string)
+ ("A" "1" :string)
+ ))
+
+(define-rule-set "sv-ignore-special"
+
+ :rules (("!" "" :string)
+ ("'" "" :string)
+ ("-" "" :string)
+ ("." "" :string)
+ ("?" "" :string)
+ ))
+
+(define-rule-set "sv-resolve-special"
+
+ :rules (("?" "" :string)
+ ("!" "" :string)
+ ("." "" :string)
+ ("B" "" :string)
+ ("C" "" :string)
+ ("" "" :string)
+ ("D" "" :string)
+ ("" "" :string)
+ ("E" "" :string)
+ ("F" "" :string)
+ ("G" "" :string)
+ ("H" "" :string)
+ ("I" "" :string)
+ ("J" "" :string)
+ ("K" "" :string)
+ ("L" "" :string)
+ ("M" "" :string)
+ ("N" "" :string)
+ ("O" "" :string)
+ ("P" "" :string)
+ ("Q" "" :string)
+ ("R" "" :string)
+ ("S" "" :string)
+ ("T" "" :string)
+ ("U" "" :string)
+ ("" "" :string)
+ ("V" "" :string)
+ ("W" "" :string)
+ ("X" "" :string)
+ ("Y" "" :string)
+ ("Z" "" :string)
+ ("a" "" :string)
+ ("b" "" :string)
+ ("c" "" :string)
+ ("" "" :string)
+ ("d" "" :string)
+ ("" "" :string)
+ ("e" "" :string)
+ ("f" "" :string)
+ ("g" "" :string)
+ ("h" "" :string)
+ ("i" "" :string)
+ ("j" "" :string)
+ ("k" "" :string)
+ ("l" "" :string)
+ ("m" "" :string)
+ ("n" "" :string)
+ ("o" "" :string)
+ ("p" "" :string)
+ ("q" "" :string)
+ ("r" "" :string)
+ ("s" "" :string)
+ ("t" "" :string)
+ ("u" "" :string)
+ ("" "" :string)
+ ("v" "" :string)
+ ("w" "" :string)
+ ("x" "" :string)
+ ("y" "" :string)
+ ("z" "" :string)
+ ("A" "" :string)
+ ("" "" :string)
+ ("-" "" :string)
+ ("'" "" :string)
+ ))
+
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/swedish/latin9.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/swedish/latin9.pl
new file mode 100644
index 00000000000..e2cfa4e924e
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/swedish/latin9.pl
@@ -0,0 +1,145 @@
+#!/usr/bin/perl
+
+$language = "Swedish";
+$prefix = "sv";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'],['',''],['',''],['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C'],['','']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D'],['','']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E'],['',''],['',''],['',''],['','']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I'],['',''],['',''],['',''],['','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N'],['','']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O'],['',''],['',''],['','']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R'] ],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S'],['','']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'],['',''],['',''],['','']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V'], ['w','W']],
+ [], # w (many)
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y'],['',''],['','']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+['', ['','']],
+['', ['',''],['','']],
+['', ['',''],['','']],
+ [] # a with ring above (icelandic)
+];
+
+#$sortcase = 'Aa';
+$sortcase = 'aA';
+
+$ligatures = [
+[[''], 'after', [['s','s']]]
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/turkish/latin3.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/turkish/latin3.pl
new file mode 100644
index 00000000000..a8caa256069
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/turkish/latin3.pl
@@ -0,0 +1,144 @@
+#!/usr/bin/perl
+
+$language = "Turkish";
+$prefix = "tr";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'],['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+['', ['','']],
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+['', ['','']],
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+['I', ['','I']],
+['', ['i','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+['', ['','']],
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+['', ['','']],
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'],['','']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+['', ['','']],
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/turkish/latin5.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/turkish/latin5.pl
new file mode 100644
index 00000000000..5a5920adca8
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/turkish/latin5.pl
@@ -0,0 +1,144 @@
+#!/usr/bin/perl
+
+$language = "Turkish";
+$prefix = "tr";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A'],['','']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (spanish/traditional)
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+['', ['','']],
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+['', ['','']],
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+['I', ['','I']],
+['', ['i','']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+['', ['','']],
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+['', ['','']],
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'],['','']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+['', ['','']],
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/ukrainian/cp1251.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/ukrainian/cp1251.pl
new file mode 100644
index 00000000000..1d86ae253a4
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/ukrainian/cp1251.pl
@@ -0,0 +1,72 @@
+#!/usr/bin/perl
+
+$language = "Ukrainian";
+$prefix = "uk";
+$script = "cyrillic";
+
+$alphabet = [
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # dje (serbian)
+ [], # gje (macedonian)
+['', ['',''],['','']],
+ [], # io (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # dze (macedonian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # je (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+ [], # lje (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+ [], # nje (macedonian, serbian)
+['', ['','']],
+ [], # barred o (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # tshe (serbian)
+ [], # kje (macedonian)
+['', ['','']],
+ [], # short u (belarusian)
+ [], # straight u (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # dzhe (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # soft sign (many)
+ [],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [],
+ [],
+ []
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/ukrainian/koi8-u.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/ukrainian/koi8-u.pl
new file mode 100644
index 00000000000..b176a3be1fb
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/ukrainian/koi8-u.pl
@@ -0,0 +1,72 @@
+#!/usr/bin/perl
+
+$language = "Ukrainian";
+$prefix = "uk";
+$script = "cyrillic";
+
+$alphabet = [
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # dje (serbian)
+ [], # gje (macedonian)
+['', ['',''],['','']],
+ [], # io (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # dze (macedonian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # je (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+ [], # lje (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+ [], # nje (macedonian, serbian)
+['', ['','']],
+ [], # barred o (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # tshe (serbian)
+ [], # kje (macedonian)
+['', ['','']],
+ [], # short u (belarusian)
+ [], # straight u (mongolian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # dzhe (macedonian, serbian)
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [], # soft sign (many)
+ [],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+['', ['','']],
+ [],
+ [],
+ []
+];
+
+$sortcase = 'Aa';
+#$sortcase = 'aA';
+
+$ligatures = [
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/upper-sorbian/cp1250.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/upper-sorbian/cp1250.pl
new file mode 100644
index 00000000000..2fcc96646f6
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/upper-sorbian/cp1250.pl
@@ -0,0 +1,145 @@
+#!/usr/bin/perl
+
+$language = "Upper Sorbian";
+$prefix = "s2";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (many)
+ [], # cs (hungarian)
+['', ['','']],
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+['D', ['d','D','D']],
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E']],
+['', ['','']],
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+['Ch', ['ch','Ch','CH']],
+ [], # dotless i (turkish)
+['I', ['i','I']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+['', ['','']],
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+['', ['','']],
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O']],
+['', ['','']],
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+['', ['','']],
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+['', ['','']],
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+['', ['','']],
+['U', ['u','U']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+['', ['','']],
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$ligatures = [
+[[''], 'after', [['s','s']]],
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+$sortcase = "Aa";
+#$sortcase = "aA";
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/make-rules/alphabets/upper-sorbian/latin2.pl b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/upper-sorbian/latin2.pl
new file mode 100644
index 00000000000..902c3f4b3eb
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/make-rules/alphabets/upper-sorbian/latin2.pl
@@ -0,0 +1,145 @@
+#!/usr/bin/perl
+
+$language = "Upper Sorbian";
+$prefix = "s2";
+$script = "latin";
+
+$alphabet = [
+['A', ['a','A']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+ [], # b with hook (hausa)
+['C', ['c','C']],
+ [], # ch (many)
+ [], # cs (hungarian)
+['', ['','']],
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # dz (hungarian)
+ [], # dzs (hungarian)
+ [], # d+z with caron (croatian)
+['D', ['d','D','D']],
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # d with hook (hausa)
+ [], # eth (icelandic)
+['E', ['e','E']],
+['', ['','']],
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # gy (hungarian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+ [], # g with cedilla/comma (latvian)
+ [], # postpalatal fricative (gypsy/northrussian)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+['Ch', ['ch','Ch','CH']],
+ [], # dotless i (turkish)
+['I', ['i','I']],
+ [], # i with inverted breve below (gypsy/northrussian)
+ [], # i with circumflex (kurdish, romanian)
+ [], # i with diaeresis (gypsy/northrussian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # kh (gypsy/northrussian)
+ [], # k with cedilla/comma (latvian)
+ [], # k with hook (hausa)
+ [], # x (gypsy/northrussian)
+['', ['','']],
+['L', ['l','L']],
+ [], # lj (croatian)
+ [], # ll (albanian, spanish/traditional)
+ [], # ly (hungarian)
+ [], # l with cedilla/comma (latvian)
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+ [], # n with caron (slovak/large)
+['', ['','']],
+ [], # n with tilde (spanish/modern, spanish/traditional)
+ [], # n with cedilla/comma (latvian)
+['O', ['o','O']],
+['', ['','']],
+ [], # o with circumflex (vietnamese)
+ [], # o with horn (vietnamese)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+ [], # ph (gypsy/northrussian)
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+['', ['','']],
+ [], # r with acute (lower sorbian)
+ [], # r with cedilla/comma (latvian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+['', ['','']],
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+ [], # z (estonian)
+ [], # z with caron (estonian)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # ty (hungarian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+['', ['','']],
+['U', ['u','U']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with horn (vietnamese)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+ [], # o with tilde (estonian)
+ [], # a with diaeresis (estonian)
+ [], # o with diaeresis (estonian)
+ [], # u with diaeresis (estonian)
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+ [], # y preceded by apostrophe (hausa)
+ [], # yogh (english)
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+['', ['','']],
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # wynn (english)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [], # o with diaeresis (finnish, swedish)
+ [], # a with ring above (icelandic)
+];
+
+$ligatures = [
+[[''], 'after', [['s','s']]],
+];
+
+@special = ('?', '!', '.', 'letters', '-', '\'');
+
+$sortcase = "Aa";
+#$sortcase = "aA";
+
+do 'make-rules.pl';
diff --git a/Build/source/utils/xindy-new/xindy/src/defaults.xdy.in b/Build/source/utils/xindy-new/xindy/src/defaults.xdy.in
new file mode 100644
index 00000000000..bd149fdbae0
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/src/defaults.xdy.in
@@ -0,0 +1,5 @@
+;; defaults.xdy.in 29 Mar 09 -*- Lisp -*-
+;;------------------------------------------------------------
+
+(setq *load-paths* (list (pathname ".")
+ (pathname "@MODULEDIR@")))
diff --git a/Build/source/utils/xindy-new/xindy/src/ordrules.lsp b/Build/source/utils/xindy-new/xindy/src/ordrules.lsp
new file mode 100644
index 00000000000..60fa2fa678f
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/src/ordrules.lsp
@@ -0,0 +1,408 @@
+;;; $Id$
+;;;----------------------------------------------------------------------
+
+;;;
+;;; ordrules --- order rules for xindy
+;;;
+;;; (history at end)
+
+
+(provide "ordrules")
+
+
+;;;; ============================================================
+;;;;
+;;;; SPECIFICATION
+;;;;
+
+;;;
+;;; package ordrules XXX
+;;;
+
+(defpackage "ORDRULES"
+ (:documentation "Order rules for xindy.
+Provides functionality for merge-rules and sort-rules, as ordrule collections.
+An ordrule collection is an ordered set of order rules.
+An order rule is an object that manages replacement of a string or
+regular expression by a string.
+Ordrule collections are applied to strings, the result is created by
+successive application of matching order rules.")
+ (:use common-lisp clos regexp)
+ (:shadow match)
+ (:export ;; object interface
+ "MAKE-ORDRULE-TABLE" "ADD-RULE" "APPLY-RULES"
+ ;; legacy (C plugin) interface
+ "INITIALIZE" "ADD-KEYWORD-MERGE-RULE" "ADD-KEYWORD-SORT-RULE"
+ "GEN-KEYWORD-MERGEKEY" "GEN-KEYWORD-SORTKEY"
+ "*MESSAGE-BUFFER-PTR*" "*MESSAGE-BUFFER*" "*MESSAGE-LOGGING*")
+ )
+(in-package "ORDRULES")
+
+
+
+;;;; ============================================================
+;;;;
+;;;; ORDRULE OBJECTS
+;;;;
+
+;;; class ORDRULE
+;;; Slots:
+;;; -- match: regexp, string, or char that might be matched
+;;; -- repl: replacement for the matched substring
+;;; -- again: boolean flag if repl should be eligible for further ordrules
+;;;
+;;; subclass ORDRULE-STRING -- no additional slots
+;;; subclass ORDRULE-CHAR -- no additional slots
+;;; subclass ORDRULE-REGEXP
+;;; Additional Slots:
+;;; -- only-at-start: boolean flag if match should only be tested at start
+;;; of string
+
+(defclass ordrule ()
+ ((match :initarg :match :reader match)
+ (repl :initarg :repl :reader repl)
+ (again :initarg :again :reader again))
+ (:documentation
+ "An order rule that represents the replacement of a matching expression
+with a replacement string."))
+
+(defclass ordrule-string (ordrule)
+ ()
+ (:documentation
+ "An ordrule where the matching expression is a string"))
+
+(defclass ordrule-char (ordrule)
+ ()
+ (:documentation
+ "An ordrule where the matching expression is a char"))
+
+(defclass ordrule-regexp (ordrule)
+ ((pattern :initarg :pattern :reader pattern)
+ (only-at-start :initarg :only-at-start :reader only-at-start))
+ (:documentation
+ "An ordrule where the matching expression is a regexp"))
+
+(defmethod print-object ((obj ordrule) stream)
+ "Print an ordrule."
+ (format stream "#<ordrule: '~A' => '~A' :again ~A>"
+ (match obj) (repl obj) (again obj)))
+
+(defmethod print-object ((obj ordrule-regexp) stream)
+ "Print an ordrule."
+ (format stream "#<ordrule-regexp: '~A' => '~A' :again ~A :only-at-start ~A>"
+ (pattern obj) (repl obj) (again obj) (only-at-start obj)))
+
+(defun make-ordrule-string (match repl &key again)
+ "Create an ordrule-string object.
+MATCH is a string to compare."
+ (make-instance 'ordrule-string :match match :repl repl :again again))
+
+(defun make-ordrule-char (match repl &key again)
+ "Create an ordrule-string object.
+MATCH is a character to compare."
+ (make-instance 'ordrule-char :match match :repl (string repl) :again again))
+
+(defun make-ordrule-regexp (match-pattern repl &key again (extended t))
+ "Create an ordrule-regexp object.
+MATCH-PATTERN is a POSIX regular expression.
+The boolean keyword argument :extended tells if the regex is a basic
+one or an extended one; default is to use extended ones."
+ (let* ((only-at-start (char= (char match-pattern 0) #\^))
+ (match (if only-at-start (subseq match-pattern 1) match-pattern)))
+ (make-instance 'ordrule-regexp
+ :match (regexp-compile (concatenate 'string "^(" match ")")
+ :extended extended)
+ :repl repl :again again
+ :pattern match-pattern :only-at-start only-at-start)))
+
+;; A regexp-compile object does not survive dump and reload.
+;; Therefore we have to initialize it at first usage.
+(defvar *REGEXP-PATTERN*
+ nil
+ "If this pattern matches, the string is a regexp.")
+
+(defun make-ordrule (match repl &key again)
+ "Create an ordrule object.
+MATCH may be a string, a char, or a POSIX regular expression.
+If it's a regexp, it's an extended one."
+ (or *REGEXP-PATTERN*
+ (setq *REGEXP-PATTERN* (regexp-compile "[][|(){}.*+^$?]")))
+ (cond ((characterp match)
+ (make-ordrule-char match repl :again again))
+ ((= (length match) 1)
+ (make-ordrule-char (char match 0) repl :again again))
+ ((regexp-exec *REGEXP-PATTERN* match)
+ (make-ordrule-regexp match repl :again again))
+ (t (make-ordrule-string match repl :again again))))
+
+
+;;;
+;;; (try-rule RULE SOURCE) => FINAL ; SOURCE-REST or <no values>
+;;;
+
+(defgeneric try-rule (ordrule source &key at-start)
+ (:documentation "Apply an ordrule to a source string.
+If the rule does not match, return nothing. If it matches, return two
+values: the 1st is the final prefix with the replacement
+string and the 2nd is the rest of SOURCE that's left after the matched
+text. If the rule's again flag is true, FINAL will be the empty string
+and the replacement will be at the start of SOURCE-REST.
+AT-START tells if we are at the start to process the source string."))
+
+(defmethod try-rule ((rule ordrule-char) source &key at-start)
+ (declare (ignore at-start))
+ (if (char= (char source 0) (match rule))
+ (maybe-again rule (repl rule) (subseq source 1))
+ (values)))
+
+(defun maybe-again (rule repl source-rest)
+ (if (again rule)
+ (values "" (concatenate 'string repl source-rest))
+ (values repl source-rest)))
+
+(defmethod try-rule ((rule ordrule-string) source &key at-start)
+ (declare (ignore at-start))
+ (let* ((match-string (match rule))
+ (match-length (length match-string)))
+ (cond ((> match-length (length source)) (values))
+ ((string= source match-string :end1 match-length)
+ (maybe-again rule (repl rule) (subseq source match-length)))
+ (t (values)))))
+
+(defmethod try-rule ((rule ordrule-regexp) source &key at-start)
+ (if (and (only-at-start rule) (not at-start))
+ nil
+ (let ((match-regexp (multiple-value-list (regexp-exec (match rule) source))))
+ (if match-regexp
+ (maybe-again rule
+ (maybe-repl-subexpr (repl rule) (rest match-regexp) source)
+ (subseq source (match-end (first match-regexp))))
+ (values)))))
+
+;; A regexp-compile object does not survive dump and reload.
+;; Therefore we have to initialize it at first usage.
+(defvar *REPL-PATTERN*
+ nil
+ "Compiled regexp that matches a backpattern in a regexp replacement text.")
+
+;; We need to substitute all \x constructs in the replacement text by
+;; the respective subexpression from source's matches. They are
+;; located with a regexp in a loop and we collect in 'final-repl the
+;; strings in front of each \x and the actual subexpression.
+(defun maybe-repl-subexpr (repl source-matches source)
+ (or *REPL-PATTERN*
+ (setq *REPL-PATTERN* (regexp-compile "\\\\([&1-9])" :extended t)))
+ (do* ((start 0 (match-end (first subexpr-match)))
+ (subexpr-match (multiple-value-list (regexp-exec *REPL-PATTERN* repl))
+ (multiple-value-list (regexp-exec *REPL-PATTERN* repl
+ :start start)))
+ (final-repl ""))
+ ((null subexpr-match)
+ ;; Don't forget to return the rest of the string, too. Its
+ ;; index is now in 'start.
+ (concatenate 'string final-repl (subseq repl start)))
+ ;; OK, need a subexpr replacement. First, we determine which subexpression
+ ;; this shall be. Then we get that subexpression from the source string.
+ ;; Finally, we add the 'repl string part in front of \x and the respective
+ ;; subexpression to 'final-repl and are ready to look for our next \x
+ ;; construct.
+ (let* ((subexpr (match-string repl (second subexpr-match)))
+ (subexpr-repl (match-string source
+ (nth (if (string= subexpr "&")
+ 0
+ (read-from-string subexpr))
+ source-matches))))
+ (setq final-repl
+ (concatenate 'string final-repl
+ (subseq repl 0 (match-start (first subexpr-match)))
+ subexpr-repl)))))
+
+
+;;;
+;;; (rule-first-char RULE) => char or :regexp
+;;;
+
+(defgeneric rule-first-char (rule)
+ (:documentation "Returns the first char of a rule match.
+This returns either the first char of a rule match, or :regexp
+if that first char is a regular expression. The is used to find the
+slot for a rule in a rule table."))
+
+(defmethod rule-first-char ((rule ordrule-char))
+ (match rule))
+
+(defmethod rule-first-char ((rule ordrule-string))
+ (char (match rule) 0))
+
+(defmethod rule-first-char ((rule ordrule-regexp))
+ (let* ((pattern (pattern rule))
+ (start-index (if (only-at-start rule) 1 0))
+ (first-char (char pattern start-index)))
+ (cond ((char= first-char #\\)
+ (char pattern (1+ start-index)))
+ ((find first-char "[]|(){}.*+?")
+ :regexp)
+ (t first-char))))
+
+
+
+;;;; ============================================================
+;;;;
+;;;; ORDRULE TABLES
+;;;;
+
+;; An ordrule table is a hash table of ordrule lists, indexed by the first
+;; character of the rule. The key :regexp is the entry for rules that start
+;; with a regexp pattern.
+
+(defclass ordrule-table ()
+ ((table :initarg :table :reader table))
+ (:documentation
+ "A collection of ordrules."))
+
+(defmethod print-object ((obj ordrule-table) stream)
+ "Print an ordrule table."
+ (format stream "#<ordrule table with ~A entries>" (hash-table-count (table obj))))
+
+(defun make-ordrule-table ()
+ "Create an ordrule-table object."
+ (make-instance 'ordrule-table :table (make-hash-table :size 256)))
+
+(defun add-rule (rule-table rule)
+ "Add a rule to an ordrule table."
+ (let* ((first-char (rule-first-char rule))
+ (first-char-rules (gethash first-char (table rule-table))))
+ (if first-char-rules
+ (nconc first-char-rules (list rule))
+ (setf (gethash first-char (table rule-table)) (list rule)))))
+
+;; XXX This is the place where we might want to sort rules according to their
+;; length. But then we should also cache that sort result, because this
+;; function is called for each character in the index!
+;;
+;; XXX Maybe we should try a cache anyhow, to save appends, too? Need to
+;; measure that.
+(defun get-rules (rule-table source-start)
+ (append (gethash source-start (table rule-table))
+ (gethash :regexp (table rule-table))))
+
+(defun apply-rules-once (rule-table source at-start)
+ "Apply rules from rule-table once to source.
+Returns two values: (1) prefix that has been processed, (2) suffix that has
+still to be processed."
+ (dolist (rule (get-rules rule-table (char source 0))
+ (values))
+ (multiple-value-bind (prefix suffix)
+ (try-rule rule source :at-start at-start)
+ (if (stringp prefix)
+ (return (values prefix suffix))))))
+
+(defun apply-rules (rule-table source &optional (at-start t))
+ "Apply rules from rule-table to source."
+ (multiple-value-bind (prefix suffix)
+ (apply-rules-once rule-table source at-start)
+ (log-rule (format nil "apply rules once: '~A' => '~A' '~A'~%"
+ source prefix suffix))
+ (cond ((null prefix)
+ (if (= (length source) 1)
+ source
+ (concatenate 'string (subseq source 0 1)
+ (apply-rules rule-table (subseq source 1) nil))))
+ ((string= suffix "") prefix)
+ (t (concatenate 'string prefix
+ (apply-rules rule-table suffix nil))))))
+
+
+
+;;;; ============================================================
+;;;;
+;;;; LEGACY (C PLUGIN) INTERFACE
+;;;;
+
+;; The following code realizes the interface of xindy 2.3, even though we
+;; could now use real Lisp objects. This is a transient phase only.
+
+(defvar *merge-rule-table*
+ (make-ordrule-table))
+
+;; By default, we have runs 0..7.
+(defvar *sort-rule-tables*
+ (let ((tables (make-array '(8) :element-type 'ordrule-table)))
+ (dotimes (i 8)
+ (setf (aref tables i) (make-ordrule-table)))
+ tables))
+
+(defun initialize (num)
+ (setq *sort-rule-tables* (make-array (list num) :element-type 'ordrule-table))
+ (dotimes (i num)
+ (setf (aref *sort-rule-tables* i) (make-ordrule-table))))
+
+(defun add-keyword-rule (rule-table rule repl again ruletype)
+ (let* ((again (if (= again 1) t nil))
+ (rule-obj (ecase ruletype
+ (0 (make-ordrule rule repl :again again))
+ (1 (make-ordrule-string rule repl :again again))
+ (2 (make-ordrule-regexp rule repl :again again :extended nil))
+ (3 (make-ordrule-regexp rule repl :again again))
+ (4 (make-ordrule-char rule repl :again again)))))
+ (add-rule rule-table rule-obj)))
+
+(defun add-keyword-merge-rule (rule repl again ruletype)
+ (let* ((rule-list (add-keyword-rule *merge-rule-table* rule
+ repl again ruletype))
+ (message (format nil "Add merge rule: ~S~%" (first (last rule-list)))))
+ (log-rule message)))
+
+(defun add-keyword-sort-rule (run rule repl again ruletype)
+ (let* ((rule-list (add-keyword-rule (aref *sort-rule-tables* run)
+ rule repl again ruletype))
+ (message (format nil "Add sort rule to run ~A: ~S~%"
+ run (first (last rule-list)))))
+ (log-rule message)))
+
+(defun gen-keyword-mergekey (key)
+ (let ((result (apply-rules *merge-rule-table* key)))
+ (log-rule (format nil "Final merge-rule result: '~A' -> '~A'~%"
+ key result))
+ result))
+
+(defun gen-keyword-sortkey (key run)
+ (let ((result (apply-rules (aref *sort-rule-tables* run) key)))
+ (log-rule (format nil "Final sort-rule result, run ~A: '~A' -> '~A'~%"
+ run key result))
+ result))
+
+
+;;;
+;;; Logging
+;;;
+
+(defvar *message-logging*
+ nil
+ "Boolean: Shall rule replacement be logged?")
+
+(defvar *message-buffer*
+ ""
+ "String with the log message.
+This is remaining cruft from the C plugin that could not use Lisp
+output streams itself.")
+
+(defvar *message-buffer-ptr*
+ 0
+ "Current position in *message-buffer*.
+This is remaining cruft from the C plugin that could not use Lisp
+output streams itself.")
+
+(defun log-rule (message)
+ (and *message-logging*
+ (if (= (incf *message-buffer-ptr*) 1)
+ (setq *message-buffer* message)
+ (setq *message-buffer* (concatenate 'string *message-buffer*
+ message)))
+ ))
+
+
+
+;;;======================================================================
+;;
+;; $Log$
diff --git a/Build/source/utils/xindy-new/xindy/user-commands/xindy.v2.in b/Build/source/utils/xindy-new/xindy/user-commands/xindy.v2.in
new file mode 100644
index 00000000000..abc550b7e5e
--- /dev/null
+++ b/Build/source/utils/xindy-new/xindy/user-commands/xindy.v2.in
@@ -0,0 +1,302 @@
+#! /usr/bin/env perl
+# $Id: xindy.in,v 1.14 2005/05/02 19:16:27 jschrod Exp $
+#------------------------------------------------------------
+#
+# This is the old perl-frontend to the xindy indexing system.
+#
+# It is kept for compatibility reasons and is named xindy.v2 in
+# production. Most probably, you will not want to use it any more.
+#
+# This code is not supported. Don't report bugs, switch to the current
+# xindy script.
+#
+
+($progname = $0) =~ s#.*/##;
+
+$Date = `date`;
+
+require "getopts.pl";
+
+# $debug = 1;
+
+$numArgs = $#ARGV; # save number of command line arguments
+
+# parse for command-line options
+&Getopts( "dtvnio:l:f:L:" );
+
+$debug = $opt_d;
+
+# some debug-output
+print STDERR "progname: $progname\n" if $debug;
+print STDERR "\@ARGV: @ARGV\n" if $debug;
+print STDERR "\$#ARGV: $#ARGV\n" if $debug;
+
+#
+# Synopsis
+#
+
+sub usage {
+ print STDERR "\n$progname\t[-t] [-v] [-o output] [-l logfile] [-f filtprg] [-L n]
+\tindexstyle raw-index\n";
+ print STDERR <<EOMSG;
+
+options:
+
+ -t Enters tracing-mode for markup-tags.
+ -v Displays the current version of xindy.
+ -o Specifies the output-file for the tagged index. If omitted, the
+ name of the raw-index is taken, with its extension
+ substituted by \`.ind'.
+ -f filt Preprocess raw-index with \`filtprg' before reading.
+ -l file Logfile into which xindy writes useful information.
+ -L n Enter logging level \`n' = {1,2,3}.
+
+EOMSG
+ exit(2);
+}
+
+
+#
+# These functions check for the correct installation of the base
+# system.
+#
+
+sub check_bin {
+ print "runfile = $runfile\n" if $debug;
+ if ( ! -e $runfile ) {
+ print "Can't find \`$runfile' !\n";
+ exit(3);
+ }
+ if ( ! -x $runfile ) {
+ print "File \`$runfile' not executable !\n";
+ exit(4);
+ }
+}
+
+sub check_mem {
+ print "memfile = $memfile\n" if $debug;
+ if ( ! -e $memfile ) {
+ print "Can't find \`$memfile' !";
+ exit(5);
+ }
+}
+
+#
+# This function takes a string and quotes the `"' and '\' characters
+# with a leading backslash.
+#
+sub quote_string {
+ local($str) = @_;
+ $str =~ s#\\#\\\\#g;
+ $str =~ s#"#\\\"#g;
+ return $str;
+}
+
+sub remove_suffix {
+ local($str) = @_;
+ $str =~ s#\.[^\.]*$##;
+ return $str;
+}
+
+#
+# The generic signal handler that removes temporary files if
+# necessary.
+#
+
+sub sig_catch {
+ unlink $tmpfile;
+ exit(9);
+}
+
+sub sig_setup {
+ $SIG{"HUP"} = "sig_catch"; # 1
+ $SIG{"INT"} = "sig_catch"; # 2
+ $SIG{"QUIT"} = "sig_catch"; # 3
+ $SIG{"TERM"} = "sig_catch"; # 15
+ $SigHandlerSet = 1;
+}
+
+#
+# here we go...
+#
+
+$numArgs = $#ARGV; # number of Commandline-Arguments
+
+if ( $numArgs eq 1 || $opt_v || $opt_i ) { # two arguments or -v,-i specified
+ $Idxsty = $ARGV[0];
+ $Rawidx = $ARGV[1];
+} else {
+ &usage;
+}
+
+print "Idxsty = $Idxsty\n" if $debug;
+print "Rawidx = $Rawidx\n" if $debug;
+
+# Define the default xindy library directory. It should be in a
+# sibling lib tree, maybe in a xindy subdirectory. Or the user may
+# set XINDY_LIBDIR explicitely.
+
+$0 =~ m:^(.*)/[^/]*$: ;
+$cmd_dir = $1 || '.';
+
+# library directory
+if ( $ENV{XINDY_LIBDIR} ) {
+ $LibDir = $ENV{XINDY_LIBDIR};
+ print "XINDY_LIBDIR (from Environment) = $LibDir\n" if $debug;
+} elsif ( -f "$cmd_dir/../lib/xindy.run" ) { # /opt style
+ $LibDir = "$cmd_dir/../lib";
+} elsif ( -d "$cmd_dir/../lib/xindy" ) { # /usr or /usr/local style
+ $LibDir = "$cmd_dir/../lib/xindy";
+} else {
+ die "Cannot locate xindy library directory";
+}
+$XINDY_LIBDIR=$LibDir;
+print "XINDY_LIBDIR = $XINDY_LIBDIR\n" if $debug;
+
+# modules directory
+if ( -d "$cmd_dir/../modules" ) { # /opt style
+ $modules_dir = "$cmd_dir/../modules";
+} elsif ( -d "$LibDir/modules" ) { # /usr or /usr/local style
+ $modules_dir = "$LibDir/modules";
+} else {
+ die "Cannot locate xindy modules directory";
+}
+
+$memfile="$XINDY_LIBDIR/xindy.mem";
+$runfile="$XINDY_LIBDIR/xindy.run";
+
+# Set initial searchpath
+$SEARCHPATH="(searchpath \".:$modules_dir\")";
+
+# Add/replace (depends on the specification) the search path according
+# to the environment variable
+if ( $XINDY_SEARCHPATH ne "" ) {
+ $SEARCHPATH="$SEARCHPATH (searchpath \"$XINDY_SEARCHPATH\")";
+}
+print "SEARCHPATH = $SEARCHPATH\n" if $debug;
+
+if ($opt_v) { $version = ":show-version t"; }
+if ($opt_t) { $tracing = ":markup-trace t"; }
+if ($opt_n) { $try = 1; }
+if ($opt_c) { $compile = "on"; }
+if ($opt_i) { $interactive = "on"; }
+if ($opt_m) { $memfile = $opt_m; }
+if ($opt_o) { $output = $opt_o; }
+if ($opt_f) { $filtprg = $opt_f; }
+if ($opt_l) { $logfile = $opt_l; }
+if ($opt_L) { $level = $opt_L; }
+
+# Now check if everything is present.
+
+if ( ! $try ) {
+ &check_bin;
+ &check_mem;
+}
+
+$xindy_run = "$runfile -B $XINDY_LIBDIR -q -M $memfile -E iso-8859-1";
+print "xindy_run = $xindy_run\n" if $debug;
+
+# Run xindy interactive if this was specified via -i.
+if ( $interactive ) {
+ print "$xindy_run\n" if $debug;
+ exec "$xindy_run";
+}
+
+# If specified via -v start xindy for showing the version-message.
+if ( $version ) {
+ print "$xindy_run -x \"(progn (xindy:startup $version) (exit))\"" if $debug;
+ exec "$xindy_run -x \"(progn (xindy:startup $version) (exit))\"";
+}
+
+# Quote the filenames, such that LISP can read it.
+$Idxsty = &quote_string($Idxsty);
+$Rawidx = &quote_string($Rawidx);
+
+# If no output-file was specified
+if ( ! $output ) {
+ # remove the suffix, if one exists
+ $output = &remove_suffix($Rawidx);
+ # append suffix ".ind"
+ $output = &quote_string("$output.ind");
+}
+
+# Run the intermediate filter if specified via -f.
+if ( $filtprg ) {
+ # create tmpfile
+ $tmpfile = "/tmp/xindy.$$";
+ &sig_setup; # setup signal handler for cleanup
+ print "Running filter: $filtprg < $Rawidx > $tmpfile\n";
+ system "$filtprg < $Rawidx > $tmpfile";
+ print "Finished running filter.\n\n";
+ $Rawidx = &quote_string($tmpfile);
+}
+
+# Prepare logfile option.
+if ( $logfile ) {
+ $logfile = ":logfile \"" . &quote_string($logfile) . "\"";
+}
+
+# Prepare trace-level.
+if ( $level ) {
+ $logging = ":trace-level $level";
+}
+
+# This is the complete LISP-SEXP needed to start the system.
+$xindy_cmd = "-x '(progn
+ $SEARCHPATH
+ (xindy:startup :idxstyle \"$Idxsty\"
+ :rawindex \"$Rawidx\"
+ :output \"$output\"
+ $logfile $version $tracing $logging)
+ (exit))'";
+
+
+# Run program and do final cleanup
+
+if ( $try ) {
+ print "$xindy_run $xindy_cmd";
+} else {
+ if ( $SigHandlerSet ) {
+ system "$xindy_run $xindy_cmd";
+ unlink $tmpfile;
+ } else {
+ exec "$xindy_run $xindy_cmd";
+ }
+}
+
+
+#----------------------------------------------------------------------
+#
+# $Log: xindy.in,v $
+# Revision 1.14 2005/05/02 19:16:27 jschrod
+# Support new RTE 2.2, built with CLISP 2.33.2, that needs -E option
+# to specify the default charset.
+# xindy also has proper version output in Lisp now, no need for
+# workarounds in script any more.
+#
+# Revision 1.13 2004/05/24 19:52:02 jschrod
+# Pass -B option to CLISP.
+# Change might be from Thomas Henlich <henlich@mmers1.mw.tu-dresden.de>,
+# made at 1999-12-22.
+#
+# Revision 1.12 2004/05/24 19:47:13 jschrod
+# Introduce new driver script, as part of the "Companion Release".
+#
+# Revision 1.11 1999/09/23 07:22:39 kehr
+# Fixed an exit code problem reported by Peter Meszaros
+# <pmeszaros@effice.hu>.
+#
+# Revision 1.10 1998/03/12 10:58:21 kehr
+# Fixed bug with -f option.
+#
+# Revision 1.9 1997/04/03 13:23:51 kehr
+# Many bugs fixed during testing.
+#
+# Revision 1.8 1997/04/03 09:38:54 kehr
+# First check-in of the rewritten xindy script. The former shell-script
+# has now been replaced by a perl-script.
+#
+
+# Local Variables:
+# mode: perl
+# End: