<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://test.st34an.tech/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jsrs701</id>
	<title>st34an test wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://test.st34an.tech/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jsrs701"/>
	<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Special:Contributions/Jsrs701"/>
	<updated>2026-04-10T16:13:04Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tracking/inflection_of/tag/second-person&amp;diff=605</id>
		<title>Template:Tracking/inflection of/tag/second-person</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tracking/inflection_of/tag/second-person&amp;diff=605"/>
		<updated>2026-04-10T07:29:56Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;==Subpages==&lt;br /&gt;
{{Special:PrefixIndex/{{FULLPAGENAME}}/|stripprefix=1}}[[Category:Tracking templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tracking/inflection_of/tag/intransitive&amp;diff=603</id>
		<title>Template:Tracking/inflection of/tag/intransitive</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tracking/inflection_of/tag/intransitive&amp;diff=603"/>
		<updated>2026-04-10T07:29:56Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;==Subpages==&lt;br /&gt;
{{Special:PrefixIndex/{{FULLPAGENAME}}/|stripprefix=1}}[[Category:Tracking templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Kezh-noun-decl&amp;diff=601</id>
		<title>Template:Kezh-noun-decl</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Kezh-noun-decl&amp;diff=601"/>
		<updated>2026-04-10T07:29:56Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;lt;!-- mw-collapsible--&amp;gt;&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:100px; background-color: #00E8FF;&amp;quot;| &lt;br /&gt;
! style=&amp;quot;text-align: center; background-color: #DDF8FF;&amp;quot;| Singular&lt;br /&gt;
! style=&amp;quot;text-align: center; background-color: #DDF8FF;&amp;quot;| Plural&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; background-color: #DDF8FF;&amp;quot;| &#039;&#039;&#039;Definite&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[{{{inic}}}{{{root}}}{{{finc}}}]]&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;&amp;quot; | [[an]] [[{{#if: {{{inic|}}} | {{#switch: {{{inic}}} | p = b | P = B | t = d | T = D | k = g | K = G | f = v | F = V | th = dh | Th = Dh | s = z | S = Z | sh = zh | Sh = Zh | {{{inic}}}}} | }}{{{root}}}{{{finc}}}]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; background-color: #DDF8FF;&amp;quot;| &#039;&#039;&#039;Indefinite&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[{{#if: {{{inic|}}} | {{#switch: {{{inic}}} | p = i-b | P = i-B | t = i-d | T = i-D | k = i-g | K = i-G | f = i-v | F = i-V | th = i-dh | Th = i-Dh | s = i-z | S = i-Z | sh = i-zh | Sh = i-Zh | i-{{{inic}}}}} | {{#if: {{{i|}}} | zh- | y- }}}}{{{root}}}{{{finc}}}]]&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: center; background-color: #DDF8FF;&amp;quot;| &#039;&#039;&#039;Proximal&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[{{{inic}}}{{{dem}}}{{#if: {{{finc|}}} | {{#switch: {{{finc}}} | p = bagí | t = dagí | k = gagí | f = vagí | th = dhagí | s = zagí | sh = zhagí | {{{finc}}}agí}} | gí}}]]&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[an]] [[{{#if: {{{inic|}}} | {{#switch: {{{inic}}} | p = b | P = B | t = d | T = D | k = g | K = G | f = v | F = V | th = dh | Th = Dh | s = z | S = Z | sh = zh | Sh = Zh | {{{inic}}}}} | }}{{{dem}}}{{#if: {{{finc|}}} | {{#switch: {{{finc}}} | p = bagí | t = dagí | k = gagí | f = vagí | th = dhagí | s = zagí | sh = zhagí | {{{finc}}}agí}} | gí}}]]&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: center; background-color: #DDF8FF;&amp;quot;| &#039;&#039;&#039;Distal&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[{{{inic}}}{{{dem}}}{{#if: {{{finc|}}} | {{#switch: {{{finc}}} | p = bayá | t = dayá | k = gayá | f = vayá | th = dhayá | s = zayá | sh = zhayá | {{{finc}}}ayá}} | yá}}]]&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[an]] [[{{#if: {{{inic|}}} | {{#switch: {{{inic}}} | p = b | P = B | t = d | T = D | k = g | K = G | f = v | F = V | th = dh | Th = Dh | s = z | S = Z | sh = zh | Sh = Zh | {{{inic}}}}} | }}{{{dem}}}{{#if: {{{finc|}}} | {{#switch: {{{finc}}} | p = bayá | t = dayá | k = gayá | f = vayá | th = dhayá | s = zayá | sh = zhayá | {{{finc}}}ayá}} | yá}}]]&lt;br /&gt;
|}&amp;lt;noinclude&amp;gt;[[Category:Kezhwa templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tracking/headword/pagename_spelling_mismatch/kezh&amp;diff=599</id>
		<title>Template:Tracking/headword/pagename spelling mismatch/kezh</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tracking/headword/pagename_spelling_mismatch/kezh&amp;diff=599"/>
		<updated>2026-04-10T07:29:56Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;==Subpages==&lt;br /&gt;
{{Special:PrefixIndex/{{FULLPAGENAME}}/|stripprefix=1}}[[Category:Tracking templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Also_wt&amp;diff=597</id>
		<title>Template:Also wt</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Also_wt&amp;diff=597"/>
		<updated>2026-04-10T07:29:56Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;See also:&#039;&#039; &#039;&#039;&#039;[[Wiktionary:{{{1|{{#ifeq: {{NAMESPACENUMBER}}|0|{{lcfirst:{{PAGENAME}}}}|{{FULLPAGENAME}}}}}}}{{#ifeq: {{NAMESPACENUMBER}}|0|&amp;amp;#35;{{{lang1|English}}}}}|{{{1|{{#ifeq: {{NAMESPACENUMBER}}|0|{{lcfirst:{{PAGENAME}}}}|{{FULLPAGENAME}}}}}}}]]&#039;&#039;&#039; {{#if: {{{2|}}} |&#039;&#039;and&#039;&#039; &#039;&#039;&#039;[[Wiktionary:{{{2|{{#ifeq: {{NAMESPACENUMBER}}|0|{{lcfirst:{{PAGENAME}}}}|{{FULLPAGENAME}}}}}}}{{#ifeq: {{NAMESPACENUMBER}}|0|&amp;amp;#35;{{{lang2|English}}}}}|{{{2|{{#ifeq: {{NAMESPACENUMBER}}|0|{{lcfirst:{{PAGENAME}}}}|{{FULLPAGENAME}}}}}}}]]&#039;&#039;&#039;}} &#039;&#039;on [[Wiktionary:Wiktionary:Main Page|Wiktionary]]&#039;&#039;&amp;lt;noinclude&amp;gt;[[Category:Templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tracking/headword/pagename_spelling_mismatch/sond&amp;diff=595</id>
		<title>Template:Tracking/headword/pagename spelling mismatch/sond</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tracking/headword/pagename_spelling_mismatch/sond&amp;diff=595"/>
		<updated>2026-04-10T07:29:56Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;==Subpages==&lt;br /&gt;
{{Special:PrefixIndex/{{FULLPAGENAME}}/|stripprefix=1}}[[Category:Tracking templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Sond-orth&amp;diff=593</id>
		<title>Template:Sond-orth</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Sond-orth&amp;diff=593"/>
		<updated>2026-04-10T07:29:55Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;font-family: Sondiv; font-weight:normal !important;&amp;quot;&amp;gt;{{huge|valign=normal|{{{form}}}}}&amp;lt;/span&amp;gt;&amp;lt;noinclude&amp;gt;[[Category:Sondiv templates]][[Category:Orthography templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Borrowed&amp;diff=591</id>
		<title>Template:Borrowed</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Borrowed&amp;diff=591"/>
		<updated>2026-04-10T07:29:55Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:etymology/templates|borrowed}}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if:{{{withtext|}}}|[[Category:bor with withtext]]}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Bor&amp;diff=589</id>
		<title>Template:Bor</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Bor&amp;diff=589"/>
		<updated>2026-04-10T07:29:55Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:borrowed]]&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Prefix&amp;diff=587</id>
		<title>Template:Prefix</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Prefix&amp;diff=587"/>
		<updated>2026-04-10T07:29:55Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:affix/templates|prefix}}&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Module:Affix/templates&amp;diff=585</id>
		<title>Module:Affix/templates</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Module:Affix/templates&amp;diff=585"/>
		<updated>2026-04-10T07:29:55Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local export = {}&lt;br /&gt;
&lt;br /&gt;
local m_affix = require(&amp;quot;Module:affix&amp;quot;)&lt;br /&gt;
local m_languages = require(&amp;quot;Module:languages&amp;quot;)&lt;br /&gt;
local pseudo_loan_module = &amp;quot;Module:affix/pseudo-loan&amp;quot;&lt;br /&gt;
local put -- initialized once, when needed, to require(&amp;quot;Module:parse utilities&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
local rsplit = mw.text.split&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Per-param modifiers, which can be specified either as separate parameters (e.g. t2=, pos3=) or as inline modifiers&lt;br /&gt;
-- &amp;lt;t:...&amp;gt;, &amp;lt;pos:...&amp;gt;, etc. The key is the name fo the parameter (e.g. &amp;quot;t&amp;quot;, &amp;quot;pos&amp;quot;) and the value is a table with&lt;br /&gt;
-- elements as follows:&lt;br /&gt;
-- * `extra_specs`: An optional table of extra key-value pairs to add to the spec used for parsing the parameter&lt;br /&gt;
--                  when specified as a separate parameter (e.g. {type = &amp;quot;boolean&amp;quot;} for a Boolean parameter, or&lt;br /&gt;
--                  {alias_of = &amp;quot;t&amp;quot;} for the &amp;quot;gloss&amp;quot; parameter, which is aliased to &amp;quot;t&amp;quot;), on top of the default, which&lt;br /&gt;
--                  is {list = true, allow_holes = true, require_index = true}.&lt;br /&gt;
-- * `convert`: An optional function to convert the raw argument into the form passed to [[Module:affix]].&lt;br /&gt;
--              This function takes four parameters: (1) `arg` (the raw argument); (2) `inline` (true if we&#039;re&lt;br /&gt;
--              processing an inline modifier, false otherwise); (3) `term_index` (the actual index of the first term);&lt;br /&gt;
--              (4) `i` (the logical index of the term being processed, starting from 1).&lt;br /&gt;
-- * `item_dest`: The name of the key used when storing the parameter&#039;s value into the processed `parts` list.&lt;br /&gt;
--                Normally the same as the parameter&#039;s name. Different in the case of &amp;quot;t&amp;quot;, where we store the gloss in&lt;br /&gt;
--                &amp;quot;gloss&amp;quot;, and &amp;quot;g&amp;quot;, where we store the genders in &amp;quot;genders&amp;quot;.&lt;br /&gt;
-- * `param_key`: The name of the key used in the `params` spec passed to [[Module:parameters]]. Normally the same as&lt;br /&gt;
--                the parameter&#039;s name. Different in the case of &amp;quot;lit&amp;quot;, &amp;quot;sc&amp;quot;, etc. where e.g. we distinguish per-term&lt;br /&gt;
--                parameters &amp;quot;lit1&amp;quot;, &amp;quot;lit2&amp;quot;, etc. from the overall parameter &amp;quot;lit&amp;quot;.&lt;br /&gt;
local param_mods = {&lt;br /&gt;
	t = {&lt;br /&gt;
		-- We need to store the t1=/t2= param and the &amp;lt;t:...&amp;gt; inline modifier into the &amp;quot;gloss&amp;quot; key of the parsed part,&lt;br /&gt;
		-- because that is what [[Module:affix]] expects.&lt;br /&gt;
		item_dest = &amp;quot;gloss&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	gloss = {&lt;br /&gt;
		-- The `extra_specs` handles the fact that &amp;quot;gloss&amp;quot; is an alias of &amp;quot;t&amp;quot;.&lt;br /&gt;
		extra_specs = {alias_of = &amp;quot;t&amp;quot;},&lt;br /&gt;
	},&lt;br /&gt;
	tr = {},&lt;br /&gt;
	ts = {},&lt;br /&gt;
	g = {&lt;br /&gt;
		-- We need to store the g1=/g2= param and the &amp;lt;g:...&amp;gt; inline modifier into the &amp;quot;genders&amp;quot; key of the parsed part,&lt;br /&gt;
		-- because that is what [[Module:affix]] expects.&lt;br /&gt;
		item_dest = &amp;quot;genders&amp;quot;,&lt;br /&gt;
		convert = function(arg, inline, term_index, i)&lt;br /&gt;
			return rsplit(arg, &amp;quot;,&amp;quot;)&lt;br /&gt;
		end,&lt;br /&gt;
	},&lt;br /&gt;
	id = {},&lt;br /&gt;
	alt = {},&lt;br /&gt;
	q = {},&lt;br /&gt;
	qq = {},&lt;br /&gt;
	lit = {&lt;br /&gt;
		-- lit1=, lit2=, ... are different from lit=; the former describe the literal meaning of an individual argument&lt;br /&gt;
		-- while the latter applies to the expression as a whole and appears after them at the end. To handle this in&lt;br /&gt;
		-- separate parameters, we need to set the key in the `params` object passed to [[Module:parameters]] to&lt;br /&gt;
		-- something else (in this case &amp;quot;partlit&amp;quot;) and set `list = &amp;quot;lit&amp;quot;` in the value of the `params` object. This&lt;br /&gt;
		-- causes [[Module:parameters]] to fetch parameters named lit1=, lit2= etc. but store them into &amp;quot;partlit&amp;quot;, while&lt;br /&gt;
		-- lit= is stored into &amp;quot;lit&amp;quot;.&lt;br /&gt;
		param_key = &amp;quot;partlit&amp;quot;,&lt;br /&gt;
		extra_specs = {list = &amp;quot;lit&amp;quot;},&lt;br /&gt;
	},&lt;br /&gt;
	pos = {&lt;br /&gt;
		-- pos1=, pos2=, ... are different from pos=; the former indicate the part of speech of an individual argument&lt;br /&gt;
		-- and appear in parens after the term (similar to the pos= argument to {{l}}), while the latter applies to the&lt;br /&gt;
		-- expression as a whole and controls the names of various categories. We handle the distinction identically to&lt;br /&gt;
		-- lit1= etc. vs. lit=; see above.&lt;br /&gt;
		param_key = &amp;quot;partpos&amp;quot;,&lt;br /&gt;
		extra_specs = {list = &amp;quot;pos&amp;quot;},&lt;br /&gt;
	},&lt;br /&gt;
	lang = {&lt;br /&gt;
		-- lang1=, lang2=, ... are different from 1=; the former set the language of individual arguments that are&lt;br /&gt;
		-- different from the overall language specified in 1=. Note that the preferred way of specifying a different&lt;br /&gt;
		-- language for a given individual argument is using a language-code prefix, e.g. &#039;la:minūtia&#039; or&lt;br /&gt;
		-- &#039;grc:[[σκῶρ|σκατός]]&#039;, instead of using langN=. Since for compatibility purposes we may support lang= as&lt;br /&gt;
		-- a synonym of 1=, we can&#039;t store langN= in &amp;quot;lang&amp;quot;. Instead we do the same as for lit1= etc. vs. lit= above.&lt;br /&gt;
		-- In addition, we need a conversion function to convert from language codes to language objects, which needs&lt;br /&gt;
		-- to conditionalize the `param` parameter of `getByCode` of [[Module:languages]] on whether the param is&lt;br /&gt;
		-- inline. (This only affects the error message.)&lt;br /&gt;
		param_key = &amp;quot;partlang&amp;quot;,&lt;br /&gt;
		extra_specs = {list = &amp;quot;lang&amp;quot;},&lt;br /&gt;
		convert = function(arg, inline, term_index, i)&lt;br /&gt;
			-- term_index + i - 1 because we want to reference the actual term param name, which offsets from&lt;br /&gt;
			-- `term_index` (the index of the first term); subtract 1 since i is one-based.&lt;br /&gt;
			return m_languages.getByCode(arg, inline and &amp;quot;&amp;quot; .. (term_index + i - 1) .. &amp;quot;:lang&amp;quot; or &amp;quot;lang&amp;quot; .. i, &amp;quot;allow etym&amp;quot;)&lt;br /&gt;
		end,&lt;br /&gt;
	},&lt;br /&gt;
	sc = {&lt;br /&gt;
		-- sc1=, sc2=, ... are different from sc=; the former apply to individual arguments when lang1=, lang2=, ...&lt;br /&gt;
		-- is specified, while the latter applies to all arguments where langN=... isn&#039;t specified. We handle the&lt;br /&gt;
		-- distinction identically to lit1= etc. vs. lit=; see above. In addition, we need a conversion function to&lt;br /&gt;
		-- convert from script codes to script objects, which needs to conditionalize the `param` parameter of&lt;br /&gt;
		-- `getByCode` of [[Module:scripts]] on whether the param is inline. (This only affects the error message.)&lt;br /&gt;
		param_key = &amp;quot;partsc&amp;quot;,&lt;br /&gt;
		extra_specs = {list = &amp;quot;sc&amp;quot;},&lt;br /&gt;
		convert = function(arg, inline, term_index, i)&lt;br /&gt;
			-- term_index + i - 1 same as above for &amp;quot;lang&amp;quot;.&lt;br /&gt;
			return require(&amp;quot;Module:scripts&amp;quot;).getByCode(arg, inline and &amp;quot;&amp;quot; .. (term_index + i - 1) .. &amp;quot;:sc&amp;quot; or &amp;quot;sc&amp;quot; .. i)&lt;br /&gt;
		end,&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function get_valid_prefixes()&lt;br /&gt;
	local valid_prefixes = {}&lt;br /&gt;
	for param_mod, _ in pairs(param_mods) do&lt;br /&gt;
		table.insert(valid_prefixes, param_mod)&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(valid_prefixes)&lt;br /&gt;
	return valid_prefixes&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function fetch_script(sc, param)&lt;br /&gt;
	return sc and require(&amp;quot;Module:scripts&amp;quot;).getByCode(sc, param) or nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Parse raw arguments in `args`. If `extra_params` is specified, it should be a one-argument function that is called&lt;br /&gt;
-- on the `params` structure before parsing; its purpose is to specify additional allowed parameters or possibly disable&lt;br /&gt;
-- parameters. If `has_source` is given, there is a source-language parameter following 1= (which becomes the&lt;br /&gt;
-- &amp;quot;destination&amp;quot; language parameter) and preceding the terms. This is currently used for {{pseudo-loan}}. The&lt;br /&gt;
-- source-language parameter is allowed to be an etymology-only language while the language in 1= is currently not so&lt;br /&gt;
-- allowed (FIXME: should we change this?). Returns five values ARGS, TERM_INDEX, LANG_OBJ, SCRIPT_OBJ, SOURCE_LANG_OBJ&lt;br /&gt;
-- where ARGS is a table of the parsed arguments; TERM_INDEX is the argument containing all the terms; LANG_OBJ is the&lt;br /&gt;
-- language object corresponding to the language code specified in 1=; SCRIPT_OBJ is the script object corresponding to&lt;br /&gt;
-- sc= (if given, otherwise nil); and SOURCE_LANG_OBJ is the language object corresponding to the source-language code&lt;br /&gt;
-- specified in 2= if `has_source` is specified (otherwise nil).&lt;br /&gt;
local function parse_args(args, extra_params, has_source, ilangcode)&lt;br /&gt;
	if args.lang then&lt;br /&gt;
		error(&amp;quot;The |lang= parameter is not used by this template. Place the language code in parameter 1 instead.&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local term_index = (ilangcode and 1 or 2) + (has_source and 1 or 0)&lt;br /&gt;
	local params = {&lt;br /&gt;
		[term_index] = {list = true, allow_holes = true},&lt;br /&gt;
&lt;br /&gt;
		[&amp;quot;lit&amp;quot;] = {},&lt;br /&gt;
		[&amp;quot;sc&amp;quot;] = {},&lt;br /&gt;
		[&amp;quot;pos&amp;quot;] = {},&lt;br /&gt;
		[&amp;quot;sort&amp;quot;] = {},&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	if not ilangcode then&lt;br /&gt;
		params[1] = {required = true, default = &amp;quot;und&amp;quot;}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local source_index&lt;br /&gt;
	if has_source then&lt;br /&gt;
		source_index = term_index - 1&lt;br /&gt;
		params[source_index] = {required = true, default = &amp;quot;und&amp;quot;}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local default_param_spec = {list = true, allow_holes = true, require_index = true}&lt;br /&gt;
	for param_mod, param_mod_spec in pairs(param_mods) do&lt;br /&gt;
		local param_key = param_mod_spec.param_key or param_mod&lt;br /&gt;
		if not param_mod_spec.extra_specs then&lt;br /&gt;
			params[param_key] = default_param_spec&lt;br /&gt;
		else&lt;br /&gt;
			local param_spec = mw.clone(default_param_spec)&lt;br /&gt;
			for k, v in pairs(param_mod_spec.extra_specs) do&lt;br /&gt;
				param_spec[k] = v&lt;br /&gt;
			end&lt;br /&gt;
			params[param_key] = param_spec&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if extra_params then&lt;br /&gt;
		extra_params(params)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	args = require(&amp;quot;Module:parameters&amp;quot;).process(args, params)&lt;br /&gt;
	local lang&lt;br /&gt;
	if ilangcode then&lt;br /&gt;
		lang = m_languages.getByCode(ilangcode, true)&lt;br /&gt;
	else&lt;br /&gt;
		lang = m_languages.getByCode(args[1], 1)&lt;br /&gt;
	end&lt;br /&gt;
	local source&lt;br /&gt;
	if has_source then&lt;br /&gt;
		source = m_languages.getByCode(args[source_index], source_index, &amp;quot;allow etym&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	return args, term_index, lang, fetch_script(args[&amp;quot;sc&amp;quot;], &amp;quot;sc&amp;quot;), source&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Return an object containing all the properties of the `i`th term. `template` is the name of the calling template&lt;br /&gt;
-- (used only in the debug-tracking mechanism). `args` is the arguments as returned by parse_args(). `term_index` is&lt;br /&gt;
-- the argument containing all the terms. This handles all the complexities of fetching all the properties associated&lt;br /&gt;
-- with a term either out of separate parameters (e.g. pos3=, g2=) or from inline modifiers (e.g.&lt;br /&gt;
-- &#039;term&amp;lt;pos:noun&amp;gt;&amp;lt;g:m-p&amp;gt;&#039;). It also handles parsing off a separate language code attached to the beginning of a term or&lt;br /&gt;
-- specified using langN= or &amp;lt;lang:CODE&amp;gt;.&lt;br /&gt;
local function get_parsed_part(template, args, term_index, i)&lt;br /&gt;
	local part = {}&lt;br /&gt;
	local term = args[term_index][i]&lt;br /&gt;
&lt;br /&gt;
	if not (term or args[&amp;quot;alt&amp;quot;][i] or args[&amp;quot;tr&amp;quot;][i] or args[&amp;quot;ts&amp;quot;][i]) then&lt;br /&gt;
		require(&amp;quot;Module:debug/track&amp;quot;)(template .. &amp;quot;/no term or alt or tr&amp;quot;)&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Parse all the term-specific parameters and store in `part`.&lt;br /&gt;
	for param_mod, param_mod_spec in pairs(param_mods) do&lt;br /&gt;
		local dest = param_mod_spec.item_dest or param_mod&lt;br /&gt;
		local param_key = param_mod_spec.param_key or param_mod&lt;br /&gt;
		local arg = args[param_key][i]&lt;br /&gt;
		if arg then&lt;br /&gt;
			if param_mod_spec.convert then&lt;br /&gt;
				arg = param_mod_spec.convert(arg, false, term_index, i)&lt;br /&gt;
			end&lt;br /&gt;
			part[dest] = arg&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Remove and remember an initial exclamation point from the term, and parse off an initial language code (e.g.&lt;br /&gt;
	-- &#039;la:minūtia&#039; or &#039;grc:[[σκῶρ|σκατός]]&#039;).&lt;br /&gt;
	if term then&lt;br /&gt;
		local termlang, actual_term = term:match(&amp;quot;^([A-Za-z0-9._-]+):(.*)$&amp;quot;)&lt;br /&gt;
		if termlang and termlang ~= &amp;quot;w&amp;quot; then -- special handling for w:... links to Wikipedia&lt;br /&gt;
			-- -1 since i is one-based&lt;br /&gt;
			termlang = m_languages.getByCode(termlang, term_index + i - 1, &amp;quot;allow etym&amp;quot;)&lt;br /&gt;
			term = actual_term&lt;br /&gt;
		else&lt;br /&gt;
			termlang = nil&lt;br /&gt;
		end&lt;br /&gt;
		if part.lang and termlang then&lt;br /&gt;
			error((&amp;quot;Both lang%s= and a language in %s= given; specify one or the other&amp;quot;):format(i, i + 1))&lt;br /&gt;
		end&lt;br /&gt;
		part.lang = part.lang or termlang&lt;br /&gt;
		part.term = term&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Check for inline modifier, e.g. מרים&amp;lt;tr:Miryem&amp;gt;. But exclude HTML entry with &amp;lt;span ...&amp;gt;, &amp;lt;i ...&amp;gt;, &amp;lt;br/&amp;gt; or&lt;br /&gt;
	-- similar in it, caused by wrapping an argument in {{l|...}}, {{af|...}} or similar. Basically, all tags of&lt;br /&gt;
	-- the sort we parse here should consist of a less-than sign, plus letters, plus a colon, e.g. &amp;lt;tr:...&amp;gt;, so if&lt;br /&gt;
	-- we see a tag on the outer level that isn&#039;t in this format, we don&#039;t try to parse it. The restriction to the&lt;br /&gt;
	-- outer level is to allow generated HTML inside of e.g. qualifier tags, such as foo&amp;lt;q:similar to {{m|fr|bar}}&amp;gt;.&lt;br /&gt;
	if term and term:find(&amp;quot;&amp;lt;&amp;quot;) and not term:find(&amp;quot;^[^&amp;lt;]*&amp;lt;[a-z]*[^a-z:]&amp;quot;) then&lt;br /&gt;
		if not put then&lt;br /&gt;
			put = require(&amp;quot;Module:parse utilities&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
		local run = put.parse_balanced_segment_run(term, &amp;quot;&amp;lt;&amp;quot;, &amp;quot;&amp;gt;&amp;quot;)&lt;br /&gt;
		local function parse_err(msg)&lt;br /&gt;
			error(msg .. &amp;quot;: &amp;quot; .. (i + 1) .. &amp;quot;=&amp;quot; .. table.concat(run))&lt;br /&gt;
		end&lt;br /&gt;
		part.term = run[1]&lt;br /&gt;
&lt;br /&gt;
		for j = 2, #run - 1, 2 do&lt;br /&gt;
			if run[j + 1] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
				parse_err(&amp;quot;Extraneous text &#039;&amp;quot; .. run[j + 1] .. &amp;quot;&#039; after modifier&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
			local modtext = run[j]:match(&amp;quot;^&amp;lt;(.*)&amp;gt;$&amp;quot;)&lt;br /&gt;
			if not modtext then&lt;br /&gt;
				parse_err(&amp;quot;Internal error: Modifier &#039;&amp;quot; .. modtext .. &amp;quot;&#039; isn&#039;t surrounded by angle brackets&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
			local prefix, arg = modtext:match(&amp;quot;^([a-z]+):(.*)$&amp;quot;)&lt;br /&gt;
			if not prefix then&lt;br /&gt;
				parse_err((&amp;quot;Modifier %s lacks a prefix, should begin with one of %s followed by a colon&amp;quot;):format(&lt;br /&gt;
					run[j], table.concat(get_valid_prefixes(), &amp;quot;,&amp;quot;)))&lt;br /&gt;
			end&lt;br /&gt;
			if not param_mods[prefix] then&lt;br /&gt;
				parse_err((&amp;quot;Unrecognized prefix &#039;%s&#039; in modifier %s, should be one of %s&amp;quot;):format(&lt;br /&gt;
					prefix, run[j], table.concat(get_valid_prefixes(), &amp;quot;,&amp;quot;)))&lt;br /&gt;
			end&lt;br /&gt;
			local dest = param_mods[prefix].item_dest or prefix&lt;br /&gt;
			if part[dest] then&lt;br /&gt;
				parse_err(&amp;quot;Modifier &#039;&amp;quot; .. prefix .. &amp;quot;&#039; occurs twice, second occurrence &amp;quot; .. run[j])&lt;br /&gt;
			end&lt;br /&gt;
			if param_mods[prefix].convert then&lt;br /&gt;
				arg = param_mods[prefix].convert(arg, true, term_index, i)&lt;br /&gt;
			end&lt;br /&gt;
			part[dest] = arg&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return part&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Return an array of objects describing all the terms specified by the user. The meat of the work is done by&lt;br /&gt;
-- get_parsed_part(). `template`, `args` and `term_index` are as in get_parsed_part() and are required. Optional&lt;br /&gt;
-- `max_terms_allowed` restricts the number of terms that can be specified, and optional `start_index` specifies the&lt;br /&gt;
-- first index in the user-specified terms under the `term_index` argument to pull terms out of, defaulting to 1.&lt;br /&gt;
-- Currently only suffix() specifies a value for `start_index`, because the first term is handled differently by&lt;br /&gt;
-- suffix() compared with all the remaining terms.&lt;br /&gt;
local function get_parsed_parts(template, args, term_index, max_terms_allowed, start_index)&lt;br /&gt;
	local parts = {}&lt;br /&gt;
	start_index = start_index or 1&lt;br /&gt;
&lt;br /&gt;
	-- Find the maximum index among any of the list parameters.&lt;br /&gt;
	local maxmaxindex = 0&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		if type(v) == &amp;quot;table&amp;quot; and v.maxindex and v.maxindex &amp;gt; maxmaxindex then&lt;br /&gt;
			if max_terms_allowed and v.maxindex &amp;gt; max_terms_allowed then&lt;br /&gt;
				-- Try to determine the original parameter name associated with v.maxindex.&lt;br /&gt;
				if type(k) == &amp;quot;number&amp;quot; then&lt;br /&gt;
					-- Subtract one because e.g. if terms start at 2, the 4th term is in 5=.&lt;br /&gt;
					arg = k + v.maxindex - 1&lt;br /&gt;
				else&lt;br /&gt;
					arg = k .. v.maxindex&lt;br /&gt;
				end&lt;br /&gt;
				error((&amp;quot;In [[Template:%s|%s]], at most %s terms can be specified but argument %s specified, corresponding to term #%s&amp;quot;)&lt;br /&gt;
					:format(template, template, max_terms_allowed, arg, v.maxindex))&lt;br /&gt;
			end&lt;br /&gt;
			maxmaxindex = v.maxindex&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	for index = start_index, maxmaxindex do&lt;br /&gt;
		local part = get_parsed_part(template, args, term_index, index)&lt;br /&gt;
		parts[index - start_index + 1] = part&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return parts&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function export.affix(frame)&lt;br /&gt;
	local function extra_params(params)&lt;br /&gt;
		params[&amp;quot;type&amp;quot;] = {}&lt;br /&gt;
		params[&amp;quot;nocap&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
		params[&amp;quot;notext&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
		params[&amp;quot;nocat&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
		params[&amp;quot;force_cat&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local args, term_index, lang, sc = parse_args(frame:getParent().args, extra_params)&lt;br /&gt;
&lt;br /&gt;
	if args[&amp;quot;type&amp;quot;] and not m_affix.compound_types[args[&amp;quot;type&amp;quot;]] then&lt;br /&gt;
		error(&amp;quot;Unrecognized compound type: &#039;&amp;quot; .. args[&amp;quot;type&amp;quot;] .. &amp;quot;&#039;&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local parts = get_parsed_parts(&amp;quot;affix&amp;quot;, args, term_index)&lt;br /&gt;
&lt;br /&gt;
	-- There must be at least one part to display. If there are gaps, a term&lt;br /&gt;
	-- request will be shown.&lt;br /&gt;
	if not next(parts) and not args[&amp;quot;type&amp;quot;] then&lt;br /&gt;
		if mw.title.getCurrentTitle().nsText == &amp;quot;Template&amp;quot; then&lt;br /&gt;
			parts = { {term = &amp;quot;prefix-&amp;quot;}, {term = &amp;quot;base&amp;quot;}, {term = &amp;quot;-suffix&amp;quot;} }&lt;br /&gt;
		else&lt;br /&gt;
			error(&amp;quot;You must provide at least one part.&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return m_affix.show_affix {&lt;br /&gt;
		lang = lang, sc = sc, parts = parts, pos = args[&amp;quot;pos&amp;quot;], sort_key = args[&amp;quot;sort&amp;quot;], type = args[&amp;quot;type&amp;quot;],&lt;br /&gt;
		nocap = args[&amp;quot;nocap&amp;quot;], notext = args[&amp;quot;notext&amp;quot;], nocat = args[&amp;quot;nocat&amp;quot;], lit = args[&amp;quot;lit&amp;quot;],&lt;br /&gt;
		force_cat = args[&amp;quot;force_cat&amp;quot;]&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function export.compound(frame)&lt;br /&gt;
	local function extra_params(params)&lt;br /&gt;
		params[&amp;quot;type&amp;quot;] = {}&lt;br /&gt;
		params[&amp;quot;nocap&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
		params[&amp;quot;notext&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
		params[&amp;quot;nocat&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
		params[&amp;quot;force_cat&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local args, term_index, lang, sc = parse_args(frame:getParent().args, extra_params)&lt;br /&gt;
&lt;br /&gt;
	if args[&amp;quot;type&amp;quot;] and not m_affix.compound_types[args[&amp;quot;type&amp;quot;]] then&lt;br /&gt;
		error(&amp;quot;Unrecognized compound type: &#039;&amp;quot; .. args[&amp;quot;type&amp;quot;] .. &amp;quot;&#039;&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local parts = get_parsed_parts(&amp;quot;compound&amp;quot;, args, term_index)&lt;br /&gt;
&lt;br /&gt;
	-- There must be at least one part to display. If there are gaps, a term&lt;br /&gt;
	-- request will be shown.&lt;br /&gt;
	if not next(parts) and not args[&amp;quot;type&amp;quot;] then&lt;br /&gt;
		if mw.title.getCurrentTitle().nsText == &amp;quot;Template&amp;quot; then&lt;br /&gt;
			parts = { {term = &amp;quot;first&amp;quot;}, {term = &amp;quot;second&amp;quot;} }&lt;br /&gt;
		else&lt;br /&gt;
			error(&amp;quot;You must provide at least one part of a compound.&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return m_affix.show_compound {&lt;br /&gt;
		lang = lang, sc = sc, parts = parts, pos = args[&amp;quot;pos&amp;quot;], sort_key = args[&amp;quot;sort&amp;quot;], type = args[&amp;quot;type&amp;quot;],&lt;br /&gt;
		nocap = args[&amp;quot;nocap&amp;quot;], notext = args[&amp;quot;notext&amp;quot;], nocat = args[&amp;quot;nocat&amp;quot;], lit = args[&amp;quot;lit&amp;quot;],&lt;br /&gt;
		force_cat = args[&amp;quot;force_cat&amp;quot;]&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function export.compound_like(frame)&lt;br /&gt;
	local iparams = {&lt;br /&gt;
		[&amp;quot;lang&amp;quot;] = {},&lt;br /&gt;
		[&amp;quot;template&amp;quot;] = {},&lt;br /&gt;
		[&amp;quot;text&amp;quot;] = {},&lt;br /&gt;
		[&amp;quot;oftext&amp;quot;] = {},&lt;br /&gt;
		[&amp;quot;cat&amp;quot;] = {},&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	local iargs = require(&amp;quot;Module:parameters&amp;quot;).process(frame.args, iparams, nil, &amp;quot;affix/templates&amp;quot;, &amp;quot;compound_like&amp;quot;)&lt;br /&gt;
	local parent_args = frame:getParent().args&lt;br /&gt;
&lt;br /&gt;
	local function extra_params(params)&lt;br /&gt;
		params[&amp;quot;pos&amp;quot;] = nil&lt;br /&gt;
		params[&amp;quot;nocap&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
		params[&amp;quot;notext&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
		params[&amp;quot;nocat&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
		params[&amp;quot;force_cat&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local args, term_index, lang, sc = parse_args(parent_args, extra_params, nil, iargs.lang)&lt;br /&gt;
&lt;br /&gt;
	local template = iargs[&amp;quot;template&amp;quot;]&lt;br /&gt;
	local nocat = args[&amp;quot;nocat&amp;quot;]&lt;br /&gt;
	local notext = args[&amp;quot;notext&amp;quot;]&lt;br /&gt;
	local text = not notext and iargs[&amp;quot;text&amp;quot;]&lt;br /&gt;
	local oftext = not notext and (iargs[&amp;quot;oftext&amp;quot;] or text and &amp;quot;of&amp;quot;)&lt;br /&gt;
	local cat = not nocat and iargs[&amp;quot;cat&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
	local parts = get_parsed_parts(template, args, term_index)&lt;br /&gt;
&lt;br /&gt;
	if not next(parts) then&lt;br /&gt;
		if mw.title.getCurrentTitle().nsText == &amp;quot;Template&amp;quot; then&lt;br /&gt;
			parts = { {term = &amp;quot;first&amp;quot;}, {term = &amp;quot;second&amp;quot;} }&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return m_affix.show_compound_like {&lt;br /&gt;
		lang = lang, sc = sc, parts = parts, sort_key = args[&amp;quot;sort&amp;quot;], text = text, oftext = oftext, cat = cat,&lt;br /&gt;
		nocat = args[&amp;quot;nocat&amp;quot;], lit = args[&amp;quot;lit&amp;quot;], force_cat = args[&amp;quot;force_cat&amp;quot;]&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function export.surface_analysis(frame)&lt;br /&gt;
	local function ine(arg)&lt;br /&gt;
		-- Since we&#039;re operating before calling [[Module:parameters]], we need to imitate how that module processes arguments,&lt;br /&gt;
		-- including trimming since numbered arguments don&#039;t have automatic whitespace trimming.&lt;br /&gt;
		if not arg then&lt;br /&gt;
			return arg&lt;br /&gt;
		end&lt;br /&gt;
		arg = mw.text.trim(arg)&lt;br /&gt;
		if arg == &amp;quot;&amp;quot; then&lt;br /&gt;
			arg = nil&lt;br /&gt;
		end&lt;br /&gt;
		return arg&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local parent_args = frame:getParent().args&lt;br /&gt;
	local etymtext&lt;br /&gt;
	local arg1 = ine(parent_args[1])&lt;br /&gt;
	if not arg1 then&lt;br /&gt;
		-- Allow omitted first argument to just display &amp;quot;By surface analysis&amp;quot;.&lt;br /&gt;
		etymtext = &amp;quot;&amp;quot;&lt;br /&gt;
	elseif arg1:find(&amp;quot;^%+&amp;quot;) then&lt;br /&gt;
		-- If the first argument (normally a language code) is prefixed with a +, it&#039;s a template name.&lt;br /&gt;
		local template_name = arg1:sub(2)&lt;br /&gt;
		local new_args = {}&lt;br /&gt;
		for i, v in pairs(parent_args) do&lt;br /&gt;
			if type(i) == &amp;quot;number&amp;quot; then&lt;br /&gt;
				if i &amp;gt; 1 then&lt;br /&gt;
					new_args[i - 1] = v&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				new_args[i] = v&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		new_args.nocap = true&lt;br /&gt;
		etymtext = &amp;quot;, &amp;quot; .. frame:expandTemplate { title = template_name, args = new_args }&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if etymtext then&lt;br /&gt;
		return (ine(parent_args.nocap) and &amp;quot;b&amp;quot; or &amp;quot;B&amp;quot;) .. &amp;quot;y [[Appendix:Glossary#surface analysis|surface analysis]]&amp;quot; .. etymtext&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local function extra_params(params)&lt;br /&gt;
		params[&amp;quot;type&amp;quot;] = {}&lt;br /&gt;
		params[&amp;quot;nocap&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
		params[&amp;quot;notext&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
		params[&amp;quot;nocat&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
		params[&amp;quot;force_cat&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local args, term_index, lang, sc = parse_args(parent_args, extra_params)&lt;br /&gt;
&lt;br /&gt;
	if args[&amp;quot;type&amp;quot;] and not m_affix.compound_types[args[&amp;quot;type&amp;quot;]] then&lt;br /&gt;
		error(&amp;quot;Unrecognized compound type: &#039;&amp;quot; .. args[&amp;quot;type&amp;quot;] .. &amp;quot;&#039;&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local parts = get_parsed_parts(&amp;quot;surface analysis&amp;quot;, args, term_index)&lt;br /&gt;
&lt;br /&gt;
	-- There must be at least one part to display. If there are gaps, a term&lt;br /&gt;
	-- request will be shown.&lt;br /&gt;
	if not next(parts) then&lt;br /&gt;
		if mw.title.getCurrentTitle().nsText == &amp;quot;Template&amp;quot; then&lt;br /&gt;
			parts = { {term = &amp;quot;first&amp;quot;}, {term = &amp;quot;second&amp;quot;} }&lt;br /&gt;
		else&lt;br /&gt;
			error(&amp;quot;You must provide at least one part.&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return m_affix.show_surface_analysis {&lt;br /&gt;
		lang = lang, sc = sc, parts = parts, pos = args[&amp;quot;pos&amp;quot;], sort_key = args[&amp;quot;sort&amp;quot;], type = args[&amp;quot;type&amp;quot;],&lt;br /&gt;
		nocap = args[&amp;quot;nocap&amp;quot;], notext = args[&amp;quot;notext&amp;quot;], nocat = args[&amp;quot;nocat&amp;quot;], lit = args[&amp;quot;lit&amp;quot;],&lt;br /&gt;
		force_cat = args[&amp;quot;force_cat&amp;quot;]&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function export.circumfix(frame)&lt;br /&gt;
	local function extra_params(params)&lt;br /&gt;
		params[&amp;quot;nocat&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
		params[&amp;quot;force_cat&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local args, term_index, lang, sc = parse_args(frame:getParent().args, extra_params)&lt;br /&gt;
&lt;br /&gt;
	local parts = get_parsed_parts(&amp;quot;circumfix&amp;quot;, args, term_index, 3)&lt;br /&gt;
	local prefix = parts[1]&lt;br /&gt;
	local base = parts[2]&lt;br /&gt;
	local suffix = parts[3]&lt;br /&gt;
&lt;br /&gt;
	-- Just to make sure someone didn&#039;t use the template in a silly way&lt;br /&gt;
	if not (prefix and base and suffix) then&lt;br /&gt;
		if mw.title.getCurrentTitle().nsText == &amp;quot;Template&amp;quot; then&lt;br /&gt;
			prefix = {term = &amp;quot;circumfix&amp;quot;, alt = &amp;quot;prefix&amp;quot;}&lt;br /&gt;
			base = {term = &amp;quot;base&amp;quot;}&lt;br /&gt;
			suffix = {term = &amp;quot;circumfix&amp;quot;, alt = &amp;quot;suffix&amp;quot;}&lt;br /&gt;
		else&lt;br /&gt;
			error(&amp;quot;You must specify a prefix part, a base term and a suffix part.&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return m_affix.show_circumfix {&lt;br /&gt;
		lang = lang, sc = sc, prefix = prefix, base = base, suffix = suffix, pos = args[&amp;quot;pos&amp;quot;], sort_key = args[&amp;quot;sort&amp;quot;],&lt;br /&gt;
		nocat = args[&amp;quot;nocat&amp;quot;], lit = args[&amp;quot;lit&amp;quot;], force_cat = args[&amp;quot;force_cat&amp;quot;]&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function export.confix(frame)&lt;br /&gt;
	local function extra_params(params)&lt;br /&gt;
		params[&amp;quot;nocat&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
		params[&amp;quot;force_cat&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local args, term_index, lang, sc = parse_args(frame:getParent().args, extra_params)&lt;br /&gt;
&lt;br /&gt;
	local parts = get_parsed_parts(&amp;quot;confix&amp;quot;, args, term_index, 3)&lt;br /&gt;
	local prefix = parts[1]&lt;br /&gt;
	local base = #parts &amp;gt;= 3 and parts[2] or nil&lt;br /&gt;
	local suffix = #parts &amp;gt;= 3 and parts[3] or parts[2]&lt;br /&gt;
&lt;br /&gt;
	-- Just to make sure someone didn&#039;t use the template in a silly way&lt;br /&gt;
	if not (prefix and suffix) then&lt;br /&gt;
		if mw.title.getCurrentTitle().nsText == &amp;quot;Template&amp;quot; then&lt;br /&gt;
			prefix = {term = &amp;quot;prefix&amp;quot;}&lt;br /&gt;
			suffix = {term = &amp;quot;suffix&amp;quot;}&lt;br /&gt;
		else&lt;br /&gt;
			error(&amp;quot;You must specify a prefix part, an optional base term and a suffix part.&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return m_affix.show_confix {&lt;br /&gt;
		lang = lang, sc = sc, prefix = prefix, base = base, suffix = suffix, pos = args[&amp;quot;pos&amp;quot;], sort_key = args[&amp;quot;sort&amp;quot;],&lt;br /&gt;
		nocat = args[&amp;quot;nocat&amp;quot;], lit = args[&amp;quot;lit&amp;quot;], force_cat = args[&amp;quot;force_cat&amp;quot;]&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function export.pseudo_loan(frame)&lt;br /&gt;
	local function extra_params(params)&lt;br /&gt;
		params[&amp;quot;pos&amp;quot;] = nil&lt;br /&gt;
		params[&amp;quot;nocap&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
		params[&amp;quot;notext&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
		params[&amp;quot;nocat&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
		params[&amp;quot;force_cat&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local args, term_index, lang, sc, source = parse_args(frame:getParent().args, extra_params, &amp;quot;has source&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	local parts = get_parsed_parts(&amp;quot;pseudo-loan&amp;quot;, args, term_index)&lt;br /&gt;
&lt;br /&gt;
	return require(pseudo_loan_module).show_pseudo_loan {&lt;br /&gt;
		lang = lang, source = source, sc = sc, parts = parts, sort_key = args[&amp;quot;sort&amp;quot;], nocap = args[&amp;quot;nocap&amp;quot;],&lt;br /&gt;
		notext = args[&amp;quot;notext&amp;quot;], nocat = args[&amp;quot;nocat&amp;quot;], lit = args[&amp;quot;lit&amp;quot;], force_cat = args[&amp;quot;force_cat&amp;quot;]&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function export.infix(frame)&lt;br /&gt;
	local function extra_params(params)&lt;br /&gt;
		params[&amp;quot;nocat&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
		params[&amp;quot;force_cat&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local args, term_index, lang, sc = parse_args(frame:getParent().args, extra_params)&lt;br /&gt;
&lt;br /&gt;
	local parts = get_parsed_parts(&amp;quot;infix&amp;quot;, args, term_index, 2)&lt;br /&gt;
	local base = parts[1]&lt;br /&gt;
	local infix = parts[2]&lt;br /&gt;
&lt;br /&gt;
	-- Just to make sure someone didn&#039;t use the template in a silly way&lt;br /&gt;
	if not (base and infix) then&lt;br /&gt;
		if mw.title.getCurrentTitle().nsText == &amp;quot;Template&amp;quot; then&lt;br /&gt;
			base = {term = &amp;quot;base&amp;quot;}&lt;br /&gt;
			infix = {term = &amp;quot;infix&amp;quot;}&lt;br /&gt;
		else&lt;br /&gt;
			error(&amp;quot;You must provide a base term and an infix.&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return m_affix.show_infix {&lt;br /&gt;
		lang = lang, sc = sc, base = base, infix = infix, pos = args[&amp;quot;pos&amp;quot;], sort_key = args[&amp;quot;sort&amp;quot;],&lt;br /&gt;
		nocat = args[&amp;quot;nocat&amp;quot;], lit = args[&amp;quot;lit&amp;quot;], force_cat = args[&amp;quot;force_cat&amp;quot;]&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function export.prefix(frame)&lt;br /&gt;
	local function extra_params(params)&lt;br /&gt;
		params[&amp;quot;nocat&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
		params[&amp;quot;force_cat&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local args, term_index, lang, sc = parse_args(frame:getParent().args, extra_params)&lt;br /&gt;
&lt;br /&gt;
	local prefixes = get_parsed_parts(&amp;quot;prefix&amp;quot;, args, term_index)&lt;br /&gt;
	local base = nil&lt;br /&gt;
&lt;br /&gt;
	if #prefixes &amp;gt;= 2 then&lt;br /&gt;
		base = prefixes[#prefixes]&lt;br /&gt;
		prefixes[#prefixes] = nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Just to make sure someone didn&#039;t use the template in a silly way&lt;br /&gt;
	if #prefixes == 0 then&lt;br /&gt;
		if mw.title.getCurrentTitle().nsText == &amp;quot;Template&amp;quot; then&lt;br /&gt;
			base = {term = &amp;quot;base&amp;quot;}&lt;br /&gt;
			prefixes = { {term = &amp;quot;prefix&amp;quot;} }&lt;br /&gt;
		else&lt;br /&gt;
			error(&amp;quot;You must provide at least one prefix.&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return m_affix.show_prefix {&lt;br /&gt;
		lang = lang, sc = sc, prefixes = prefixes, base = base, pos = args[&amp;quot;pos&amp;quot;], sort_key = args[&amp;quot;sort&amp;quot;],&lt;br /&gt;
		nocat = args[&amp;quot;nocat&amp;quot;], lit = args[&amp;quot;lit&amp;quot;], force_cat = args[&amp;quot;force_cat&amp;quot;]&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function export.suffix(frame)&lt;br /&gt;
	local function extra_params(params)&lt;br /&gt;
		params[&amp;quot;nocat&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
		params[&amp;quot;force_cat&amp;quot;] = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local args, term_index, lang, sc = parse_args(frame:getParent().args, extra_params)&lt;br /&gt;
&lt;br /&gt;
	local base = get_parsed_part(&amp;quot;suffix&amp;quot;, args, term_index, 1)&lt;br /&gt;
	local suffixes = get_parsed_parts(&amp;quot;suffix&amp;quot;, args, term_index, nil, 2)&lt;br /&gt;
&lt;br /&gt;
	-- Just to make sure someone didn&#039;t use the template in a silly way&lt;br /&gt;
	if #suffixes == 0 then&lt;br /&gt;
		if mw.title.getCurrentTitle().nsText == &amp;quot;Template&amp;quot; then&lt;br /&gt;
			base = {term = &amp;quot;base&amp;quot;}&lt;br /&gt;
			suffixes = { {term = &amp;quot;suffix&amp;quot;} }&lt;br /&gt;
		else&lt;br /&gt;
			error(&amp;quot;You must provide at least one suffix.&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return m_affix.show_suffix {&lt;br /&gt;
		lang = lang, sc = sc, base = base, suffixes = suffixes, pos = args[&amp;quot;pos&amp;quot;], sort_key = args[&amp;quot;sort&amp;quot;],&lt;br /&gt;
		nocat = args[&amp;quot;nocat&amp;quot;], lit = args[&amp;quot;lit&amp;quot;], force_cat = args[&amp;quot;force_cat&amp;quot;]&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function export.derivsee(frame)&lt;br /&gt;
	local iargs = frame.args&lt;br /&gt;
	local iparams = {&lt;br /&gt;
		[&amp;quot;derivtype&amp;quot;] = {},&lt;br /&gt;
		[&amp;quot;mode&amp;quot;] = {},&lt;br /&gt;
	}&lt;br /&gt;
	local iargs = require(&amp;quot;Module:parameters&amp;quot;).process(frame.args, iparams)&lt;br /&gt;
&lt;br /&gt;
	local params = {&lt;br /&gt;
		[&amp;quot;head&amp;quot;] = {},&lt;br /&gt;
		[&amp;quot;id&amp;quot;] = {},&lt;br /&gt;
		[&amp;quot;sc&amp;quot;] = {},&lt;br /&gt;
		[&amp;quot;pos&amp;quot;] = {},&lt;br /&gt;
	}&lt;br /&gt;
	local derivtype = iargs.derivtype&lt;br /&gt;
	if derivtype == &amp;quot;PIE root&amp;quot; then&lt;br /&gt;
		params[1] = {}&lt;br /&gt;
	else&lt;br /&gt;
		params[1] = {required = &amp;quot;true&amp;quot;, default = &amp;quot;und&amp;quot;}&lt;br /&gt;
		params[2] = {}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local args = require(&amp;quot;Module:parameters&amp;quot;).process(frame:getParent().args, params)&lt;br /&gt;
&lt;br /&gt;
	local lang&lt;br /&gt;
	local term&lt;br /&gt;
&lt;br /&gt;
	if derivtype == &amp;quot;PIE root&amp;quot; then&lt;br /&gt;
		lang = m_languages.getByCode(&amp;quot;ine-pro&amp;quot;)&lt;br /&gt;
		term = args[1] or args[&amp;quot;head&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
		if term then&lt;br /&gt;
			term = &amp;quot;*&amp;quot; .. term .. &amp;quot;-&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		lang = m_languages.getByCode(args[1], 1)&lt;br /&gt;
		term = args[2] or args[&amp;quot;head&amp;quot;]&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local id = args.id&lt;br /&gt;
	local sc = fetch_script(args.sc, &amp;quot;sc&amp;quot;)&lt;br /&gt;
	local pos = require(&amp;quot;Module:string utilities&amp;quot;).pluralize(args.pos or &amp;quot;term&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	if not term then&lt;br /&gt;
		local SUBPAGE = mw.ustring.lower(mw.title.getCurrentTitle().subpageText)&lt;br /&gt;
		if lang:hasType(&amp;quot;reconstructed&amp;quot;) or mw.title.getCurrentTitle().nsText == &amp;quot;Reconstruction&amp;quot; then&lt;br /&gt;
			term = &amp;quot;*&amp;quot; .. SUBPAGE&lt;br /&gt;
		elseif lang:hasType(&amp;quot;appendix-constructed&amp;quot;) then&lt;br /&gt;
			term = SUBPAGE&lt;br /&gt;
		else&lt;br /&gt;
			term = SUBPAGE&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if derivtype == &amp;quot;PIE root&amp;quot; then&lt;br /&gt;
		return frame:callParserFunction{&lt;br /&gt;
			name = &amp;quot;#categorytree&amp;quot;,&lt;br /&gt;
			args = {&lt;br /&gt;
				&amp;quot;Terms derived from the Proto-Indo-European root &amp;quot; .. term .. (id and &amp;quot; (&amp;quot; .. id .. &amp;quot;)&amp;quot; or &amp;quot;&amp;quot;),&lt;br /&gt;
				depth = 0,&lt;br /&gt;
				class = &amp;quot;\&amp;quot;derivedterms\&amp;quot;&amp;quot;,&lt;br /&gt;
				mode = iargs.mode,&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local category = nil&lt;br /&gt;
	local langname = lang:getCanonicalName()&lt;br /&gt;
	if (derivtype == &amp;quot;compound&amp;quot; and pos == nil) then&lt;br /&gt;
		category = langname .. &amp;quot; compounds with &amp;quot; .. term&lt;br /&gt;
	elseif derivtype == &amp;quot;compound&amp;quot; then&lt;br /&gt;
		category = langname .. &amp;quot; compound &amp;quot; .. pos .. &amp;quot; with &amp;quot; .. term&lt;br /&gt;
	else&lt;br /&gt;
		category = langname .. &amp;quot; &amp;quot; .. pos .. &amp;quot; &amp;quot; .. derivtype .. &amp;quot;ed with &amp;quot; .. term .. (id and &amp;quot; (&amp;quot; .. id .. &amp;quot;)&amp;quot; or &amp;quot;&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return frame:callParserFunction{&lt;br /&gt;
		name = &amp;quot;#categorytree&amp;quot;,&lt;br /&gt;
		args = {&lt;br /&gt;
			category,&lt;br /&gt;
			depth = 0,&lt;br /&gt;
			class = &amp;quot;\&amp;quot;derivedterms&amp;quot; .. (sc and &amp;quot; &amp;quot; .. sc:getCode() or &amp;quot;&amp;quot;) .. &amp;quot;\&amp;quot;&amp;quot;,&lt;br /&gt;
			namespaces = &amp;quot;-&amp;quot; .. (mw.title.getCurrentTitle().nsText == &amp;quot;Reconstruction&amp;quot; and &amp;quot; Reconstruction&amp;quot; or &amp;quot;&amp;quot;),&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return export&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Module:Affix&amp;diff=583</id>
		<title>Module:Affix</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Module:Affix&amp;diff=583"/>
		<updated>2026-04-10T07:29:55Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local export = {}&lt;br /&gt;
&lt;br /&gt;
local debug_force_cat = false -- if set to true, always display categories even on userspace pages&lt;br /&gt;
&lt;br /&gt;
local m_links = require(&amp;quot;Module:links&amp;quot;)&lt;br /&gt;
local m_utilities = require(&amp;quot;Module:utilities&amp;quot;)&lt;br /&gt;
local m_table = require(&amp;quot;Module:table&amp;quot;)&lt;br /&gt;
-- Export this so the category code in [[Module:category tree/poscatboiler/data/terms by etymology]] can access it.&lt;br /&gt;
export.affix_lang_data_module_prefix = &amp;quot;Module:affix/lang-data/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
local u = mw.ustring.char&lt;br /&gt;
local rsub = mw.ustring.gsub&lt;br /&gt;
local usub = mw.ustring.sub&lt;br /&gt;
local ulen = mw.ustring.len&lt;br /&gt;
local rfind = mw.ustring.find&lt;br /&gt;
local rmatch = mw.ustring.match&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Export this so the category code in [[Module:category tree/poscatboiler/data/terms by etymology]] can access it.&lt;br /&gt;
export.langs_with_lang_specific_data = {&lt;br /&gt;
	[&amp;quot;az&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;fi&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;izh&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;la&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;tr&amp;quot;] = true,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local default_pos = &amp;quot;term&amp;quot;&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
About different types of hyphens (&amp;quot;template&amp;quot;, &amp;quot;display&amp;quot; and &amp;quot;lookup&amp;quot;):&lt;br /&gt;
----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;template hyphen&amp;quot; is the per-script hyphen character that is used in template calls to indicate that a term is an&lt;br /&gt;
  affix. This is always a single Unicode char, but there may be multiple possible hyphens for a given script. Normally&lt;br /&gt;
  this is just the regular hyphen character &amp;quot;-&amp;quot;, but for some non-Latin-script languages (currently only right-to-left&lt;br /&gt;
  languages), it is different.&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;display hyphen&amp;quot; is the string (which might be an empty string) that is added onto a term as displayed and linked,&lt;br /&gt;
  to indicate that a term is an affix. Currently this is always either the same as the template hyphen or an empty&lt;br /&gt;
  string, but the code below is written generally enough to handle arbitrary display hyphens. Specifically:&lt;br /&gt;
&lt;br /&gt;
  (1) For East Asian languages, the display hyphen is always blank.&lt;br /&gt;
  (2) For Arabic-script languages, either tatweel (ـ) or ZWNJ (zero-width non-joiner) are allowed as template hyphens,&lt;br /&gt;
 	  where ZWNJ is supported primarily for Farsi, because some suffixes have non-joining behavior. The display hyphen&lt;br /&gt;
	  corresponding to tatweel is also tatweel, but the display hyphen corresponding to ZWNJ is blank (tatweel is also&lt;br /&gt;
	  the default display hyphen, for calls to {{prefix}}/{{suffix}}/etc. that don&#039;t include an explicit hyphen).&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;lookup hyphen&amp;quot; is the hyphen that is used when looking up language-specific affix mappings. (These mappings are&lt;br /&gt;
  discussed in more detail below when discussing link affixes.) It depends only on the script of the affix in question.&lt;br /&gt;
  Most scripts (including East Asian scripts) use a regular hyphen &amp;quot;-&amp;quot; as the lookup hyphen, but Hebrew and Arabic&lt;br /&gt;
  have their own lookup hyphens (respectively maqqef and tatweel). Note that for Arabic in particular, there are&lt;br /&gt;
  three possible template hyphens that are recognized (tatweel, ZWNJ and regular hyphen), but mappings must use tatweel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
About different types of affixes (&amp;quot;template&amp;quot;, &amp;quot;display&amp;quot;, &amp;quot;link&amp;quot;, &amp;quot;lookup&amp;quot; and &amp;quot;category&amp;quot;):&lt;br /&gt;
------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
* A &amp;quot;template affix&amp;quot; is an affix in its source form as it appears in a template call. Generally, a template affix has&lt;br /&gt;
  an attached template hyphen (see above) to indicate that it is an affix and indicate what type of affix it is&lt;br /&gt;
  (prefix, suffix, interfix/infix or circumfix), but some of the older-style templates such as {{tl|suffix}},&lt;br /&gt;
  {{tl|prefix}}, {{tl|confix}}, etc. have &amp;quot;positional&amp;quot; affixes where the presence of the affix in a certain position&lt;br /&gt;
  (e.g. the second or third parameter) indicates that it is a certain type of affix, whether or not it has an attached&lt;br /&gt;
  template hyphen.&lt;br /&gt;
* A &amp;quot;display affix&amp;quot; is the corresponding affix as it is actually displayed to the user. The display affix may differ&lt;br /&gt;
  from the template affix for various reasons:&lt;br /&gt;
  (1) The display affix may be specified explicitly using the |altN= parameter, the &amp;lt;alt:...&amp;gt; inline modifier or a&lt;br /&gt;
	  piped link of the form e.g. [[-kas|-käs]] (here indicating that the affix should display as &#039;-käs&#039; but be linked&lt;br /&gt;
	  as &#039;-kas&#039;). Here, the template affix is arguably the entire piped link, while the display affix is &#039;-käs&#039;.&lt;br /&gt;
  (2) Even in the absence of |altN= parameters, &amp;lt;alt:...&amp;gt; inline modifiers and piped links, certain languages have&lt;br /&gt;
	  differences between the &amp;quot;template hyphen&amp;quot; specified in the template (which always needs to be specified somehow&lt;br /&gt;
	  or other in templates like {{affix}}, to indicate that the term is an affix and what type of affix it is) and the&lt;br /&gt;
	  display hyphen (see above), with corresponding differences between template and display affixes.&lt;br /&gt;
* A (regular) &amp;quot;link affix&amp;quot; is the affix that is linked to when the affix is shown to the user. The link affix is usually&lt;br /&gt;
  the same as the display affix, but will differ in one of three circumstances:&lt;br /&gt;
  (1) The display and link affixes are explicitly made different using |altN= parameters, &amp;lt;alt:...&amp;gt; inline modifiers or&lt;br /&gt;
	  piped links, as described above under &amp;quot;display affix&amp;quot;.&lt;br /&gt;
  (2) For certain languages, certain affixes are mapped to canonical form using language-specific mappings. For example,&lt;br /&gt;
	  in Finnish, the adjective-forming suffix [[Wiktionary:-kas|-kas]] appears as [[Wiktionary:-käs|-käs]] after front vowels, but logically both&lt;br /&gt;
	  forms are the same suffix and should be linked and categorized the same. Similarly, in Latin, the negative and&lt;br /&gt;
	  intensive prefixes spelled [[Wiktionary:in-|in-]] (etymologically two distinct prefixes) appear variously as [[Wiktionary:il-|il-]], [[Wiktionary:im-|im-]] or&lt;br /&gt;
	  [[Wiktionary:ir-|ir-]] before certain consonants. Mappings are supplied in [[Module:affix/lang-data/LANGCODE]] to convert&lt;br /&gt;
	  Finnish [[Wiktionary:-käs|-käs]] to [[Wiktionary:-kas|-kas]] for linking and categorization purposes. Note that the affixes in the mappings use&lt;br /&gt;
	  &amp;quot;lookup hyphens&amp;quot; to indicate the different types of affixes, which is usually the same as the template hyphen but&lt;br /&gt;
	  differs for Arabic scripts, because there are multiple possible template hyphens recognized but only one lookup&lt;br /&gt;
	  hyphen (tatweel). The form of the affix as used to look up in the mapping tables is called the &amp;quot;lookup affix&amp;quot;;&lt;br /&gt;
	  see below.&lt;br /&gt;
* A &amp;quot;stripped link affix&amp;quot; is a link affix that has been passed through the language&#039;s makeEntryName() function, which&lt;br /&gt;
  may strip certain diacritics: e.g. macrons in Latin and Old English (indicating length); acute and grave accents in&lt;br /&gt;
  Russian and various other Slavic languages (indicating stress); vowel diacritics in most Arabic-script languages; and&lt;br /&gt;
  also tatweel in some Arabic-script languages (currently, for example, Persian, Arabic and Urdu strip tatweel, but&lt;br /&gt;
  Ottoman Turkish does not). Stripped link affixes are currently what are used in category names.&lt;br /&gt;
* A &amp;quot;lookup affix&amp;quot; is the form of the affix as it is looked up in the language-specific lookup mappings described above&lt;br /&gt;
  under link affixes. There are actually two lookup stages:&lt;br /&gt;
  (1) First, the affix is looked up in a modified display form (specifically, the same as the display affix but using&lt;br /&gt;
	  lookup hyphens). Note that this lookup does not occur if an explicit display form is given using |altN= or an&lt;br /&gt;
	  &amp;lt;alt:...&amp;gt; inline modifier, or if the template affix contains a piped or embedded link.&lt;br /&gt;
  (2) If no entry is found, the affix is then looked up in a modified link form (specifically, the modified display&lt;br /&gt;
	  form passed through the language&#039;s makeEntryName() function, which strips out certain diacritics, but with the&lt;br /&gt;
	  lookup hyphen re-added if it was stripped out, as in the case of tatweel in many Arabic-script languages).&lt;br /&gt;
  The reason for this double lookup procedure is to allow for mappings that are sensitive to the extra diacritics, but&lt;br /&gt;
  also allow for mappings that are not sensitive in this fashion (e.g. Russian [[Wiktionary:-ливый|-ливый]] occurs both stressed and&lt;br /&gt;
  unstressed, but is the same prefix either way).&lt;br /&gt;
* A &amp;quot;category affix&amp;quot; is the affix as it appears in categories such as [[:Category:Finnish terms suffixed with -kas]].&lt;br /&gt;
  The category affix is currently always the same as the stripped link affix. This means that for Arabic-script&lt;br /&gt;
  languages, it may or may not have a tatweel, even if the correponding display affix and regular link affix have a&lt;br /&gt;
  tatweel. As mentioned above, makeEntryName() strips tatweel for Arabic, Persian and Urdu, but not for Ottoman Turkish.&lt;br /&gt;
  Hence affix categories for Arabic, Persian and Urdu will be missing the tatweel, but affix categories for&lt;br /&gt;
  Ottoman Turkish will have it. An additional complication is that if the template affix contains a ZWNJ, the display&lt;br /&gt;
  (and hence the link and category affixes) will have no hyphen attached in any case.&lt;br /&gt;
]=]&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------------------------&lt;br /&gt;
--                               Template and display hyphens                          --&lt;br /&gt;
-----------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Per-script template hyphens. The template hyphen is what appears in the {{affix}}/{{prefix}}/{{suffix}}/etc. template&lt;br /&gt;
(in the wikicode). See above.&lt;br /&gt;
&lt;br /&gt;
They key below is a script code, after removing a hyphen and anything preceding. Hence, script codes like &#039;fa-Arab&#039;&lt;br /&gt;
and &#039;ur-Arab&#039; will match &#039;Arab&#039;.&lt;br /&gt;
&lt;br /&gt;
The value below is a string consisting of one or more hyphen characters. If there is more than one character, the&lt;br /&gt;
default hyphen must come last and a non-default function must be specified for the script in display_hyphens[] so&lt;br /&gt;
the correct display hyphen will be specified when no template hyphen is given (in {{suffix}}/{{prefix}}/etc.).&lt;br /&gt;
&lt;br /&gt;
Script detection is normally done when linking, but we need to do it earlier. However, under most circumstances we&lt;br /&gt;
don&#039;t need to do script detection. Specifically, we only need to do script detection for a given language if&lt;br /&gt;
&lt;br /&gt;
(a) the language has multiple scripts; and&lt;br /&gt;
(b) at least one of those scripts is listed below or in display_hyphens.&lt;br /&gt;
]=]&lt;br /&gt;
&lt;br /&gt;
local ZWNJ = u(0x200C) -- zero-width non-joiner&lt;br /&gt;
local template_hyphens = {&lt;br /&gt;
	[&amp;quot;Arab&amp;quot;] = &amp;quot;ـ&amp;quot; .. ZWNJ .. &amp;quot;-&amp;quot;, -- tatweel + zero-width non-joiner + regular hyphen&lt;br /&gt;
	[&amp;quot;Hebr&amp;quot;] = &amp;quot;־&amp;quot;, -- Hebrew-specific hyphen termed &amp;quot;maqqef&amp;quot;&lt;br /&gt;
	-- This covers all Arabic scripts. See above.&lt;br /&gt;
	[&amp;quot;Mong&amp;quot;] = &amp;quot;᠊&amp;quot;,&lt;br /&gt;
	[&amp;quot;mnc-Mong&amp;quot;] = &amp;quot;᠊&amp;quot;,&lt;br /&gt;
	[&amp;quot;sjo-Mong&amp;quot;] = &amp;quot;᠊&amp;quot;,&lt;br /&gt;
	[&amp;quot;xwo-Mong&amp;quot;] = &amp;quot;᠊&amp;quot;,&lt;br /&gt;
	-- FIXME! What about the following right-to-left scripts?&lt;br /&gt;
	-- Adlm (Adlam)&lt;br /&gt;
	-- Armi (Imperial Aramaic)&lt;br /&gt;
	-- Avst (Avestan)&lt;br /&gt;
	-- Cprt (Cypriot)&lt;br /&gt;
	-- Khar (Kharoshthi)&lt;br /&gt;
	-- Mand (Mandaic/Mandaean)&lt;br /&gt;
	-- Mani (Manichaean)&lt;br /&gt;
	-- Mend (Mende/Mende Kikakui)&lt;br /&gt;
	-- Narb (Old North Arabian)&lt;br /&gt;
	-- Nbat (Nabataean/Nabatean)&lt;br /&gt;
	-- Nkoo (N&#039;Ko)&lt;br /&gt;
	-- Orkh (Orkhon runes)&lt;br /&gt;
	-- Phli (Inscriptional Pahlavi)&lt;br /&gt;
	-- Phlp (Psalter Pahlavi)&lt;br /&gt;
	-- Phlv (Book Pahlavi)&lt;br /&gt;
	-- Phnx (Phoenician)&lt;br /&gt;
	-- Prti (Inscriptional Parthian)&lt;br /&gt;
	-- Rohg (Hanifi Rohingya)&lt;br /&gt;
	-- Samr (Samaritan)&lt;br /&gt;
	-- Sarb (Old South Arabian)&lt;br /&gt;
	-- Sogd (Sogdian)&lt;br /&gt;
	-- Sogo (Old Sogdian)&lt;br /&gt;
	-- Syrc (Syriac)&lt;br /&gt;
	-- Thaa (Thaana)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Hyphens used when looking up an affix in a lang-specific affix mapping. Defaults to regular hyphen (-). The keys&lt;br /&gt;
-- are script codes, after removing a hyphen and anything preceding. Hence, script codes like &#039;fa-Arab&#039; and &#039;ur-Arab&#039;&lt;br /&gt;
-- will match &#039;Arab&#039;. The value should be a single character.&lt;br /&gt;
local lookup_hyphens = {&lt;br /&gt;
	[&amp;quot;Hebr&amp;quot;] = &amp;quot;־&amp;quot;,&lt;br /&gt;
	-- This covers all Arabic scripts. See above.&lt;br /&gt;
	[&amp;quot;Arab&amp;quot;] = &amp;quot;ـ&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Default display-hyphen function.&lt;br /&gt;
local function default_display_hyphen(script, hyph)&lt;br /&gt;
	if not hyph then&lt;br /&gt;
		return template_hyphens[script] or &amp;quot;-&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	return hyph&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function arab_get_display_hyphen(script, hyph)&lt;br /&gt;
	if not hyph then&lt;br /&gt;
		return &amp;quot;ـ&amp;quot; -- tatweel&lt;br /&gt;
	elseif hyph == ZWNJ then&lt;br /&gt;
		return &amp;quot;&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		return hyph&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function no_display_hyphen(script, hyph)&lt;br /&gt;
	return &amp;quot;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Per-script function to return the correct display hyphen given the script and template hyphen. The function should&lt;br /&gt;
-- also handle the case where the passed-in template hyphen is nil, corresponding to the situation in&lt;br /&gt;
-- {{prefix}}/{{suffix}}/etc. where no template hyphen is specified. The key is the script code after removing a hyphen&lt;br /&gt;
-- and anything preceding, so &#039;fa-Arab&#039;, &#039;ur-Arab&#039; etc. will match &#039;Arab&#039;.&lt;br /&gt;
local display_hyphens = {&lt;br /&gt;
	-- This covers all Arabic scripts. See above.&lt;br /&gt;
	[&amp;quot;Arab&amp;quot;] = arab_get_display_hyphen,&lt;br /&gt;
	[&amp;quot;Bopo&amp;quot;] = no_display_hyphen,&lt;br /&gt;
	[&amp;quot;Hani&amp;quot;] = no_display_hyphen,&lt;br /&gt;
	[&amp;quot;Hans&amp;quot;] = no_display_hyphen,&lt;br /&gt;
	[&amp;quot;Hant&amp;quot;] = no_display_hyphen,&lt;br /&gt;
	-- The following is a mixture of several scripts. Hopefully the specs here are correct!&lt;br /&gt;
	[&amp;quot;Jpan&amp;quot;] = no_display_hyphen,&lt;br /&gt;
	[&amp;quot;Jurc&amp;quot;] = no_display_hyphen,&lt;br /&gt;
	[&amp;quot;Kitl&amp;quot;] = no_display_hyphen,&lt;br /&gt;
	[&amp;quot;Kits&amp;quot;] = no_display_hyphen,&lt;br /&gt;
	[&amp;quot;Laoo&amp;quot;] = no_display_hyphen,&lt;br /&gt;
	[&amp;quot;Nshu&amp;quot;] = no_display_hyphen,&lt;br /&gt;
	[&amp;quot;Shui&amp;quot;] = no_display_hyphen,&lt;br /&gt;
	[&amp;quot;Tang&amp;quot;] = no_display_hyphen,&lt;br /&gt;
	[&amp;quot;Thaa&amp;quot;] = no_display_hyphen,&lt;br /&gt;
	[&amp;quot;Thai&amp;quot;] = no_display_hyphen,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------------------------&lt;br /&gt;
--                                 Basic Utility functions                             --&lt;br /&gt;
-----------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function glossary_link(entry, text)&lt;br /&gt;
	text = text or entry&lt;br /&gt;
	return &amp;quot;[[Appendix:Glossary#&amp;quot; .. entry .. &amp;quot;|&amp;quot; .. text .. &amp;quot;]]&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function track(page)&lt;br /&gt;
	if type(page) == &amp;quot;table&amp;quot; then&lt;br /&gt;
		for i, pg in ipairs(page) do&lt;br /&gt;
			page[i] = &amp;quot;affix/&amp;quot; .. pg&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		page = &amp;quot;affix/&amp;quot; .. page&lt;br /&gt;
	end&lt;br /&gt;
	require(&amp;quot;Module:debug/track&amp;quot;)(page)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------------------------&lt;br /&gt;
--                                      Compound types                                 --&lt;br /&gt;
-----------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function make_compound_type(typ, alttext)&lt;br /&gt;
	return {&lt;br /&gt;
		text = glossary_link(typ, alttext) .. &amp;quot; compound&amp;quot;,&lt;br /&gt;
		cat = typ .. &amp;quot; compounds&amp;quot;,&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Make a compound type entry with a simple rather than glossary link.&lt;br /&gt;
-- These should be replaced with a glossary link when the entry in the glossary&lt;br /&gt;
-- is created.&lt;br /&gt;
local function make_non_glossary_compound_type(typ, alttext)&lt;br /&gt;
	local link = alttext and &amp;quot;[[&amp;quot; .. typ .. &amp;quot;|&amp;quot; .. alttext .. &amp;quot;]]&amp;quot; or &amp;quot;[[&amp;quot; .. typ .. &amp;quot;]]&amp;quot;&lt;br /&gt;
	return {&lt;br /&gt;
		text = link .. &amp;quot; compound&amp;quot;,&lt;br /&gt;
		cat = typ .. &amp;quot; compounds&amp;quot;,&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function make_raw_compound_type(typ, alttext)&lt;br /&gt;
	return {&lt;br /&gt;
		text = glossary_link(typ, alttext),&lt;br /&gt;
		cat = require(&amp;quot;Module:string utilities&amp;quot;).pluralize(typ),&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
export.compound_types = {&lt;br /&gt;
	[&amp;quot;alliterative&amp;quot;] = make_non_glossary_compound_type(&amp;quot;alliterative&amp;quot;),&lt;br /&gt;
	[&amp;quot;allit&amp;quot;] = &amp;quot;alliterative&amp;quot;,&lt;br /&gt;
	[&amp;quot;antonymous&amp;quot;] = make_non_glossary_compound_type(&amp;quot;antonymous&amp;quot;),&lt;br /&gt;
	[&amp;quot;ant&amp;quot;] = &amp;quot;antonymous&amp;quot;,&lt;br /&gt;
	[&amp;quot;bahuvrihi&amp;quot;] = make_compound_type(&amp;quot;bahuvrihi&amp;quot;, &amp;quot;bahuvrīhi&amp;quot;),&lt;br /&gt;
	[&amp;quot;bahu&amp;quot;] = &amp;quot;bahuvrihi&amp;quot;,&lt;br /&gt;
	[&amp;quot;bv&amp;quot;] = &amp;quot;bahuvrihi&amp;quot;,&lt;br /&gt;
	[&amp;quot;coordinative&amp;quot;] = make_compound_type(&amp;quot;coordinative&amp;quot;),&lt;br /&gt;
	[&amp;quot;coord&amp;quot;] = &amp;quot;coordinative&amp;quot;,&lt;br /&gt;
	[&amp;quot;descriptive&amp;quot;] = make_compound_type(&amp;quot;descriptive&amp;quot;),&lt;br /&gt;
	[&amp;quot;desc&amp;quot;] = &amp;quot;descriptive&amp;quot;,&lt;br /&gt;
	[&amp;quot;determinative&amp;quot;] = make_compound_type(&amp;quot;determinative&amp;quot;),&lt;br /&gt;
	[&amp;quot;det&amp;quot;] = &amp;quot;determinative&amp;quot;,&lt;br /&gt;
	[&amp;quot;dvandva&amp;quot;] = make_compound_type(&amp;quot;dvandva&amp;quot;),&lt;br /&gt;
	[&amp;quot;dva&amp;quot;] = &amp;quot;dvandva&amp;quot;,&lt;br /&gt;
	[&amp;quot;endocentric&amp;quot;] = make_compound_type(&amp;quot;endocentric&amp;quot;),&lt;br /&gt;
	[&amp;quot;endo&amp;quot;] = &amp;quot;endocentric&amp;quot;,&lt;br /&gt;
	[&amp;quot;exocentric&amp;quot;] = make_compound_type(&amp;quot;exocentric&amp;quot;),&lt;br /&gt;
	[&amp;quot;exo&amp;quot;] = &amp;quot;exocentric&amp;quot;,&lt;br /&gt;
	[&amp;quot;izafet I&amp;quot;] = make_compound_type(&amp;quot;izafet I&amp;quot;),&lt;br /&gt;
	[&amp;quot;iz1&amp;quot;] = &amp;quot;izafet I&amp;quot;,&lt;br /&gt;
	[&amp;quot;izafet II&amp;quot;] = make_compound_type(&amp;quot;izafet II&amp;quot;),&lt;br /&gt;
	[&amp;quot;iz2&amp;quot;] = &amp;quot;izafet II&amp;quot;,&lt;br /&gt;
	[&amp;quot;izafet III&amp;quot;] = make_compound_type(&amp;quot;izafet III&amp;quot;),&lt;br /&gt;
	[&amp;quot;iz3&amp;quot;] = &amp;quot;izafet III&amp;quot;,&lt;br /&gt;
	[&amp;quot;karmadharaya&amp;quot;] = make_compound_type(&amp;quot;karmadharaya&amp;quot;, &amp;quot;karmadhāraya&amp;quot;),&lt;br /&gt;
	[&amp;quot;karma&amp;quot;] = &amp;quot;karmadharaya&amp;quot;,&lt;br /&gt;
	[&amp;quot;kd&amp;quot;] = &amp;quot;karmadharaya&amp;quot;,&lt;br /&gt;
	[&amp;quot;kenning&amp;quot;] = make_raw_compound_type(&amp;quot;kenning&amp;quot;),&lt;br /&gt;
	[&amp;quot;ken&amp;quot;] = &amp;quot;kenning&amp;quot;,&lt;br /&gt;
	[&amp;quot;rhyming&amp;quot;] = make_non_glossary_compound_type(&amp;quot;rhyming&amp;quot;),&lt;br /&gt;
	[&amp;quot;rhy&amp;quot;] = &amp;quot;rhyming&amp;quot;,&lt;br /&gt;
	[&amp;quot;synonymous&amp;quot;] = make_non_glossary_compound_type(&amp;quot;synonymous&amp;quot;),&lt;br /&gt;
	[&amp;quot;syn&amp;quot;] = &amp;quot;synonymous&amp;quot;,&lt;br /&gt;
	[&amp;quot;tatpurusa&amp;quot;] = make_compound_type(&amp;quot;tatpurusa&amp;quot;, &amp;quot;tatpuruṣa&amp;quot;),&lt;br /&gt;
	[&amp;quot;tat&amp;quot;] = &amp;quot;tatpurusa&amp;quot;,&lt;br /&gt;
	[&amp;quot;tp&amp;quot;] = &amp;quot;tatpurusa&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function process_compound_type(typ, nocap, notext, has_parts)&lt;br /&gt;
	local text_sections = {}&lt;br /&gt;
	local categories = {}&lt;br /&gt;
&lt;br /&gt;
	if typ then&lt;br /&gt;
		local typdata = export.compound_types[typ]&lt;br /&gt;
		if type(typdata) == &amp;quot;string&amp;quot; then&lt;br /&gt;
			typdata = export.compound_types[typdata]&lt;br /&gt;
		end&lt;br /&gt;
		if not typdata then&lt;br /&gt;
			error(&amp;quot;Internal error: Unrecognized type &#039;&amp;quot; .. typ .. &amp;quot;&#039;&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
		local text = typdata.text&lt;br /&gt;
		if not nocap then&lt;br /&gt;
			text = require(&amp;quot;Module:string utilities&amp;quot;).ucfirst(text)&lt;br /&gt;
		end&lt;br /&gt;
		local cat = typdata.cat&lt;br /&gt;
		local oftext = typdata.oftext or &amp;quot; of&amp;quot;&lt;br /&gt;
&lt;br /&gt;
		if not notext then&lt;br /&gt;
			table.insert(text_sections, text)&lt;br /&gt;
			if has_parts then&lt;br /&gt;
				table.insert(text_sections, oftext)&lt;br /&gt;
				table.insert(text_sections, &amp;quot; &amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		table.insert(categories, cat)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return text_sections, categories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------------------------&lt;br /&gt;
--                                     Utility functions                               --&lt;br /&gt;
-----------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- Iterate an array up to the greatest integer index found.&lt;br /&gt;
local function ipairs_with_gaps(t)&lt;br /&gt;
	local indices = require(&amp;quot;Module:table&amp;quot;).numKeys(t)&lt;br /&gt;
	local max_index = #indices &amp;gt; 0 and math.max(unpack(indices)) or 0&lt;br /&gt;
	local i = 0&lt;br /&gt;
	return function()&lt;br /&gt;
		while i &amp;lt; max_index do&lt;br /&gt;
			i = i + 1&lt;br /&gt;
			return i, t[i]&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
export.ipairs_with_gaps = ipairs_with_gaps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Concatenate formatted parts (in `parts_formatted`) together with any overall lit= spec (in `lit`) plus categories,&lt;br /&gt;
which are formatted by prepending the language name as found in `lang`. The value of an entry in `categories` can be&lt;br /&gt;
either a string (which is formatted using `sort_key`) or a table of the form `{cat=CATEGORY, sort_key=SORT_KEY,&lt;br /&gt;
sort_base=SORT_BASE}`, specifying the sort key and sort base to use when formatting the category. If `nocat` is given,&lt;br /&gt;
no categories are added; otherwise, `force_cat` causes categories to be added even on userspace pages.&lt;br /&gt;
]=]&lt;br /&gt;
function export.concat_parts(lang, parts_formatted, categories, nocat, sort_key, lit, force_cat)&lt;br /&gt;
	local cattext&lt;br /&gt;
	if nocat then&lt;br /&gt;
		cattext = &amp;quot;&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		for i, cat in ipairs(categories) do&lt;br /&gt;
			if type(cat) == &amp;quot;table&amp;quot; then&lt;br /&gt;
				categories[i] = m_utilities.format_categories({lang:getNonEtymologicalName() .. &amp;quot; &amp;quot; .. cat.cat}, lang,&lt;br /&gt;
					cat.sort_key, cat.sort_base, force_cat or debug_force_cat)&lt;br /&gt;
			else&lt;br /&gt;
				categories[i] = m_utilities.format_categories({lang:getNonEtymologicalName() .. &amp;quot; &amp;quot; .. cat}, lang,&lt;br /&gt;
					sort_key, nil, force_cat or debug_force_cat)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		cattext = table.concat(categories)&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(parts_formatted, &amp;quot; +&amp;amp;lrm; &amp;quot;) .. (lit and &amp;quot;, literally &amp;quot; .. m_links.mark(lit, &amp;quot;gloss&amp;quot;) or &amp;quot;&amp;quot;) ..&lt;br /&gt;
		cattext&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function pluralize(pos)&lt;br /&gt;
	if pos ~= &amp;quot;nouns&amp;quot; and usub(pos, -5) ~= &amp;quot;verbs&amp;quot; and usub(pos, -4) ~= &amp;quot;ives&amp;quot; then&lt;br /&gt;
		if pos:find(&amp;quot;[sx]$&amp;quot;) then&lt;br /&gt;
			pos = pos .. &amp;quot;es&amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			pos = pos .. &amp;quot;s&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return pos&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Remove links and call lang:makeEntryName(term).&lt;br /&gt;
local function make_entry_name_no_links(lang, term)&lt;br /&gt;
	-- Double parens because makeEntryName() returns multiple values. Yuck.&lt;br /&gt;
	return (lang:makeEntryName(m_links.remove_links(term)))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Convert a raw part as passed into an entry point into a part ready for linking. `lang` and `sc` are the overall&lt;br /&gt;
language and script objects. This uses the overall language and script objects as defaults for the part and parses off&lt;br /&gt;
any fragment from the term. We need to do the latter so that fragments don&#039;t end up in categories and so that we&lt;br /&gt;
correctly do affix mapping even in the presence of fragments.&lt;br /&gt;
]=]&lt;br /&gt;
local function canonicalize_part(part, lang, sc)&lt;br /&gt;
	if not part then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	-- Save the original (user-specified, part-specific) value of `lang`. If such a value is specified, we don&#039;t insert&lt;br /&gt;
	-- a &#039;*fixed with&#039; category, and we format the part using format_derived() in [[Module:etymology]] rather than&lt;br /&gt;
	-- full_link() in [[Module:links]].&lt;br /&gt;
	part.part_lang = part.lang&lt;br /&gt;
	part.lang = part.lang or lang&lt;br /&gt;
	part.sc = part.sc or sc&lt;br /&gt;
	if part.term then&lt;br /&gt;
		local fragment&lt;br /&gt;
		part.term, fragment = m_links.get_fragment(part.term)&lt;br /&gt;
		part.fragment = part.fragment or fragment&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Construct a single linked part based on the information in `part`, for use by `show_affix()` and other entry points.&lt;br /&gt;
This should be called after canonicalize_part() is called on the part. This is a thin wrapper around `full_link()` in&lt;br /&gt;
[[Module:links]] unless `part.part_lang` is specified (indicating that a part-specific language was given), in which&lt;br /&gt;
case `format_derived()` in [[Module:etymology]] is called to display a term in a language other than the language of&lt;br /&gt;
the overall term (specified in `data.lang`). `data` contains the entire object passed into the entry point and is used&lt;br /&gt;
to access information for constructing the categories added by `format_derived()`.&lt;br /&gt;
]=]&lt;br /&gt;
function export.link_term(part, data)&lt;br /&gt;
	local result&lt;br /&gt;
&lt;br /&gt;
	if part.part_lang then&lt;br /&gt;
		result = require(&amp;quot;Module:etymology&amp;quot;).format_derived(data.lang, part, data.sort_key, data.nocat,&lt;br /&gt;
			data.force_cat or debug_force_cat)&lt;br /&gt;
	else&lt;br /&gt;
		-- language (e.g. in a pseudo-loan).&lt;br /&gt;
		result = m_links.full_link(part, &amp;quot;term&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if part.q then&lt;br /&gt;
		result = require(&amp;quot;Module:qualifier&amp;quot;).format_qualifier(part.q) .. &amp;quot; &amp;quot; .. result&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if part.qq then&lt;br /&gt;
		result = result .. &amp;quot; &amp;quot; .. require(&amp;quot;Module:qualifier&amp;quot;).format_qualifier(part.qq)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function canonicalize_script_code(scode)&lt;br /&gt;
	-- Convert fa-Arab, ur-Arab etc. to Arab.&lt;br /&gt;
	return (scode:gsub(&amp;quot;^.*%-&amp;quot;, &amp;quot;&amp;quot;))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------------------------&lt;br /&gt;
--                                  Affix-handling functions                           --&lt;br /&gt;
-----------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- Figure out the appropriate script for the given affix and language (unless the script is explicitly passed in), and&lt;br /&gt;
-- return the values of template_hyphens[], display_hyphens[] and lookup_hyphens[] for that script, substituting&lt;br /&gt;
-- default values as appropriate. Four values are returned:&lt;br /&gt;
--	DETECTED_SCRIPT, TEMPLATE_HYPHEN, DISPLAY_HYPHEN, LOOKUP_HYPHEN&lt;br /&gt;
local function detect_script_and_hyphens(text, lang, sc)&lt;br /&gt;
	local scode&lt;br /&gt;
	-- 1. If the script is explicitly passed in, use it.&lt;br /&gt;
	if sc then&lt;br /&gt;
		scode = sc:getCode()&lt;br /&gt;
	else&lt;br /&gt;
		local possible_script_codes = lang:getScriptCodes()&lt;br /&gt;
		-- YUCK! `possible_script_codes` comes from loadData() so #possible_scripts doesn&#039;t work (always returns 0).&lt;br /&gt;
		local num_possible_script_codes = m_table.length(possible_script_codes)&lt;br /&gt;
		if num_possible_script_codes == 0 then&lt;br /&gt;
			-- This shouldn&#039;t happen; if the language has no script codes,&lt;br /&gt;
			-- the list {&amp;quot;None&amp;quot;} should be returned.&lt;br /&gt;
			error(&amp;quot;Something is majorly wrong! Language &amp;quot; .. lang:getCanonicalName() .. &amp;quot; has no script codes.&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
		if num_possible_script_codes == 1 then&lt;br /&gt;
			-- 2. If the language has only one possible script, use it.&lt;br /&gt;
			scode = possible_script_codes[1]&lt;br /&gt;
		else&lt;br /&gt;
			-- 3. Check if any of the possible scripts for the language have non-default values for template_hyphens[]&lt;br /&gt;
			--    or display_hyphens[]. If so, we need to do script detection on the text. If not, just use &amp;quot;Latn&amp;quot;,&lt;br /&gt;
			--    which may not be technically correct but produces the right results because Latn has all default&lt;br /&gt;
			--    values for template_hyphens[] and display_hyphens[].&lt;br /&gt;
			local may_have_nondefault_hyphen = false&lt;br /&gt;
			for _, script_code in ipairs(possible_script_codes) do&lt;br /&gt;
				script_code = canonicalize_script_code(script_code)&lt;br /&gt;
				if template_hyphens[script_code] or display_hyphens[script_code] then&lt;br /&gt;
					may_have_nondefault_hyphen = true&lt;br /&gt;
					break&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if not may_have_nondefault_hyphen then&lt;br /&gt;
				scode = &amp;quot;Latn&amp;quot;&lt;br /&gt;
			else&lt;br /&gt;
				scode = lang:findBestScript(text):getCode()&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	scode = canonicalize_script_code(scode)&lt;br /&gt;
	local template_hyphen = template_hyphens[scode] or &amp;quot;-&amp;quot;&lt;br /&gt;
	local lookup_hyphen = lookup_hyphens[scode] or &amp;quot;-&amp;quot;&lt;br /&gt;
	local display_hyphen = display_hyphens[scode] or default_display_hyphen&lt;br /&gt;
	return scode, template_hyphen, display_hyphen, lookup_hyphen&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Given a template affix `term` and an affix type `affix_type`, change the relevant template hyphen(s) in the affix to&lt;br /&gt;
the display or lookup hyphen specified in `new_hyphen`, or add them if they are missing. `new_hyphen` can be a string,&lt;br /&gt;
specifying a fixed hyphen, or a function of two arguments (the script code `scode` and the discovered template hyphen,&lt;br /&gt;
or nil of no relevant template hyphen is present). `thyph_re` is a Lua pattern (which must be enclosed in parens) that&lt;br /&gt;
matches the possible template hyphens. Note that not all template hyphens present in the affix are changed, but only&lt;br /&gt;
the &amp;quot;relevant&amp;quot; ones (e.g. for a prefix, a relevant template hyphen is one coming at the end of the affix).&lt;br /&gt;
]=]&lt;br /&gt;
local function reconstruct_term_per_hyphens(term, affix_type, scode, thyph_re, new_hyphen)&lt;br /&gt;
	local function get_hyphen(hyph)&lt;br /&gt;
		if type(new_hyphen) == &amp;quot;string&amp;quot; then&lt;br /&gt;
			return new_hyphen&lt;br /&gt;
		end&lt;br /&gt;
		return new_hyphen(scode, hyph)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if not affix_type then&lt;br /&gt;
		return term&lt;br /&gt;
	elseif affix_type == &amp;quot;circumfix&amp;quot; then&lt;br /&gt;
		local before, before_hyphen, after_hyphen, after = rmatch(term, &amp;quot;^(.*)&amp;quot; .. thyph_re .. &amp;quot; &amp;quot; .. thyph_re&lt;br /&gt;
			.. &amp;quot;(.*)$&amp;quot;)&lt;br /&gt;
		if not before or ulen(term) &amp;lt;= 3 then&lt;br /&gt;
			-- Unlike with other types of affixes, don&#039;t try to add hyphens in the middle of the term to convert it to&lt;br /&gt;
			-- a circumfix. Also, if the term is just hyphen + space + hyphen, return it.&lt;br /&gt;
			return term&lt;br /&gt;
		end&lt;br /&gt;
		return before .. get_hyphen(before_hyphen) .. &amp;quot; &amp;quot; .. get_hyphen(after_hyphen) .. after&lt;br /&gt;
	elseif affix_type == &amp;quot;infix&amp;quot; or affix_type == &amp;quot;interfix&amp;quot; then&lt;br /&gt;
		local before_hyphen, middle, after_hyphen = rmatch(term, &amp;quot;^&amp;quot; .. thyph_re .. &amp;quot;(.*)&amp;quot; .. thyph_re .. &amp;quot;$&amp;quot;)&lt;br /&gt;
		if before_hyphen and ulen(term) &amp;lt;= 1 then&lt;br /&gt;
			-- If the term is just a hyphen, return it.&lt;br /&gt;
			return term&lt;br /&gt;
		end&lt;br /&gt;
		return get_hyphen(before_hyphen) .. (middle or term) .. get_hyphen(after_hyphen)&lt;br /&gt;
	elseif affix_type == &amp;quot;prefix&amp;quot; then&lt;br /&gt;
		local middle, after_hyphen = rmatch(term, &amp;quot;^(.*)&amp;quot; .. thyph_re .. &amp;quot;$&amp;quot;)&lt;br /&gt;
		if middle and ulen(term) &amp;lt;= 1 then&lt;br /&gt;
			-- If the term is just a hyphen, return it.&lt;br /&gt;
			return term&lt;br /&gt;
		end&lt;br /&gt;
		return (middle or term) .. get_hyphen(after_hyphen)&lt;br /&gt;
	elseif affix_type == &amp;quot;suffix&amp;quot; then&lt;br /&gt;
		local before_hyphen, middle = rmatch(term, &amp;quot;^&amp;quot; .. thyph_re .. &amp;quot;(.*)$&amp;quot;)&lt;br /&gt;
		if before_hyphen and ulen(term) &amp;lt;= 1 then&lt;br /&gt;
			-- If the term is just a hyphen, return it.&lt;br /&gt;
			return term&lt;br /&gt;
		end&lt;br /&gt;
		return get_hyphen(before_hyphen) .. (middle or term)&lt;br /&gt;
	else&lt;br /&gt;
		error((&amp;quot;Internal error: Unrecognized affix type &#039;%s&#039;&amp;quot;):format(affix_type))&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Look up a mapping from a given affix variant to the canonical form used in categories and links. The lookup tables are&lt;br /&gt;
language-specific according to `lang`, and may be ID-specific according to `affix_id`. The affixes as they appear in the&lt;br /&gt;
lookup tables (both the variant and the canonical form) are in &amp;quot;lookup affix&amp;quot; format (approximately speaking, they use a&lt;br /&gt;
regular hyphen for most scripts, but a tatweel for Arabic-script entries and a maqqef for Hebrew-script entries), but&lt;br /&gt;
the passed-in `affix` param is in &amp;quot;template affix&amp;quot; format (which differs from the lookup affix for Arabic-script&lt;br /&gt;
entries, because more types of hyphens are allowed in template affixes; see the comments at the top of the file). The&lt;br /&gt;
remaining parameters to this function are used to convert from template affixes to lookup affixes; see the&lt;br /&gt;
reconstruct_term_per_hyphens() function above.&lt;br /&gt;
&lt;br /&gt;
If the affix contains brackets, no lookup is done. Otherwise, a two-stage process is used, first looking up the affix&lt;br /&gt;
directly and then stripping diacritics and looking it up again. The reason for this is documented above in the comments&lt;br /&gt;
at the top of the file (specifically, the comments describing lookup affixes).&lt;br /&gt;
&lt;br /&gt;
The value of a mapping can either be a string (do the mapping regardless of affix ID) or a table indexed by affix ID&lt;br /&gt;
(where the special value `false` indicates no affix ID). The values of entries in this table can also be strings, or&lt;br /&gt;
tables with keys `affix` and `id` (again, use `false` to indicate no ID). This allows an affix mapping to map from one&lt;br /&gt;
ID to another (for example, this is used in English to map the [[Wiktionary:an-|an-]] prefix with no ID to the [[Wiktionary:a-|a-]] prefix with the&lt;br /&gt;
ID &#039;not&#039;).&lt;br /&gt;
&lt;br /&gt;
The Given a template affix `term` and an affix type `affix_type`, change the relevant template hyphen(s) in the affix to&lt;br /&gt;
the display or lookup hyphen specified in `new_hyphen`, or add them if they are missing. `new_hyphen` can be a string,&lt;br /&gt;
specifying a fixed hyphen, or a function of two arguments (the script code `scode` and the discovered template hyphen,&lt;br /&gt;
or nil of no relevant template hyphen is present). `thyph_re` is a Lua pattern (which must be enclosed in parens) that&lt;br /&gt;
matches the possible template hyphens. Note that not all template hyphens present in the affix are changed, but only&lt;br /&gt;
the &amp;quot;relevant&amp;quot; ones (e.g. for a prefix, a relevant template hyphen is one coming at the end of the affix).&lt;br /&gt;
]=]&lt;br /&gt;
local function lookup_affix_mapping(affix, affix_type, lang, scode, thyph_re, lookup_hyph, affix_id)&lt;br /&gt;
	local function do_lookup(affix)&lt;br /&gt;
		-- Ensure that the affix uses lookup hyphens regardless of whether it used a different type of hyphens before&lt;br /&gt;
		-- or no hyphens.&lt;br /&gt;
		local lookup_affix = reconstruct_term_per_hyphens(affix, affix_type, scode, thyph_re, lookup_hyph)&lt;br /&gt;
		local function do_lookup_for_langcode(langcode)&lt;br /&gt;
			if export.langs_with_lang_specific_data[langcode] then&lt;br /&gt;
				local langdata = mw.loadData(export.affix_lang_data_module_prefix .. langcode)&lt;br /&gt;
				if langdata.affix_mappings then&lt;br /&gt;
					local mapping = langdata.affix_mappings[lookup_affix]&lt;br /&gt;
					if mapping then&lt;br /&gt;
						if type(mapping) == &amp;quot;table&amp;quot; then&lt;br /&gt;
							mapping = mapping[affix_id or false]&lt;br /&gt;
							if mapping then&lt;br /&gt;
								return mapping&lt;br /&gt;
							end&lt;br /&gt;
						else&lt;br /&gt;
							return mapping&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- If `lang` is an etymology-only language, look for a mapping both for it and its full parent.&lt;br /&gt;
		local langcode = lang:getCode()&lt;br /&gt;
		local mapping = do_lookup_for_langcode(langcode)&lt;br /&gt;
		if mapping then&lt;br /&gt;
			return mapping&lt;br /&gt;
		end&lt;br /&gt;
		local full_langcode = lang:getNonEtymologicalCode()&lt;br /&gt;
		if full_langcode ~= langcode then&lt;br /&gt;
			mapping = do_lookup_for_langcode(full_langcode)&lt;br /&gt;
			if mapping then&lt;br /&gt;
				return mapping&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if affix:find(&amp;quot;%[%[&amp;quot;) then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Double parens because makeEntryName() returns multiple values. Yuck.&lt;br /&gt;
	return do_lookup(affix) or do_lookup((lang:makeEntryName(affix))) or nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
For a given template term in a given language (see the definition of &amp;quot;template affix&amp;quot; near the top of the file),&lt;br /&gt;
possibly in an explicitly specified script `sc` (but usually nil), return the term&#039;s affix type (&amp;quot;prefix&amp;quot;, &amp;quot;infix&amp;quot;,&lt;br /&gt;
&amp;quot;suffix&amp;quot;, &amp;quot;circumfix&amp;quot; or nil for non-affix) along with the corresponding link and display affixes (see definitions&lt;br /&gt;
near the top of the file); also the corresponding lookup affix (if `return_lookup_affix` is specified). The term passed&lt;br /&gt;
in should already have any fragment (after the # sign) parsed off of it. Four values are returned: `affix_type`,&lt;br /&gt;
`link_term`, `display_term` and `lookup_term`. The affix type can be passed in instead of autodetected (pass in `false`&lt;br /&gt;
if the term is not an affix); in this case, the template term need not have any attached hyphens, and the appropriate&lt;br /&gt;
hyphens will be added in the appropriate places. If `do_affix_mapping` is specified, look up the affix in the&lt;br /&gt;
lang-specific affix mappings, as described in the comment at the top of the file; otherwise, the link and display terms&lt;br /&gt;
will always be the same. (They will be the same in any case if the template term has a bracketed link in it or is not&lt;br /&gt;
an affix.) If `return_lookup_affix` is given, the fourth return value contains the term with appropriate lookup hyphens&lt;br /&gt;
in the appropriate places; otherwise, it is the same as the display term. (This functionality is used in&lt;br /&gt;
[[Module:category tree/poscatboiler/data/terms by etymology]] to convert link affixes into lookup affixes so that they&lt;br /&gt;
can be looked up in the affix mapping tables.)&lt;br /&gt;
]=]&lt;br /&gt;
function export.parse_term_for_affixes(term, lang, sc, affix_type, do_affix_mapping, return_lookup_affix, affix_id)&lt;br /&gt;
	if not term then&lt;br /&gt;
		return nil, nil, nil, nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if term:find(&amp;quot;^%^&amp;quot;) then&lt;br /&gt;
		-- If term begins with ^, it&#039;s not an affix no matter what. Strip off the ^ and return &amp;quot;no affix&amp;quot;.&lt;br /&gt;
		term = usub(term, 2)&lt;br /&gt;
		return nil, term, term, term&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Remove an asterisk if the morpheme is reconstructed and add it back at the end.&lt;br /&gt;
	local reconstructed = &amp;quot;&amp;quot;&lt;br /&gt;
	if term:find(&amp;quot;^%*&amp;quot;) then&lt;br /&gt;
		reconstructed = &amp;quot;*&amp;quot;&lt;br /&gt;
		term = term:gsub(&amp;quot;^%*&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local scode, thyph, dhyph, lhyph = detect_script_and_hyphens(term, lang, sc)&lt;br /&gt;
	thyph = &amp;quot;([&amp;quot; .. thyph .. &amp;quot;])&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	if affix_type == nil then&lt;br /&gt;
		if rfind(term, thyph .. &amp;quot; &amp;quot; .. thyph) then&lt;br /&gt;
			affix_type = &amp;quot;circumfix&amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			local has_beginning_hyphen = rfind(term, &amp;quot;^&amp;quot; .. thyph)&lt;br /&gt;
			local has_ending_hyphen = rfind(term, thyph .. &amp;quot;$&amp;quot;)&lt;br /&gt;
			if has_beginning_hyphen and has_ending_hyphen then&lt;br /&gt;
				affix_type = &amp;quot;infix&amp;quot;&lt;br /&gt;
			elseif has_ending_hyphen then&lt;br /&gt;
				affix_type = &amp;quot;prefix&amp;quot;&lt;br /&gt;
			elseif has_beginning_hyphen then&lt;br /&gt;
				affix_type = &amp;quot;suffix&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local link_term, display_term, lookup_term&lt;br /&gt;
	if affix_type then&lt;br /&gt;
		display_term = reconstruct_term_per_hyphens(term, affix_type, scode, thyph, dhyph)&lt;br /&gt;
		if do_affix_mapping then&lt;br /&gt;
			link_term = lookup_affix_mapping(term, affix_type, lang, scode, thyph, lhyph, affix_id)&lt;br /&gt;
			-- The return value of lookup_affix_mapping() may be an affix mapping with lookup hyphens if a mapping&lt;br /&gt;
			-- was found, otherwise nil if a mapping was not found. We need to convert to display hyphens in&lt;br /&gt;
			-- either case, but in the latter case we can reuse the display term, which has already been converted.&lt;br /&gt;
			if link_term then&lt;br /&gt;
				link_term = reconstruct_term_per_hyphens(link_term, affix_type, scode, thyph, dhyph)&lt;br /&gt;
			else&lt;br /&gt;
				link_term = display_term&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			link_term = display_term&lt;br /&gt;
		end&lt;br /&gt;
		if return_lookup_affix then&lt;br /&gt;
			lookup_term = reconstruct_term_per_hyphens(term, affix_type, scode, thyph, lhyph)&lt;br /&gt;
		else&lt;br /&gt;
			lookup_term = display_term&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		link_term = term&lt;br /&gt;
		display_term = term&lt;br /&gt;
		lookup_term = term&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	link_term = reconstructed .. link_term&lt;br /&gt;
	display_term = reconstructed .. display_term&lt;br /&gt;
	lookup_term = reconstructed .. lookup_term&lt;br /&gt;
&lt;br /&gt;
	return affix_type, link_term, display_term, lookup_term&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
export.get_affix_type = export.parse_term_for_affixes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Add a hyphen to a term in the appropriate place, based on the specified affix type, stripping off any existing hyphens&lt;br /&gt;
in that place. For example, if `affix_type` == &amp;quot;prefix&amp;quot;, we&#039;ll add a hyphen onto the end if it&#039;s not already there (or&lt;br /&gt;
is of the wrong type). Three values are returned: the link term, display term and lookup term. This function is a thin&lt;br /&gt;
wrapper around `parse_term_for_affixes`; see the comments above that function for more information.&lt;br /&gt;
]=]&lt;br /&gt;
function export.make_affix(term, lang, sc, affix_type, do_affix_mapping, return_lookup_affix, affix_id)&lt;br /&gt;
	if not (affix_type == &amp;quot;prefix&amp;quot; or affix_type == &amp;quot;suffix&amp;quot; or affix_type == &amp;quot;circumfix&amp;quot; or affix_type == &amp;quot;infix&amp;quot; or&lt;br /&gt;
		affix_type == &amp;quot;interfix&amp;quot;) then&lt;br /&gt;
		error(&amp;quot;Internal error: Invalid affix type &amp;quot; .. (affix_type or &amp;quot;(nil)&amp;quot;))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local _, link_term, display_term, lookup_term = export.parse_term_for_affixes(term, lang, sc, affix_type,&lt;br /&gt;
		do_affix_mapping, return_lookup_affix, affix_id)&lt;br /&gt;
	return link_term, display_term, lookup_term&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------------------------&lt;br /&gt;
--                                     Main entry points                               --&lt;br /&gt;
-----------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Implementation of {{affix}} and {{surface analysis}}. `data` contains all the information describing the affixes to be&lt;br /&gt;
displayed, and contains the following:&lt;br /&gt;
&lt;br /&gt;
`.lang`: Overall language object (REQUIRED). Different from term-specific language objects (see `.parts` below).&lt;br /&gt;
`.sc`: Overall script object (usually omitted). Different from term-specific script objects.&lt;br /&gt;
`.parts`: List of objects describing the affixes to show (REQUIRED). The general format of each object is as would be&lt;br /&gt;
		  passed to full_link(), except that the `.lang` field should be missing unless the term is of a language&lt;br /&gt;
		  different from the overall `.lang` value (in such a case, the language name is shown along with the term and&lt;br /&gt;
		  an additional &amp;quot;derived from&amp;quot; category is added). WARNING: The data in `.parts` will be destructively modified.&lt;br /&gt;
`.pos`: Overall part of speech (used in categories, defaults to &amp;quot;terms&amp;quot;). Different from term-specific part of speech.&lt;br /&gt;
`.sort_key`: Overall sort key. Normally omitted except e.g. in Japanese.&lt;br /&gt;
`.type`: Type of compound, if the parts in `.parts` describe a compound. Strictly optional, and if supplied, the&lt;br /&gt;
		compound type is displayed before the parts (normally capitalized, unless `.nocap` is given).&lt;br /&gt;
`.nocap`: Don&#039;t capitalize the first letter of text displayed before the parts (relevant only if `.type` or&lt;br /&gt;
		  `.surface_analysis` is given).&lt;br /&gt;
`.notext`: Don&#039;t display any text before the parts (relevant only if `.type` or `.surface_analysis` is given).&lt;br /&gt;
`.nocat`: Disable all categorization.&lt;br /&gt;
`.lit`: Overall literal definition. Different from term-specific literal definitions.&lt;br /&gt;
`.force_cat`: Always display categories, even on userspace pages.&lt;br /&gt;
`.surface_analysis`: Implement {{surface analysis}}; adds &amp;quot;By surface analysis, &amp;quot; before the parts.&lt;br /&gt;
&lt;br /&gt;
WARNING: This destructively modifies both `data` and the individual structures within `.parts`.&lt;br /&gt;
]=]&lt;br /&gt;
function export.show_affix(data)&lt;br /&gt;
	data.pos = data.pos or default_pos&lt;br /&gt;
	data.pos = pluralize(data.pos)&lt;br /&gt;
&lt;br /&gt;
	local text_sections, categories = process_compound_type(data.type, data.surface_analysis or data.nocap, data.notext,&lt;br /&gt;
		#data.parts &amp;gt; 0)&lt;br /&gt;
&lt;br /&gt;
	-- Process each part&lt;br /&gt;
	local parts_formatted = {}&lt;br /&gt;
	local whole_words = 0&lt;br /&gt;
	local is_affix_or_compound = false&lt;br /&gt;
&lt;br /&gt;
	-- Canonicalize all the parts first because when processing the first part, we may access the second part and need&lt;br /&gt;
	-- it already canonicalized.&lt;br /&gt;
	for i, part in ipairs_with_gaps(data.parts) do&lt;br /&gt;
		part = part or {}&lt;br /&gt;
		data.parts[i] = part&lt;br /&gt;
		canonicalize_part(part, data.lang, data.sc)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	for i, part in ipairs_with_gaps(data.parts) do&lt;br /&gt;
		part = part or {}&lt;br /&gt;
&lt;br /&gt;
		-- Determine affix type and get link and display terms (see text at top of file).&lt;br /&gt;
		local affix_type, link_term, display_term = export.parse_term_for_affixes(part.term, part.lang, part.sc, nil,&lt;br /&gt;
			not part.alt, nil, part.id)&lt;br /&gt;
&lt;br /&gt;
		-- If link_term is an empty string, either a bare ^ was specified or an empty term was used along with inline&lt;br /&gt;
		-- modifiers. The intention in either case is not to link the term.&lt;br /&gt;
		part.term = link_term ~= &amp;quot;&amp;quot; and link_term or nil&lt;br /&gt;
		-- If part.alt would be the same as part.term, make it nil, so that it isn&#039;t erroneously tracked as being&lt;br /&gt;
		-- redundant alt text.&lt;br /&gt;
		part.alt = part.alt or (display_term ~= link_term and display_term) or nil&lt;br /&gt;
&lt;br /&gt;
		-- Make a link for the part.&lt;br /&gt;
		table.insert(parts_formatted, export.link_term(part, data))&lt;br /&gt;
&lt;br /&gt;
		if affix_type then&lt;br /&gt;
			is_affix_or_compound = true&lt;br /&gt;
			-- We cannot distinguish interfixes from infixes by appearance. Prefer interfixes; infixes will need to&lt;br /&gt;
			-- use {{infix}}.&lt;br /&gt;
			if affix_type == &amp;quot;infix&amp;quot; then affix_type = &amp;quot;interfix&amp;quot; end&lt;br /&gt;
&lt;br /&gt;
			-- Make a sort key. For the first part, use the second part as the sort key; the intention is that if the&lt;br /&gt;
			-- term has a prefix, sorting by the prefix won&#039;t be very useful so we sort by what follows, which is&lt;br /&gt;
			-- presumably the root.&lt;br /&gt;
			local part_sort_base = nil&lt;br /&gt;
			local part_sort = part.sort or data.sort_key&lt;br /&gt;
&lt;br /&gt;
			if i == 1 and data.parts[2] and data.parts[2].term then&lt;br /&gt;
				local part2 = data.parts[2]&lt;br /&gt;
				local part2_affix_type, part2_link_term, part2_display_term = export.parse_term_for_affixes(&lt;br /&gt;
					part2.term, part2.lang, part2.sc, nil, not part2.alt, nil, part.id)&lt;br /&gt;
				part_sort_base = make_entry_name_no_links(part2.lang, part2_link_term)&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			if part.pos and rfind(part.pos, &amp;quot;patronym&amp;quot;) then&lt;br /&gt;
				table.insert(categories, {cat = &amp;quot;patronymics&amp;quot;, sort_key = part_sort, sort_base = part_sort_base})&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			if data.pos ~= &amp;quot;terms&amp;quot; and part.pos and rfind(part.pos, &amp;quot;diminutive&amp;quot;) then&lt;br /&gt;
				table.insert(categories, {cat = &amp;quot;diminutive &amp;quot; .. data.pos, sort_key = part_sort,&lt;br /&gt;
					sort_base = part_sort_base})&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			-- Don&#039;t add a &#039;*fixed with&#039; category if the link term is empty or is in a different language.&lt;br /&gt;
			if link_term and link_term ~= &amp;quot;&amp;quot; and not part.part_lang then&lt;br /&gt;
				table.insert(categories, {cat = data.pos .. &amp;quot; &amp;quot; .. affix_type .. &amp;quot;ed with &amp;quot; ..&lt;br /&gt;
					make_entry_name_no_links(part.lang, link_term) .. (part.id and &amp;quot; (&amp;quot; .. part.id .. &amp;quot;)&amp;quot; or &amp;quot;&amp;quot;),&lt;br /&gt;
					sort_key = part_sort, sort_base = part_sort_base})&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			whole_words = whole_words + 1&lt;br /&gt;
&lt;br /&gt;
			if whole_words == 2 then&lt;br /&gt;
				is_affix_or_compound = true&lt;br /&gt;
				table.insert(categories, &amp;quot;compound &amp;quot; .. data.pos)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Make sure there was either an affix or a compound (two or more regular terms).&lt;br /&gt;
	if not is_affix_or_compound then&lt;br /&gt;
		error(&amp;quot;The parameters did not include any affixes, and the term is not a compound. Please provide at least one affix.&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if data.surface_analysis then&lt;br /&gt;
		local text = &amp;quot;by &amp;quot; .. glossary_link(&amp;quot;surface analysis&amp;quot;) .. &amp;quot;, &amp;quot;&lt;br /&gt;
		if not data.nocap then&lt;br /&gt;
			text = require(&amp;quot;Module:string utilities&amp;quot;).ucfirst(text)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		table.insert(text_sections, 1, text)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	table.insert(text_sections, export.concat_parts(data.lang, parts_formatted, categories, data.nocat, data.sort_key,&lt;br /&gt;
		data.lit, data.force_cat))&lt;br /&gt;
	return table.concat(text_sections)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function export.show_surface_analysis(data)&lt;br /&gt;
	data.surface_analysis = true&lt;br /&gt;
	return export.show_affix(data)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Implementation of {{compound}}.&lt;br /&gt;
&lt;br /&gt;
WARNING: This destructively modifies both `data` and the individual structures within `.parts`.&lt;br /&gt;
]=]&lt;br /&gt;
function export.show_compound(data)&lt;br /&gt;
	data.pos = data.pos or default_pos&lt;br /&gt;
	data.pos = pluralize(data.pos)&lt;br /&gt;
&lt;br /&gt;
	local text_sections, categories = process_compound_type(data.type, data.nocap, data.notext, #data.parts &amp;gt; 0)&lt;br /&gt;
&lt;br /&gt;
	local parts_formatted = {}&lt;br /&gt;
	table.insert(categories, &amp;quot;compound &amp;quot; .. data.pos)&lt;br /&gt;
&lt;br /&gt;
	-- Make links out of all the parts&lt;br /&gt;
	local whole_words = 0&lt;br /&gt;
	for i, part in ipairs(data.parts) do&lt;br /&gt;
		canonicalize_part(part, data.lang, data.sc)&lt;br /&gt;
		-- Determine affix type and get link and display terms (see text at top of file).&lt;br /&gt;
		local affix_type, link_term, display_term = export.parse_term_for_affixes(part.term, part.lang, part.sc,&lt;br /&gt;
			nil, not part.alt, nil, part.id)&lt;br /&gt;
&lt;br /&gt;
		-- If the term is an infix, recognize it as such (which means e.g. that we will display the term without&lt;br /&gt;
		-- hyphens for East Asian languages). Otherwise, ignore the fact that it looks like an affix and display as&lt;br /&gt;
		-- specified in the template (but pay attention to the detected affix type for certain tracking purposes).&lt;br /&gt;
		if affix_type == &amp;quot;infix&amp;quot; then&lt;br /&gt;
			-- If link_term is an empty string, either a bare ^ was specified or an empty term was used along with&lt;br /&gt;
			-- inline modifiers. The intention in either case is not to link the term. Don&#039;t add a &#039;*fixed with&#039;&lt;br /&gt;
			-- category in this case, or if the term is in a different language.&lt;br /&gt;
			-- If part.alt would be the same as part.term, make it nil, so that it isn&#039;t erroneously tracked as being&lt;br /&gt;
			-- redundant alt text.&lt;br /&gt;
			if link_term and link_term ~= &amp;quot;&amp;quot; and not part.part_lang then&lt;br /&gt;
				table.insert(categories, {cat = data.pos .. &amp;quot; interfixed with &amp;quot; .. make_entry_name_no_links(part.lang,&lt;br /&gt;
					link_term), sort_key = part.sort or data.sort_key})&lt;br /&gt;
			end&lt;br /&gt;
			part.term = link_term ~= &amp;quot;&amp;quot; and link_term or nil&lt;br /&gt;
			part.alt = part.alt or (display_term ~= link_term and display_term) or nil&lt;br /&gt;
		else&lt;br /&gt;
			if affix_type then&lt;br /&gt;
				local langcode = data.lang:getCode()&lt;br /&gt;
				-- If `data.lang` is an etymology-only language, track both using its code and its full parent&#039;s code.&lt;br /&gt;
				track { affix_type, affix_type .. &amp;quot;/lang/&amp;quot; .. langcode }&lt;br /&gt;
				local full_langcode = data.lang:getNonEtymologicalCode()&lt;br /&gt;
				if langcode ~= full_langcode then&lt;br /&gt;
					track(affix_type .. &amp;quot;/lang/&amp;quot; .. full_langcode)&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				whole_words = whole_words + 1&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		table.insert(parts_formatted, export.link_term(part, data))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if whole_words == 1 then&lt;br /&gt;
		track(&amp;quot;one whole word&amp;quot;)&lt;br /&gt;
	elseif whole_words == 0 then&lt;br /&gt;
		track(&amp;quot;looks like confix&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	table.insert(text_sections, export.concat_parts(data.lang, parts_formatted, categories, data.nocat, data.sort_key,&lt;br /&gt;
		data.lit, data.force_cat))&lt;br /&gt;
	return table.concat(text_sections)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Implementation of {{blend}}, {{univerbation}} and similar &amp;quot;compound-like&amp;quot; templates.&lt;br /&gt;
&lt;br /&gt;
WARNING: This destructively modifies both `data` and the individual structures within `.parts`.&lt;br /&gt;
]=]&lt;br /&gt;
function export.show_compound_like(data)&lt;br /&gt;
	local parts_formatted = {}&lt;br /&gt;
	local categories = {}&lt;br /&gt;
&lt;br /&gt;
	if data.cat then&lt;br /&gt;
		table.insert(categories, data.cat)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Make links out of all the parts&lt;br /&gt;
	for i, part in ipairs(data.parts) do&lt;br /&gt;
		canonicalize_part(part, data.lang, data.sc)&lt;br /&gt;
		table.insert(parts_formatted, export.link_term(part, data))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local text_sections = {}&lt;br /&gt;
	if data.text then&lt;br /&gt;
		table.insert(text_sections, data.text)&lt;br /&gt;
	end&lt;br /&gt;
	if #data.parts &amp;gt; 0 and data.oftext then&lt;br /&gt;
		table.insert(text_sections, &amp;quot; &amp;quot;)&lt;br /&gt;
		table.insert(text_sections, data.oftext)&lt;br /&gt;
		table.insert(text_sections, &amp;quot; &amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	table.insert(text_sections, export.concat_parts(data.lang, parts_formatted, categories, data.nocat, data.sort_key,&lt;br /&gt;
		data.lit, data.force_cat))&lt;br /&gt;
	return table.concat(text_sections)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Make `part` (a structure holding information on an affix part) into an affix of type `affix_type`, and apply any&lt;br /&gt;
relevant affix mappings. For example, if the desired affix type is &amp;quot;suffix&amp;quot;, this will (in general) add a hyphen onto&lt;br /&gt;
the beginning of the term, alt, tr and ts components of the part if not already present. The hyphen that&#039;s added is the&lt;br /&gt;
&amp;quot;display hyphen&amp;quot; (see above) and may be script-specific. (In the case of East Asian scripts, the display hyphen is an&lt;br /&gt;
empty string whereas the template hyphen is the regular hyphen, meaning that any regular hyphen at the beginning of the&lt;br /&gt;
part will be effectively removed.) `lang` and `sc` hold overall language and script objects.&lt;br /&gt;
&lt;br /&gt;
Note that this also applies any language-specific affix mappings, so that e.g. if the language is Finnish and the user&lt;br /&gt;
specified [[Wiktionary:-käs|-käs]] in the affix and didn&#039;t specify an .alt value, `part.term` will contain [[Wiktionary:-kas|-kas]] and `part.alt` will&lt;br /&gt;
contain [[Wiktionary:-käs|-käs]].&lt;br /&gt;
&lt;br /&gt;
This function is used by the &amp;quot;legacy&amp;quot; templates ({{tl|prefix}}, {{tl|suffix}}, {{tl|confix}}, etc.) where the nature of&lt;br /&gt;
the affix is specified by the template itself rather than auto-determined from the affix, as is the case with&lt;br /&gt;
{{tl|affix}}.&lt;br /&gt;
&lt;br /&gt;
WARNING: This destructively modifies `part`.&lt;br /&gt;
]=]&lt;br /&gt;
local function make_part_into_affix(part, lang, sc, affix_type)&lt;br /&gt;
	canonicalize_part(part, lang, sc)&lt;br /&gt;
	local link_term, display_term = export.make_affix(part.term, part.lang, part.sc, affix_type, not part.alt, nil, part.id)&lt;br /&gt;
	part.term = link_term&lt;br /&gt;
	-- When we don&#039;t specify `do_affix_mapping` to make_affix(), link and display terms (first and second retvals of&lt;br /&gt;
	-- make_affix()) are the same.&lt;br /&gt;
	-- If part.alt would be the same as part.term, make it nil, so that it isn&#039;t erroneously tracked as being&lt;br /&gt;
	-- redundant alt text.&lt;br /&gt;
	part.alt = part.alt and export.make_affix(part.alt, part.lang, part.sc, affix_type) or (display_term ~= link_term and display_term) or nil&lt;br /&gt;
	local Latn = require(&amp;quot;Module:scripts&amp;quot;).getByCode(&amp;quot;Latn&amp;quot;)&lt;br /&gt;
	part.tr = export.make_affix(part.tr, part.lang, Latn, affix_type)&lt;br /&gt;
	part.ts = export.make_affix(part.ts, part.lang, Latn, affix_type)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function track_wrong_affix_type(template, part, expected_affix_type)&lt;br /&gt;
	if part then&lt;br /&gt;
		local affix_type = export.parse_term_for_affixes(part.term, part.lang, part.sc)&lt;br /&gt;
		if affix_type ~= expected_affix_type then&lt;br /&gt;
			local part_name = expected_affix_type or &amp;quot;base&amp;quot;&lt;br /&gt;
			local langcode = part.lang:getCode()&lt;br /&gt;
			local full_langcode = part.lang:getNonEtymologicalCode()&lt;br /&gt;
			require(&amp;quot;Module:debug/track&amp;quot;) {&lt;br /&gt;
				template,&lt;br /&gt;
				template .. &amp;quot;/&amp;quot; .. part_name,&lt;br /&gt;
				template .. &amp;quot;/&amp;quot; .. part_name .. &amp;quot;/&amp;quot; .. (affix_type or &amp;quot;none&amp;quot;),&lt;br /&gt;
				template .. &amp;quot;/&amp;quot; .. part_name .. &amp;quot;/&amp;quot; .. (affix_type or &amp;quot;none&amp;quot;) .. &amp;quot;/lang/&amp;quot; .. langcode&lt;br /&gt;
			}&lt;br /&gt;
			-- If `part.lang` is an etymology-only language, track both using its code and its full parent&#039;s code.&lt;br /&gt;
			if full_langcode ~= langcode then&lt;br /&gt;
				require(&amp;quot;Module:debug/track&amp;quot;)(&lt;br /&gt;
					template .. &amp;quot;/&amp;quot; .. part_name .. &amp;quot;/&amp;quot; .. (affix_type or &amp;quot;none&amp;quot;) .. &amp;quot;/lang/&amp;quot; .. full_langcode&lt;br /&gt;
				)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function insert_affix_category(categories, pos, affix_type, part, sort_key, sort_base)&lt;br /&gt;
	-- Don&#039;t add a &#039;*fixed with&#039; category if the link term is empty or is in a different language.&lt;br /&gt;
	if part.term and not part.part_lang then&lt;br /&gt;
		local cat = pos .. &amp;quot; &amp;quot; .. affix_type .. &amp;quot;ed with &amp;quot; .. make_entry_name_no_links(part.lang, part.term) ..&lt;br /&gt;
			(part.id and &amp;quot; (&amp;quot; .. part.id .. &amp;quot;)&amp;quot; or &amp;quot;&amp;quot;)&lt;br /&gt;
		if sort_key or sort_base then&lt;br /&gt;
			table.insert(categories, {cat = cat, sort_key = sort_key, sort_base = sort_base})&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(categories, cat)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Implementation of {{circumfix}}.&lt;br /&gt;
&lt;br /&gt;
WARNING: This destructively modifies both `data` and `.prefix`, `.base` and `.suffix`.&lt;br /&gt;
]=]&lt;br /&gt;
function export.show_circumfix(data)&lt;br /&gt;
	data.pos = data.pos or default_pos&lt;br /&gt;
	data.pos = pluralize(data.pos)&lt;br /&gt;
&lt;br /&gt;
	canonicalize_part(data.base, data.lang, data.sc)&lt;br /&gt;
	-- Hyphenate the affixes and apply any affix mappings.&lt;br /&gt;
	make_part_into_affix(data.prefix, data.lang, data.sc, &amp;quot;prefix&amp;quot;)&lt;br /&gt;
	make_part_into_affix(data.suffix, data.lang, data.sc, &amp;quot;suffix&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	track_wrong_affix_type(&amp;quot;circumfix&amp;quot;, data.prefix, &amp;quot;prefix&amp;quot;)&lt;br /&gt;
	track_wrong_affix_type(&amp;quot;circumfix&amp;quot;, data.base, nil)&lt;br /&gt;
	track_wrong_affix_type(&amp;quot;circumfix&amp;quot;, data.suffix, &amp;quot;suffix&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	-- Create circumfix term.&lt;br /&gt;
	local circumfix = nil&lt;br /&gt;
&lt;br /&gt;
	if data.prefix.term and data.suffix.term then&lt;br /&gt;
		circumfix = data.prefix.term .. &amp;quot; &amp;quot; .. data.suffix.term&lt;br /&gt;
		data.prefix.alt = data.prefix.alt or data.prefix.term&lt;br /&gt;
		data.suffix.alt = data.suffix.alt or data.suffix.term&lt;br /&gt;
		data.prefix.term = circumfix&lt;br /&gt;
		data.suffix.term = circumfix&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Make links out of all the parts.&lt;br /&gt;
	local parts_formatted = {}&lt;br /&gt;
	local categories = {}&lt;br /&gt;
	local sort_base&lt;br /&gt;
	if data.base.term then&lt;br /&gt;
		sort_base = make_entry_name_no_links(data.base.lang, data.base.term)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	table.insert(parts_formatted, export.link_term(data.prefix, data))&lt;br /&gt;
	table.insert(parts_formatted, export.link_term(data.base, data))&lt;br /&gt;
	table.insert(parts_formatted, export.link_term(data.suffix, data))&lt;br /&gt;
&lt;br /&gt;
	-- Insert the categories, but don&#039;t add a &#039;*fixed with&#039; category if the link term is in a different language.&lt;br /&gt;
	if not data.prefix.part_lang then&lt;br /&gt;
		table.insert(categories, {cat=data.pos .. &amp;quot; circumfixed with &amp;quot; .. make_entry_name_no_links(data.prefix.lang,&lt;br /&gt;
			circumfix), sort_key=data.sort_key, sort_base=sort_base})&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return export.concat_parts(data.lang, parts_formatted, categories, data.nocat, data.sort_key, data.lit,&lt;br /&gt;
		data.force_cat)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Implementation of {{confix}}.&lt;br /&gt;
&lt;br /&gt;
WARNING: This destructively modifies both `data` and `.prefix`, `.base` and `.suffix`.&lt;br /&gt;
]=]&lt;br /&gt;
function export.show_confix(data)&lt;br /&gt;
	data.pos = data.pos or default_pos&lt;br /&gt;
	data.pos = pluralize(data.pos)&lt;br /&gt;
&lt;br /&gt;
	canonicalize_part(data.base, data.lang, data.sc)&lt;br /&gt;
	-- Hyphenate the affixes and apply any affix mappings.&lt;br /&gt;
	make_part_into_affix(data.prefix, data.lang, data.sc, &amp;quot;prefix&amp;quot;)&lt;br /&gt;
	make_part_into_affix(data.suffix, data.lang, data.sc, &amp;quot;suffix&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	track_wrong_affix_type(&amp;quot;confix&amp;quot;, data.prefix, &amp;quot;prefix&amp;quot;)&lt;br /&gt;
	track_wrong_affix_type(&amp;quot;confix&amp;quot;, data.base, nil)&lt;br /&gt;
	track_wrong_affix_type(&amp;quot;confix&amp;quot;, data.suffix, &amp;quot;suffix&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	-- Make links out of all the parts.&lt;br /&gt;
	local parts_formatted = {}&lt;br /&gt;
	local prefix_sort_base&lt;br /&gt;
	if data.base and data.base.term then&lt;br /&gt;
		prefix_sort_base = make_entry_name_no_links(data.base.lang, data.base.term)&lt;br /&gt;
	elseif data.suffix.term then&lt;br /&gt;
		prefix_sort_base = make_entry_name_no_links(data.suffix.lang, data.suffix.term)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Insert the categories and parts.&lt;br /&gt;
	local categories = {}&lt;br /&gt;
&lt;br /&gt;
	table.insert(parts_formatted, export.link_term(data.prefix, data))&lt;br /&gt;
	insert_affix_category(categories, data.pos, &amp;quot;prefix&amp;quot;, data.prefix, data.sort_key, prefix_sort_base)&lt;br /&gt;
&lt;br /&gt;
	if data.base then&lt;br /&gt;
		table.insert(parts_formatted, export.link_term(data.base, data))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	table.insert(parts_formatted, export.link_term(data.suffix, data))&lt;br /&gt;
	-- FIXME, should we be specifying a sort base here?&lt;br /&gt;
	insert_affix_category(categories, data.pos, &amp;quot;suffix&amp;quot;, data.suffix)&lt;br /&gt;
&lt;br /&gt;
	return export.concat_parts(data.lang, parts_formatted, categories, data.nocat, data.sort_key, data.lit,&lt;br /&gt;
		data.force_cat)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Implementation of {{infix}}.&lt;br /&gt;
&lt;br /&gt;
WARNING: This destructively modifies both `data` and `.base` and `.infix`.&lt;br /&gt;
]=]&lt;br /&gt;
function export.show_infix(data)&lt;br /&gt;
	data.pos = data.pos or default_pos&lt;br /&gt;
	data.pos = pluralize(data.pos)&lt;br /&gt;
&lt;br /&gt;
	canonicalize_part(data.base, data.lang, data.sc)&lt;br /&gt;
	-- Hyphenate the affixes and apply any affix mappings.&lt;br /&gt;
	make_part_into_affix(data.infix, data.lang, data.sc, &amp;quot;infix&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	track_wrong_affix_type(&amp;quot;infix&amp;quot;, data.base, nil)&lt;br /&gt;
	track_wrong_affix_type(&amp;quot;infix&amp;quot;, data.infix, &amp;quot;infix&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	-- Make links out of all the parts.&lt;br /&gt;
	local parts_formatted = {}&lt;br /&gt;
	local categories = {}&lt;br /&gt;
&lt;br /&gt;
	table.insert(parts_formatted, export.link_term(data.base, data))&lt;br /&gt;
	table.insert(parts_formatted, export.link_term(data.infix, data))&lt;br /&gt;
&lt;br /&gt;
	-- Insert the categories.&lt;br /&gt;
	-- FIXME, should we be specifying a sort base here?&lt;br /&gt;
	insert_affix_category(categories, data.pos, &amp;quot;infix&amp;quot;, data.infix)&lt;br /&gt;
&lt;br /&gt;
	return export.concat_parts(data.lang, parts_formatted, categories, data.nocat, data.sort_key, data.lit,&lt;br /&gt;
		data.force_cat)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Implementation of {{prefix}}.&lt;br /&gt;
&lt;br /&gt;
WARNING: This destructively modifies both `data` and the structures within `.prefixes`, as well as `.base`.&lt;br /&gt;
]=]&lt;br /&gt;
function export.show_prefix(data)&lt;br /&gt;
	data.pos = data.pos or default_pos&lt;br /&gt;
	data.pos = pluralize(data.pos)&lt;br /&gt;
&lt;br /&gt;
	canonicalize_part(data.base, data.lang, data.sc)&lt;br /&gt;
	-- Hyphenate the affixes and apply any affix mappings.&lt;br /&gt;
	for i, prefix in ipairs(data.prefixes) do&lt;br /&gt;
		make_part_into_affix(prefix, data.lang, data.sc, &amp;quot;prefix&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	for i, prefix in ipairs(data.prefixes) do&lt;br /&gt;
		track_wrong_affix_type(&amp;quot;prefix&amp;quot;, prefix, &amp;quot;prefix&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	track_wrong_affix_type(&amp;quot;prefix&amp;quot;, data.base, nil)&lt;br /&gt;
&lt;br /&gt;
	-- Make links out of all the parts.&lt;br /&gt;
	local parts_formatted = {}&lt;br /&gt;
	local first_sort_base = nil&lt;br /&gt;
	local categories = {}&lt;br /&gt;
&lt;br /&gt;
	if data.prefixes[2] then&lt;br /&gt;
		first_sort_base = make_entry_name_no_links(data.prefixes[2].lang, data.prefixes[2].term)&lt;br /&gt;
	elseif data.base then&lt;br /&gt;
		first_sort_base = make_entry_name_no_links(data.base.lang, data.base.term)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	for i, prefix in ipairs(data.prefixes) do&lt;br /&gt;
		table.insert(parts_formatted, export.link_term(prefix, data))&lt;br /&gt;
		insert_affix_category(categories, data.pos, &amp;quot;prefix&amp;quot;, prefix, data.sort_key, i == 1 and first_sort_base or nil)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if data.base then&lt;br /&gt;
		table.insert(parts_formatted, export.link_term(data.base, data))&lt;br /&gt;
	else&lt;br /&gt;
		table.insert(parts_formatted, &amp;quot;&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return export.concat_parts(data.lang, parts_formatted, categories, data.nocat, data.sort_key, data.lit,&lt;br /&gt;
		data.force_cat)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Implementation of {{suffix}}.&lt;br /&gt;
&lt;br /&gt;
WARNING: This destructively modifies both `data` and the structures within `.suffixes`, as well as `.base`.&lt;br /&gt;
]=]&lt;br /&gt;
function export.show_suffix(data)&lt;br /&gt;
	local categories = {}&lt;br /&gt;
&lt;br /&gt;
	data.pos = data.pos or default_pos&lt;br /&gt;
	data.pos = pluralize(data.pos)&lt;br /&gt;
&lt;br /&gt;
	canonicalize_part(data.base, data.lang, data.sc)&lt;br /&gt;
	-- Hyphenate the affixes and apply any affix mappings.&lt;br /&gt;
	for i, suffix in ipairs(data.suffixes) do&lt;br /&gt;
		make_part_into_affix(suffix, data.lang, data.sc, &amp;quot;suffix&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	track_wrong_affix_type(&amp;quot;suffix&amp;quot;, data.base, nil)&lt;br /&gt;
	for i, suffix in ipairs(data.suffixes) do&lt;br /&gt;
		track_wrong_affix_type(&amp;quot;suffix&amp;quot;, suffix, &amp;quot;suffix&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Make links out of all the parts.&lt;br /&gt;
	local parts_formatted = {}&lt;br /&gt;
&lt;br /&gt;
	if data.base then&lt;br /&gt;
		table.insert(parts_formatted, export.link_term(data.base, data))&lt;br /&gt;
	else&lt;br /&gt;
		table.insert(parts_formatted, &amp;quot;&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	for i, suffix in ipairs(data.suffixes) do&lt;br /&gt;
		table.insert(parts_formatted, export.link_term(suffix, data))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Insert the categories.&lt;br /&gt;
	for i, suffix in ipairs(data.suffixes) do&lt;br /&gt;
		-- FIXME, should we be specifying a sort base here?&lt;br /&gt;
		insert_affix_category(categories, data.pos, &amp;quot;suffix&amp;quot;, suffix)&lt;br /&gt;
&lt;br /&gt;
		if suffix.pos and rfind(suffix.pos, &amp;quot;patronym&amp;quot;) then&lt;br /&gt;
			table.insert(categories, &amp;quot;patronymics&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return export.concat_parts(data.lang, parts_formatted, categories, data.nocat, data.sort_key, data.lit,&lt;br /&gt;
		data.force_cat)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return export&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tlist-fight&amp;diff=581</id>
		<title>Template:Tlist-fight</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tlist-fight&amp;diff=581"/>
		<updated>2026-04-10T07:29:55Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{trans-top|name=Tlist-fight|{{#vardefineecho:def|engage in combat}} (fight)}}&lt;br /&gt;
* {{t|asta|ozvilívagho}}&lt;br /&gt;
* {{t|chak|zama}}&lt;br /&gt;
* {{t|doth|lajat}}&lt;br /&gt;
* {{t|henl|dreith}}&lt;br /&gt;
* {{t|hval|vīlībagon}}&lt;br /&gt;
* {{t|irat|shvoshaktu}}&lt;br /&gt;
* {{t|kinu|t&#039;ovet}}&lt;br /&gt;
* {{t|meer|ozwiliwa}}, {{t+|meer|shmoncha}}&lt;br /&gt;
* {{t|munj|stawa}}&lt;br /&gt;
* {{t|ravk|ludad}}&lt;br /&gt;
* {{t|sang|k&#039;utkho}}&lt;br /&gt;
* {{t|shiv|geilihi}}&lt;br /&gt;
* {{t|sond|os}}&lt;br /&gt;
* {{t|trig|gon|gon daun}}&lt;br /&gt;
* {{t|vzaa|cafuuþonoh}}&lt;br /&gt;
* {{t|zeme|adawa}}&lt;br /&gt;
{{trans-bottom}}&amp;lt;includeonly&amp;gt;[[Category:Sense:{{ucfirst:{{#var:def}}}}]]&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;[[Category:Sense templates|fight]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tracking/inflection_of/tag/sg&amp;diff=579</id>
		<title>Template:Tracking/inflection of/tag/sg</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tracking/inflection_of/tag/sg&amp;diff=579"/>
		<updated>2026-04-10T07:29:54Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;==Subpages==&lt;br /&gt;
{{Special:PrefixIndex/{{FULLPAGENAME}}/|stripprefix=1}}[[Category:Tracking templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tlist-hear&amp;diff=577</id>
		<title>Template:Tlist-hear</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tlist-hear&amp;diff=577"/>
		<updated>2026-04-10T07:29:54Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{trans-top|name=Tlist-hear|{{#vardefineecho:def|perceive with the ears}} (hear)}}&lt;br /&gt;
* {{t|asta|rývagho}}&lt;br /&gt;
* {{t|chak|mara}}&lt;br /&gt;
* {{t|doth|charat}}&lt;br /&gt;
* {{t|henl|veid}}&lt;br /&gt;
* {{t|hval|rȳbagon}}&lt;br /&gt;
* {{t|inha|varó}}&lt;br /&gt;
* {{t|irat|shosu}}&lt;br /&gt;
* {{t|meer|riwa}}&lt;br /&gt;
* {{t|meni|íì}}&lt;br /&gt;
* {{t|munj|ris}}&lt;br /&gt;
* {{t|noal|om}}&lt;br /&gt;
* {{t|sang|ghaina}}&lt;br /&gt;
* {{t|shiv|ytsihi}}&lt;br /&gt;
* {{t|sond|sut}}&lt;br /&gt;
* {{t|trig|sen|sen in}}&lt;br /&gt;
* {{t|voov|sil}}&lt;br /&gt;
* {{t|yuli|looship}}&lt;br /&gt;
{{trans-bottom}}&amp;lt;includeonly&amp;gt;[[Category:Sense:{{ucfirst:{{#var:def}}}}]]&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;[[Category:Sense templates|hear]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tracking/inflection_of/unknown/class_ix&amp;diff=575</id>
		<title>Template:Tracking/inflection of/unknown/class ix</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tracking/inflection_of/unknown/class_ix&amp;diff=575"/>
		<updated>2026-04-10T07:29:54Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;==Subpages==&lt;br /&gt;
{{Special:PrefixIndex/{{FULLPAGENAME}}/|stripprefix=1}}[[Category:Tracking templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tracking/inflection_of/tag/class_ix&amp;diff=573</id>
		<title>Template:Tracking/inflection of/tag/class ix</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tracking/inflection_of/tag/class_ix&amp;diff=573"/>
		<updated>2026-04-10T07:29:54Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;==Subpages==&lt;br /&gt;
{{Special:PrefixIndex/{{FULLPAGENAME}}/|stripprefix=1}}[[Category:Tracking templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tracking/inflection_of/unknown/first-person_subject&amp;diff=571</id>
		<title>Template:Tracking/inflection of/unknown/first-person subject</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tracking/inflection_of/unknown/first-person_subject&amp;diff=571"/>
		<updated>2026-04-10T07:29:54Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;==Subpages==&lt;br /&gt;
{{Special:PrefixIndex/{{FULLPAGENAME}}/|stripprefix=1}}[[Category:Tracking templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tracking/inflection_of/tag/first-person_subject&amp;diff=569</id>
		<title>Template:Tracking/inflection of/tag/first-person subject</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tracking/inflection_of/tag/first-person_subject&amp;diff=569"/>
		<updated>2026-04-10T07:29:54Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;==Subpages==&lt;br /&gt;
{{Special:PrefixIndex/{{FULLPAGENAME}}/|stripprefix=1}}[[Category:Tracking templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tracking/headword/pagename_spelling_mismatch/noal&amp;diff=567</id>
		<title>Template:Tracking/headword/pagename spelling mismatch/noal</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tracking/headword/pagename_spelling_mismatch/noal&amp;diff=567"/>
		<updated>2026-04-10T07:29:54Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;==Subpages==&lt;br /&gt;
{{Special:PrefixIndex/{{FULLPAGENAME}}/|stripprefix=1}}[[Category:Tracking templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Noalath-noun-decl&amp;diff=565</id>
		<title>Template:Noalath-noun-decl</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Noalath-noun-decl&amp;diff=565"/>
		<updated>2026-04-10T07:29:54Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
{{noalath-noun-decl|ini=t|med=o|fin=r|class=2}}&lt;br /&gt;
{{noalath-noun-decl|ini=h|med=avo|fin=k|class=2b}}&lt;br /&gt;
--&amp;gt;{| class=&amp;quot;wikitable&amp;lt;!-- mw-collapsible--&amp;gt;&amp;quot;&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; style=&amp;quot;width:100px; background-color: #00E8FF;&amp;quot;|&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center; background-color: #DDF8FF;&amp;quot;| Indefinite&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center; background-color: #DDF8FF;&amp;quot;| Definite&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align: center; background-color: #EFFFFF;&amp;quot;| {{#ifeq: {{{class}}} | 4b |Singulative|{{#ifeq: {{{class}}} | 4 |Singulative|Singular}} }}&lt;br /&gt;
! style=&amp;quot;text-align: center; background-color: #EFFFFF;&amp;quot;| {{#ifeq: {{{class}}} | 4b |Basic|{{#ifeq: {{{class}}} | 4 |Basic|Plural}} }}&lt;br /&gt;
! style=&amp;quot;text-align: center; background-color: #EFFFFF;&amp;quot;| {{#ifeq: {{{class}}} | 4b |Singulative|{{#ifeq: {{{class}}} | 4 |Singulative|Singular}} }}&lt;br /&gt;
! style=&amp;quot;text-align: center; background-color: #EFFFFF;&amp;quot;| {{#ifeq: {{{class}}} | 4b |Basic|{{#ifeq: {{{class}}} | 4 |Basic|Plural}} }}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; background-color: #DDF8FF;&amp;quot;| &#039;&#039;&#039;Nominative&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[{{{ini}}}{{{med}}}{{#ifeq: {{{class}}} | 4b |{{#switch: {{{fin}}} | sh = ha | ch = sha | f | v | th | V | Th | h = | p = fa | b = va | t = tha | d = dha | s = ha | j = zha | k = ha | g = ha | y = zha | r = ra | l = la | m = ma | n = na | {{{fin}}}a }}ch |{{#ifeq: {{{class}}} | 4 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = ach | {{{fin}}}ach }} | {{{fin}}} }} }}]]&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[{{#ifeq: {{{class}}} | 4b | {{{ini}}}{{{med}}}{{{fin}}} | {{#ifeq: {{{class}}} | 4 | {{{ini}}}{{{med}}}{{{fin}}} | {{{ini}}}{{{med}}}{{#ifeq: {{{class}}} | 1b |{{#vardefineecho:ymutfin|{{#switch: {{{fin}}} | f = y | v = y | t = ch | d = j  | th = sh | s = sh | k = ch | g = j | h = sh | r = zh | l = y | n = ny | = y | {{{fin}}} }} }}|{{#ifeq: {{{class}}} | 1 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = {{{fin}}} | {{{fin}}}i }} |{{#ifeq: {{{class}}} | 3b |{{#switch: {{{fin}}} | f = y | v = y | t = ch | d = j  | th = sh | s = sh | k = ch | g = j | h = sh | r = zh | l = y | n = ny | = y | {{{fin}}} }}ith|{{#ifeq: {{{class}}} | 3 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = a | {{{fin}}} }}ith |{{#ifeq: {{{class}}} | 5 | {{#switch: {{{fin}}} | a = azh | e = ezh | i = izh | u = uzh | o = ozh | ü = üzh | ö = özh | {{{fin}}}i }}|{{#ifeq: {{{class}}} | 2b | {{#vardefineecho:vmutfin| {{#switch: {{{fin}}} | sh = ha | ch = sha | f | v | th | h = | p = fa | b = va | t = tha | d = dha | s = ha | y | j = zha | k | g = ha | {{{fin}}}a }} }} |{{{fin}}}{{#vardefineecho:fina|{{#switch: {{{fin}}} | a | e | i | o | u | ü | ö = | a }} }} }} }} }} }} }} }} }} }}]]&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[u]] [[{{#vardefineecho:vmutini|{{#switch: {{{ini}}} | sh = h | ch = sh | f | v | th | V | Th | h = y | p = f | b = v | t = th | d = dh | s = h | j = zh | k = h | G = G | g = h | y = zh | r = r | l = l | m = m | n = n | Sh = Sh | O = Yo | A = Ya | y{{{ini}}} }} }}{{{med}}}{{#ifeq: {{{class}}} | 4b |{{#switch: {{{fin}}} | sh = ha | ch = sha | f | v | th | V | Th | h = | p = fa | b = va | t = tha | d = dha | s = ha | j = zha | k = ha | g = ha | y = zha | r = ra | l = la | m = ma | n = na | {{{fin}}}a }}ch|{{#ifeq: {{{class}}} | 4 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = ach | {{{fin}}}ach }} | {{{fin}}} }} }}]]&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[u]] [[{{#ifeq: {{{class}}} | 4b | {{#var:vmutini}}{{{med}}}{{{fin}}} | {{#ifeq: {{{class}}} | 4 | {{#var:vmutini}}{{{med}}}{{{fin}}} |{{#var:vmutini}}{{{med}}}{{#ifeq: {{{class}}} | 1b |{{#var:ymutfin}}|{{#ifeq: {{{class}}} | 1 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = {{{fin}}} | {{{fin}}}i }} |{{#ifeq: {{{class}}} | 3b |{{#switch: {{{fin}}} | f = y | v = y | t = ch | d = j  | th = sh | s = sh | k = ch | G = G | g = j | h = sh | r = zh | l = y | n = ny | = y | {{{fin}}} }}ith|{{#ifeq: {{{class}}} | 3 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = a | {{{fin}}} }}ith |{{#ifeq: {{{class}}} | 5 | {{#switch: {{{fin}}} | a = azh | e = ezh | i = izh | u = uzh | o = ozh | ü = üzh | ö = özh | {{{fin}}}i }}|{{#ifeq: {{{class}}} | 2b |{{#var:vmutfin}}|{{{fin}}}{{#var:fina}} }} }} }} }} }} }} }} }}]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; background-color: #DDF8FF;&amp;quot;| &#039;&#039;&#039;Objective&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[{{#vardefineecho:ymutini|{{#switch: {{{ini}}} | f = y | v = y | t = ch | d = j  | th = sh | s = sh | k = ch | g = j | h = sh | r = zh | l = y | n = ny | = y | {{{ini}}} }} }}{{{med}}}{{#ifeq: {{{class}}} | 4b |{{#switch: {{{fin}}} | sh = ha | ch = sha | f | v | th | V | Th | h = | p = fa | b = va | t = tha | d = dha | s = ha | j = zha | k = ha | g = ha | y = zha | r = ra | l = la | m = ma | n = na | {{{fin}}}a }}ch |{{#ifeq: {{{class}}} | 4 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = ach | {{{fin}}}ach }} | {{{fin}}} }} }}]]&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[{{#ifeq: {{{class}}} | 4b | {{#var:ymutini}}{{{med}}}{{{fin}}} | {{#ifeq: {{{class}}} | 4 | {{#var:ymutini}}{{{med}}}{{{fin}}} | {{#var:ymutini}}{{{med}}}{{#ifeq: {{{class}}} | 1b |{{#var:ymutfin}}ik|{{#ifeq: {{{class}}} | 1 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = a | {{{fin}}} }}ik |{{#ifeq: {{{class}}} | 3b |{{#switch: {{{fin}}} | f = y | v = y | t = ch | d = j  | th = sh | s = sh | k = ch | g = j | h = sh | r = zh | l = y | n = ny | = y | {{{fin}}} }}ith|{{#ifeq: {{{class}}} | 3 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = a | {{{fin}}} }}ith |{{#ifeq: {{{class}}} | 5 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = {{{fin}}}rik | {{{fin}}}ik }} |{{#ifeq: {{{class}}} | 2b |{{#var:vmutfin}}|{{{fin}}}{{#var:fina}} }}n }} }} }} }} }} }} }}]]&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[ü]] [[{{#vardefineecho:ymutinidef|{{#switch: {{{ini}}} | f = y | v = y | t = ch | d = j  | th = sh | s = sh | k = ch | G = G | g = j | h = sh | r = zh | l = y | n = ny | m = m | y = y | j = j | sh = sh | ch = ch | p = p | b = b | O = Yo | A = Ya | V = Y | Th = Sh | Sh = Sh | = y | y{{{ini}}} }} }}{{{med}}}{{#ifeq: {{{class}}} | 4b |{{#switch: {{{fin}}} | sh = ha | ch = sha | f | v | th | V | Th | h = | p = fa | b = va | t = tha | d = dha | s = ha | j = zha | k = ha | g = ha | y = zha | r = ra | l = la | m = ma | n = na | {{{fin}}}a }}ch |{{#ifeq: {{{class}}} | 4 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = ach | {{{fin}}}ach }} | {{{fin}}} }} }}]]&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[ü]] [[{{#ifeq: {{{class}}} | 4b | {{#var:ymutini}}{{{med}}}{{{fin}}} | {{#ifeq: {{{class}}} | 4 | {{#var:ymutini}}{{{med}}}{{{fin}}} | {{#var:ymutinidef}}{{{med}}}{{#ifeq: {{{class}}} | 1b |{{#var:ymutfin}}ik|{{#ifeq: {{{class}}} | 3b |{{#switch: {{{fin}}} | f = y | v = y | t = ch | d = j  | th = sh | s = sh | k = ch | G = G | g = j | h = sh | r = zh | l = y | n = ny | = y | {{{fin}}} }}ith|{{#ifeq: {{{class}}} | 3 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = a | {{{fin}}} }}ith |{{#ifeq: {{{class}}} | 1 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = a | {{{fin}}} }}ik |{{#ifeq: {{{class}}} | 5 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = {{{fin}}}rik | {{{fin}}}ik }} |{{#ifeq: {{{class}}} | 2b |{{#var:vmutfin}}|{{{fin}}}{{#var:fina}} }}n}} }} }} }} }} }} }}]]&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: center; background-color: #DDF8FF;&amp;quot;| &#039;&#039;&#039;Genitive&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[{{#vardefineecho:nmutini|{{#switch: {{{ini}}} | p = b | b = m | f = p | v = b | t = d | d = n | th = t | s = ts | sh = ch | ch = j | j = ny | k = g | g = ng | h = | r = d | l = n | {{{ini}}} }} }}{{{med}}}{{#ifeq: {{{class}}} | 4b |{{#switch: {{{fin}}} | sh = ha | ch = sha | f | v | th | V | Th | h = | p = fa | b = va | t = tha | d = dha | s = ha | j = zha | k = ha | g = ha | y = zha | r = ra | l = la | m = ma | n = na | {{{fin}}}a }}ch |{{#ifeq: {{{class}}} | 4 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = ach | {{{fin}}}ach }} | {{{fin}}} }} }}]]&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[{{#var:nmutini}}{{{med}}}{{#ifeq: {{{class}}} | 1b |{{#switch: {{{fin}}} | sh = h | ch = sh | f | v | th | h = r | p = f | b = v | t = th | d = dh | s = h | j = zh | k = h | g = h | y = zh | {{{fin}}} }}a|{{#ifeq: {{{class}}} | 1 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = {{{fin}}} | {{{fin}}}a }} |{{#ifeq: {{{class}}} | 3b | {{#switch: {{{fin}}} | sh = ha | ch = sha | f | v | th | h = | p = fa | b = va | t = tha | d = dha | s = ha | y | j = zha | k | g = ha | {{{fin}}}a }}|{{#ifeq: {{{class}}} | 3 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = {{{fin}}} | {{{fin}}}a }} |{{#ifeq: {{{class}}} | 5 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = {{{fin}}} | {{{fin}}}a }} |{{#ifeq: {{{class}}} | 3b | {{#switch: {{{fin}}} | sh = ha | ch = sha | f | v | th | h = | p = fa | b = va | t = tha | d = dha | s = ha | y | j = zha | k | g = ha | {{{fin}}}a }} |{{#ifeq: {{{class}}} | 2b |{{#var:vmutfin}}|{{{fin}}}{{#var:fina}} }} }} }} }} }} }} }}]]&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[an]] [[{{#var:nmutini}}{{{med}}}{{#ifeq: {{{class}}} | 4b |{{#switch: {{{fin}}} | sh = ha | ch = sha | f | v | th | V | Th | h = | p = fa | b = va | t = tha | d = dha | s = ha | j = zha | k = ha | g = ha | y = zha | r = ra | l = la | m = ma | n = na | {{{fin}}}a }}ch |{{#ifeq: {{{class}}} | 4 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = ach | {{{fin}}}ach }} | {{{fin}}} }} }}]]&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[an]] [[{{#ifeq: {{{class}}} | 4b | {{#var:nmutini}}{{{med}}}{{{fin}}} | {{#ifeq: {{{class}}} | 4 | {{#var:nmutini}}{{{med}}}{{{fin}}} | {{#var:nmutini}}{{{med}}}{{#ifeq: {{{class}}} | 1b |{{#switch: {{{fin}}} | sh = h | ch = sh | f | v | th | h = r | p = f | b = v | t = th | d = dh | s = h | j = zh | k = h | g = h | y = zh | {{{fin}}} }}a|{{#ifeq: {{{class}}} | 1 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = {{{fin}}} | {{{fin}}}a }} |{{#ifeq: {{{class}}} | 3b | {{#switch: {{{fin}}} | sh = ha | ch = sha | f | v | th | h = | p = fa | b = va | t = tha | d = dha | s = ha | y | j = zha | k | g = ha | {{{fin}}}a }}|{{#ifeq: {{{class}}} | 3 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = {{{fin}}} | {{{fin}}}a }} |{{#ifeq: {{{class}}} | 5 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = {{{fin}}} | {{{fin}}}a }} |{{#ifeq: {{{class}}} | 3b | {{#switch: {{{fin}}} | sh = ha | ch = sha | f | v | th | h = | p = fa | b = va | t = tha | d = dha | s = ha | y | j = zha | k | g = ha | {{{fin}}}a }} |{{#ifeq: {{{class}}} | 2b |{{#var:vmutfin}}|{{{fin}}}{{#var:fina}} }} }} }} }} }} }} }} }} }}]]&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: center; background-color: #DDF8FF;&amp;quot;| &#039;&#039;&#039;Vocative&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;background-color: #CCCCCC;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[e]] [[{{#var:vmutini}}{{{med}}}{{#ifeq: {{{class}}} | 4b |{{#switch: {{{fin}}} | sh = ha | ch = sha | f | v | th | V | Th | h = | p = fa | b = va | t = tha | d = dha | s = ha | j = zha | k = ha | g = ha | y = zha | r = ra | l = la | m = ma | n = na | {{{fin}}}a }}ch|{{#ifeq: {{{class}}} | 4 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = ach | {{{fin}}}ach }} |{{#ifeq: {{{class}}} | 1b |{{#switch: {{{fin}}} | sh = h | ch = sh | f | v | th | h = r | p = f | b = v | t = th | d = dh | s = h | j = zh | k = h | g = h | y = zh | {{{fin}}} }}a|{{#ifeq: {{{class}}} | 1 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = {{{fin}}} | {{{fin}}}a }} |{{#ifeq: {{{class}}} | 5 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = {{{fin}}} | {{{fin}}}a }} |{{#ifeq: {{{class}}} | 3 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = {{{fin}}} | {{{fin}}}a }} |{{#ifeq: {{{class}}} | 3b | {{#switch: {{{fin}}} | sh = ha | ch = sha | f | v | th | h = | p = fa | b = va | t = tha | d = dha | s = ha | y | j = zha | k | g = ha | {{{fin}}}a }} |{{#ifeq: {{{class}}} | 2b |{{#var:vmutfin}}|{{{fin}}}{{#var:fina}} }} }} }} }} }} }} }} }}]]&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[e]] [[{{#ifeq: {{{class}}} | 4b | {{#var:vmutini}}{{{med}}}{{#switch: {{{fin}}} | sh = ha | ch = sha | f | v | th | h = | p = fa | b = va | t = tha | d = dha | s = ha | y | j = zha | k | g = ha | {{{fin}}}a }} | {{#ifeq: {{{class}}} | 4 | {{#var:vmutini}}{{{med}}}{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = {{{fin}}} | {{{fin}}}a }} | {{#var:vmutini}}{{{med}}}{{#ifeq: {{{class}}} | 1b |{{#var:ymutfin}}ik|{{#ifeq: {{{class}}} | 1 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = a | {{{fin}}} }}ik |{{#ifeq: {{{class}}} | 3b |{{#switch: {{{fin}}} | f = y | v = y | t = ch | d = j  | th = sh | s = sh | k = ch | g = j | h = sh | r = zh | l = y | n = ny | = y | {{{fin}}} }}ith|{{#ifeq: {{{class}}} | 3 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = a | {{{fin}}} }}ith |{{#ifeq: {{{class}}} | 5 |{{#switch: {{{fin}}} | a | e | i | u | ü | ö | o = {{{fin}}}zh | {{{fin}}}ik }} |{{#ifeq: {{{class}}} | 2b |{{#var:vmutfin}}|{{{fin}}}{{#var:fina}} }}n}} }} }} }} }} }} }}]]&lt;br /&gt;
|}&amp;lt;noinclude&amp;gt;[[Category:Noalath noun inflection-table templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Invis&amp;diff=563</id>
		<title>Template:Invis</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Invis&amp;diff=563"/>
		<updated>2026-04-10T07:29:54Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:normal; background-color:#fafafa;&amp;quot;|From an [[invisible proto-language]].&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| The etymology of this word comes from an [[invisible proto-language]]. If you&#039;re confident you know the etymology, feel free to add it, but reader beware should the etymology be added by someone other than the creator of the language!&lt;br /&gt;
|}&amp;lt;noinclude&amp;gt;[[Category:Maintenance templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tracking/inflection_of/unknown/class_vi&amp;diff=561</id>
		<title>Template:Tracking/inflection of/unknown/class vi</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tracking/inflection_of/unknown/class_vi&amp;diff=561"/>
		<updated>2026-04-10T07:29:54Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;==Subpages==&lt;br /&gt;
{{Special:PrefixIndex/{{FULLPAGENAME}}/|stripprefix=1}}[[Category:Tracking templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tracking/inflection_of/tag/class_vi&amp;diff=559</id>
		<title>Template:Tracking/inflection of/tag/class vi</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tracking/inflection_of/tag/class_vi&amp;diff=559"/>
		<updated>2026-04-10T07:29:54Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;==Subpages==&lt;br /&gt;
{{Special:PrefixIndex/{{FULLPAGENAME}}/|stripprefix=1}}[[Category:Tracking templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tlist-cut&amp;diff=557</id>
		<title>Template:Tlist-cut</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tlist-cut&amp;diff=557"/>
		<updated>2026-04-10T07:29:54Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{trans-top|name=Tlist-cut|{{#vardefineecho:def|incise or divide with a sharp instrument}} (cut)}}&lt;br /&gt;
* {{t|asta|néhtogho}}&lt;br /&gt;
* {{t|cast|adu}}&lt;br /&gt;
* {{t|chak|dimadha}}&lt;br /&gt;
* {{t|doth|rissat}}&lt;br /&gt;
* {{t|henl|kwys}}&lt;br /&gt;
* {{t|hval|nektogon}}&lt;br /&gt;
* {{t|irat|shektu}}&lt;br /&gt;
* {{t|meer|nyeta}}&lt;br /&gt;
* {{t|noal|lagus}}&lt;br /&gt;
* {{t|ravk|vrasad}}&lt;br /&gt;
* {{t|sang|mech&#039;in}}&lt;br /&gt;
* {{t|shiv|todhihi}}&lt;br /&gt;
* {{t|trig|kot|kot op}}&lt;br /&gt;
* {{t|vzaa|etsonoh}}&lt;br /&gt;
* {{t|veda|sun}}&lt;br /&gt;
{{trans-bottom}}&amp;lt;includeonly&amp;gt;[[Category:Sense:{{ucfirst:{{#var:def}}}}]]&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;[[Category:Sense templates|cut]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tlist-drink&amp;diff=555</id>
		<title>Template:Tlist-drink</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tlist-drink&amp;diff=555"/>
		<updated>2026-04-10T07:29:54Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{trans-top|name=Tlist-drink|{{#vardefineecho:def|ingest a liquid}} (drink)}}&lt;br /&gt;
* {{t|afat|pübe}}&lt;br /&gt;
* {{t|chak|zaiha}}&lt;br /&gt;
* {{t|doth|indelat}}&lt;br /&gt;
* {{t|fjer|güget}}&lt;br /&gt;
* {{t|gand|pul}}&lt;br /&gt;
* {{t|hval|mōzugon}}&lt;br /&gt;
* {{t|irat|shrazu}}, {{t+|irat|shekenyuze}} {{q|used for ingesting things in general}}&lt;br /&gt;
* {{t|kinu|zunet}}&lt;br /&gt;
* {{t|meer|mozo}}&lt;br /&gt;
* {{t|meni|lízù}}&lt;br /&gt;
* {{t|trig|drein|drein daun}}&lt;br /&gt;
* {{t|veda|pul}}&lt;br /&gt;
{{trans-bottom}}&amp;lt;includeonly&amp;gt;[[Category:Sense:{{ucfirst:{{#var:def}}}}]]&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;[[Category:Sense templates|drink]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tlist-come&amp;diff=553</id>
		<title>Template:Tlist-come</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tlist-come&amp;diff=553"/>
		<updated>2026-04-10T07:29:53Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{trans-top|name=Tlist-come|{{#vardefineecho:def|move nearer to or arrive at a point}} (come)}}&lt;br /&gt;
* {{t|asta|májigho}}&lt;br /&gt;
* {{t|cast|ronu}}&lt;br /&gt;
* {{t|chak|hura}}&lt;br /&gt;
* {{t|doth|jadat}}&lt;br /&gt;
* {{t|fjer|leyet}}&lt;br /&gt;
* {{t|gand|æg}}&lt;br /&gt;
* {{t|henl|keim}}&lt;br /&gt;
* {{t|hval|māzigon}}&lt;br /&gt;
* {{t|irat|shetusu}}&lt;br /&gt;
* {{t|kezh|tanagí}}&lt;br /&gt;
* {{t|kinu|luset}}&lt;br /&gt;
* {{t|meer|maye}}&lt;br /&gt;
* {{t|meni|&#039;èmé}}&lt;br /&gt;
* {{t|munj|&#039;in}}&lt;br /&gt;
* {{t|ovus|luo}}&lt;br /&gt;
* {{t|ravk|syalad}}&lt;br /&gt;
* {{t|rooz|kém}}&lt;br /&gt;
* {{t|sang|jaya}}&lt;br /&gt;
* {{t|shiv|ääfihi}}&lt;br /&gt;
* {{t|sond|dus}}&lt;br /&gt;
* {{t|trig|kom|kom op}}&lt;br /&gt;
* {{t|tsit|ráì}}&lt;br /&gt;
* {{t|veda|ag}}&lt;br /&gt;
* {{t|voov|git}}&lt;br /&gt;
* {{t|yuli|garrip}}&lt;br /&gt;
{{trans-bottom}}&amp;lt;includeonly&amp;gt;[[Category:Sense:{{ucfirst:{{#var:def}}}}]]&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;[[Category:Sense templates|come]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tlist-think&amp;diff=551</id>
		<title>Template:Tlist-think</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tlist-think&amp;diff=551"/>
		<updated>2026-04-10T07:29:53Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{trans-top|name=Tlist-think|{{#vardefineecho:def|ponder ideas}} (think)}}&lt;br /&gt;
* {{t|asta|odábagho}}&lt;br /&gt;
* {{t|bodz|rǝln}}&lt;br /&gt;
* {{t|chak|minaza}}&lt;br /&gt;
* {{t|doth|dirgat}}&lt;br /&gt;
* {{t|fjer|köpset}}&lt;br /&gt;
* {{t|henl|nik}}&lt;br /&gt;
* {{t|hval|otāpagon}}&lt;br /&gt;
* {{t|irat|shekesulu}}&lt;br /&gt;
* {{t|kezh|ale}}&lt;br /&gt;
* {{t|kinu|nevimet}}&lt;br /&gt;
* {{t|meer|odhava}}&lt;br /&gt;
* {{t|meni|pán}}&lt;br /&gt;
* {{t|ovus|ielie}}&lt;br /&gt;
* {{t|sang|kkhat&#039;a}}&lt;br /&gt;
* {{t|trig|fig|fig op}}&lt;br /&gt;
* {{t|veda|bim}}&lt;br /&gt;
* {{t|yuli|droomip}}&lt;br /&gt;
{{trans-bottom}}&amp;lt;includeonly&amp;gt;[[Category:Sense:{{ucfirst:{{#var:def}}}}]]&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;[[Category:Sense templates|think]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Enga-verb-conj&amp;diff=549</id>
		<title>Template:Enga-verb-conj</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Enga-verb-conj&amp;diff=549"/>
		<updated>2026-04-10T07:29:53Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;background-color:#f0f0f0;border-collapse:separate;border-spacing:2px;width:35em;text-align:center;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align:left;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;8&amp;quot; style=&amp;quot;background-color:#c0cfe4;&amp;quot; | Conjugation of &#039;&#039;{{{1}}}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! class=&amp;quot;outer&amp;quot; |&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;2&amp;quot; class=&amp;quot;outer&amp;quot; style=&amp;quot;background-color:#95DF54; | &lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; class=&amp;quot;outer&amp;quot; style=&amp;quot;background-color:#006F01;color:white; | Plain form&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; class=&amp;quot;outer&amp;quot; style=&amp;quot;background-color:#006F01;color:white; | Reduplicated form&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! style=&amp;quot;background:#DEFDDB | singular &lt;br /&gt;
! style=&amp;quot;background:#DEFDDB | plural&lt;br /&gt;
! style=&amp;quot;background:#DEFDDB | singular&lt;br /&gt;
! style=&amp;quot;background:#DEFDDB | plural&lt;br /&gt;
|-&lt;br /&gt;
|- style=&amp;quot;background-color:#f8f8f8;&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;background-color:#006F01;color:white;&amp;quot; | First Person&lt;br /&gt;
| [[{{#switch: {{{stress|}}} |irr={{{1}}}{{#switch: {{{fin}}} |a=on|e=un|o=un|i=un|u=un|s=un|n=un}}| {{{5|{{{3}}}}}}{{#switch: {{{fin}}} |a=on|e=un|o=un|i=un|u=un|s=un|n=un}}}}]]&lt;br /&gt;
| [[{{#switch: {{{stress|}}} |irr={{{1}}}{{#switch: {{{fin}}} |a=on|e=un|o=un|i=un|u=un|s=un|n=un}}|{{{5|{{{3}}}}}}{{#switch: {{{fin}}} |a=au|e=o|o=o|i=u|u=u|s=u|n=gu}}}}]]&lt;br /&gt;
| [[{{{6|{{{4}}}}}}{{#switch: {{{fin}}} |a=on|e=un|o=un|i=un|u=un|s=un|n=un}}]]&lt;br /&gt;
| [[{{{6|{{{4}}}}}}{{#switch: {{{fin}}} |a=au|e=o|o=o|i=u|u=u|s=u|n=gu}}]]&lt;br /&gt;
|-&lt;br /&gt;
|- style=&amp;quot;background-color:#f8f8f8;&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;background-color:#006F01;color:white;&amp;quot; | Second Person&lt;br /&gt;
| [[{{#switch: {{{stress|}}} |irr={{{1}}}{{#switch: {{{fin}}} |a=on|e=un|o=un|i=un|u=un|s=un|n=un}}|{{#ifeq: {{{fin}}} | i | {{{3}}}is | {{{5|{{{3}}}}}}{{#switch: {{{fin}}} |a=es|e=es|o=es|i=is|u=wis|s=is|n=is}}}}}}]]&lt;br /&gt;
| [[{{#ifeq: {{{fin}}} | i | {{{3}}}isís | {{#ifeq: {{{fin}}} | n | {{{3}}}tsís | {{{5|{{{3}}}}}}{{#switch: {{{fin}}} |a=aisís|e=esís|o=esís|i=is|u=wisís|s=isís|n=tsís}}}}}}]]&lt;br /&gt;
| [[{{#ifeq: {{{fin}}} | i | {{{4}}}is | {{{6|{{{4}}}}}}{{#switch: {{{fin}}} |a=es|e=es|o=es|i=is|u=wis|s=is|n=is}}}}]]&lt;br /&gt;
| [[{{#ifeq: {{{fin}}} | i | {{{4}}}isís | {{#ifeq: {{{fin}}} | n | {{{4}}}tsís | {{{6|{{{4}}}}}}{{#switch: {{{fin}}} |a=aisís|e=esís|o=esís|i=is|u=wisís|s=isís|n=tsís}}}}}}]]&lt;br /&gt;
|-&lt;br /&gt;
|- style=&amp;quot;background-color:#f8f8f8;&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;background-color:#006F01;color:white;&amp;quot; | Third Person&lt;br /&gt;
| [[{{{1}}}]]&lt;br /&gt;
| [[{{#ifeq: {{{fin}}} | n | {{{3}}}tsás | {{{5|{{{3}}}}}}{{#switch: {{{fin}}} |a=asás|e=asás|o=osás|i=asás|u=wasás|s=asás|n=tsás}}}}]]&lt;br /&gt;
| [[{{{2}}}]]&lt;br /&gt;
| [[{{#ifeq: {{{fin}}} | n | {{{4}}}tsás | {{{6|{{{4}}}}}}{{#switch: {{{fin}}} |a=asás|e=asás|o=osás|i=asás|u=wasás|s=asás|n=tsás}}}}]]&lt;br /&gt;
|-&lt;br /&gt;
|- style=&amp;quot;background-color:#f8f8f8;&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;background-color:#006F01;color:white;&amp;quot; | Reflexive&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[{{#ifeq: {{{fin}}} | n | {{{1}}}í | {{{1}}}mí}}]]&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[{{#ifeq: {{{fin}}} | n | {{{2}}}í | {{{2}}}mí}}]]&lt;br /&gt;
|}&amp;lt;noinclude&amp;gt;{{documentation}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Engála templates]][[Category:Engála verb inflection-table templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Enga-orth&amp;diff=547</id>
		<title>Template:Enga-orth</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Enga-orth&amp;diff=547"/>
		<updated>2026-04-10T07:29:53Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;font-family: EngalaGrass;&amp;quot;&amp;gt;{{huge|valign=normal|{{{form}}}|140%}}&amp;lt;/span&amp;gt;&amp;lt;noinclude&amp;gt;[[Category:Engála templates]][[Category:Orthography templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tracking/headword/pagename_spelling_mismatch/enga&amp;diff=545</id>
		<title>Template:Tracking/headword/pagename spelling mismatch/enga</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tracking/headword/pagename_spelling_mismatch/enga&amp;diff=545"/>
		<updated>2026-04-10T07:29:53Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;==Subpages==&lt;br /&gt;
{{Special:PrefixIndex/{{FULLPAGENAME}}/|stripprefix=1}}[[Category:Tracking templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tlist-hit&amp;diff=543</id>
		<title>Template:Tlist-hit</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tlist-hit&amp;diff=543"/>
		<updated>2026-04-10T07:29:53Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{trans-top|name=Tlist-hit|{{#vardefineecho:def|come into contact with forcefully and suddenly}} (hit)}}&lt;br /&gt;
* {{t|chak|aga}}, {{t+|chak|tasa}}&lt;br /&gt;
* {{t|doth|lojat}}&lt;br /&gt;
* {{t|hval|hīlagon}}&lt;br /&gt;
* {{t|irat|shemegvu}}&lt;br /&gt;
* {{t|kinu|t&#039;opet}}, {{t+|kinu|iiret}}, {{t+|kinu|k&#039;uret}}&lt;br /&gt;
* {{t|sang|itskha}}&lt;br /&gt;
* {{t|sond|gup}}&lt;br /&gt;
* {{t|veda|suk}}&lt;br /&gt;
{{trans-bottom}}&amp;lt;includeonly&amp;gt;[[Category:Sense:{{ucfirst:{{#var:def}}}}]]&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;[[Category:Sense templates|hit]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tracking/inflection_of/unknown/class_iii&amp;diff=541</id>
		<title>Template:Tracking/inflection of/unknown/class iii</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tracking/inflection_of/unknown/class_iii&amp;diff=541"/>
		<updated>2026-04-10T07:29:52Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;==Subpages==&lt;br /&gt;
{{Special:PrefixIndex/{{FULLPAGENAME}}/|stripprefix=1}}[[Category:Tracking templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tracking/inflection_of/tag/class_iii&amp;diff=539</id>
		<title>Template:Tracking/inflection of/tag/class iii</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tracking/inflection_of/tag/class_iii&amp;diff=539"/>
		<updated>2026-04-10T07:29:52Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;==Subpages==&lt;br /&gt;
{{Special:PrefixIndex/{{FULLPAGENAME}}/|stripprefix=1}}[[Category:Tracking templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tlist-hunt&amp;diff=537</id>
		<title>Template:Tlist-hunt</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tlist-hunt&amp;diff=537"/>
		<updated>2026-04-10T07:29:52Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{trans-top|name=Tlist-hunt|{{#vardefineecho:def|search for an animal in the wild with the intention of killing it}} (hunt)}}&lt;br /&gt;
* {{t|chak|vizala}}&lt;br /&gt;
* {{t|doth|fonat}}&lt;br /&gt;
* {{t|hval|arghugon}}&lt;br /&gt;
* {{t|irat|sheshinku}}&lt;br /&gt;
* {{t|kinu|maret}}&lt;br /&gt;
* {{t|meni|óvrè}}&lt;br /&gt;
* {{t|ovus|fausie}}&lt;br /&gt;
* {{t|sang|chkha&#039;a}}&lt;br /&gt;
* {{t|sond|kul}}&lt;br /&gt;
* {{t|vzaa|vaneneh}}&lt;br /&gt;
* {{t|veda|qankho}}&lt;br /&gt;
{{trans-bottom}}&amp;lt;includeonly&amp;gt;[[Category:Sense:{{ucfirst:{{#var:def}}}}]]&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;[[Category:Sense templates|hunt]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tlist-say&amp;diff=535</id>
		<title>Template:Tlist-say</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tlist-say&amp;diff=535"/>
		<updated>2026-04-10T07:29:52Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{trans-top|name=Tlist-say|{{#vardefineecho:def|produce a verbal message}} (say)}}&lt;br /&gt;
* {{t|asta|ivétragho}}&lt;br /&gt;
*  {{t|cast|erustalu}}, {{t+|cast|pengu}} {{q|flood form}}&lt;br /&gt;
* {{t|chak|jara}}&lt;br /&gt;
* {{t|doth|astat}}&lt;br /&gt;
* {{t|henl|dike}}&lt;br /&gt;
* {{t|hval|vestragon}}&lt;br /&gt;
* {{t|inha|zhonó}}&lt;br /&gt;
* {{t|irat|shalu}}, {{t+|irat|shalaktu}}&lt;br /&gt;
* {{t|kezh|izu}}&lt;br /&gt;
* {{t|meer|poghá}}, {{t+|meer|yewetra}}&lt;br /&gt;
* {{t|munj|hio}}&lt;br /&gt;
* {{t|noal|vek}}&lt;br /&gt;
* {{t|ovus|mikaa}}&lt;br /&gt;
* {{t|ravk|ashad}}&lt;br /&gt;
* {{t|rooz|díge}}&lt;br /&gt;
* {{t|sang|khawa}}&lt;br /&gt;
* {{t|sond|pwi}}&lt;br /&gt;
* {{t|trig|tel|tel op}}, {{t+|trig|biyo}} {{q|only with a full clause complement}}, {{t+|trig|mema|mema in}}&lt;br /&gt;
* {{t|veda|qas}}&lt;br /&gt;
* {{t|yuli|göörip}}, {{t+|yuli|biilip}}&lt;br /&gt;
{{trans-bottom}}&amp;lt;includeonly&amp;gt;[[Category:Sense:{{ucfirst:{{#var:def}}}}]]&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;[[Category:Sense templates|say]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Module:Attention&amp;diff=533</id>
		<title>Module:Attention</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Module:Attention&amp;diff=533"/>
		<updated>2026-04-10T07:29:52Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local m_params = require(&amp;quot;Module:parameters&amp;quot;)&lt;br /&gt;
local m_params_data = mw.loadData(&amp;quot;Module:parameters/data&amp;quot;).attention&lt;br /&gt;
local format_categories = require(&amp;quot;Module:utilities&amp;quot;).format_categories&lt;br /&gt;
&lt;br /&gt;
local export = {}&lt;br /&gt;
&lt;br /&gt;
function export.show(frame)&lt;br /&gt;
	local args = m_params.process(frame:getParent().args, m_params_data.show)&lt;br /&gt;
	&lt;br /&gt;
	local lang_code = args[1]&lt;br /&gt;
	local title = args[2] and mw.text.encode(args[2])&lt;br /&gt;
	local id = args[&amp;quot;id&amp;quot;] and mw.uri.anchorEncode(args[&amp;quot;id&amp;quot;]) or &amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	local categories = {}&lt;br /&gt;
	&lt;br /&gt;
	if not args[&amp;quot;nocat&amp;quot;] then&lt;br /&gt;
		local lang = require(&amp;quot;Module:languages&amp;quot;).getByCode(lang_code, 1)&lt;br /&gt;
		&lt;br /&gt;
		table.insert(categories, format_categories({&amp;quot;Requests for attention concerning &amp;quot; .. lang:getCanonicalName()}, lang))&lt;br /&gt;
		&lt;br /&gt;
		if not (title or mw.title.getCurrentTitle().nsText == &amp;quot;Template&amp;quot;) then&lt;br /&gt;
			table.insert(categories, format_categories({&amp;quot;attention lacking explanation&amp;quot;}, lang, &amp;quot;-&amp;quot;))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local ret = mw.html.create(&amp;quot;span&amp;quot;)&lt;br /&gt;
		:attr(&amp;quot;id&amp;quot;, &amp;quot;attentionseeking&amp;quot; .. lang_code .. id)&lt;br /&gt;
		:addClass(&amp;quot;attentionseeking&amp;quot;)&lt;br /&gt;
		:attr(&amp;quot;lang&amp;quot;, lang_code)&lt;br /&gt;
	&lt;br /&gt;
	if title then&lt;br /&gt;
		ret = ret:attr(&amp;quot;title&amp;quot;, title)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return tostring(ret) .. table.concat(categories)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return export&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Attention&amp;diff=531</id>
		<title>Template:Attention</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Attention&amp;diff=531"/>
		<updated>2026-04-10T07:29:52Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:attention|show}}&amp;lt;/includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tlist-see&amp;diff=529</id>
		<title>Template:Tlist-see</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tlist-see&amp;diff=529"/>
		<updated>2026-04-10T07:29:51Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{trans-top|name=Tlist-see|{{#vardefineecho:def|perceive with the eyes}} (see)}}&lt;br /&gt;
* {{t|asta|órnegho}}&lt;br /&gt;
* {{t|azra|be}}&lt;br /&gt;
* {{t|cast|banérulu}}&lt;br /&gt;
* {{t|chak|heshya}}&lt;br /&gt;
* {{t|doth|tihat}}&lt;br /&gt;
* {{t|enga|lusi}}&lt;br /&gt;
* {{t|fjer|ibet}}&lt;br /&gt;
* {{t|hval|urnegon}}&lt;br /&gt;
* {{t|irat|shetu}}&lt;br /&gt;
* {{t|kinu|helet}}&lt;br /&gt;
* {{t|meer|ornya}}&lt;br /&gt;
* {{t|meni|vem}}&lt;br /&gt;
* {{t|munj|lon}}&lt;br /&gt;
* {{t|noal|ais}}&lt;br /&gt;
* {{t|sang|ch&#039;anik&#039;o}}&lt;br /&gt;
* {{t|shiv|vurihi}}&lt;br /&gt;
* {{t|sond|pur}}&lt;br /&gt;
* {{t|trig|sin|sin in}}&lt;br /&gt;
* {{t|tsit|báì}}&lt;br /&gt;
* {{t|vzaa|tosonoh}}&lt;br /&gt;
* {{t|veda|yun}}&lt;br /&gt;
* {{t|yuli|muukip}}&lt;br /&gt;
{{trans-bottom}}&amp;lt;includeonly&amp;gt;[[Category:Sense:{{ucfirst:{{#var:def}}}}]]&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;[[Category:Sense templates|see]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tlist-know&amp;diff=527</id>
		<title>Template:Tlist-know</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tlist-know&amp;diff=527"/>
		<updated>2026-04-10T07:29:51Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{trans-top|name=Tlist-know|{{#vardefineecho:def|be aware of facts or information}} (know)}}&lt;br /&gt;
* {{t|asta|gímigho}}&lt;br /&gt;
* {{t|cast|hinjilu}}&lt;br /&gt;
* {{t|chak|leda}}&lt;br /&gt;
* {{t|doth|nesat}}&lt;br /&gt;
* {{t|henl|vesh}}&lt;br /&gt;
* {{t|hval|gīmigon}}&lt;br /&gt;
* {{t|irat|shebishu}}&lt;br /&gt;
* {{t|kezh|akwat}}&lt;br /&gt;
* {{t|meer|khime}}&lt;br /&gt;
* {{t|meni|íìzén}}&lt;br /&gt;
* {{t|noal|pal}}&lt;br /&gt;
* {{t|ovus|ranie}}&lt;br /&gt;
* {{t|sang|iik&#039;u}}&lt;br /&gt;
* {{t|shiv|uathihi}}&lt;br /&gt;
* {{t|sond|puk}}&lt;br /&gt;
* {{t|trig|get|get in}}&lt;br /&gt;
* {{t|vzaa|memeneh}}&lt;br /&gt;
* {{t|veda|lǝr}}&lt;br /&gt;
* {{t|voov|vēm}}&lt;br /&gt;
* {{t|yuli|vöklip}}&lt;br /&gt;
{{trans-bottom}}&amp;lt;includeonly&amp;gt;[[Category:Sense:{{ucfirst:{{#var:def}}}}]]&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;[[Category:Sense templates|know]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tlist-skin&amp;diff=525</id>
		<title>Template:Tlist-skin</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tlist-skin&amp;diff=525"/>
		<updated>2026-04-10T07:29:51Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{trans-top|name=Tlist-skin|{{#vardefineecho:def|outer protective layer of the body}} (skin)}}&lt;br /&gt;
* {{t|asta|rungo}}&lt;br /&gt;
* {{t|doth|ilek}}&lt;br /&gt;
* {{t|hval|ñellyr}}&lt;br /&gt;
* {{t|kinu|zek}}&lt;br /&gt;
* {{t|lish|pelu}}&lt;br /&gt;
* {{t|noal|resh}}&lt;br /&gt;
* {{t|trig|leda}}&lt;br /&gt;
* {{t|vdia|gildust}}&lt;br /&gt;
{{trans-bottom}}&amp;lt;includeonly&amp;gt;[[Category:Sense:{{ucfirst:{{#var:def}}}}]]&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;[[Category:Sense templates|skin]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tlist-leaf&amp;diff=523</id>
		<title>Template:Tlist-leaf</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tlist-leaf&amp;diff=523"/>
		<updated>2026-04-10T07:29:51Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{trans-top|name=Tlist-leaf|{{#vardefineecho:def|typically green, flat part of a plant}} (leaf)}}&lt;br /&gt;
* {{t|doth|daeni}}&lt;br /&gt;
* {{t|hval|temby}}&lt;br /&gt;
* {{t|irat|dihagyi}} {{q|of a flower, branched-off}}, {{t+|irat|dvumma}} {{q|large, flat}}&lt;br /&gt;
* {{t|kinu|t&#039;is}}&lt;br /&gt;
* {{t|noal|felsa}}&lt;br /&gt;
* {{t|okok|fii}}&lt;br /&gt;
* {{t|ovus|aashau}}&lt;br /&gt;
* {{t|ravk|vlon}}&lt;br /&gt;
* {{t|sond|novod}}&lt;br /&gt;
* {{t|tpaa|shtah}}&lt;br /&gt;
* {{t|trig|leda}}&lt;br /&gt;
* {{t|zeme|fane}}&lt;br /&gt;
{{trans-bottom}}&amp;lt;includeonly&amp;gt;[[Category:Sense:{{ucfirst:{{#var:def}}}}]]&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;[[Category:Sense templates|leaf]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Trig-blend-en&amp;diff=521</id>
		<title>Template:Trig-blend-en</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Trig-blend-en&amp;diff=521"/>
		<updated>2026-04-10T07:29:50Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Appendix:Glossary#blend|Blend]] of {{w|English language|English}} &#039;&#039;{{wt|{{{1}}}}}&#039;&#039; + &#039;&#039;{{wt|{{{2}}}}}&#039;&#039;{{#if:{{{3|}}}|&amp;amp;#32;+ &#039;&#039;{{wt|{{{3}}}}}&#039;&#039;{{#if:{{{4|}}}|&amp;amp;#32;+ &#039;&#039;{{wt|{{{4}}}}}&#039;&#039;{{#if:{{{5|}}}|&amp;amp;#32;+ &#039;&#039;{{wt|{{{5}}}}}&#039;&#039;|}}|}}|}}&amp;lt;includeonly&amp;gt;[[Category:Trigedasleng blends of English terms]][[Category:Trigedasleng terms inherited from English]][[Category:Trigedasleng terms derived from English]]&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;[[Category:Trigedasleng templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Wt&amp;diff=519</id>
		<title>Template:Wt</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Wt&amp;diff=519"/>
		<updated>2026-04-10T07:29:50Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Wiktionary:{{{1}}}|{{{2|{{{1}}}}}}]]&amp;lt;noinclude&amp;gt;[[Category:Templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tracking/headword/pagename_spelling_mismatch/trig&amp;diff=517</id>
		<title>Template:Tracking/headword/pagename spelling mismatch/trig</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tracking/headword/pagename_spelling_mismatch/trig&amp;diff=517"/>
		<updated>2026-04-10T07:29:50Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;==Subpages==&lt;br /&gt;
{{Special:PrefixIndex/{{FULLPAGENAME}}/|stripprefix=1}}[[Category:Tracking templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Module:Languages/data/2&amp;diff=515</id>
		<title>Module:Languages/data/2</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Module:Languages/data/2&amp;diff=515"/>
		<updated>2026-04-10T07:29:50Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local u = mw.ustring.char&lt;br /&gt;
local m_langdata = require(&amp;quot;Module:languages/data&amp;quot;)&lt;br /&gt;
local c = m_langdata.chars&lt;br /&gt;
local p = m_langdata.puaChars&lt;br /&gt;
local s = m_langdata.shared&lt;br /&gt;
&lt;br /&gt;
-- Ideally, we want to move these into [[Module:languages/data]], but because (a) it&#039;s necessary to use require on that module, and (b) they&#039;re only used in this data module, it&#039;s less memory-efficient to do that at the moment. If it becomes possible to use mw.loadData, then these should be moved there.&lt;br /&gt;
s[&amp;quot;no-sortkey&amp;quot;] = {&lt;br /&gt;
	from = {&amp;quot;æ&amp;quot;, &amp;quot;ø&amp;quot;, &amp;quot;å&amp;quot;},&lt;br /&gt;
	to = {&amp;quot;z&amp;quot; .. p[1], &amp;quot;z&amp;quot; .. p[2], &amp;quot;z&amp;quot; .. p[3]}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
s[&amp;quot;no-standardchars&amp;quot;] = &amp;quot;AaBbDdEeFfGgHhIiJjKkLlMmNnOoPpRrSsTtUuVvYyÆæØøÅå&amp;quot; .. c.punc&lt;br /&gt;
&lt;br /&gt;
s[&amp;quot;ru-Cyrl-entryname&amp;quot;] = {&lt;br /&gt;
	remove_diacritics = c.grave .. c.acute .. c.diaer,&lt;br /&gt;
	remove_exceptions = {&amp;quot;Ё&amp;quot;, &amp;quot;ё&amp;quot;, &amp;quot;Ѣ̈&amp;quot;, &amp;quot;ѣ̈&amp;quot;, &amp;quot;Я̈&amp;quot;, &amp;quot;я̈&amp;quot;}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
s[&amp;quot;ru-Cyrl-sortkey&amp;quot;] = {&lt;br /&gt;
	from = {&lt;br /&gt;
		&amp;quot;ё&amp;quot;, &amp;quot;ѣ̈&amp;quot;, &amp;quot;я̈&amp;quot;, -- 2 chars&lt;br /&gt;
		&amp;quot;і&amp;quot;, &amp;quot;ѣ&amp;quot;, &amp;quot;ѳ&amp;quot;, &amp;quot;ѵ&amp;quot; -- 1 char&lt;br /&gt;
	},&lt;br /&gt;
	to = {&lt;br /&gt;
		&amp;quot;е&amp;quot; .. p[1], &amp;quot;ь&amp;quot; .. p[2], &amp;quot;я&amp;quot; .. p[1],&lt;br /&gt;
		&amp;quot;и&amp;quot; .. p[1], &amp;quot;ь&amp;quot; .. p[1], &amp;quot;я&amp;quot; .. p[2], &amp;quot;я&amp;quot; .. p[3]&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local m = {}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;aa&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Afar&amp;quot;,&lt;br /&gt;
	27811,&lt;br /&gt;
	&amp;quot;cus-eas&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	entry_name = {remove_diacritics = c.acute},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ab&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Abkhaz&amp;quot;,&lt;br /&gt;
	5111,&lt;br /&gt;
	&amp;quot;cau-abz&amp;quot;,&lt;br /&gt;
	&amp;quot;Cyrl, Geor, Latn&amp;quot;,&lt;br /&gt;
	translit = {&lt;br /&gt;
		Cyrl = &amp;quot;ab-translit&amp;quot;,&lt;br /&gt;
		Geor = &amp;quot;Geor-translit&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	override_translit = true,&lt;br /&gt;
	display_text = {Cyrl = s[&amp;quot;cau-Cyrl-displaytext&amp;quot;]},&lt;br /&gt;
	entry_name = {&lt;br /&gt;
		Cyrl = s[&amp;quot;cau-Cyrl-entryname&amp;quot;],&lt;br /&gt;
		Latn = s[&amp;quot;cau-Latn-entryname&amp;quot;],&lt;br /&gt;
	},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Cyrl = {&lt;br /&gt;
			from = {&lt;br /&gt;
				&amp;quot;х&#039;ә&amp;quot;, -- 3 chars&lt;br /&gt;
				&amp;quot;гь&amp;quot;, &amp;quot;гә&amp;quot;, &amp;quot;ӷь&amp;quot;, &amp;quot;ҕь&amp;quot;, &amp;quot;ӷә&amp;quot;, &amp;quot;ҕә&amp;quot;, &amp;quot;дә&amp;quot;, &amp;quot;ё&amp;quot;, &amp;quot;жь&amp;quot;, &amp;quot;жә&amp;quot;, &amp;quot;ҙә&amp;quot;, &amp;quot;ӡә&amp;quot;, &amp;quot;ӡ&#039;&amp;quot;, &amp;quot;кь&amp;quot;, &amp;quot;кә&amp;quot;, &amp;quot;қь&amp;quot;, &amp;quot;қә&amp;quot;, &amp;quot;ҟь&amp;quot;, &amp;quot;ҟә&amp;quot;, &amp;quot;ҫә&amp;quot;, &amp;quot;тә&amp;quot;, &amp;quot;ҭә&amp;quot;, &amp;quot;ф&#039;&amp;quot;, &amp;quot;хь&amp;quot;, &amp;quot;хә&amp;quot;, &amp;quot;х&#039;&amp;quot;, &amp;quot;ҳә&amp;quot;, &amp;quot;ць&amp;quot;, &amp;quot;цә&amp;quot;, &amp;quot;ц&#039;&amp;quot;, &amp;quot;ҵә&amp;quot;, &amp;quot;ҵ&#039;&amp;quot;, &amp;quot;шь&amp;quot;, &amp;quot;шә&amp;quot;, &amp;quot;џь&amp;quot;, -- 2 chars&lt;br /&gt;
				&amp;quot;ӷ&amp;quot;, &amp;quot;ҕ&amp;quot;, &amp;quot;ҙ&amp;quot;, &amp;quot;ӡ&amp;quot;, &amp;quot;қ&amp;quot;, &amp;quot;ҟ&amp;quot;, &amp;quot;ԥ&amp;quot;, &amp;quot;ҧ&amp;quot;, &amp;quot;ҫ&amp;quot;, &amp;quot;ҭ&amp;quot;, &amp;quot;ҳ&amp;quot;, &amp;quot;ҵ&amp;quot;, &amp;quot;ҷ&amp;quot;, &amp;quot;ҽ&amp;quot;, &amp;quot;ҿ&amp;quot;, &amp;quot;ҩ&amp;quot;, &amp;quot;џ&amp;quot;, &amp;quot;ә&amp;quot; -- 1 char&lt;br /&gt;
			},&lt;br /&gt;
			to = {&lt;br /&gt;
				&amp;quot;х&amp;quot; .. p[4],&lt;br /&gt;
				&amp;quot;г&amp;quot; .. p[1], &amp;quot;г&amp;quot; .. p[2], &amp;quot;г&amp;quot; .. p[5], &amp;quot;г&amp;quot; .. p[6], &amp;quot;г&amp;quot; .. p[7], &amp;quot;г&amp;quot; .. p[8], &amp;quot;д&amp;quot; .. p[1], &amp;quot;е&amp;quot; .. p[1], &amp;quot;ж&amp;quot; .. p[1], &amp;quot;ж&amp;quot; .. p[2], &amp;quot;з&amp;quot; .. p[2], &amp;quot;з&amp;quot; .. p[4], &amp;quot;з&amp;quot; .. p[5], &amp;quot;к&amp;quot; .. p[1], &amp;quot;к&amp;quot; .. p[2], &amp;quot;к&amp;quot; .. p[4], &amp;quot;к&amp;quot; .. p[5], &amp;quot;к&amp;quot; .. p[7], &amp;quot;к&amp;quot; .. p[8], &amp;quot;с&amp;quot; .. p[2], &amp;quot;т&amp;quot; .. p[1], &amp;quot;т&amp;quot; .. p[3], &amp;quot;ф&amp;quot; .. p[1], &amp;quot;х&amp;quot; .. p[1], &amp;quot;х&amp;quot; .. p[2], &amp;quot;х&amp;quot; .. p[3], &amp;quot;х&amp;quot; .. p[6], &amp;quot;ц&amp;quot; .. p[1], &amp;quot;ц&amp;quot; .. p[2], &amp;quot;ц&amp;quot; .. p[3], &amp;quot;ц&amp;quot; .. p[5], &amp;quot;ц&amp;quot; .. p[6], &amp;quot;ш&amp;quot; .. p[1], &amp;quot;ш&amp;quot; .. p[2], &amp;quot;ы&amp;quot; .. p[3],&lt;br /&gt;
				&amp;quot;г&amp;quot; .. p[3], &amp;quot;г&amp;quot; .. p[4], &amp;quot;з&amp;quot; .. p[1], &amp;quot;з&amp;quot; .. p[3], &amp;quot;к&amp;quot; .. p[3], &amp;quot;к&amp;quot; .. p[6], &amp;quot;п&amp;quot; .. p[1], &amp;quot;п&amp;quot; .. p[2], &amp;quot;с&amp;quot; .. p[1], &amp;quot;т&amp;quot; .. p[2], &amp;quot;х&amp;quot; .. p[5], &amp;quot;ц&amp;quot; .. p[4], &amp;quot;ч&amp;quot; .. p[1], &amp;quot;ч&amp;quot; .. p[2], &amp;quot;ч&amp;quot; .. p[3], &amp;quot;ы&amp;quot; .. p[1], &amp;quot;ы&amp;quot; .. p[2], &amp;quot;ь&amp;quot; .. p[1]&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ae&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Avestan&amp;quot;,&lt;br /&gt;
	29572,&lt;br /&gt;
	&amp;quot;ira-cen&amp;quot;,&lt;br /&gt;
	&amp;quot;Avst, Gujr&amp;quot;,&lt;br /&gt;
	translit = {Avst = &amp;quot;Avst-translit&amp;quot;},&lt;br /&gt;
	wikipedia_article = &amp;quot;Avestan&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;af&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Afrikaans&amp;quot;,&lt;br /&gt;
	14196,&lt;br /&gt;
	&amp;quot;gmw&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Arab&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;nl&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Latn = {&lt;br /&gt;
			remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.diaer .. c.ringabove .. c.cedilla .. &amp;quot;&#039;&amp;quot;,&lt;br /&gt;
			from = {&amp;quot;[&#039;ʼ]n&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;n&amp;quot; .. p[1]}&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ak&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Akan&amp;quot;,&lt;br /&gt;
	28026,&lt;br /&gt;
	&amp;quot;alv-ctn&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;am&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Amharic&amp;quot;,&lt;br /&gt;
	28244,&lt;br /&gt;
	&amp;quot;sem-eth&amp;quot;,&lt;br /&gt;
	&amp;quot;Ethi&amp;quot;,&lt;br /&gt;
	translit = &amp;quot;Ethi-translit&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;an&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Aragonese&amp;quot;,&lt;br /&gt;
	8765,&lt;br /&gt;
	&amp;quot;roa-ibe&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;roa-oan&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ar&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Arabic&amp;quot;,&lt;br /&gt;
	13955,&lt;br /&gt;
	&amp;quot;sem-arb&amp;quot;,&lt;br /&gt;
	&amp;quot;Arab, Hebr, Brai, Syrc&amp;quot;,&lt;br /&gt;
	translit = &amp;quot;ar-translit&amp;quot;,&lt;br /&gt;
	entry_name = {Arab = &amp;quot;ar-entryname&amp;quot;},&lt;br /&gt;
	-- put Judeo-Arabic (Hebrew-script Arabic) under the category header&lt;br /&gt;
	-- U+FB21 HEBREW LETTER WIDE ALEF so that it sorts after Arabic script titles&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Hebr = {&lt;br /&gt;
			from = {&amp;quot;^%f[&amp;quot; .. u(0x5D0) .. &amp;quot;-&amp;quot; .. u(0x5EA) .. &amp;quot;]&amp;quot;},&lt;br /&gt;
			to = {u(0xFB21)},&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;as&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Assamese&amp;quot;,&lt;br /&gt;
	29401,&lt;br /&gt;
	&amp;quot;inc-eas&amp;quot;,&lt;br /&gt;
	&amp;quot;as-Beng&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;inc-mas&amp;quot;,&lt;br /&gt;
	translit = &amp;quot;as-translit&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;av&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Avar&amp;quot;,&lt;br /&gt;
	29561,&lt;br /&gt;
	&amp;quot;cau-ava&amp;quot;,&lt;br /&gt;
	&amp;quot;Cyrl, Latn, Arab&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;oav&amp;quot;,&lt;br /&gt;
	translit = {&lt;br /&gt;
		Cyrl = &amp;quot;cau-nec-translit&amp;quot;,&lt;br /&gt;
		Arab = &amp;quot;ar-translit&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	override_translit = true,&lt;br /&gt;
	display_text = {Cyrl = s[&amp;quot;cau-Cyrl-displaytext&amp;quot;]},&lt;br /&gt;
	entry_name = {&lt;br /&gt;
		Cyrl = s[&amp;quot;cau-Cyrl-entryname&amp;quot;],&lt;br /&gt;
		Latn = s[&amp;quot;cau-Latn-entryname&amp;quot;],&lt;br /&gt;
	},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Cyrl = {&lt;br /&gt;
			from = {&amp;quot;гъ&amp;quot;, &amp;quot;гь&amp;quot;, &amp;quot;гӏ&amp;quot;, &amp;quot;ё&amp;quot;, &amp;quot;кк&amp;quot;, &amp;quot;къ&amp;quot;, &amp;quot;кь&amp;quot;, &amp;quot;кӏ&amp;quot;, &amp;quot;лъ&amp;quot;, &amp;quot;лӏ&amp;quot;, &amp;quot;тӏ&amp;quot;, &amp;quot;хх&amp;quot;, &amp;quot;хъ&amp;quot;, &amp;quot;хь&amp;quot;, &amp;quot;хӏ&amp;quot;, &amp;quot;цӏ&amp;quot;, &amp;quot;чӏ&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;г&amp;quot; .. p[1], &amp;quot;г&amp;quot; .. p[2], &amp;quot;г&amp;quot; .. p[3], &amp;quot;е&amp;quot; .. p[1], &amp;quot;к&amp;quot; .. p[1], &amp;quot;к&amp;quot; .. p[2], &amp;quot;к&amp;quot; .. p[3], &amp;quot;к&amp;quot; .. p[4], &amp;quot;л&amp;quot; .. p[1], &amp;quot;л&amp;quot; .. p[2], &amp;quot;т&amp;quot; .. p[1], &amp;quot;х&amp;quot; .. p[1], &amp;quot;х&amp;quot; .. p[2], &amp;quot;х&amp;quot; .. p[3], &amp;quot;х&amp;quot; .. p[4], &amp;quot;ц&amp;quot; .. p[1], &amp;quot;ч&amp;quot; .. p[1]}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ay&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Aymara&amp;quot;,&lt;br /&gt;
	4627,&lt;br /&gt;
	&amp;quot;sai-aym&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;az&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Azerbaijani&amp;quot;,&lt;br /&gt;
	9292,&lt;br /&gt;
	&amp;quot;trk-ogz&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Cyrl, fa-Arab&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;trk-oat&amp;quot;,&lt;br /&gt;
	dotted_dotless_i = true,&lt;br /&gt;
	entry_name = {[&amp;quot;fa-Arab&amp;quot;] = &amp;quot;ar-entryname&amp;quot;},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Latn = {&lt;br /&gt;
			from = {&lt;br /&gt;
				&amp;quot;i&amp;quot;, -- Ensure &amp;quot;i&amp;quot; comes after &amp;quot;ı&amp;quot;.&lt;br /&gt;
				&amp;quot;ç&amp;quot;, &amp;quot;ə&amp;quot;, &amp;quot;ğ&amp;quot;, &amp;quot;x&amp;quot;, &amp;quot;ı&amp;quot;, &amp;quot;q&amp;quot;, &amp;quot;ö&amp;quot;, &amp;quot;ş&amp;quot;, &amp;quot;ü&amp;quot;, &amp;quot;w&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			to = {&lt;br /&gt;
				&amp;quot;i&amp;quot; .. p[1],&lt;br /&gt;
				&amp;quot;c&amp;quot; .. p[1], &amp;quot;e&amp;quot; .. p[1], &amp;quot;g&amp;quot; .. p[1], &amp;quot;h&amp;quot; .. p[1], &amp;quot;i&amp;quot;, &amp;quot;k&amp;quot; .. p[1], &amp;quot;o&amp;quot; .. p[1], &amp;quot;s&amp;quot; .. p[1], &amp;quot;u&amp;quot; .. p[1], &amp;quot;z&amp;quot; .. p[1]&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		Cyrl = {&lt;br /&gt;
			from = {&amp;quot;ғ&amp;quot;, &amp;quot;ә&amp;quot;, &amp;quot;ы&amp;quot;, &amp;quot;ј&amp;quot;, &amp;quot;ҝ&amp;quot;, &amp;quot;ө&amp;quot;, &amp;quot;ү&amp;quot;, &amp;quot;һ&amp;quot;, &amp;quot;ҹ&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;г&amp;quot; .. p[1], &amp;quot;е&amp;quot; .. p[1], &amp;quot;и&amp;quot; .. p[1], &amp;quot;и&amp;quot; .. p[2], &amp;quot;к&amp;quot; .. p[1], &amp;quot;о&amp;quot; .. p[1], &amp;quot;у&amp;quot; .. p[1], &amp;quot;х&amp;quot; .. p[1], &amp;quot;ч&amp;quot; .. p[1]}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ba&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Bashkir&amp;quot;,&lt;br /&gt;
	13389,&lt;br /&gt;
	&amp;quot;trk-kbu&amp;quot;,&lt;br /&gt;
	&amp;quot;Cyrl&amp;quot;,&lt;br /&gt;
	translit = &amp;quot;ba-translit&amp;quot;,&lt;br /&gt;
	override_translit = true,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&amp;quot;ғ&amp;quot;, &amp;quot;ҙ&amp;quot;, &amp;quot;ё&amp;quot;, &amp;quot;ҡ&amp;quot;, &amp;quot;ң&amp;quot;, &amp;quot;ө&amp;quot;, &amp;quot;ҫ&amp;quot;, &amp;quot;ү&amp;quot;, &amp;quot;һ&amp;quot;, &amp;quot;ә&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;г&amp;quot; .. p[1], &amp;quot;д&amp;quot; .. p[1], &amp;quot;е&amp;quot; .. p[1], &amp;quot;к&amp;quot; .. p[1], &amp;quot;н&amp;quot; .. p[1], &amp;quot;о&amp;quot; .. p[1], &amp;quot;с&amp;quot; .. p[1], &amp;quot;у&amp;quot; .. p[1], &amp;quot;х&amp;quot; .. p[1], &amp;quot;э&amp;quot; .. p[1]}&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;be&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Belarusian&amp;quot;,&lt;br /&gt;
	9091,&lt;br /&gt;
	&amp;quot;zle&amp;quot;,&lt;br /&gt;
	&amp;quot;Cyrl, Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;zle-obe&amp;quot;,&lt;br /&gt;
	translit = {Cyrl = &amp;quot;be-translit&amp;quot;},&lt;br /&gt;
	entry_name = {&lt;br /&gt;
		remove_diacritics = c.grave .. c.acute,&lt;br /&gt;
		remove_exceptions = {&amp;quot;Ć&amp;quot;, &amp;quot;ć&amp;quot;, &amp;quot;Ń&amp;quot;, &amp;quot;ń&amp;quot;, &amp;quot;Ś&amp;quot;, &amp;quot;ś&amp;quot;, &amp;quot;Ź&amp;quot;, &amp;quot;ź&amp;quot;},&lt;br /&gt;
	},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Cyrl = {&lt;br /&gt;
			from = {&amp;quot;ґ&amp;quot;, &amp;quot;ё&amp;quot;, &amp;quot;і&amp;quot;, &amp;quot;ў&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;г&amp;quot; .. p[1], &amp;quot;е&amp;quot; .. p[1], &amp;quot;и&amp;quot; .. p[1], &amp;quot;у&amp;quot; .. p[1]}&lt;br /&gt;
		},&lt;br /&gt;
		Latn = {&lt;br /&gt;
			from = {&amp;quot;ć&amp;quot;, &amp;quot;č&amp;quot;, &amp;quot;dz&amp;quot;, &amp;quot;dź&amp;quot;, &amp;quot;dž&amp;quot;, &amp;quot;ch&amp;quot;, &amp;quot;ł&amp;quot;, &amp;quot;ń&amp;quot;, &amp;quot;ś&amp;quot;, &amp;quot;š&amp;quot;, &amp;quot;ŭ&amp;quot;, &amp;quot;ź&amp;quot;, &amp;quot;ž&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;c&amp;quot; .. p[1], &amp;quot;c&amp;quot; .. p[2], &amp;quot;d&amp;quot; .. p[1], &amp;quot;d&amp;quot; .. p[2], &amp;quot;d&amp;quot; .. p[3], &amp;quot;h&amp;quot; .. p[1], &amp;quot;l&amp;quot; .. p[1], &amp;quot;n&amp;quot; .. p[1], &amp;quot;s&amp;quot; .. p[1], &amp;quot;s&amp;quot; .. p[2], &amp;quot;u&amp;quot; .. p[1], &amp;quot;z&amp;quot; .. p[1], &amp;quot;z&amp;quot; .. p[2]}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = {&lt;br /&gt;
		Cyrl = &amp;quot;АаБбВвГгДдЕеЁёЖжЗзІіЙйКкЛлМмНнОоПпРрСсТтУуЎўФфХхЦцЧчШшЫыЬьЭэЮюЯя&amp;quot;,&lt;br /&gt;
		Latn = &amp;quot;AaBbCcĆćČčDdEeFfGgHhIiJjKkLlŁłMmNnŃńOoPpRrSsŚśŠšTtUuŬŭVvYyZzŹźŽž&amp;quot;,&lt;br /&gt;
		c.punc&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;bg&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Bulgarian&amp;quot;,&lt;br /&gt;
	7918,&lt;br /&gt;
	&amp;quot;zls&amp;quot;,&lt;br /&gt;
	&amp;quot;Cyrl&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;cu-bgm&amp;quot;,&lt;br /&gt;
	translit = &amp;quot;bg-translit&amp;quot;,&lt;br /&gt;
	entry_name = {remove_diacritics = c.grave .. c.acute},&lt;br /&gt;
	standardChars = &amp;quot;АаБбВвГгДдЕеЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЬьЮюЯя&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;bh&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Bihari&amp;quot;,&lt;br /&gt;
	135305,&lt;br /&gt;
	&amp;quot;inc-eas&amp;quot;,&lt;br /&gt;
	&amp;quot;Deva&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;inc-mgd&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;bi&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Bislama&amp;quot;,&lt;br /&gt;
	35452,&lt;br /&gt;
	&amp;quot;crp&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;en&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;bm&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Bambara&amp;quot;,&lt;br /&gt;
	33243,&lt;br /&gt;
	&amp;quot;dmn-emn&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&amp;quot;ɛ&amp;quot;, &amp;quot;ɲ&amp;quot;, &amp;quot;ŋ&amp;quot;, &amp;quot;ɔ&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;e&amp;quot; .. p[1], &amp;quot;n&amp;quot; .. p[1], &amp;quot;n&amp;quot; .. p[2], &amp;quot;o&amp;quot; .. p[1]}&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;bn&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Bengali&amp;quot;,&lt;br /&gt;
	9610,&lt;br /&gt;
	&amp;quot;inc-eas&amp;quot;,&lt;br /&gt;
	&amp;quot;Beng, Newa&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;inc-mbn&amp;quot;,&lt;br /&gt;
	translit = {Beng = &amp;quot;bn-translit&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;bo&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Tibetan&amp;quot;,&lt;br /&gt;
	34271,&lt;br /&gt;
	&amp;quot;sit-tib&amp;quot;,&lt;br /&gt;
	&amp;quot;Tibt&amp;quot;, -- sometimes Deva?&lt;br /&gt;
	ancestors = &amp;quot;xct&amp;quot;,&lt;br /&gt;
	translit = &amp;quot;Tibt-translit&amp;quot;,&lt;br /&gt;
	override_translit = true,&lt;br /&gt;
	display_text = s[&amp;quot;Tibt-displaytext&amp;quot;],&lt;br /&gt;
	entry_name = s[&amp;quot;Tibt-entryname&amp;quot;],&lt;br /&gt;
	sort_key = &amp;quot;Tibt-sortkey&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;br&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Breton&amp;quot;,&lt;br /&gt;
	12107,&lt;br /&gt;
	&amp;quot;cel-bry&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;xbm&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&amp;quot;ch&amp;quot;, &amp;quot;c[&#039;ʼ’]h&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;c&amp;quot; .. p[1], &amp;quot;c&amp;quot; .. p[2]}&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ca&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Catalan&amp;quot;,&lt;br /&gt;
	7026,&lt;br /&gt;
	&amp;quot;roa-ocr&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;roa-oca&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		remove_diacritics = c.grave .. c.acute .. c.diaer .. c.cedilla,&lt;br /&gt;
		from = {&amp;quot;l·l&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;ll&amp;quot;}&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = &amp;quot;AaÀàBbCcÇçDdEeÉéÈèFfGgHhIiÍíÏïJjLlMmNnOoÓóÒòPpQqRrSsTtUuÚúÜüVvXxYyZz·&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ce&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Chechen&amp;quot;,&lt;br /&gt;
	33350,&lt;br /&gt;
	&amp;quot;cau-vay&amp;quot;,&lt;br /&gt;
	&amp;quot;Cyrl, Latn, Arab&amp;quot;,&lt;br /&gt;
	translit = {&lt;br /&gt;
		Cyrl = &amp;quot;cau-nec-translit&amp;quot;,&lt;br /&gt;
		Arab = &amp;quot;ar-translit&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	override_translit = true,&lt;br /&gt;
	display_text = {Cyrl = s[&amp;quot;cau-Cyrl-displaytext&amp;quot;]},&lt;br /&gt;
	entry_name = {&lt;br /&gt;
		Cyrl = s[&amp;quot;cau-Cyrl-entryname&amp;quot;],&lt;br /&gt;
		Latn = s[&amp;quot;cau-Latn-entryname&amp;quot;],&lt;br /&gt;
	},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Cyrl = {&lt;br /&gt;
			from = {&amp;quot;аь&amp;quot;, &amp;quot;гӏ&amp;quot;, &amp;quot;ё&amp;quot;, &amp;quot;кх&amp;quot;, &amp;quot;къ&amp;quot;, &amp;quot;кӏ&amp;quot;, &amp;quot;оь&amp;quot;, &amp;quot;пӏ&amp;quot;, &amp;quot;тӏ&amp;quot;, &amp;quot;уь&amp;quot;, &amp;quot;хь&amp;quot;, &amp;quot;хӏ&amp;quot;, &amp;quot;цӏ&amp;quot;, &amp;quot;чӏ&amp;quot;, &amp;quot;юь&amp;quot;, &amp;quot;яь&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;а&amp;quot; .. p[1], &amp;quot;г&amp;quot; .. p[1], &amp;quot;е&amp;quot; .. p[1], &amp;quot;к&amp;quot; .. p[1], &amp;quot;к&amp;quot; .. p[2], &amp;quot;к&amp;quot; .. p[3], &amp;quot;о&amp;quot; .. p[1], &amp;quot;п&amp;quot; .. p[1], &amp;quot;т&amp;quot; .. p[1], &amp;quot;у&amp;quot; .. p[1], &amp;quot;х&amp;quot; .. p[1], &amp;quot;х&amp;quot; .. p[2], &amp;quot;ц&amp;quot; .. p[1], &amp;quot;ч&amp;quot; .. p[1], &amp;quot;ю&amp;quot; .. p[1], &amp;quot;я&amp;quot; .. p[1]}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ch&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Chamorro&amp;quot;,&lt;br /&gt;
	33262,&lt;br /&gt;
	&amp;quot;poz-sus&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		remove_diacritics = &amp;quot;&#039;&amp;quot;,&lt;br /&gt;
		from = {&amp;quot;å&amp;quot;, &amp;quot;ch&amp;quot;, &amp;quot;ñ&amp;quot;, &amp;quot;ng&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;a&amp;quot; .. p[1], &amp;quot;c&amp;quot; .. p[1], &amp;quot;n&amp;quot; .. p[1], &amp;quot;n&amp;quot; .. p[2]}&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;co&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Corsican&amp;quot;,&lt;br /&gt;
	33111,&lt;br /&gt;
	&amp;quot;roa-itd&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&amp;quot;chj&amp;quot;, &amp;quot;ghj&amp;quot;, &amp;quot;sc&amp;quot;, &amp;quot;sg&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;c&amp;quot; .. p[1], &amp;quot;g&amp;quot; .. p[1], &amp;quot;s&amp;quot; .. p[1], &amp;quot;s&amp;quot; .. p[2]}&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = &amp;quot;AaÀàBbCcDdEeÈèFfGgHhIiÌìÏïJjLlMmNnOoÒòPpQqRrSsTtUuÙùÜüVvZz&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;cr&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Cree&amp;quot;,&lt;br /&gt;
	33390,&lt;br /&gt;
	&amp;quot;alg&amp;quot;,&lt;br /&gt;
	&amp;quot;Cans, Latn&amp;quot;,&lt;br /&gt;
	translit = {Cans = &amp;quot;cr-translit&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;cs&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Czech&amp;quot;,&lt;br /&gt;
	9056,&lt;br /&gt;
	&amp;quot;zlw&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;cs-ear&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&amp;quot;á&amp;quot;, &amp;quot;č&amp;quot;, &amp;quot;ď&amp;quot;, &amp;quot;é&amp;quot;, &amp;quot;ě&amp;quot;, &amp;quot;ch&amp;quot;, &amp;quot;í&amp;quot;, &amp;quot;ň&amp;quot;, &amp;quot;ó&amp;quot;, &amp;quot;ř&amp;quot;, &amp;quot;š&amp;quot;, &amp;quot;ť&amp;quot;, &amp;quot;ú&amp;quot;, &amp;quot;ů&amp;quot;, &amp;quot;ý&amp;quot;, &amp;quot;ž&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;a&amp;quot; .. p[1], &amp;quot;c&amp;quot; .. p[1], &amp;quot;d&amp;quot; .. p[1], &amp;quot;e&amp;quot; .. p[1], &amp;quot;e&amp;quot; .. p[2], &amp;quot;h&amp;quot; .. p[1], &amp;quot;i&amp;quot; .. p[1], &amp;quot;n&amp;quot; .. p[1], &amp;quot;o&amp;quot; .. p[1], &amp;quot;r&amp;quot; .. p[1], &amp;quot;s&amp;quot; .. p[1], &amp;quot;t&amp;quot; .. p[1], &amp;quot;u&amp;quot; .. p[1], &amp;quot;u&amp;quot; .. p[2], &amp;quot;y&amp;quot; .. p[1], &amp;quot;z&amp;quot; .. p[1]}&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = &amp;quot;AaÁáBbCcČčDdĎďEeÉéĚěFfGgHhIiÍíJjKkLlMmNnŇňOoÓóPpRrŘřSsŠšTtŤťUuÚúŮůVvYyÝýZzŽž&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;cu&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Old Church Slavonic&amp;quot;,&lt;br /&gt;
	35499,&lt;br /&gt;
	&amp;quot;zls&amp;quot;,&lt;br /&gt;
	&amp;quot;Cyrs, Glag&amp;quot;,&lt;br /&gt;
	translit = &amp;quot;Cyrs-Glag-translit&amp;quot;,&lt;br /&gt;
	entry_name = {Cyrs = s[&amp;quot;Cyrs-entryname&amp;quot;]},&lt;br /&gt;
	sort_key = {Cyrs = s[&amp;quot;Cyrs-sortkey&amp;quot;]},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;cv&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Chuvash&amp;quot;,&lt;br /&gt;
	33348,&lt;br /&gt;
	&amp;quot;trk-ogr&amp;quot;,&lt;br /&gt;
	&amp;quot;Cyrl&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;xbo&amp;quot;,&lt;br /&gt;
	translit = &amp;quot;cv-translit&amp;quot;,&lt;br /&gt;
	override_translit = true,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&amp;quot;ӑ&amp;quot;, &amp;quot;ё&amp;quot;, &amp;quot;ӗ&amp;quot;, &amp;quot;ҫ&amp;quot;, &amp;quot;ӳ&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;а&amp;quot; .. p[1], &amp;quot;е&amp;quot; .. p[1], &amp;quot;е&amp;quot; .. p[2], &amp;quot;с&amp;quot; .. p[1], &amp;quot;у&amp;quot; .. p[1]}&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;cy&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Welsh&amp;quot;,&lt;br /&gt;
	9309,&lt;br /&gt;
	&amp;quot;cel-bry&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;wlm&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		remove_diacritics = c.grave .. c.acute .. c.circ .. c.diaer .. &amp;quot;&#039;&amp;quot;,&lt;br /&gt;
		from = {&amp;quot;ch&amp;quot;, &amp;quot;dd&amp;quot;, &amp;quot;ff&amp;quot;, &amp;quot;ng&amp;quot;, &amp;quot;ll&amp;quot;, &amp;quot;ph&amp;quot;, &amp;quot;rh&amp;quot;, &amp;quot;th&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;c&amp;quot; .. p[1], &amp;quot;d&amp;quot; .. p[1], &amp;quot;f&amp;quot; .. p[1], &amp;quot;g&amp;quot; .. p[1], &amp;quot;l&amp;quot; .. p[1], &amp;quot;p&amp;quot; .. p[1], &amp;quot;r&amp;quot; .. p[1], &amp;quot;t&amp;quot; .. p[1]}&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = &amp;quot;ÂâAaBbCcDdEeÊêFfGgHhIiÎîLlMmNnOoÔôPpRrSsTtUuÛûWwŴŵYyŶŷ&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;da&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Danish&amp;quot;,&lt;br /&gt;
	9035,&lt;br /&gt;
	&amp;quot;gmq&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;gmq-oda&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&amp;quot;æ&amp;quot;, &amp;quot;ø&amp;quot;, &amp;quot;å&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;z&amp;quot; .. p[1], &amp;quot;z&amp;quot; .. p[2], &amp;quot;z&amp;quot; .. p[3]}&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = &amp;quot;AaBbDdEeFfGgHhIiJjKkLlMmNnOoPpRrSsTtUuVvYyÆæØøÅå&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;de&amp;quot;] = {&lt;br /&gt;
	&amp;quot;German&amp;quot;,&lt;br /&gt;
	188,&lt;br /&gt;
	&amp;quot;gmw&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Latf&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;gmh&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		remove_diacritics = c.grave .. c.acute .. c.circ .. c.diaer .. c.ringabove,&lt;br /&gt;
		from = {&amp;quot;ß&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;ss&amp;quot;}&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = &amp;quot;AaÄäBbCcDdEeFfGgHhIiJjKkLlMmNnOoÖöPpQqRrSsßTtUuÜüVvWwXxYyZz&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;dv&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Dhivehi&amp;quot;,&lt;br /&gt;
	32656,&lt;br /&gt;
	&amp;quot;inc-ins&amp;quot;,&lt;br /&gt;
	&amp;quot;Thaa, Diak&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;elu-prk&amp;quot;,&lt;br /&gt;
	translit = {&lt;br /&gt;
		Thaa = &amp;quot;dv-translit&amp;quot;,&lt;br /&gt;
		Diak = &amp;quot;Diak-translit&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	override_translit = true,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;dz&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Dzongkha&amp;quot;,&lt;br /&gt;
	33081,&lt;br /&gt;
	&amp;quot;sit-tib&amp;quot;,&lt;br /&gt;
	&amp;quot;Tibt&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;xct&amp;quot;,&lt;br /&gt;
	translit = &amp;quot;Tibt-translit&amp;quot;,&lt;br /&gt;
	override_translit = true,&lt;br /&gt;
	display_text = s[&amp;quot;Tibt-displaytext&amp;quot;],&lt;br /&gt;
	entry_name = s[&amp;quot;Tibt-entryname&amp;quot;],&lt;br /&gt;
	sort_key = &amp;quot;Tibt-sortkey&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ee&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Ewe&amp;quot;,&lt;br /&gt;
	30005,&lt;br /&gt;
	&amp;quot;alv-gbe&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		remove_diacritics = c.tilde,&lt;br /&gt;
		from = {&amp;quot;ɖ&amp;quot;, &amp;quot;dz&amp;quot;, &amp;quot;ɛ&amp;quot;, &amp;quot;ƒ&amp;quot;, &amp;quot;gb&amp;quot;, &amp;quot;ɣ&amp;quot;, &amp;quot;kp&amp;quot;, &amp;quot;ny&amp;quot;, &amp;quot;ŋ&amp;quot;, &amp;quot;ɔ&amp;quot;, &amp;quot;ts&amp;quot;, &amp;quot;ʋ&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;d&amp;quot; .. p[1], &amp;quot;d&amp;quot; .. p[2], &amp;quot;e&amp;quot; .. p[1], &amp;quot;f&amp;quot; .. p[1], &amp;quot;g&amp;quot; .. p[1], &amp;quot;g&amp;quot; .. p[2], &amp;quot;k&amp;quot; .. p[1], &amp;quot;n&amp;quot; .. p[1], &amp;quot;n&amp;quot; .. p[2], &amp;quot;o&amp;quot; .. p[1], &amp;quot;t&amp;quot; .. p[1], &amp;quot;v&amp;quot; .. p[1]}&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;el&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Greek&amp;quot;,&lt;br /&gt;
	9129,&lt;br /&gt;
	&amp;quot;grk&amp;quot;,&lt;br /&gt;
	&amp;quot;Grek, Brai&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;el-kth&amp;quot;,&lt;br /&gt;
	translit = {Grek = &amp;quot;el-translit&amp;quot;},&lt;br /&gt;
	override_translit = true,&lt;br /&gt;
	entry_name = {Grek = {remove_diacritics = c.caron .. c.diaerbelow .. c.brevebelow}},&lt;br /&gt;
	sort_key = {Grek = s[&amp;quot;Grek-sortkey&amp;quot;]},&lt;br /&gt;
	standardChars = {&lt;br /&gt;
		Grek = &amp;quot;΅·ͺ΄ΑαΆάΒβΓγΔδΕεέΈΖζΗηΉήΘθΙιΊίΪϊΐΚκΛλΜμΝνΞξΟοΌόΠπΡρΣσςΤτΥυΎύΫϋΰΦφΧχΨψΩωΏώ&amp;quot;,&lt;br /&gt;
		Brai = c.braille,&lt;br /&gt;
		c.punc&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;en&amp;quot;] = {&lt;br /&gt;
	&amp;quot;English&amp;quot;,&lt;br /&gt;
	1860,&lt;br /&gt;
	&amp;quot;gmw&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Brai, Shaw, Dsrt&amp;quot;, -- entries in Shaw or Dsrt might require prior discussion&lt;br /&gt;
	wikimedia_codes = &amp;quot;en, simple&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;enm&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Latn = {&lt;br /&gt;
			remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.macron .. c.diaer .. c.ringabove .. c.caron .. c.cedilla .. &amp;quot;&#039;%-%s&amp;quot;,&lt;br /&gt;
			from = {&amp;quot;æ&amp;quot;, &amp;quot;œ&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;ae&amp;quot;, &amp;quot;oe&amp;quot;}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = {&lt;br /&gt;
		Latn = &amp;quot;AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz&amp;quot;,&lt;br /&gt;
		Brai = c.braille,&lt;br /&gt;
		c.punc&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;eo&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Esperanto&amp;quot;,&lt;br /&gt;
	143,&lt;br /&gt;
	&amp;quot;art&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		remove_diacritics = c.grave .. c.acute,&lt;br /&gt;
		from = {&amp;quot;ĉ&amp;quot;, &amp;quot;ĝ&amp;quot;, &amp;quot;ĥ&amp;quot;, &amp;quot;ĵ&amp;quot;, &amp;quot;ŝ&amp;quot;, &amp;quot;ŭ&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;c&amp;quot; .. p[1], &amp;quot;g&amp;quot; .. p[1], &amp;quot;h&amp;quot; .. p[1], &amp;quot;j&amp;quot; .. p[1], &amp;quot;s&amp;quot; .. p[1], &amp;quot;u&amp;quot; .. p[1]}&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = &amp;quot;AaBbCcĈĉDdEeFfGgĜĝHhIiJjĴĵKkLlMmNnOoPpRrSsŜŝTtUuŬŭVvZz&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;es&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Spanish&amp;quot;,&lt;br /&gt;
	1321,&lt;br /&gt;
	&amp;quot;roa-ibe&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Brai&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;osp&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Latn = {&lt;br /&gt;
			remove_diacritics = c.acute .. c.diaer .. c.cedilla,&lt;br /&gt;
			from = {&amp;quot;ñ&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;n&amp;quot; .. p[1]}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = {&lt;br /&gt;
		Latn = &amp;quot;AaÁáBbCcDdEeÉéFfGgHhIiÍíJjLlMmNnÑñOoÓóPpQqRrSsTtUuÚúVvXxYyZz&amp;quot;,&lt;br /&gt;
		Brai = c.braille,&lt;br /&gt;
		c.punc&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;et&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Estonian&amp;quot;,&lt;br /&gt;
	9072,&lt;br /&gt;
	&amp;quot;urj-fin&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&lt;br /&gt;
			&amp;quot;š&amp;quot;, &amp;quot;ž&amp;quot;, &amp;quot;õ&amp;quot;, &amp;quot;ä&amp;quot;, &amp;quot;ö&amp;quot;, &amp;quot;ü&amp;quot;, -- 2 chars&lt;br /&gt;
			&amp;quot;z&amp;quot; -- 1 char&lt;br /&gt;
		},&lt;br /&gt;
		to = {&lt;br /&gt;
			&amp;quot;s&amp;quot; .. p[1], &amp;quot;s&amp;quot; .. p[3], &amp;quot;w&amp;quot; .. p[1], &amp;quot;w&amp;quot; .. p[2], &amp;quot;w&amp;quot; .. p[3], &amp;quot;w&amp;quot; .. p[4],&lt;br /&gt;
			&amp;quot;s&amp;quot; .. p[2]&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = &amp;quot;AaBbDdEeFfGgHhIiJjKkLlMmNnOoPpRrSsTtUuVvÕõÄäÖöÜü&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;eu&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Basque&amp;quot;,&lt;br /&gt;
	8752,&lt;br /&gt;
	&amp;quot;euq&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&amp;quot;ç&amp;quot;, &amp;quot;ñ&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;c&amp;quot; .. p[1], &amp;quot;n&amp;quot; .. p[1]}&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = &amp;quot;AaBbDdEeFfGgHhIiJjKkLlMmNnÑñOoPpRrSsTtUuXxZz&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;fa&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Persian&amp;quot;,&lt;br /&gt;
	9168,&lt;br /&gt;
	&amp;quot;ira-swi&amp;quot;,&lt;br /&gt;
	&amp;quot;fa-Arab&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;fa-cls&amp;quot;,&lt;br /&gt;
	entry_name = {&lt;br /&gt;
		from = {&amp;quot;&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;&amp;quot;},&lt;br /&gt;
		remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.kashida .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.superalef,&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ff&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Fula&amp;quot;,&lt;br /&gt;
	33454,&lt;br /&gt;
	&amp;quot;alv-fwo&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Adlm&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;fi&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Finnish&amp;quot;,&lt;br /&gt;
	1412,&lt;br /&gt;
	&amp;quot;urj-fin&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	display_text = {&lt;br /&gt;
		from = {&amp;quot;&#039;&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;’&amp;quot;}&lt;br /&gt;
	},&lt;br /&gt;
	entry_name = {&lt;br /&gt;
		remove_diacritics = &amp;quot;ˣ&amp;quot;,&lt;br /&gt;
		from = {&amp;quot;’&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;&#039;&amp;quot;},&lt;br /&gt;
	}, -- used to indicate gemination of the next consonant&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.dacute .. c.caron .. c.cedilla .. &amp;quot;&#039;:&amp;quot;,&lt;br /&gt;
		from = {&amp;quot;ø&amp;quot;, &amp;quot;æ&amp;quot;, &amp;quot;œ&amp;quot;, &amp;quot;ß&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;o&amp;quot;, &amp;quot;ae&amp;quot;, &amp;quot;oe&amp;quot;, &amp;quot;ss&amp;quot;}&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = &amp;quot;AaBbDdEeFfGgHhIiJjKkLlMmNnOoPpRrSsTtUuVvYyÄäÖö&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;fj&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Fijian&amp;quot;,&lt;br /&gt;
	33295,&lt;br /&gt;
	&amp;quot;poz-occ&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;fo&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Faroese&amp;quot;,&lt;br /&gt;
	25258,&lt;br /&gt;
	&amp;quot;gmq&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;non&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&amp;quot;á&amp;quot;, &amp;quot;ð&amp;quot;, &amp;quot;í&amp;quot;, &amp;quot;ó&amp;quot;, &amp;quot;ú&amp;quot;, &amp;quot;ý&amp;quot;, &amp;quot;æ&amp;quot;, &amp;quot;ø&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;a&amp;quot; .. p[1], &amp;quot;d&amp;quot; .. p[1], &amp;quot;i&amp;quot; .. p[1], &amp;quot;o&amp;quot; .. p[1], &amp;quot;u&amp;quot; .. p[1], &amp;quot;y&amp;quot; .. p[1], &amp;quot;z&amp;quot; .. p[1], &amp;quot;z&amp;quot; .. p[2]}&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = &amp;quot;AaÁáBbDdÐðEeFfGgHhIiÍíJjKkLlMmNnOoÓóPpRrSsTtUuÚúVvYyÝýÆæØø&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;fr&amp;quot;] = {&lt;br /&gt;
	&amp;quot;French&amp;quot;,&lt;br /&gt;
	150,&lt;br /&gt;
	&amp;quot;roa-oil&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Brai&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;frm&amp;quot;,&lt;br /&gt;
	sort_key = {Latn = s[&amp;quot;roa-oil-sortkey&amp;quot;]},&lt;br /&gt;
	standardChars = {&lt;br /&gt;
		Latn = &amp;quot;AaÀàÂâBbCcÇçDdEeÉéÈèÊêËëFfGgHhIiÎîÏïJjLlMmNnOoÔôŒœPpQqRrSsTtUuÙùÛûÜüVvXxYyZz&amp;quot;,&lt;br /&gt;
		Brai = c.braille,&lt;br /&gt;
		c.punc&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;fy&amp;quot;] = {&lt;br /&gt;
	&amp;quot;West Frisian&amp;quot;,&lt;br /&gt;
	27175,&lt;br /&gt;
	&amp;quot;gmw-fri&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;ofs&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		remove_diacritics = c.grave .. c.acute .. c.circ .. c.diaer,&lt;br /&gt;
		from = {&amp;quot;y&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;i&amp;quot;}&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = &amp;quot;AaâäàÆæBbCcDdEeéêëèFfGgHhIiïìYyỳJjKkLlMmNnOoôöòPpRrSsTtUuúûüùVvWwZz&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ga&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Irish&amp;quot;,&lt;br /&gt;
	9142,&lt;br /&gt;
	&amp;quot;cel-gae&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Latg&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;mga&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		remove_diacritics = c.acute,&lt;br /&gt;
		from = {&amp;quot;ḃ&amp;quot;, &amp;quot;ċ&amp;quot;, &amp;quot;ḋ&amp;quot;, &amp;quot;ḟ&amp;quot;, &amp;quot;ġ&amp;quot;, &amp;quot;ṁ&amp;quot;, &amp;quot;ṗ&amp;quot;, &amp;quot;ṡ&amp;quot;, &amp;quot;ṫ&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;bh&amp;quot;, &amp;quot;ch&amp;quot;, &amp;quot;dh&amp;quot;, &amp;quot;fh&amp;quot;, &amp;quot;gh&amp;quot;, &amp;quot;mh&amp;quot;, &amp;quot;ph&amp;quot;, &amp;quot;sh&amp;quot;, &amp;quot;th&amp;quot;}&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = &amp;quot;AaÁáBbCcDdEeÉéFfGgHhIiÍíLlMmNnOoÓóPpRrSsTtUuÚúVv&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;gd&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Scottish Gaelic&amp;quot;,&lt;br /&gt;
	9314,&lt;br /&gt;
	&amp;quot;cel-gae&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Latg&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;mga&amp;quot;,&lt;br /&gt;
	sort_key = {remove_diacritics = c.grave .. c.acute},&lt;br /&gt;
	standardChars = &amp;quot;AaÀàBbCcDdEeÈèFfGgHhIiÌìLlMmNnOoÒòPpRrSsTtUuÙù&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;gl&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Galician&amp;quot;,&lt;br /&gt;
	9307,&lt;br /&gt;
	&amp;quot;roa-ibe&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;roa-opt&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		remove_diacritics = c.acute,&lt;br /&gt;
		from = {&amp;quot;ñ&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;n&amp;quot; .. p[1]}&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = &amp;quot;AaÁáBbCcDdEeÉéFfGgHhIiÍíLlMmNnÑñOoÓóPpQqRrSsTtUuÚúVvXxZz&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;gn&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Guaraní&amp;quot;,&lt;br /&gt;
	35876,&lt;br /&gt;
	&amp;quot;tup-gua&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;gu&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Gujarati&amp;quot;,&lt;br /&gt;
	5137,&lt;br /&gt;
	&amp;quot;inc-wes&amp;quot;,&lt;br /&gt;
	&amp;quot;Arab, Gujr&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;inc-mgu&amp;quot;,&lt;br /&gt;
	translit = {&lt;br /&gt;
		Gujr = &amp;quot;gu-translit&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	entry_name = {&lt;br /&gt;
		remove_diacritics = &amp;quot;઼&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;gv&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Manx&amp;quot;,&lt;br /&gt;
	12175,&lt;br /&gt;
	&amp;quot;cel-gae&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;mga&amp;quot;,&lt;br /&gt;
	sort_key = {remove_diacritics = c.cedilla .. &amp;quot;-&amp;quot;},&lt;br /&gt;
	standardChars = &amp;quot;AaBbCcÇçDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwYy&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ha&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Hausa&amp;quot;,&lt;br /&gt;
	56475,&lt;br /&gt;
	&amp;quot;cdc-wst&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Arab&amp;quot;,&lt;br /&gt;
	entry_name = {Latn = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.macron}},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Latn = {&lt;br /&gt;
			from = {&amp;quot;ɓ&amp;quot;, &amp;quot;b&#039;&amp;quot;, &amp;quot;ɗ&amp;quot;, &amp;quot;d&#039;&amp;quot;, &amp;quot;ƙ&amp;quot;, &amp;quot;k&#039;&amp;quot;, &amp;quot;sh&amp;quot;, &amp;quot;ƴ&amp;quot;, &amp;quot;&#039;y&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;b&amp;quot; .. p[1], &amp;quot;b&amp;quot; .. p[2], &amp;quot;d&amp;quot; .. p[1], &amp;quot;d&amp;quot; .. p[2], &amp;quot;k&amp;quot; .. p[1], &amp;quot;k&amp;quot; .. p[2], &amp;quot;s&amp;quot; .. p[1], &amp;quot;y&amp;quot; .. p[1], &amp;quot;y&amp;quot; .. p[2]}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;he&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Hebrew&amp;quot;,&lt;br /&gt;
	9288,&lt;br /&gt;
	&amp;quot;sem-can&amp;quot;,&lt;br /&gt;
	&amp;quot;Hebr, Phnx, Brai&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;he-med&amp;quot;,&lt;br /&gt;
	entry_name = {Hebr = {remove_diacritics = u(0x0591) .. &amp;quot;-&amp;quot; .. u(0x05BD) .. u(0x05BF) .. &amp;quot;-&amp;quot; .. u(0x05C5) .. u(0x05C7) .. c.CGJ}},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;hi&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Hindi&amp;quot;,&lt;br /&gt;
	1568,&lt;br /&gt;
	&amp;quot;inc-hnd&amp;quot;,&lt;br /&gt;
	&amp;quot;Deva, Kthi, Newa&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;inc-ohi&amp;quot;,&lt;br /&gt;
	translit = {Deva = &amp;quot;hi-translit&amp;quot;},&lt;br /&gt;
	standardChars = &amp;quot;ँंअ-ऊएऐओ-घच-झट-नप-रलवशसहा-ूेैो-्।-॰ड़ढ़&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ho&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Hiri Motu&amp;quot;,&lt;br /&gt;
	33617,&lt;br /&gt;
	&amp;quot;crp&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;meu&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ht&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Haitian Creole&amp;quot;,&lt;br /&gt;
	33491,&lt;br /&gt;
	&amp;quot;crp&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;ht-sdm&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&lt;br /&gt;
			&amp;quot;oun&amp;quot;, -- 3 chars&lt;br /&gt;
			&amp;quot;an&amp;quot;, &amp;quot;ch&amp;quot;, &amp;quot;è&amp;quot;, &amp;quot;en&amp;quot;, &amp;quot;ng&amp;quot;, &amp;quot;ò&amp;quot;, &amp;quot;on&amp;quot;, &amp;quot;ou&amp;quot;, &amp;quot;ui&amp;quot; -- 2 chars&lt;br /&gt;
		},&lt;br /&gt;
		to = {&lt;br /&gt;
			&amp;quot;o&amp;quot; .. p[4],&lt;br /&gt;
			&amp;quot;a&amp;quot; .. p[1], &amp;quot;c&amp;quot; .. p[1], &amp;quot;e&amp;quot; .. p[1], &amp;quot;e&amp;quot; .. p[2], &amp;quot;n&amp;quot; .. p[1], &amp;quot;o&amp;quot; .. p[1], &amp;quot;o&amp;quot; .. p[2], &amp;quot;o&amp;quot; .. p[3], &amp;quot;u&amp;quot; .. p[1]&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;hu&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Hungarian&amp;quot;,&lt;br /&gt;
	9067,&lt;br /&gt;
	&amp;quot;urj-ugr&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Hung&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;ohu&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Latn = {&lt;br /&gt;
			from = {&lt;br /&gt;
				&amp;quot;dzs&amp;quot;, -- 3 chars&lt;br /&gt;
				&amp;quot;á&amp;quot;, &amp;quot;cs&amp;quot;, &amp;quot;dz&amp;quot;, &amp;quot;é&amp;quot;, &amp;quot;gy&amp;quot;, &amp;quot;í&amp;quot;, &amp;quot;ly&amp;quot;, &amp;quot;ny&amp;quot;, &amp;quot;ó&amp;quot;, &amp;quot;ö&amp;quot;, &amp;quot;ő&amp;quot;, &amp;quot;sz&amp;quot;, &amp;quot;ty&amp;quot;, &amp;quot;ú&amp;quot;, &amp;quot;ü&amp;quot;, &amp;quot;ű&amp;quot;, &amp;quot;zs&amp;quot;, -- 2 chars&lt;br /&gt;
			},&lt;br /&gt;
			to = {&lt;br /&gt;
				&amp;quot;d&amp;quot; .. p[2],&lt;br /&gt;
				&amp;quot;a&amp;quot; .. p[1], &amp;quot;c&amp;quot; .. p[1], &amp;quot;d&amp;quot; .. p[1], &amp;quot;e&amp;quot; .. p[1], &amp;quot;g&amp;quot; .. p[1], &amp;quot;i&amp;quot; .. p[1], &amp;quot;l&amp;quot; .. p[1], &amp;quot;n&amp;quot; .. p[1], &amp;quot;o&amp;quot; .. p[1], &amp;quot;o&amp;quot; .. p[2], &amp;quot;o&amp;quot; .. p[3], &amp;quot;s&amp;quot; .. p[1], &amp;quot;t&amp;quot; .. p[1], &amp;quot;u&amp;quot; .. p[1], &amp;quot;u&amp;quot; .. p[2], &amp;quot;u&amp;quot; .. p[3], &amp;quot;z&amp;quot; .. p[1],&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = {&lt;br /&gt;
		Latn = &amp;quot;AaÁáBbCcDdEeÉéFfGgHhIiÍíJjKkLlMmNnOoÓóÖöŐőPpQqRrSsTtUuÚúÜüŰűVvWwXxYyZz&amp;quot;,&lt;br /&gt;
		c.punc&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;hy&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Armenian&amp;quot;,&lt;br /&gt;
	8785,&lt;br /&gt;
	&amp;quot;hyx&amp;quot;,&lt;br /&gt;
	&amp;quot;Armn, Brai&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;axm&amp;quot;,&lt;br /&gt;
	translit = {Armn = &amp;quot;Armn-translit&amp;quot;},&lt;br /&gt;
	override_translit = true,&lt;br /&gt;
	entry_name = {&lt;br /&gt;
		Armn = {&lt;br /&gt;
			remove_diacritics = &amp;quot;՛՜՞՟&amp;quot;,&lt;br /&gt;
			from = {&amp;quot;եւ&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;և&amp;quot;, &amp;quot;յ&amp;quot;, &amp;quot;ի&amp;quot;, &amp;quot;է&amp;quot;}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Armn = {&lt;br /&gt;
			from = {&lt;br /&gt;
				&amp;quot;ու&amp;quot;, &amp;quot;եւ&amp;quot;, -- 2 chars&lt;br /&gt;
				&amp;quot;և&amp;quot; -- 1 char&lt;br /&gt;
			},&lt;br /&gt;
			to = {&lt;br /&gt;
				&amp;quot;ւ&amp;quot;, &amp;quot;եվ&amp;quot;,&lt;br /&gt;
				&amp;quot;եվ&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;hz&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Herero&amp;quot;,&lt;br /&gt;
	33315,&lt;br /&gt;
	&amp;quot;bnt-swb&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ia&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Interlingua&amp;quot;,&lt;br /&gt;
	35934,&lt;br /&gt;
	&amp;quot;art&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;id&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Indonesian&amp;quot;,&lt;br /&gt;
	9240,&lt;br /&gt;
	&amp;quot;poz-mly&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;ms&amp;quot;,&lt;br /&gt;
	standardChars = &amp;quot;AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ie&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Interlingue&amp;quot;,&lt;br /&gt;
	35850,&lt;br /&gt;
	&amp;quot;art&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	type = &amp;quot;appendix-constructed&amp;quot;,&lt;br /&gt;
	entry_name = {remove_diacritics = c.grave .. c.acute .. c.circ},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ig&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Igbo&amp;quot;,&lt;br /&gt;
	33578,&lt;br /&gt;
	&amp;quot;alv-igb&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	entry_name = {remove_diacritics = c.grave .. c.acute .. c.macron},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&amp;quot;gb&amp;quot;, &amp;quot;gh&amp;quot;, &amp;quot;gw&amp;quot;, &amp;quot;ị&amp;quot;, &amp;quot;kp&amp;quot;, &amp;quot;kw&amp;quot;, &amp;quot;ṅ&amp;quot;, &amp;quot;nw&amp;quot;, &amp;quot;ny&amp;quot;, &amp;quot;ọ&amp;quot;, &amp;quot;sh&amp;quot;, &amp;quot;ụ&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;g&amp;quot; .. p[1], &amp;quot;g&amp;quot; .. p[2], &amp;quot;g&amp;quot; .. p[3], &amp;quot;i&amp;quot; .. p[1], &amp;quot;k&amp;quot; .. p[1], &amp;quot;k&amp;quot; .. p[2], &amp;quot;n&amp;quot; .. p[1], &amp;quot;n&amp;quot; .. p[2], &amp;quot;n&amp;quot; .. p[3], &amp;quot;o&amp;quot; .. p[1], &amp;quot;s&amp;quot; .. p[1], &amp;quot;u&amp;quot; .. p[1]}&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ii&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Sichuan Yi&amp;quot;,&lt;br /&gt;
	34235,&lt;br /&gt;
	&amp;quot;tbq-lol&amp;quot;,&lt;br /&gt;
	&amp;quot;Yiii&amp;quot;,&lt;br /&gt;
	translit = &amp;quot;ii-translit&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ik&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Inupiaq&amp;quot;,&lt;br /&gt;
	27183,&lt;br /&gt;
	&amp;quot;esx-inu&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&lt;br /&gt;
			&amp;quot;ch&amp;quot;, &amp;quot;ġ&amp;quot;, &amp;quot;dj&amp;quot;, &amp;quot;ḷ&amp;quot;, &amp;quot;ł̣&amp;quot;, &amp;quot;ñ&amp;quot;, &amp;quot;ng&amp;quot;, &amp;quot;r̂&amp;quot;, &amp;quot;sr&amp;quot;, &amp;quot;zr&amp;quot;, -- 2 chars&lt;br /&gt;
			&amp;quot;ł&amp;quot;, &amp;quot;ŋ&amp;quot;, &amp;quot;ʼ&amp;quot; -- 1 char&lt;br /&gt;
		},&lt;br /&gt;
		to = {&lt;br /&gt;
			&amp;quot;c&amp;quot; .. p[1], &amp;quot;g&amp;quot; .. p[1], &amp;quot;h&amp;quot; .. p[1], &amp;quot;l&amp;quot; .. p[1], &amp;quot;l&amp;quot; .. p[3], &amp;quot;n&amp;quot; .. p[1], &amp;quot;n&amp;quot; .. p[2], &amp;quot;r&amp;quot; .. p[1], &amp;quot;s&amp;quot; .. p[1], &amp;quot;z&amp;quot; .. p[1],&lt;br /&gt;
			&amp;quot;l&amp;quot; .. p[2], &amp;quot;n&amp;quot; .. p[2], &amp;quot;z&amp;quot; .. p[2]&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;io&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Ido&amp;quot;,&lt;br /&gt;
	35224,&lt;br /&gt;
	&amp;quot;art&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;is&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Icelandic&amp;quot;,&lt;br /&gt;
	294,&lt;br /&gt;
	&amp;quot;gmq&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;non&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&amp;quot;á&amp;quot;, &amp;quot;ð&amp;quot;, &amp;quot;é&amp;quot;, &amp;quot;í&amp;quot;, &amp;quot;ó&amp;quot;, &amp;quot;ú&amp;quot;, &amp;quot;ý&amp;quot;, &amp;quot;þ&amp;quot;, &amp;quot;æ&amp;quot;, &amp;quot;ö&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;a&amp;quot; .. p[1], &amp;quot;d&amp;quot; .. p[1], &amp;quot;e&amp;quot; .. p[1], &amp;quot;i&amp;quot; .. p[1], &amp;quot;o&amp;quot; .. p[1], &amp;quot;u&amp;quot; .. p[1], &amp;quot;y&amp;quot; .. p[1], &amp;quot;z&amp;quot; .. p[1], &amp;quot;z&amp;quot; .. p[2], &amp;quot;z&amp;quot; .. p[3]}&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = &amp;quot;AaÁáBbDdÐðEeÉéFfGgHhIiÍíJjKkLlMmNnOoÓóPpRrSsTtUuÚúVvXxYyÝýÞþÆæÖö&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;it&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Italian&amp;quot;,&lt;br /&gt;
	652,&lt;br /&gt;
	&amp;quot;roa-itd&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;it-oit&amp;quot;,&lt;br /&gt;
	sort_key = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.diaer .. c.ringabove},&lt;br /&gt;
	standardChars = &amp;quot;AaÀàBbCcDdEeÈèÉéFfGgHhIiÌìLlMmNnOoÒòPpQqRrSsTtUuÙùVvZz&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;iu&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Inuktitut&amp;quot;,&lt;br /&gt;
	29921,&lt;br /&gt;
	&amp;quot;esx-inu&amp;quot;,&lt;br /&gt;
	&amp;quot;Cans, Latn&amp;quot;,&lt;br /&gt;
	translit = {Cans = &amp;quot;cr-translit&amp;quot;},&lt;br /&gt;
	override_translit = true,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ja&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Japanese&amp;quot;,&lt;br /&gt;
	5287,&lt;br /&gt;
	&amp;quot;jpx&amp;quot;,&lt;br /&gt;
	&amp;quot;Jpan, Brai&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;ja-ear&amp;quot;,&lt;br /&gt;
	sort_key = {Jpan = &amp;quot;Jpan-sortkey&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;jv&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Javanese&amp;quot;,&lt;br /&gt;
	33549,&lt;br /&gt;
	&amp;quot;poz-sus&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Java&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;kaw&amp;quot;,&lt;br /&gt;
	translit = {Java = &amp;quot;jv-translit&amp;quot;},&lt;br /&gt;
	link_tr = true,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Latn = {&lt;br /&gt;
			from = {&amp;quot;dh&amp;quot;, &amp;quot;é&amp;quot;, &amp;quot;è&amp;quot;, &amp;quot;ng&amp;quot;, &amp;quot;ny&amp;quot;, &amp;quot;th&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;d&amp;quot; .. p[1], &amp;quot;e&amp;quot; .. p[1], &amp;quot;e&amp;quot; .. p[2], &amp;quot;n&amp;quot; .. p[1], &amp;quot;n&amp;quot; .. p[2], &amp;quot;t&amp;quot; .. p[1]}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ka&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Georgian&amp;quot;,&lt;br /&gt;
	8108,&lt;br /&gt;
	&amp;quot;ccs-gzn&amp;quot;,&lt;br /&gt;
	&amp;quot;Geor, Geok, Hebr&amp;quot;, -- Hebr is used to write Judeo-Georgian&lt;br /&gt;
	ancestors = &amp;quot;ka-mid&amp;quot;,&lt;br /&gt;
	translit = {&lt;br /&gt;
		Geor = &amp;quot;Geor-translit&amp;quot;,&lt;br /&gt;
		Geok = &amp;quot;Geok-translit&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	override_translit = true,&lt;br /&gt;
	entry_name = {remove_diacritics = c.circ},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;kg&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Kongo&amp;quot;,&lt;br /&gt;
	33702,&lt;br /&gt;
	&amp;quot;bnt-kng&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ki&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Kikuyu&amp;quot;,&lt;br /&gt;
	33587,&lt;br /&gt;
	&amp;quot;bnt-kka&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;kj&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Kwanyama&amp;quot;,&lt;br /&gt;
	1405077,&lt;br /&gt;
	&amp;quot;bnt-ova&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;kk&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Kazakh&amp;quot;,&lt;br /&gt;
	9252,&lt;br /&gt;
	&amp;quot;trk-kno&amp;quot;,&lt;br /&gt;
	&amp;quot;Cyrl, Latn, kk-Arab&amp;quot;,&lt;br /&gt;
	translit = {&lt;br /&gt;
		Cyrl = {&lt;br /&gt;
			from = {&lt;br /&gt;
				&amp;quot;Ё&amp;quot;, &amp;quot;ё&amp;quot;, &amp;quot;Й&amp;quot;, &amp;quot;й&amp;quot;, &amp;quot;Нг&amp;quot;, &amp;quot;нг&amp;quot;, &amp;quot;Ӯ&amp;quot;, &amp;quot;ӯ&amp;quot;, -- 2 chars; are &amp;quot;Ӯ&amp;quot; and &amp;quot;ӯ&amp;quot; actually used?&lt;br /&gt;
				&amp;quot;А&amp;quot;, &amp;quot;а&amp;quot;, &amp;quot;Ә&amp;quot;, &amp;quot;ә&amp;quot;, &amp;quot;Б&amp;quot;, &amp;quot;б&amp;quot;, &amp;quot;В&amp;quot;, &amp;quot;в&amp;quot;, &amp;quot;Г&amp;quot;, &amp;quot;г&amp;quot;, &amp;quot;Ғ&amp;quot;, &amp;quot;ғ&amp;quot;, &amp;quot;Д&amp;quot;, &amp;quot;д&amp;quot;, &amp;quot;Е&amp;quot;, &amp;quot;е&amp;quot;, &amp;quot;Ж&amp;quot;, &amp;quot;ж&amp;quot;, &amp;quot;З&amp;quot;, &amp;quot;з&amp;quot;, &amp;quot;И&amp;quot;, &amp;quot;и&amp;quot;, &amp;quot;К&amp;quot;, &amp;quot;к&amp;quot;, &amp;quot;Қ&amp;quot;, &amp;quot;қ&amp;quot;, &amp;quot;Л&amp;quot;, &amp;quot;л&amp;quot;, &amp;quot;М&amp;quot;, &amp;quot;м&amp;quot;, &amp;quot;Н&amp;quot;, &amp;quot;н&amp;quot;, &amp;quot;Ң&amp;quot;, &amp;quot;ң&amp;quot;, &amp;quot;О&amp;quot;, &amp;quot;о&amp;quot;, &amp;quot;Ө&amp;quot;, &amp;quot;ө&amp;quot;, &amp;quot;П&amp;quot;, &amp;quot;п&amp;quot;, &amp;quot;Р&amp;quot;, &amp;quot;р&amp;quot;, &amp;quot;С&amp;quot;, &amp;quot;с&amp;quot;, &amp;quot;Т&amp;quot;, &amp;quot;т&amp;quot;, &amp;quot;У&amp;quot;, &amp;quot;у&amp;quot;, &amp;quot;Ұ&amp;quot;, &amp;quot;ұ&amp;quot;, &amp;quot;Ү&amp;quot;, &amp;quot;ү&amp;quot;, &amp;quot;Ф&amp;quot;, &amp;quot;ф&amp;quot;, &amp;quot;Х&amp;quot;, &amp;quot;х&amp;quot;, &amp;quot;Һ&amp;quot;, &amp;quot;һ&amp;quot;, &amp;quot;Ц&amp;quot;, &amp;quot;ц&amp;quot;, &amp;quot;Ч&amp;quot;, &amp;quot;ч&amp;quot;, &amp;quot;Ш&amp;quot;, &amp;quot;ш&amp;quot;, &amp;quot;Щ&amp;quot;, &amp;quot;щ&amp;quot;, &amp;quot;Ъ&amp;quot;, &amp;quot;ъ&amp;quot;, &amp;quot;Ы&amp;quot;, &amp;quot;ы&amp;quot;, &amp;quot;І&amp;quot;, &amp;quot;і&amp;quot;, &amp;quot;Ь&amp;quot;, &amp;quot;ь&amp;quot;, &amp;quot;Э&amp;quot;, &amp;quot;э&amp;quot;, &amp;quot;Ю&amp;quot;, &amp;quot;ю&amp;quot;, &amp;quot;Я&amp;quot;, &amp;quot;я&amp;quot;, -- 1 char&lt;br /&gt;
			},&lt;br /&gt;
			to = {&lt;br /&gt;
				&amp;quot;E&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;İ&amp;quot;, &amp;quot;i&amp;quot;, &amp;quot;Ñ&amp;quot;, &amp;quot;ñ&amp;quot;, &amp;quot;U&amp;quot;, &amp;quot;u&amp;quot;,&lt;br /&gt;
				&amp;quot;A&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;Ä&amp;quot;, &amp;quot;ä&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;V&amp;quot;, &amp;quot;v&amp;quot;, &amp;quot;G&amp;quot;, &amp;quot;g&amp;quot;, &amp;quot;Ğ&amp;quot;, &amp;quot;ğ&amp;quot;, &amp;quot;D&amp;quot;, &amp;quot;d&amp;quot;, &amp;quot;E&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;J&amp;quot;, &amp;quot;j&amp;quot;, &amp;quot;Z&amp;quot;, &amp;quot;z&amp;quot;, &amp;quot;İ&amp;quot;, &amp;quot;i&amp;quot;, &amp;quot;K&amp;quot;, &amp;quot;k&amp;quot;, &amp;quot;Q&amp;quot;, &amp;quot;q&amp;quot;, &amp;quot;L&amp;quot;, &amp;quot;l&amp;quot;, &amp;quot;M&amp;quot;, &amp;quot;m&amp;quot;, &amp;quot;N&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;Ñ&amp;quot;, &amp;quot;ñ&amp;quot;, &amp;quot;O&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;Ö&amp;quot;, &amp;quot;ö&amp;quot;, &amp;quot;P&amp;quot;, &amp;quot;p&amp;quot;, &amp;quot;R&amp;quot;, &amp;quot;r&amp;quot;, &amp;quot;S&amp;quot;, &amp;quot;s&amp;quot;, &amp;quot;T&amp;quot;, &amp;quot;t&amp;quot;, &amp;quot;U&amp;quot;, &amp;quot;u&amp;quot;, &amp;quot;Ū&amp;quot;, &amp;quot;ū&amp;quot;, &amp;quot;Ü&amp;quot;, &amp;quot;ü&amp;quot;, &amp;quot;F&amp;quot;, &amp;quot;f&amp;quot;, &amp;quot;X&amp;quot;, &amp;quot;x&amp;quot;, &amp;quot;H&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;S&amp;quot;, &amp;quot;s&amp;quot;, &amp;quot;Ç&amp;quot;, &amp;quot;ç&amp;quot;, &amp;quot;Ş&amp;quot;, &amp;quot;ş&amp;quot;, &amp;quot;Şş&amp;quot;, &amp;quot;şş&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;Y&amp;quot;, &amp;quot;y&amp;quot;, &amp;quot;I&amp;quot;, &amp;quot;ı&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;É&amp;quot;, &amp;quot;é&amp;quot;, &amp;quot;Ü&amp;quot;, &amp;quot;ü&amp;quot;, &amp;quot;Ä&amp;quot;, &amp;quot;ä&amp;quot;,&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	override_translit = true,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Cyrl = {&lt;br /&gt;
			from = {&amp;quot;ә&amp;quot;, &amp;quot;ғ&amp;quot;, &amp;quot;ё&amp;quot;, &amp;quot;қ&amp;quot;, &amp;quot;ң&amp;quot;, &amp;quot;ө&amp;quot;, &amp;quot;ұ&amp;quot;, &amp;quot;ү&amp;quot;, &amp;quot;һ&amp;quot;, &amp;quot;і&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;а&amp;quot; .. p[1], &amp;quot;г&amp;quot; .. p[1], &amp;quot;е&amp;quot; .. p[1], &amp;quot;к&amp;quot; .. p[1], &amp;quot;н&amp;quot; .. p[1], &amp;quot;о&amp;quot; .. p[1], &amp;quot;у&amp;quot; .. p[1], &amp;quot;у&amp;quot; .. p[2], &amp;quot;х&amp;quot; .. p[1], &amp;quot;ы&amp;quot; .. p[1]}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;kl&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Greenlandic&amp;quot;,&lt;br /&gt;
	25355,&lt;br /&gt;
	&amp;quot;esx-inu&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&amp;quot;æ&amp;quot;, &amp;quot;ø&amp;quot;, &amp;quot;å&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;z&amp;quot; .. p[1], &amp;quot;z&amp;quot; .. p[2], &amp;quot;z&amp;quot; .. p[3]}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;km&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Khmer&amp;quot;,&lt;br /&gt;
	9205,&lt;br /&gt;
	&amp;quot;mkh-kmr&amp;quot;,&lt;br /&gt;
	&amp;quot;Khmr&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;xhm&amp;quot;,&lt;br /&gt;
	translit = &amp;quot;km-translit&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;kn&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Kannada&amp;quot;,&lt;br /&gt;
	33673,&lt;br /&gt;
	&amp;quot;dra&amp;quot;,&lt;br /&gt;
	&amp;quot;Knda&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;dra-mkn&amp;quot;,&lt;br /&gt;
	translit = &amp;quot;kn-translit&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ko&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Korean&amp;quot;,&lt;br /&gt;
	9176,&lt;br /&gt;
	&amp;quot;qfa-kor&amp;quot;,&lt;br /&gt;
	&amp;quot;Kore, Brai&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;ko-ear&amp;quot;,&lt;br /&gt;
	translit = {Kore = &amp;quot;ko-translit&amp;quot;},&lt;br /&gt;
	entry_name = {Kore = s[&amp;quot;Kore-entryname&amp;quot;]},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;kr&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Kanuri&amp;quot;,&lt;br /&gt;
	36094,&lt;br /&gt;
	&amp;quot;ssa-sah&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Arab&amp;quot;,&lt;br /&gt;
	entry_name = {Latn = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.breve}}, -- the sortkey and entry_name are only for standard Kanuri; when dialectal entries get added, someone will have to work out how the dialects should be represented orthographically&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Latn = {&lt;br /&gt;
			from = {&amp;quot;ǝ&amp;quot;, &amp;quot;ny&amp;quot;, &amp;quot;ɍ&amp;quot;, &amp;quot;sh&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;e&amp;quot; .. p[1], &amp;quot;n&amp;quot; .. p[1], &amp;quot;r&amp;quot; .. p[1], &amp;quot;s&amp;quot; .. p[1]}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ks&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Kashmiri&amp;quot;,&lt;br /&gt;
	33552,&lt;br /&gt;
	&amp;quot;inc-dar&amp;quot;,&lt;br /&gt;
	&amp;quot;ks-Arab, Deva, Shrd, Latn&amp;quot;,&lt;br /&gt;
	translit = {&lt;br /&gt;
		[&amp;quot;ks-Arab&amp;quot;] = &amp;quot;ks-Arab-translit&amp;quot;,&lt;br /&gt;
		Deva = &amp;quot;ks-Deva-translit&amp;quot;,&lt;br /&gt;
		Shrd = &amp;quot;Shrd-translit&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;kv&amp;quot; IS TREATED AS &amp;quot;koi&amp;quot;, &amp;quot;kpv&amp;quot;, SEE WT:LT&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;kw&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Cornish&amp;quot;,&lt;br /&gt;
	25289,&lt;br /&gt;
	&amp;quot;cel-bry&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;cnx&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&amp;quot;ch&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;c&amp;quot; .. p[1]}&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ky&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Kyrgyz&amp;quot;,&lt;br /&gt;
	9255,&lt;br /&gt;
	&amp;quot;trk-kip&amp;quot;,&lt;br /&gt;
	&amp;quot;Cyrl, Latn, Arab&amp;quot;,&lt;br /&gt;
	translit = {Cyrl = &amp;quot;ky-translit&amp;quot;},&lt;br /&gt;
	override_translit = true,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Cyrl = {&lt;br /&gt;
			from = {&amp;quot;ё&amp;quot;, &amp;quot;ң&amp;quot;, &amp;quot;ө&amp;quot;, &amp;quot;ү&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;е&amp;quot; .. p[1], &amp;quot;н&amp;quot; .. p[1], &amp;quot;о&amp;quot; .. p[1], &amp;quot;у&amp;quot; .. p[1]}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;la&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Latin&amp;quot;,&lt;br /&gt;
	397,&lt;br /&gt;
	&amp;quot;itc&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Ital&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;itc-ola&amp;quot;,&lt;br /&gt;
	entry_name = {Latn = {remove_diacritics = c.macron .. c.breve .. c.diaer .. c.dinvbreve}},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Latn = {&lt;br /&gt;
			from = {&amp;quot;æ&amp;quot;, &amp;quot;œ&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;ae&amp;quot;, &amp;quot;oe&amp;quot;}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = {&lt;br /&gt;
		Latn = &amp;quot;AaBbCcDdEeFfGgHhIiLlMmNnOoPpQqRrSsTtUuVvXxZz&amp;quot;,&lt;br /&gt;
		c.punc&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;lb&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Luxembourgish&amp;quot;,&lt;br /&gt;
	9051,&lt;br /&gt;
	&amp;quot;gmw&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;gmw-cfr&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&amp;quot;ä&amp;quot;, &amp;quot;ë&amp;quot;, &amp;quot;é&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;z&amp;quot; .. p[1], &amp;quot;z&amp;quot; .. p[2], &amp;quot;z&amp;quot; .. p[3]}&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;lg&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Luganda&amp;quot;,&lt;br /&gt;
	33368,&lt;br /&gt;
	&amp;quot;bnt-nyg&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	entry_name = {remove_diacritics = c.acute .. c.circ},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&amp;quot;ŋ&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;n&amp;quot; .. p[1]}&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;li&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Limburgish&amp;quot;,&lt;br /&gt;
	102172,&lt;br /&gt;
	&amp;quot;gmw&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;dum&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ln&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Lingala&amp;quot;,&lt;br /&gt;
	36217,&lt;br /&gt;
	&amp;quot;bnt-bmo&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		remove_diacritics = c.acute .. c.circ .. c.caron,&lt;br /&gt;
		from = {&amp;quot;ɛ&amp;quot;, &amp;quot;gb&amp;quot;, &amp;quot;mb&amp;quot;, &amp;quot;mp&amp;quot;, &amp;quot;nd&amp;quot;, &amp;quot;ng&amp;quot;, &amp;quot;nk&amp;quot;, &amp;quot;ns&amp;quot;, &amp;quot;nt&amp;quot;, &amp;quot;ny&amp;quot;, &amp;quot;nz&amp;quot;, &amp;quot;ɔ&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;e&amp;quot; .. p[1], &amp;quot;g&amp;quot; .. p[1], &amp;quot;m&amp;quot; .. p[1], &amp;quot;m&amp;quot; .. p[2], &amp;quot;n&amp;quot; .. p[1], &amp;quot;n&amp;quot; .. p[2], &amp;quot;n&amp;quot; .. p[3], &amp;quot;n&amp;quot; .. p[4], &amp;quot;n&amp;quot; .. p[5], &amp;quot;n&amp;quot; .. p[6], &amp;quot;n&amp;quot; .. p[7], &amp;quot;o&amp;quot; .. p[1]}&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;lo&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Lao&amp;quot;,&lt;br /&gt;
	9211,&lt;br /&gt;
	&amp;quot;tai-swe&amp;quot;,&lt;br /&gt;
	&amp;quot;Laoo&amp;quot;,&lt;br /&gt;
	translit = &amp;quot;lo-translit&amp;quot;,&lt;br /&gt;
	sort_key = &amp;quot;Laoo-sortkey&amp;quot;,&lt;br /&gt;
	standardChars = &amp;quot;0-9ກຂຄງຈຊຍດຕຖທນບປຜຝພຟມຢຣລວສຫອຮຯ-ໝ&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;lt&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Lithuanian&amp;quot;,&lt;br /&gt;
	9083,&lt;br /&gt;
	&amp;quot;bat&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;olt&amp;quot;,&lt;br /&gt;
	entry_name = {remove_diacritics = c.grave .. c.acute .. c.tilde},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&amp;quot;ą&amp;quot;, &amp;quot;č&amp;quot;, &amp;quot;ę&amp;quot;, &amp;quot;ė&amp;quot;, &amp;quot;į&amp;quot;, &amp;quot;y&amp;quot;, &amp;quot;š&amp;quot;, &amp;quot;ų&amp;quot;, &amp;quot;ū&amp;quot;, &amp;quot;ž&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;a&amp;quot; .. p[1], &amp;quot;c&amp;quot; .. p[1], &amp;quot;e&amp;quot; .. p[1], &amp;quot;e&amp;quot; .. p[2], &amp;quot;i&amp;quot; .. p[1], &amp;quot;i&amp;quot; .. p[2], &amp;quot;s&amp;quot; .. p[1], &amp;quot;u&amp;quot; .. p[1], &amp;quot;u&amp;quot; .. p[2], &amp;quot;z&amp;quot; .. p[1]}&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = &amp;quot;AaĄąBbCcČčDdEeĘęĖėFfGgHhIiĮįYyJjKkLlMmNnOoPpRrSsŠšTtUuŲųŪūVvZzŽž&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;lu&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Luba-Katanga&amp;quot;,&lt;br /&gt;
	36157,&lt;br /&gt;
	&amp;quot;bnt-lub&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;lv&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Latvian&amp;quot;,&lt;br /&gt;
	9078,&lt;br /&gt;
	&amp;quot;bat&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	entry_name = {&lt;br /&gt;
		-- This attempts to convert vowels with tone marks to vowels either with or without macrons. Specifically, there should be no macrons if the vowel is part of a diphthong (including resonant diphthongs such pìrksts -&amp;gt; pirksts not #pīrksts). What we do is first convert the vowel + tone mark to a vowel + tilde in a decomposed fashion, then remove the tilde in diphthongs, then convert the remaining vowel + tilde sequences to macroned vowels, then delete any other tilde. We leave already-macroned vowels alone: Both e.g. ar and ār occur before consonants. FIXME: This still might not be sufficient.&lt;br /&gt;
		from = {&amp;quot;([Ee])&amp;quot; .. c.cedilla, &amp;quot;[&amp;quot; .. c.grave .. c.circ .. c.tilde ..&amp;quot;]&amp;quot;, &amp;quot;([aAeEiIoOuU])&amp;quot; .. c.tilde ..&amp;quot;?([lrnmuiLRNMUI])&amp;quot; .. c.tilde .. &amp;quot;?([^aAeEiIoOuU])&amp;quot;, &amp;quot;([aAeEiIoOuU])&amp;quot; .. c.tilde ..&amp;quot;?([lrnmuiLRNMUI])&amp;quot; .. c.tilde ..&amp;quot;?$&amp;quot;, &amp;quot;([iI])&amp;quot; .. c.tilde .. &amp;quot;?([eE])&amp;quot; .. c.tilde .. &amp;quot;?&amp;quot;, &amp;quot;([aAeEiIuU])&amp;quot; .. c.tilde, c.tilde},&lt;br /&gt;
		to = {&amp;quot;%1&amp;quot;, c.tilde, &amp;quot;%1%2%3&amp;quot;, &amp;quot;%1%2&amp;quot;, &amp;quot;%1%2&amp;quot;, &amp;quot;%1&amp;quot; .. c.macron}&lt;br /&gt;
	},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&amp;quot;ā&amp;quot;, &amp;quot;č&amp;quot;, &amp;quot;ē&amp;quot;, &amp;quot;ģ&amp;quot;, &amp;quot;ī&amp;quot;, &amp;quot;ķ&amp;quot;, &amp;quot;ļ&amp;quot;, &amp;quot;ņ&amp;quot;, &amp;quot;š&amp;quot;, &amp;quot;ū&amp;quot;, &amp;quot;ž&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;a&amp;quot; .. p[1], &amp;quot;c&amp;quot; .. p[1], &amp;quot;e&amp;quot; .. p[1], &amp;quot;g&amp;quot; .. p[1], &amp;quot;i&amp;quot; .. p[1], &amp;quot;k&amp;quot; .. p[1], &amp;quot;l&amp;quot; .. p[1], &amp;quot;n&amp;quot; .. p[1], &amp;quot;s&amp;quot; .. p[1], &amp;quot;u&amp;quot; .. p[1], &amp;quot;z&amp;quot; .. p[1]}&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = &amp;quot;AaĀāBbCcČčDdEeĒēFfGgĢģHhIiĪīJjKkĶķLlĻļMmNnŅņOoPpRrSsŠšTtUuŪūVvZzŽž&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;mg&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Malagasy&amp;quot;,&lt;br /&gt;
	7930,&lt;br /&gt;
	&amp;quot;poz-bre&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;mh&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Marshallese&amp;quot;,&lt;br /&gt;
	36280,&lt;br /&gt;
	&amp;quot;poz-mic&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&amp;quot;ā&amp;quot;, &amp;quot;ļ&amp;quot;, &amp;quot;m̧&amp;quot;, &amp;quot;ņ&amp;quot;, &amp;quot;n̄&amp;quot;, &amp;quot;o̧&amp;quot;, &amp;quot;ō&amp;quot;, &amp;quot;ū&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;a&amp;quot; .. p[1], &amp;quot;l&amp;quot; .. p[1], &amp;quot;m&amp;quot; .. p[1], &amp;quot;n&amp;quot; .. p[1], &amp;quot;n&amp;quot; .. p[2], &amp;quot;o&amp;quot; .. p[1], &amp;quot;o&amp;quot; .. p[2], &amp;quot;u&amp;quot; .. p[1]}&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;mi&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Maori&amp;quot;,&lt;br /&gt;
	36451,&lt;br /&gt;
	&amp;quot;poz-pep&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		remove_diacritics = c.macron,&lt;br /&gt;
		from = {&amp;quot;ng&amp;quot;, &amp;quot;wh&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;z&amp;quot; .. p[1], &amp;quot;z&amp;quot; .. p[2]}&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;mk&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Macedonian&amp;quot;,&lt;br /&gt;
	9296,&lt;br /&gt;
	&amp;quot;zls&amp;quot;,&lt;br /&gt;
	&amp;quot;Cyrl&amp;quot;,&lt;br /&gt;
	translit = &amp;quot;mk-translit&amp;quot;,&lt;br /&gt;
	entry_name = {&lt;br /&gt;
		remove_diacritics = c.acute,&lt;br /&gt;
		remove_exceptions = {&amp;quot;Ѓ&amp;quot;, &amp;quot;ѓ&amp;quot;, &amp;quot;Ќ&amp;quot;, &amp;quot;ќ&amp;quot;}&lt;br /&gt;
	},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		remove_diacritics = c.grave,&lt;br /&gt;
		from = {&amp;quot;ѓ&amp;quot;, &amp;quot;ѕ&amp;quot;, &amp;quot;ј&amp;quot;, &amp;quot;љ&amp;quot;, &amp;quot;њ&amp;quot;, &amp;quot;ќ&amp;quot;, &amp;quot;џ&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;д&amp;quot; .. p[1], &amp;quot;з&amp;quot; .. p[1], &amp;quot;и&amp;quot; .. p[1], &amp;quot;л&amp;quot; .. p[1], &amp;quot;н&amp;quot; .. p[1], &amp;quot;т&amp;quot; .. p[1], &amp;quot;ч&amp;quot; .. p[1]}&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = &amp;quot;АаБбВвГгДдЃѓЕеЖжЗзЅѕИиЈјКкЛлЉљМмНнЊњОоПпРрСсТтЌќУуФфХхЦцЧчЏџШш&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ml&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Malayalam&amp;quot;,&lt;br /&gt;
	36236,&lt;br /&gt;
	&amp;quot;dra&amp;quot;,&lt;br /&gt;
	&amp;quot;Mlym&amp;quot;,&lt;br /&gt;
	translit = &amp;quot;ml-translit&amp;quot;,&lt;br /&gt;
	override_translit = true,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;mn&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Mongolian&amp;quot;,&lt;br /&gt;
	9246,&lt;br /&gt;
	&amp;quot;xgn-cen&amp;quot;,&lt;br /&gt;
	&amp;quot;Cyrl, Mong, Latn, Brai&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;cmg&amp;quot;,&lt;br /&gt;
	translit = {&lt;br /&gt;
		Cyrl = &amp;quot;mn-translit&amp;quot;,&lt;br /&gt;
		Mong = &amp;quot;Mong-translit&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	override_translit = true,&lt;br /&gt;
	display_text = {Mong = s[&amp;quot;Mong-displaytext&amp;quot;]},&lt;br /&gt;
	entry_name = {&lt;br /&gt;
		Cyrl = {remove_diacritics = c.grave .. c.acute},&lt;br /&gt;
		Mong = s[&amp;quot;Mong-entryname&amp;quot;],&lt;br /&gt;
	},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Cyrl = {&lt;br /&gt;
			remove_diacritics = c.grave,&lt;br /&gt;
			from = {&amp;quot;ё&amp;quot;, &amp;quot;ө&amp;quot;, &amp;quot;ү&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;е&amp;quot; .. p[1], &amp;quot;о&amp;quot; .. p[1], &amp;quot;у&amp;quot; .. p[1]}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = {&lt;br /&gt;
		Cyrl = &amp;quot;АаБбВвГгДдЕеЁёЖжЗзИиЙйЛлМмНнОоӨөРрСсТтУуҮүХхЦцЧчШшЫыЬьЭэЮюЯя—&amp;quot;,&lt;br /&gt;
		Brai = c.braille,&lt;br /&gt;
		c.punc&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;mo&amp;quot; IS TREATED AS &amp;quot;ro&amp;quot;, SEE WT:LT&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;mr&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Marathi&amp;quot;,&lt;br /&gt;
	1571,&lt;br /&gt;
	&amp;quot;inc-sou&amp;quot;,&lt;br /&gt;
	&amp;quot;Deva, Modi&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;omr&amp;quot;,&lt;br /&gt;
	translit = {&lt;br /&gt;
		Deva = &amp;quot;mr-translit&amp;quot;,&lt;br /&gt;
		Modi = &amp;quot;mr-Modi-translit&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	entry_name = {&lt;br /&gt;
		Deva = {&lt;br /&gt;
			from = {&amp;quot;च़&amp;quot;, &amp;quot;ज़&amp;quot;, &amp;quot;झ़&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;च&amp;quot;, &amp;quot;ज&amp;quot;, &amp;quot;झ&amp;quot;}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ms&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Malay&amp;quot;,&lt;br /&gt;
	9237,&lt;br /&gt;
	&amp;quot;poz-mly&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, ms-Arab&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;ms-cla&amp;quot;,&lt;br /&gt;
	standardChars = {&lt;br /&gt;
		Latn = &amp;quot;AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz&amp;quot;,&lt;br /&gt;
		c.punc&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;mt&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Maltese&amp;quot;,&lt;br /&gt;
	9166,&lt;br /&gt;
	&amp;quot;sem-arb&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	display_text = {&lt;br /&gt;
		from = {&amp;quot;&#039;&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;’&amp;quot;}&lt;br /&gt;
	},&lt;br /&gt;
	entry_name = {&lt;br /&gt;
		from = {&amp;quot;’&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;&#039;&amp;quot;},&lt;br /&gt;
	},&lt;br /&gt;
	ancestors = &amp;quot;sqr&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&lt;br /&gt;
			&amp;quot;ċ&amp;quot;, &amp;quot;ġ&amp;quot;, &amp;quot;ż&amp;quot;, -- Convert into PUA so that decomposed form does not get caught by the next step.&lt;br /&gt;
			&amp;quot;([cgz])&amp;quot;, -- Ensure &amp;quot;c&amp;quot; comes after &amp;quot;ċ&amp;quot;, &amp;quot;g&amp;quot; comes after &amp;quot;ġ&amp;quot; and &amp;quot;z&amp;quot; comes after &amp;quot;ż&amp;quot;.&lt;br /&gt;
			&amp;quot;g&amp;quot; .. p[1] .. &amp;quot;ħ&amp;quot;, -- &amp;quot;għ&amp;quot; after initial conversion of &amp;quot;g&amp;quot;.&lt;br /&gt;
			p[3], p[4], &amp;quot;ħ&amp;quot;, &amp;quot;ie&amp;quot;, p[5] -- Convert &amp;quot;ċ&amp;quot;, &amp;quot;ġ&amp;quot;, &amp;quot;ħ&amp;quot;, &amp;quot;ie&amp;quot;, &amp;quot;ż&amp;quot; into final output.&lt;br /&gt;
		},&lt;br /&gt;
		to = {&lt;br /&gt;
			p[3], p[4], p[5],&lt;br /&gt;
			&amp;quot;%1&amp;quot; .. p[1],&lt;br /&gt;
			&amp;quot;g&amp;quot; .. p[2],&lt;br /&gt;
			&amp;quot;c&amp;quot;, &amp;quot;g&amp;quot;, &amp;quot;h&amp;quot; .. p[1], &amp;quot;i&amp;quot; .. p[1], &amp;quot;z&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;my&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Burmese&amp;quot;,&lt;br /&gt;
	9228,&lt;br /&gt;
	&amp;quot;tbq-brm&amp;quot;,&lt;br /&gt;
	&amp;quot;Mymr&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;obr&amp;quot;,&lt;br /&gt;
	translit = &amp;quot;my-translit&amp;quot;,&lt;br /&gt;
	override_translit = true,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&amp;quot;ျ&amp;quot;, &amp;quot;ြ&amp;quot;, &amp;quot;ွ&amp;quot;, &amp;quot;ှ&amp;quot;, &amp;quot;ဿ&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;္ယ&amp;quot;, &amp;quot;္ရ&amp;quot;, &amp;quot;္ဝ&amp;quot;, &amp;quot;္ဟ&amp;quot;, &amp;quot;သ္သ&amp;quot;}&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;na&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Nauruan&amp;quot;,&lt;br /&gt;
	13307,&lt;br /&gt;
	&amp;quot;poz-mic&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;nb&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Norwegian Bokmål&amp;quot;,&lt;br /&gt;
	25167,&lt;br /&gt;
	&amp;quot;gmq&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	wikimedia_codes = &amp;quot;no&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;gmq-mno, da&amp;quot;,&lt;br /&gt;
	sort_key = s[&amp;quot;no-sortkey&amp;quot;],&lt;br /&gt;
	standardChars = s[&amp;quot;no-standardchars&amp;quot;],&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;nd&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Northern Ndebele&amp;quot;,&lt;br /&gt;
	35613,&lt;br /&gt;
	&amp;quot;bnt-ngu&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	entry_name = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.macron .. c.caron},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ne&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Nepali&amp;quot;,&lt;br /&gt;
	33823,&lt;br /&gt;
	&amp;quot;inc-pah&amp;quot;,&lt;br /&gt;
	&amp;quot;Deva, Newa&amp;quot;,&lt;br /&gt;
	translit = {Deva = &amp;quot;ne-translit&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ng&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Ndonga&amp;quot;,&lt;br /&gt;
	33900,&lt;br /&gt;
	&amp;quot;bnt-ova&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;nl&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Dutch&amp;quot;,&lt;br /&gt;
	7411,&lt;br /&gt;
	&amp;quot;gmw&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Brai&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;dum&amp;quot;,&lt;br /&gt;
	sort_key = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.diaer .. c.ringabove .. c.cedilla .. &amp;quot;&#039;&amp;quot;},&lt;br /&gt;
	standardChars = {&lt;br /&gt;
		Latn = &amp;quot;AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz&amp;quot;,&lt;br /&gt;
		Brai = c.braille,&lt;br /&gt;
		c.punc&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;nn&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Norwegian Nynorsk&amp;quot;,&lt;br /&gt;
	25164,&lt;br /&gt;
	&amp;quot;gmq&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;gmq-mno&amp;quot;,&lt;br /&gt;
	sort_key = s[&amp;quot;no-sortkey&amp;quot;],&lt;br /&gt;
	standardChars = s[&amp;quot;no-standardchars&amp;quot;],&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;no&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Norwegian&amp;quot;,&lt;br /&gt;
	9043,&lt;br /&gt;
	&amp;quot;gmq&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;gmq-mno&amp;quot;,&lt;br /&gt;
	sort_key = s[&amp;quot;no-sortkey&amp;quot;],&lt;br /&gt;
	standardChars = s[&amp;quot;no-standardchars&amp;quot;],&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;nr&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Southern Ndebele&amp;quot;,&lt;br /&gt;
	36785,&lt;br /&gt;
	&amp;quot;bnt-ngu&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	entry_name = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.macron .. c.caron},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;nv&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Navajo&amp;quot;,&lt;br /&gt;
	13310,&lt;br /&gt;
	&amp;quot;apa&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		remove_diacritics = c.acute .. c.ogonek,&lt;br /&gt;
		from = {&lt;br /&gt;
			&amp;quot;chʼ&amp;quot;, &amp;quot;tłʼ&amp;quot;, &amp;quot;tsʼ&amp;quot;, -- 3 chars&lt;br /&gt;
			&amp;quot;ch&amp;quot;, &amp;quot;dl&amp;quot;, &amp;quot;dz&amp;quot;, &amp;quot;gh&amp;quot;, &amp;quot;hw&amp;quot;, &amp;quot;kʼ&amp;quot;, &amp;quot;kw&amp;quot;, &amp;quot;sh&amp;quot;, &amp;quot;tł&amp;quot;, &amp;quot;ts&amp;quot;, &amp;quot;zh&amp;quot;, -- 2 chars&lt;br /&gt;
			&amp;quot;ł&amp;quot;, &amp;quot;ʼ&amp;quot; -- 1 char&lt;br /&gt;
		},&lt;br /&gt;
		to = {&lt;br /&gt;
			&amp;quot;c&amp;quot; .. p[2], &amp;quot;t&amp;quot; .. p[2], &amp;quot;t&amp;quot; .. p[4],&lt;br /&gt;
			&amp;quot;c&amp;quot; .. p[1], &amp;quot;d&amp;quot; .. p[1], &amp;quot;d&amp;quot; .. p[2], &amp;quot;g&amp;quot; .. p[1], &amp;quot;h&amp;quot; .. p[1], &amp;quot;k&amp;quot; .. p[1], &amp;quot;k&amp;quot; .. p[2], &amp;quot;s&amp;quot; .. p[1], &amp;quot;t&amp;quot; .. p[1], &amp;quot;t&amp;quot; .. p[3], &amp;quot;z&amp;quot; .. p[1],&lt;br /&gt;
			&amp;quot;l&amp;quot; .. p[1], &amp;quot;z&amp;quot; .. p[2]&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ny&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Chichewa&amp;quot;,&lt;br /&gt;
	33273,&lt;br /&gt;
	&amp;quot;bnt-nys&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	entry_name = {remove_diacritics = c.acute .. c.circ},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&amp;quot;ng&#039;&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;ng&amp;quot;}&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;oc&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Occitan&amp;quot;,&lt;br /&gt;
	14185,&lt;br /&gt;
	&amp;quot;roa-ocr&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Hebr&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;pro&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Latn = {&lt;br /&gt;
			remove_diacritics = c.grave .. c.acute .. c.diaer .. c.cedilla,&lt;br /&gt;
			from = {&amp;quot;([lns])·h&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;%1h&amp;quot;}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;oj&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Ojibwe&amp;quot;,&lt;br /&gt;
	33875,&lt;br /&gt;
	&amp;quot;alg&amp;quot;,&lt;br /&gt;
	&amp;quot;Cans, Latn&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Latn = {&lt;br /&gt;
			from = {&amp;quot;aa&amp;quot;, &amp;quot;ʼ&amp;quot;, &amp;quot;ii&amp;quot;, &amp;quot;oo&amp;quot;, &amp;quot;sh&amp;quot;, &amp;quot;zh&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;a&amp;quot; .. p[1], &amp;quot;h&amp;quot; .. p[1], &amp;quot;i&amp;quot; .. p[1], &amp;quot;o&amp;quot; .. p[1], &amp;quot;s&amp;quot; .. p[1], &amp;quot;z&amp;quot; .. p[1]}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;om&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Oromo&amp;quot;,&lt;br /&gt;
	33864,&lt;br /&gt;
	&amp;quot;cus-eas&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Ethi&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;or&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Oriya&amp;quot;,&lt;br /&gt;
	33810,&lt;br /&gt;
	&amp;quot;inc-eas&amp;quot;,&lt;br /&gt;
	&amp;quot;Orya&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;inc-mor&amp;quot;,&lt;br /&gt;
	translit = &amp;quot;or-translit&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;os&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Ossetian&amp;quot;,&lt;br /&gt;
	33968,&lt;br /&gt;
	&amp;quot;xsc&amp;quot;,&lt;br /&gt;
	&amp;quot;Cyrl, Geor, Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;oos&amp;quot;,&lt;br /&gt;
	translit = {&lt;br /&gt;
		Cyrl = &amp;quot;os-translit&amp;quot;,&lt;br /&gt;
		Geor = &amp;quot;Geor-translit&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	override_translit = true,&lt;br /&gt;
	display_text = {&lt;br /&gt;
		Cyrl = {&lt;br /&gt;
			from = {&amp;quot;æ&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;ӕ&amp;quot;}&lt;br /&gt;
		},&lt;br /&gt;
		Latn = {&lt;br /&gt;
			from = {&amp;quot;ӕ&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;æ&amp;quot;}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
	entry_name = {&lt;br /&gt;
		Cyrl = {&lt;br /&gt;
			remove_diacritics = c.grave .. c.acute,&lt;br /&gt;
			from = {&amp;quot;æ&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;ӕ&amp;quot;}&lt;br /&gt;
		},&lt;br /&gt;
		Latn = {&lt;br /&gt;
			from = {&amp;quot;ӕ&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;æ&amp;quot;}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Cyrl = {&lt;br /&gt;
			from = {&amp;quot;ӕ&amp;quot;, &amp;quot;гъ&amp;quot;, &amp;quot;дж&amp;quot;, &amp;quot;дз&amp;quot;, &amp;quot;ё&amp;quot;, &amp;quot;къ&amp;quot;, &amp;quot;пъ&amp;quot;, &amp;quot;тъ&amp;quot;, &amp;quot;хъ&amp;quot;, &amp;quot;цъ&amp;quot;, &amp;quot;чъ&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;а&amp;quot; .. p[1], &amp;quot;г&amp;quot; .. p[1], &amp;quot;д&amp;quot; .. p[1], &amp;quot;д&amp;quot; .. p[2], &amp;quot;е&amp;quot; .. p[1], &amp;quot;к&amp;quot; .. p[1], &amp;quot;п&amp;quot; .. p[1], &amp;quot;т&amp;quot; .. p[1], &amp;quot;х&amp;quot; .. p[1], &amp;quot;ц&amp;quot; .. p[1], &amp;quot;ч&amp;quot; .. p[1]}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;pa&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Punjabi&amp;quot;,&lt;br /&gt;
	58635,&lt;br /&gt;
	&amp;quot;inc-pan&amp;quot;,&lt;br /&gt;
	&amp;quot;Guru, pa-Arab&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;inc-opa&amp;quot;,&lt;br /&gt;
	translit = {&lt;br /&gt;
		Guru = &amp;quot;Guru-translit&amp;quot;,&lt;br /&gt;
		[&amp;quot;pa-Arab&amp;quot;] = &amp;quot;pa-Arab-translit&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	entry_name = {&lt;br /&gt;
		[&amp;quot;pa-Arab&amp;quot;] = {&lt;br /&gt;
			remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.nunghunna,&lt;br /&gt;
			from = {&amp;quot;&amp;quot;, &amp;quot;&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;&amp;quot;, &amp;quot;&amp;quot;}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;pi&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Pali&amp;quot;,&lt;br /&gt;
	36727,&lt;br /&gt;
	&amp;quot;inc-mid&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Brah, Deva, Beng, Sinh, Mymr, Thai, Lana, Laoo, Khmr, Cakm&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;sa&amp;quot;,&lt;br /&gt;
	translit = {&lt;br /&gt;
		Brah = &amp;quot;Brah-translit&amp;quot;,&lt;br /&gt;
		Deva = &amp;quot;sa-translit&amp;quot;,&lt;br /&gt;
		Beng = &amp;quot;pi-translit&amp;quot;,&lt;br /&gt;
		Sinh = &amp;quot;si-translit&amp;quot;,&lt;br /&gt;
		Mymr = &amp;quot;pi-translit&amp;quot;,&lt;br /&gt;
		Thai = &amp;quot;pi-translit&amp;quot;,&lt;br /&gt;
		Lana = &amp;quot;pi-translit&amp;quot;,&lt;br /&gt;
		Laoo = &amp;quot;pi-translit&amp;quot;,&lt;br /&gt;
		Khmr = &amp;quot;pi-translit&amp;quot;,&lt;br /&gt;
		Cakm = &amp;quot;Cakm-translit&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	entry_name = {&lt;br /&gt;
		Thai = {&lt;br /&gt;
			from = {&amp;quot;ึ&amp;quot;, u(0xF700), u(0xF70F)}, -- FIXME: Not clear what&#039;s going on with the PUA characters here.&lt;br /&gt;
			to = {&amp;quot;ิํ&amp;quot;, &amp;quot;ฐ&amp;quot;, &amp;quot;ญ&amp;quot;}&lt;br /&gt;
		},&lt;br /&gt;
		remove_diacritics = c.VS01&lt;br /&gt;
	},&lt;br /&gt;
	sort_key = { -- FIXME: This needs to be converted into the current standardized format.&lt;br /&gt;
		from = {&amp;quot;ā&amp;quot;, &amp;quot;ī&amp;quot;, &amp;quot;ū&amp;quot;, &amp;quot;ḍ&amp;quot;, &amp;quot;ḷ&amp;quot;, &amp;quot;m[&amp;quot; .. c.dotabove .. c.dotbelow .. &amp;quot;]&amp;quot;, &amp;quot;ṅ&amp;quot;, &amp;quot;ñ&amp;quot;, &amp;quot;ṇ&amp;quot;, &amp;quot;ṭ&amp;quot;, &amp;quot;([เโ])([ก-ฮ])&amp;quot;, &amp;quot;([ເໂ])([ກ-ຮ])&amp;quot;, &amp;quot;ᩔ&amp;quot;, &amp;quot;ᩕ&amp;quot;, &amp;quot;ᩖ&amp;quot;, &amp;quot;ᩘ&amp;quot;, &amp;quot;([ᨭ-ᨱ])ᩛ&amp;quot;, &amp;quot;([ᨷ-ᨾ])ᩛ&amp;quot;, &amp;quot;ᩤ&amp;quot;, u(0xFE00), u(0x200D)},&lt;br /&gt;
		to = {&amp;quot;a~&amp;quot;, &amp;quot;i~&amp;quot;, &amp;quot;u~&amp;quot;, &amp;quot;d~&amp;quot;, &amp;quot;l~&amp;quot;, &amp;quot;m~&amp;quot;, &amp;quot;n~&amp;quot;, &amp;quot;n~~&amp;quot;, &amp;quot;n~~~&amp;quot;, &amp;quot;t~&amp;quot;, &amp;quot;%2%1&amp;quot;, &amp;quot;%2%1&amp;quot;, &amp;quot;ᩈ᩠ᩈ&amp;quot;, &amp;quot;᩠ᩁ&amp;quot;, &amp;quot;᩠ᩃ&amp;quot;, &amp;quot;ᨦ᩠&amp;quot;, &amp;quot;%1᩠ᨮ&amp;quot;, &amp;quot;%1᩠ᨻ&amp;quot;, &amp;quot;ᩣ&amp;quot;}&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;pl&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Polish&amp;quot;,&lt;br /&gt;
	809,&lt;br /&gt;
	&amp;quot;zlw-lch&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;zlw-mpl&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&amp;quot;ą&amp;quot;, &amp;quot;ć&amp;quot;, &amp;quot;ę&amp;quot;, &amp;quot;ł&amp;quot;, &amp;quot;ń&amp;quot;, &amp;quot;ó&amp;quot;, &amp;quot;ś&amp;quot;, &amp;quot;ź&amp;quot;, &amp;quot;ż&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;a&amp;quot; .. p[1], &amp;quot;c&amp;quot; .. p[1], &amp;quot;e&amp;quot; .. p[1], &amp;quot;l&amp;quot; .. p[1], &amp;quot;n&amp;quot; .. p[1], &amp;quot;o&amp;quot; .. p[1], &amp;quot;s&amp;quot; .. p[1], &amp;quot;z&amp;quot; .. p[1], &amp;quot;z&amp;quot; .. p[2]}&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = &amp;quot;AaĄąBbCcĆćDdEeĘęFfGgHhIiJjKkLlŁłMmNnŃńOoÓóPpRrSsŚśTtUuWwYyZzŹźŻż&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ps&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Pashto&amp;quot;,&lt;br /&gt;
	58680,&lt;br /&gt;
	&amp;quot;ira-pat&amp;quot;,&lt;br /&gt;
	&amp;quot;ps-Arab&amp;quot;,&lt;br /&gt;
	entry_name = {remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.superalef},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;pt&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Portuguese&amp;quot;,&lt;br /&gt;
	5146,&lt;br /&gt;
	&amp;quot;roa-ibe&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Brai&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;roa-opt&amp;quot;,&lt;br /&gt;
	sort_key = {Latn = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.diaer .. c.cedilla}},&lt;br /&gt;
	standardChars = {&lt;br /&gt;
		Latn = &amp;quot;AaÁáÂâÃãBbCcÇçDdEeÉéÊêFfGgHhIiÍíJjLlMmNnOoÓóÔôÕõPpQqRrSsTtUuÚúVvXxZz&amp;quot;,&lt;br /&gt;
		Brai = c.braille,&lt;br /&gt;
		c.punc&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;qu&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Quechua&amp;quot;,&lt;br /&gt;
	5218,&lt;br /&gt;
	&amp;quot;qwe&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;rm&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Romansch&amp;quot;,&lt;br /&gt;
	13199,&lt;br /&gt;
	&amp;quot;roa-rhe&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ro&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Romanian&amp;quot;,&lt;br /&gt;
	7913,&lt;br /&gt;
	&amp;quot;roa-eas&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Cyrl&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Latn = {&lt;br /&gt;
			from = {&amp;quot;ă&amp;quot;, &amp;quot;â&amp;quot;, &amp;quot;î&amp;quot;, &amp;quot;ș&amp;quot;, &amp;quot;ț&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;a&amp;quot; .. p[1], &amp;quot;a&amp;quot; .. p[2], &amp;quot;i&amp;quot; .. p[1], &amp;quot;s&amp;quot; .. p[1], &amp;quot;t&amp;quot; .. p[1]}&lt;br /&gt;
		},&lt;br /&gt;
		Cyrl = {&lt;br /&gt;
			from = {&amp;quot;ӂ&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;ж&amp;quot; .. p[1]}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = {&lt;br /&gt;
		Latn = &amp;quot;AaĂăÂâBbCcDdEeFfGgHhIiÎîJjLlMmNnOoPpRrSsȘșTtȚțUuVvXxZz&amp;quot;,&lt;br /&gt;
		Cyrl = &amp;quot;АаБбВвГгДдЕеЖжӁӂЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЫыЬьЭэЮюЯя&amp;quot;,&lt;br /&gt;
		c.punc&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ru&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Russian&amp;quot;,&lt;br /&gt;
	7737,&lt;br /&gt;
	&amp;quot;zle&amp;quot;,&lt;br /&gt;
	&amp;quot;Cyrl, Cyrs, Brai&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;zle-mru&amp;quot;,&lt;br /&gt;
	translit = {&lt;br /&gt;
		Cyrl = &amp;quot;ru-translit&amp;quot;,&lt;br /&gt;
		Cyrs = &amp;quot;ru-translit&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	entry_name = {&lt;br /&gt;
		Cyrl = s[&amp;quot;ru-Cyrl-entryname&amp;quot;],&lt;br /&gt;
		Cyrs = s[&amp;quot;ru-Cyrl-entryname&amp;quot;],&lt;br /&gt;
	},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Cyrl = s[&amp;quot;ru-Cyrl-sortkey&amp;quot;],&lt;br /&gt;
		Cyrs = s[&amp;quot;ru-Cyrl-sortkey&amp;quot;],&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = {&lt;br /&gt;
		Cyrl = &amp;quot;АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя—&amp;quot;,&lt;br /&gt;
		Brai = c.braille,&lt;br /&gt;
		c.punc&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;rw&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Rwanda-Rundi&amp;quot;,&lt;br /&gt;
	3217514,&lt;br /&gt;
	&amp;quot;bnt-glb&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	entry_name = {remove_diacritics = c.acute .. c.circ .. c.macron .. c.caron},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;sa&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Sanskrit&amp;quot;,&lt;br /&gt;
	11059,&lt;br /&gt;
	&amp;quot;inc-old&amp;quot;,&lt;br /&gt;
	&amp;quot;Deva, Bali, as-Beng, Beng, Bhks, Brah, Gran, Gujr, Guru, Hani, Java, Kawi, Khar, Khmr, Knda, Lana, Laoo, Marc, Mlym, Modi, Mong, mnc-Mong, xwo-Mong, Mymr, Nand, Newa, Orya, Phag, Ranj, Saur, Shrd, Sidd, Sinh, Taml, Tang, Telu, Thai, Tibt, Tirh&amp;quot;,&lt;br /&gt;
	translit = {&lt;br /&gt;
		Deva = &amp;quot;sa-translit&amp;quot;,&lt;br /&gt;
		[&amp;quot;as-Beng&amp;quot;] = &amp;quot;sa-Beng-translit&amp;quot;,&lt;br /&gt;
		Beng = &amp;quot;sa-Beng-translit&amp;quot;,&lt;br /&gt;
		Brah = &amp;quot;Brah-translit&amp;quot;,&lt;br /&gt;
		Gujr = &amp;quot;sa-Gujr-translit&amp;quot;,&lt;br /&gt;
		Java = &amp;quot;sa-Java-translit&amp;quot;,&lt;br /&gt;
		Khmr = &amp;quot;pi-translit&amp;quot;,&lt;br /&gt;
		Knda = &amp;quot;sa-Knda-translit&amp;quot;,&lt;br /&gt;
		Lana = &amp;quot;pi-translit&amp;quot;,&lt;br /&gt;
		Laoo = &amp;quot;pi-translit&amp;quot;,&lt;br /&gt;
		Mlym = &amp;quot;sa-Mlym-translit&amp;quot;,&lt;br /&gt;
		Modi = &amp;quot;sa-Modi-translit&amp;quot;,&lt;br /&gt;
		Mong = &amp;quot;Mong-translit&amp;quot;,&lt;br /&gt;
		[&amp;quot;mnc-Mong&amp;quot;] = &amp;quot;mnc-translit&amp;quot;,&lt;br /&gt;
		[&amp;quot;xwo-Mong&amp;quot;] = &amp;quot;xal-translit&amp;quot;,&lt;br /&gt;
		Mymr = &amp;quot;pi-translit&amp;quot;,&lt;br /&gt;
		Orya = &amp;quot;sa-Orya-translit&amp;quot;,&lt;br /&gt;
		Sinh = &amp;quot;si-translit&amp;quot;,&lt;br /&gt;
		Thai = &amp;quot;pi-translit&amp;quot;,&lt;br /&gt;
		Tibt = &amp;quot;Tibt-translit&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	display_text = {&lt;br /&gt;
		Mong = s[&amp;quot;Mong-displaytext&amp;quot;],&lt;br /&gt;
		Tibt = s[&amp;quot;Tibt-displaytext&amp;quot;],&lt;br /&gt;
	},&lt;br /&gt;
	entry_name = {&lt;br /&gt;
		Mong = s[&amp;quot;Mong-entryname&amp;quot;],&lt;br /&gt;
		Tibt = s[&amp;quot;Tibt-entryname&amp;quot;],&lt;br /&gt;
		Thai = {&lt;br /&gt;
			from = {&amp;quot;ึ&amp;quot;, u(0xF700), u(0xF70F)}, -- FIXME: Not clear what&#039;s going on with the PUA characters here.&lt;br /&gt;
			to = {&amp;quot;ิํ&amp;quot;, &amp;quot;ฐ&amp;quot;, &amp;quot;ญ&amp;quot;}&lt;br /&gt;
		},&lt;br /&gt;
		remove_diacritics = c.VS01&lt;br /&gt;
	},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Tibt = &amp;quot;Tibt-sortkey&amp;quot;,&lt;br /&gt;
		{ -- FIXME: This needs to be converted into the current standardized format.&lt;br /&gt;
			from = {&amp;quot;ā&amp;quot;, &amp;quot;ī&amp;quot;, &amp;quot;ū&amp;quot;, &amp;quot;ḍ&amp;quot;, &amp;quot;ḷ&amp;quot;, &amp;quot;ḹ&amp;quot;, &amp;quot;m[&amp;quot; .. c.dotabove .. c.dotbelow .. &amp;quot;]&amp;quot;, &amp;quot;ṅ&amp;quot;, &amp;quot;ñ&amp;quot;, &amp;quot;ṇ&amp;quot;, &amp;quot;ṛ&amp;quot;, &amp;quot;ṝ&amp;quot;, &amp;quot;ś&amp;quot;, &amp;quot;ṣ&amp;quot;, &amp;quot;ṭ&amp;quot;, &amp;quot;([เโไ])([ก-ฮ])&amp;quot;, &amp;quot;([ເໂໄ])([ກ-ຮ])&amp;quot;, &amp;quot;ᩔ&amp;quot;, &amp;quot;ᩕ&amp;quot;, &amp;quot;ᩖ&amp;quot;, &amp;quot;ᩘ&amp;quot;, &amp;quot;([ᨭ-ᨱ])ᩛ&amp;quot;, &amp;quot;([ᨷ-ᨾ])ᩛ&amp;quot;, &amp;quot;ᩤ&amp;quot;, u(0xFE00), u(0x200D)},&lt;br /&gt;
			to = {&amp;quot;a~&amp;quot;, &amp;quot;i~&amp;quot;, &amp;quot;u~&amp;quot;, &amp;quot;d~&amp;quot;, &amp;quot;l~&amp;quot;, &amp;quot;l~~&amp;quot;, &amp;quot;m~&amp;quot;, &amp;quot;n~&amp;quot;, &amp;quot;n~~&amp;quot;, &amp;quot;n~~~&amp;quot;, &amp;quot;r~&amp;quot;, &amp;quot;r~~&amp;quot;, &amp;quot;s~&amp;quot;, &amp;quot;s~~&amp;quot;, &amp;quot;t~&amp;quot;, &amp;quot;%2%1&amp;quot;, &amp;quot;%2%1&amp;quot;, &amp;quot;ᩈ᩠ᩈ&amp;quot;, &amp;quot;᩠ᩁ&amp;quot;, &amp;quot;᩠ᩃ&amp;quot;, &amp;quot;ᨦ᩠&amp;quot;, &amp;quot;%1᩠ᨮ&amp;quot;, &amp;quot;%1᩠ᨻ&amp;quot;, &amp;quot;ᩣ&amp;quot;},&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;sc&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Sardinian&amp;quot;,&lt;br /&gt;
	33976,&lt;br /&gt;
	&amp;quot;roa&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;sd&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Sindhi&amp;quot;,&lt;br /&gt;
	33997,&lt;br /&gt;
	&amp;quot;inc-snd&amp;quot;,&lt;br /&gt;
	&amp;quot;sd-Arab, Deva, Sind, Khoj&amp;quot;,&lt;br /&gt;
	translit = {Sind = &amp;quot;Sind-translit&amp;quot;},&lt;br /&gt;
	entry_name = {&lt;br /&gt;
		[&amp;quot;sd-Arab&amp;quot;] = {&lt;br /&gt;
			remove_diacritics = c.kashida .. c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.superalef,&lt;br /&gt;
			from = {&amp;quot;&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;&amp;quot;}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
	ancestors = &amp;quot;inc-vra&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;se&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Northern Sami&amp;quot;,&lt;br /&gt;
	33947,&lt;br /&gt;
	&amp;quot;smi&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	display_text = {&lt;br /&gt;
		from = {&amp;quot;&#039;&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;ˈ&amp;quot;}&lt;br /&gt;
	},&lt;br /&gt;
	entry_name = {remove_diacritics = c.macron .. c.dotbelow .. &amp;quot;&#039;ˈ&amp;quot;},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&amp;quot;á&amp;quot;, &amp;quot;č&amp;quot;, &amp;quot;đ&amp;quot;, &amp;quot;ŋ&amp;quot;, &amp;quot;š&amp;quot;, &amp;quot;ŧ&amp;quot;, &amp;quot;ž&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;a&amp;quot; .. p[1], &amp;quot;c&amp;quot; .. p[1], &amp;quot;d&amp;quot; .. p[1], &amp;quot;n&amp;quot; .. p[1], &amp;quot;s&amp;quot; .. p[1], &amp;quot;t&amp;quot; .. p[1], &amp;quot;z&amp;quot; .. p[1]}&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = &amp;quot;AaÁáBbCcČčDdĐđEeFfGgHhIiJjKkLlMmNnŊŋOoPpRrSsŠšTtŦŧUuVvZzŽž&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;sg&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Sango&amp;quot;,&lt;br /&gt;
	33954,&lt;br /&gt;
	&amp;quot;crp&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;ngb&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;sh&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Serbo-Croatian&amp;quot;,&lt;br /&gt;
	9301,&lt;br /&gt;
	&amp;quot;zls&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Cyrl, Glag&amp;quot;,&lt;br /&gt;
	wikimedia_codes = &amp;quot;sh, bs, hr, sr&amp;quot;,&lt;br /&gt;
	entry_name = {&lt;br /&gt;
		Latn = {&lt;br /&gt;
			remove_diacritics = c.grave .. c.acute .. c.tilde .. c.macron .. c.dgrave .. c.invbreve,&lt;br /&gt;
			remove_exceptions = {&amp;quot;Ć&amp;quot;, &amp;quot;ć&amp;quot;, &amp;quot;Ś&amp;quot;, &amp;quot;ś&amp;quot;, &amp;quot;Ź&amp;quot;, &amp;quot;ź&amp;quot;}&lt;br /&gt;
		},&lt;br /&gt;
		Cyrl = {&lt;br /&gt;
			remove_diacritics = c.grave .. c.acute .. c.tilde .. c.macron .. c.dgrave .. c.invbreve,&lt;br /&gt;
			remove_exceptions = {&amp;quot;З́&amp;quot;, &amp;quot;з́&amp;quot;, &amp;quot;С́&amp;quot;, &amp;quot;с́&amp;quot;}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Latn = {&lt;br /&gt;
			from = {&amp;quot;č&amp;quot;, &amp;quot;ć&amp;quot;, &amp;quot;dž&amp;quot;, &amp;quot;đ&amp;quot;, &amp;quot;lj&amp;quot;, &amp;quot;nj&amp;quot;, &amp;quot;š&amp;quot;, &amp;quot;ś&amp;quot;, &amp;quot;ž&amp;quot;, &amp;quot;ź&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;c&amp;quot; .. p[1], &amp;quot;c&amp;quot; .. p[2], &amp;quot;d&amp;quot; .. p[1], &amp;quot;d&amp;quot; .. p[2], &amp;quot;l&amp;quot; .. p[1], &amp;quot;n&amp;quot; .. p[1], &amp;quot;s&amp;quot; .. p[1], &amp;quot;s&amp;quot; .. p[2], &amp;quot;z&amp;quot; .. p[1], &amp;quot;z&amp;quot; .. p[2]}&lt;br /&gt;
		},&lt;br /&gt;
		Cyrl = {&lt;br /&gt;
			from = {&amp;quot;ђ&amp;quot;, &amp;quot;з́&amp;quot;, &amp;quot;ј&amp;quot;, &amp;quot;љ&amp;quot;, &amp;quot;њ&amp;quot;, &amp;quot;с́&amp;quot;, &amp;quot;ћ&amp;quot;, &amp;quot;џ&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;д&amp;quot; .. p[1], &amp;quot;з&amp;quot; .. p[1], &amp;quot;и&amp;quot; .. p[1], &amp;quot;л&amp;quot; .. p[1], &amp;quot;н&amp;quot; .. p[1], &amp;quot;с&amp;quot; .. p[1], &amp;quot;т&amp;quot; .. p[1], &amp;quot;ч&amp;quot; .. p[1]}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = {&lt;br /&gt;
		Latn = &amp;quot;AaBbCcČčĆćDdĐđEeFfGgHhIiJjKkLlMmNnOoPpRrSsŠšTtUuVvZzŽž&amp;quot;,&lt;br /&gt;
		Cyrl = &amp;quot;АаБбВвГгДдЂђЕеЖжЗзИиЈјКкЛлЉљМмНнЊњОоПпРрСсТтЋћУуФфХхЦцЧчЏџШш&amp;quot;,&lt;br /&gt;
		c.punc&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;si&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Sinhalese&amp;quot;,&lt;br /&gt;
	13267,&lt;br /&gt;
	&amp;quot;inc-ins&amp;quot;,&lt;br /&gt;
	&amp;quot;Sinh&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;elu-prk&amp;quot;,&lt;br /&gt;
	translit = &amp;quot;si-translit&amp;quot;,&lt;br /&gt;
	override_translit = true,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;sk&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Slovak&amp;quot;,&lt;br /&gt;
	9058,&lt;br /&gt;
	&amp;quot;zlw&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	sort_key = {remove_diacritics = c.acute .. c.circ .. c.diaer},&lt;br /&gt;
	standardChars = &amp;quot;AaÁáÄäBbCcČčDdĎďEeFfGgHhIiÍíJjKkLlĹĺĽľMmNnŇňOoÔôPpRrŔŕSsŠšTtŤťUuÚúVvYyÝýZzŽž&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;sl&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Slovene&amp;quot;,&lt;br /&gt;
	9063,&lt;br /&gt;
	&amp;quot;zls&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	entry_name = {&lt;br /&gt;
		remove_diacritics = c.grave .. c.acute .. c.circ .. c.macron .. c.dgrave .. c.invbreve .. c.dotbelow,&lt;br /&gt;
		from = {&amp;quot;Ə&amp;quot;, &amp;quot;ə&amp;quot;, &amp;quot;Ł&amp;quot;, &amp;quot;ł&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;E&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;L&amp;quot;, &amp;quot;l&amp;quot;}&lt;br /&gt;
	},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		remove_diacritics = c.tilde .. c.dotabove .. c.diaer .. c.ringabove .. c.ringbelow .. c.ogonek,&lt;br /&gt;
		from = {&amp;quot;č&amp;quot;, &amp;quot;š&amp;quot;, &amp;quot;ž&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;c&amp;quot; .. p[1], &amp;quot;s&amp;quot; .. p[1], &amp;quot;z&amp;quot; .. p[1]}&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = &amp;quot;AaBbCcČčDdEeFfGgHhIiJjKkLlMmNnOoPpRrSsŠšTtUuVvZzŽž&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;sm&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Samoan&amp;quot;,&lt;br /&gt;
	34011,&lt;br /&gt;
	&amp;quot;poz-pnp&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;sn&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Shona&amp;quot;,&lt;br /&gt;
	34004,&lt;br /&gt;
	&amp;quot;bnt-sho&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	entry_name = {remove_diacritics = c.acute},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;so&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Somali&amp;quot;,&lt;br /&gt;
	13275,&lt;br /&gt;
	&amp;quot;cus-som&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Arab, Osma&amp;quot;,&lt;br /&gt;
	entry_name = {Latn = {remove_diacritics = c.grave .. c.acute .. c.circ}},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;sq&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Albanian&amp;quot;,&lt;br /&gt;
	8748,&lt;br /&gt;
	&amp;quot;sqj&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Grek, Elba&amp;quot;,&lt;br /&gt;
	entry_name = {remove_diacritics = c.acute},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		remove_diacritics = c.circ .. c.tilde,&lt;br /&gt;
		from = {&#039;ç&#039;, &#039;dh&#039;, &#039;ë&#039;, &#039;gj&#039;, &#039;ll&#039;, &#039;nj&#039;, &#039;rr&#039;, &#039;sh&#039;, &#039;th&#039;, &#039;xh&#039;, &#039;zh&#039;},&lt;br /&gt;
		to = {&#039;c&#039;..p[1], &#039;d&#039;..p[1], &#039;e&#039;..p[1], &#039;g&#039;..p[1], &#039;l&#039;..p[1], &#039;n&#039;..p[1], &#039;r&#039;..p[1], &#039;s&#039;..p[1], &#039;t&#039;..p[1], &#039;x&#039;..p[1], &#039;z&#039;..p[1]},&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = &amp;quot;AaBbCcÇçDdEeËëFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvXxYyZz&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ss&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Swazi&amp;quot;,&lt;br /&gt;
	34014,&lt;br /&gt;
	&amp;quot;bnt-ngu&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	entry_name = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.macron .. c.caron},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;st&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Sotho&amp;quot;,&lt;br /&gt;
	34340,&lt;br /&gt;
	&amp;quot;bnt-sts&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	entry_name = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.macron .. c.caron},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;su&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Sundanese&amp;quot;,&lt;br /&gt;
	34002,&lt;br /&gt;
	&amp;quot;poz-msa&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Sund&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;osn&amp;quot;,&lt;br /&gt;
	translit = {Sund = &amp;quot;su-translit&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;sv&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Swedish&amp;quot;,&lt;br /&gt;
	9027,&lt;br /&gt;
	&amp;quot;gmq&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;gmq-osw&amp;quot;,&lt;br /&gt;
	standardChars = &amp;quot;AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZzÅåÄäÖö&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;sw&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Swahili&amp;quot;,&lt;br /&gt;
	7838,&lt;br /&gt;
	&amp;quot;bnt-swh&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Arab&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Latn = {&lt;br /&gt;
			from = {&amp;quot;ng&#039;&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;ng&amp;quot; .. p[1]}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ta&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Tamil&amp;quot;,&lt;br /&gt;
	5885,&lt;br /&gt;
	&amp;quot;dra&amp;quot;,&lt;br /&gt;
	&amp;quot;Taml&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;oty&amp;quot;,&lt;br /&gt;
	translit = &amp;quot;ta-translit&amp;quot;,&lt;br /&gt;
	override_translit = true,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;te&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Telugu&amp;quot;,&lt;br /&gt;
	8097,&lt;br /&gt;
	&amp;quot;dra&amp;quot;,&lt;br /&gt;
	&amp;quot;Telu&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;dra-ote&amp;quot;,&lt;br /&gt;
	translit = &amp;quot;te-translit&amp;quot;,&lt;br /&gt;
	override_translit = true,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;tg&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Tajik&amp;quot;,&lt;br /&gt;
	9260,&lt;br /&gt;
	&amp;quot;ira-swi&amp;quot;,&lt;br /&gt;
	&amp;quot;Cyrl, fa-Arab, Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;fa-cls&amp;quot;,&lt;br /&gt;
	translit = {Cyrl = &amp;quot;tg-translit&amp;quot;},&lt;br /&gt;
	override_translit = true,&lt;br /&gt;
	entry_name = {remove_diacritics = c.grave .. c.acute},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Cyrl = {&lt;br /&gt;
			from = {&amp;quot;ғ&amp;quot;, &amp;quot;ё&amp;quot;, &amp;quot;ӣ&amp;quot;, &amp;quot;қ&amp;quot;, &amp;quot;ӯ&amp;quot;, &amp;quot;ҳ&amp;quot;, &amp;quot;ҷ&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;г&amp;quot; .. p[1], &amp;quot;е&amp;quot; .. p[1], &amp;quot;и&amp;quot; .. p[1], &amp;quot;к&amp;quot; .. p[1], &amp;quot;у&amp;quot; .. p[1], &amp;quot;х&amp;quot; .. p[1], &amp;quot;ч&amp;quot; .. p[1]}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;th&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Thai&amp;quot;,&lt;br /&gt;
	9217,&lt;br /&gt;
	&amp;quot;tai-swe&amp;quot;,&lt;br /&gt;
	&amp;quot;Thai, Brai&amp;quot;,&lt;br /&gt;
	translit = {Thai = &amp;quot;th-translit&amp;quot;},&lt;br /&gt;
	sort_key = {Thai = &amp;quot;Thai-sortkey&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ti&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Tigrinya&amp;quot;,&lt;br /&gt;
	34124,&lt;br /&gt;
	&amp;quot;sem-eth&amp;quot;,&lt;br /&gt;
	&amp;quot;Ethi&amp;quot;,&lt;br /&gt;
	translit = &amp;quot;Ethi-translit&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;tk&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Turkmen&amp;quot;,&lt;br /&gt;
	9267,&lt;br /&gt;
	&amp;quot;trk-ogz&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Cyrl, Arab&amp;quot;,&lt;br /&gt;
	entry_name = {remove_diacritics = c.macron},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Latn = {&lt;br /&gt;
			from = {&amp;quot;ç&amp;quot;, &amp;quot;ä&amp;quot;, &amp;quot;ž&amp;quot;, &amp;quot;ň&amp;quot;, &amp;quot;ö&amp;quot;, &amp;quot;ş&amp;quot;, &amp;quot;ü&amp;quot;, &amp;quot;ý&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;c&amp;quot; .. p[1], &amp;quot;e&amp;quot; .. p[1], &amp;quot;j&amp;quot; .. p[1], &amp;quot;n&amp;quot; .. p[1], &amp;quot;o&amp;quot; .. p[1], &amp;quot;s&amp;quot; .. p[1], &amp;quot;u&amp;quot; .. p[1], &amp;quot;y&amp;quot; .. p[1]}&lt;br /&gt;
		},&lt;br /&gt;
		Cyrl = {&lt;br /&gt;
			from = {&amp;quot;ё&amp;quot;, &amp;quot;җ&amp;quot;, &amp;quot;ң&amp;quot;, &amp;quot;ө&amp;quot;, &amp;quot;ү&amp;quot;, &amp;quot;ә&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;е&amp;quot; .. p[1], &amp;quot;ж&amp;quot; .. p[1], &amp;quot;н&amp;quot; .. p[1], &amp;quot;о&amp;quot; .. p[1], &amp;quot;у&amp;quot; .. p[1], &amp;quot;э&amp;quot; .. p[1]}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;tl&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Tagalog&amp;quot;,&lt;br /&gt;
	34057,&lt;br /&gt;
	&amp;quot;phi&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Tglg&amp;quot;,&lt;br /&gt;
	translit = {Tglg = &amp;quot;tl-translit&amp;quot;},&lt;br /&gt;
	override_translit = true,&lt;br /&gt;
	entry_name = {Latn = {remove_diacritics = c.grave .. c.acute .. c.circ}},&lt;br /&gt;
	standardChars = {&lt;br /&gt;
		Latn = &amp;quot;AaBbKkDdEeGgHhIiLlMmNnOoPpRrSsTtUuWwYy&amp;quot;,&lt;br /&gt;
		c.punc&lt;br /&gt;
	},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Latn = &amp;quot;tl-sortkey&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;tn&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Tswana&amp;quot;,&lt;br /&gt;
	34137,&lt;br /&gt;
	&amp;quot;bnt-sts&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;to&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Tongan&amp;quot;,&lt;br /&gt;
	34094,&lt;br /&gt;
	&amp;quot;poz-pol&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	entry_name = {remove_diacritics = c.acute},&lt;br /&gt;
	sort_key = {remove_diacritics = c.macron},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;tr&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Turkish&amp;quot;,&lt;br /&gt;
	256,&lt;br /&gt;
	&amp;quot;trk-ogz&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;ota&amp;quot;,&lt;br /&gt;
	dotted_dotless_i = true,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&lt;br /&gt;
			&amp;quot;i&amp;quot;, -- Ensure &amp;quot;i&amp;quot; comes after &amp;quot;ı&amp;quot;.&lt;br /&gt;
			&amp;quot;ç&amp;quot;, &amp;quot;ğ&amp;quot;, &amp;quot;ı&amp;quot;, &amp;quot;ö&amp;quot;, &amp;quot;ş&amp;quot;, &amp;quot;ü&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		to = {&lt;br /&gt;
			&amp;quot;i&amp;quot; .. p[1],&lt;br /&gt;
			&amp;quot;c&amp;quot; .. p[1], &amp;quot;g&amp;quot; .. p[1], &amp;quot;i&amp;quot;, &amp;quot;o&amp;quot; .. p[1], &amp;quot;s&amp;quot; .. p[1], &amp;quot;u&amp;quot; .. p[1]&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ts&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Tsonga&amp;quot;,&lt;br /&gt;
	34327,&lt;br /&gt;
	&amp;quot;bnt-tsr&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;tt&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Tatar&amp;quot;,&lt;br /&gt;
	25285,&lt;br /&gt;
	&amp;quot;trk-kbu&amp;quot;,&lt;br /&gt;
	&amp;quot;Cyrl, Latn, tt-Arab&amp;quot;,&lt;br /&gt;
	translit = {Cyrl = &amp;quot;tt-translit&amp;quot;},&lt;br /&gt;
	override_translit = true,&lt;br /&gt;
	dotted_dotless_i = true,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Cyrl = {&lt;br /&gt;
			from = {&amp;quot;ә&amp;quot;, &amp;quot;ў&amp;quot;, &amp;quot;ғ&amp;quot;, &amp;quot;ё&amp;quot;, &amp;quot;җ&amp;quot;, &amp;quot;қ&amp;quot;, &amp;quot;ң&amp;quot;, &amp;quot;ө&amp;quot;, &amp;quot;ү&amp;quot;, &amp;quot;һ&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;а&amp;quot; .. p[1], &amp;quot;в&amp;quot; .. p[1], &amp;quot;г&amp;quot; .. p[1], &amp;quot;е&amp;quot; .. p[1], &amp;quot;ж&amp;quot; .. p[1], &amp;quot;к&amp;quot; .. p[1], &amp;quot;н&amp;quot; .. p[1], &amp;quot;о&amp;quot; .. p[1], &amp;quot;у&amp;quot; .. p[1], &amp;quot;х&amp;quot; .. p[1]}&lt;br /&gt;
		},&lt;br /&gt;
		Latn = {&lt;br /&gt;
			from = {&lt;br /&gt;
				&amp;quot;i&amp;quot;, -- Ensure &amp;quot;i&amp;quot; comes after &amp;quot;ı&amp;quot;.&lt;br /&gt;
				&amp;quot;ä&amp;quot;, &amp;quot;ə&amp;quot;, &amp;quot;ç&amp;quot;, &amp;quot;ğ&amp;quot;, &amp;quot;ı&amp;quot;, &amp;quot;ñ&amp;quot;, &amp;quot;ŋ&amp;quot;, &amp;quot;ö&amp;quot;, &amp;quot;ɵ&amp;quot;, &amp;quot;ş&amp;quot;, &amp;quot;ü&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			to = {&lt;br /&gt;
				&amp;quot;i&amp;quot; .. p[1],&lt;br /&gt;
				&amp;quot;a&amp;quot; .. p[1], &amp;quot;a&amp;quot; .. p[2], &amp;quot;c&amp;quot; .. p[1], &amp;quot;g&amp;quot; .. p[1], &amp;quot;i&amp;quot;, &amp;quot;n&amp;quot; .. p[1], &amp;quot;n&amp;quot; .. p[2], &amp;quot;o&amp;quot; .. p[1], &amp;quot;o&amp;quot; .. p[2], &amp;quot;s&amp;quot; .. p[1], &amp;quot;u&amp;quot; .. p[1]&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;tw&amp;quot; IS TREATED AS &amp;quot;ak&amp;quot;, SEE WT:LT&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ty&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Tahitian&amp;quot;,&lt;br /&gt;
	34128,&lt;br /&gt;
	&amp;quot;poz-pep&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ug&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Uyghur&amp;quot;,&lt;br /&gt;
	13263,&lt;br /&gt;
	&amp;quot;trk-kar&amp;quot;,&lt;br /&gt;
	&amp;quot;ug-Arab, Latn, Cyrl&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;chg&amp;quot;,&lt;br /&gt;
	translit = {&lt;br /&gt;
		[&amp;quot;ug-Arab&amp;quot;] = &amp;quot;ug-translit&amp;quot;,&lt;br /&gt;
		Cyrl = &amp;quot;ug-translit&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	override_translit = true,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;uk&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Ukrainian&amp;quot;,&lt;br /&gt;
	8798,&lt;br /&gt;
	&amp;quot;zle&amp;quot;,&lt;br /&gt;
	&amp;quot;Cyrl&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;zle-ouk&amp;quot;,&lt;br /&gt;
	translit = &amp;quot;uk-translit&amp;quot;,&lt;br /&gt;
	entry_name = {remove_diacritics = c.grave .. c.acute},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&lt;br /&gt;
			&amp;quot;ї&amp;quot;, -- 2 chars&lt;br /&gt;
			&amp;quot;ґ&amp;quot;, &amp;quot;є&amp;quot;, &amp;quot;і&amp;quot; -- 1 char&lt;br /&gt;
		},&lt;br /&gt;
		to = {&lt;br /&gt;
			&amp;quot;и&amp;quot; .. p[2],&lt;br /&gt;
			&amp;quot;г&amp;quot; .. p[1], &amp;quot;е&amp;quot; .. p[1], &amp;quot;и&amp;quot; .. p[1]&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	standardChars = &amp;quot;АаБбВвГгДдЕеЄєЖжЗзИиІіЇїЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЬьЮюЯя&amp;quot; .. c.punc,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ur&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Urdu&amp;quot;,&lt;br /&gt;
	1617,&lt;br /&gt;
	&amp;quot;inc-hnd&amp;quot;,&lt;br /&gt;
	&amp;quot;ur-Arab&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;inc-ohi&amp;quot;,&lt;br /&gt;
	entry_name = {&lt;br /&gt;
		from = {&amp;quot;&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;&amp;quot;},&lt;br /&gt;
		remove_diacritics = c.kashida .. c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.nunghunna .. c.superalef&lt;br /&gt;
	},&lt;br /&gt;
	-- put Judeo-Urdu (Hebrew-script Urdu) under the category header&lt;br /&gt;
	-- U+FB21 HEBREW LETTER WIDE ALEF so that it sorts after Arabic script titles&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&amp;quot;^%f[&amp;quot; .. u(0x5D0) .. &amp;quot;-&amp;quot; .. u(0x5EA) .. &amp;quot;]&amp;quot;},&lt;br /&gt;
		to = {u(0xFB21)},&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;uz&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Uzbek&amp;quot;,&lt;br /&gt;
	9264,&lt;br /&gt;
	&amp;quot;trk-kar&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Cyrl, fa-Arab&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;chg&amp;quot;,&lt;br /&gt;
	translit = {Cyrl = &amp;quot;uz-translit&amp;quot;},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Latn = {&lt;br /&gt;
			from = {&amp;quot;oʻ&amp;quot;, &amp;quot;gʻ&amp;quot;, &amp;quot;sh&amp;quot;, &amp;quot;ch&amp;quot;, &amp;quot;ng&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;z&amp;quot; .. p[1], &amp;quot;z&amp;quot; .. p[2], &amp;quot;z&amp;quot; .. p[3], &amp;quot;z&amp;quot; .. p[4], &amp;quot;z&amp;quot; .. p[5]}&lt;br /&gt;
		},&lt;br /&gt;
		Cyrl = {&lt;br /&gt;
			from = {&amp;quot;ё&amp;quot;, &amp;quot;ў&amp;quot;, &amp;quot;қ&amp;quot;, &amp;quot;ғ&amp;quot;, &amp;quot;ҳ&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;е&amp;quot; .. p[1], &amp;quot;я&amp;quot; .. p[1], &amp;quot;я&amp;quot; .. p[2], &amp;quot;я&amp;quot; .. p[3], &amp;quot;я&amp;quot; .. p[4]}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;ve&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Venda&amp;quot;,&lt;br /&gt;
	32704,&lt;br /&gt;
	&amp;quot;bnt-bso&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;vi&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Vietnamese&amp;quot;,&lt;br /&gt;
	9199,&lt;br /&gt;
	&amp;quot;mkh-vie&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Hani&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;mkh-mvi&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Latn = &amp;quot;vi-sortkey&amp;quot;,&lt;br /&gt;
		Hani = &amp;quot;Hani-sortkey&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;vo&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Volapük&amp;quot;,&lt;br /&gt;
	36986,&lt;br /&gt;
	&amp;quot;art&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;wa&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Walloon&amp;quot;,&lt;br /&gt;
	34219,&lt;br /&gt;
	&amp;quot;roa-oil&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;fro&amp;quot;,&lt;br /&gt;
	sort_key = s[&amp;quot;roa-oil-sortkey&amp;quot;],&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;wo&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Wolof&amp;quot;,&lt;br /&gt;
	34257,&lt;br /&gt;
	&amp;quot;alv-fwo&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Arab&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;xh&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Xhosa&amp;quot;,&lt;br /&gt;
	13218,&lt;br /&gt;
	&amp;quot;bnt-ngu&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	entry_name = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.macron .. c.caron},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;yi&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Yiddish&amp;quot;,&lt;br /&gt;
	8641,&lt;br /&gt;
	&amp;quot;gmw&amp;quot;,&lt;br /&gt;
	&amp;quot;Hebr&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;gmh&amp;quot;,&lt;br /&gt;
	translit = &amp;quot;yi-translit&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		from = {&amp;quot;א[ַָ]&amp;quot;, &amp;quot;בּ&amp;quot;, &amp;quot;ו[ֹּ]&amp;quot;, &amp;quot;יִ&amp;quot;, &amp;quot;ײַ&amp;quot;, &amp;quot;פֿ&amp;quot;},&lt;br /&gt;
		to = {&amp;quot;א&amp;quot;, &amp;quot;ב&amp;quot;, &amp;quot;ו&amp;quot;, &amp;quot;י&amp;quot;, &amp;quot;יי&amp;quot;, &amp;quot;פ&amp;quot;}&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;yo&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Yoruba&amp;quot;,&lt;br /&gt;
	34311,&lt;br /&gt;
	&amp;quot;alv-yor&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Arab&amp;quot;,&lt;br /&gt;
	entry_name = {Latn = {remove_diacritics = c.grave .. c.acute .. c.macron}},&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Latn = {&lt;br /&gt;
			from = {&amp;quot;ẹ&amp;quot;, &amp;quot;gb&amp;quot;, &amp;quot;ọ&amp;quot;, &amp;quot;ṣ&amp;quot;},&lt;br /&gt;
			to = {&amp;quot;e&amp;quot; .. p[1], &amp;quot;g&amp;quot; .. p[1], &amp;quot;o&amp;quot; .. p[1], &amp;quot;s&amp;quot; .. p[1]}&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;za&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Zhuang&amp;quot;,&lt;br /&gt;
	13216,&lt;br /&gt;
	&amp;quot;tai&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn, Hani&amp;quot;,&lt;br /&gt;
	sort_key = {&lt;br /&gt;
		Latn = &amp;quot;za-sortkey&amp;quot;,&lt;br /&gt;
		Hani = &amp;quot;Hani-sortkey&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;zh&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Chinese&amp;quot;,&lt;br /&gt;
	7850,&lt;br /&gt;
	&amp;quot;zhx&amp;quot;,&lt;br /&gt;
	&amp;quot;Hani, Hant, Hans, Latn, Bopo, Nshu, Brai&amp;quot;,&lt;br /&gt;
	ancestors = &amp;quot;ltc&amp;quot;,&lt;br /&gt;
	generate_forms = &amp;quot;zh-generateforms&amp;quot;,&lt;br /&gt;
	translit = {&lt;br /&gt;
		Hani = &amp;quot;zh-translit&amp;quot;,&lt;br /&gt;
		Bopo = &amp;quot;zh-translit&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	sort_key = {Hani = &amp;quot;Hani-sortkey&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;zu&amp;quot;] = {&lt;br /&gt;
	&amp;quot;Zulu&amp;quot;,&lt;br /&gt;
	10179,&lt;br /&gt;
	&amp;quot;bnt-ngu&amp;quot;,&lt;br /&gt;
	&amp;quot;Latn&amp;quot;,&lt;br /&gt;
	entry_name = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.macron .. c.caron},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
return require(&amp;quot;Module:languages&amp;quot;).addDefaultTypes(m, true)&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:W&amp;diff=513</id>
		<title>Template:W</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:W&amp;diff=513"/>
		<updated>2026-04-10T07:29:50Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#switch:{{padleft:|1|{{{1|}}}}}|&amp;amp;#91;|&amp;amp;#123;=[[Category:Maintenance:Template W error]]{{color|red|&#039;&#039;&#039;Template W: parameter error&#039;&#039;&#039;}}&amp;lt;!-- &lt;br /&gt;
--&amp;gt;|{{#switch:{{{link}}}|no|n|-={{#if:{{{2|}}}|{{{2}}}|{{{1}}}}}&amp;lt;!-- option for only text without link&lt;br /&gt;
--&amp;gt;|[[{{{3|Wikipedia}}}:{{{1|}}}|{{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;#if: {{{2|}}}|{{{2}}}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;|{{#if:{{NAMESPACE:{{{1|}}}}}|{{NAMESPACE:{{{1|}}}}}&#039;&#039;&#039;&#039;&#039;:&#039;&#039;&#039;&#039;&#039;{{PAGENAME:{{{1|{{Projectname|w}}}}}}}&amp;lt;!-- &amp;amp;#58;&lt;br /&gt;
--&amp;gt;|{{#ifeq:{{padleft:|1|{{{1|W}}}}}|{{lc:{{padleft:|1|{{PAGENAME:{{{1|W}}}}}}}}}&amp;lt;!--&amp;quot;ℓ&amp;quot;&lt;br /&gt;
--&amp;gt;|{{lcfirst:{{PAGENAME:{{{1|{{Projectname|w}}}}}}}}}&amp;lt;!-- first character lower case &lt;br /&gt;
--&amp;gt;|{{PAGENAME:{{{1|{{Projectname|w}}}}}}}&amp;lt;!-- &lt;br /&gt;
--&amp;gt;}}}}}}]]}}}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Template:Tracking/headword/pagename_spelling_mismatch/munj&amp;diff=511</id>
		<title>Template:Tracking/headword/pagename spelling mismatch/munj</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Template:Tracking/headword/pagename_spelling_mismatch/munj&amp;diff=511"/>
		<updated>2026-04-10T07:29:50Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;==Subpages==&lt;br /&gt;
{{Special:PrefixIndex/{{FULLPAGENAME}}/|stripprefix=1}}[[Category:Tracking templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Module:Columns&amp;diff=509</id>
		<title>Module:Columns</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Module:Columns&amp;diff=509"/>
		<updated>2026-04-10T07:29:50Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local export = {}&lt;br /&gt;
&lt;br /&gt;
local m_links = require(&amp;quot;Module:links&amp;quot;)&lt;br /&gt;
local m_languages = require(&amp;quot;Module:languages&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function format_list_items(items, lang)&lt;br /&gt;
	local result = {}&lt;br /&gt;
	&lt;br /&gt;
	for i, item in ipairs(items) do&lt;br /&gt;
		if lang and not string.find(item, &amp;quot;&amp;lt;span&amp;quot;) then&lt;br /&gt;
			item = m_links.full_link({lang = lang, term = item})&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		result[i] = &#039;\n* &#039; .. item&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return table.concat(result)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local collapse_header =&lt;br /&gt;
	[[&amp;lt;div class=&amp;quot;list-switcher&amp;quot; data-toggle-category=&amp;quot;{{{toggle_category}}}&amp;quot;&amp;gt;]]&lt;br /&gt;
local column_header = [[&amp;lt;div class=&amp;quot;{{{class}}} term-list ul-column-count&amp;quot; ]]&lt;br /&gt;
	.. [[data-column-count=&amp;quot;{{{column_count}}}&amp;quot; ]]&lt;br /&gt;
	.. [[style=&amp;quot;background-color: {{{background_color}}};&amp;quot;&amp;gt;]]&lt;br /&gt;
local button = [[&amp;lt;div class=&amp;quot;list-switcher-element&amp;quot; ]]&lt;br /&gt;
	.. [[data-showtext=&amp;quot;&amp;amp;nbsp;show more ▼&amp;amp;nbsp;&amp;quot; ]]&lt;br /&gt;
	.. [[data-hidetext=&amp;quot;&amp;amp;nbsp;show less ▲&amp;amp;nbsp;&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
function export.create_list(args)&lt;br /&gt;
	-- Fields in args that are used:&lt;br /&gt;
	-- args.column_count, args.content, args.alphabetize, args.background_color,&lt;br /&gt;
	-- args.collapse, args.toggle_category, args.class, args.lang&lt;br /&gt;
	-- Check for required fields?&lt;br /&gt;
	if type(args) ~= &amp;quot;table&amp;quot; then&lt;br /&gt;
		error(&amp;quot;expected table, got &amp;quot; .. type(args))&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	args.class = args.class or &amp;quot;derivedterms&amp;quot;&lt;br /&gt;
	args.column_count = args.column_count or 1&lt;br /&gt;
	args.toggle_category = args.toggle_category or &amp;quot;derived terms&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	local output = {}&lt;br /&gt;
	&lt;br /&gt;
	if args.header then&lt;br /&gt;
		if args.format_header then&lt;br /&gt;
			args.header = &#039;&amp;lt;div class=&amp;quot;term-list-header&amp;quot;&amp;gt;&#039; .. args.header .. &amp;quot;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		table.insert(output, args.header)&lt;br /&gt;
	end&lt;br /&gt;
	if args.collapse then&lt;br /&gt;
		table.insert(output, (collapse_header:gsub(&#039;{{{(.-)}}}&#039;, args)))&lt;br /&gt;
	end&lt;br /&gt;
	table.insert(output, (column_header:gsub(&#039;{{{(.-)}}}&#039;, args)))&lt;br /&gt;
	&lt;br /&gt;
    if args.alphabetize then&lt;br /&gt;
		require(&amp;quot;Module:collation&amp;quot;).sort(args.content, args.lang)&lt;br /&gt;
	end&lt;br /&gt;
	table.insert(output, format_list_items(args.content, args.lang))&lt;br /&gt;
	&lt;br /&gt;
	table.insert(output, &#039;&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
	if args.collapse then&lt;br /&gt;
		table.insert(output, button .. &#039;&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return table.concat(output)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- This function is for compatibility with earlier version of [[Module:columns]]&lt;br /&gt;
-- (now found in [[Module:columns/old]]).&lt;br /&gt;
function export.create_table(...)&lt;br /&gt;
	-- Earlier arguments to create_table:&lt;br /&gt;
	-- n_columns, content, alphabetize, bg, collapse, class, title, column_width, line_start, lang&lt;br /&gt;
	local args = {}&lt;br /&gt;
	args.column_count, args.content, args.alphabetize, args.background_color,&lt;br /&gt;
		args.collapse, args.class, args.header, args.column_width,&lt;br /&gt;
		args.line_start, args.lang = ...&lt;br /&gt;
	&lt;br /&gt;
	args.format_header = true&lt;br /&gt;
	&lt;br /&gt;
	return export.create_list(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function export.display(frame)&lt;br /&gt;
	local iparams = {&lt;br /&gt;
		[&amp;quot;class&amp;quot;] = {},&lt;br /&gt;
		-- Default for auto-collapse. Overridable by template |collapse= param.&lt;br /&gt;
		[&amp;quot;collapse&amp;quot;] = {type = &amp;quot;boolean&amp;quot;},&lt;br /&gt;
		-- If specified, this specifies the number of columns, and no columns&lt;br /&gt;
		-- parameter is available on the template. Otherwise, the columns&lt;br /&gt;
		-- parameter is the first available numbered param after the language-code&lt;br /&gt;
		-- parameter.&lt;br /&gt;
		[&amp;quot;columns&amp;quot;] = {type = &amp;quot;number&amp;quot;},&lt;br /&gt;
		-- If specified, this specifies the language code, and no language-code&lt;br /&gt;
		-- parameter is available on the template. Otherwise, the language-code&lt;br /&gt;
		-- parameter can be specified as either |lang= or |1=.&lt;br /&gt;
		[&amp;quot;lang&amp;quot;] = {},&lt;br /&gt;
		-- Default for auto-sort. Overridable by template |sort= param.&lt;br /&gt;
		[&amp;quot;sort&amp;quot;] = {type = &amp;quot;boolean&amp;quot;},&lt;br /&gt;
		-- The following is accepted but currently ignored, per an extended discussion in&lt;br /&gt;
		-- [[Wiktionary:Beer parlour/2018/November#Titles of morphological relations templates]].&lt;br /&gt;
		[&amp;quot;title&amp;quot;] = {default = &amp;quot;&amp;quot;},&lt;br /&gt;
		[&amp;quot;toggle_category&amp;quot;] = {},&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local frame_args = require(&amp;quot;Module:parameters&amp;quot;).process(frame.args, iparams)&lt;br /&gt;
	local parent_args = frame:getParent().args&lt;br /&gt;
	&lt;br /&gt;
	local compat = frame_args[&amp;quot;lang&amp;quot;] or parent_args[&amp;quot;lang&amp;quot;]&lt;br /&gt;
	local lang_param = compat and &amp;quot;lang&amp;quot; or 1&lt;br /&gt;
	local columns_param = compat and 1 or 2&lt;br /&gt;
	local first_content_param = columns_param + (frame_args[&amp;quot;columns&amp;quot;] and 0 or 1)&lt;br /&gt;
&lt;br /&gt;
	local params = {&lt;br /&gt;
		[lang_param] = not frame_args[&amp;quot;lang&amp;quot;] and {required = true, default = &amp;quot;und&amp;quot;} or nil,&lt;br /&gt;
		[columns_param] = not frame_args[&amp;quot;columns&amp;quot;] and {required = true, default = 2} or nil,&lt;br /&gt;
		[first_content_param] = {list = true},&lt;br /&gt;
		&lt;br /&gt;
		[&amp;quot;title&amp;quot;] = {},&lt;br /&gt;
		[&amp;quot;collapse&amp;quot;] = {type = &amp;quot;boolean&amp;quot;},&lt;br /&gt;
		[&amp;quot;sort&amp;quot;] = {type = &amp;quot;boolean&amp;quot;},&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local args = require(&amp;quot;Module:parameters&amp;quot;).process(parent_args, params)&lt;br /&gt;
	&lt;br /&gt;
	local lang = frame_args[&amp;quot;lang&amp;quot;] or args[lang_param]&lt;br /&gt;
	lang = m_languages.getByCode(lang) or m_languages.err(lang, lang_param)&lt;br /&gt;
	&lt;br /&gt;
	local sort = frame_args[&amp;quot;sort&amp;quot;]&lt;br /&gt;
	if args[&amp;quot;sort&amp;quot;] ~= nil then&lt;br /&gt;
		sort = args[&amp;quot;sort&amp;quot;]&lt;br /&gt;
	end&lt;br /&gt;
	local collapse = frame_args[&amp;quot;collapse&amp;quot;]&lt;br /&gt;
	if args[&amp;quot;collapse&amp;quot;] ~= nil then&lt;br /&gt;
		collapse = args[&amp;quot;collapse&amp;quot;]&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return export.create_list { column_count = frame_args[&amp;quot;columns&amp;quot;] or args[columns_param],&lt;br /&gt;
		content = args[first_content_param],&lt;br /&gt;
		alphabetize = sort,&lt;br /&gt;
		header = args[&amp;quot;title&amp;quot;], background_color = &amp;quot;#F8F8FF&amp;quot;,&lt;br /&gt;
		collapse = collapse,&lt;br /&gt;
		toggle_category = frame_args[&amp;quot;toggle_category&amp;quot;],&lt;br /&gt;
		class = frame_args[&amp;quot;class&amp;quot;], lang = lang, format_header = true }&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
return export&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
	<entry>
		<id>https://test.st34an.tech/index.php?title=Module:Collation&amp;diff=507</id>
		<title>Module:Collation</title>
		<link rel="alternate" type="text/html" href="https://test.st34an.tech/index.php?title=Module:Collation&amp;diff=507"/>
		<updated>2026-04-10T07:29:50Z</updated>

		<summary type="html">&lt;p&gt;Jsrs701: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local export = {}&lt;br /&gt;
&lt;br /&gt;
-- Custom functions for generating a sortkey that will achieve the desired sort&lt;br /&gt;
-- order.&lt;br /&gt;
-- name of module and name of exported function&lt;br /&gt;
local custom_sort_functions = {&lt;br /&gt;
	egy = { &amp;quot;egy-utilities&amp;quot;, &amp;quot;make_sortkey&amp;quot; },&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function is_lang_object(lang)&lt;br /&gt;
	return type(lang) == &amp;quot;table&amp;quot; and type(lang.getCanonicalName) == &amp;quot;function&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function check_lang_object(funcName, argIdx, lang)&lt;br /&gt;
	if not is_lang_object(lang) then&lt;br /&gt;
		error(&amp;quot;bad argument #&amp;quot; .. argIdx .. &amp;quot; to &amp;quot; .. funcName&lt;br /&gt;
			.. &amp;quot;: expected language object, got &amp;quot; .. type(lang) .. &amp;quot;.&amp;quot;, 2)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- UTF-8-encoded characters that do not belong to the Basic Multilingual Plane&lt;br /&gt;
-- (that is, with code points greater than U+FFFF) have byte sequences that&lt;br /&gt;
-- begin with the bytes 240 to 244.&lt;br /&gt;
local function contains_non_BMP(str)&lt;br /&gt;
	return str:find &#039;[\240-\244]&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
do&lt;br /&gt;
	local byte, min = string.byte, math.min&lt;br /&gt;
	function export.laborious_comp(item1, item2)&lt;br /&gt;
		local l1, l2 = #item1, #item2&lt;br /&gt;
		for i = 1, min(l1, l2) do&lt;br /&gt;
			local char1, char2 = byte(item1, i, i), byte(item2, i, i)&lt;br /&gt;
			if char1 ~= char2 then&lt;br /&gt;
				return char1 &amp;lt; char2&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return l1 &amp;lt; l2&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function export.make_sortkey_func(lang)&lt;br /&gt;
	check_lang_object(&amp;quot;make_sortkey_func&amp;quot;, 1, lang)&lt;br /&gt;
	&lt;br /&gt;
	local cache = {}&lt;br /&gt;
	&lt;br /&gt;
	local custom_sort_function = custom_sort_functions[lang:getCode()]&lt;br /&gt;
	local makeSortKey =&lt;br /&gt;
		custom_sort_function and require(&amp;quot;Module:&amp;quot; .. custom_sort_function[1])[custom_sort_function[2]]&lt;br /&gt;
		or function(text)&lt;br /&gt;
			return lang:makeSortKey(text)&lt;br /&gt;
		end&lt;br /&gt;
	&lt;br /&gt;
	local m_links = require(&amp;quot;Module:links&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	return function (element)&lt;br /&gt;
		local result = cache[element]&lt;br /&gt;
		&lt;br /&gt;
		if result then&lt;br /&gt;
			return result&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		result = m_links.remove_links(element)&lt;br /&gt;
		result = mw.ustring.gsub(result, &amp;quot;[%p ]&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
		result = makeSortKey(lang:makeEntryName(result))&lt;br /&gt;
		cache[element] = result&lt;br /&gt;
		&lt;br /&gt;
		return result&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function export.make_compare_func(lang, non_BMP)&lt;br /&gt;
	check_lang_object(&amp;quot;make_compare_func&amp;quot;, 1, lang)&lt;br /&gt;
	&lt;br /&gt;
	local make_sortkey = export.make_sortkey_func(lang)&lt;br /&gt;
	&lt;br /&gt;
	-- When comparing two elements with code points outside the BMP, the&lt;br /&gt;
	-- less-than operator does not work correctly because of a bug in glibc.&lt;br /&gt;
	-- See [[phab:T193096]].&lt;br /&gt;
	if non_BMP then&lt;br /&gt;
		return function (elem1, elem2)&lt;br /&gt;
			return export.laborious_comp(make_sortkey(elem1), make_sortkey(elem2))&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return function (elem1, elem2)&lt;br /&gt;
			return make_sortkey(elem1) &amp;lt; make_sortkey(elem2)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function export.sort(elems, lang)&lt;br /&gt;
	local non_BMP&lt;br /&gt;
	for _, elem in ipairs(elems) do&lt;br /&gt;
		if contains_non_BMP(elem) then&lt;br /&gt;
			non_BMP = true&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return table.sort(elems, is_lang_object(lang) and export.make_compare_func(lang, non_BMP) or nil)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function export.sort_template(frame)&lt;br /&gt;
	if not mw.isSubsting() then&lt;br /&gt;
		error(&amp;quot;This template must be substed.&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local args&lt;br /&gt;
	if frame.args.parent then&lt;br /&gt;
		args = frame:getParent().args&lt;br /&gt;
	else&lt;br /&gt;
		args = frame.args&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local elems = require(&amp;quot;Module:table&amp;quot;).shallowClone(args)&lt;br /&gt;
	local m_languages = require(&amp;quot;Module:languages&amp;quot;)&lt;br /&gt;
	local lang&lt;br /&gt;
	if args.lang then&lt;br /&gt;
		lang = m_languages.getByCode(args.lang) or m_languages.err(args.lang, &#039;lang&#039;)&lt;br /&gt;
	else&lt;br /&gt;
		local code = table.remove(elems, 1)&lt;br /&gt;
		code = code and mw.text.trim(code)&lt;br /&gt;
		lang = m_languages.getByCode(code) or m_languages.err(code, 1)&lt;br /&gt;
	end&lt;br /&gt;
	export.sort(elems, lang)&lt;br /&gt;
	return table.concat(elems, args.sep or &amp;quot;|&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return export&lt;/div&gt;</summary>
		<author><name>Jsrs701</name></author>
	</entry>
</feed>