texlive[59003] Master: xindy-persian (3apr21)

commits+karl at tug.org commits+karl at tug.org
Tue Apr 27 17:33:46 CEST 2021


Revision: 59003
          http://tug.org/svn/texlive?view=revision&revision=59003
Author:   karl
Date:     2021-04-27 17:33:46 +0200 (Tue, 27 Apr 2021)
Log Message:
-----------
xindy-persian (3apr21)

Modified Paths:
--------------
    trunk/Master/texmf-dist/xindy/modules/lang/persian/README
    trunk/Master/texmf-dist/xindy/modules/lang/persian/variant1-utf8.xdy
    trunk/Master/texmf-dist/xindy/modules/lang/persian/variant2-utf8.xdy
    trunk/Master/texmf-dist/xindy/modules/lang/persian/variant3-utf8.xdy
    trunk/Master/tlpkg/bin/tlpkg-ctan-check
    trunk/Master/tlpkg/tlpsrc/collection-langarabic.tlpsrc

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/support/xindy-persian/
    trunk/Master/texmf-dist/doc/support/xindy-persian/variant1-utf8-doc.tex
    trunk/Master/texmf-dist/doc/support/xindy-persian/variant2-utf8-doc.tex
    trunk/Master/texmf-dist/doc/support/xindy-persian/variant3-utf8-doc.tex
    trunk/Master/texmf-dist/xindy/modules/lang/persian/source/
    trunk/Master/texmf-dist/xindy/modules/lang/persian/source/make-rules.pl
    trunk/Master/texmf-dist/xindy/modules/lang/persian/source/test.xdy
    trunk/Master/texmf-dist/xindy/modules/lang/persian/source/variant1-utf8.pl.in
    trunk/Master/texmf-dist/xindy/modules/lang/persian/source/variant2-utf8.pl.in
    trunk/Master/texmf-dist/xindy/modules/lang/persian/source/variant3-utf8.pl.in

Removed Paths:
-------------
    trunk/Master/texmf-dist/xindy/modules/lang/persian/variant1-utf8.pl.in
    trunk/Master/texmf-dist/xindy/modules/lang/persian/variant2-utf8.pl.in
    trunk/Master/texmf-dist/xindy/modules/lang/persian/variant3-utf8.pl.in

Added: trunk/Master/texmf-dist/doc/support/xindy-persian/variant1-utf8-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/xindy-persian/variant1-utf8-doc.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/support/xindy-persian/variant1-utf8-doc.tex	2021-04-27 15:33:46 UTC (rev 59003)
@@ -0,0 +1,88 @@
+\subsection{Persian (One)}
+
+\subsubsection{Alphabet}
+\icod\fcod
+\begin{alphabet}
+آ\\
+أ\\
+ا\\
+ب\\
+پ\\
+ت\\
+ث\\
+ج\\
+چ\\
+ح\\
+خ\\
+د\\
+ذ\\
+ر\\
+ز\\
+ژ\\
+س\\
+ش\\
+ص\\
+ض\\
+ط\\
+ظ\\
+ع\\
+غ\\
+ف\\
+ق\\
+ک\\
+گ\\
+ل\\
+م\\
+ن\\
+ؤ\,و\\
+ه\\
+ئ\,ی\\
+a\,A & à\,À\\
+b\,B\\
+c\,C & ç\,Ç\\
+d\,D & ð\,Ð\\
+e\,E & é\,É & è\,È & ë\,Ë & ê\,Ê\\
+f\,F\\
+g\,G\\
+h\,H\\
+i\,I & ï\,Ï\\
+j\,J\\
+k\,K\\
+l\,L\\
+m\,M\\
+n\,N & ñ\,Ñ\\
+o\,O & ö\,Ö & ô\,Ô\\
+p\,P\\
+q\,Q\\
+r\,R\\
+s\,S\\
+t\,T\\
+u\,U\\
+v\,V\\
+w\,W\\
+x\,X\\
+y\,Y\\
+\\
+z\,Z\\
+þ\,Þ\\
+
+\end{alphabet}
+\idef\fdef
+
+\subsubsection{Ligatures}
+\begin{flushleft}
+`æ' is sorted like `a\,e', but \emph{after} it in otherwise equal words.\\
+`Æ' is sorted like `A\,e', but \emph{after} it in otherwise equal words.\\
+`œ' is sorted like `o\,e', but \emph{after} it in otherwise equal words.\\
+`Œ' is sorted like `O\,e', but \emph{after} it in otherwise equal words.
+\end{flushleft}
+
+\subsubsection{Upper-/lowercase words}
+Capitalized or uppercase words are sorted \emph{before} otherwise equal lowercase words.
+
+\subsubsection{Special characters}
+The order of special characters and letters is:
+\begin{flushleft}
+?\hspace{4mm}!\hspace{4mm}.\hspace{4mm}letters\hspace{4mm}-\hspace{4mm}'\hspace{4mm}{\hspace{4mm}}\hspace{4mm}ّ\hspace{4mm}َ\hspace{4mm}ِ\hspace{4mm}ُ\hspace{4mm}ً\hspace{4mm}ٍ\hspace{4mm}ٌ\hspace{4mm}ْ\hspace{4mm}ٔ\hspace{4mm}ء\hspace{4mm}‌\hspace{4mm}«\hspace{4mm}»\hspace{4mm}ـ\hspace{4mm}،\hspace{4mm}؛
+\end{flushleft}
+\newpage


Property changes on: trunk/Master/texmf-dist/doc/support/xindy-persian/variant1-utf8-doc.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/support/xindy-persian/variant2-utf8-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/xindy-persian/variant2-utf8-doc.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/support/xindy-persian/variant2-utf8-doc.tex	2021-04-27 15:33:46 UTC (rev 59003)
@@ -0,0 +1,88 @@
+\subsection{Persian (Two)}
+
+\subsubsection{Alphabet}
+\icod\fcod
+\begin{alphabet}
+آ\\
+أ\\
+ا\\
+ب\\
+پ\\
+ت\\
+ث\\
+ج\\
+چ\\
+ح\\
+خ\\
+د\\
+ذ\\
+ر\\
+ز\\
+ژ\\
+س\\
+ش\\
+ص\\
+ض\\
+ط\\
+ظ\\
+ع\\
+غ\\
+ف\\
+ق\\
+ک\\
+گ\\
+ل\\
+م\\
+ن\\
+ؤ\,و\\
+ه\\
+ئ\,ی\\
+a\,A & à\,À\\
+b\,B\\
+c\,C & ç\,Ç\\
+d\,D & ð\,Ð\\
+e\,E & é\,É & è\,È & ë\,Ë & ê\,Ê\\
+f\,F\\
+g\,G\\
+h\,H\\
+i\,I & ï\,Ï\\
+j\,J\\
+k\,K\\
+l\,L\\
+m\,M\\
+n\,N & ñ\,Ñ\\
+o\,O & ö\,Ö & ô\,Ô\\
+p\,P\\
+q\,Q\\
+r\,R\\
+s\,S\\
+t\,T\\
+u\,U\\
+v\,V\\
+w\,W\\
+x\,X\\
+y\,Y\\
+\\
+z\,Z\\
+þ\,Þ\\
+
+\end{alphabet}
+\idef\fdef
+
+\subsubsection{Ligatures}
+\begin{flushleft}
+`æ' is sorted like `a\,e', but \emph{after} it in otherwise equal words.\\
+`Æ' is sorted like `A\,e', but \emph{after} it in otherwise equal words.\\
+`œ' is sorted like `o\,e', but \emph{after} it in otherwise equal words.\\
+`Œ' is sorted like `O\,e', but \emph{after} it in otherwise equal words.
+\end{flushleft}
+
+\subsubsection{Upper-/lowercase words}
+Capitalized or uppercase words are sorted \emph{before} otherwise equal lowercase words.
+
+\subsubsection{Special characters}
+The order of special characters and letters is:
+\begin{flushleft}
+?\hspace{4mm}!\hspace{4mm}.\hspace{4mm}letters\hspace{4mm}-\hspace{4mm}'\hspace{4mm}{\hspace{4mm}}\hspace{4mm}ّ\hspace{4mm}َ\hspace{4mm}ِ\hspace{4mm}ُ\hspace{4mm}ً\hspace{4mm}ٍ\hspace{4mm}ٌ\hspace{4mm}ْ\hspace{4mm}ٔ\hspace{4mm}ء\hspace{4mm}‌\hspace{4mm}«\hspace{4mm}»\hspace{4mm}ـ\hspace{4mm}،\hspace{4mm}؛
+\end{flushleft}
+\newpage


Property changes on: trunk/Master/texmf-dist/doc/support/xindy-persian/variant2-utf8-doc.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/support/xindy-persian/variant3-utf8-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/xindy-persian/variant3-utf8-doc.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/support/xindy-persian/variant3-utf8-doc.tex	2021-04-27 15:33:46 UTC (rev 59003)
@@ -0,0 +1,88 @@
+\subsection{Persian (Three)}
+
+\subsubsection{Alphabet}
+\icod\fcod
+\begin{alphabet}
+آ\\
+أ\\
+ا\\
+ب\\
+پ\\
+ت\\
+ث\\
+ج\\
+چ\\
+ح\\
+خ\\
+د\\
+ذ\\
+ر\\
+ز\\
+ژ\\
+س\\
+ش\\
+ص\\
+ض\\
+ط\\
+ظ\\
+ع\\
+غ\\
+ف\\
+ق\\
+ک\\
+گ\\
+ل\\
+م\\
+ن\\
+ؤ\,و\\
+ه\\
+ئ\,ی\\
+a\,A & à\,À\\
+b\,B\\
+c\,C & ç\,Ç\\
+d\,D & ð\,Ð\\
+e\,E & é\,É & è\,È & ë\,Ë & ê\,Ê\\
+f\,F\\
+g\,G\\
+h\,H\\
+i\,I & ï\,Ï\\
+j\,J\\
+k\,K\\
+l\,L\\
+m\,M\\
+n\,N & ñ\,Ñ\\
+o\,O & ö\,Ö & ô\,Ô\\
+p\,P\\
+q\,Q\\
+r\,R\\
+s\,S\\
+t\,T\\
+u\,U\\
+v\,V\\
+w\,W\\
+x\,X\\
+y\,Y\\
+\\
+z\,Z\\
+þ\,Þ\\
+
+\end{alphabet}
+\idef\fdef
+
+\subsubsection{Ligatures}
+\begin{flushleft}
+`æ' is sorted like `a\,e', but \emph{after} it in otherwise equal words.\\
+`Æ' is sorted like `A\,e', but \emph{after} it in otherwise equal words.\\
+`œ' is sorted like `o\,e', but \emph{after} it in otherwise equal words.\\
+`Œ' is sorted like `O\,e', but \emph{after} it in otherwise equal words.
+\end{flushleft}
+
+\subsubsection{Upper-/lowercase words}
+Capitalized or uppercase words are sorted \emph{before} otherwise equal lowercase words.
+
+\subsubsection{Special characters}
+The order of special characters and letters is:
+\begin{flushleft}
+?\hspace{4mm}!\hspace{4mm}.\hspace{4mm}letters\hspace{4mm}-\hspace{4mm}'\hspace{4mm}{\hspace{4mm}}\hspace{4mm}ّ\hspace{4mm}َ\hspace{4mm}ِ\hspace{4mm}ُ\hspace{4mm}ً\hspace{4mm}ٍ\hspace{4mm}ٌ\hspace{4mm}ْ\hspace{4mm}ٔ\hspace{4mm}ء\hspace{4mm}‌\hspace{4mm}«\hspace{4mm}»\hspace{4mm}ـ\hspace{4mm}،\hspace{4mm}؛
+\end{flushleft}
+\newpage


Property changes on: trunk/Master/texmf-dist/doc/support/xindy-persian/variant3-utf8-doc.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/xindy/modules/lang/persian/README
===================================================================
--- trunk/Master/texmf-dist/xindy/modules/lang/persian/README	2021-04-27 13:41:25 UTC (rev 59002)
+++ trunk/Master/texmf-dist/xindy/modules/lang/persian/README	2021-04-27 15:33:46 UTC (rev 59003)
@@ -1,6 +1,6 @@
 ________________________
 The “xindy-persian” package
-v0.7b
+v0.8
 
 The “xindy-persian” package is the Persian language
 support for xindy program.
@@ -15,17 +15,16 @@
 or ask for any new features, or suggest any improvements, or ask any questions
 about the package, then please do not send any direct emails to us; we will not 
 answer any direct emails. Instead please use the issue tracker:
-  <https://github.com/persian-tex/xindy-persian>
+  <https://github.com/persiantex/xindy-persian>
 In doing so, please always explain your issue well enough, always include
 a minimal working examples showing the issue, and always choose the appropriate
 label for your query (i.e. if you are reporting any bugs, choose `bug' label). 
 
-Current version release date: 2015/12/20
+Current version release date: 2021/04/03
 _________________
 Vafa Khalighi
-persian-tex at tug.org
 
-Copyright © 2011–2015 Vafa Khalighi
+Copyright © 2011–2021 Vafa Khalighi
 Distributed under the LaTeX Project Public License
 It may be distributed and/or modified under the LaTeX Project Public License,
 version 1.3c or higher (your choice). The latest version of

Added: trunk/Master/texmf-dist/xindy/modules/lang/persian/source/make-rules.pl
===================================================================
--- trunk/Master/texmf-dist/xindy/modules/lang/persian/source/make-rules.pl	                        (rev 0)
+++ trunk/Master/texmf-dist/xindy/modules/lang/persian/source/make-rules.pl	2021-04-27 15:33:46 UTC (rev 59003)
@@ -0,0 +1,269 @@
+#!/usr/bin/perl
+
+open XDY,">$ARGV[0].xdy";
+open DOC,">$ARGV[0]-doc.tex";
+open TEST,">$ARGV[0].raw";
+open TESTXDY,">$ARGV[0]-test.xdy";
+
+print XDY ";; Rules for xindy; generated by make-rules.pl\n";
+print XDY ";; language: $language\n\n";
+
+if ($prefix) {
+    $prefix = $prefix . '-';
+}
+
+print TESTXDY "(require \"lang/$ARGV[0].xdy\")\n";
+print TESTXDY "(define-sort-rule-orientations (forward backward forward forward))\n";
+print TESTXDY "(use-rule-set :run 0\n";
+print TESTXDY "	      :rule-set (\"".$prefix."alphabetize\" \"".$prefix."ignore-special\"))\n";
+print TESTXDY "(use-rule-set :run 1\n";
+print TESTXDY "	      :rule-set (\"".$prefix."resolve-diacritics\" \"".$prefix."ignore-special\"))\n";
+print TESTXDY "(use-rule-set :run 2\n";
+print TESTXDY "	      :rule-set (\"".$prefix."resolve-case\" \"".$prefix."ignore-special\"))\n";
+print TESTXDY "(use-rule-set :run 3\n";
+print TESTXDY "	      :rule-set (\"".$prefix."resolve-special\"))\n";
+close TESTXDY;
+
+$fn = "test.xdy";
+! -f $fn && -f "$INC[0]/$fn"  and  $fn = "$INC[0]/$fn";
+-f $fn  or  die "$fn: $!";
+system("cat $fn >> $ARGV[0]-test.xdy");
+
+$begin = 128;
+# $begin =  97 if ($script eq "cyrillic");
+# $begin = 150 if ($script eq "latin");
+# $begin =  65 if ($script eq "greek");
+
+if (!$begin) {
+    $begin = 65;
+}
+
+print "Alphabet has " . @{$alphabet} . " elements.\n";
+
+for ($i = 0; $i < @{$alphabet}; $i++) {
+  if (defined($alphabet->[$i][0])) {
+    $letter = $alphabet->[$i][0];
+    $lout = $letter;
+    $lout =~ s/\~/~~/g;
+    $lout =~ s/\"/~\"/g;
+    $token = chr($i+$begin);
+    $token =~ s/\~/~~/g;
+    $token =~ s/\"/~\"/g;
+    if ($after ne $lout) {
+      print XDY "\"))\n" if ($i);
+      print XDY "(define-letter-group \"$lout\"";
+      print XDY " :after \"$after\"" if ($i);
+      print XDY " :prefixes (\"";
+    } else {
+      print XDY "\" \"";
+    }
+    print XDY "$token";
+    $after = $lout;
+  }
+}
+
+print XDY "\"))\n\n";
+
+$ref = \$i;
+$offset = $begin;
+$f = 1;
+make_tokens();
+
+# print test raw file
+# alphabet
+  $p = 1;
+  foreach $letter (keys %tokens) {
+    print TEST "(indexentry :key (\"$letter\") :locref \"$p\")\n";
+    $p++;
+  }
+# end
+
+process_ligatures();
+
+print_tokens($prefix . "alphabetize");
+
+$ref = \$j;
+$offset = 161;
+$f = 1;
+make_tokens();
+
+for ($i = 0; $i < @{$ligatures}; $i++) {
+  if ($ligatures->[$i][1] eq "before") {
+    $token = chr(161);
+  } else {
+    $token = chr(255);
+  }
+  foreach $ligature_variant (@{$ligatures->[$i][0]}) {
+    $tokens{$ligature_variant} = $token;
+  }
+}
+
+print_tokens($prefix . "resolve-diacritics");
+
+$ref = \$k;
+$offset = 48;
+$f = 1;
+if ($sortcase eq "Aa") {
+  $offset = 57;
+  $f = -1;
+}
+
+make_tokens();
+
+process_ligatures();
+
+print_tokens($prefix . "resolve-case");
+
+foreach $character (@special) {
+  $tokens{$character} = "" unless ($character eq "letters");
+}
+
+print_tokens($prefix . "ignore-special");
+
+$offset = 161;
+$f = 1;
+
+for ($l = 0; $l < @special; $l++) {
+  if (@special[$l] eq "letters") {
+    $ref = \$l;
+    make_tokens();
+    process_ligatures();
+  } else {
+    $token = chr($l+$offset);
+    $tokens{@special[$l]} = $token;
+  }
+}
+
+print_tokens($prefix . "resolve-special");
+
+# print doc:
+# alphabet
+  for ($i = 0; $i < @{$alphabet}; $i++) {
+    for ($j = 1; $j < @{$alphabet->[$i]}; $j++) {
+        push @l,join("\\,", (@{$alphabet->[$i][$j]}));
+    }
+    if ((@l)) {
+	push @m, join(" & ", (@l));
+    }
+#    push @m, "`".$alphabet->[$i][0]."':\\>".join(" -- ", (@l));
+    @l = ();
+  }
+  print DOC "\\subsection{$language";
+  print DOC " ($variant)" if ($variant);
+  print DOC "}\n\n";
+  print DOC "\\subsubsection{Alphabet}\n";
+  print DOC "\\icod\\fcod\n";
+  print DOC "\\begin{alphabet}\n";
+  print DOC join("\\\\\n", (@m));
+  print DOC "\n\\end{alphabet}\n";
+  print DOC "\\idef\\fdef\n";
+
+# ligatures
+  print DOC "\n\\subsubsection{Ligatures}\n";
+  print DOC "\\begin{flushleft}\n";
+  print DOC "None.\n" unless @{$ligatures};
+  @m = ();
+  for ($i = 0; $i < @{$ligatures}; $i++) {
+    for ($j = 0; $j < @{$ligatures->[$i][0]}; $j++) {
+      push @m, "`$ligatures->[$i][0][$j]' is sorted like `" .
+        join("\\,", (@{$ligatures->[$i][2][$j]})) .
+        "', but \\emph{$ligatures->[$i][1]} it in otherwise equal words.";
+    }
+  }
+  print DOC join("\\\\\n", (@m));
+  print DOC "\n\\end{flushleft}\n";
+
+# case
+  print DOC "\n\\subsubsection{Upper-/lowercase words}\n";
+  if ($sortcase eq "Aa") {
+    print DOC "Capitalized or uppercase words are sorted \\emph{before} ";
+    print DOC "otherwise equal lowercase words.\n";
+  } else {
+    print DOC "Capitalized or uppercase words are sorted \\emph{after} ";
+    print DOC "otherwise equal lowercase words.\n";
+  }
+
+# special
+print DOC "\n\\subsubsection{Special characters}\n";
+print DOC "The order of special characters and letters is:\n";
+print DOC "\\begin{flushleft}\n";
+print DOC join("\\hspace{4mm}", (@special));
+print DOC "\n\\end{flushleft}\n";
+print DOC "\\newpage\n";
+
+# end
+
+# print test raw file
+
+#  for ($i = 0; $i < @{$alphabet}; $i++) {
+#    for ($j = 1; $j < @{$alphabet->[$i]}; $j++) {
+#      foreach $letter (@{$alphabet->[$i][$j]}) {
+#        print TEST "(indexentry :key (\"$letter\") :locref \"$p\")\n";
+#	$p++;
+#      }
+#    }
+#  }
+
+# ligatures
+  for ($i = 0; $i < @{$ligatures}; $i++) {
+    for ($j = 0; $j < @{$ligatures->[$i][0]}; $j++) {
+      print TEST
+        "(indexentry :key (\"$ligatures->[$i][0][$j]\") :locref \"$p\")\n";
+      $p++;
+      print TEST "(indexentry :key (\"" .
+        join("", (@{$ligatures->[$i][2][$j]})) . "\") :locref \"$p\")\n";
+      $p++;
+    }
+  }
+
+# special
+foreach $letter (@special) {
+  if ($letter ne "letters") {
+    print TEST "(indexentry :key (\"$letter\") :locref \"$p\")\n";
+    $p++;
+  }
+}
+
+# end
+
+sub make_tokens {
+  for ($i = 0; $i < @{$alphabet}; $i++) {
+    for ($j = 1; $j < @{$alphabet->[$i]}; $j++) {
+      for ($k = 0; $k < @{$alphabet->[$i][$j]}; $k++) {
+        $token = chr($f*$$ref+$offset);
+	if ($alphabet->[$i][$j][$k]) {
+	  $tokens{$alphabet->[$i][$j][$k]} = $token;
+	}
+      }
+    }
+  }
+}
+
+sub process_ligatures {
+  for ($i = 0; $i < @{$ligatures}; $i++) {
+    for ($j = 0; $j < @{$ligatures->[$i][0]}; $j++) {
+      $token = "";
+      foreach $ligature_component (@{$ligatures->[$i][2][$j]}) {
+        $token = $token.$tokens{$ligature_component};
+      }
+      $tokens{$ligatures->[$i][0][$j]} = $token;
+    }
+  }
+}
+
+sub print_tokens {
+  print XDY "(define-rule-set \"$_[0]\"\n\n  :rules  (";
+  foreach $letter (sort {
+    (length($b) <=> length($a)) || ($tokens{$a} cmp $tokens{$b})
+  } (keys %tokens)) {
+    $lout = $letter;
+    $lout =~ s/\~/~~/g;
+    $lout =~ s/\"/~\"/g;
+    $tout = $tokens{$letter};
+    $tout =~ s/\~/~~/g;
+    $tout =~ s/\"/~\"/g;
+    print XDY "(\"$lout\" \"$tout\" :string)\n           ";
+  }
+  print XDY "))\n\n";
+  %tokens = ();
+}


Property changes on: trunk/Master/texmf-dist/xindy/modules/lang/persian/source/make-rules.pl
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/xindy/modules/lang/persian/source/test.xdy
===================================================================
--- trunk/Master/texmf-dist/xindy/modules/lang/persian/source/test.xdy	                        (rev 0)
+++ trunk/Master/texmf-dist/xindy/modules/lang/persian/source/test.xdy	2021-04-27 15:33:46 UTC (rev 59003)
@@ -0,0 +1,82 @@
+
+;; define other stuff
+(define-attributes ("default"))
+
+;; The description of the location-classes.
+;; Add more location classes as needed.
+
+(define-location-class "arabic-page-numbers" ("arabic-numbers"))
+(define-location-class "roman-page-numbers"  ("roman-numbers-lowercase"))
+(define-location-class "Roman-page-numbers"  ("roman-numbers-uppercase"))
+(define-location-class "alpha-page-numbers"  ("alpha"))
+(define-location-class "Alpha-page-numbers"  ("ALPHA"))
+
+;; The most frequently used cross reference class "see". Add more, if
+;; necessary.
+
+(define-crossref-class "see")
+(markup-crossref-list :open "\see{" :close "}{}" :class "see")
+
+;; In makeindex: page_precedence <string>  "rnaRA"
+;; List all location classes appearing in your document.
+
+(define-location-class-order ("roman-page-numbers"
+			      "arabic-page-numbers"
+			      "alpha-page-numbers"
+			      "Roman-page-numbers"
+			      "Alpha-page-numbers"
+			      "see"))
+
+
+;; preamble <string>        "\\begin{theindex}\n"
+;; postamble <string>       "\n\n\\end{theindex}\n"
+
+(markup-index :open  "\begin{theindex}~n"
+	      :close "~n~n\end{theindex}~n"
+	      :tree)
+
+;; These specifiers are not directly supported via a command-line
+;; switch as in makeindex. Add the appropriate markup-commands into
+;; the preamble.
+
+;; setpage_prefix <string>  "~n  \setcounter{page}{"
+;; setpage_suffix <string>  "}~n"
+
+;; group_skip <string>      "~n~n  \indexspace~n"
+
+(markup-letter-group-list :sep "~n~n  \indexspace~n")
+
+;; even though we comment out (%) the letter-group heading,
+;; the following is useful if you want to check the .ind-file
+(markup-letter-group :open-head "~n  % ")
+
+;; The indexentries (item_<..> specifiers)
+
+(markup-indexentry :open "~n  \item "           :depth 0)
+(markup-indexentry :open "~n    \subitem "      :depth 1)
+(markup-indexentry :open "~n      \subsubitem " :depth 2)
+
+;; Location-references
+
+;; delim_0 <string>         ", "
+;; delim_1 <string>         ", "
+;; delim_2 <string>         ", "
+
+(markup-locclass-list :open ", " :sep ", ")
+
+;; delim_n <string>         ", "
+
+(markup-locref-list   :sep ", ")
+
+;; delim_r <string>         "--"
+
+(markup-range :sep "--")
+
+;; That's all ;-)
+
+
+;; End
+

+;; Local Variables:
+;; mode: lisp
+;; End:

Added: trunk/Master/texmf-dist/xindy/modules/lang/persian/source/variant1-utf8.pl.in
===================================================================
--- trunk/Master/texmf-dist/xindy/modules/lang/persian/source/variant1-utf8.pl.in	                        (rev 0)
+++ trunk/Master/texmf-dist/xindy/modules/lang/persian/source/variant1-utf8.pl.in	2021-04-27 15:33:46 UTC (rev 59003)
@@ -0,0 +1,181 @@
+#!/usr/bin/perl
+
+$language = "Persian";
+$variant = "One";
+$prefix = "pe";
+$script = "arabic";
+
+$alphabet = [
+['ا',['آ']],
+['ا',['أ']],
+['ا',['ا']],
+['ب',['ب']],
+['پ',['پ']],
+['ت',['ت']],
+['ث',['ث']],
+['ج',['ج']],
+['چ',['چ']],
+['ح',['ح']],
+['خ',['خ']],
+['د',['د']],
+['ذ',['ذ']],
+['ر',['ر']],
+['ز',['ز']],
+['ژ',['ژ']],
+['س',['س']],
+['ش',['ش']],
+['ص',['ص']],
+['ض',['ض']],
+['ط',['ط']],
+['ظ',['ظ']],
+['ع',['ع']],
+['غ',['غ']],
+['ف',['ف']],
+['ق',['ق']],
+['ک',['ک']],
+['گ',['گ']],
+['ل',['ل']],
+['م',['م']],
+['ن',['ن']],
+['و',['ؤ','و']],
+['ه',['ه']],
+['ی',['ئ','ی']],
+['A',  ['a','A'],['à','À']],
+                   [], # a with breve (romanian)
+                   [], # a with circumflex (romanian)
+                   [], # a with ogonek (polish)
+['B',  ['b','B']],
+                   [], # b with hook (hausa)
+['C',  ['c','C'],['ç','Ç']],
+                   [], # ch (spanish/traditional)
+                   [], # cs (hungarian)
+                   [], # c with caron (many)
+                   [], # c with acute (croatian, lower sorbian, polish)
+                   [], # c with circumflex (esperanto)
+                   [], # c with cedilla (albanian, kurdish, turkish)
+['D',  ['d','D'],['ð','Ð']],
+                   [], # dh (albanian)
+                   [], # dz (hungarian)
+                   [], # dzs (hungarian)
+                   [], # d+z with caron (croatian)
+                   [], # d+z with acute (upper sorbian)
+                   [], # d with caron (slovak/large)
+                   [], # d with stroke (croatian)
+                   [], # d with hook (hausa)
+                   [], # eth (icelandic)
+['E',  ['e','E'],['é','É'],['è','È'],['ë','Ë'],['ê','Ê']],
+                   [], # e with caron (lower/upper sorbian)
+                   [], # e with circumflex (kurdish)
+                   [], # e with diaeresis (albanian)
+                   [], # e with ogonek (polish)
+['F',  ['f','F']],
+['G',  ['g','G']],
+                   [], # gj (albanian)
+                   [], # gy (hungarian)
+                   [], # g with circumflex (esperanto)
+                   [], # g with breve (turkish)
+                   [], # g with cedilla/comma (latvian)
+                   [], # postpalatal fricative (gypsy/northrussian)
+['H',  ['h','H']],
+                   [], # h with circumflex (esperanto)
+                   [], # ch (many)
+                   [], # dotless i (turkish)
+['I',  ['i','I'],['ï','Ï']],
+                   [], # i with inverted breve below (gypsy/northrussian)
+                   [], # i with circumflex (kurdish, romanian)
+                   [], # i with diaeresis (gypsy/northrussian)
+['J',  ['j','J']],
+                   [], # j with circumflex (esperanto)
+['K',  ['k','K']],
+                   [], # kh (gypsy/northrussian)
+                   [], # k with cedilla/comma (latvian)
+                   [], # k with hook (hausa)
+                   [], # x (gypsy/northrussian)
+                   [], # l with stroke (lower/upper sorbian)
+['L',  ['l','L']],
+                   [], # lj (croatian)
+                   [], # ll (albanian, spanish/traditional)
+                   [], # ly (hungarian)
+                   [], # l with cedilla/comma (latvian)
+                   [], # l with stroke (polish)
+                   [], # l with caron (slovak/large)
+['M',  ['m','M']],
+['N',  ['n','N'],['ñ','Ñ']],
+                   [], # nj (albanian, croatian)
+                   [], # ny (hungarian)
+                   [], # n with caron (slovak/large)
+                   [], # n with acute (lower/upper sorbian, polish)
+                   [], # n with tilde (spanish/modern, spanish/traditional)
+                   [], # n with cedilla/comma (latvian)
+['O',  ['o','O'],['ö','Ö'],['ô','Ô']],
+                   [], # o with acute (polish, upper sorbian)
+                   [], # o with circumflex (vietnamese)
+                   [], # o with horn (vietnamese)
+                   [], # o with diaeresis (hungarian, turkish)
+['P',  ['p','P']],
+                   [], # ph (gypsy/northrussian)
+['Q',  ['q','Q']],
+['R',  ['r','R']],
+                   [], # rr (albanian)
+                   [], # r with caron (czech, slovak/large, upper sorbian)
+                   [], # r with acute (lower sorbian)
+                   [], # r with cedilla/comma (latvian)
+['S',  ['s','S']],
+                   [], # sh (albanian)
+                   [], # sz (hungarian)
+                   [], # s with caron (many)
+                   [], # s with acute (lower sorbian, polish)
+                   [], # s with circumflex (esperanto)
+                   [], # s with comma below (romanian)
+                   [], # s with cedilla (kurdish, turkish)
+                   [], # z (estonian)
+                   [], # z with caron (estonian)
+['T',  ['t','T']],
+                   [], # th (albanian)
+                   [], # ty (hungarian)
+                   [], # t with caron (slovak/large)
+                   [], # t with comma below (romanian)
+                   [], # c with acute (upper sorbian)
+['U',  ['u','U']],
+                   [], # u with breve (esperanto)
+                   [], # u with circumflex (kurdish)
+                   [], # u with horn (vietnamese)
+                   [], # u with diaeresis (hungarian, turkish)
+['V',  ['v','V']],
+['W',  ['w','W']],
+                   [], # o with tilde (estonian)
+                   [], # a with diaeresis (estonian)
+                   [], # o with diaeresis (estonian)
+                   [], # u with diaeresis (estonian)
+['X',  ['x','X']],
+                   [], # xh (albanian)
+['Y',  ['y','Y']],
+                   [], # y preceded by apostrophe (hausa)
+[@u{'Ȝ',  ['ȝ','Ȝ']}],
+['Z',  ['z','Z']],
+                   [], # zh (albanian)
+                   [], # zs (hungarian)
+                   [], # z with caron (many)
+                   [], # z with acute (lower sorbian, polish)
+                   [], # z with dot above (polish)
+['Þ',  ['þ','Þ']],
+[@u{'ƿ',  ['ƿ','Ƿ']}],
+                   [], # ligature ae (danish, icelandic, norwegian)
+                   [], # o with stroke (danish, norwegian)
+                   [], # a with ring above (danish, norwegian, swedish)
+                   [], # a with diaeresis (finnish, swedish)
+                   [], # o with diaeresis (finnish, swedish)
+                   [], # a with ring above (icelandic)
+];
+
+$sortcase = "Aa";
+#$sortcase = "aA";
+
+$ligatures = [
+[['æ','Æ'], 'after', [['a','e'], ['A','e']]],
+[['œ','Œ'], 'after', [['o','e'], ['O','e']]]
+];
+
+ at special = ('?', '!', '.', 'letters', '-', '\'', '{', '}','ّ','َ','ِ','ُ','ً','ٍ','ٌ','ْ','ٔ','ء','‌','«','»','ـ', '،', '؛');
+
+do 'make-rules.pl';


Property changes on: trunk/Master/texmf-dist/xindy/modules/lang/persian/source/variant1-utf8.pl.in
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Added: trunk/Master/texmf-dist/xindy/modules/lang/persian/source/variant2-utf8.pl.in
===================================================================
--- trunk/Master/texmf-dist/xindy/modules/lang/persian/source/variant2-utf8.pl.in	                        (rev 0)
+++ trunk/Master/texmf-dist/xindy/modules/lang/persian/source/variant2-utf8.pl.in	2021-04-27 15:33:46 UTC (rev 59003)
@@ -0,0 +1,181 @@
+#!/usr/bin/perl
+
+$language = "Persian";
+$variant = "Two";
+$prefix = "pe";
+$script = "arabic";
+
+$alphabet = [
+['آ',['آ']],
+['ا',['أ']],
+['ا',['ا']],
+['ب',['ب']],
+['پ',['پ']],
+['ت',['ت']],
+['ث',['ث']],
+['ج',['ج']],
+['چ',['چ']],
+['ح',['ح']],
+['خ',['خ']],
+['د',['د']],
+['ذ',['ذ']],
+['ر',['ر']],
+['ز',['ز']],
+['ژ',['ژ']],
+['س',['س']],
+['ش',['ش']],
+['ص',['ص']],
+['ض',['ض']],
+['ط',['ط']],
+['ظ',['ظ']],
+['ع',['ع']],
+['غ',['غ']],
+['ف',['ف']],
+['ق',['ق']],
+['ک',['ک']],
+['گ',['گ']],
+['ل',['ل']],
+['م',['م']],
+['ن',['ن']],
+['و',['ؤ','و']],
+['ه',['ه']],
+['ی',['ئ','ی']],
+['A',  ['a','A'],['à','À']],
+                   [], # a with breve (romanian)
+                   [], # a with circumflex (romanian)
+                   [], # a with ogonek (polish)
+['B',  ['b','B']],
+                   [], # b with hook (hausa)
+['C',  ['c','C'],['ç','Ç']],
+                   [], # ch (spanish/traditional)
+                   [], # cs (hungarian)
+                   [], # c with caron (many)
+                   [], # c with acute (croatian, lower sorbian, polish)
+                   [], # c with circumflex (esperanto)
+                   [], # c with cedilla (albanian, kurdish, turkish)
+['D',  ['d','D'],['ð','Ð']],
+                   [], # dh (albanian)
+                   [], # dz (hungarian)
+                   [], # dzs (hungarian)
+                   [], # d+z with caron (croatian)
+                   [], # d+z with acute (upper sorbian)
+                   [], # d with caron (slovak/large)
+                   [], # d with stroke (croatian)
+                   [], # d with hook (hausa)
+                   [], # eth (icelandic)
+['E',  ['e','E'],['é','É'],['è','È'],['ë','Ë'],['ê','Ê']],
+                   [], # e with caron (lower/upper sorbian)
+                   [], # e with circumflex (kurdish)
+                   [], # e with diaeresis (albanian)
+                   [], # e with ogonek (polish)
+['F',  ['f','F']],
+['G',  ['g','G']],
+                   [], # gj (albanian)
+                   [], # gy (hungarian)
+                   [], # g with circumflex (esperanto)
+                   [], # g with breve (turkish)
+                   [], # g with cedilla/comma (latvian)
+                   [], # postpalatal fricative (gypsy/northrussian)
+['H',  ['h','H']],
+                   [], # h with circumflex (esperanto)
+                   [], # ch (many)
+                   [], # dotless i (turkish)
+['I',  ['i','I'],['ï','Ï']],
+                   [], # i with inverted breve below (gypsy/northrussian)
+                   [], # i with circumflex (kurdish, romanian)
+                   [], # i with diaeresis (gypsy/northrussian)
+['J',  ['j','J']],
+                   [], # j with circumflex (esperanto)
+['K',  ['k','K']],
+                   [], # kh (gypsy/northrussian)
+                   [], # k with cedilla/comma (latvian)
+                   [], # k with hook (hausa)
+                   [], # x (gypsy/northrussian)
+                   [], # l with stroke (lower/upper sorbian)
+['L',  ['l','L']],
+                   [], # lj (croatian)
+                   [], # ll (albanian, spanish/traditional)
+                   [], # ly (hungarian)
+                   [], # l with cedilla/comma (latvian)
+                   [], # l with stroke (polish)
+                   [], # l with caron (slovak/large)
+['M',  ['m','M']],
+['N',  ['n','N'],['ñ','Ñ']],
+                   [], # nj (albanian, croatian)
+                   [], # ny (hungarian)
+                   [], # n with caron (slovak/large)
+                   [], # n with acute (lower/upper sorbian, polish)
+                   [], # n with tilde (spanish/modern, spanish/traditional)
+                   [], # n with cedilla/comma (latvian)
+['O',  ['o','O'],['ö','Ö'],['ô','Ô']],
+                   [], # o with acute (polish, upper sorbian)
+                   [], # o with circumflex (vietnamese)
+                   [], # o with horn (vietnamese)
+                   [], # o with diaeresis (hungarian, turkish)
+['P',  ['p','P']],
+                   [], # ph (gypsy/northrussian)
+['Q',  ['q','Q']],
+['R',  ['r','R']],
+                   [], # rr (albanian)
+                   [], # r with caron (czech, slovak/large, upper sorbian)
+                   [], # r with acute (lower sorbian)
+                   [], # r with cedilla/comma (latvian)
+['S',  ['s','S']],
+                   [], # sh (albanian)
+                   [], # sz (hungarian)
+                   [], # s with caron (many)
+                   [], # s with acute (lower sorbian, polish)
+                   [], # s with circumflex (esperanto)
+                   [], # s with comma below (romanian)
+                   [], # s with cedilla (kurdish, turkish)
+                   [], # z (estonian)
+                   [], # z with caron (estonian)
+['T',  ['t','T']],
+                   [], # th (albanian)
+                   [], # ty (hungarian)
+                   [], # t with caron (slovak/large)
+                   [], # t with comma below (romanian)
+                   [], # c with acute (upper sorbian)
+['U',  ['u','U']],
+                   [], # u with breve (esperanto)
+                   [], # u with circumflex (kurdish)
+                   [], # u with horn (vietnamese)
+                   [], # u with diaeresis (hungarian, turkish)
+['V',  ['v','V']],
+['W',  ['w','W']],
+                   [], # o with tilde (estonian)
+                   [], # a with diaeresis (estonian)
+                   [], # o with diaeresis (estonian)
+                   [], # u with diaeresis (estonian)
+['X',  ['x','X']],
+                   [], # xh (albanian)
+['Y',  ['y','Y']],
+                   [], # y preceded by apostrophe (hausa)
+[@u{'Ȝ',  ['ȝ','Ȝ']}],
+['Z',  ['z','Z']],
+                   [], # zh (albanian)
+                   [], # zs (hungarian)
+                   [], # z with caron (many)
+                   [], # z with acute (lower sorbian, polish)
+                   [], # z with dot above (polish)
+['Þ',  ['þ','Þ']],
+[@u{'ƿ',  ['ƿ','Ƿ']}],
+                   [], # ligature ae (danish, icelandic, norwegian)
+                   [], # o with stroke (danish, norwegian)
+                   [], # a with ring above (danish, norwegian, swedish)
+                   [], # a with diaeresis (finnish, swedish)
+                   [], # o with diaeresis (finnish, swedish)
+                   [], # a with ring above (icelandic)
+];
+
+$sortcase = "Aa";
+#$sortcase = "aA";
+
+$ligatures = [
+[['æ','Æ'], 'after', [['a','e'], ['A','e']]],
+[['œ','Œ'], 'after', [['o','e'], ['O','e']]]
+];
+
+ at special = ('?', '!', '.', 'letters', '-', '\'', '{', '}','ّ','َ','ِ','ُ','ً','ٍ','ٌ','ْ','ٔ','ء','‌','«','»','ـ', '،', '؛');
+
+do 'make-rules.pl';


Property changes on: trunk/Master/texmf-dist/xindy/modules/lang/persian/source/variant2-utf8.pl.in
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Added: trunk/Master/texmf-dist/xindy/modules/lang/persian/source/variant3-utf8.pl.in
===================================================================
--- trunk/Master/texmf-dist/xindy/modules/lang/persian/source/variant3-utf8.pl.in	                        (rev 0)
+++ trunk/Master/texmf-dist/xindy/modules/lang/persian/source/variant3-utf8.pl.in	2021-04-27 15:33:46 UTC (rev 59003)
@@ -0,0 +1,181 @@
+#!/usr/bin/perl
+
+$language = "Persian";
+$variant = "Three";
+$prefix = "pe";
+$script = "arabic";
+
+$alphabet = [
+['الف',['آ']],
+['الف',['أ']],
+['الف',['ا']],
+['ب',['ب']],
+['پ',['پ']],
+['ت',['ت']],
+['ث',['ث']],
+['ج',['ج']],
+['چ',['چ']],
+['ح',['ح']],
+['خ',['خ']],
+['د',['د']],
+['ذ',['ذ']],
+['ر',['ر']],
+['ز',['ز']],
+['ژ',['ژ']],
+['س',['س']],
+['ش',['ش']],
+['ص',['ص']],
+['ض',['ض']],
+['ط',['ط']],
+['ظ',['ظ']],
+['ع',['ع']],
+['غ',['غ']],
+['ف',['ف']],
+['ق',['ق']],
+['ک',['ک']],
+['گ',['گ']],
+['ل',['ل']],
+['م',['م']],
+['ن',['ن']],
+['و',['ؤ','و']],
+['ه',['ه']],
+['ی',['ئ','ی']],
+['A',  ['a','A'],['à','À']],
+                   [], # a with breve (romanian)
+                   [], # a with circumflex (romanian)
+                   [], # a with ogonek (polish)
+['B',  ['b','B']],
+                   [], # b with hook (hausa)
+['C',  ['c','C'],['ç','Ç']],
+                   [], # ch (spanish/traditional)
+                   [], # cs (hungarian)
+                   [], # c with caron (many)
+                   [], # c with acute (croatian, lower sorbian, polish)
+                   [], # c with circumflex (esperanto)
+                   [], # c with cedilla (albanian, kurdish, turkish)
+['D',  ['d','D'],['ð','Ð']],
+                   [], # dh (albanian)
+                   [], # dz (hungarian)
+                   [], # dzs (hungarian)
+                   [], # d+z with caron (croatian)
+                   [], # d+z with acute (upper sorbian)
+                   [], # d with caron (slovak/large)
+                   [], # d with stroke (croatian)
+                   [], # d with hook (hausa)
+                   [], # eth (icelandic)
+['E',  ['e','E'],['é','É'],['è','È'],['ë','Ë'],['ê','Ê']],
+                   [], # e with caron (lower/upper sorbian)
+                   [], # e with circumflex (kurdish)
+                   [], # e with diaeresis (albanian)
+                   [], # e with ogonek (polish)
+['F',  ['f','F']],
+['G',  ['g','G']],
+                   [], # gj (albanian)
+                   [], # gy (hungarian)
+                   [], # g with circumflex (esperanto)
+                   [], # g with breve (turkish)
+                   [], # g with cedilla/comma (latvian)
+                   [], # postpalatal fricative (gypsy/northrussian)
+['H',  ['h','H']],
+                   [], # h with circumflex (esperanto)
+                   [], # ch (many)
+                   [], # dotless i (turkish)
+['I',  ['i','I'],['ï','Ï']],
+                   [], # i with inverted breve below (gypsy/northrussian)
+                   [], # i with circumflex (kurdish, romanian)
+                   [], # i with diaeresis (gypsy/northrussian)
+['J',  ['j','J']],
+                   [], # j with circumflex (esperanto)
+['K',  ['k','K']],
+                   [], # kh (gypsy/northrussian)
+                   [], # k with cedilla/comma (latvian)
+                   [], # k with hook (hausa)
+                   [], # x (gypsy/northrussian)
+                   [], # l with stroke (lower/upper sorbian)
+['L',  ['l','L']],
+                   [], # lj (croatian)
+                   [], # ll (albanian, spanish/traditional)
+                   [], # ly (hungarian)
+                   [], # l with cedilla/comma (latvian)
+                   [], # l with stroke (polish)
+                   [], # l with caron (slovak/large)
+['M',  ['m','M']],
+['N',  ['n','N'],['ñ','Ñ']],
+                   [], # nj (albanian, croatian)
+                   [], # ny (hungarian)
+                   [], # n with caron (slovak/large)
+                   [], # n with acute (lower/upper sorbian, polish)
+                   [], # n with tilde (spanish/modern, spanish/traditional)
+                   [], # n with cedilla/comma (latvian)
+['O',  ['o','O'],['ö','Ö'],['ô','Ô']],
+                   [], # o with acute (polish, upper sorbian)
+                   [], # o with circumflex (vietnamese)
+                   [], # o with horn (vietnamese)
+                   [], # o with diaeresis (hungarian, turkish)
+['P',  ['p','P']],
+                   [], # ph (gypsy/northrussian)
+['Q',  ['q','Q']],
+['R',  ['r','R']],
+                   [], # rr (albanian)
+                   [], # r with caron (czech, slovak/large, upper sorbian)
+                   [], # r with acute (lower sorbian)
+                   [], # r with cedilla/comma (latvian)
+['S',  ['s','S']],
+                   [], # sh (albanian)
+                   [], # sz (hungarian)
+                   [], # s with caron (many)
+                   [], # s with acute (lower sorbian, polish)
+                   [], # s with circumflex (esperanto)
+                   [], # s with comma below (romanian)
+                   [], # s with cedilla (kurdish, turkish)
+                   [], # z (estonian)
+                   [], # z with caron (estonian)
+['T',  ['t','T']],
+                   [], # th (albanian)
+                   [], # ty (hungarian)
+                   [], # t with caron (slovak/large)
+                   [], # t with comma below (romanian)
+                   [], # c with acute (upper sorbian)
+['U',  ['u','U']],
+                   [], # u with breve (esperanto)
+                   [], # u with circumflex (kurdish)
+                   [], # u with horn (vietnamese)
+                   [], # u with diaeresis (hungarian, turkish)
+['V',  ['v','V']],
+['W',  ['w','W']],
+                   [], # o with tilde (estonian)
+                   [], # a with diaeresis (estonian)
+                   [], # o with diaeresis (estonian)
+                   [], # u with diaeresis (estonian)
+['X',  ['x','X']],
+                   [], # xh (albanian)
+['Y',  ['y','Y']],
+                   [], # y preceded by apostrophe (hausa)
+[@u{'Ȝ',  ['ȝ','Ȝ']}],
+['Z',  ['z','Z']],
+                   [], # zh (albanian)
+                   [], # zs (hungarian)
+                   [], # z with caron (many)
+                   [], # z with acute (lower sorbian, polish)
+                   [], # z with dot above (polish)
+['Þ',  ['þ','Þ']],
+[@u{'ƿ',  ['ƿ','Ƿ']}],
+                   [], # ligature ae (danish, icelandic, norwegian)
+                   [], # o with stroke (danish, norwegian)
+                   [], # a with ring above (danish, norwegian, swedish)
+                   [], # a with diaeresis (finnish, swedish)
+                   [], # o with diaeresis (finnish, swedish)
+                   [], # a with ring above (icelandic)
+];
+
+$sortcase = "Aa";
+#$sortcase = "aA";
+
+$ligatures = [
+[['æ','Æ'], 'after', [['a','e'], ['A','e']]],
+[['œ','Œ'], 'after', [['o','e'], ['O','e']]]
+];
+
+ at special = ('?', '!', '.', 'letters', '-', '\'', '{', '}','ّ','َ','ِ','ُ','ً','ٍ','ٌ','ْ','ٔ','ء','‌','«','»','ـ', '،', '؛');
+
+do 'make-rules.pl';


Property changes on: trunk/Master/texmf-dist/xindy/modules/lang/persian/source/variant3-utf8.pl.in
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/xindy/modules/lang/persian/variant1-utf8.pl.in
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/xindy/modules/lang/persian/variant1-utf8.xdy
===================================================================
--- trunk/Master/texmf-dist/xindy/modules/lang/persian/variant1-utf8.xdy	2021-04-27 13:41:25 UTC (rev 59002)
+++ trunk/Master/texmf-dist/xindy/modules/lang/persian/variant1-utf8.xdy	2021-04-27 15:33:46 UTC (rev 59003)
@@ -34,32 +34,32 @@
 (define-letter-group "ه" :after "و" :prefixes ("\xA0"))
 (define-letter-group "ی" :after "ه" :prefixes ("\xA1"))
 (define-letter-group "A" :after "ی" :prefixes ("\xA2"))
-(define-letter-group "B" :after "A" :prefixes ("\xA3"))
-(define-letter-group "C" :after "B" :prefixes ("\xA4"))
-(define-letter-group "D" :after "C" :prefixes ("\xA5"))
-(define-letter-group "E" :after "D" :prefixes ("\xA6"))
-(define-letter-group "F" :after "E" :prefixes ("\xA7"))
-(define-letter-group "G" :after "F" :prefixes ("\xA8"))
-(define-letter-group "H" :after "G" :prefixes ("\xA9"))
-(define-letter-group "I" :after "H" :prefixes ("\xAA"))
-(define-letter-group "J" :after "I" :prefixes ("\xAB"))
-(define-letter-group "K" :after "J" :prefixes ("\xAC"))
-(define-letter-group "L" :after "K" :prefixes ("\xAD"))
-(define-letter-group "M" :after "L" :prefixes ("\xAE"))
-(define-letter-group "N" :after "M" :prefixes ("\xAF"))
-(define-letter-group "O" :after "N" :prefixes ("\xB0"))
-(define-letter-group "P" :after "O" :prefixes ("\xB1"))
-(define-letter-group "Q" :after "P" :prefixes ("\xB2"))
-(define-letter-group "R" :after "Q" :prefixes ("\xB3"))
-(define-letter-group "S" :after "R" :prefixes ("\xB4"))
-(define-letter-group "T" :after "S" :prefixes ("\xB5"))
-(define-letter-group "U" :after "T" :prefixes ("\xB6"))
-(define-letter-group "V" :after "U" :prefixes ("\xB7"))
-(define-letter-group "W" :after "V" :prefixes ("\xB8"))
-(define-letter-group "X" :after "W" :prefixes ("\xB9"))
-(define-letter-group "Y" :after "X" :prefixes ("\xBA"))
-(define-letter-group "Z" :after "Y" :prefixes ("\xBB"))
-(define-letter-group "Þ" :after "Z" :prefixes ("\xBC"))
+(define-letter-group "B" :after "A" :prefixes ("\xA6"))
+(define-letter-group "C" :after "B" :prefixes ("\xA8"))
+(define-letter-group "D" :after "C" :prefixes ("\xAF"))
+(define-letter-group "E" :after "D" :prefixes ("\xB9"))
+(define-letter-group "F" :after "E" :prefixes ("\xBE"))
+(define-letter-group "G" :after "F" :prefixes ("\xBF"))
+(define-letter-group "H" :after "G" :prefixes ("\xC6"))
+(define-letter-group "I" :after "H" :prefixes ("\xCA"))
+(define-letter-group "J" :after "I" :prefixes ("\xCE"))
+(define-letter-group "K" :after "J" :prefixes ("\xD0"))
+(define-letter-group "L" :after "K" :prefixes ("\xD6"))
+(define-letter-group "M" :after "L" :prefixes ("\xDD"))
+(define-letter-group "N" :after "M" :prefixes ("\xDE"))
+(define-letter-group "O" :after "N" :prefixes ("\xE5"))
+(define-letter-group "P" :after "O" :prefixes ("\xEA"))
+(define-letter-group "Q" :after "P" :prefixes ("\xEC"))
+(define-letter-group "R" :after "Q" :prefixes ("\xED"))
+(define-letter-group "S" :after "R" :prefixes ("\xF2"))
+(define-letter-group "T" :after "S" :prefixes ("\xFC"))
+(define-letter-group "U" :after "T" :prefixes ("Ă"))
+(define-letter-group "V" :after "U" :prefixes ("ć"))
+(define-letter-group "W" :after "V" :prefixes ("Ĉ"))
+(define-letter-group "X" :after "W" :prefixes ("č"))
+(define-letter-group "Y" :after "X" :prefixes ("ď"))
+(define-letter-group "Z" :after "Y" :prefixes ("Ē"))
+(define-letter-group "Þ" :after "Z" :prefixes ("Ę"))
 
 (define-rule-set "pe-alphabetize"
 
@@ -99,419 +99,421 @@
            ("ه" "\xA0" :string)
            ("ی" "\xA1" :string)
            ("ئ" "\xA1" :string)
+           ("À" "\xA2" :string)
            ("à" "\xA2" :string)
-           ("À" "\xA2" :string)
-           ("Æ" "\xA2\xA6" :string)
-           ("æ" "\xA2\xA6" :string)
-           ("ç" "\xA4" :string)
-           ("Ç" "\xA4" :string)
-           ("Ð" "\xA5" :string)
-           ("ð" "\xA5" :string)
-           ("È" "\xA6" :string)
-           ("ë" "\xA6" :string)
-           ("ê" "\xA6" :string)
-           ("é" "\xA6" :string)
-           ("É" "\xA6" :string)
-           ("è" "\xA6" :string)
-           ("Ê" "\xA6" :string)
-           ("Ë" "\xA6" :string)
-           ("Ï" "\xAA" :string)
-           ("ï" "\xAA" :string)
-           ("ñ" "\xAF" :string)
-           ("Ñ" "\xAF" :string)
-           ("Ô" "\xB0" :string)
-           ("Ö" "\xB0" :string)
-           ("ö" "\xB0" :string)
-           ("ô" "\xB0" :string)
-           ("Œ" "\xB0\xA6" :string)
-           ("œ" "\xB0\xA6" :string)
-           ("þ" "\xBC" :string)
-           ("Þ" "\xBC" :string)
+           ("æ" "\xA2\xB9" :string)
+           ("Æ" "\xA2\xB9" :string)
+           ("Ç" "\xA8" :string)
+           ("ç" "\xA8" :string)
+           ("ð" "\xAF" :string)
+           ("Ð" "\xAF" :string)
+           ("Ë" "\xB9" :string)
+           ("È" "\xB9" :string)
+           ("ê" "\xB9" :string)
+           ("é" "\xB9" :string)
+           ("è" "\xB9" :string)
+           ("É" "\xB9" :string)
+           ("Ê" "\xB9" :string)
+           ("ë" "\xB9" :string)
+           ("Ï" "\xCA" :string)
+           ("ï" "\xCA" :string)
+           ("Ñ" "\xDE" :string)
+           ("ñ" "\xDE" :string)
+           ("Ö" "\xE5" :string)
+           ("ö" "\xE5" :string)
+           ("ô" "\xE5" :string)
+           ("Ô" "\xE5" :string)
+           ("œ" "\xE5\xB9" :string)
+           ("Œ" "\xE5\xB9" :string)
+           ("þ" "Ę" :string)
+           ("Þ" "Ę" :string)
            ("A" "\xA2" :string)
            ("a" "\xA2" :string)
-           ("B" "\xA3" :string)
-           ("b" "\xA3" :string)
-           ("c" "\xA4" :string)
-           ("C" "\xA4" :string)
-           ("D" "\xA5" :string)
-           ("d" "\xA5" :string)
-           ("E" "\xA6" :string)
-           ("e" "\xA6" :string)
-           ("F" "\xA7" :string)
-           ("f" "\xA7" :string)
-           ("G" "\xA8" :string)
-           ("g" "\xA8" :string)
-           ("H" "\xA9" :string)
-           ("h" "\xA9" :string)
-           ("I" "\xAA" :string)
-           ("i" "\xAA" :string)
-           ("J" "\xAB" :string)
-           ("j" "\xAB" :string)
-           ("K" "\xAC" :string)
-           ("k" "\xAC" :string)
-           ("L" "\xAD" :string)
-           ("l" "\xAD" :string)
-           ("M" "\xAE" :string)
-           ("m" "\xAE" :string)
-           ("n" "\xAF" :string)
-           ("N" "\xAF" :string)
-           ("O" "\xB0" :string)
-           ("o" "\xB0" :string)
-           ("P" "\xB1" :string)
-           ("p" "\xB1" :string)
-           ("Q" "\xB2" :string)
-           ("q" "\xB2" :string)
-           ("R" "\xB3" :string)
-           ("r" "\xB3" :string)
-           ("S" "\xB4" :string)
-           ("s" "\xB4" :string)
-           ("T" "\xB5" :string)
-           ("t" "\xB5" :string)
-           ("U" "\xB6" :string)
-           ("u" "\xB6" :string)
-           ("v" "\xB7" :string)
-           ("V" "\xB7" :string)
-           ("w" "\xB8" :string)
-           ("W" "\xB8" :string)
-           ("x" "\xB9" :string)
-           ("X" "\xB9" :string)
-           ("Y" "\xBA" :string)
-           ("y" "\xBA" :string)
-           ("Z" "\xBB" :string)
-           ("z" "\xBB" :string)
+           ("b" "\xA6" :string)
+           ("B" "\xA6" :string)
+           ("C" "\xA8" :string)
+           ("c" "\xA8" :string)
+           ("d" "\xAF" :string)
+           ("D" "\xAF" :string)
+           ("E" "\xB9" :string)
+           ("e" "\xB9" :string)
+           ("F" "\xBE" :string)
+           ("f" "\xBE" :string)
+           ("G" "\xBF" :string)
+           ("g" "\xBF" :string)
+           ("h" "\xC6" :string)
+           ("H" "\xC6" :string)
+           ("I" "\xCA" :string)
+           ("i" "\xCA" :string)
+           ("j" "\xCE" :string)
+           ("J" "\xCE" :string)
+           ("k" "\xD0" :string)
+           ("K" "\xD0" :string)
+           ("l" "\xD6" :string)
+           ("L" "\xD6" :string)
+           ("M" "\xDD" :string)
+           ("m" "\xDD" :string)
+           ("N" "\xDE" :string)
+           ("n" "\xDE" :string)
+           ("O" "\xE5" :string)
+           ("o" "\xE5" :string)
+           ("P" "\xEA" :string)
+           ("p" "\xEA" :string)
+           ("Q" "\xEC" :string)
+           ("q" "\xEC" :string)
+           ("R" "\xED" :string)
+           ("r" "\xED" :string)
+           ("s" "\xF2" :string)
+           ("S" "\xF2" :string)
+           ("t" "\xFC" :string)
+           ("T" "\xFC" :string)
+           ("u" "Ă" :string)
+           ("U" "Ă" :string)
+           ("v" "ć" :string)
+           ("V" "ć" :string)
+           ("W" "Ĉ" :string)
+           ("w" "Ĉ" :string)
+           ("X" "č" :string)
+           ("x" "č" :string)
+           ("Y" "ď" :string)
+           ("y" "ď" :string)
+           ("Z" "Ē" :string)
+           ("z" "Ē" :string)
            ))
 
 (define-rule-set "pe-resolve-diacritics"
 
-  :rules  (("پ" "\xA2" :string)
-           ("س" "\xA2" :string)
-           ("ه" "\xA2" :string)
+  :rules  (("ئ" "\xA2" :string)
+           ("ژ" "\xA2" :string)
+           ("ج" "\xA2" :string)
+           ("و" "\xA2" :string)
+           ("ت" "\xA2" :string)
+           ("ؤ" "\xA2" :string)
+           ("د" "\xA2" :string)
+           ("ع" "\xA2" :string)
            ("ذ" "\xA2" :string)
-           ("ظ" "\xA2" :string)
-           ("غ" "\xA2" :string)
-           ("ف" "\xA2" :string)
-           ("خ" "\xA2" :string)
-           ("ع" "\xA2" :string)
-           ("ب" "\xA2" :string)
-           ("ز" "\xA2" :string)
            ("ث" "\xA2" :string)
-           ("چ" "\xA2" :string)
            ("ص" "\xA2" :string)
-           ("ر" "\xA2" :string)
-           ("أ" "\xA2" :string)
-           ("ش" "\xA2" :string)
-           ("ؤ" "\xA2" :string)
-           ("ق" "\xA2" :string)
-           ("ئ" "\xA2" :string)
-           ("ت" "\xA2" :string)
-           ("ژ" "\xA2" :string)
-           ("و" "\xA2" :string)
            ("گ" "\xA2" :string)
            ("ل" "\xA2" :string)
-           ("ج" "\xA2" :string)
+           ("ط" "\xA2" :string)
+           ("ف" "\xA2" :string)
            ("ا" "\xA2" :string)
+           ("ه" "\xA2" :string)
+           ("چ" "\xA2" :string)
+           ("پ" "\xA2" :string)
+           ("س" "\xA2" :string)
+           ("ش" "\xA2" :string)
            ("þ" "\xA2" :string)
            ("ن" "\xA2" :string)
-           ("د" "\xA2" :string)
-           ("ط" "\xA2" :string)
-           ("م" "\xA2" :string)
+           ("ظ" "\xA2" :string)
            ("ح" "\xA2" :string)
-           ("ک" "\xA2" :string)
+           ("ز" "\xA2" :string)
            ("ض" "\xA2" :string)
+           ("أ" "\xA2" :string)
+           ("غ" "\xA2" :string)
+           ("Þ" "\xA2" :string)
+           ("ب" "\xA2" :string)
+           ("ی" "\xA2" :string)
            ("آ" "\xA2" :string)
-           ("ی" "\xA2" :string)
-           ("Þ" "\xA2" :string)
+           ("ر" "\xA2" :string)
+           ("خ" "\xA2" :string)
+           ("م" "\xA2" :string)
+           ("ق" "\xA2" :string)
+           ("ک" "\xA2" :string)
+           ("É" "\xA3" :string)
            ("ï" "\xA3" :string)
+           ("ñ" "\xA3" :string)
+           ("à" "\xA3" :string)
+           ("é" "\xA3" :string)
+           ("Ñ" "\xA3" :string)
+           ("ç" "\xA3" :string)
+           ("Ð" "\xA3" :string)
            ("À" "\xA3" :string)
-           ("ð" "\xA3" :string)
-           ("Ð" "\xA3" :string)
-           ("Ñ" "\xA3" :string)
-           ("É" "\xA3" :string)
-           ("à" "\xA3" :string)
-           ("ñ" "\xA3" :string)
            ("Ï" "\xA3" :string)
-           ("é" "\xA3" :string)
+           ("ö" "\xA3" :string)
            ("Ç" "\xA3" :string)
+           ("ð" "\xA3" :string)
            ("Ö" "\xA3" :string)
-           ("ç" "\xA3" :string)
-           ("ö" "\xA3" :string)
+           ("Ô" "\xA4" :string)
            ("è" "\xA4" :string)
            ("ô" "\xA4" :string)
-           ("Ô" "\xA4" :string)
            ("È" "\xA4" :string)
+           ("ë" "\xA5" :string)
            ("Ë" "\xA5" :string)
-           ("ë" "\xA5" :string)
            ("Ê" "\xA6" :string)
            ("ê" "\xA6" :string)
-           ("æ" "\xFF" :string)
-           ("Æ" "\xFF" :string)
            ("Œ" "\xFF" :string)
            ("œ" "\xFF" :string)
-           ("z" "\xA2" :string)
-           ("C" "\xA2" :string)
-           ("r" "\xA2" :string)
-           ("R" "\xA2" :string)
-           ("Z" "\xA2" :string)
+           ("Æ" "\xFF" :string)
+           ("æ" "\xFF" :string)
            ("p" "\xA2" :string)
-           ("X" "\xA2" :string)
-           ("b" "\xA2" :string)
-           ("s" "\xA2" :string)
-           ("e" "\xA2" :string)
-           ("j" "\xA2" :string)
-           ("a" "\xA2" :string)
-           ("P" "\xA2" :string)
-           ("T" "\xA2" :string)
-           ("i" "\xA2" :string)
-           ("d" "\xA2" :string)
            ("x" "\xA2" :string)
-           ("h" "\xA2" :string)
-           ("J" "\xA2" :string)
-           ("V" "\xA2" :string)
-           ("m" "\xA2" :string)
-           ("q" "\xA2" :string)
            ("Q" "\xA2" :string)
-           ("y" "\xA2" :string)
-           ("u" "\xA2" :string)
+           ("C" "\xA2" :string)
+           ("X" "\xA2" :string)
+           ("o" "\xA2" :string)
+           ("K" "\xA2" :string)
            ("g" "\xA2" :string)
-           ("t" "\xA2" :string)
-           ("o" "\xA2" :string)
-           ("N" "\xA2" :string)
-           ("M" "\xA2" :string)
-           ("l" "\xA2" :string)
-           ("D" "\xA2" :string)
+           ("V" "\xA2" :string)
+           ("z" "\xA2" :string)
+           ("J" "\xA2" :string)
            ("c" "\xA2" :string)
-           ("A" "\xA2" :string)
-           ("H" "\xA2" :string)
+           ("v" "\xA2" :string)
+           ("q" "\xA2" :string)
+           ("G" "\xA2" :string)
+           ("m" "\xA2" :string)
            ("U" "\xA2" :string)
+           ("E" "\xA2" :string)
+           ("R" "\xA2" :string)
+           ("y" "\xA2" :string)
+           ("d" "\xA2" :string)
+           ("O" "\xA2" :string)
+           ("a" "\xA2" :string)
            ("S" "\xA2" :string)
-           ("v" "\xA2" :string)
+           ("i" "\xA2" :string)
            ("f" "\xA2" :string)
+           ("j" "\xA2" :string)
+           ("e" "\xA2" :string)
+           ("L" "\xA2" :string)
+           ("r" "\xA2" :string)
+           ("D" "\xA2" :string)
+           ("H" "\xA2" :string)
+           ("k" "\xA2" :string)
+           ("b" "\xA2" :string)
+           ("n" "\xA2" :string)
+           ("M" "\xA2" :string)
+           ("P" "\xA2" :string)
+           ("u" "\xA2" :string)
+           ("s" "\xA2" :string)
            ("B" "\xA2" :string)
+           ("w" "\xA2" :string)
+           ("N" "\xA2" :string)
            ("W" "\xA2" :string)
-           ("n" "\xA2" :string)
-           ("L" "\xA2" :string)
+           ("h" "\xA2" :string)
+           ("T" "\xA2" :string)
+           ("Y" "\xA2" :string)
+           ("t" "\xA2" :string)
            ("I" "\xA2" :string)
            ("F" "\xA2" :string)
-           ("E" "\xA2" :string)
-           ("K" "\xA2" :string)
-           ("O" "\xA2" :string)
-           ("G" "\xA2" :string)
-           ("w" "\xA2" :string)
-           ("Y" "\xA2" :string)
-           ("k" "\xA2" :string)
+           ("A" "\xA2" :string)
+           ("Z" "\xA2" :string)
+           ("l" "\xA2" :string)
            ))
 
 (define-rule-set "pe-resolve-case"
 
-  :rules  (("Þ" "8" :string)
-           ("ی" "8" :string)
-           ("È" "8" :string)
+  :rules  (("Ñ" "8" :string)
+           ("Ð" "8" :string)
+           ("É" "8" :string)
            ("Ô" "8" :string)
-           ("Ö" "8" :string)
-           ("Ï" "8" :string)
-           ("Ç" "8" :string)
            ("و" "8" :string)
-           ("Ñ" "8" :string)
-           ("É" "8" :string)
-           ("Ð" "8" :string)
            ("Ê" "8" :string)
+           ("ی" "8" :string)
+           ("Ö" "8" :string)
+           ("È" "8" :string)
            ("Ë" "8" :string)
+           ("Ï" "8" :string)
            ("À" "8" :string)
+           ("Ç" "8" :string)
+           ("Þ" "8" :string)
            ("Œ" "89" :string)
            ("Æ" "89" :string)
-           ("ö" "9" :string)
-           ("م" "9" :string)
-           ("آ" "9" :string)
-           ("ض" "9" :string)
-           ("ک" "9" :string)
-           ("ح" "9" :string)
+           ("ع" "9" :string)
+           ("é" "9" :string)
+           ("د" "9" :string)
+           ("ê" "9" :string)
+           ("ث" "9" :string)
+           ("ô" "9" :string)
            ("ç" "9" :string)
-           ("د" "9" :string)
-           ("ط" "9" :string)
-           ("ا" "9" :string)
-           ("ن" "9" :string)
-           ("þ" "9" :string)
+           ("ذ" "9" :string)
            ("ل" "9" :string)
            ("گ" "9" :string)
+           ("ص" "9" :string)
+           ("ف" "9" :string)
+           ("ط" "9" :string)
+           ("ژ" "9" :string)
+           ("ئ" "9" :string)
+           ("ñ" "9" :string)
            ("ج" "9" :string)
-           ("ô" "9" :string)
-           ("é" "9" :string)
-           ("ئ" "9" :string)
-           ("ژ" "9" :string)
-           ("ê" "9" :string)
+           ("ï" "9" :string)
+           ("è" "9" :string)
+           ("ë" "9" :string)
            ("ت" "9" :string)
            ("à" "9" :string)
-           ("ñ" "9" :string)
-           ("ش" "9" :string)
-           ("ë" "9" :string)
-           ("ق" "9" :string)
            ("ؤ" "9" :string)
+           ("ب" "9" :string)
+           ("خ" "9" :string)
            ("ر" "9" :string)
-           ("أ" "9" :string)
-           ("ص" "9" :string)
+           ("آ" "9" :string)
+           ("ق" "9" :string)
+           ("م" "9" :string)
+           ("ک" "9" :string)
+           ("þ" "9" :string)
+           ("ش" "9" :string)
+           ("پ" "9" :string)
+           ("س" "9" :string)
            ("چ" "9" :string)
-           ("ث" "9" :string)
+           ("ه" "9" :string)
+           ("ا" "9" :string)
+           ("ö" "9" :string)
+           ("ظ" "9" :string)
+           ("ن" "9" :string)
+           ("ز" "9" :string)
+           ("ح" "9" :string)
            ("ð" "9" :string)
-           ("ع" "9" :string)
-           ("ز" "9" :string)
-           ("ب" "9" :string)
-           ("ف" "9" :string)
-           ("خ" "9" :string)
-           ("ï" "9" :string)
-           ("ذ" "9" :string)
            ("غ" "9" :string)
-           ("ظ" "9" :string)
-           ("س" "9" :string)
-           ("è" "9" :string)
-           ("پ" "9" :string)
-           ("ه" "9" :string)
+           ("أ" "9" :string)
+           ("ض" "9" :string)
+           ("æ" "99" :string)
            ("œ" "99" :string)
-           ("æ" "99" :string)
-           ("Y" "8" :string)
-           ("G" "8" :string)
+           ("R" "8" :string)
+           ("E" "8" :string)
+           ("U" "8" :string)
            ("O" "8" :string)
-           ("F" "8" :string)
-           ("K" "8" :string)
-           ("E" "8" :string)
-           ("L" "8" :string)
-           ("I" "8" :string)
-           ("W" "8" :string)
-           ("B" "8" :string)
+           ("S" "8" :string)
            ("H" "8" :string)
-           ("A" "8" :string)
-           ("S" "8" :string)
-           ("U" "8" :string)
-           ("M" "8" :string)
            ("D" "8" :string)
-           ("N" "8" :string)
+           ("L" "8" :string)
+           ("Q" "8" :string)
+           ("X" "8" :string)
+           ("C" "8" :string)
            ("J" "8" :string)
            ("V" "8" :string)
-           ("Q" "8" :string)
+           ("K" "8" :string)
+           ("G" "8" :string)
+           ("Y" "8" :string)
            ("T" "8" :string)
+           ("W" "8" :string)
+           ("N" "8" :string)
+           ("F" "8" :string)
+           ("I" "8" :string)
+           ("Z" "8" :string)
+           ("A" "8" :string)
+           ("M" "8" :string)
            ("P" "8" :string)
-           ("X" "8" :string)
-           ("R" "8" :string)
-           ("Z" "8" :string)
-           ("C" "8" :string)
-           ("k" "9" :string)
-           ("w" "9" :string)
-           ("n" "9" :string)
+           ("B" "8" :string)
+           ("d" "9" :string)
+           ("y" "9" :string)
+           ("i" "9" :string)
            ("f" "9" :string)
-           ("v" "9" :string)
-           ("l" "9" :string)
+           ("a" "9" :string)
+           ("r" "9" :string)
+           ("e" "9" :string)
+           ("j" "9" :string)
+           ("x" "9" :string)
+           ("p" "9" :string)
+           ("o" "9" :string)
            ("c" "9" :string)
-           ("y" "9" :string)
-           ("o" "9" :string)
-           ("t" "9" :string)
-           ("u" "9" :string)
+           ("z" "9" :string)
            ("g" "9" :string)
-           ("h" "9" :string)
            ("m" "9" :string)
            ("q" "9" :string)
-           ("d" "9" :string)
-           ("x" "9" :string)
-           ("a" "9" :string)
-           ("i" "9" :string)
-           ("e" "9" :string)
-           ("j" "9" :string)
+           ("v" "9" :string)
+           ("h" "9" :string)
+           ("t" "9" :string)
+           ("l" "9" :string)
+           ("n" "9" :string)
+           ("b" "9" :string)
+           ("k" "9" :string)
            ("s" "9" :string)
-           ("b" "9" :string)
-           ("p" "9" :string)
-           ("z" "9" :string)
-           ("r" "9" :string)
+           ("u" "9" :string)
+           ("w" "9" :string)
            ))
 
 (define-rule-set "pe-ignore-special"
 
   :rules  (("‌" "" :string)
+           ("ء" "" :string)
+           ("ْ" "" :string)
+           ("«" "" :string)
+           ("ٍ" "" :string)
+           ("َ" "" :string)
            ("ُ" "" :string)
-           ("َ" "" :string)
+           ("ـ" "" :string)
+           ("ٔ" "" :string)
+           ("؛" "" :string)
            ("ً" "" :string)
+           ("ّ" "" :string)
            ("ٌ" "" :string)
-           ("ٍ" "" :string)
-           ("ـ" "" :string)
-           ("ء" "" :string)
+           ("ِ" "" :string)
+           ("،" "" :string)
            ("»" "" :string)
-           ("ْ" "" :string)
-           ("ٔ" "" :string)
-           ("«" "" :string)
-           ("ِ" "" :string)
-           ("ّ" "" :string)
+           ("}" "" :string)
            ("-" "" :string)
-           ("!" "" :string)
            ("." "" :string)
            ("'" "" :string)
+           ("?" "" :string)
            ("{" "" :string)
-           ("?" "" :string)
-           ("}" "" :string)
+           ("!" "" :string)
            ))
 
 (define-rule-set "pe-resolve-special"
 
   :rules  (("‌" "\xB3" :string)
-           ("ش" "\xA4" :string)
-           ("ë" "\xA4" :string)
-           ("à" "\xA4" :string)
-           ("ؤ" "\xA4" :string)
-           ("ر" "\xA4" :string)
-           ("ô" "\xA4" :string)
-           ("ئ" "\xA4" :string)
-           ("ژ" "\xA4" :string)
-           ("Ç" "\xA4" :string)
-           ("د" "\xA4" :string)
-           ("ط" "\xA4" :string)
-           ("Ô" "\xA4" :string)
+           ("س" "\xA4" :string)
            ("ا" "\xA4" :string)
-           ("Ö" "\xA4" :string)
-           ("þ" "\xA4" :string)
-           ("ی" "\xA4" :string)
-           ("Þ" "\xA4" :string)
-           ("ö" "\xA4" :string)
-           ("آ" "\xA4" :string)
-           ("ک" "\xA4" :string)
-           ("ï" "\xA4" :string)
-           ("ذ" "\xA4" :string)
-           ("ظ" "\xA4" :string)
-           ("è" "\xA4" :string)
            ("ه" "\xA4" :string)
-           ("ð" "\xA4" :string)
-           ("ع" "\xA4" :string)
+           ("أ" "\xA4" :string)
+           ("غ" "\xA4" :string)
            ("ز" "\xA4" :string)
-           ("ب" "\xA4" :string)
-           ("Ë" "\xA4" :string)
            ("خ" "\xA4" :string)
-           ("ص" "\xA4" :string)
-           ("چ" "\xA4" :string)
-           ("ñ" "\xA4" :string)
+           ("ی" "\xA4" :string)
+           ("ک" "\xA4" :string)
            ("ق" "\xA4" :string)
-           ("أ" "\xA4" :string)
-           ("ل" "\xA4" :string)
-           ("گ" "\xA4" :string)
+           ("م" "\xA4" :string)
            ("ج" "\xA4" :string)
-           ("é" "\xA4" :string)
-           ("Ï" "\xA4" :string)
+           ("ñ" "\xA4" :string)
+           ("è" "\xA4" :string)
+           ("ï" "\xA4" :string)
+           ("ئ" "\xA4" :string)
+           ("Ê" "\xA4" :string)
+           ("ؤ" "\xA4" :string)
+           ("ت" "\xA4" :string)
+           ("ë" "\xA4" :string)
+           ("à" "\xA4" :string)
            ("و" "\xA4" :string)
-           ("ت" "\xA4" :string)
-           ("ê" "\xA4" :string)
+           ("ث" "\xA4" :string)
            ("ç" "\xA4" :string)
+           ("ذ" "\xA4" :string)
+           ("Ñ" "\xA4" :string)
+           ("é" "\xA4" :string)
+           ("ع" "\xA4" :string)
+           ("ف" "\xA4" :string)
+           ("ط" "\xA4" :string)
+           ("گ" "\xA4" :string)
+           ("Ð" "\xA4" :string)
+           ("Ç" "\xA4" :string)
+           ("ö" "\xA4" :string)
+           ("ظ" "\xA4" :string)
            ("ن" "\xA4" :string)
-           ("È" "\xA4" :string)
-           ("م" "\xA4" :string)
+           ("پ" "\xA4" :string)
+           ("ش" "\xA4" :string)
+           ("þ" "\xA4" :string)
+           ("Ï" "\xA4" :string)
+           ("چ" "\xA4" :string)
+           ("À" "\xA4" :string)
+           ("ð" "\xA4" :string)
+           ("Þ" "\xA4" :string)
            ("ض" "\xA4" :string)
            ("ح" "\xA4" :string)
-           ("غ" "\xA4" :string)
-           ("پ" "\xA4" :string)
-           ("س" "\xA4" :string)
-           ("Ê" "\xA4" :string)
-           ("ف" "\xA4" :string)
-           ("À" "\xA4" :string)
-           ("Ñ" "\xA4" :string)
+           ("ر" "\xA4" :string)
+           ("Ö" "\xA4" :string)
+           ("آ" "\xA4" :string)
+           ("ب" "\xA4" :string)
+           ("Ë" "\xA4" :string)
+           ("È" "\xA4" :string)
            ("É" "\xA4" :string)
-           ("ث" "\xA4" :string)
-           ("Ð" "\xA4" :string)
-           ("œ" "\xA4\xA4" :string)
+           ("Ô" "\xA4" :string)
+           ("ژ" "\xA4" :string)
+           ("ô" "\xA4" :string)
+           ("د" "\xA4" :string)
+           ("ê" "\xA4" :string)
+           ("ل" "\xA4" :string)
+           ("ص" "\xA4" :string)
            ("Æ" "\xA4\xA4" :string)
            ("Œ" "\xA4\xA4" :string)
+           ("œ" "\xA4\xA4" :string)
            ("æ" "\xA4\xA4" :string)
            ("ّ" "\xA9" :string)
            ("َ" "\xAA" :string)
@@ -526,61 +528,63 @@
            ("«" "\xB4" :string)
            ("»" "\xB5" :string)
            ("ـ" "\xB6" :string)
+           ("،" "\xB7" :string)
+           ("؛" "\xB8" :string)
            ("?" "\xA1" :string)
            ("!" "\xA2" :string)
            ("." "\xA3" :string)
-           ("H" "\xA4" :string)
-           ("S" "\xA4" :string)
-           ("l" "\xA4" :string)
            ("M" "\xA4" :string)
+           ("b" "\xA4" :string)
+           ("k" "\xA4" :string)
            ("B" "\xA4" :string)
+           ("s" "\xA4" :string)
+           ("F" "\xA4" :string)
+           ("t" "\xA4" :string)
+           ("Y" "\xA4" :string)
            ("W" "\xA4" :string)
+           ("A" "\xA4" :string)
+           ("X" "\xA4" :string)
+           ("o" "\xA4" :string)
+           ("Q" "\xA4" :string)
+           ("x" "\xA4" :string)
+           ("p" "\xA4" :string)
            ("v" "\xA4" :string)
-           ("F" "\xA4" :string)
+           ("V" "\xA4" :string)
+           ("z" "\xA4" :string)
            ("K" "\xA4" :string)
+           ("E" "\xA4" :string)
+           ("H" "\xA4" :string)
+           ("D" "\xA4" :string)
+           ("L" "\xA4" :string)
+           ("j" "\xA4" :string)
+           ("a" "\xA4" :string)
+           ("n" "\xA4" :string)
+           ("w" "\xA4" :string)
+           ("P" "\xA4" :string)
+           ("u" "\xA4" :string)
            ("I" "\xA4" :string)
-           ("R" "\xA4" :string)
+           ("T" "\xA4" :string)
+           ("h" "\xA4" :string)
+           ("N" "\xA4" :string)
+           ("l" "\xA4" :string)
            ("Z" "\xA4" :string)
            ("C" "\xA4" :string)
-           ("r" "\xA4" :string)
-           ("s" "\xA4" :string)
+           ("m" "\xA4" :string)
+           ("G" "\xA4" :string)
+           ("q" "\xA4" :string)
+           ("J" "\xA4" :string)
+           ("c" "\xA4" :string)
+           ("g" "\xA4" :string)
+           ("O" "\xA4" :string)
            ("d" "\xA4" :string)
-           ("x" "\xA4" :string)
-           ("T" "\xA4" :string)
-           ("P" "\xA4" :string)
-           ("i" "\xA4" :string)
            ("y" "\xA4" :string)
-           ("J" "\xA4" :string)
-           ("q" "\xA4" :string)
-           ("m" "\xA4" :string)
-           ("A" "\xA4" :string)
+           ("R" "\xA4" :string)
            ("U" "\xA4" :string)
-           ("N" "\xA4" :string)
-           ("D" "\xA4" :string)
-           ("c" "\xA4" :string)
+           ("r" "\xA4" :string)
+           ("e" "\xA4" :string)
            ("f" "\xA4" :string)
-           ("E" "\xA4" :string)
-           ("L" "\xA4" :string)
-           ("n" "\xA4" :string)
-           ("k" "\xA4" :string)
-           ("Y" "\xA4" :string)
-           ("G" "\xA4" :string)
-           ("O" "\xA4" :string)
-           ("w" "\xA4" :string)
-           ("z" "\xA4" :string)
-           ("e" "\xA4" :string)
-           ("j" "\xA4" :string)
-           ("b" "\xA4" :string)
-           ("p" "\xA4" :string)
-           ("X" "\xA4" :string)
-           ("a" "\xA4" :string)
-           ("t" "\xA4" :string)
-           ("o" "\xA4" :string)
-           ("u" "\xA4" :string)
-           ("g" "\xA4" :string)
-           ("h" "\xA4" :string)
-           ("V" "\xA4" :string)
-           ("Q" "\xA4" :string)
+           ("S" "\xA4" :string)
+           ("i" "\xA4" :string)
            ("-" "\xA5" :string)
            ("'" "\xA6" :string)
            ("{" "\xA7" :string)

Deleted: trunk/Master/texmf-dist/xindy/modules/lang/persian/variant2-utf8.pl.in
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/xindy/modules/lang/persian/variant2-utf8.xdy
===================================================================
--- trunk/Master/texmf-dist/xindy/modules/lang/persian/variant2-utf8.xdy	2021-04-27 13:41:25 UTC (rev 59002)
+++ trunk/Master/texmf-dist/xindy/modules/lang/persian/variant2-utf8.xdy	2021-04-27 15:33:46 UTC (rev 59003)
@@ -35,32 +35,32 @@
 (define-letter-group "ه" :after "و" :prefixes ("\xA0"))
 (define-letter-group "ی" :after "ه" :prefixes ("\xA1"))
 (define-letter-group "A" :after "ی" :prefixes ("\xA2"))
-(define-letter-group "B" :after "A" :prefixes ("\xA3"))
-(define-letter-group "C" :after "B" :prefixes ("\xA4"))
-(define-letter-group "D" :after "C" :prefixes ("\xA5"))
-(define-letter-group "E" :after "D" :prefixes ("\xA6"))
-(define-letter-group "F" :after "E" :prefixes ("\xA7"))
-(define-letter-group "G" :after "F" :prefixes ("\xA8"))
-(define-letter-group "H" :after "G" :prefixes ("\xA9"))
-(define-letter-group "I" :after "H" :prefixes ("\xAA"))
-(define-letter-group "J" :after "I" :prefixes ("\xAB"))
-(define-letter-group "K" :after "J" :prefixes ("\xAC"))
-(define-letter-group "L" :after "K" :prefixes ("\xAD"))
-(define-letter-group "M" :after "L" :prefixes ("\xAE"))
-(define-letter-group "N" :after "M" :prefixes ("\xAF"))
-(define-letter-group "O" :after "N" :prefixes ("\xB0"))
-(define-letter-group "P" :after "O" :prefixes ("\xB1"))
-(define-letter-group "Q" :after "P" :prefixes ("\xB2"))
-(define-letter-group "R" :after "Q" :prefixes ("\xB3"))
-(define-letter-group "S" :after "R" :prefixes ("\xB4"))
-(define-letter-group "T" :after "S" :prefixes ("\xB5"))
-(define-letter-group "U" :after "T" :prefixes ("\xB6"))
-(define-letter-group "V" :after "U" :prefixes ("\xB7"))
-(define-letter-group "W" :after "V" :prefixes ("\xB8"))
-(define-letter-group "X" :after "W" :prefixes ("\xB9"))
-(define-letter-group "Y" :after "X" :prefixes ("\xBA"))
-(define-letter-group "Z" :after "Y" :prefixes ("\xBB"))
-(define-letter-group "Þ" :after "Z" :prefixes ("\xBC"))
+(define-letter-group "B" :after "A" :prefixes ("\xA6"))
+(define-letter-group "C" :after "B" :prefixes ("\xA8"))
+(define-letter-group "D" :after "C" :prefixes ("\xAF"))
+(define-letter-group "E" :after "D" :prefixes ("\xB9"))
+(define-letter-group "F" :after "E" :prefixes ("\xBE"))
+(define-letter-group "G" :after "F" :prefixes ("\xBF"))
+(define-letter-group "H" :after "G" :prefixes ("\xC6"))
+(define-letter-group "I" :after "H" :prefixes ("\xCA"))
+(define-letter-group "J" :after "I" :prefixes ("\xCE"))
+(define-letter-group "K" :after "J" :prefixes ("\xD0"))
+(define-letter-group "L" :after "K" :prefixes ("\xD6"))
+(define-letter-group "M" :after "L" :prefixes ("\xDD"))
+(define-letter-group "N" :after "M" :prefixes ("\xDE"))
+(define-letter-group "O" :after "N" :prefixes ("\xE5"))
+(define-letter-group "P" :after "O" :prefixes ("\xEA"))
+(define-letter-group "Q" :after "P" :prefixes ("\xEC"))
+(define-letter-group "R" :after "Q" :prefixes ("\xED"))
+(define-letter-group "S" :after "R" :prefixes ("\xF2"))
+(define-letter-group "T" :after "S" :prefixes ("\xFC"))
+(define-letter-group "U" :after "T" :prefixes ("Ă"))
+(define-letter-group "V" :after "U" :prefixes ("ć"))
+(define-letter-group "W" :after "V" :prefixes ("Ĉ"))
+(define-letter-group "X" :after "W" :prefixes ("č"))
+(define-letter-group "Y" :after "X" :prefixes ("ď"))
+(define-letter-group "Z" :after "Y" :prefixes ("Ē"))
+(define-letter-group "Þ" :after "Z" :prefixes ("Ę"))
 
 (define-rule-set "pe-alphabetize"
 
@@ -98,352 +98,354 @@
            ("ؤ" "\x9F" :string)
            ("و" "\x9F" :string)
            ("ه" "\xA0" :string)
+           ("ی" "\xA1" :string)
            ("ئ" "\xA1" :string)
-           ("ی" "\xA1" :string)
            ("À" "\xA2" :string)
            ("à" "\xA2" :string)
-           ("Æ" "\xA2\xA6" :string)
-           ("æ" "\xA2\xA6" :string)
-           ("Ç" "\xA4" :string)
-           ("ç" "\xA4" :string)
-           ("ð" "\xA5" :string)
-           ("Ð" "\xA5" :string)
-           ("è" "\xA6" :string)
-           ("Ë" "\xA6" :string)
-           ("É" "\xA6" :string)
-           ("ë" "\xA6" :string)
-           ("È" "\xA6" :string)
-           ("Ê" "\xA6" :string)
-           ("ê" "\xA6" :string)
-           ("é" "\xA6" :string)
-           ("ï" "\xAA" :string)
-           ("Ï" "\xAA" :string)
-           ("Ñ" "\xAF" :string)
-           ("ñ" "\xAF" :string)
-           ("ô" "\xB0" :string)
-           ("ö" "\xB0" :string)
-           ("Ö" "\xB0" :string)
-           ("Ô" "\xB0" :string)
-           ("œ" "\xB0\xA6" :string)
-           ("Œ" "\xB0\xA6" :string)
-           ("Þ" "\xBC" :string)
-           ("þ" "\xBC" :string)
+           ("Æ" "\xA2\xB9" :string)
+           ("æ" "\xA2\xB9" :string)
+           ("ç" "\xA8" :string)
+           ("Ç" "\xA8" :string)
+           ("Ð" "\xAF" :string)
+           ("ð" "\xAF" :string)
+           ("É" "\xB9" :string)
+           ("ê" "\xB9" :string)
+           ("Ë" "\xB9" :string)
+           ("È" "\xB9" :string)
+           ("ë" "\xB9" :string)
+           ("Ê" "\xB9" :string)
+           ("è" "\xB9" :string)
+           ("é" "\xB9" :string)
+           ("Ï" "\xCA" :string)
+           ("ï" "\xCA" :string)
+           ("Ñ" "\xDE" :string)
+           ("ñ" "\xDE" :string)
+           ("ö" "\xE5" :string)
+           ("Ö" "\xE5" :string)
+           ("ô" "\xE5" :string)
+           ("Ô" "\xE5" :string)
+           ("Œ" "\xE5\xB9" :string)
+           ("œ" "\xE5\xB9" :string)
+           ("Þ" "Ę" :string)
+           ("þ" "Ę" :string)
+           ("A" "\xA2" :string)
            ("a" "\xA2" :string)
-           ("A" "\xA2" :string)
-           ("b" "\xA3" :string)
-           ("B" "\xA3" :string)
-           ("C" "\xA4" :string)
-           ("c" "\xA4" :string)
-           ("d" "\xA5" :string)
-           ("D" "\xA5" :string)
-           ("e" "\xA6" :string)
-           ("E" "\xA6" :string)
-           ("F" "\xA7" :string)
-           ("f" "\xA7" :string)
-           ("g" "\xA8" :string)
-           ("G" "\xA8" :string)
-           ("H" "\xA9" :string)
-           ("h" "\xA9" :string)
-           ("i" "\xAA" :string)
-           ("I" "\xAA" :string)
-           ("J" "\xAB" :string)
-           ("j" "\xAB" :string)
-           ("K" "\xAC" :string)
-           ("k" "\xAC" :string)
-           ("l" "\xAD" :string)
-           ("L" "\xAD" :string)
-           ("m" "\xAE" :string)
-           ("M" "\xAE" :string)
-           ("n" "\xAF" :string)
-           ("N" "\xAF" :string)
-           ("O" "\xB0" :string)
-           ("o" "\xB0" :string)
-           ("P" "\xB1" :string)
-           ("p" "\xB1" :string)
-           ("q" "\xB2" :string)
-           ("Q" "\xB2" :string)
-           ("R" "\xB3" :string)
-           ("r" "\xB3" :string)
-           ("s" "\xB4" :string)
-           ("S" "\xB4" :string)
-           ("T" "\xB5" :string)
-           ("t" "\xB5" :string)
-           ("u" "\xB6" :string)
-           ("U" "\xB6" :string)
-           ("V" "\xB7" :string)
-           ("v" "\xB7" :string)
-           ("w" "\xB8" :string)
-           ("W" "\xB8" :string)
-           ("X" "\xB9" :string)
-           ("x" "\xB9" :string)
-           ("Y" "\xBA" :string)
-           ("y" "\xBA" :string)
-           ("Z" "\xBB" :string)
-           ("z" "\xBB" :string)
+           ("B" "\xA6" :string)
+           ("b" "\xA6" :string)
+           ("c" "\xA8" :string)
+           ("C" "\xA8" :string)
+           ("d" "\xAF" :string)
+           ("D" "\xAF" :string)
+           ("E" "\xB9" :string)
+           ("e" "\xB9" :string)
+           ("F" "\xBE" :string)
+           ("f" "\xBE" :string)
+           ("g" "\xBF" :string)
+           ("G" "\xBF" :string)
+           ("h" "\xC6" :string)
+           ("H" "\xC6" :string)
+           ("I" "\xCA" :string)
+           ("i" "\xCA" :string)
+           ("J" "\xCE" :string)
+           ("j" "\xCE" :string)
+           ("K" "\xD0" :string)
+           ("k" "\xD0" :string)
+           ("l" "\xD6" :string)
+           ("L" "\xD6" :string)
+           ("m" "\xDD" :string)
+           ("M" "\xDD" :string)
+           ("N" "\xDE" :string)
+           ("n" "\xDE" :string)
+           ("O" "\xE5" :string)
+           ("o" "\xE5" :string)
+           ("P" "\xEA" :string)
+           ("p" "\xEA" :string)
+           ("Q" "\xEC" :string)
+           ("q" "\xEC" :string)
+           ("R" "\xED" :string)
+           ("r" "\xED" :string)
+           ("s" "\xF2" :string)
+           ("S" "\xF2" :string)
+           ("t" "\xFC" :string)
+           ("T" "\xFC" :string)
+           ("u" "Ă" :string)
+           ("U" "Ă" :string)
+           ("V" "ć" :string)
+           ("v" "ć" :string)
+           ("W" "Ĉ" :string)
+           ("w" "Ĉ" :string)
+           ("x" "č" :string)
+           ("X" "č" :string)
+           ("Y" "ď" :string)
+           ("y" "ď" :string)
+           ("Z" "Ē" :string)
+           ("z" "Ē" :string)
            ))
 
 (define-rule-set "pe-resolve-diacritics"
 
-  :rules  (("Þ" "\xA2" :string)
+  :rules  (("پ" "\xA2" :string)
+           ("خ" "\xA2" :string)
+           ("ش" "\xA2" :string)
+           ("م" "\xA2" :string)
+           ("ه" "\xA2" :string)
+           ("ظ" "\xA2" :string)
            ("ؤ" "\xA2" :string)
+           ("گ" "\xA2" :string)
            ("ل" "\xA2" :string)
+           ("ر" "\xA2" :string)
+           ("ا" "\xA2" :string)
+           ("ق" "\xA2" :string)
+           ("ب" "\xA2" :string)
+           ("ج" "\xA2" :string)
+           ("ذ" "\xA2" :string)
+           ("ث" "\xA2" :string)
+           ("þ" "\xA2" :string)
            ("ع" "\xA2" :string)
-           ("ر" "\xA2" :string)
+           ("و" "\xA2" :string)
+           ("ص" "\xA2" :string)
            ("ط" "\xA2" :string)
+           ("Þ" "\xA2" :string)
+           ("چ" "\xA2" :string)
+           ("ک" "\xA2" :string)
+           ("س" "\xA2" :string)
+           ("ز" "\xA2" :string)
+           ("آ" "\xA2" :string)
+           ("ی" "\xA2" :string)
            ("ض" "\xA2" :string)
            ("ت" "\xA2" :string)
-           ("ق" "\xA2" :string)
-           ("پ" "\xA2" :string)
-           ("ح" "\xA2" :string)
            ("ئ" "\xA2" :string)
-           ("آ" "\xA2" :string)
+           ("أ" "\xA2" :string)
+           ("د" "\xA2" :string)
+           ("غ" "\xA2" :string)
            ("ف" "\xA2" :string)
-           ("د" "\xA2" :string)
-           ("چ" "\xA2" :string)
-           ("خ" "\xA2" :string)
-           ("ش" "\xA2" :string)
-           ("گ" "\xA2" :string)
-           ("ج" "\xA2" :string)
+           ("ح" "\xA2" :string)
+           ("ژ" "\xA2" :string)
            ("ن" "\xA2" :string)
-           ("ظ" "\xA2" :string)
-           ("م" "\xA2" :string)
-           ("ز" "\xA2" :string)
-           ("ژ" "\xA2" :string)
-           ("ه" "\xA2" :string)
-           ("ب" "\xA2" :string)
-           ("و" "\xA2" :string)
-           ("غ" "\xA2" :string)
-           ("ص" "\xA2" :string)
-           ("ذ" "\xA2" :string)
-           ("ث" "\xA2" :string)
-           ("أ" "\xA2" :string)
-           ("ک" "\xA2" :string)
-           ("ا" "\xA2" :string)
-           ("ی" "\xA2" :string)
-           ("س" "\xA2" :string)
-           ("þ" "\xA2" :string)
-           ("ö" "\xA3" :string)
-           ("É" "\xA3" :string)
-           ("à" "\xA3" :string)
-           ("Ñ" "\xA3" :string)
-           ("À" "\xA3" :string)
            ("ï" "\xA3" :string)
            ("é" "\xA3" :string)
+           ("É" "\xA3" :string)
+           ("ñ" "\xA3" :string)
            ("Ð" "\xA3" :string)
            ("ç" "\xA3" :string)
-           ("Ç" "\xA3" :string)
+           ("Ñ" "\xA3" :string)
+           ("à" "\xA3" :string)
+           ("Ö" "\xA3" :string)
            ("Ï" "\xA3" :string)
+           ("ö" "\xA3" :string)
            ("ð" "\xA3" :string)
-           ("Ö" "\xA3" :string)
-           ("ñ" "\xA3" :string)
+           ("À" "\xA3" :string)
+           ("Ç" "\xA3" :string)
            ("ô" "\xA4" :string)
-           ("È" "\xA4" :string)
            ("è" "\xA4" :string)
            ("Ô" "\xA4" :string)
+           ("È" "\xA4" :string)
            ("ë" "\xA5" :string)
            ("Ë" "\xA5" :string)
+           ("Ê" "\xA6" :string)
            ("ê" "\xA6" :string)
-           ("Ê" "\xA6" :string)
-           ("Æ" "\xFF" :string)
            ("œ" "\xFF" :string)
            ("æ" "\xFF" :string)
+           ("Æ" "\xFF" :string)
            ("Œ" "\xFF" :string)
-           ("d" "\xA2" :string)
-           ("i" "\xA2" :string)
-           ("K" "\xA2" :string)
-           ("I" "\xA2" :string)
-           ("l" "\xA2" :string)
+           ("L" "\xA2" :string)
+           ("z" "\xA2" :string)
+           ("y" "\xA2" :string)
+           ("D" "\xA2" :string)
+           ("X" "\xA2" :string)
+           ("k" "\xA2" :string)
+           ("f" "\xA2" :string)
+           ("S" "\xA2" :string)
+           ("v" "\xA2" :string)
            ("M" "\xA2" :string)
-           ("D" "\xA2" :string)
-           ("O" "\xA2" :string)
            ("a" "\xA2" :string)
-           ("J" "\xA2" :string)
            ("U" "\xA2" :string)
+           ("T" "\xA2" :string)
            ("H" "\xA2" :string)
+           ("p" "\xA2" :string)
+           ("e" "\xA2" :string)
+           ("C" "\xA2" :string)
+           ("t" "\xA2" :string)
+           ("r" "\xA2" :string)
+           ("b" "\xA2" :string)
+           ("h" "\xA2" :string)
+           ("R" "\xA2" :string)
+           ("i" "\xA2" :string)
+           ("I" "\xA2" :string)
            ("F" "\xA2" :string)
-           ("V" "\xA2" :string)
-           ("v" "\xA2" :string)
-           ("T" "\xA2" :string)
-           ("q" "\xA2" :string)
-           ("u" "\xA2" :string)
-           ("y" "\xA2" :string)
+           ("W" "\xA2" :string)
+           ("O" "\xA2" :string)
+           ("J" "\xA2" :string)
+           ("j" "\xA2" :string)
+           ("d" "\xA2" :string)
+           ("E" "\xA2" :string)
+           ("c" "\xA2" :string)
            ("m" "\xA2" :string)
-           ("s" "\xA2" :string)
-           ("n" "\xA2" :string)
-           ("Y" "\xA2" :string)
-           ("e" "\xA2" :string)
-           ("p" "\xA2" :string)
-           ("W" "\xA2" :string)
+           ("g" "\xA2" :string)
+           ("G" "\xA2" :string)
            ("B" "\xA2" :string)
-           ("c" "\xA2" :string)
-           ("z" "\xA2" :string)
-           ("Q" "\xA2" :string)
-           ("h" "\xA2" :string)
-           ("r" "\xA2" :string)
-           ("C" "\xA2" :string)
+           ("K" "\xA2" :string)
+           ("l" "\xA2" :string)
            ("A" "\xA2" :string)
-           ("x" "\xA2" :string)
-           ("G" "\xA2" :string)
            ("o" "\xA2" :string)
-           ("S" "\xA2" :string)
-           ("k" "\xA2" :string)
-           ("t" "\xA2" :string)
-           ("w" "\xA2" :string)
-           ("E" "\xA2" :string)
-           ("f" "\xA2" :string)
-           ("g" "\xA2" :string)
-           ("L" "\xA2" :string)
-           ("N" "\xA2" :string)
-           ("R" "\xA2" :string)
-           ("j" "\xA2" :string)
-           ("X" "\xA2" :string)
+           ("u" "\xA2" :string)
+           ("Y" "\xA2" :string)
+           ("Q" "\xA2" :string)
            ("Z" "\xA2" :string)
-           ("b" "\xA2" :string)
+           ("n" "\xA2" :string)
+           ("q" "\xA2" :string)
            ("P" "\xA2" :string)
+           ("s" "\xA2" :string)
+           ("x" "\xA2" :string)
+           ("N" "\xA2" :string)
+           ("V" "\xA2" :string)
+           ("w" "\xA2" :string)
            ))
 
 (define-rule-set "pe-resolve-case"
 
-  :rules  (("À" "8" :string)
-           ("Ë" "8" :string)
+  :rules  (("Ô" "8" :string)
+           ("Ê" "8" :string)
+           ("و" "8" :string)
            ("È" "8" :string)
-           ("Ñ" "8" :string)
-           ("É" "8" :string)
-           ("Þ" "8" :string)
-           ("Ê" "8" :string)
            ("Ö" "8" :string)
+           ("Ë" "8" :string)
            ("ی" "8" :string)
+           ("À" "8" :string)
            ("Ï" "8" :string)
-           ("و" "8" :string)
            ("Ç" "8" :string)
+           ("É" "8" :string)
            ("Ð" "8" :string)
-           ("Ô" "8" :string)
+           ("Ñ" "8" :string)
+           ("Þ" "8" :string)
+           ("Œ" "89" :string)
            ("Æ" "89" :string)
-           ("Œ" "89" :string)
+           ("ذ" "9" :string)
+           ("ب" "9" :string)
+           ("ج" "9" :string)
+           ("ق" "9" :string)
+           ("é" "9" :string)
+           ("è" "9" :string)
+           ("ث" "9" :string)
+           ("ع" "9" :string)
+           ("þ" "9" :string)
            ("ش" "9" :string)
+           ("ë" "9" :string)
            ("خ" "9" :string)
-           ("چ" "9" :string)
+           ("پ" "9" :string)
+           ("م" "9" :string)
+           ("ï" "9" :string)
+           ("ؤ" "9" :string)
+           ("گ" "9" :string)
+           ("ه" "9" :string)
            ("ظ" "9" :string)
-           ("è" "9" :string)
-           ("ج" "9" :string)
-           ("ن" "9" :string)
-           ("گ" "9" :string)
-           ("آ" "9" :string)
-           ("د" "9" :string)
-           ("ف" "9" :string)
-           ("ئ" "9" :string)
-           ("ï" "9" :string)
-           ("ح" "9" :string)
-           ("پ" "9" :string)
-           ("ق" "9" :string)
+           ("ا" "9" :string)
+           ("ر" "9" :string)
+           ("ل" "9" :string)
            ("ô" "9" :string)
-           ("ë" "9" :string)
-           ("ط" "9" :string)
+           ("ک" "9" :string)
+           ("س" "9" :string)
+           ("ز" "9" :string)
            ("à" "9" :string)
+           ("أ" "9" :string)
+           ("ئ" "9" :string)
+           ("ت" "9" :string)
+           ("آ" "9" :string)
            ("ض" "9" :string)
-           ("ت" "9" :string)
-           ("ع" "9" :string)
-           ("ل" "9" :string)
-           ("ر" "9" :string)
+           ("ح" "9" :string)
            ("ö" "9" :string)
-           ("ؤ" "9" :string)
+           ("ð" "9" :string)
+           ("غ" "9" :string)
+           ("د" "9" :string)
+           ("ف" "9" :string)
+           ("ن" "9" :string)
            ("ê" "9" :string)
-           ("س" "9" :string)
+           ("ژ" "9" :string)
+           ("ص" "9" :string)
            ("ñ" "9" :string)
-           ("þ" "9" :string)
-           ("ا" "9" :string)
-           ("أ" "9" :string)
-           ("ک" "9" :string)
-           ("ث" "9" :string)
-           ("ð" "9" :string)
-           ("ص" "9" :string)
-           ("غ" "9" :string)
-           ("ذ" "9" :string)
-           ("ب" "9" :string)
+           ("ط" "9" :string)
+           ("چ" "9" :string)
            ("ç" "9" :string)
-           ("ز" "9" :string)
-           ("ژ" "9" :string)
-           ("م" "9" :string)
-           ("ه" "9" :string)
-           ("é" "9" :string)
            ("œ" "99" :string)
            ("æ" "99" :string)
-           ("Y" "8" :string)
-           ("V" "8" :string)
-           ("F" "8" :string)
            ("T" "8" :string)
-           ("O" "8" :string)
            ("H" "8" :string)
            ("U" "8" :string)
-           ("J" "8" :string)
+           ("C" "8" :string)
+           ("R" "8" :string)
+           ("L" "8" :string)
+           ("X" "8" :string)
+           ("D" "8" :string)
            ("M" "8" :string)
-           ("I" "8" :string)
+           ("S" "8" :string)
+           ("A" "8" :string)
            ("K" "8" :string)
-           ("D" "8" :string)
-           ("R" "8" :string)
-           ("P" "8" :string)
+           ("Y" "8" :string)
+           ("Q" "8" :string)
            ("Z" "8" :string)
-           ("X" "8" :string)
            ("N" "8" :string)
-           ("L" "8" :string)
+           ("P" "8" :string)
+           ("V" "8" :string)
+           ("F" "8" :string)
+           ("W" "8" :string)
+           ("J" "8" :string)
+           ("O" "8" :string)
+           ("I" "8" :string)
            ("E" "8" :string)
            ("G" "8" :string)
-           ("A" "8" :string)
-           ("S" "8" :string)
-           ("C" "8" :string)
-           ("Q" "8" :string)
-           ("W" "8" :string)
            ("B" "8" :string)
+           ("t" "9" :string)
            ("e" "9" :string)
-           ("n" "9" :string)
-           ("s" "9" :string)
+           ("p" "9" :string)
+           ("b" "9" :string)
+           ("r" "9" :string)
+           ("i" "9" :string)
+           ("h" "9" :string)
+           ("z" "9" :string)
            ("y" "9" :string)
-           ("m" "9" :string)
-           ("u" "9" :string)
-           ("q" "9" :string)
            ("v" "9" :string)
+           ("k" "9" :string)
+           ("f" "9" :string)
            ("a" "9" :string)
+           ("o" "9" :string)
+           ("u" "9" :string)
            ("l" "9" :string)
+           ("q" "9" :string)
+           ("n" "9" :string)
+           ("s" "9" :string)
+           ("x" "9" :string)
+           ("w" "9" :string)
+           ("j" "9" :string)
+           ("m" "9" :string)
            ("d" "9" :string)
-           ("i" "9" :string)
-           ("j" "9" :string)
-           ("b" "9" :string)
+           ("c" "9" :string)
            ("g" "9" :string)
-           ("w" "9" :string)
-           ("t" "9" :string)
-           ("f" "9" :string)
-           ("x" "9" :string)
-           ("k" "9" :string)
-           ("o" "9" :string)
-           ("r" "9" :string)
-           ("h" "9" :string)
-           ("c" "9" :string)
-           ("z" "9" :string)
-           ("p" "9" :string)
            ))
 
 (define-rule-set "pe-ignore-special"
 
   :rules  (("‌" "" :string)
+           ("ْ" "" :string)
            ("ِ" "" :string)
+           ("،" "" :string)
+           ("«" "" :string)
            ("ـ" "" :string)
-           ("َ" "" :string)
-           ("ٌ" "" :string)
            ("ّ" "" :string)
-           ("ٍ" "" :string)
+           ("ٔ" "" :string)
            ("ُ" "" :string)
-           ("ْ" "" :string)
+           ("»" "" :string)
            ("ء" "" :string)
-           ("»" "" :string)
-           ("ٔ" "" :string)
+           ("ٌ" "" :string)
+           ("ٍ" "" :string)
            ("ً" "" :string)
-           ("«" "" :string)
-           ("{" "" :string)
+           ("؛" "" :string)
+           ("َ" "" :string)
            ("." "" :string)
-           ("?" "" :string)
+           ("'" "" :string)
            ("-" "" :string)
+           ("{" "" :string)
            ("!" "" :string)
-           ("'" "" :string)
+           ("?" "" :string)
            ("}" "" :string)
            ))
 
@@ -450,70 +452,70 @@
 (define-rule-set "pe-resolve-special"
 
   :rules  (("‌" "\xB3" :string)
-           ("Ô" "\xA4" :string)
-           ("Ð" "\xA4" :string)
-           ("ç" "\xA4" :string)
-           ("ز" "\xA4" :string)
-           ("ه" "\xA4" :string)
-           ("Ç" "\xA4" :string)
-           ("غ" "\xA4" :string)
-           ("ص" "\xA4" :string)
-           ("ذ" "\xA4" :string)
-           ("ث" "\xA4" :string)
-           ("ð" "\xA4" :string)
-           ("Ö" "\xA4" :string)
-           ("س" "\xA4" :string)
-           ("þ" "\xA4" :string)
-           ("ê" "\xA4" :string)
-           ("Ê" "\xA4" :string)
-           ("ع" "\xA4" :string)
-           ("ö" "\xA4" :string)
-           ("ë" "\xA4" :string)
            ("É" "\xA4" :string)
+           ("Þ" "\xA4" :string)
+           ("Ñ" "\xA4" :string)
+           ("چ" "\xA4" :string)
            ("à" "\xA4" :string)
-           ("ت" "\xA4" :string)
-           ("È" "\xA4" :string)
-           ("ô" "\xA4" :string)
-           ("پ" "\xA4" :string)
+           ("س" "\xA4" :string)
+           ("أ" "\xA4" :string)
            ("Ë" "\xA4" :string)
-           ("ئ" "\xA4" :string)
-           ("آ" "\xA4" :string)
-           ("د" "\xA4" :string)
-           ("ف" "\xA4" :string)
-           ("ش" "\xA4" :string)
-           ("چ" "\xA4" :string)
+           ("Ï" "\xA4" :string)
+           ("À" "\xA4" :string)
+           ("ö" "\xA4" :string)
            ("خ" "\xA4" :string)
+           ("پ" "\xA4" :string)
+           ("م" "\xA4" :string)
+           ("ظ" "\xA4" :string)
+           ("گ" "\xA4" :string)
+           ("ô" "\xA4" :string)
+           ("ا" "\xA4" :string)
+           ("ق" "\xA4" :string)
+           ("ذ" "\xA4" :string)
            ("ج" "\xA4" :string)
-           ("ن" "\xA4" :string)
+           ("ب" "\xA4" :string)
            ("é" "\xA4" :string)
-           ("م" "\xA4" :string)
-           ("ژ" "\xA4" :string)
-           ("ب" "\xA4" :string)
+           ("Ô" "\xA4" :string)
+           ("è" "\xA4" :string)
+           ("ث" "\xA4" :string)
            ("و" "\xA4" :string)
-           ("Ï" "\xA4" :string)
-           ("ا" "\xA4" :string)
+           ("ص" "\xA4" :string)
+           ("ñ" "\xA4" :string)
+           ("Ð" "\xA4" :string)
+           ("ط" "\xA4" :string)
+           ("ç" "\xA4" :string)
+           ("ز" "\xA4" :string)
            ("ک" "\xA4" :string)
-           ("أ" "\xA4" :string)
+           ("È" "\xA4" :string)
+           ("ت" "\xA4" :string)
+           ("آ" "\xA4" :string)
            ("ی" "\xA4" :string)
-           ("ñ" "\xA4" :string)
-           ("ؤ" "\xA4" :string)
-           ("Þ" "\xA4" :string)
-           ("ل" "\xA4" :string)
-           ("ر" "\xA4" :string)
-           ("Ñ" "\xA4" :string)
-           ("ط" "\xA4" :string)
            ("ض" "\xA4" :string)
-           ("ق" "\xA4" :string)
-           ("À" "\xA4" :string)
+           ("ئ" "\xA4" :string)
+           ("Ö" "\xA4" :string)
+           ("ف" "\xA4" :string)
+           ("غ" "\xA4" :string)
+           ("د" "\xA4" :string)
            ("ح" "\xA4" :string)
+           ("ð" "\xA4" :string)
+           ("Ç" "\xA4" :string)
+           ("ن" "\xA4" :string)
+           ("ê" "\xA4" :string)
+           ("ژ" "\xA4" :string)
+           ("ë" "\xA4" :string)
+           ("ش" "\xA4" :string)
            ("ï" "\xA4" :string)
-           ("ظ" "\xA4" :string)
-           ("è" "\xA4" :string)
-           ("گ" "\xA4" :string)
+           ("ه" "\xA4" :string)
+           ("ؤ" "\xA4" :string)
+           ("ر" "\xA4" :string)
+           ("ل" "\xA4" :string)
+           ("Ê" "\xA4" :string)
+           ("ع" "\xA4" :string)
+           ("þ" "\xA4" :string)
+           ("æ" "\xA4\xA4" :string)
            ("Œ" "\xA4\xA4" :string)
+           ("Æ" "\xA4\xA4" :string)
            ("œ" "\xA4\xA4" :string)
-           ("æ" "\xA4\xA4" :string)
-           ("Æ" "\xA4\xA4" :string)
            ("ّ" "\xA9" :string)
            ("َ" "\xAA" :string)
            ("ِ" "\xAB" :string)
@@ -527,61 +529,63 @@
            ("«" "\xB4" :string)
            ("»" "\xB5" :string)
            ("ـ" "\xB6" :string)
+           ("،" "\xB7" :string)
+           ("؛" "\xB8" :string)
            ("?" "\xA1" :string)
            ("!" "\xA2" :string)
            ("." "\xA3" :string)
+           ("j" "\xA4" :string)
+           ("J" "\xA4" :string)
+           ("W" "\xA4" :string)
            ("c" "\xA4" :string)
-           ("p" "\xA4" :string)
+           ("E" "\xA4" :string)
+           ("d" "\xA4" :string)
+           ("m" "\xA4" :string)
+           ("G" "\xA4" :string)
+           ("l" "\xA4" :string)
+           ("o" "\xA4" :string)
+           ("Z" "\xA4" :string)
+           ("n" "\xA4" :string)
            ("Q" "\xA4" :string)
-           ("C" "\xA4" :string)
-           ("r" "\xA4" :string)
-           ("x" "\xA4" :string)
+           ("w" "\xA4" :string)
+           ("D" "\xA4" :string)
+           ("z" "\xA4" :string)
            ("k" "\xA4" :string)
-           ("o" "\xA4" :string)
-           ("w" "\xA4" :string)
+           ("M" "\xA4" :string)
+           ("v" "\xA4" :string)
+           ("T" "\xA4" :string)
+           ("e" "\xA4" :string)
+           ("p" "\xA4" :string)
            ("t" "\xA4" :string)
-           ("N" "\xA4" :string)
+           ("r" "\xA4" :string)
            ("R" "\xA4" :string)
-           ("j" "\xA4" :string)
-           ("Z" "\xA4" :string)
-           ("P" "\xA4" :string)
-           ("d" "\xA4" :string)
+           ("h" "\xA4" :string)
            ("I" "\xA4" :string)
-           ("M" "\xA4" :string)
-           ("l" "\xA4" :string)
-           ("a" "\xA4" :string)
-           ("U" "\xA4" :string)
+           ("O" "\xA4" :string)
            ("F" "\xA4" :string)
-           ("v" "\xA4" :string)
-           ("T" "\xA4" :string)
-           ("Y" "\xA4" :string)
-           ("z" "\xA4" :string)
+           ("g" "\xA4" :string)
            ("B" "\xA4" :string)
-           ("W" "\xA4" :string)
-           ("h" "\xA4" :string)
+           ("K" "\xA4" :string)
+           ("u" "\xA4" :string)
            ("A" "\xA4" :string)
-           ("G" "\xA4" :string)
+           ("Y" "\xA4" :string)
+           ("q" "\xA4" :string)
+           ("x" "\xA4" :string)
+           ("s" "\xA4" :string)
+           ("P" "\xA4" :string)
+           ("N" "\xA4" :string)
+           ("V" "\xA4" :string)
+           ("L" "\xA4" :string)
+           ("y" "\xA4" :string)
+           ("X" "\xA4" :string)
            ("S" "\xA4" :string)
            ("f" "\xA4" :string)
-           ("E" "\xA4" :string)
-           ("g" "\xA4" :string)
-           ("L" "\xA4" :string)
+           ("a" "\xA4" :string)
+           ("H" "\xA4" :string)
+           ("U" "\xA4" :string)
+           ("C" "\xA4" :string)
            ("b" "\xA4" :string)
-           ("X" "\xA4" :string)
            ("i" "\xA4" :string)
-           ("K" "\xA4" :string)
-           ("D" "\xA4" :string)
-           ("O" "\xA4" :string)
-           ("H" "\xA4" :string)
-           ("J" "\xA4" :string)
-           ("V" "\xA4" :string)
-           ("q" "\xA4" :string)
-           ("u" "\xA4" :string)
-           ("y" "\xA4" :string)
-           ("m" "\xA4" :string)
-           ("s" "\xA4" :string)
-           ("n" "\xA4" :string)
-           ("e" "\xA4" :string)
            ("-" "\xA5" :string)
            ("'" "\xA6" :string)
            ("{" "\xA7" :string)

Deleted: trunk/Master/texmf-dist/xindy/modules/lang/persian/variant3-utf8.pl.in
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/xindy/modules/lang/persian/variant3-utf8.xdy
===================================================================
--- trunk/Master/texmf-dist/xindy/modules/lang/persian/variant3-utf8.xdy	2021-04-27 13:41:25 UTC (rev 59002)
+++ trunk/Master/texmf-dist/xindy/modules/lang/persian/variant3-utf8.xdy	2021-04-27 15:33:46 UTC (rev 59003)
@@ -34,32 +34,32 @@
 (define-letter-group "ه" :after "و" :prefixes ("\xA0"))
 (define-letter-group "ی" :after "ه" :prefixes ("\xA1"))
 (define-letter-group "A" :after "ی" :prefixes ("\xA2"))
-(define-letter-group "B" :after "A" :prefixes ("\xA3"))
-(define-letter-group "C" :after "B" :prefixes ("\xA4"))
-(define-letter-group "D" :after "C" :prefixes ("\xA5"))
-(define-letter-group "E" :after "D" :prefixes ("\xA6"))
-(define-letter-group "F" :after "E" :prefixes ("\xA7"))
-(define-letter-group "G" :after "F" :prefixes ("\xA8"))
-(define-letter-group "H" :after "G" :prefixes ("\xA9"))
-(define-letter-group "I" :after "H" :prefixes ("\xAA"))
-(define-letter-group "J" :after "I" :prefixes ("\xAB"))
-(define-letter-group "K" :after "J" :prefixes ("\xAC"))
-(define-letter-group "L" :after "K" :prefixes ("\xAD"))
-(define-letter-group "M" :after "L" :prefixes ("\xAE"))
-(define-letter-group "N" :after "M" :prefixes ("\xAF"))
-(define-letter-group "O" :after "N" :prefixes ("\xB0"))
-(define-letter-group "P" :after "O" :prefixes ("\xB1"))
-(define-letter-group "Q" :after "P" :prefixes ("\xB2"))
-(define-letter-group "R" :after "Q" :prefixes ("\xB3"))
-(define-letter-group "S" :after "R" :prefixes ("\xB4"))
-(define-letter-group "T" :after "S" :prefixes ("\xB5"))
-(define-letter-group "U" :after "T" :prefixes ("\xB6"))
-(define-letter-group "V" :after "U" :prefixes ("\xB7"))
-(define-letter-group "W" :after "V" :prefixes ("\xB8"))
-(define-letter-group "X" :after "W" :prefixes ("\xB9"))
-(define-letter-group "Y" :after "X" :prefixes ("\xBA"))
-(define-letter-group "Z" :after "Y" :prefixes ("\xBB"))
-(define-letter-group "Þ" :after "Z" :prefixes ("\xBC"))
+(define-letter-group "B" :after "A" :prefixes ("\xA6"))
+(define-letter-group "C" :after "B" :prefixes ("\xA8"))
+(define-letter-group "D" :after "C" :prefixes ("\xAF"))
+(define-letter-group "E" :after "D" :prefixes ("\xB9"))
+(define-letter-group "F" :after "E" :prefixes ("\xBE"))
+(define-letter-group "G" :after "F" :prefixes ("\xBF"))
+(define-letter-group "H" :after "G" :prefixes ("\xC6"))
+(define-letter-group "I" :after "H" :prefixes ("\xCA"))
+(define-letter-group "J" :after "I" :prefixes ("\xCE"))
+(define-letter-group "K" :after "J" :prefixes ("\xD0"))
+(define-letter-group "L" :after "K" :prefixes ("\xD6"))
+(define-letter-group "M" :after "L" :prefixes ("\xDD"))
+(define-letter-group "N" :after "M" :prefixes ("\xDE"))
+(define-letter-group "O" :after "N" :prefixes ("\xE5"))
+(define-letter-group "P" :after "O" :prefixes ("\xEA"))
+(define-letter-group "Q" :after "P" :prefixes ("\xEC"))
+(define-letter-group "R" :after "Q" :prefixes ("\xED"))
+(define-letter-group "S" :after "R" :prefixes ("\xF2"))
+(define-letter-group "T" :after "S" :prefixes ("\xFC"))
+(define-letter-group "U" :after "T" :prefixes ("Ă"))
+(define-letter-group "V" :after "U" :prefixes ("ć"))
+(define-letter-group "W" :after "V" :prefixes ("Ĉ"))
+(define-letter-group "X" :after "W" :prefixes ("č"))
+(define-letter-group "Y" :after "X" :prefixes ("ď"))
+(define-letter-group "Z" :after "Y" :prefixes ("Ē"))
+(define-letter-group "Þ" :after "Z" :prefixes ("Ę"))
 
 (define-rule-set "pe-alphabetize"
 
@@ -94,425 +94,427 @@
            ("ل" "\x9C" :string)
            ("م" "\x9D" :string)
            ("ن" "\x9E" :string)
+           ("ؤ" "\x9F" :string)
            ("و" "\x9F" :string)
-           ("ؤ" "\x9F" :string)
            ("ه" "\xA0" :string)
+           ("ی" "\xA1" :string)
            ("ئ" "\xA1" :string)
-           ("ی" "\xA1" :string)
+           ("À" "\xA2" :string)
            ("à" "\xA2" :string)
-           ("À" "\xA2" :string)
-           ("æ" "\xA2\xA6" :string)
-           ("Æ" "\xA2\xA6" :string)
-           ("ç" "\xA4" :string)
-           ("Ç" "\xA4" :string)
-           ("Ð" "\xA5" :string)
-           ("ð" "\xA5" :string)
-           ("ê" "\xA6" :string)
-           ("è" "\xA6" :string)
-           ("ë" "\xA6" :string)
-           ("É" "\xA6" :string)
-           ("é" "\xA6" :string)
-           ("Ë" "\xA6" :string)
-           ("È" "\xA6" :string)
-           ("Ê" "\xA6" :string)
-           ("ï" "\xAA" :string)
-           ("Ï" "\xAA" :string)
-           ("ñ" "\xAF" :string)
-           ("Ñ" "\xAF" :string)
-           ("Ô" "\xB0" :string)
-           ("ô" "\xB0" :string)
-           ("ö" "\xB0" :string)
-           ("Ö" "\xB0" :string)
-           ("Œ" "\xB0\xA6" :string)
-           ("œ" "\xB0\xA6" :string)
-           ("Þ" "\xBC" :string)
-           ("þ" "\xBC" :string)
+           ("æ" "\xA2\xB9" :string)
+           ("Æ" "\xA2\xB9" :string)
+           ("Ç" "\xA8" :string)
+           ("ç" "\xA8" :string)
+           ("ð" "\xAF" :string)
+           ("Ð" "\xAF" :string)
+           ("é" "\xB9" :string)
+           ("ë" "\xB9" :string)
+           ("ê" "\xB9" :string)
+           ("Ê" "\xB9" :string)
+           ("É" "\xB9" :string)
+           ("È" "\xB9" :string)
+           ("è" "\xB9" :string)
+           ("Ë" "\xB9" :string)
+           ("Ï" "\xCA" :string)
+           ("ï" "\xCA" :string)
+           ("Ñ" "\xDE" :string)
+           ("ñ" "\xDE" :string)
+           ("ö" "\xE5" :string)
+           ("Ö" "\xE5" :string)
+           ("Ô" "\xE5" :string)
+           ("ô" "\xE5" :string)
+           ("œ" "\xE5\xB9" :string)
+           ("Œ" "\xE5\xB9" :string)
+           ("Þ" "Ę" :string)
+           ("þ" "Ę" :string)
+           ("a" "\xA2" :string)
            ("A" "\xA2" :string)
-           ("a" "\xA2" :string)
-           ("b" "\xA3" :string)
-           ("B" "\xA3" :string)
-           ("c" "\xA4" :string)
-           ("C" "\xA4" :string)
-           ("d" "\xA5" :string)
-           ("D" "\xA5" :string)
-           ("e" "\xA6" :string)
-           ("E" "\xA6" :string)
-           ("F" "\xA7" :string)
-           ("f" "\xA7" :string)
-           ("G" "\xA8" :string)
-           ("g" "\xA8" :string)
-           ("h" "\xA9" :string)
-           ("H" "\xA9" :string)
-           ("I" "\xAA" :string)
-           ("i" "\xAA" :string)
-           ("J" "\xAB" :string)
-           ("j" "\xAB" :string)
-           ("K" "\xAC" :string)
-           ("k" "\xAC" :string)
-           ("L" "\xAD" :string)
-           ("l" "\xAD" :string)
-           ("M" "\xAE" :string)
-           ("m" "\xAE" :string)
-           ("n" "\xAF" :string)
-           ("N" "\xAF" :string)
-           ("O" "\xB0" :string)
-           ("o" "\xB0" :string)
-           ("P" "\xB1" :string)
-           ("p" "\xB1" :string)
-           ("Q" "\xB2" :string)
-           ("q" "\xB2" :string)
-           ("r" "\xB3" :string)
-           ("R" "\xB3" :string)
-           ("s" "\xB4" :string)
-           ("S" "\xB4" :string)
-           ("t" "\xB5" :string)
-           ("T" "\xB5" :string)
-           ("u" "\xB6" :string)
-           ("U" "\xB6" :string)
-           ("V" "\xB7" :string)
-           ("v" "\xB7" :string)
-           ("w" "\xB8" :string)
-           ("W" "\xB8" :string)
-           ("X" "\xB9" :string)
-           ("x" "\xB9" :string)
-           ("y" "\xBA" :string)
-           ("Y" "\xBA" :string)
-           ("Z" "\xBB" :string)
-           ("z" "\xBB" :string)
+           ("B" "\xA6" :string)
+           ("b" "\xA6" :string)
+           ("c" "\xA8" :string)
+           ("C" "\xA8" :string)
+           ("d" "\xAF" :string)
+           ("D" "\xAF" :string)
+           ("e" "\xB9" :string)
+           ("E" "\xB9" :string)
+           ("F" "\xBE" :string)
+           ("f" "\xBE" :string)
+           ("G" "\xBF" :string)
+           ("g" "\xBF" :string)
+           ("H" "\xC6" :string)
+           ("h" "\xC6" :string)
+           ("i" "\xCA" :string)
+           ("I" "\xCA" :string)
+           ("J" "\xCE" :string)
+           ("j" "\xCE" :string)
+           ("k" "\xD0" :string)
+           ("K" "\xD0" :string)
+           ("l" "\xD6" :string)
+           ("L" "\xD6" :string)
+           ("M" "\xDD" :string)
+           ("m" "\xDD" :string)
+           ("N" "\xDE" :string)
+           ("n" "\xDE" :string)
+           ("o" "\xE5" :string)
+           ("O" "\xE5" :string)
+           ("p" "\xEA" :string)
+           ("P" "\xEA" :string)
+           ("Q" "\xEC" :string)
+           ("q" "\xEC" :string)
+           ("R" "\xED" :string)
+           ("r" "\xED" :string)
+           ("s" "\xF2" :string)
+           ("S" "\xF2" :string)
+           ("T" "\xFC" :string)
+           ("t" "\xFC" :string)
+           ("u" "Ă" :string)
+           ("U" "Ă" :string)
+           ("v" "ć" :string)
+           ("V" "ć" :string)
+           ("W" "Ĉ" :string)
+           ("w" "Ĉ" :string)
+           ("X" "č" :string)
+           ("x" "č" :string)
+           ("Y" "ď" :string)
+           ("y" "ď" :string)
+           ("z" "Ē" :string)
+           ("Z" "Ē" :string)
            ))
 
 (define-rule-set "pe-resolve-diacritics"
 
-  :rules  (("پ" "\xA2" :string)
-           ("آ" "\xA2" :string)
-           ("ئ" "\xA2" :string)
+  :rules  (("ط" "\xA2" :string)
+           ("ص" "\xA2" :string)
            ("ی" "\xA2" :string)
-           ("ه" "\xA2" :string)
-           ("و" "\xA2" :string)
-           ("ل" "\xA2" :string)
            ("م" "\xA2" :string)
-           ("ن" "\xA2" :string)
-           ("ؤ" "\xA2" :string)
            ("د" "\xA2" :string)
-           ("ظ" "\xA2" :string)
-           ("ض" "\xA2" :string)
-           ("ث" "\xA2" :string)
-           ("ق" "\xA2" :string)
-           ("ذ" "\xA2" :string)
-           ("س" "\xA2" :string)
-           ("ج" "\xA2" :string)
-           ("ع" "\xA2" :string)
            ("ژ" "\xA2" :string)
+           ("ل" "\xA2" :string)
+           ("أ" "\xA2" :string)
+           ("ز" "\xA2" :string)
            ("خ" "\xA2" :string)
-           ("گ" "\xA2" :string)
+           ("ئ" "\xA2" :string)
+           ("ر" "\xA2" :string)
+           ("ت" "\xA2" :string)
            ("þ" "\xA2" :string)
-           ("ر" "\xA2" :string)
+           ("ک" "\xA2" :string)
+           ("ؤ" "\xA2" :string)
+           ("ج" "\xA2" :string)
+           ("ن" "\xA2" :string)
+           ("ق" "\xA2" :string)
            ("ا" "\xA2" :string)
-           ("ح" "\xA2" :string)
-           ("ب" "\xA2" :string)
-           ("ز" "\xA2" :string)
-           ("ش" "\xA2" :string)
+           ("ض" "\xA2" :string)
+           ("ف" "\xA2" :string)
+           ("ظ" "\xA2" :string)
+           ("آ" "\xA2" :string)
+           ("ذ" "\xA2" :string)
+           ("ث" "\xA2" :string)
+           ("پ" "\xA2" :string)
+           ("س" "\xA2" :string)
            ("غ" "\xA2" :string)
-           ("أ" "\xA2" :string)
            ("چ" "\xA2" :string)
-           ("ک" "\xA2" :string)
-           ("ف" "\xA2" :string)
-           ("ط" "\xA2" :string)
-           ("ت" "\xA2" :string)
+           ("ه" "\xA2" :string)
            ("Þ" "\xA2" :string)
-           ("ص" "\xA2" :string)
+           ("ب" "\xA2" :string)
+           ("گ" "\xA2" :string)
+           ("و" "\xA2" :string)
+           ("ع" "\xA2" :string)
+           ("ش" "\xA2" :string)
+           ("ح" "\xA2" :string)
+           ("É" "\xA3" :string)
+           ("Ç" "\xA3" :string)
+           ("à" "\xA3" :string)
+           ("ç" "\xA3" :string)
            ("ð" "\xA3" :string)
+           ("Ð" "\xA3" :string)
+           ("À" "\xA3" :string)
            ("Ï" "\xA3" :string)
-           ("Ð" "\xA3" :string)
-           ("Ñ" "\xA3" :string)
-           ("Ö" "\xA3" :string)
            ("ï" "\xA3" :string)
            ("é" "\xA3" :string)
            ("ö" "\xA3" :string)
-           ("Ç" "\xA3" :string)
-           ("à" "\xA3" :string)
-           ("ç" "\xA3" :string)
-           ("É" "\xA3" :string)
-           ("À" "\xA3" :string)
+           ("Ñ" "\xA3" :string)
            ("ñ" "\xA3" :string)
+           ("Ö" "\xA3" :string)
+           ("ô" "\xA4" :string)
+           ("Ô" "\xA4" :string)
            ("È" "\xA4" :string)
            ("è" "\xA4" :string)
-           ("ô" "\xA4" :string)
-           ("Ô" "\xA4" :string)
            ("Ë" "\xA5" :string)
            ("ë" "\xA5" :string)
            ("Ê" "\xA6" :string)
            ("ê" "\xA6" :string)
+           ("Œ" "\xFF" :string)
+           ("Æ" "\xFF" :string)
            ("œ" "\xFF" :string)
-           ("Æ" "\xFF" :string)
            ("æ" "\xFF" :string)
-           ("Œ" "\xFF" :string)
-           ("k" "\xA2" :string)
-           ("R" "\xA2" :string)
+           ("V" "\xA2" :string)
+           ("X" "\xA2" :string)
+           ("Z" "\xA2" :string)
+           ("Q" "\xA2" :string)
            ("T" "\xA2" :string)
+           ("z" "\xA2" :string)
+           ("H" "\xA2" :string)
+           ("j" "\xA2" :string)
+           ("m" "\xA2" :string)
            ("o" "\xA2" :string)
-           ("U" "\xA2" :string)
-           ("D" "\xA2" :string)
-           ("j" "\xA2" :string)
-           ("z" "\xA2" :string)
-           ("a" "\xA2" :string)
-           ("p" "\xA2" :string)
+           ("W" "\xA2" :string)
            ("B" "\xA2" :string)
+           ("x" "\xA2" :string)
+           ("h" "\xA2" :string)
+           ("g" "\xA2" :string)
+           ("w" "\xA2" :string)
+           ("G" "\xA2" :string)
            ("f" "\xA2" :string)
-           ("E" "\xA2" :string)
-           ("g" "\xA2" :string)
+           ("q" "\xA2" :string)
+           ("t" "\xA2" :string)
+           ("K" "\xA2" :string)
            ("S" "\xA2" :string)
-           ("K" "\xA2" :string)
-           ("l" "\xA2" :string)
-           ("v" "\xA2" :string)
-           ("u" "\xA2" :string)
-           ("i" "\xA2" :string)
-           ("t" "\xA2" :string)
+           ("s" "\xA2" :string)
+           ("r" "\xA2" :string)
+           ("P" "\xA2" :string)
+           ("b" "\xA2" :string)
            ("O" "\xA2" :string)
-           ("P" "\xA2" :string)
-           ("s" "\xA2" :string)
+           ("F" "\xA2" :string)
            ("Y" "\xA2" :string)
-           ("Z" "\xA2" :string)
+           ("i" "\xA2" :string)
+           ("a" "\xA2" :string)
+           ("R" "\xA2" :string)
+           ("p" "\xA2" :string)
+           ("I" "\xA2" :string)
+           ("e" "\xA2" :string)
            ("d" "\xA2" :string)
-           ("q" "\xA2" :string)
+           ("k" "\xA2" :string)
+           ("U" "\xA2" :string)
+           ("u" "\xA2" :string)
            ("c" "\xA2" :string)
-           ("J" "\xA2" :string)
-           ("C" "\xA2" :string)
-           ("m" "\xA2" :string)
+           ("N" "\xA2" :string)
+           ("l" "\xA2" :string)
+           ("M" "\xA2" :string)
            ("A" "\xA2" :string)
-           ("F" "\xA2" :string)
-           ("Q" "\xA2" :string)
            ("y" "\xA2" :string)
-           ("r" "\xA2" :string)
+           ("E" "\xA2" :string)
+           ("L" "\xA2" :string)
+           ("C" "\xA2" :string)
            ("n" "\xA2" :string)
-           ("M" "\xA2" :string)
-           ("W" "\xA2" :string)
-           ("x" "\xA2" :string)
-           ("G" "\xA2" :string)
-           ("N" "\xA2" :string)
-           ("X" "\xA2" :string)
-           ("w" "\xA2" :string)
-           ("e" "\xA2" :string)
-           ("L" "\xA2" :string)
-           ("h" "\xA2" :string)
-           ("b" "\xA2" :string)
-           ("H" "\xA2" :string)
-           ("I" "\xA2" :string)
-           ("V" "\xA2" :string)
+           ("D" "\xA2" :string)
+           ("J" "\xA2" :string)
+           ("v" "\xA2" :string)
            ))
 
 (define-rule-set "pe-resolve-case"
 
-  :rules  (("ی" "8" :string)
+  :rules  (("Ñ" "8" :string)
            ("Ï" "8" :string)
-           ("Ë" "8" :string)
-           ("È" "8" :string)
-           ("Ð" "8" :string)
+           ("À" "8" :string)
            ("و" "8" :string)
-           ("Ñ" "8" :string)
            ("Ö" "8" :string)
+           ("Þ" "8" :string)
+           ("È" "8" :string)
+           ("Ô" "8" :string)
+           ("ی" "8" :string)
+           ("Ç" "8" :string)
            ("Ê" "8" :string)
            ("É" "8" :string)
-           ("À" "8" :string)
-           ("Ç" "8" :string)
-           ("Ô" "8" :string)
-           ("Þ" "8" :string)
+           ("Ë" "8" :string)
+           ("Ð" "8" :string)
+           ("Œ" "89" :string)
            ("Æ" "89" :string)
-           ("Œ" "89" :string)
-           ("ئ" "9" :string)
-           ("ه" "9" :string)
-           ("ð" "9" :string)
+           ("ث" "9" :string)
+           ("ذ" "9" :string)
            ("پ" "9" :string)
+           ("ö" "9" :string)
            ("آ" "9" :string)
-           ("د" "9" :string)
+           ("ف" "9" :string)
+           ("é" "9" :string)
            ("ظ" "9" :string)
+           ("ë" "9" :string)
+           ("ï" "9" :string)
            ("ض" "9" :string)
-           ("ث" "9" :string)
-           ("é" "9" :string)
+           ("ا" "9" :string)
            ("ق" "9" :string)
-           ("ذ" "9" :string)
-           ("ö" "9" :string)
-           ("س" "9" :string)
-           ("ل" "9" :string)
-           ("ï" "9" :string)
-           ("م" "9" :string)
+           ("ج" "9" :string)
            ("ن" "9" :string)
+           ("ک" "9" :string)
            ("ؤ" "9" :string)
-           ("à" "9" :string)
-           ("ا" "9" :string)
-           ("ر" "9" :string)
            ("ح" "9" :string)
-           ("ç" "9" :string)
+           ("ش" "9" :string)
+           ("ê" "9" :string)
+           ("ع" "9" :string)
+           ("گ" "9" :string)
            ("ب" "9" :string)
-           ("ز" "9" :string)
-           ("ش" "9" :string)
+           ("ه" "9" :string)
+           ("چ" "9" :string)
+           ("ñ" "9" :string)
            ("غ" "9" :string)
-           ("ج" "9" :string)
-           ("ع" "9" :string)
+           ("س" "9" :string)
            ("ژ" "9" :string)
-           ("خ" "9" :string)
-           ("گ" "9" :string)
+           ("ل" "9" :string)
+           ("ð" "9" :string)
+           ("د" "9" :string)
+           ("م" "9" :string)
+           ("à" "9" :string)
+           ("ç" "9" :string)
+           ("ô" "9" :string)
+           ("ص" "9" :string)
+           ("ط" "9" :string)
            ("þ" "9" :string)
-           ("ط" "9" :string)
-           ("ñ" "9" :string)
            ("ت" "9" :string)
-           ("ص" "9" :string)
+           ("ر" "9" :string)
+           ("ئ" "9" :string)
+           ("خ" "9" :string)
+           ("ز" "9" :string)
+           ("è" "9" :string)
            ("أ" "9" :string)
-           ("چ" "9" :string)
-           ("ê" "9" :string)
-           ("è" "9" :string)
-           ("ô" "9" :string)
-           ("ک" "9" :string)
-           ("ف" "9" :string)
-           ("ë" "9" :string)
+           ("æ" "99" :string)
            ("œ" "99" :string)
-           ("æ" "99" :string)
+           ("U" "8" :string)
+           ("I" "8" :string)
+           ("R" "8" :string)
+           ("Y" "8" :string)
+           ("F" "8" :string)
            ("D" "8" :string)
+           ("J" "8" :string)
+           ("C" "8" :string)
+           ("L" "8" :string)
+           ("E" "8" :string)
+           ("A" "8" :string)
+           ("M" "8" :string)
+           ("N" "8" :string)
+           ("G" "8" :string)
            ("B" "8" :string)
-           ("E" "8" :string)
-           ("R" "8" :string)
+           ("W" "8" :string)
+           ("H" "8" :string)
+           ("Q" "8" :string)
            ("T" "8" :string)
-           ("U" "8" :string)
+           ("X" "8" :string)
+           ("Z" "8" :string)
+           ("V" "8" :string)
            ("O" "8" :string)
            ("P" "8" :string)
            ("S" "8" :string)
            ("K" "8" :string)
-           ("J" "8" :string)
-           ("C" "8" :string)
-           ("A" "8" :string)
-           ("Z" "8" :string)
-           ("Y" "8" :string)
-           ("X" "8" :string)
-           ("L" "8" :string)
-           ("H" "8" :string)
-           ("I" "8" :string)
-           ("V" "8" :string)
-           ("F" "8" :string)
-           ("Q" "8" :string)
-           ("M" "8" :string)
-           ("W" "8" :string)
-           ("G" "8" :string)
-           ("N" "8" :string)
-           ("j" "9" :string)
-           ("z" "9" :string)
+           ("u" "9" :string)
+           ("k" "9" :string)
+           ("d" "9" :string)
+           ("e" "9" :string)
+           ("p" "9" :string)
+           ("i" "9" :string)
            ("a" "9" :string)
-           ("p" "9" :string)
-           ("f" "9" :string)
-           ("k" "9" :string)
-           ("o" "9" :string)
-           ("l" "9" :string)
            ("v" "9" :string)
-           ("u" "9" :string)
-           ("t" "9" :string)
-           ("i" "9" :string)
-           ("s" "9" :string)
-           ("g" "9" :string)
-           ("q" "9" :string)
+           ("n" "9" :string)
+           ("y" "9" :string)
            ("c" "9" :string)
-           ("m" "9" :string)
-           ("d" "9" :string)
+           ("l" "9" :string)
            ("w" "9" :string)
-           ("e" "9" :string)
            ("h" "9" :string)
+           ("g" "9" :string)
+           ("x" "9" :string)
+           ("o" "9" :string)
+           ("z" "9" :string)
+           ("j" "9" :string)
+           ("m" "9" :string)
            ("b" "9" :string)
-           ("y" "9" :string)
            ("r" "9" :string)
-           ("n" "9" :string)
-           ("x" "9" :string)
+           ("s" "9" :string)
+           ("t" "9" :string)
+           ("q" "9" :string)
+           ("f" "9" :string)
            ))
 
 (define-rule-set "pe-ignore-special"
 
   :rules  (("‌" "" :string)
+           ("«" "" :string)
+           ("ـ" "" :string)
+           ("ّ" "" :string)
+           ("ِ" "" :string)
+           ("ْ" "" :string)
+           ("؛" "" :string)
+           ("َ" "" :string)
+           ("ٍ" "" :string)
+           ("»" "" :string)
            ("ٔ" "" :string)
+           ("ٌ" "" :string)
+           ("ً" "" :string)
+           ("،" "" :string)
            ("ء" "" :string)
            ("ُ" "" :string)
-           ("ٍ" "" :string)
-           ("ْ" "" :string)
-           ("ّ" "" :string)
-           ("«" "" :string)
-           ("ً" "" :string)
-           ("ٌ" "" :string)
-           ("َ" "" :string)
-           ("ـ" "" :string)
-           ("»" "" :string)
-           ("ِ" "" :string)
-           ("{" "" :string)
+           ("'" "" :string)
            ("." "" :string)
+           ("!" "" :string)
+           ("?" "" :string)
            ("-" "" :string)
-           ("!" "" :string)
-           ("'" "" :string)
            ("}" "" :string)
-           ("?" "" :string)
+           ("{" "" :string)
            ))
 
 (define-rule-set "pe-resolve-special"
 
   :rules  (("‌" "\xB3" :string)
-           ("س" "\xA4" :string)
-           ("é" "\xA4" :string)
-           ("Ë" "\xA4" :string)
-           ("ن" "\xA4" :string)
-           ("م" "\xA4" :string)
-           ("ï" "\xA4" :string)
-           ("È" "\xA4" :string)
-           ("ئ" "\xA4" :string)
-           ("Ï" "\xA4" :string)
-           ("آ" "\xA4" :string)
-           ("پ" "\xA4" :string)
-           ("ص" "\xA4" :string)
-           ("ت" "\xA4" :string)
+           ("غ" "\xA4" :string)
            ("ñ" "\xA4" :string)
-           ("Ô" "\xA4" :string)
-           ("ë" "\xA4" :string)
-           ("ف" "\xA4" :string)
-           ("è" "\xA4" :string)
-           ("ô" "\xA4" :string)
-           ("ک" "\xA4" :string)
-           ("أ" "\xA4" :string)
+           ("چ" "\xA4" :string)
+           ("ب" "\xA4" :string)
+           ("ه" "\xA4" :string)
+           ("و" "\xA4" :string)
+           ("ع" "\xA4" :string)
+           ("گ" "\xA4" :string)
+           ("ê" "\xA4" :string)
            ("ش" "\xA4" :string)
-           ("ز" "\xA4" :string)
-           ("ح" "\xA4" :string)
-           ("ç" "\xA4" :string)
-           ("É" "\xA4" :string)
-           ("گ" "\xA4" :string)
-           ("þ" "\xA4" :string)
-           ("خ" "\xA4" :string)
-           ("Ç" "\xA4" :string)
+           ("ن" "\xA4" :string)
            ("ج" "\xA4" :string)
+           ("À" "\xA4" :string)
+           ("Ï" "\xA4" :string)
+           ("ؤ" "\xA4" :string)
+           ("ا" "\xA4" :string)
            ("ق" "\xA4" :string)
+           ("ظ" "\xA4" :string)
+           ("é" "\xA4" :string)
+           ("ف" "\xA4" :string)
+           ("ï" "\xA4" :string)
+           ("ë" "\xA4" :string)
+           ("Ñ" "\xA4" :string)
+           ("ö" "\xA4" :string)
+           ("پ" "\xA4" :string)
            ("ذ" "\xA4" :string)
-           ("ö" "\xA4" :string)
            ("ث" "\xA4" :string)
+           ("è" "\xA4" :string)
+           ("خ" "\xA4" :string)
+           ("Ð" "\xA4" :string)
+           ("ر" "\xA4" :string)
+           ("ئ" "\xA4" :string)
+           ("þ" "\xA4" :string)
+           ("ت" "\xA4" :string)
+           ("É" "\xA4" :string)
            ("د" "\xA4" :string)
-           ("ظ" "\xA4" :string)
+           ("م" "\xA4" :string)
+           ("س" "\xA4" :string)
+           ("Þ" "\xA4" :string)
+           ("Ö" "\xA4" :string)
+           ("ح" "\xA4" :string)
+           ("ک" "\xA4" :string)
            ("ض" "\xA4" :string)
+           ("آ" "\xA4" :string)
+           ("ز" "\xA4" :string)
+           ("أ" "\xA4" :string)
+           ("Ë" "\xA4" :string)
+           ("ص" "\xA4" :string)
            ("Ê" "\xA4" :string)
-           ("ؤ" "\xA4" :string)
-           ("Ñ" "\xA4" :string)
-           ("Ö" "\xA4" :string)
-           ("Ð" "\xA4" :string)
-           ("و" "\xA4" :string)
-           ("ل" "\xA4" :string)
-           ("ه" "\xA4" :string)
+           ("ط" "\xA4" :string)
+           ("Ô" "\xA4" :string)
+           ("ô" "\xA4" :string)
+           ("Ç" "\xA4" :string)
            ("ی" "\xA4" :string)
-           ("ð" "\xA4" :string)
-           ("Þ" "\xA4" :string)
-           ("ط" "\xA4" :string)
-           ("ê" "\xA4" :string)
-           ("چ" "\xA4" :string)
-           ("غ" "\xA4" :string)
-           ("ب" "\xA4" :string)
-           ("À" "\xA4" :string)
            ("à" "\xA4" :string)
-           ("ر" "\xA4" :string)
-           ("ا" "\xA4" :string)
-           ("ع" "\xA4" :string)
+           ("ç" "\xA4" :string)
            ("ژ" "\xA4" :string)
-           ("Œ" "\xA4\xA4" :string)
+           ("ل" "\xA4" :string)
+           ("È" "\xA4" :string)
+           ("ð" "\xA4" :string)
+           ("œ" "\xA4\xA4" :string)
            ("æ" "\xA4\xA4" :string)
            ("Æ" "\xA4\xA4" :string)
-           ("œ" "\xA4\xA4" :string)
+           ("Œ" "\xA4\xA4" :string)
            ("ّ" "\xA9" :string)
            ("َ" "\xAA" :string)
            ("ِ" "\xAB" :string)
@@ -526,61 +528,63 @@
            ("«" "\xB4" :string)
            ("»" "\xB5" :string)
            ("ـ" "\xB6" :string)
+           ("،" "\xB7" :string)
+           ("؛" "\xB8" :string)
            ("?" "\xA1" :string)
            ("!" "\xA2" :string)
            ("." "\xA3" :string)
-           ("P" "\xA4" :string)
-           ("t" "\xA4" :string)
-           ("v" "\xA4" :string)
+           ("A" "\xA4" :string)
+           ("E" "\xA4" :string)
+           ("C" "\xA4" :string)
+           ("n" "\xA4" :string)
+           ("D" "\xA4" :string)
+           ("R" "\xA4" :string)
+           ("p" "\xA4" :string)
+           ("a" "\xA4" :string)
+           ("i" "\xA4" :string)
+           ("I" "\xA4" :string)
            ("u" "\xA4" :string)
-           ("l" "\xA4" :string)
+           ("U" "\xA4" :string)
+           ("f" "\xA4" :string)
+           ("q" "\xA4" :string)
            ("K" "\xA4" :string)
            ("S" "\xA4" :string)
-           ("B" "\xA4" :string)
-           ("f" "\xA4" :string)
-           ("p" "\xA4" :string)
-           ("D" "\xA4" :string)
+           ("r" "\xA4" :string)
+           ("V" "\xA4" :string)
            ("j" "\xA4" :string)
-           ("a" "\xA4" :string)
+           ("W" "\xA4" :string)
            ("o" "\xA4" :string)
-           ("k" "\xA4" :string)
-           ("I" "\xA4" :string)
-           ("H" "\xA4" :string)
-           ("e" "\xA4" :string)
-           ("X" "\xA4" :string)
-           ("G" "\xA4" :string)
-           ("N" "\xA4" :string)
+           ("T" "\xA4" :string)
            ("x" "\xA4" :string)
+           ("w" "\xA4" :string)
+           ("g" "\xA4" :string)
+           ("h" "\xA4" :string)
            ("y" "\xA4" :string)
-           ("n" "\xA4" :string)
+           ("N" "\xA4" :string)
+           ("l" "\xA4" :string)
+           ("c" "\xA4" :string)
            ("M" "\xA4" :string)
+           ("L" "\xA4" :string)
+           ("v" "\xA4" :string)
+           ("J" "\xA4" :string)
            ("F" "\xA4" :string)
-           ("C" "\xA4" :string)
-           ("q" "\xA4" :string)
+           ("Y" "\xA4" :string)
+           ("k" "\xA4" :string)
+           ("e" "\xA4" :string)
+           ("d" "\xA4" :string)
            ("s" "\xA4" :string)
-           ("i" "\xA4" :string)
+           ("t" "\xA4" :string)
+           ("P" "\xA4" :string)
            ("O" "\xA4" :string)
-           ("g" "\xA4" :string)
-           ("E" "\xA4" :string)
+           ("b" "\xA4" :string)
+           ("Z" "\xA4" :string)
+           ("X" "\xA4" :string)
+           ("m" "\xA4" :string)
            ("z" "\xA4" :string)
-           ("T" "\xA4" :string)
-           ("U" "\xA4" :string)
-           ("R" "\xA4" :string)
-           ("V" "\xA4" :string)
-           ("h" "\xA4" :string)
-           ("b" "\xA4" :string)
-           ("w" "\xA4" :string)
-           ("L" "\xA4" :string)
-           ("W" "\xA4" :string)
+           ("H" "\xA4" :string)
            ("Q" "\xA4" :string)
-           ("r" "\xA4" :string)
-           ("A" "\xA4" :string)
-           ("J" "\xA4" :string)
-           ("m" "\xA4" :string)
-           ("c" "\xA4" :string)
-           ("d" "\xA4" :string)
-           ("Y" "\xA4" :string)
-           ("Z" "\xA4" :string)
+           ("B" "\xA4" :string)
+           ("G" "\xA4" :string)
            ("-" "\xA5" :string)
            ("'" "\xA6" :string)
            ("{" "\xA7" :string)

Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check	2021-04-27 13:41:25 UTC (rev 59002)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2021-04-27 15:33:46 UTC (rev 59003)
@@ -839,7 +839,7 @@
     xetex-devanagari xetex-itrans xetex-pstricks xetex-tibetan
     xetexfontinfo xetexko
     xetexref xevlna xfakebold xfor xgreek xhfill
-    xifthen xii xii-lat xindex xint xintsession xits
+    xifthen xii xii-lat xindex xindy-persian xint xintsession xits
     xkcdcolors xkeyval xlop xltabular xltxtra
     xml2pmx xmltex xmpincl xmuthesis xnewcommand
     xoptarg xpatch xpeek xpiano xpicture xpinyin xprintlen xpunctuate

Modified: trunk/Master/tlpkg/tlpsrc/collection-langarabic.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-langarabic.tlpsrc	2021-04-27 13:41:25 UTC (rev 59002)
+++ trunk/Master/tlpkg/tlpsrc/collection-langarabic.tlpsrc	2021-04-27 15:33:46 UTC (rev 59003)
@@ -31,3 +31,4 @@
 depend tram
 depend xepersian
 depend xepersian-hm
+depend xindy-persian



More information about the tex-live-commits mailing list.