summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/l3kernel
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-01-30 22:06:14 +0000
committerKarl Berry <karl@freefriends.org>2015-01-30 22:06:14 +0000
commit1d5214eef547cee6ca964581213f2ce9e225405f (patch)
tree8ec01ec0918933109486cc058a6f1ee277d9727b /Master/texmf-dist/source/latex/l3kernel
parenteeb7bfc039d7f1751252a8e2bc1e1fa1701f3d1b (diff)
l3kernel (30jan15)
git-svn-id: svn://tug.org/texlive/trunk@36174 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/l3kernel')
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/expl3.dtx6
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/interface3.tex89
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3basics.dtx6
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx7
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx50
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3expan.dtx22
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3keys.dtx6
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3styleguide.tex242
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3syntax-changes.tex110
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3tl.dtx17
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3unicode-data.def389
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/ltunicode.dtx669
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/source3.tex106
13 files changed, 734 insertions, 985 deletions
diff --git a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
index 4f602f7daca..4b000250b5b 100644
--- a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: expl3.dtx Copyright (C) 1990-2014 The LaTeX3 Project
+%% File: expl3.dtx Copyright (C) 1990-2015 The LaTeX3 Project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -36,8 +36,8 @@
%<*driver|generic|package>
\def\ExplFileName{expl3}
\def\ExplFileDescription{L3 programming layer}
-\def\ExplFileDate{2014/11/25}
-\def\ExplFileVersion{5471}
+\def\ExplFileDate{2015/01/29}
+\def\ExplFileVersion{5502}
%</driver|generic|package>
%<*driver>
\documentclass[full]{l3doc}
diff --git a/Master/texmf-dist/source/latex/l3kernel/interface3.tex b/Master/texmf-dist/source/latex/l3kernel/interface3.tex
deleted file mode 100644
index 4c0a2761e92..00000000000
--- a/Master/texmf-dist/source/latex/l3kernel/interface3.tex
+++ /dev/null
@@ -1,89 +0,0 @@
-% \iffalse meta-comment
-%
-%% File: interfaces3.tex Copyright (C) 1990-2011 The LaTeX3 Project
-%%
-%% It may be distributed and/or modified under the conditions of the
-%% LaTeX Project Public License (LPPL), either version 1.3c of this
-%% license or (at your option) any later version. The latest version
-%% of this license is in the file
-%%
-%% http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%% http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%% Snapshots taken from the repository represent work in progress and may
-%% not work or may contain conflicting material! We therefore ask
-%% people _not_ to put them into distributions, archives, etc. without
-%% prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-%
-% \fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% This document will typeset the LaTeX3 interface descriptions a single
-% document. This will produce quite a large file (more than 170 pages
-% currently).
-%
-% There is also a full version of the sources (source3.tex) which additionally
-% also typesets the command implementations.
-%
-% Do not forget to generate the index (as explained on the terminal output
-% near the end of the run)!
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-\documentclass{l3doc}
-\listfiles
-
-\begin{document}
-
-\title{The \LaTeX3 Interfaces}
-\author{%
- The \LaTeX3 Project\thanks
- {%
- E-mail:
- \href{mailto:latex-team@latex-project.org}
- {latex-team@latex-project.org}%
- }%
-}
-
-\pagenumbering{roman}
-\maketitle
-
-%
-% First load all modules and typeset the documentation parts
-%
-
-\input{source3body} % all the individual modules
-
-\clearpage
-
-\begingroup
- \def\endash{--}
- \catcode`\-\active
- \def-{\futurelet\temp\indexdash}
- \def\indexdash{\ifx\temp-\endash\fi}
- \DelayPrintIndex
-\endgroup
-
-\end{document}
-
-
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
index ab565a10ab7..5e97b697fdf 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: l3basics.dtx Copyright (C) 1990-2014 The LaTeX3 project
+%% File: l3basics.dtx Copyright (C) 1990-2015 The LaTeX3 project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -37,7 +37,7 @@
\documentclass[full]{l3doc}
%</driver>
%<*driver|package>
-\GetIdInfo$Id: l3basics.dtx 5364 2014-08-24 20:19:24Z joseph $
+\GetIdInfo$Id: l3basics.dtx 5500 2015-01-27 14:37:04Z joseph $
{L3 Basic definitions}
%</driver|package>
%<*driver>
@@ -820,7 +820,7 @@
% If one or more tokens are wrapped in braces then in absorbing them
% the outer set will be removed. At the same time, the category code
% of each token is set when the token is read by a function (if it
-% is read more than once, the category code is determined by the
+% is read more than once, the category code is determined by
% the situation in force when first function absorbs the token).
%
% \begin{function}[EXP]{\use:n, \use:nn, \use:nnn, \use:nnnn}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
index 38c88835fab..e5e003f45c7 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: l3bootstrap.dtx Copyright (C) 2011-2014 The LaTeX3 project
+%% File: l3bootstrap.dtx Copyright (C) 2011-2015 The LaTeX3 project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -145,7 +145,7 @@
% \end{macro}
% \end{macro}
% \end{macro}
-\GetIdInfo$Id: l3bootstrap.dtx 5354 2014-08-23 01:35:39Z bruno $
+\GetIdInfo$Id: l3bootstrap.dtx 5500 2015-01-27 14:37:04Z joseph $
{L3 Bootstrap code}
%</driver|package>
%<*driver>
@@ -212,7 +212,8 @@
% \cs{ExplSyntaxOn} for the remainder of the code with the file. At the
% end of the file, \cs{ExplSyntaxOff} will be called to reverse this.
% (This is the same concept as \LaTeXe{} provides in turning on
-% \tn{makeatletter} within package and class code.)
+% \tn{makeatletter} within package and class code.) The \meta{date} should
+% be given in the format \meta{year}/\meta{month}/\meta{day}.
% \end{function}
%
% \begin{function}[updated = 2012-06-04]{\GetIdInfo}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
index eb1fa9c4b29..440ceb898bb 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: l3candidates.dtx Copyright(C) 2012-2014 The LaTeX3 Project
+%% File: l3candidates.dtx Copyright(C) 2012-2015 The LaTeX3 Project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -38,7 +38,7 @@
\documentclass[full]{l3doc}
%</driver>
%<*driver|package>
-\GetIdInfo$Id: l3candidates.dtx 5466 2014-11-23 12:37:29Z joseph $
+\GetIdInfo$Id: l3candidates.dtx 5499 2015-01-27 14:33:48Z joseph $
{L3 Experimental additions to l3kernel}
%</driver|package>
%<*driver>
@@ -1351,7 +1351,8 @@
%
% \begin{macro}{\box_resize:Nnn, \box_resize:cnn}
% \begin{macro}[aux]{\@@_resize_set_corners:N}
-% \begin{macro}[aux]{\@@_resize:Nn}
+% \begin{macro}[aux]{\@@_resize:N}
+% \begin{macro}[aux]{\@@_resize:NNN}
% Resizing a box starts by working out the various dimensions of the
% existing box.
% \begin{macrocode}
@@ -1377,9 +1378,9 @@
/ \dim_to_fp:n { \l_@@_top_dim - \l_@@_bottom_dim }
}
% \end{macrocode}
-% Hand off to the auxiliary which does the work.
+% Hand off to the auxiliary which does the rest of the work.
% \begin{macrocode}
- \@@_resize:Nn #1 {#2}
+ \@@_resize:N #1
\group_end:
}
}
@@ -1394,25 +1395,30 @@
% \end{macrocode}
% With at least one real scaling to do, the next phase is to find the new
% edge co-ordinates. In the $x$~direction this is relatively easy: just
-% scale the right edge. This is done using the absolute value of the
-% scale so that the new edge is in the correct place. In the $y$~direction,
-% both dimensions have to be scaled, and this again needs the absolute
-% scale value. Once that is all done, the common resize/rescale code can
-% be employed.
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_resize:Nn #1#2
- {
- \dim_set:Nn \l_@@_right_new_dim { \dim_abs:n {#2} }
- \dim_set:Nn \l_@@_bottom_new_dim
- { \fp_abs:n { \l_@@_scale_y_fp } \l_@@_bottom_dim }
- \dim_set:Nn \l_@@_top_new_dim
- { \fp_abs:n { \l_@@_scale_y_fp } \l_@@_top_dim }
+% scale the right edge. In the $y$~direction, both dimensions have to be
+% scaled, and this again needs the absolute scale value.
+% Once that is all done, the common resize/rescale code can be employed.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_resize:N #1
+ {
+ \@@_resize:NNN \l_@@_right_new_dim
+ \l_@@_scale_x_fp \l_@@_right_dim
+ \@@_resize:NNN \l_@@_bottom_new_dim
+ \l_@@_scale_y_fp \l_@@_bottom_dim
+ \@@_resize:NNN \l_@@_top_new_dim
+ \l_@@_scale_y_fp \l_@@_top_dim
\@@_resize_common:N #1
}
+\cs_new_protected:Npn \@@_resize:NNN #1#2#3
+ {
+ \dim_set:Nn #1
+ { \fp_to_dim:n { \fp_abs:n { #2 } * \dim_to_fp:n { #3 } } }
+ }
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \begin{macro}{\box_resize_to_ht:Nn, \box_resize_to_ht:cn}
% \begin{macro}{\box_resize_to_ht_plus_dp:Nn, \box_resize_to_ht_plus_dp:cn}
@@ -1436,7 +1442,7 @@
/ \dim_to_fp:n { \l_@@_top_dim }
}
\fp_set_eq:NN \l_@@_scale_x_fp \l_@@_scale_y_fp
- \@@_resize:Nn #1 {#2}
+ \@@_resize:N #1
\group_end:
}
}
@@ -1453,7 +1459,7 @@
/ \dim_to_fp:n { \l_@@_top_dim - \l_@@_bottom_dim }
}
\fp_set_eq:NN \l_@@_scale_x_fp \l_@@_scale_y_fp
- \@@_resize:Nn #1 {#2}
+ \@@_resize:N #1
\group_end:
}
}
@@ -1467,7 +1473,7 @@
\fp_set:Nn \l_@@_scale_x_fp
{ \dim_to_fp:n {#2} / \dim_to_fp:n { \l_@@_right_dim } }
\fp_set_eq:NN \l_@@_scale_y_fp \l_@@_scale_x_fp
- \@@_resize:Nn #1 {#2}
+ \@@_resize:N #1
\group_end:
}
}
@@ -1485,7 +1491,7 @@
\dim_to_fp:n {#3}
/ \dim_to_fp:n { \l_@@_top_dim }
}
- \@@_resize:Nn #1 {#2}
+ \@@_resize:N #1
\group_end:
}
}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
index 701a2ab6b02..7d708c411ac 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
@@ -37,7 +37,7 @@
\documentclass[full]{l3doc}
%</driver>
%<*driver|package>
-\GetIdInfo$Id: l3expan.dtx 5349 2014-08-22 21:46:59Z bruno $
+\GetIdInfo$Id: l3expan.dtx 5472 2014-11-27 09:10:40Z joseph $
{L3 Argument expansion}
%</driver|package>
%<*driver>
@@ -222,6 +222,26 @@
% you should stick to using |TF| type functions only as it does not
% try to finish any |\if... \fi:| itself!
%
+% If is important to not that both \texttt{f}- and \texttt{o}-type
+% expansion are concerned with the expansion of tokens from left to
+% right in their arguments. In particular, \texttt{o}-type expansion
+% applies to the first \emph{token} in the argument it receives: it
+% is conceptually similar to
+% \begin{verbatim}
+% \exp_after:wN <base function> \exp_after:wN { <argument> }
+% \end{verbatim}
+% At the same time, \texttt{f}-type expansion stops at the emph{first}
+% non-expandable token. This means for example that both
+% \begin{verbatim}
+% \tl_set:No \l_tmpa_tl { { \l_tmpa_tl } }
+% \end{verbatim}
+% and
+% \begin{verbatim}
+% \tl_set:Nf \l_tmpa_tl { { \l_tmpa_tl } }
+% \end{verbatim}
+% leave |\l_tmpa_tl| unchanged: |{| is the first token in the
+% argument and is non-expandable.
+%
% \section{Manipulating the first argument}
%
% These functions are described in detail: expansion of multiple tokens follows
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
index 49b443977de..c64d2a7dd3a 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: l3keys.dtx Copyright (C) 2006-2014 The LaTeX3 Project
+%% File: l3keys.dtx Copyright (C) 2006-2015 The LaTeX3 Project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -37,7 +37,7 @@
\documentclass[full]{l3doc}
%</driver>
%<*driver|package>
-\GetIdInfo$Id: l3keys.dtx 5354 2014-08-23 01:35:39Z bruno $
+\GetIdInfo$Id: l3keys.dtx 5500 2015-01-27 14:37:04Z joseph $
{L3 Key-value interfaces}
%</driver|package>
%<*driver>
@@ -235,7 +235,7 @@
% \begin{syntax}
% \meta{key} .code:n = \Arg{code}
% \end{syntax}
-% Stores the \meta{code} for execution when \meta{key} is used. The
+% Stores the \meta{code} for execution when \meta{key} is used.
% The \meta{code} can include one parameter (|#1|), which will be the
% \meta{value} given for the \meta{key}. The \texttt{x}-type variant
% will expand \meta{code} at the point where the \meta{key} is
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3styleguide.tex b/Master/texmf-dist/source/latex/l3kernel/l3styleguide.tex
deleted file mode 100644
index c37c9e24dff..00000000000
--- a/Master/texmf-dist/source/latex/l3kernel/l3styleguide.tex
+++ /dev/null
@@ -1,242 +0,0 @@
-\iffalse meta-comment
-
-File l3styleguide.tex Copyright (C) 2011,2012 The LaTeX3 Project
-
-It may be distributed and/or modified under the conditions of the
-LaTeX Project Public License (LPPL), either version 1.3c of this
-license or (at your option) any later version. The latest version
-of this license is in the file
-
- http://www.latex-project.org/lppl.txt
-
-This file is part of the "l3kernel bundle" (The Work in LPPL)
-and all files in that bundle must be distributed together.
-
-The released version of this bundle is available from CTAN.
-
-\fi
-
-\documentclass{l3doc}
-\usepackage{svn-multi}
-
-\svnid{$Id: l3styleguide.tex 2772 2011-09-07 15:07:41Z joseph $}
-\def\filedate{\svnfileyear/\svnfilemonth/\svnfileday}
-
-\title{%
- The \LaTeX3 kernel: style guide for code authors%
- \thanks
- {%
- This file describes v\svnfilerev,
- last revised \filedate.
- }%
-}
-\author{%
- The \LaTeX3 Project\thanks
- {%
- E-mail:
- \href{mailto:latex-team@latex-project.org}%
- {latex-team@latex-project.org}%
- }%
-}
-\date{Released \filedate}
-
-\begin{document}
-
-\maketitle
-
-\tableofcontents
-
-\section{Introduction}
-
-This document is intended as a style guide for authors of code and
-documentation for the \LaTeX3 kernel. It covers both aspects of coding
-style and the formatting of the sources. The aim of providing these
-guidelines is help ensure consistency of the code and sources from
-different authors. Experience suggests that in the long-term this helps
-with maintenance. There will of course be places where there are
-exceptions to these guidelines: common sense should always be
-applied!
-
-\section{Documentation style}
-
-\LaTeX3 source and documentation should be written using the document
-class \cls{l3doc} in \file{dtx} format. This class provides a number
-of logical mark up elements, which should be used where possible.
-In the main, this is standard \LaTeX{} practice, but there are a
-few points to highlight:
-\begin{itemize}
- \item
- Where possible, use \cs{cs} to mark up control sequences
- rather than using a verbatim environment.
- \item
- Arguments which are given in braces should be marked using
- \cs{Arg} when code-level functions are discussed, but using
- \cs{marg} for document functions.
- \item
- The names \TeX{}, \LaTeX{}, \emph{etc}.\ use the normal logical mark
- up followed by an empty group (|{}|), with the exception of |\LaTeX3|,
- where the number should follow directly.
- \item
- Where in line verbatim text is used, it should be marked up
- using the \verb=|...|= construct (\emph{i.e.}~vertical bars delimit
- the verbatim text).
- \item In line quotes should be marked up using the \cs{enquote}
- function.
- \item
- Where numbers in the source have a mathematical meaning,
- they should be included in math mode. Such in-line math mode
- material should be marked up using |$...$| and \emph{not}
- |\(...\)|.
-\end{itemize}
-
-Line length in the source files should be under $80$
-characters where possible, as this helps keep everything on the screen
-when editing files. In the \file{dtx} format, documentation lines start
-with a \texttt{\%}, which is usually followed by a space to leave a
-\enquote{comment margin} at the start of each line.
-
-As with code indenting (see later), nested environments and arguments
-should be indented by (at least) two spaces to make the nature of the nesting
-clear. Thus for example a typical arrangement for the \env{function}
-environment might be
-\begin{verbatim*}
-\begin{function}{\seq_gclear:N, \seq_gclear:c}
- \begin{syntax}
- \cs{seq_gclear:N} \meta{sequence}
- \end{syntax}
- Clears all entries from the \meta{sequence} globally.
-\end{function}
-\end{verbatim*}
-The \enquote{outer} \verb*|% \begin{function}| should have the customary
-space after the |%| character at the start of the line.
-
-In general, a single \env{function} or \env{macro} environment should be
-used for a group of closely-related functions, for example argument
-specification variants. In such cases, a comma-separated list should be
-used, as shown in the preceding example.
-
-\section{Format of the code itself}
-
-The requirement for less than $80$ characters per line applies to the code
-itself as well as the surrounding documentation. A number of the general
-style principles for \LaTeX3 code apply: these are described in the following
-paragraph and an example is then given.
-
-With the exception of simple runs of parameter (|{#1}|, |#1#2|,
-\emph{etc.}), everything should be divided up using spaces to make the code
-more readable. In general, these will be single spaces, but in some
-places it makes more sense to align parts of the code to emphasise
-similarity. (Tabs should not be used for introducing white space.)
-
-Each conceptually-separate step in a function should be on a separate
-line, to make the meaning clearer. Hence the \texttt{false} branch
-in the example uses two lines for the two auxiliary function uses.
-
-Within the definition, a two-space indent should be used to show each
-\enquote{level} of code. Thus in the example \cs{tl_if_empty:nTF} is
-indented by two spaces, but the two branches are indented by four
-spaces. Within the \texttt{false} branch, the need for multiple lines
-means that an additional two-space indent should be used to show that
-these lines are all part of the brace group.
-
-The result of these lay-out conventions is code which will in general
-look like the example:
-\begin{verbatim*}
-\cs_new:Npn \module_foo:nn #1#2
- {
- \tl_if_empty:nTF {#1}
- { \module_foo_aux:n { X #2 } }
- {
- \module_foo_aux:nn {#1} {#2}
- \module_foo_aux:n { #1 #2 }
- }
- }
-\end{verbatim*}
-
-\section{Code conventions}
-
-All code-level functions should be \enquote{long} if they accept any
-arguments, even if it seems \enquote{very unlikely} that a \cs{par} token
-will be passed. Thus \cs{cs_new_nopar:Npn} and so forth should only be used
-to create functions which accept no arguments at all.
-
-The expandability of each function should be well-defined. Functions which
-cannot be fully expanded must be \texttt{protected}. This means that expandable
-functions must themselves only contain expandable material. Functions which
-use any non-expandable material must be defined using \cs{cs_new_protected:Npn}
-or similar.
-
-When using \cs{cs_generate_variant:Nn}, group related variants together
-to make the pattern clearer. A common example is variants of a function
-which has an \texttt{N}-type first argument:
-\begin{verbatim}
- \cs_generate_variant:Nn \foo:Nn { NV , No }
- \cs_generate_variant:Nn \foo:Nn { c , cV , co }
-\end{verbatim}
-
-There may be cases where omitting braces from \texttt{o}-type arguments
-is desirable for performance reasons. This should only be done if the
-argument is a single token, thus for example
-\begin{verbatim}
- \tl_set:No \l_some_tl \l_some_other_tl
-\end{verbatim}
-remains clear and can be used where appropriate.
-
-\section{Private and internal functions}
-
-Private functions (those starting \cs{__}) should not be used between modules.
-The only exception is where a \enquote{family} of modules share some
-\enquote{internal} methods: this happens most obviously in the kernel itself.
-Any internal functions or variables \emph{must} be documented in the same way
-as public ones.
-
-The \pkg{l3docstrip} method should be used for internal functions in a module.
-This requires a line
-\begin{quote}
- \ttfamily
- \%<@@=\meta{module}>
-\end{quote}
-at the start of the source (\texttt{.dtx}) file, with internal functions
-then written in the form
-\begin{verbatim}
- \cs_new_protected:Npn \@@_function:nn #1#2
- ...
-\end{verbatim}
-
-\section{Auxiliary functions}
-
-In general, the team encourages the use of descriptive names in \LaTeX3 code.
-Thus many helper functions will have names which describe briefly what they do,
-rather than simply indicating that they are auxiliary to some higher-level
-function. However, there are places where one or more \texttt{aux} functions
-are required. Where possible, these should be differentiated by signature
-\begin{verbatim}
- \cs_new_protected:Npn \@@_function:nn #1#2
- {
- ...
- }
- \cs_new_protected:Npn \@@_function_aux:nn #1#2
- {
- ...
- }
- \cs_new_protected:Npn \@@_function_aux:w #1#2 \q_stop
- {
- ...
- }
-\end{verbatim}
-Where more than one auxiliary shares the same signature, the recommended naming
-scheme is \texttt{auxi}, \texttt{auxii} and so on.
-\begin{verbatim}
- \cs_new_protected:Npn \@@_function_auxi:nn #1#2
- {
- ...
- }
- \cs_new_protected:Npn \@@_function_auxii:nn #1#2
- {
- ...
- }
-\end{verbatim}
-The use of \texttt{aux_i}, \texttt{aux_ii}, \emph{etc.}\ is discouraged as this
-conflicts with the convention used by \cs{use_i:nn} and related functions.
-
-\end{document}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3syntax-changes.tex b/Master/texmf-dist/source/latex/l3kernel/l3syntax-changes.tex
deleted file mode 100644
index 4dfc70e0e97..00000000000
--- a/Master/texmf-dist/source/latex/l3kernel/l3syntax-changes.tex
+++ /dev/null
@@ -1,110 +0,0 @@
-\iffalse meta-comment
-
-File l3syntax-changes.tex Copyright (C) 2011-2012 The LaTeX3 Project
-
-It may be distributed and/or modified under the conditions of the
-LaTeX Project Public License (LPPL), either version 1.3c of this
-license or (at your option) any later version. The latest version
-of this license is in the file
-
- http://www.latex-project.org/lppl.txt
-
-This file is part of the "l3kernel bundle" (The Work in LPPL)
-and all files in that bundle must be distributed together.
-
-The released version of this bundle is available from CTAN.
-
-\fi
-
-\documentclass{l3doc}
-
-\usepackage{svn-multi}
-
-\svnid{$Id: l3syntax-changes.tex 4048 2012-08-02 09:49:10Z joseph $}
-\def\filedate{\svnfileyear/\svnfilemonth/\svnfileday}
-
-\title{%
- Syntax changes in \LaTeX3 functions
- \thanks
- {%
- This file describes v\svnfilerev,
- last revised \filedate.
- }%
-}
-\author{%
- The \LaTeX3 Project\thanks
- {%
- E-mail:
- \href{mailto:latex-team@latex-project.org}%
- {latex-team@latex-project.org}%
- }%
-}
-\date{Released \filedate}
-
-\newcommand{\TF}{\textit{(TF)}}
-
-\begin{document}
-
-\maketitle
-
-This file lists functions whose syntax has changed after August 2011,
-with an approximate date.
-
-\section{August 2011}
-
-\begin{itemize}
- \item \cs{tl_if_single:n\TF} recognized any non-zero number of
- explicit spaces as \meta{true}, and did not ignore trailing spaces.
- Now it is \meta{true} for
- \[
- \meta{optional spaces}
- \meta{normal token or brace group}
- \meta{optional spaces}.
- \]
- \item \cs{tl_reverse:n} stripped outer braces and lost unprotected spaces.
- Now it keeps spaces, leaves unbraced single tokens unbraced, and
- braced groups braced.
- \item \cs{tl_trim_spaces:n} only removed one leading and trailing space.
- Now removes recursively. Also, on the left it used to strip implicit
- and explicit spaces with any character code. Now it strips only explicit
- space characters $(32,10)$.
-\end{itemize}
-
-\section{September 2011}
-
-\begin{itemize}
-\item clist functions which receive an \texttt{n}-type comma list argument
- now trim spaces from each item in the argument.
-\end{itemize}
-
-\section{June 2012}
-
-\begin{itemize}
- \item Access to list functions now indexes from~$1$, not from~$0$.
- This applies to multiple choices in the \pkg{l3keys} module and
- the \cs{clist_item:Nn}, \cs{seq_item:Nn} and \cs{tl_item:Nn}
- functions.
- \item \cs{tl_trim_spaces:n} now requires a variable number of
- expansions to fully expand, rather than exactly two. Of course,
- \texttt{x}-type expansion still correctly evaluates this function.
-\end{itemize}
-
-\section{July 2012}
-
-\begin{itemize}
- \item The \cs{tl_if_head_eq_meaning:nN}, \cs{tl_if_head_eq_catcode:nN}
- and \cs{tl_if_head_eq_charcode:nN} conditionals now never match when
- their first argument is empty.
-\end{itemize}
-
-\section{August 2012}
-
-\begin{itemize}
- \item \cs{lua_now:x} is now a standard \texttt{x}-type expansion of
- \cs{lua_now:n}, which does no expansion. Engine-level expansion is moved
- to \cs{lua_now_x:n}, reflecting the fact that this is non-standard in the
- same way as for example \cs{str_if_eq_x:nn(TF)}.
-\end{itemize}
-
-
-\end{document}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
index 59e49c70cd7..0d781af663c 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: l3tl.dtx Copyright (C) 1990-2014 The LaTeX3 Project
+%% File: l3tl.dtx Copyright (C) 1990-2015 The LaTeX3 Project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -37,7 +37,7 @@
\documentclass[full]{l3doc}
%</driver>
%<*driver|package>
-\GetIdInfo$Id: l3tl.dtx 5460 2014-11-19 10:09:42Z joseph $
+\GetIdInfo$Id: l3tl.dtx 5500 2015-01-27 14:37:04Z joseph $
{L3 Token lists}
%</driver|package>
%<*driver>
@@ -1202,20 +1202,9 @@
% \begin{variable}{\c_job_name_tl}
% Inherited from the \LaTeX3 name for the primitive: this needs to
% actually contain the text of the job name rather than the name of
-% the primitive, of course. \LuaTeX{} does not quote file names containing
-% spaces, whereas \pdfTeX{} and \XeTeX{} do. So there may be a correction to
-% make in the \LuaTeX{} case.
+% the primitive, of course.
% \begin{macrocode}
%<*initex>
-\luatex_if_engine:T
- {
- \tex_everyjob:D \exp_after:wN
- {
- \tex_the:D \tex_everyjob:D
- \lua_now_x:n
- { dofile ( assert ( kpse.find_file ("lualatexquotejobname.lua" ) ) ) }
- }
- }
\tex_everyjob:D \exp_after:wN
{
\tex_the:D \tex_everyjob:D
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3unicode-data.def b/Master/texmf-dist/source/latex/l3kernel/l3unicode-data.def
deleted file mode 100644
index c2629626578..00000000000
--- a/Master/texmf-dist/source/latex/l3kernel/l3unicode-data.def
+++ /dev/null
@@ -1,389 +0,0 @@
-%% This is the file l3unicode-data.def
-%% generated using the script l3unicode-data.dtx.
-%%
-%% The data here are derived from the files
-%% - UnicodeData.txt
-%% - SpecialCasing.txt
-%% - CaseFolding.txt
-%% which are maintained by the Unicode Consortium.
-%%
-%% Generated on 2014-11-23.
-%%
-\ProvidesExplFile {l3unicode-data.def} {2014/11/23} {5465} {L3 Unicode data}
-\clist_const:Nn \c__tl_after_final_sigma_clist
- { 0021 , 0022 , 0029 , 002C , 002E , 003A , 003B , 003F , 005D , 007D }
-\clist_const:Nn \c__tl_mixed_skip_clist
- { 0028 , 005B , 0060 , 007B }
-\pdftex_if_engine:T
- {
- \group_begin:
- \cs_set_protected:Npn \__unicode_tmp:NN #1#2
- {
- \quark_if_recursion_tail_stop:N #1
- \exp_after:wN \__unicode_tmp:NNNNNNN
- \tex_number:D \__int_eval:w `#1 \exp_after:wN \__int_eval_end:
- \tex_number:D \__int_eval:w 100 + `#2 \__int_eval_end:
- #1 #2
- \__unicode_tmp:NN
- }
- \cs_set_protected:Npn \__unicode_tmp:NNNNNNN #1#2#3#4#5#6#7
- {
- \tl_const:cx { c__str_fold_ #1 _X_ #2 _ tl }
- { \tl_to_str:n { #6#7 } }
- \tl_const:cn { c__tl_lower_ #1 _X_ #2 _ tl } { #6#7 }
- \tl_const:cn { c__tl_upper_ #4 _X_ #5 _ tl } { #7#6 }
- }
- \__unicode_tmp:NN
- AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz
- \q_recursion_tail ? \q_recursion_stop
- \group_end:
- \int_step_inline:nnnn { 0 } { 1 } { 9 }
- {
- \int_step_inline:nnnn { 0 } { 1 } { 9 }
- {
- \tl_if_exist:cF { c__str_fold_ #1 _X_ ##1 _ tl }
- {
- \tl_const:cn { c__str_fold_ #1 _X_ ##1 _ tl } { }
- }
- \tl_if_exist:cF { c__tl_lower_ #1 _X_ ##1 _ tl }
- {
- \tl_const:cn { c__tl_lower_ #1 _X_ ##1 _ tl } { }
- }
- \tl_if_exist:cF { c__tl_upper_ #1 _X_ ##1 _ tl }
- {
- \tl_const:cn { c__tl_upper_ #1 _X_ ##1 _ tl } { }
- }
- }
- }
- \tl_const:Nn \c__tl_mixed_exceptions_tl { }
- \tl_const:Nn \c__tl_std_sigma_tl { }
- \tl_const:Nn \c__tl_final_sigma_tl { }
- \tl_const:Nn \c__tl_accents_lt_tl { }
- \tl_const:Nn \c__tl_dot_above_tl { }
- \tl_const:Nn \c__tl_dotless_i_tl { I }
- \tl_const:Nn \c__tl_dotted_I_tl { i }
- \tex_endinput:D
- }
-\tl_const:cn { c__tl_upper_0_X_0_tl } { dDьЬոՈὀὈᾤ{ὬΙ}ⳬⳫ𐐨𐐀𑣜𑢼 }
-\tl_const:cn { c__tl_upper_0_X_1_tl } { eEĭĬǵǴəƏϩϨэЭұҰԕԔչՉḕḔṹṸờỜὁὉᾥ{ὭΙ}ⲉⲈꙩꙨ𐐩𐐁𑣝𑢽 }
-\tl_const:cn { c__tl_upper_0_X_2_tl } { fFƒƑюЮպՊὂὊᾦ{ὮΙ}ⳮⳭ𐐪𐐂𑣞𑢾 }
-\tl_const:cn { c__tl_upper_0_X_3_tl } { gGįĮɛƐϫϪяЯҳҲԗԖջՋḗḖṻṺởỞὃὋᾧ{ὯΙ}ⲋⲊꙫꙪꜳꜲꞗꞖ𐐫𐐃𑣟𑢿 }
-\tl_const:cn { c__tl_upper_0_X_4_tl } { hHɜꞫѐЀռՌὄὌᾨ{ὨΙ}𐐬𐐄 }
-\tl_const:cn { c__tl_upper_0_X_5_tl } { iIıIƕǶǹǸϭϬёЁҵҴԙԘսՍḙḘṽṼỡỠὅὍᾩ{ὩΙ}ⲍⲌꙭꙬꜵꜴꞙꞘ𐐭𐐅 }
-\tl_const:cn { c__tl_upper_0_X_6_tl } { jJђЂվՎᾪ{ὪΙ}𐐮𐐆 }
-\tl_const:cn { c__tl_upper_0_X_7_tl } { kK{ij}{IJ}ǻǺϯϮѓЃҷҶԛԚտՏḛḚṿṾợỢᾫ{ὫΙ}ⲏⲎⳳⳲꜷꜶꞛꞚ𐐯𐐇 }
-\tl_const:cn { c__tl_upper_0_X_8_tl } { lLɠƓϰΚєЄրՐᾬ{ὬΙ}𐐰𐐈 }
-\tl_const:cn { c__tl_upper_0_X_9_tl } { mMĵĴƙƘǽǼɡꞬϱΡѕЅҹҸԝԜցՑḝḜẁẀụỤᾭ{ὭΙ}ⲑⲐꜹꜸꞝꞜ𐐱𐐉 }
-\tl_const:cn { c__tl_upper_1_X_0_tl } { nNƚȽϲϹіІւՒᾮ{ὮΙ}𐐲𐐊 }
-\tl_const:cn { c__tl_upper_1_X_1_tl } { oOķĶǿǾɣƔϳͿїЇһҺԟԞփՓḟḞẃẂủỦᾯ{ὯΙ}ⲓⲒꜻꜺꞟꞞ𐐳𐐋 }
-\tl_const:cn { c__tl_upper_1_X_2_tl } { pPΐ{Ϊ́}јЈքՔᾰᾸⰰⰀ𐐴𐐌 }
-\tl_const:cn { c__tl_upper_1_X_3_tl } { qQȁȀɥꞍϵΕљЉҽҼԡԠօՕḡḠẅẄứỨᾱᾹⰱⰁⲕⲔꜽꜼꞡꞠ𐐵𐐍 }
-\tl_const:cn { c__tl_upper_1_X_4_tl } { rRĺĹƞȠɦꞪњЊֆՖᾲ{ᾺΙ}ⰲⰂ𐐶𐐎 }
-\tl_const:cn { c__tl_upper_1_X_5_tl } { sSȃȂћЋҿҾԣԢ{և}{{ԵՒ}}ḣḢẇẆừỪᾳ{ΑΙ}ⰳⰃⲗⲖꜿꜾꞣꞢ𐐷𐐏 }
-\tl_const:cn { c__tl_upper_1_X_6_tl } { tTļĻɨƗϸϷќЌὐ{Υ̓}ᾴ{ΆΙ}ⰴⰄ𐐸𐐐 }
-\tl_const:cn { c__tl_upper_1_X_7_tl } { uUơƠȅȄɩƖѝЍԥԤḥḤẉẈửỬὑὙⰵⰅⲙⲘꝁꝀꞥꞤ𐐹𐐑 }
-\tl_const:cn { c__tl_upper_1_X_8_tl } { vVľĽўЎӂӁὒ{Υ̓̀}ᾶ{Α͂}ⰶⰆ𐐺𐐒 }
-\tl_const:cn { c__tl_upper_1_X_9_tl } { wWƣƢȇȆɫⱢϻϺџЏԧԦḧḦẋẊữỮὓὛᾷ{Α͂Ι}ⰷⰇⲛⲚꝃꝂꞧꞦ𐐻𐐓 }
-\tl_const:cn { c__tl_upper_2_X_0_tl } { xX{ŀ}{Ŀ}ɬꞭӄӃὔ{Υ̓́}ⰸⰈⴀႠ𐐼𐐔 }
-\tl_const:cn { c__tl_upper_2_X_1_tl } { yYƥƤȉȈѡѠԩԨḩḨẍẌựỰὕὝⰹⰉⲝⲜⴁႡꝅꝄꞩꞨ𐐽𐐕 }
-\tl_const:cn { c__tl_upper_2_X_2_tl } { zZłŁӆӅὖ{Υ̓͂}ⰺⰊⴂႢ𐐾𐐖 }
-\tl_const:cn { c__tl_upper_2_X_3_tl } { ß{SS}ȋȊɯƜѣѢԫԪḫḪẏẎỳỲὗὟⰻⰋⲟⲞⴃႣꝇꝆ𐐿𐐗 }
-\tl_const:cn { c__tl_upper_2_X_4_tl } { àÀńŃƨƧӈӇᾼ{ΑΙ}ⓐⒶⰼⰌⴄႤ𐑀𐐘 }
-\tl_const:cn { c__tl_upper_2_X_5_tl } { áÁȍȌɱⱮѥѤԭԬḭḬẑẐỵỴⓑⒷⰽⰍⲡⲠⴅႥꚁꚀꝉꝈ𐑁𐐙 }
-\tl_const:cn { c__tl_upper_2_X_6_tl } { âÂņŅɲƝӊӉιΙⅎℲⓒⒸⰾⰎⴆႦ𐑂𐐚 }
-\tl_const:cn { c__tl_upper_2_X_7_tl } { ãÃȏȎѧѦԯԮḯḮẓẒỷỶⓓⒹⰿⰏⲣⲢⴇႧꚃꚂꝋꝊ𐑃𐐛 }
-\tl_const:cn { c__tl_upper_2_X_8_tl } { äÄňŇӌӋⓔⒺⱀⰐⴈႨ𐑄𐐜 }
-\tl_const:cn { c__tl_upper_2_X_9_tl } { åÅ{ʼn}{{ʼN}}ƭƬȑȐɵƟѩѨḱḰẕẔỹỸⓕⒻⱁⰑⲥⲤⴉႩꚅꚄꝍꝌ𐑅𐐝 }
-\tl_const:cn { c__tl_upper_3_X_0_tl } { æÆӎӍẖ{H̱}ῂ{ῊΙ}ⓖⒼⱂⰒⴊႪ𐑆𐐞 }
-\tl_const:cn { c__tl_upper_3_X_1_tl } { çÇŋŊȓȒѫѪӏӀḳḲẗ{T̈}ỻỺῃ{ΗΙ}ⓗⒽⱃⰓⲧⲦⴋႫꚇꚆꝏꝎ𐑇𐐟 }
-\tl_const:cn { c__tl_upper_3_X_2_tl } { èÈưƯẘ{W̊}ὠὨῄ{ΉΙ}ⓘⒾⱄⰔⴌႬ𐑈𐐠 }
-\tl_const:cn { c__tl_upper_3_X_3_tl } { éÉōŌȕȔѭѬӑӐḵḴẙ{Y̊}ỽỼὡὩⓙⒿⱅⰕⲩⲨⴍႭꚉꚈꝑꝐ𐑉𐐡 }
-\tl_const:cn { c__tl_upper_3_X_4_tl } { êÊẚ{Aʾ}ὢὪῆ{Η͂}ⓚⓀⱆⰖⴎႮ𐑊𐐢 }
-\tl_const:cn { c__tl_upper_3_X_5_tl } { ëËŏŎȗȖѯѮӓӒḷḶẛṠỿỾὣὫῇ{Η͂Ι}ⓛⓁⱇⰗⲫⲪⴏႯꚋꚊꝓꝒ𐑋𐐣 }
-\tl_const:cn { c__tl_upper_3_X_6_tl } { ìÌƴƳἀἈὤὬⓜⓂⱈⰘⴐႰ𐑌𐐤 }
-\tl_const:cn { c__tl_upper_3_X_7_tl } { íÍőŐșȘɽⱤͅΙѱѰӕӔḹḸἁἉὥὭⓝⓃⱉⰙⲭⲬⴑႱꚍꚌꝕꝔ𐑍𐐥 }
-\tl_const:cn { c__tl_upper_3_X_8_tl } { îÎƶƵἂἊὦὮⓞⓄⱊⰚⴒႲ𐑎𐐦 }
-\tl_const:cn { c__tl_upper_3_X_9_tl } { ïÏœŒțȚѳѲӗӖḻḺἃἋὧὯⓟⓅⱋⰛⲯⲮⴓႳꚏꚎꝗꝖ𐑏𐐧 }
-\tl_const:cn { c__tl_upper_4_X_0_tl } { ðÐʀƦάΆἄἌῌ{ΗΙ}ⓠⓆⱌⰜⴔႴ }
-\tl_const:cn { c__tl_upper_4_X_1_tl } { ñÑŕŔƹƸȝȜέΈѵѴәӘḽḼạẠἅἍⓡⓇⱍⰝⲱⲰⴕႵꚑꚐꝙꝘ }
-\tl_const:cn { c__tl_upper_4_X_2_tl } { òÒήΉἆἎⓢⓈⱎⰞⴖႶ }
-\tl_const:cn { c__tl_upper_4_X_3_tl } { óÓŗŖȟȞʃƩίΊѷѶӛӚḿḾảẢἇἏⓣⓉⱏⰟⲳⲲⴗႷꚓꚒꝛꝚ }
-\tl_const:cn { c__tl_upper_4_X_4_tl } { ôÔΰ{Ϋ́}ῐῘⓤⓊⱐⰠⴘႸ }
-\tl_const:cn { c__tl_upper_4_X_5_tl } { õÕřŘƽƼαΑѹѸӝӜᵹꝽṁṀấẤῑῙⓥⓋⱑⰡⲵⲴⴙႹꚕꚔꝝꝜaA }
-\tl_const:cn { c__tl_upper_4_X_6_tl } { öÖβΒῒ{Ϊ̀}ⓦⓌⱒⰢⴚႺbB }
-\tl_const:cn { c__tl_upper_4_X_7_tl } { śŚƿǷȣȢʇꞱγΓѻѺӟӞṃṂầẦΐ{Ϊ́}ⓧⓍⱓⰣⲷⲶⴛႻꚗꚖꝟꝞcC }
-\tl_const:cn { c__tl_upper_4_X_8_tl } { øØʈƮδΔὰᾺⓨⓎⱔⰤⴜႼdD }
-\tl_const:cn { c__tl_upper_4_X_9_tl } { ùÙŝŜȥȤʉɄεΕѽѼӡӠᵽⱣṅṄẩẨάΆⓩⓏⱕⰥⲹⲸⴝႽꚙꚘꝡꝠeE }
-\tl_const:cn { c__tl_upper_5_X_0_tl } { úÚʊƱζΖὲῈῖ{Ι͂}ⱖⰦⴞႾfF }
-\tl_const:cn { c__tl_upper_5_X_1_tl } { ûÛşŞȧȦʋƲηΗѿѾӣӢṇṆẫẪέΈῗ{Ϊ͂}ⱗⰧⲻⲺⴟႿꚛꚚꝣꝢgG }
-\tl_const:cn { c__tl_upper_5_X_2_tl } { üÜʌɅθΘἐἘὴῊⱘⰨⴠჀhH }
-\tl_const:cn { c__tl_upper_5_X_3_tl } { ýÝšŠDžDŽȩȨιΙҁҀӥӤṉṈậẬἑἙήΉⱙⰩⲽⲼⴡჁꝥꝤiI }
-\tl_const:cn { c__tl_upper_5_X_4_tl } { þÞdžDŽκΚἒἚὶῚⱚⰪⴢჂjJ }
-\tl_const:cn { c__tl_upper_5_X_5_tl } { ÿŸţŢȫȪλΛӧӦṋṊắẮἓἛίΊⱛⰫⲿⲾⴣჃꝧꝦkK }
-\tl_const:cn { c__tl_upper_5_X_6_tl } { LjLJμΜἔἜὸῸⱜⰬⴤჄff{FF}lL }
-\tl_const:cn { c__tl_upper_5_X_7_tl } { āĀťŤljLJȭȬνΝөӨṍṌằẰἕἝόΌⱝⰭⳁⳀⴥჅꝩꝨfi{FI}mM }
-\tl_const:cn { c__tl_upper_5_X_8_tl } { ʒƷξΞὺῪⱞⰮfl{FL}nN }
-\tl_const:cn { c__tl_upper_5_X_9_tl } { ăĂŧŦNjNJȯȮοΟӫӪṏṎẳẲύΎⳃⳂⴧჇꝫꝪffi{FFI}oO }
-\tl_const:cn { c__tl_upper_6_X_0_tl } { njNJπΠὼῺῠῨⅰⅠffl{FFL}pP }
-\tl_const:cn { c__tl_upper_6_X_1_tl } { ąĄũŨȱȰρΡӭӬṑṐẵẴώΏῡῩ{ⅱ}{Ⅱ}ⱡⱠⳅⳄꙁꙀꝭꝬſt{ST}qQ }
-\tl_const:cn { c__tl_upper_6_X_2_tl } { ǎǍςΣῢ{Ϋ̀}{ⅲ}{Ⅲ}st{ST}rR }
-\tl_const:cn { c__tl_upper_6_X_3_tl } { ćĆūŪȳȲσΣҋҊӯӮṓṒặẶΰ{Ϋ́}{ⅳ}{Ⅳ}ⳇⳆꙃꙂꝯꝮsS }
-\tl_const:cn { c__tl_upper_6_X_4_tl } { ǐǏτΤᾀ{ἈΙ}ῤ{Ρ̓}ⅴⅤtT }
-\tl_const:cn { c__tl_upper_6_X_5_tl } { ĉĈŭŬυΥҍҌӱӰṕṔẹẸᾁ{ἉΙ}ῥῬ{ⅵ}{Ⅵ}ⱥȺⳉⳈⴭჍꙅꙄuU }
-\tl_const:cn { c__tl_upper_6_X_6_tl } { ǒǑφΦᾂ{ἊΙ}ῦ{Υ͂}{ⅶ}{Ⅶ}ⱦȾvV }
-\tl_const:cn { c__tl_upper_6_X_7_tl } { ċĊůŮχΧҏҎӳӲṗṖẻẺᾃ{ἋΙ}ῧ{Ϋ͂}{ⅷ}{Ⅷ}ⳋⳊꙇꙆwW }
-\tl_const:cn { c__tl_upper_6_X_8_tl } { ǔǓψΨἠἨᾄ{ἌΙ}{ⅸ}{Ⅸ}ⱨⱧxX }
-\tl_const:cn { c__tl_upper_6_X_9_tl } { čČűŰωΩґҐӵӴṙṘẽẼἡἩᾅ{ἍΙ}ⅹⅩⳍⳌꙉꙈyY }
-\tl_const:cn { c__tl_upper_7_X_0_tl } { ǖǕʞꞰϊΪἢἪᾆ{ἎΙ}ⅺⅪⱪⱩzZ }
-\tl_const:cn { c__tl_upper_7_X_1_tl } { ďĎųŲϋΫғҒӷӶṛṚếẾἣἫᾇ{ἏΙ}ⅻⅫⳏⳎꙋꙊ }
-\tl_const:cn { c__tl_upper_7_X_2_tl } { ǘǗȼȻόΌаАἤἬᾈ{ἈΙ}ⅼⅬⱬⱫ𑣀𑢠 }
-\tl_const:cn { c__tl_upper_7_X_3_tl } { đĐŵŴύΎбБҕҔӹӸṝṜềỀἥἭᾉ{ἉΙ}ⅽⅭⳑⳐꙍꙌ𑣁𑢡 }
-\tl_const:cn { c__tl_upper_7_X_4_tl } { ǚǙώΏвВἦἮᾊ{ἊΙ}ⅾⅮꝺꝹ𑣂𑢢 }
-\tl_const:cn { c__tl_upper_7_X_5_tl } { ēĒŷŶȿⱾгГҗҖӻӺṟṞểỂἧἯᾋ{ἋΙ}ⅿⅯⳓⳒꙏꙎﬓ{ՄՆ}𑣃𑢣 }
-\tl_const:cn { c__tl_upper_7_X_6_tl } { ǜǛɀⱿϐΒдДᾌ{ἌΙ}ꝼꝻﬔ{ՄԵ}𑣄𑢤 }
-\tl_const:cn { c__tl_upper_7_X_7_tl } { ĕĔǝƎϑΘеЕҙҘӽӼաԱṡṠễỄᾍ{ἍΙ}ⳕⳔꙑꙐﬕ{ՄԻ}𑣅𑢥 }
-\tl_const:cn { c__tl_upper_7_X_8_tl } { źŹɂɁжЖբԲᾎ{ἎΙ}ῲ{ῺΙ}ﬖ{ՎՆ}𑣆𑢦 }
-\tl_const:cn { c__tl_upper_7_X_9_tl } { ėĖǟǞзЗқҚӿӾգԳṣṢệỆᾏ{ἏΙ}ῳ{ΩΙ}ⱳⱲⳗⳖꙓꙒꝿꝾﬗ{ՄԽ}𑣇𑢧 }
-\tl_const:cn { c__tl_upper_8_X_0_tl } { żŻиИդԴᾐ{ἨΙ}ῴ{ΏΙ}ↄↃ𑣈𑢨 }
-\tl_const:cn { c__tl_upper_8_X_1_tl } { µΜęĘǡǠͱͰϕΦйЙҝҜԁԀեԵḁḀṥṤỉỈᾑ{ἩΙ}ⳙⳘꙕꙔꞁꞀ𑣉𑢩 }
-\tl_const:cn { c__tl_upper_8_X_2_tl } { žŽϖΠкКզԶᾒ{ἪΙ}ῶ{Ω͂}ⱶⱵ𑣊𑢪 }
-\tl_const:cn { c__tl_upper_8_X_3_tl } { ěĚſSǣǢɇɆͳͲϗϏлЛҟҞԃԂէԷḃḂṧṦịỊᾓ{ἫΙ}ῷ{Ω͂Ι}ⳛⳚꙗꙖꞃꞂ𑣋𑢫 }
-\tl_const:cn { c__tl_upper_8_X_4_tl } { ƀɃмМըԸἰἸᾔ{ἬΙ}𑣌𑢬 }
-\tl_const:cn { c__tl_upper_8_X_5_tl } { ĝĜǥǤɉɈϙϘнНҡҠԅԄթԹḅḄṩṨọỌἱἹᾕ{ἭΙ}ⳝⳜꙙꙘꞅꞄ𑣍𑢭 }
-\tl_const:cn { c__tl_upper_8_X_6_tl } { оОժԺἲἺᾖ{ἮΙ}𑣎𑢮 }
-\tl_const:cn { c__tl_upper_8_X_7_tl } { ğĞƃƂǧǦɋɊͷͶϛϚпПңҢԇԆիԻḇḆṫṪỏỎἳἻᾗ{ἯΙ}ⳟⳞꙛꙚꜣꜢꞇꞆ𑣏𑢯 }
-\tl_const:cn { c__tl_upper_8_X_8_tl } { рРլԼἴἼᾘ{ἨΙ}ῼ{ΩΙ}𑣐𑢰 }
-\tl_const:cn { c__tl_upper_8_X_9_tl } { ġĠƅƄǩǨɍɌϝϜсСҥҤԉԈխԽḉḈṭṬốỐἵἽᾙ{ἩΙ}ⳡⳠꙝꙜꜥꜤ𑣑𑢱 }
-\tl_const:cn { c__tl_upper_9_X_0_tl } { тТծԾἶἾᾚ{ἪΙ}𑣒𑢲 }
-\tl_const:cn { c__tl_upper_9_X_1_tl } { ģĢǫǪɏɎͻϽϟϞуУҧҦԋԊկԿḋḊṯṮồỒἷἿᾛ{ἫΙ}ⳣⳢꙟꙞꜧꜦ𑣓𑢳 }
-\tl_const:cn { c__tl_upper_9_X_2_tl } { ƈƇɐⱯͼϾфФհՀᾜ{ἬΙ}ꞌꞋ𑣔𑢴 }
-\tl_const:cn { c__tl_upper_9_X_3_tl } { ĥĤǭǬɑⱭͽϿϡϠхХҩҨԍԌձՁḍḌṱṰổỔᾝ{ἭΙ}ⲁⲀꙡꙠꜩꜨ𑣕𑢵 }
-\tl_const:cn { c__tl_upper_9_X_4_tl } { ɒⱰцЦղՂᾞ{ἮΙ}𑣖𑢶 }
-\tl_const:cn { c__tl_upper_9_X_5_tl } { ħĦǯǮɓƁϣϢчЧҫҪԏԎճՃḏḎṳṲỗỖᾟ{ἯΙ}ⲃⲂꙣꙢꜫꜪ𑣗𑢷 }
-\tl_const:cn { c__tl_upper_9_X_6_tl } { ƌƋǰ{J̌}ɔƆшШմՄᾠ{ὨΙ}𑣘𑢸 }
-\tl_const:cn { c__tl_upper_9_X_7_tl } { aAĩĨϥϤщЩҭҬԑԐյՅḑḐṵṴộỘᾡ{ὩΙ}ⲅⲄꙥꙤꜭꜬꞑꞐ𑣙𑢹 }
-\tl_const:cn { c__tl_upper_9_X_8_tl } { bBDzDZɖƉъЪնՆᾢ{ὪΙ}𑣚𑢺 }
-\tl_const:cn { c__tl_upper_9_X_9_tl } { cCīĪdzDZɗƊϧϦыЫүҮԓԒշՇḓḒṷṶớỚᾣ{ὫΙ}ⲇⲆꙧꙦꜯꜮꞓꞒ𑣛𑢻 }
-\tl_const:cn { c__tl_lower_0_X_0_tl } { ÈèĬĭƐɛǴǵϨϩҰұԔԕḔḕṸṹỜờⒸⓒⰤⱔⲈⲉꙨꙩ }
-\tl_const:cn { c__tl_lower_0_X_1_tl } { ÉéƑƒჍⴭⒹⓓⰥⱕⳭⳮ }
-\tl_const:cn { c__tl_lower_0_X_2_tl } { ÊêĮįǶƕΆάϪϫҲҳԖԗḖḗṺṻỞởⒺⓔⰦⱖⲊⲋꙪꙫꜲꜳꞖꞗ }
-\tl_const:cn { c__tl_lower_0_X_3_tl } { ËëƓɠǷƿⒻⓕⰧⱗ }
-\tl_const:cn { c__tl_lower_0_X_4_tl } { Ììİ{i̇}ƔɣǸǹΈέϬϭҴҵԘԙḘḙṼṽỠỡᾨᾠⒼⓖⰨⱘⲌⲍꙬꙭꜴꜵꞘꞙ }
-\tl_const:cn { c__tl_lower_0_X_5_tl } { ÍíΉήᾩᾡⒽⓗⰩⱙ }
-\tl_const:cn { c__tl_lower_0_X_6_tl } { Îî{IJ}{ij}ƖɩǺǻΊίϮϯҶҷԚԛḚḛṾṿỢợᾪᾢⒾⓘⰪⱚⲎⲏⳲⳳꜶꜷꞚꞛ }
-\tl_const:cn { c__tl_lower_0_X_7_tl } { ÏïƗɨᾫᾣⒿⓙⰫⱛ }
-\tl_const:cn { c__tl_lower_0_X_8_tl } { ÐðĴĵƘƙǼǽΌόҸҹԜԝḜḝẀẁỤụὈὀᾬᾤⓀⓚⰬⱜⲐⲑꜸꜹꞜꞝ }
-\tl_const:cn { c__tl_lower_0_X_9_tl } { ÑñὉὁᾭᾥⓁⓛⰭⱝ }
-\tl_const:cn { c__tl_lower_1_X_0_tl } { ÒòĶķǾǿΎύҺһԞԟḞḟẂẃỦủὊὂᾮᾦⓂⓜⰮⱞⲒⲓꜺꜻꞞꞟ }
-\tl_const:cn { c__tl_lower_1_X_1_tl } { ÓóΏώὋὃᾯᾧⓃⓝ }
-\tl_const:cn { c__tl_lower_1_X_2_tl } { ÔôƜɯȀȁϴθҼҽԠԡḠḡẄẅỨứὌὄⓄⓞⲔⲕꜼꜽꞠꞡ }
-\tl_const:cn { c__tl_lower_1_X_3_tl } { ÕõĹĺƝɲΑαὍὅⓅⓟAa }
-\tl_const:cn { c__tl_lower_1_X_4_tl } { ÖöȂȃΒβҾҿԢԣḢḣẆẇỪừⓆⓠⲖⲗꜾꜿꞢꞣBb }
-\tl_const:cn { c__tl_lower_1_X_5_tl } { ĻļƟɵΓγϷϸⓇⓡCc }
-\tl_const:cn { c__tl_lower_1_X_6_tl } { ØøƠơȄȅΔδӀӏԤԥḤḥẈẉỬửⓈⓢⲘⲙꝀꝁꞤꞥDd }
-\tl_const:cn { c__tl_lower_1_X_7_tl } { ÙùĽľΕεϹϲӁӂⓉⓣEe }
-\tl_const:cn { c__tl_lower_1_X_8_tl } { ÚúƢƣȆȇΖζϺϻԦԧḦḧẊẋỮữⓊⓤⲚⲛꝂꝃꞦꞧFf }
-\tl_const:cn { c__tl_lower_1_X_9_tl } { ÛûĿŀΗηӃӄⓋⓥGg }
-\tl_const:cn { c__tl_lower_2_X_0_tl } { ÜüƤƥȈȉΘθѠѡԨԩḨḩẌẍỰựᾸᾰⓌⓦⲜⲝꝄꝅꞨꞩHh }
-\tl_const:cn { c__tl_lower_2_X_1_tl } { ÝýŁłΙιϽͻӅӆᾹᾱⓍⓧIi }
-\tl_const:cn { c__tl_lower_2_X_2_tl } { ÞþƦʀȊȋΚκϾͼѢѣԪԫḪḫẎẏỲỳᾺὰⓎⓨⲞⲟꝆꝇꞪɦJj }
-\tl_const:cn { c__tl_lower_2_X_3_tl } { ŃńƧƨΛλϿͽӇӈΆάⓏⓩꞫɜKk }
-\tl_const:cn { c__tl_lower_2_X_4_tl } { ȌȍΜμЀѐѤѥԬԭḬḭẐẑỴỵᾼᾳⲠⲡꚀꚁꝈꝉꞬɡLl }
-\tl_const:cn { c__tl_lower_2_X_5_tl } { ŅņƩʃΝνЁёӉӊὙὑꞭɬMm }
-\tl_const:cn { c__tl_lower_2_X_6_tl } { ȎȏΞξЂђѦѧԮԯḮḯẒẓỶỷⲢⲣꚂꚃꝊꝋNn }
-\tl_const:cn { c__tl_lower_2_X_7_tl } { ŇňΟοЃѓӋӌὛὓOo }
-\tl_const:cn { c__tl_lower_2_X_8_tl } { ƬƭȐȑΠπЄєѨѩḰḱẔẕỸỹⲤⲥꚄꚅꝌꝍꞰʞPp }
-\tl_const:cn { c__tl_lower_2_X_9_tl } { ΡρЅѕӍӎԱաὝὕꞱʇQq }
-\tl_const:cn { c__tl_lower_3_X_0_tl } { ŊŋƮʈȒȓІіѪѫԲբḲḳỺỻⲦⲧꚆꚇꝎꝏRr }
-\tl_const:cn { c__tl_lower_3_X_1_tl } { ƯưΣσЇїԳգὟὗSs }
-\tl_const:cn { c__tl_lower_3_X_2_tl } { ŌōȔȕΤτЈјѬѭӐӑԴդḴḵỼỽⲨⲩꚈꚉꝐꝑTt }
-\tl_const:cn { c__tl_lower_3_X_3_tl } { ƱʊΥυЉљԵեUu }
-\tl_const:cn { c__tl_lower_3_X_4_tl } { ŎŏƲʋȖȗΦφЊњѮѯӒӓԶզḶḷỾỿⲪⲫꚊꚋꝒꝓVv }
-\tl_const:cn { c__tl_lower_3_X_5_tl } { ƳƴΧχЋћԷէWw }
-\tl_const:cn { c__tl_lower_3_X_6_tl } { ŐőȘșΨψЌќѰѱӔӕԸըḸḹῈὲⲬⲭꚌꚍꝔꝕXx }
-\tl_const:cn { c__tl_lower_3_X_7_tl } { ƵƶΩωЍѝԹթΈέYy }
-\tl_const:cn { c__tl_lower_3_X_8_tl } { ŒœȚțΪϊЎўѲѳӖӗԺժḺḻẞßῊὴⲮⲯꚎꚏꝖꝗZz }
-\tl_const:cn { c__tl_lower_3_X_9_tl } { ƷʒΫϋЏџԻիΉή }
-\tl_const:cn { c__tl_lower_4_X_0_tl } { ŔŕƸƹȜȝАаѴѵӘәԼլḼḽẠạὨὠῌῃⲰⲱꚐꚑꝘꝙ𑢠𑣀 }
-\tl_const:cn { c__tl_lower_4_X_1_tl } { БбԽխὩὡ𑢡𑣁 }
-\tl_const:cn { c__tl_lower_4_X_2_tl } { ŖŗȞȟВвѶѷӚӛԾծḾḿẢảὪὢⲲⲳꚒꚓꝚꝛ𑢢𑣂 }
-\tl_const:cn { c__tl_lower_4_X_3_tl } { ГгԿկὫὣ𑢣𑣃 }
-\tl_const:cn { c__tl_lower_4_X_4_tl } { ŘřƼƽȠƞДдѸѹӜӝՀհṀṁẤấἈἀὬὤⅠⅰⲴⲵꚔꚕꝜꝝ𑢤𑣄 }
-\tl_const:cn { c__tl_lower_4_X_5_tl } { ЕеՁձἉἁὭὥ{Ⅱ}{ⅱ}𑢥𑣅 }
-\tl_const:cn { c__tl_lower_4_X_6_tl } { ŚśȢȣЖжѺѻӞӟՂղṂṃẦầἊἂὮὦ{Ⅲ}{ⅲ}ⲶⲷꚖꚗꝞꝟ𑢦𑣆 }
-\tl_const:cn { c__tl_lower_4_X_7_tl } { ЗзՃճἋἃὯὧ{Ⅳ}{ⅳ}𑢧𑣇 }
-\tl_const:cn { c__tl_lower_4_X_8_tl } { ŜŝȤȥИиѼѽӠӡՄմṄṅẨẩἌἄⅤⅴⲸⲹꚘꚙꝠꝡ𑢨𑣈 }
-\tl_const:cn { c__tl_lower_4_X_9_tl } { ЙйՅյἍἅ{Ⅵ}{ⅵ}𑢩𑣉 }
-\tl_const:cn { c__tl_lower_5_X_0_tl } { ŞşȦȧКкѾѿӢӣՆնṆṇẪẫἎἆ{Ⅶ}{ⅶ}ⲺⲻꚚꚛꝢꝣ𑢪𑣊 }
-\tl_const:cn { c__tl_lower_5_X_1_tl } { ЛлՇշἏἇ{Ⅷ}{ⅷ}𑢫𑣋 }
-\tl_const:cn { c__tl_lower_5_X_2_tl } { ŠšDŽdžȨȩМмҀҁӤӥՈոṈṉẬậῘῐ{Ⅸ}{ⅸ}ⲼⲽꝤꝥ𑢬𑣌 }
-\tl_const:cn { c__tl_lower_5_X_3_tl } { DždžНнՉչῙῑⅩⅹ𑢭𑣍 }
-\tl_const:cn { c__tl_lower_5_X_4_tl } { ŢţȪȫОоӦӧՊպṊṋẮắῚὶⅪⅺⲾⲿꝦꝧ𑢮𑣎 }
-\tl_const:cn { c__tl_lower_5_X_5_tl } { LJljПпՋջΊίⅫⅻ𑢯𑣏 }
-\tl_const:cn { c__tl_lower_5_X_6_tl } { ĀāŤťLjljȬȭРрӨөՌռႠⴀṌṍẰằⅬⅼⳀⳁꝨꝩ𑢰𑣐 }
-\tl_const:cn { c__tl_lower_5_X_7_tl } { СсՍսႡⴁⅭⅽ𑢱𑣑 }
-\tl_const:cn { c__tl_lower_5_X_8_tl } { ĂăŦŧNJnjȮȯТтӪӫՎվႢⴂṎṏẲẳⅮⅾⳂⳃꝪꝫ𑢲𑣒 }
-\tl_const:cn { c__tl_lower_5_X_9_tl } { NjnjУуՏտႣⴃⅯⅿ𑢳𑣓 }
-\tl_const:cn { c__tl_lower_6_X_0_tl } { ĄąŨũȰȱФфӬӭՐրႤⴄṐṑẴẵἘἐⱠⱡⳄⳅꙀꙁꝬꝭ𐐀𐐨𑢴𑣔 }
-\tl_const:cn { c__tl_lower_6_X_1_tl } { ǍǎХхՑցႥⴅἙἑ𐐁𐐩𑢵𑣕 }
-\tl_const:cn { c__tl_lower_6_X_2_tl } { ĆćŪūȲȳЦцҊҋӮӯՒւႦⴆṒṓẶặἚἒⱢɫⳆⳇꙂꙃꝮꝯ𐐂𐐪𑢶𑣖 }
-\tl_const:cn { c__tl_lower_6_X_3_tl } { ǏǐЧчՓփႧⴇἛἓⱣᵽ𐐃𐐫𑢷𑣗 }
-\tl_const:cn { c__tl_lower_6_X_4_tl } { ĈĉŬŭШшҌҍӰӱՔքႨⴈṔṕẸẹἜἔⰀⰰⱤɽⳈⳉꙄꙅ𐐄𐐬𑢸𑣘 }
-\tl_const:cn { c__tl_lower_6_X_5_tl } { AaǑǒЩщՕօႩⴉἝἕⰁⰱ𐐅𐐭𑢹𑣙 }
-\tl_const:cn { c__tl_lower_6_X_6_tl } { BbĊċŮůЪъҎҏӲӳՖֆႪⴊṖṗẺẻⰂⰲⳊⳋꙆꙇ𐐆𐐮𑢺𑣚 }
-\tl_const:cn { c__tl_lower_6_X_7_tl } { CcǓǔЫыႫⴋⰃⰳⱧⱨ𐐇𐐯𑢻𑣛 }
-\tl_const:cn { c__tl_lower_6_X_8_tl } { DdČčŰűЬьҐґӴӵႬⴌṘṙẼẽῨῠⰄⰴⳌⳍꙈꙉ𐐈𐐰𑢼𑣜 }
-\tl_const:cn { c__tl_lower_6_X_9_tl } { EeǕǖЭэႭⴍῩῡⰅⰵⱩⱪ𐐉𐐱𑢽𑣝 }
-\tl_const:cn { c__tl_lower_7_X_0_tl } { FfĎďŲųȺⱥЮюҒғӶӷႮⴎṚṛẾếῪὺⰆⰶⳎⳏꙊꙋ𐐊𐐲𑢾𑣞 }
-\tl_const:cn { c__tl_lower_7_X_1_tl } { GgǗǘȻȼЯяႯⴏΎύⰇⰷⱫⱬ𐐋𐐳𑢿𑣟 }
-\tl_const:cn { c__tl_lower_7_X_2_tl } { HhĐđŴŵҔҕӸӹႰⴐṜṝỀềᾈᾀῬῥⰈⰸⳐⳑꙌꙍ𐐌𐐴 }
-\tl_const:cn { c__tl_lower_7_X_3_tl } { IiǙǚȽƚႱⴑᾉᾁⰉⰹⱭɑꝹꝺ𐐍𐐵 }
-\tl_const:cn { c__tl_lower_7_X_4_tl } { JjĒēŶŷȾⱦҖҗӺӻႲⴒṞṟỂểᾊᾂⰊⰺⱮɱⳒⳓꙎꙏ𐐎𐐶 }
-\tl_const:cn { c__tl_lower_7_X_5_tl } { KkǛǜϏϗႳⴓᾋᾃⰋⰻⱯɐꝻꝼ𐐏𐐷 }
-\tl_const:cn { c__tl_lower_7_X_6_tl } { LlĔĕŸÿҘҙӼӽႴⴔṠṡỄễἨἠᾌᾄⰌⰼⱰɒⳔⳕꙐꙑ𐐐𐐸 }
-\tl_const:cn { c__tl_lower_7_X_7_tl } { MmŹźɁɂႵⴕἩἡᾍᾅⰍⰽꝽᵹ𐐑𐐹 }
-\tl_const:cn { c__tl_lower_7_X_8_tl } { NnĖėǞǟҚқӾӿႶⴖṢṣỆệἪἢᾎᾆⰎⰾⱲⱳⳖⳗꙒꙓꝾꝿ𐐒𐐺 }
-\tl_const:cn { c__tl_lower_7_X_9_tl } { OoŻżɃƀႷⴗἫἣᾏᾇↃↄⰏⰿ𐐓𐐻 }
-\tl_const:cn { c__tl_lower_8_X_0_tl } { PpĘęǠǡɄʉͰͱҜҝԀԁႸⴘḀḁṤṥỈỉἬἤⰐⱀⳘⳙꙔꙕꞀꞁ𐐔𐐼 }
-\tl_const:cn { c__tl_lower_8_X_1_tl } { QqŽžɅʌႹⴙἭἥⰑⱁⱵⱶ𐐕𐐽 }
-\tl_const:cn { c__tl_lower_8_X_2_tl } { RrĚěǢǣɆɇͲͳҞҟԂԃႺⴚḂḃṦṧỊịἮἦⰒⱂⳚⳛꙖꙗꞂꞃ𐐖𐐾 }
-\tl_const:cn { c__tl_lower_8_X_3_tl } { SsႻⴛἯἧⰓⱃ𐐗𐐿 }
-\tl_const:cn { c__tl_lower_8_X_4_tl } { TtĜĝǤǥɈɉϘϙҠҡԄԅႼⴜḄḅṨṩỌọῸὸⰔⱄⳜⳝꙘꙙꞄꞅ𐐘𐑀 }
-\tl_const:cn { c__tl_lower_8_X_5_tl } { UuƁɓႽⴝΌόⰕⱅ𐐙𐑁 }
-\tl_const:cn { c__tl_lower_8_X_6_tl } { VvĞğƂƃǦǧɊɋͶͷϚϛҢңԆԇႾⴞḆḇṪṫỎỏῺὼΩωⰖⱆⳞⳟꙚꙛꜢꜣꞆꞇ𐐚𐑂 }
-\tl_const:cn { c__tl_lower_8_X_7_tl } { WwႿⴟΏώⰗⱇ𐐛𐑃 }
-\tl_const:cn { c__tl_lower_8_X_8_tl } { XxĠġƄƅǨǩɌɍϜϝҤҥԈԉჀⴠḈḉṬṭỐốᾘᾐῼῳⰘⱈⳠⳡꙜꙝꜤꜥ𐐜𐑄 }
-\tl_const:cn { c__tl_lower_8_X_9_tl } { YyჁⴡᾙᾑⰙⱉ𐐝𐑅 }
-\tl_const:cn { c__tl_lower_9_X_0_tl } { ZzĢģƆɔǪǫɎɏϞϟҦҧԊԋჂⴢḊḋṮṯỒồᾚᾒKkⰚⱊⱾȿⳢⳣꙞꙟꜦꜧ𐐞𐑆 }
-\tl_const:cn { c__tl_lower_9_X_1_tl } { ƇƈჃⴣᾛᾓÅåⰛⱋⱿɀꞋꞌ𐐟𐑇 }
-\tl_const:cn { c__tl_lower_9_X_2_tl } { ÀàĤĥǬǭϠϡҨҩԌԍჄⴤḌḍṰṱỔổἸἰᾜᾔⰜⱌⲀⲁꙠꙡꜨꜩ𐐠𐑈 }
-\tl_const:cn { c__tl_lower_9_X_3_tl } { ÁáƉɖჅⴥἹἱᾝᾕⰝⱍꞍɥ𐐡𐑉 }
-\tl_const:cn { c__tl_lower_9_X_4_tl } { ÂâĦħƊɗǮǯϢϣҪҫԎԏḎḏṲṳỖỗἺἲᾞᾖⰞⱎⲂⲃꙢꙣꜪꜫ𐐢𐑊 }
-\tl_const:cn { c__tl_lower_9_X_5_tl } { ÃãƋƌͿϳჇⴧἻἳᾟᾗⰟⱏ𐐣𐑋 }
-\tl_const:cn { c__tl_lower_9_X_6_tl } { ÄäĨĩϤϥҬҭԐԑḐḑṴṵỘộἼἴⰠⱐⲄⲅꙤꙥꜬꜭꞐꞑ𐐤𐑌 }
-\tl_const:cn { c__tl_lower_9_X_7_tl } { ÅåDZdzἽἵⰡⱑ𐐥𐑍 }
-\tl_const:cn { c__tl_lower_9_X_8_tl } { ÆæĪīƎǝDzdzϦϧҮүԒԓḒḓṶṷỚớἾἶℲⅎⒶⓐⰢⱒⲆⲇꙦꙧꜮꜯꞒꞓ𐐦𐑎 }
-\tl_const:cn { c__tl_lower_9_X_9_tl } { ÇçƏəἿἷⒷⓑⰣⱓⳫⳬ𐐧𐑏 }
-\tl_const:Nn \c__tl_mixed_exceptions_tl { {ß}{Ss}{ff}{Ff}{fi}{Fi}{fl}{Fl}{ffi}{Ffi}{ffl}{Ffl}{ſt}{St}{st}{St}{և}{Եւ}{ﬓ}{Մն}{ﬔ}{Մե}{ﬕ}{Մի}{ﬖ}{Վն}{ﬗ}{Մխ}{ᾲ}{Ὰͅ}{ᾴ}{Άͅ}{ῂ}{Ὴͅ}{ῄ}{Ήͅ}{ῲ}{Ὼͅ}{ῴ}{Ώͅ}{ᾷ}{ᾼ͂}{ῇ}{ῌ͂}{ῷ}{ῼ͂}{Dž}{Dž}{dž}{Dž}{Lj}{Lj}{lj}{Lj}{Nj}{Nj}{nj}{Nj}{Dz}{Dz}{dz}{Dz} }
-\tl_const:Nn \c__tl_std_sigma_tl { σ }
-\tl_const:Nn \c__tl_final_sigma_tl { ς }
-\tl_const:Nn \c__tl_dotless_i_tl { ı }
-\tl_const:Nn \c__tl_dot_above_tl { ̇ }
-\tl_const:Nn \c__tl_dotted_I_tl { İ }
-\tl_const:Nn \c__tl_accents_lt_tl {Ì{i̇̀}Í{i̇́}Ĩ{i̇̃}}
-\group_begin:
- \cs_set_protected:Npn \__str_tmp:NNn #1#2#3
- {
- \tl_const:cx { c__str_fold_#1 _X_ #2_tl }
- { \__str_tmp:Nw #3 \q_recursion_tail { } \q_recursion_stop }
- }
- \cs_set:Npn \__str_tmp:Nw #1#2
- {
- \quark_if_recursion_tail_stop:N #1
- \tl_to_str:N #1
- \tl_if_blank:oT { \use_none:n #2 }
- { \use:n }
- { \tl_to_str:n {#2} }
- \__str_tmp:Nw
- }
- \__str_tmp:NNn 0 0 { ÈèĬĭƐɛǴǵϨϩҰұԔԕḔḕṸṹỜờᾤ{ὤι}ⒸⓒⰤⱔⲈⲉꙨꙩ }
- \__str_tmp:NNn 0 1 { ÉéƑƒჍⴭᾥ{ὥι}ⒹⓓⰥⱕⳭⳮ }
- \__str_tmp:NNn 0 2 { ÊêĮįǶƕΆάϪϫҲҳԖԗḖḗṺṻỞởᾦ{ὦι}ⒺⓔⰦⱖⲊⲋꙪꙫꜲꜳꞖꞗ }
- \__str_tmp:NNn 0 3 { ËëƓɠǷƿᾧ{ὧι}ⒻⓕⰧⱗ }
- \__str_tmp:NNn 0 4 { Ììİ{i̇}ƔɣǸǹΈέϬϭҴҵԘԙḘḙṼṽỠỡᾨ{ὠι}ⒼⓖⰨⱘⲌⲍꙬꙭꜴꜵꞘꞙ }
- \__str_tmp:NNn 0 5 { ÍíΉήᾩ{ὡι}ⒽⓗⰩⱙ }
- \__str_tmp:NNn 0 6 { Îî{IJ}{ij}ƖɩǺǻΊίϮϯҶҷԚԛḚḛṾṿỢợᾪ{ὢι}ⒾⓘⰪⱚⲎⲏⳲⳳꜶꜷꞚꞛ }
- \__str_tmp:NNn 0 7 { ÏïƗɨᾫ{ὣι}ⒿⓙⰫⱛ }
- \__str_tmp:NNn 0 8 { ÐðĴĵƘƙǼǽΌόϰκҸҹԜԝḜḝẀẁỤụὈὀᾬ{ὤι}ⓀⓚⰬⱜⲐⲑꜸꜹꞜꞝ }
- \__str_tmp:NNn 0 9 { ÑñϱρὉὁᾭ{ὥι}ⓁⓛⰭⱝ }
- \__str_tmp:NNn 1 0 { ÒòĶķǾǿΎύҺһԞԟḞḟẂẃỦủὊὂᾮ{ὦι}ⓂⓜⰮⱞⲒⲓꜺꜻꞞꞟ }
- \__str_tmp:NNn 1 1 { ÓóΏώὋὃᾯ{ὧι}Ⓝⓝ }
- \__str_tmp:NNn 1 2 { ÔôƜɯȀȁΐ{ΐ}ϴθҼҽԠԡḠḡẄẅỨứὌὄⓄⓞⲔⲕꜼꜽꞠꞡ }
- \__str_tmp:NNn 1 3 { ÕõĹĺƝɲΑαϵεὍὅⓅⓟAa }
- \__str_tmp:NNn 1 4 { ÖöȂȃΒβҾҿԢԣḢḣẆẇỪừᾲ{ὰι}ⓆⓠⲖⲗꜾꜿꞢꞣBb }
- \__str_tmp:NNn 1 5 { ĻļƟɵΓγϷϸ{և}{եւ}ᾳ{αι}ⓇⓡCc }
- \__str_tmp:NNn 1 6 { ØøƠơȄȅΔδӀӏԤԥḤḥẈẉỬửὐ{ὐ}ᾴ{άι}ⓈⓢⲘⲙꝀꝁꞤꞥDd }
- \__str_tmp:NNn 1 7 { ÙùĽľΕεϹϲӁӂⓉⓣEe }
- \__str_tmp:NNn 1 8 { ÚúƢƣȆȇΖζϺϻԦԧḦḧẊẋỮữὒ{ὒ}ᾶ{ᾶ}ⓊⓤⲚⲛꝂꝃꞦꞧFf }
- \__str_tmp:NNn 1 9 { Ûû{Ŀ}{ŀ}ΗηӃӄᾷ{ᾶι}ⓋⓥGg }
- \__str_tmp:NNn 2 0 { ÜüƤƥȈȉΘθѠѡԨԩḨḩẌẍỰựὔ{ὔ}ᾸᾰⓌⓦⲜⲝꝄꝅꞨꞩHh }
- \__str_tmp:NNn 2 1 { ÝýŁłΙιϽͻӅӆᾹᾱⓍⓧIi }
- \__str_tmp:NNn 2 2 { ÞþƦʀȊȋΚκϾͼѢѣԪԫḪḫẎẏỲỳὖ{ὖ}ᾺὰⓎⓨⲞⲟꝆꝇꞪɦJj }
- \__str_tmp:NNn 2 3 { ß{ss}ŃńƧƨΛλϿͽӇӈΆάⓏⓩꞫɜKk }
- \__str_tmp:NNn 2 4 { ȌȍΜμЀѐѤѥԬԭḬḭẐẑỴỵᾼ{αι}ⲠⲡꚀꚁꝈꝉꞬɡLl }
- \__str_tmp:NNn 2 5 { ŅņƩʃΝνЁёӉӊὙὑꞭɬMm }
- \__str_tmp:NNn 2 6 { ȎȏΞξЂђѦѧԮԯḮḯẒẓỶỷιιⲢⲣꚂꚃꝊꝋNn }
- \__str_tmp:NNn 2 7 { ŇňΟοЃѓӋӌὛὓOo }
- \__str_tmp:NNn 2 8 { ƬƭȐȑΠπЄєѨѩḰḱẔẕỸỹⲤⲥꚄꚅꝌꝍꞰʞPp }
- \__str_tmp:NNn 2 9 { {ʼn}{ʼn}ΡρЅѕӍӎԱաὝὕꞱʇQq }
- \__str_tmp:NNn 3 0 { ŊŋƮʈȒȓІіѪѫԲբḲḳẖ{ẖ}Ỻỻῂ{ὴι}ⲦⲧꚆꚇꝎꝏRr }
- \__str_tmp:NNn 3 1 { ƯưΣσЇїԳգẗ{ẗ}Ὗὗῃ{ηι}Ss }
- \__str_tmp:NNn 3 2 { ŌōȔȕΤτЈјѬѭӐӑԴդḴḵẘ{ẘ}Ỽỽῄ{ήι}ⲨⲩꚈꚉꝐꝑTt }
- \__str_tmp:NNn 3 3 { ƱʊΥυЉљԵեẙ{ẙ}Uu }
- \__str_tmp:NNn 3 4 { ŎŏƲʋȖȗΦφЊњѮѯӒӓԶզḶḷ{ẚ}{aʾ}Ỿỿῆ{ῆ}ⲪⲫꚊꚋꝒꝓVv }
- \__str_tmp:NNn 3 5 { ƳƴΧχЋћԷէẛṡῇ{ῆι}Ww }
- \__str_tmp:NNn 3 6 { ŐőȘșΨψЌќѰѱӔӕԸըḸḹῈὲⲬⲭꚌꚍꝔꝕXx }
- \__str_tmp:NNn 3 7 { ƵƶͅιΩωЍѝԹթΈέYy }
- \__str_tmp:NNn 3 8 { ŒœȚțΪϊЎўѲѳӖӗԺժḺḻẞ{ss}ῊὴⲮⲯꚎꚏꝖꝗZz }
- \__str_tmp:NNn 3 9 { ƷʒΫϋЏџԻիΉή }
- \__str_tmp:NNn 4 0 { ŔŕƸƹȜȝАаѴѵӘәԼլḼḽẠạὨὠῌ{ηι}ⲰⲱꚐꚑꝘꝙ𑢠𑣀 }
- \__str_tmp:NNn 4 1 { БбԽխὩὡ𑢡𑣁 }
- \__str_tmp:NNn 4 2 { ŖŗȞȟВвѶѷӚӛԾծḾḿẢảὪὢⲲⲳꚒꚓꝚꝛ𑢢𑣂 }
- \__str_tmp:NNn 4 3 { ГгԿկὫὣ𑢣𑣃 }
- \__str_tmp:NNn 4 4 { ŘřƼƽȠƞΰ{ΰ}ДдѸѹӜӝՀհṀṁẤấἈἀὬὤⅠⅰⲴⲵꚔꚕꝜꝝ𑢤𑣄 }
- \__str_tmp:NNn 4 5 { ЕеՁձἉἁὭὥ{Ⅱ}{ⅱ}𑢥𑣅 }
- \__str_tmp:NNn 4 6 { ŚśȢȣЖжѺѻӞӟՂղṂṃẦầἊἂὮὦῒ{ῒ}{Ⅲ}{ⅲ}ⲶⲷꚖꚗꝞꝟ𑢦𑣆 }
- \__str_tmp:NNn 4 7 { ЗзՃճἋἃὯὧΐ{ΐ}{Ⅳ}{ⅳ}𑢧𑣇 }
- \__str_tmp:NNn 4 8 { ŜŝȤȥИиѼѽӠӡՄմṄṅẨẩἌἄⅤⅴⲸⲹꚘꚙꝠꝡ𑢨𑣈 }
- \__str_tmp:NNn 4 9 { ЙйՅյἍἅ{Ⅵ}{ⅵ}𑢩𑣉 }
- \__str_tmp:NNn 5 0 { ŞşȦȧКкѾѿӢӣՆնṆṇẪẫἎἆῖ{ῖ}{Ⅶ}{ⅶ}ⲺⲻꚚꚛꝢꝣ𑢪𑣊 }
- \__str_tmp:NNn 5 1 { ЛлՇշἏἇῗ{ῗ}{Ⅷ}{ⅷ}𑢫𑣋 }
- \__str_tmp:NNn 5 2 { Šš{DŽ}{dž}ȨȩМмҀҁӤӥՈոṈṉẬậῘῐ{Ⅸ}{ⅸ}ⲼⲽꝤꝥ𑢬𑣌 }
- \__str_tmp:NNn 5 3 { {Dž}{dž}НнՉչῙῑⅩⅹ𑢭𑣍 }
- \__str_tmp:NNn 5 4 { ŢţȪȫОоӦӧՊպṊṋẮắῚὶ{Ⅺ}{ⅺ}ⲾⲿꝦꝧ𑢮𑣎 }
- \__str_tmp:NNn 5 5 { {LJ}{lj}ПпՋջΊί{Ⅻ}{ⅻ}𑢯𑣏 }
- \__str_tmp:NNn 5 6 { ĀāŤť{Lj}{lj}ȬȭРрӨөՌռႠⴀṌṍẰằⅬⅼⳀⳁꝨꝩ{ff}{ff}𑢰𑣐 }
- \__str_tmp:NNn 5 7 { СсՍսႡⴁⅭⅽ{fi}{fi}𑢱𑣑 }
- \__str_tmp:NNn 5 8 { ĂăŦŧ{NJ}{nj}ȮȯТтӪӫՎվႢⴂṎṏẲẳⅮⅾⳂⳃꝪꝫ{fl}{fl}𑢲𑣒 }
- \__str_tmp:NNn 5 9 { {Nj}{nj}УуՏտႣⴃⅯⅿ{ffi}{ffi}𑢳𑣓 }
- \__str_tmp:NNn 6 0 { ĄąŨũȰȱФфӬӭՐրႤⴄṐṑẴẵἘἐⱠⱡⳄⳅꙀꙁꝬꝭ{ffl}{ffl}𐐀𐐨𑢴𑣔 }
- \__str_tmp:NNn 6 1 { ǍǎХхՑցႥⴅἙἑ{ſt}{st}𐐁𐐩𑢵𑣕 }
- \__str_tmp:NNn 6 2 { ĆćŪūȲȳςσЦцҊҋӮӯՒւႦⴆṒṓẶặἚἒῢ{ῢ}ⱢɫⳆⳇꙂꙃꝮꝯ{st}{st}𐐂𐐪𑢶𑣖 }
- \__str_tmp:NNn 6 3 { ǏǐЧчՓփႧⴇἛἓΰ{ΰ}Ᵽᵽ𐐃𐐫𑢷𑣗 }
- \__str_tmp:NNn 6 4 { ĈĉŬŭШшҌҍӰӱՔքႨⴈṔṕẸẹἜἔᾀ{ἀι}ῤ{ῤ}ⰀⰰⱤɽⳈⳉꙄꙅ𐐄𐐬𑢸𑣘 }
- \__str_tmp:NNn 6 5 { AaǑǒЩщՕօႩⴉἝἕᾁ{ἁι}Ⰱⰱ𐐅𐐭𑢹𑣙 }
- \__str_tmp:NNn 6 6 { BbĊċŮůЪъҎҏӲӳՖֆႪⴊṖṗẺẻᾂ{ἂι}ῦ{ῦ}ⰂⰲⳊⳋꙆꙇ𐐆𐐮𑢺𑣚 }
- \__str_tmp:NNn 6 7 { CcǓǔЫыႫⴋᾃ{ἃι}ῧ{ῧ}ⰃⰳⱧⱨ𐐇𐐯𑢻𑣛 }
- \__str_tmp:NNn 6 8 { DdČčŰűЬьҐґӴӵႬⴌṘṙẼẽᾄ{ἄι}ῨῠⰄⰴⳌⳍꙈꙉ𐐈𐐰𑢼𑣜 }
- \__str_tmp:NNn 6 9 { EeǕǖЭэႭⴍᾅ{ἅι}ῩῡⰅⰵⱩⱪ𐐉𐐱𑢽𑣝 }
- \__str_tmp:NNn 7 0 { FfĎďŲųȺⱥЮюҒғӶӷႮⴎṚṛẾếᾆ{ἆι}ῪὺⰆⰶⳎⳏꙊꙋ𐐊𐐲𑢾𑣞 }
- \__str_tmp:NNn 7 1 { GgǗǘȻȼЯяႯⴏᾇ{ἇι}ΎύⰇⰷⱫⱬ𐐋𐐳𑢿𑣟 }
- \__str_tmp:NNn 7 2 { HhĐđŴŵҔҕӸӹႰⴐṜṝỀềᾈ{ἀι}ῬῥⰈⰸⳐⳑꙌꙍ𐐌𐐴 }
- \__str_tmp:NNn 7 3 { IiǙǚȽƚႱⴑᾉ{ἁι}ⰉⰹⱭɑꝹꝺ𐐍𐐵 }
- \__str_tmp:NNn 7 4 { JjĒēŶŷȾⱦҖҗӺӻႲⴒṞṟỂểᾊ{ἂι}ⰊⰺⱮɱⳒⳓꙎꙏ𐐎𐐶 }
- \__str_tmp:NNn 7 5 { KkǛǜϏϗႳⴓᾋ{ἃι}ⰋⰻⱯɐꝻꝼ{ﬓ}{մն}𐐏𐐷 }
- \__str_tmp:NNn 7 6 { LlĔĕŸÿϐβҘҙӼӽႴⴔṠṡỄễἨἠᾌ{ἄι}ⰌⰼⱰɒⳔⳕꙐꙑ{ﬔ}{մե}𐐐𐐸 }
- \__str_tmp:NNn 7 7 { MmŹźɁɂϑθႵⴕἩἡᾍ{ἅι}ⰍⰽꝽᵹ{ﬕ}{մի}𐐑𐐹 }
- \__str_tmp:NNn 7 8 { NnĖėǞǟҚқӾӿႶⴖṢṣỆệἪἢᾎ{ἆι}ῲ{ὼι}ⰎⰾⱲⱳⳖⳗꙒꙓꝾꝿ{ﬖ}{վն}𐐒𐐺 }
- \__str_tmp:NNn 7 9 { OoŻżɃƀႷⴗἫἣᾏ{ἇι}ῳ{ωι}ↃↄⰏⰿ{ﬗ}{մխ}𐐓𐐻 }
- \__str_tmp:NNn 8 0 { PpĘęǠǡɄʉͰͱҜҝԀԁႸⴘḀḁṤṥỈỉἬἤᾐ{ἠι}ῴ{ώι}ⰐⱀⳘⳙꙔꙕꞀꞁ𐐔𐐼 }
- \__str_tmp:NNn 8 1 { QqµμŽžɅʌϕφႹⴙἭἥᾑ{ἡι}ⰑⱁⱵⱶ𐐕𐐽 }
- \__str_tmp:NNn 8 2 { RrĚěǢǣɆɇͲͳϖπҞҟԂԃႺⴚḂḃṦṧỊịἮἦᾒ{ἢι}ῶ{ῶ}ⰒⱂⳚⳛꙖꙗꞂꞃ𐐖𐐾 }
- \__str_tmp:NNn 8 3 { SsſsႻⴛἯἧᾓ{ἣι}ῷ{ῶι}Ⱃⱃ𐐗𐐿 }
- \__str_tmp:NNn 8 4 { TtĜĝǤǥɈɉϘϙҠҡԄԅႼⴜḄḅṨṩỌọᾔ{ἤι}ῸὸⰔⱄⳜⳝꙘꙙꞄꞅ𐐘𐑀 }
- \__str_tmp:NNn 8 5 { UuƁɓႽⴝᾕ{ἥι}ΌόⰕⱅ𐐙𐑁 }
- \__str_tmp:NNn 8 6 { VvĞğƂƃǦǧɊɋͶͷϚϛҢңԆԇႾⴞḆḇṪṫỎỏᾖ{ἦι}ῺὼΩωⰖⱆⳞⳟꙚꙛꜢꜣꞆꞇ𐐚𐑂 }
- \__str_tmp:NNn 8 7 { WwႿⴟᾗ{ἧι}ΏώⰗⱇ𐐛𐑃 }
- \__str_tmp:NNn 8 8 { XxĠġƄƅǨǩɌɍϜϝҤҥԈԉჀⴠḈḉṬṭỐốᾘ{ἠι}ῼ{ωι}ⰘⱈⳠⳡꙜꙝꜤꜥ𐐜𐑄 }
- \__str_tmp:NNn 8 9 { YyჁⴡᾙ{ἡι}Ⱉⱉ𐐝𐑅 }
- \__str_tmp:NNn 9 0 { ZzĢģƆɔǪǫɎɏϞϟҦҧԊԋჂⴢḊḋṮṯỒồᾚ{ἢι}KkⰚⱊⱾȿⳢⳣꙞꙟꜦꜧ𐐞𐑆 }
- \__str_tmp:NNn 9 1 { ƇƈჃⴣᾛ{ἣι}ÅåⰛⱋⱿɀꞋꞌ𐐟𐑇 }
- \__str_tmp:NNn 9 2 { ÀàĤĥǬǭϠϡҨҩԌԍჄⴤḌḍṰṱỔổἸἰᾜ{ἤι}ⰜⱌⲀⲁꙠꙡꜨꜩ𐐠𐑈 }
- \__str_tmp:NNn 9 3 { ÁáƉɖჅⴥἹἱᾝ{ἥι}ⰝⱍꞍɥ𐐡𐑉 }
- \__str_tmp:NNn 9 4 { ÂâĦħƊɗǮǯϢϣҪҫԎԏḎḏṲṳỖỗἺἲᾞ{ἦι}ⰞⱎⲂⲃꙢꙣꜪꜫ𐐢𐑊 }
- \__str_tmp:NNn 9 5 { ÃãƋƌͿϳჇⴧἻἳᾟ{ἧι}Ⱏⱏ𐐣𐑋 }
- \__str_tmp:NNn 9 6 { ÄäĨĩǰ{ǰ}ϤϥҬҭԐԑḐḑṴṵỘộἼἴᾠ{ὠι}ⰠⱐⲄⲅꙤꙥꜬꜭꞐꞑ𐐤𐑌 }
- \__str_tmp:NNn 9 7 { Åå{DZ}{dz}Ἵἵᾡ{ὡι}Ⱑⱑ𐐥𐑍 }
- \__str_tmp:NNn 9 8 { ÆæĪīƎǝ{Dz}{dz}ϦϧҮүԒԓḒḓṶṷỚớἾἶᾢ{ὢι}ℲⅎⒶⓐⰢⱒⲆⲇꙦꙧꜮꜯꞒꞓ𐐦𐑎 }
- \__str_tmp:NNn 9 9 { ÇçƏəἿἷᾣ{ὣι}ⒷⓑⰣⱓⳫⳬ𐐧𐑏 }
-\group_end:
diff --git a/Master/texmf-dist/source/latex/l3kernel/ltunicode.dtx b/Master/texmf-dist/source/latex/l3kernel/ltunicode.dtx
new file mode 100644
index 00000000000..7dd0591d4b6
--- /dev/null
+++ b/Master/texmf-dist/source/latex/l3kernel/ltunicode.dtx
@@ -0,0 +1,669 @@
+% \iffalse meta-comment
+%
+% Copyright 2014-2015
+% The LaTeX3 Project and any individual authors listed elsewhere
+% in this file.
+%
+% This file is part of the LaTeX base system.
+% -------------------------------------------
+%
+% It may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This file has the LPPL maintenance status "maintained".
+%
+% The list of all files belonging to the LaTeX base distribution is
+% given in the file `manifest.txt'. See also `legal.txt' for additional
+% information.
+%
+% The list of derived (unpacked) files belonging to the distribution
+% and covered by LPPL is defined by the unpacking scripts (with
+% extension .ins) which are part of the distribution.
+%
+% -----------------------------------------------------------------------------
+%
+% The same approach as used in \pkg{DocStrip}: if \cs{documentclass}
+% is undefined then skip the driver, allowing the file to be used directly.
+% This works as the \cs{fi} is only seen if \LaTeX{} is not in use. The odd
+% \cs{jobname} business allows the extraction to work with \LaTeX{} provided
+% an appropriate \texttt{.ins} file is set up.
+%<*gobble>
+\ifx\jobname\relax
+ \let\documentclass\undefined
+\fi
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname documentclass\endcsname\relax
+\else
+ \csname fi\endcsname
+%</gobble>
+%
+%<*driver>
+\ProvidesFile{ltunicode.dtx}
+ [2015/01/01 v1.0 LaTeX Kernel (Unicode data)]
+\documentclass{ltxdoc}
+\begin{document}
+\DocInput{\jobname.dtx}
+\end{document}
+%<*gobble>
+\fi
+%</gobble>
+%</driver>
+% \fi
+%
+% \GetFileInfo{ltunicode.dtx}
+% \title{The \texttt{ltunicode.dtx} file\thanks
+% {This file has version number \fileversion, dated \filedate.}\\
+% for use with \LaTeXe}
+% \author{The \LaTeX3 Project}
+%
+% \maketitle
+%
+% This script extracts data from the Unicode Consortium files
+% \texttt{UnicodeData.txt}, \texttt{EastAsianWidth.txt} and
+% \texttt{LineBreak.txt} to be used for setting up \LaTeXe{} with sane
+% default settings when using the Xe\TeX{} and Lua\TeX{} engines. Details
+% of the process are included in the code comments.
+%
+% To create the extracted file, run this file in a location containing
+% the three input data files using a plain \TeX{} system with the e-\TeX{}
+% extensions enabled (\texttt{pdftex}, \texttt{xetex} or \texttt{luatex}
+% in any modern \TeX{} distribution).
+%
+% \StopEventually{}
+%
+% \begin{macrocode}
+%<*script>
+% \end{macrocode}
+%
+% \section{General set up}
+%
+% The script is designed to work with plain \TeX{} and so |@| is made into
+% a `letter' using the primitive approach.
+% \begin{macrocode}
+\catcode`\@=11 %
+% \end{macrocode}
+%
+% \begin{macro}{\gobble}
+% \begin{macro}{\firsttoken}
+% Standard utilities.
+% \begin{macrocode}
+\long\def\gobble#1{}
+\long\def\firsttoken#1#2\relax{#1}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\storedpar}
+% A simple piece of test set up: the final line of the read file will be
+% tokenized by \TeX{} as \cs{par} which can be tested by \cs{ifx} provided
+% we have an equivalent available.
+% \begin{macrocode}
+\def\storedpar{\par}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\return}
+% A stored |^^M| for string comparisons.
+% \begin{macrocode}
+\begingroup
+ \catcode`\^^M=12 %
+ \gdef\return{^^M}%
+\endgroup%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\sourceforhex}
+% \begin{macro}{\sethex}
+% \begin{macro}{\dohex}
+% \begin{macro}{\hexdigit}
+% Some parts of the code here will need to be able to convert integers
+% to their hexadecimal equivalent. That is easiest to do for the requirements
+% here using a modified version of some code from Appendix~D of \emph{The
+% \TeX{}book}.
+% \begin{macrocode}
+\newcount\sourceforhex
+\def\sethex#1#2{%
+ \def#1{}%
+ \sourceforhex=#2\relax
+ \ifnum\sourceforhex=0 %
+ \def#1{0}%
+ \else
+ \dohex#1%
+ \fi
+}
+\def\dohex#1{%
+ \begingroup
+ \count0=\sourceforhex
+ \divide\sourceforhex by 16 %
+ \ifnum\sourceforhex>0 %
+ \dohex#1%
+ \fi
+ \count2=\sourceforhex
+ \multiply\count2 by -16 %
+ \advance\count0 by\count2
+ \hexdigit#1%
+ \expandafter\endgroup
+ \expandafter\def\expandafter#1\expandafter{#1}%
+}
+\def\hexdigit#1{%
+ \ifnum\count0<10 %
+ \edef#1{#1\number\count0}%
+ \else
+ \advance\count0 by -10 %
+ \edef#1{#1\ifcase\count0 A\or B\or C\or D\or E\or F\fi}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\unicoderead, \unicodewrite}
+% Set up the streams for data.
+% \begin{macrocode}
+\newread\unicoderead
+\newwrite\unicodewrite
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Verbatim copying}
+%
+% \begin{macro}{\verbatimcopy}
+% \begin{macro}{\endverbatimcopy}
+% \begin{macro}{\verbatimcopy@auxii}
+% \begin{macro}{\verbatimcopy@auxii}
+% \begin{macro}{\verbatim@endmarker}
+% Set up to read some material verbatim and write it to the output stream.
+% There needs to be a dedicated `clean up first line' macro, but other than
+% that life is simple enough.
+% \begin{macrocode}
+\begingroup
+ \catcode`\^^M=12 %
+ \gdef\verbatimcopy{%
+ \begingroup%
+ \catcode`\^^M=12 %
+ \catcode`\\=12 %
+ \catcode`\{=12 %
+ \catcode`\}=12 %
+ \catcode`\#=12 %
+ \catcode`\%=12 %
+ \catcode`\ =12 %
+ \endlinechar=`\^^M %
+ \verbatimcopy@auxi
+ }%
+ \gdef\verbatimcopy@auxi#1^^M{%
+ \expandafter\verbatimcopy@auxii\gobble#1^^M%
+ }%
+ \gdef\verbatimcopy@auxii#1^^M{%
+ \def\temp{#1}%
+ \ifx\temp\verbatim@endmarker%
+ \expandafter\endgroup%
+ \else%
+ \ifx\temp\empty\else%
+ \immediate\write\unicodewrite{#1}%
+ \fi%
+ \expandafter\verbatimcopy@auxii%
+ \fi%
+ }%
+\endgroup%
+\edef\verbatim@endmarker{\expandafter\gobble\string\\}
+\edef\verbatim@endmarker{\verbatim@endmarker endverbatimcopy}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{File header section}
+%
+% With the mechanisms set up, open the data file for writing.
+% \begin{macrocode}
+\immediate\openout\unicodewrite=ltunicode.ltx %
+% \end{macrocode}
+% There are various lines that now need to go at the start of the file.
+% First, there is some header information.
+% \begin{macrocode}
+\verbatimcopy
+%% This is the file `ltunicode.ltx',
+%% generated using the script ltunicode.dtx.
+%%
+%% The data here are derived from the files
+%% - UnicodeData.txt
+%% which are maintained by the Unicode Consortium.
+%%
+%% Copyright 2014
+%% The LaTeX3 Project and any individual authors listed elsewhere
+%% in this file.
+%%
+%% This file is part of the LaTeX base system.
+%% -------------------------------------------
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This file has the LPPL maintenance status "maintained".
+%%
+%% The list of all files belonging to the LaTeX base distribution is
+%% given in the file `manifest.txt'. See also `legal.txt' for additional
+%% information.
+\endverbatimcopy
+% \end{macrocode}
+% Automatically include the current date.
+% \begin{macrocode}
+\immediate\write\unicodewrite{%
+ \expandafter\gobble\string\%\expandafter\gobble\string\%
+ Generated on \the\year-\the\month-\the\day.
+}
+\immediate\write\unicodewrite{%
+ \expandafter\gobble\string\%\expandafter\gobble\string\%
+}
+% \end{macrocode}
+%
+% \section{Unicode character data}
+%
+% \begin{macro}{\parseunicodedata}
+% \begin{macro}{\parseunicodedata@auxi}
+% \begin{macro}{\parseunicodedata@auxii}
+% \begin{macro}{\parseunicodedata@auxiii}
+% The first step of parsing a line of data is to check that it's not come
+% from a blank in the source, which will have been tokenized as \cs{par}.
+% Assuming that is not the case, there are lots of data items separated by
+% |;|. Of those, only a few are needed so they are picked out and everything
+% else is dropped.
+% \begin{macrocode}
+\def\parseunicodedata#1{%
+ \ifx#1\storedpar
+ \else
+ \expandafter\parseunicodedata@auxi#1\relax
+ \fi
+}
+\def\parseunicodedata@auxi#1;#2;#3;#4;#5;#6;#7;#8;#9;{%
+ \parseunicodedata@auxii#1;#3;
+}
+\def\parseunicodedata@auxii#1;#2;#3;#4;#5;#6;#7;#8\relax{%
+ \parseunicodedata@auxiii{#1}{#2}{#6}{#7}%
+}
+% \end{macrocode}
+% At this stage we have only four pieces of data
+% \begin{enumerate}
+% \item The code value
+% \item The general class
+% \item The uppercase mapping
+% \item The lowercase mapping
+% \end{enumerate}
+% where both one or both of the last two may be empty. Everything here could
+% be done in a single conditional within a \cs{write}, but that would be
+% tricky to follow. Instead, a series of defined auxiliaries are used to
+% show the flow. Notice that combining marks are treated as letters here
+% (the second `letter' test).
+% \begin{macrocode}
+\def\parseunicodedata@auxiii#1#2#3#4{%
+ \if L\firsttoken#2?\relax
+ \expandafter\unicodeletter
+ \else
+ \if M\firsttoken#2?\relax
+ \expandafter\expandafter\expandafter\unicodeletter
+ \else
+ \expandafter\expandafter\expandafter\unicodenonletter
+ \fi
+ \fi
+ {#1}{#3}{#4}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\unicodeletter, \unicodenonletter}
+% \begin{macro}{\writeunicodedata}
+% For `letters', we always want to write the data to file, and the only
+% question here is if the character has case mappings or these point back
+% to the character itself.
+% \begin{macrocode}
+\def\unicodeletter#1#2#3{%
+ \writeunicodedata\L{#1}{#2}{#3}%
+}
+% \end{macrocode}
+% Cased non-letters can also exist: they can be detected as they have at
+% least one case mapping. Write these in much the same way as letters.
+% \begin{macrocode}
+\def\unicodenonletter#1#2#3{%
+ \ifx\relax#2#3\relax
+ \else
+ \writeunicodedata\C{#1}{#2}{#3}%
+ \fi
+}
+% \end{macrocode}
+% Actually write the data. In all cases both upper- and lower-case mappings
+% are given, so there is a need to test that both were actually available and
+% if not set up to do nothing.
+% \begin{macrocode}
+\def\writeunicodedata#1#2#3#4{%
+ \immediate\write\unicodewrite{%
+ \space\space
+ \string#1\space
+ #2 %
+ \ifx\relax#3\relax
+ #2 %
+ \else
+ #3 %
+ \fi
+ \ifx\relax#4\relax
+ #2 %
+ \else
+ #4 %
+ \fi
+ \expandafter\gobble\string\%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% There is now a lead-in section which creates the macros which take the
+% processed data and do the code assignments. Everything is done within a
+% group so that there is no need to worry about names.
+% \begin{macrocode}
+\verbatimcopy
+\begingroup
+\endverbatimcopy
+% \end{macrocode}
+% Cased non-letters simply need to have the case mappings set.
+% For letters, there are a few things to sort out. First, the case mappings are
+% defined as for non-letters. Category code is then set to $11$ before a check
+% to see if this is an upper case letter. If it is then the \cs{sfcode} is set
+% to $999$. Finally there is a need to deal with Unicode math codes, where base
+% plane letters are class $7$ but supplementary plane letters are class~$1$.
+% Older versions of Xe\TeX{} used a different name here: easy to pick up as
+% we know that this primitive must be defined in some way. There is also an issue
+% with the supplementary plane and older Xe\TeX{} versions, which is dealt with
+% using a check at run time.
+% \begin{macrocode}
+\verbatimcopy
+ \def\C#1 #2 #3 {%
+ \XeTeXcheck{#1}%
+ \global\uccode"#1="#2 %
+ \global\lccode"#1="#3 %
+ }
+ \def\L#1 #2 #3 {%
+ \C #1 #2 #3 %
+ \catcode"#1=11 %
+ \ifnum"#1="#3 %
+ \else
+ \global\sfcode"#1=999 %
+ \fi
+ \ifnum"#1<"10000 %
+ \global\Umathcode"#1="7"01"#1 %
+ \else
+ \global\Umathcode"#1="0"01"#1 %
+ \fi
+ }
+ \ifx\Umathcode\undefined
+ \let\Umathcode\XeTeXmathcode
+ \fi
+ \def\XeTeXcheck#1{}
+ \ifx\XeTeXversion\undefined
+ \else
+ \def\XeTeXcheck.#1.#2-#3\relax{#1}
+ \ifnum\expandafter\XeTeXcheck\XeTeXrevision.-\relax>996 %
+ \def\XeTeXcheck#1{}
+ \else
+ \def\XeTeXcheck#1{%
+ \ifnum"#1>"FFFF %
+ \long\def\XeTeXcheck##1\endgroup{\endgroup}
+ \expandafter\XeTeXcheck
+ \fi
+ }
+ \fi
+ \fi
+\endverbatimcopy
+% \end{macrocode}
+% Read the data and write the resulting code assignments to the file.
+% \begin{macrocode}
+\openin\unicoderead=UnicodeData.txt %
+\ifeof\unicoderead
+ \errmessage{Data file missing: UnicodeData.txt}%
+\fi
+\loop\unless\ifeof\unicoderead
+ \read\unicoderead to \unicodedataline
+ \parseunicodedata\unicodedataline
+\repeat
+% \end{macrocode}
+% End the group for setting character codes and assign a couple of special
+% cases.
+% \begin{macrocode}
+\verbatimcopy
+\endgroup
+\global\sfcode"2019=0 %
+\global\sfcode"201D=0 %
+\endverbatimcopy
+% \end{macrocode}
+% Lua\TeX{} and older versions of Xe\TeX{} stop here: character classes are a
+% Xe\TeX{}-only concept.
+% \begin{macrocode}
+\verbatimcopy
+\ifx\XeTeXcharclass\@undefined
+ \expandafter\endinput
+\fi
+\endverbatimcopy
+% \end{macrocode}
+%
+% \section{Xe\TeX{} Character classes}
+%
+% The Xe\TeX{} engine includes the concept of character classes, which allow
+% insertion of tokens into the input stream at defined boundaries. Setting
+% up this data requires a two-part process as the information is split over
+% two input files.
+%
+% \begin{macro}{\parseunicodedata}
+% \begin{macro}{\parseunicodedata@auxi}
+% \begin{macro}{\parseunicodedata@auxii}
+% The parsing system is redefined to parse a detokenized input line which
+% may be a comment starting with |#|. Assuming that is not the case, the
+% data line with start with a code point potentially forming part of a range.
+% The range is extracted and the width stored for each code point.
+% \begin{macrocode}
+\def\parseunicodedata#1{%
+ \ifx#1\return
+ \else
+ \wlog{#1}%
+ \if\expandafter\gobble\string\#\expandafter\firsttoken#1?\relax
+ \else
+ \expandafter\parseunicodedata@auxi#1\relax
+ \fi
+ \fi
+}
+\def\parseunicodedata@auxi#1;#2 #3\relax{%
+ \parseunicodedata@auxii#1....\relax{#2}%
+}
+\def\parseunicodedata@auxii#1..#2..#3\relax#4{%
+ \expandafter\gdef\csname EAW@#1\endcsname{#4}%
+ \ifx\relax#2\relax
+ \else
+ \count@="#1 %
+ \begingroup
+ \loop
+ \ifnum\count@<"#2 %
+ \advance\count@\@ne
+ \sethex\temp{\count@}%
+ \expandafter\gdef\csname EAW@\temp\endcsname{#4}%
+ \repeat
+ \endgroup
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% With the right parser in place, read the data file.
+% \begin{macrocode}
+\openin\unicoderead=EastAsianWidth.txt %
+\ifeof\unicoderead
+ \errmessage{Data file missing: EastAsianWidth.txt}%
+\fi
+\loop\unless\ifeof\unicoderead
+ \readline\unicoderead to \unicodedataline
+ \parseunicodedata\unicodedataline
+\repeat
+% \end{macrocode}
+%
+% \begin{macro}{\parseunicodedata@auxii}
+% \begin{macro}{\parseunicodedata@auxiii}
+% \begin{macro}{\parseunicodedata@auxiv}
+% \begin{macro}{\ID}
+% \begin{macro}{\OP}
+% \begin{macro}{\CL}
+% \begin{macro}{\EX}
+% \begin{macro}{\IS}
+% \begin{macro}{\NS}
+% \begin{macro}{\CM}
+% The final file to read, |LineBreaking.txt|, uses the same format as
+% |EastAsianWidth.txt|. As such, only the final parts of the parser have to be
+% redefined.
+% \begin{macrocode}
+\def\parseunicodedata@auxii#1..#2..#3\relax#4{%
+ \parseunicodedata@auxiii{#1}{#4}%
+ \ifx\relax#2\relax
+ \else
+ \count@="#1 %
+ \begingroup
+ \loop
+ \ifnum\count@<"#2 %
+ \advance\count@\@ne
+ \sethex\temp{\count@}%
+ \expandafter\parseunicodedata@auxiii\expandafter{\temp}{#4}%
+ \repeat
+ \endgroup
+ \fi
+}
+% \end{macrocode}
+% Adding data to the processed file depends on two factors: the
+% classification in the line-breaking file and (possibly) the width data
+% too. Any characters of class \texttt{ID} (ideograph) are stored: they
+% always need special treatment. For characters of classes \texttt{OP}
+% (opener), \texttt{CL} (closer), \texttt{EX} (exclamation), \texttt{IS}
+% (infix sep) and \texttt{NS} (non-starter) the data is stored if the
+% character is full, half or wide width. The same is true for
+% \texttt{CM} (combining marks) characters, which need to be transparent
+% to the mechanism.
+% \begin{macrocode}
+\def\parseunicodedata@auxiii#1#2{%
+ \ifcsname #2\endcsname
+ \ifnum\csname #2\endcsname=1 %
+ \parseunicodedata@auxiv{#1}{#2}%
+ \else
+ \ifnum 0%
+ \if F\csname EAW@#1\endcsname 1\fi
+ \if H\csname EAW@#1\endcsname 1\fi
+ \if W\csname EAW@#1\endcsname 1\fi
+ >0 %
+ \parseunicodedata@auxiv{#1}{#2}%
+ \fi
+ \fi
+ \fi
+}
+\def\parseunicodedata@auxiv#1#2{%
+ \immediate\write\unicodewrite{%
+ \space\space
+ \expandafter\string\csname #2\endcsname
+ \space
+ #1 %
+ \expandafter\gobble\string\%
+ }%
+}
+\def\ID{1}
+\def\OP{2}
+\def\CL{3}
+\let\EX\CL
+\let\IS\CL
+\let\NS\CL
+\def\CM{256}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% Before actually reading the line breaking data file, the appropriate
+% temporary code is added to the output. As described above, only a limited
+% number of classes need to be covered: they are hard-coded as classes
+% $1$, $2$ and $3$ following the convention adopted by plain Xe\TeX{}.
+% \begin{macrocode}
+\verbatimcopy
+\begingroup
+ \def\ID#1 {\global\XeTeXcharclass"#1=1 \global\catcode"#1=11 }
+ \def\OP#1 {\global\XeTeXcharclass"#1=2 }
+ \def\CL#1 {\global\XeTeXcharclass"#1=3 }
+ \def\EX#1 {\global\XeTeXcharclass"#1=3 }
+ \def\IS#1 {\global\XeTeXcharclass"#1=3 }
+ \def\NS#1 {\global\XeTeXcharclass"#1=3 }
+ \def\CM#1 {\global\XeTeXcharclass"#1=256 }
+\endverbatimcopy
+% \end{macrocode}
+%
+% Read the line breaking data and save to the output.
+% \begin{macrocode}
+\openin\unicoderead=LineBreak.txt %
+\ifeof\unicoderead
+ \errmessage{Data file missing: LineBreak.txt}%
+\fi
+\loop\unless\ifeof\unicoderead
+ \readline\unicoderead to \unicodedataline
+ \parseunicodedata\unicodedataline
+\repeat
+% \end{macrocode}
+%
+% Set up material to be inserted between character classes. Other than
+% using \cs{hspace} here in place of \cs{hskip} this code is identical to
+% that provided by plain Xe\TeX{}.
+% \begin{macrocode}
+\verbatimcopy
+\endgroup
+\gdef\xtxHanGlue{\hspace{0pt plus 0.1em}}
+\gdef\xtxHanSpace{\hspace{0.2em plus 0.2em minus 0.1em}}
+\global\XeTeXinterchartoks 0 1 = {\xtxHanSpace}
+\global\XeTeXinterchartoks 0 2 = {\xtxHanSpace}
+\global\XeTeXinterchartoks 0 3 = {\nobreak\xtxHanSpace}
+\global\XeTeXinterchartoks 1 0 = {\xtxHanSpace}
+\global\XeTeXinterchartoks 2 0 = {\nobreak\xtxHanSpace}
+\global\XeTeXinterchartoks 3 0 = {\xtxHanSpace}
+\global\XeTeXinterchartoks 1 1 = {\xtxHanGlue}
+\global\XeTeXinterchartoks 1 2 = {\xtxHanGlue}
+\global\XeTeXinterchartoks 1 3 = {\nobreak\xtxHanGlue}
+\global\XeTeXinterchartoks 2 1 = {\nobreak\xtxHanGlue}
+\global\XeTeXinterchartoks 2 2 = {\nobreak\xtxHanGlue}
+\global\XeTeXinterchartoks 2 3 = {\xtxHanGlue}
+\global\XeTeXinterchartoks 3 1 = {\xtxHanGlue}
+\global\XeTeXinterchartoks 3 2 = {\xtxHanGlue}
+\global\XeTeXinterchartoks 3 3 = {\nobreak\xtxHanGlue}
+\endverbatimcopy
+% \end{macrocode}
+%
+% Done: end the script.
+% \begin{macrocode}
+\bye
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</script>
+% \end{macrocode} \ No newline at end of file
diff --git a/Master/texmf-dist/source/latex/l3kernel/source3.tex b/Master/texmf-dist/source/latex/l3kernel/source3.tex
deleted file mode 100644
index 22c3c44048d..00000000000
--- a/Master/texmf-dist/source/latex/l3kernel/source3.tex
+++ /dev/null
@@ -1,106 +0,0 @@
-% \iffalse meta-comment
-%
-%% File: source3.tex Copyright (C) 1990-2011 The LaTeX3 Project
-%%
-%% It may be distributed and/or modified under the conditions of the
-%% LaTeX Project Public License (LPPL), either version 1.3c of this
-%% license or (at your option) any later version. The latest version
-%% of this license is in the file
-%%
-%% http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%% http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%% Snapshots taken from the repository represent work in progress and may
-%% not work or may contain conflicting material! We therefore ask
-%% people _not_ to put them into distributions, archives, etc. without
-%% prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-%
-% \fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% This document will typeset the LaTeX3 sources as a single document.
-% This will produce quite a large file (more than 780 pages).
-%
-% There is also a shorter version (interface3.tex) that only typesets the
-% command % interface descriptions.
-%
-% Do not forget to generate the index (as explained on the terminal output
-% near the end of the run)!
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\documentclass{l3doc}
-\listfiles
-
-\begin{document}
-
-\title{The \LaTeX3 Sources}
-\author{%
- The \LaTeX3 Project\thanks
- {%
- E-mail:
- \href{mailto:latex-team@latex-project.org}
- {latex-team@latex-project.org}%
- }%
-}
-
-\pagenumbering{roman}
-\maketitle
-
-%
-% First load all modules and typeset the documentation parts
-%
-
-\input{source3body} % all the individual modules
-
-%
-% Now reload all modules and typeset the implementation parts
-%
-
-\part{Implementation}
-
-\def\maketitle{}
-\EnableImplementation
-\DisableDocumentation
-\DocInputAgain
-
-\clearpage
-\pagestyle{headings}
-
-% Make TeX shut up.
-\hbadness=10000
-\newcount\hbadness
-\hfuzz=\maxdimen
-
-\PrintChanges
-\clearpage
-
-\begingroup
- \def\endash{--}
- \catcode`\-\active
- \def-{\futurelet\temp\indexdash}
- \def\indexdash{\ifx\temp-\endash\fi}
-
- \DelayPrintIndex
-\endgroup
-
-\end{document}