#
#   Contents:   Map (external version) from Mac OS Farsi
#               character set to Unicode 2.1 and later.
#
#   Copyright:  (c) 1997-2002, 2005 by Apple Computer, Inc., all rights
#               reserved.
#
#   Contact:    charsets@apple.com
#
#   Changes:
#
#       c02  2005-Apr-05    Update header comments. Matches internal xml
#                           <c1.1> and Text Encoding Converter 2.0.
#      b3,c1 2002-Dec-19    Add comments about character display and
#                           direction overrides. Update URLs, notes.
#                           Matches internal utom<b3>.
#       b02  1999-Sep-22    Update contact e-mail address. Matches
#                           internal utom<b1>, ufrm<b1>, and Text
#                           Encoding Converter version 1.5.
#       n04  1998-Feb-05    Show required Unicode character
#                           directionality in a different way. Matches
#                           internal utom<n3>, ufrm<n9>, and Text
#                           Encoding Converter version 1.3. Update
#                           header comments; include information on
#                           loose mapping of digits, and changes to
#                           mapping for the TrueType variant.
#       n01  1997-Jul-17    First version. Matches internal utom<n1>,
#                           ufrm<n2>.
#
# Standard header:
# ----------------
#
#   Apple, the Apple logo, and Macintosh are trademarks of Apple
#   Computer, Inc., registered in the United States and other countries.
#   Unicode is a trademark of Unicode Inc. For the sake of brevity,
#   throughout this document, "Macintosh" can be used to refer to
#   Macintosh computers and "Unicode" can be used to refer to the
#   Unicode standard.
#
#   Apple Computer, Inc. ("Apple") makes no warranty or representation,
#   either express or implied, with respect to this document and the
#   included data, its quality, accuracy, or fitness for a particular
#   purpose. In no event will Apple be liable for direct, indirect,
#   special, incidental, or consequential damages resulting from any
#   defect or inaccuracy in this document or the included data.
#
#   These mapping tables and character lists are subject to change.
#   The latest tables should be available from the following:
#
#   <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
#
#   For general information about Mac OS encodings and these mapping
#   tables, see the file "README.TXT".
#
# Format:
# -------
#
#   Three tab-separated columns;
#   '#' begins a comment which continues to the end of the line.
#     Column #1 is the Mac OS Farsi code (in hex as 0xNN)
#     Column #2 is the corresponding Unicode (in hex as 0xNNNN),
#       possibly preceded by a tag indicating required directionality
#       (i.e. <LR>+0xNNNN or <RL>+0xNNNN).
#     Column #3 is a comment containing the Unicode name.
#
#   The entries are in Mac OS Farsi code order.
#
#   Control character mappings are not shown in this table, following
#   the conventions of the standard UTC mapping tables. However, the
#   Mac OS Farsi character set uses the standard control characters at
#   0x00-0x1F and 0x7F.
#
# Notes on Mac OS Farsi:
# ----------------------
#
#   This is a legacy Mac OS encoding; in the Mac OS X Carbon and Cocoa
#   environments, it is only supported via transcoding to and from
#   Unicode.
#
#   1. General
#
#   The Mac OS Farsi character set is based on the Mac OS Arabic
#   character set. The main difference is in the right-to-left digits
#   0xB0-0xB9: For Mac OS Arabic these correspond to right-left
#   versions of the Unicode ARABIC-INDIC DIGITs 0660-0669; for
#   Mac OS Farsi these correspond to right-left versions of the
#   Unicode EXTENDED ARABIC-INDIC DIGITs 06F0-06F9. The other
#   difference is in the nature of the font variants.
#
#   For more information, see the comments in the mapping table for
#   Mac OS Arabic.
#
#   Mac OS Farsi characters 0xEB-0xF2 are non-spacing/combining marks.
#
#   2. Directional characters and roundtrip fidelity
#
#   The Mac OS Arabic character set (on which Mac OS Farsi is based)
#   was developed in 1986-1987. At that time the bidirectional line
#   layout algorithm used in the Mac OS Arabic system was fairly simple;
#   it used only a few direction classes (instead of the 19 now used in
#   the Unicode bidirectional algorithm). In order to permit users to
#   handle some tricky layout problems, certain punctuation and symbol
#   characters were encoded twice, one with a left-right direction
#   attribute and the other with a right-left direction attribute. This
#   is the case in Mac OS Farsi too.
#
#   For example, plus sign is encoded at 0x2B with a left-right
#   attribute, and at 0xAB with a right-left attribute. However, there
#   is only one PLUS SIGN character in Unicode. This leads to some
#   interesting problems when mapping between Mac OS Farsi and Unicode;
#   see below.
#
#   A related problem is that even when a particular character is
#   encoded only once in Mac OS Farsi, it may have a different
#   direction attribute than the corresponding Unicode character.
#
#   For example, the Mac OS Farsi character at 0x93 is HORIZONTAL
#   ELLIPSIS with strong right-left direction. However, the Unicode
#   character HORIZONTAL ELLIPSIS has direction class neutral.
#
#   3. Behavior of ASCII-range numbers in WorldScript
#
#   Mac OS Farsi also has two sets of digit codes.

#   The digits at 0x30-0x39 may be displayed using either European
#   digit forms or Persian digit forms, depending on context. If there
#   is a "strong European" character such as a Latin letter on either
#   side of a sequence consisting of digits 0x30-0x39 and possibly comma
#   0x2C or period 0x2E, then the characters will be displayed using
#   European forms (This will happen even if there are neutral characters
#   between the digits and the strong European character). Otherwise, the
#   digits will be displayed using Persian forms, the comma will be
#   displayed as Arabic thousands separator, and the period as Arabic
#   decimal separator. In any case, 0x2C, 0x2E, and 0x30-0x39 are always
#   left-right.
#
#   The digits at 0xB0-0xB9 are always displayed using Persian digit
#   shapes, and moreover, these digits always have strong right-left
#   directionality. These are mainly intended for special layout
#   purposes such as part numbers, etc.
#
#   4. Font variants
#
#   The table in this file gives the Unicode mappings for the standard
#   Mac OS Farsi encoding. This encoding is supported by the Tehran font
#   (the system font for Farsi), and is the encoding supported by the
#   text processing utilities. However, the other Farsi fonts actually
#   implement a somewhat different encoding; this affects nine code
#   points including 0xAA and 0xC0 (which are also affected by font
#   variants in Mac OS Arabic). For these nine code points the standard
#   Mac OS Farsi encoding has the following mappings:
#       0x8B -> 0x06BA ARABIC LETTER NOON GHUNNA (Urdu)
#       0xA4 -> <RL>+0x0024 DOLLAR SIGN, right-left
#       0xAA -> <RL>+0x002A ASTERISK, right-left
#       0xC0 -> <RL>+0x274A EIGHT TEARDROP-SPOKED PROPELLER ASTERISK,
#               right-left
#       0xF4 -> 0x0679 ARABIC LETTER TTEH (Urdu)
#       0xF7 -> 0x06A4 ARABIC LETTER VEH (for transliteration)
#       0xF9 -> 0x0688 ARABIC LETTER DDAL (Urdu)
#       0xFA -> 0x0691 ARABIC LETTER RREH (Urdu)
#       0xFF -> 0x06D2 ARABIC LETTER YEH BARREE (Urdu)
#
#   The TrueType variant is used for the Farsi TrueType fonts: Ashfahan,
#   Amir, Kamran, Mashad, NadeemFarsi. It differs from the standard
#   variant in the following ways:
#       0x8B -> 0xF882 Arabic ligature "peace on him" (corporate char.)
#       0xA4 -> 0xFDFC RIAL SIGN (added in Unicode 3.2)
#       0xAA -> <RL>+0x00D7 MULTIPLICATION SIGN, right-left
#       0xC0 -> <RL>+0x002A ASTERISK, right-left
#       0xF4 -> <RL>+0x00B0 DEGREE SIGN, right-left
#       0xF7 -> 0xFDFA ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM
#       0xF9 -> <RL>+0x25CF BLACK CIRCLE, right-left
#       0xFA -> <RL>+0x25A0 BLACK SQUARE, right-left
#       0xFF -> <RL>+0x25B2 BLACK UP-POINTING TRIANGLE, right-left
#
# Unicode mapping issues and notes:
# ---------------------------------
#
#   1. Matching the direction of Mac OS Farsi characters
#
#   When Mac OS Farsi encodes a character twice but with different
#   direction attributes for the two code points - as in the case of
#   plus sign mentioned above - we need a way to map both Mac OS Farsi
#   code points to Unicode and back again without loss of information.
#   With the plus sign, for example, mapping one of the Mac OS Farsi
#   characters to a code in the Unicode corporate use zone is
#   undesirable, since both of the plus sign characters are likely to
#   be used in text that is interchanged.
#
#   The problem is solved with the use of direction override characters
#   and direction-dependent mappings. When mapping from Mac OS Farsi
#   to Unicode, we use direction overrides as necessary to force the
#   direction of the resulting Unicode characters.
#
#   The required direction is indicated by a direction tag in the
#   mappings. A tag of <LR> means the corresponding Unicode character
#   must have a strong left-right context, and a tag of <RL> indicates
#   a right-left context.
#
#   For example, the mapping of 0x2B is given as <LR>+0x002B; the
#   mapping of 0xAB is given as <RL>+0x002B. If we map an isolated
#   instance of 0x2B to Unicode, it should be mapped as follows (LRO
#   indicates LEFT-RIGHT OVERRIDE, PDF indicates POP DIRECTION
#   FORMATTING):
#
#     0x2B ->  0x202D (LRO) + 0x002B (PLUS SIGN) + 0x202C (PDF)
#
#   When mapping several characters in a row that require direction
#   forcing, the overrides need only be used at the beginning and end.
#   For example:
#
#     0x24 0x20 0x28 0x29 -> 0x202D 0x0024 0x0020 0x0028 0x0029 0x202C
#
#   If neutral characters that require direction forcing are already
#   between strong-direction characters with matching directionality,
#   then direction overrides need not be used. Direction overrides are
#   always needed to map the right-left digits at 0xB0-0xB9.
#
#   When mapping from Unicode to Mac OS Farsi, the Unicode
#   bidirectional algorithm should be used to determine resolved
#   direction of the Unicode characters. The mapping from Unicode to
#   Mac OS Farsi can then be disambiguated by the use of the resolved
#   direction:
#
#     Unicode 0x002B -> Mac OS Farsi 0x2B (if L) or 0xAB (if R)
#
#   However, this also means the direction override characters should
#   be discarded when mapping from Unicode to Mac OS Farsi (after
#   they have been used to determine resolved direction), since the
#   direction override information is carried by the code point itself.
#
#   Even when direction overrides are not needed for roundtrip
#   fidelity, they are sometimes used when mapping Mac OS Farsi
#   characters to Unicode in order to achieve similar text layout with
#   the resulting Unicode text. For example, the single Mac OS Farsi
#   ellipsis character has direction class right-left,and there is no
#   left-right version. However, the Unicode HORIZONTAL ELLIPSIS
#   character has direction class neutral (which means it may end up
#   with a resolved direction of left-right if surrounded by left-right
#   characters). When mapping the Mac OS Farsi ellipsis to Unicode, it
#   is surrounded with a direction override to help preserve proper
#   text layout. The resolved direction is not needed or used when
#   mapping the Unicode HORIZONTAL ELLIPSIS back to Mac OS Farsi.
#
#   2. Mapping the Mac OS Farsi digits
#
#   The main table below contains mappings that should be used when
#   strict round-trip fidelity is required. However, for numeric
#   values, the mappings in that table will produce Unicode characters
#   that may appear different than the Mac OS Farsi text displayed on
#   a Mac OS system using WorldScript. This is because WorldScript
#   uses context-dependent display for the 0x30-0x39 digits.
#
#   If roundtrip fidelity is not required, then the following
#   alternate mappings should be used when a sequence of 0x30-0x39
#   digits - possibly including 0x2C and 0x2E - occurs in an Arabic
#   context (that is, when the first "strong" character on either side
#   of the digit sequence is Arabic, or there is no strong character):
#
#     0x2C	0x066C	# ARABIC THOUSANDS SEPARATOR
#     0x2E	0x066B	# ARABIC DECIMAL SEPARATOR
#     0x30	0x06F0	# EXTENDED ARABIC-INDIC DIGIT ZERO
#     0x31	0x06F1	# EXTENDED ARABIC-INDIC DIGIT ONE
#     0x32	0x06F2	# EXTENDED ARABIC-INDIC DIGIT TWO
#     0x33	0x06F3	# EXTENDED ARABIC-INDIC DIGIT THREE
#     0x34	0x06F4	# EXTENDED ARABIC-INDIC DIGIT FOUR
#     0x35	0x06F5	# EXTENDED ARABIC-INDIC DIGIT FIVE
#     0x36	0x06F6	# EXTENDED ARABIC-INDIC DIGIT SIX
#     0x37	0x06F7	# EXTENDED ARABIC-INDIC DIGIT SEVEN
#     0x38	0x06F8	# EXTENDED ARABIC-INDIC DIGIT EIGHT
#     0x39	0x06F9	# EXTENDED ARABIC-INDIC DIGIT NINE
#
#   3. Use of corporate-zone Unicodes (mapping the TrueType variant)
#
#   The following corporate zone Unicode character is used in this
#   mapping:
#
#     0xF882  Arabic ligature "peace on him"
#
# Details of mapping changes in each version:
# -------------------------------------------
#
#   Changes from version b02 to version b03/c01:
#
#   - Update mapping of 0xA4 in TrueType variant to use new Unicode
#     character U+FDFC RIAL SIGN addded for Unicode 3.2
#
#   Changes from version n01 to version n04:
#
#   - Change mapping of 0xA4 in TrueType variant (just described in
#     header comment) from single corporate character to use
#     grouping hint
#
##################

0x20	<LR>+0x0020	# SPACE, left-right
0x21	<LR>+0x0021	# EXCLAMATION MARK, left-right
0x22	<LR>+0x0022	# QUOTATION MARK, left-right
0x23	<LR>+0x0023	# NUMBER SIGN, left-right
0x24	<LR>+0x0024	# DOLLAR SIGN, left-right
0x25	<LR>+0x0025	# PERCENT SIGN, left-right
0x26	<LR>+0x0026	# AMPERSAND, left-right
0x27	<LR>+0x0027	# APOSTROPHE, left-right
0x28	<LR>+0x0028	# LEFT PARENTHESIS, left-right
0x29	<LR>+0x0029	# RIGHT PARENTHESIS, left-right
0x2A	<LR>+0x002A	# ASTERISK, left-right
0x2B	<LR>+0x002B	# PLUS SIGN, left-right
0x2C	<LR>+0x002C	# COMMA, left-right; in Arabic-script context, displayed as 0x066C ARABIC THOUSANDS SEPARATOR
0x2D	<LR>+0x002D	# HYPHEN-MINUS, left-right
0x2E	<LR>+0x002E	# FULL STOP, left-right; in Arabic-script context, displayed as 0x066B ARABIC DECIMAL SEPARATOR
0x2F	<LR>+0x002F	# SOLIDUS, left-right
0x30	0x0030	# DIGIT ZERO;  in Arabic-script context, displayed as 0x06F0 EXTENDED ARABIC-INDIC DIGIT ZERO
0x31	0x0031	# DIGIT ONE;   in Arabic-script context, displayed as 0x06F1 EXTENDED ARABIC-INDIC DIGIT ONE
0x32	0x0032	# DIGIT TWO;   in Arabic-script context, displayed as 0x06F2 EXTENDED ARABIC-INDIC DIGIT TWO
0x33	0x0033	# DIGIT THREE; in Arabic-script context, displayed as 0x06F3 EXTENDED ARABIC-INDIC DIGIT THREE
0x34	0x0034	# DIGIT FOUR;  in Arabic-script context, displayed as 0x06F4 EXTENDED ARABIC-INDIC DIGIT FOUR
0x35	0x0035	# DIGIT FIVE;  in Arabic-script context, displayed as 0x06F5 EXTENDED ARABIC-INDIC DIGIT FIVE
0x36	0x0036	# DIGIT SIX;   in Arabic-script context, displayed as 0x06F6 EXTENDED ARABIC-INDIC DIGIT SIX
0x37	0x0037	# DIGIT SEVEN; in Arabic-script context, displayed as 0x06F7 EXTENDED ARABIC-INDIC DIGIT SEVEN
0x38	0x0038	# DIGIT EIGHT; in Arabic-script context, displayed as 0x06F8 EXTENDED ARABIC-INDIC DIGIT EIGHT
0x39	0x0039	# DIGIT NINE;  in Arabic-script context, displayed as 0x06F9 EXTENDED ARABIC-INDIC DIGIT NINE
0x3A	<LR>+0x003A	# COLON, left-right
0x3B	<LR>+0x003B	# SEMICOLON, left-right
0x3C	<LR>+0x003C	# LESS-THAN SIGN, left-right
0x3D	<LR>+0x003D	# EQUALS SIGN, left-right
0x3E	<LR>+0x003E	# GREATER-THAN SIGN, left-right
0x3F	<LR>+0x003F	# QUESTION MARK, left-right
0x40	0x0040	# COMMERCIAL AT
0x41	0x0041	# LATIN CAPITAL LETTER A
0x42	0x0042	# LATIN CAPITAL LETTER B
0x43	0x0043	# LATIN CAPITAL LETTER C
0x44	0x0044	# LATIN CAPITAL LETTER D
0x45	0x0045	# LATIN CAPITAL LETTER E
0x46	0x0046	# LATIN CAPITAL LETTER F
0x47	0x0047	# LATIN CAPITAL LETTER G
0x48	0x0048	# LATIN CAPITAL LETTER H
0x49	0x0049	# LATIN CAPITAL LETTER I
0x4A	0x004A	# LATIN CAPITAL LETTER J
0x4B	0x004B	# LATIN CAPITAL LETTER K
0x4C	0x004C	# LATIN CAPITAL LETTER L
0x4D	0x004D	# LATIN CAPITAL LETTER M
0x4E	0x004E	# LATIN CAPITAL LETTER N
0x4F	0x004F	# LATIN CAPITAL LETTER O
0x50	0x0050	# LATIN CAPITAL LETTER P
0x51	0x0051	# LATIN CAPITAL LETTER Q
0x52	0x0052	# LATIN CAPITAL LETTER R
0x53	0x0053	# LATIN CAPITAL LETTER S
0x54	0x0054	# LATIN CAPITAL LETTER T
0x55	0x0055	# LATIN CAPITAL LETTER U
0x56	0x0056	# LATIN CAPITAL LETTER V
0x57	0x0057	# LATIN CAPITAL LETTER W
0x58	0x0058	# LATIN CAPITAL LETTER X
0x59	0x0059	# LATIN CAPITAL LETTER Y
0x5A	0x005A	# LATIN CAPITAL LETTER Z
0x5B	<LR>+0x005B	# LEFT SQUARE BRACKET, left-right
0x5C	<LR>+0x005C	# REVERSE SOLIDUS, left-right
0x5D	<LR>+0x005D	# RIGHT SQUARE BRACKET, left-right
0x5E	<LR>+0x005E	# CIRCUMFLEX ACCENT, left-right
0x5F	<LR>+0x005F	# LOW LINE, left-right
0x60	0x0060	# GRAVE ACCENT
0x61	0x0061	# LATIN SMALL LETTER A
0x62	0x0062	# LATIN SMALL LETTER B
0x63	0x0063	# LATIN SMALL LETTER C
0x64	0x0064	# LATIN SMALL LETTER D
0x65	0x0065	# LATIN SMALL LETTER E
0x66	0x0066	# LATIN SMALL LETTER F
0x67	0x0067	# LATIN SMALL LETTER G
0x68	0x0068	# LATIN SMALL LETTER H
0x69	0x0069	# LATIN SMALL LETTER I
0x6A	0x006A	# LATIN SMALL LETTER J
0x6B	0x006B	# LATIN SMALL LETTER K
0x6C	0x006C	# LATIN SMALL LETTER L
0x6D	0x006D	# LATIN SMALL LETTER M
0x6E	0x006E	# LATIN SMALL LETTER N
0x6F	0x006F	# LATIN SMALL LETTER O
0x70	0x0070	# LATIN SMALL LETTER P
0x71	0x0071	# LATIN SMALL LETTER Q
0x72	0x0072	# LATIN SMALL LETTER R
0x73	0x0073	# LATIN SMALL LETTER S
0x74	0x0074	# LATIN SMALL LETTER T
0x75	0x0075	# LATIN SMALL LETTER U
0x76	0x0076	# LATIN SMALL LETTER V
0x77	0x0077	# LATIN SMALL LETTER W
0x78	0x0078	# LATIN SMALL LETTER X
0x79	0x0079	# LATIN SMALL LETTER Y
0x7A	0x007A	# LATIN SMALL LETTER Z
0x7B	<LR>+0x007B	# LEFT CURLY BRACKET, left-right
0x7C	<LR>+0x007C	# VERTICAL LINE, left-right
0x7D	<LR>+0x007D	# RIGHT CURLY BRACKET, left-right
0x7E	0x007E	# TILDE
#
0x80	0x00C4	# LATIN CAPITAL LETTER A WITH DIAERESIS
0x81	<RL>+0x00A0	# NO-BREAK SPACE, right-left
0x82	0x00C7	# LATIN CAPITAL LETTER C WITH CEDILLA
0x83	0x00C9	# LATIN CAPITAL LETTER E WITH ACUTE
0x84	0x00D1	# LATIN CAPITAL LETTER N WITH TILDE
0x85	0x00D6	# LATIN CAPITAL LETTER O WITH DIAERESIS
0x86	0x00DC	# LATIN CAPITAL LETTER U WITH DIAERESIS
0x87	0x00E1	# LATIN SMALL LETTER A WITH ACUTE
0x88	0x00E0	# LATIN SMALL LETTER A WITH GRAVE
0x89	0x00E2	# LATIN SMALL LETTER A WITH CIRCUMFLEX
0x8A	0x00E4	# LATIN SMALL LETTER A WITH DIAERESIS
0x8B	0x06BA	# ARABIC LETTER NOON GHUNNA
0x8C	<RL>+0x00AB	# LEFT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
0x8D	0x00E7	# LATIN SMALL LETTER C WITH CEDILLA
0x8E	0x00E9	# LATIN SMALL LETTER E WITH ACUTE
0x8F	0x00E8	# LATIN SMALL LETTER E WITH GRAVE
0x90	0x00EA	# LATIN SMALL LETTER E WITH CIRCUMFLEX
0x91	0x00EB	# LATIN SMALL LETTER E WITH DIAERESIS
0x92	0x00ED	# LATIN SMALL LETTER I WITH ACUTE
0x93	<RL>+0x2026	# HORIZONTAL ELLIPSIS, right-left
0x94	0x00EE	# LATIN SMALL LETTER I WITH CIRCUMFLEX
0x95	0x00EF	# LATIN SMALL LETTER I WITH DIAERESIS
0x96	0x00F1	# LATIN SMALL LETTER N WITH TILDE
0x97	0x00F3	# LATIN SMALL LETTER O WITH ACUTE
0x98	<RL>+0x00BB	# RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
0x99	0x00F4	# LATIN SMALL LETTER O WITH CIRCUMFLEX
0x9A	0x00F6	# LATIN SMALL LETTER O WITH DIAERESIS
0x9B	<RL>+0x00F7	# DIVISION SIGN, right-left
0x9C	0x00FA	# LATIN SMALL LETTER U WITH ACUTE
0x9D	0x00F9	# LATIN SMALL LETTER U WITH GRAVE
0x9E	0x00FB	# LATIN SMALL LETTER U WITH CIRCUMFLEX
0x9F	0x00FC	# LATIN SMALL LETTER U WITH DIAERESIS
0xA0	<RL>+0x0020	# SPACE, right-left
0xA1	<RL>+0x0021	# EXCLAMATION MARK, right-left
0xA2	<RL>+0x0022	# QUOTATION MARK, right-left
0xA3	<RL>+0x0023	# NUMBER SIGN, right-left
0xA4	<RL>+0x0024	# DOLLAR SIGN, right-left
0xA5	0x066A	# ARABIC PERCENT SIGN
0xA6	<RL>+0x0026	# AMPERSAND, right-left
0xA7	<RL>+0x0027	# APOSTROPHE, right-left
0xA8	<RL>+0x0028	# LEFT PARENTHESIS, right-left
0xA9	<RL>+0x0029	# RIGHT PARENTHESIS, right-left
0xAA	<RL>+0x002A	# ASTERISK, right-left
0xAB	<RL>+0x002B	# PLUS SIGN, right-left
0xAC	0x060C	# ARABIC COMMA
0xAD	<RL>+0x002D	# HYPHEN-MINUS, right-left
0xAE	<RL>+0x002E	# FULL STOP, right-left
0xAF	<RL>+0x002F	# SOLIDUS, right-left
0xB0	<RL>+0x06F0	# EXTENDED ARABIC-INDIC DIGIT ZERO, right-left (need override)
0xB1	<RL>+0x06F1	# EXTENDED ARABIC-INDIC DIGIT ONE, right-left (need override)
0xB2	<RL>+0x06F2	# EXTENDED ARABIC-INDIC DIGIT TWO, right-left (need override)
0xB3	<RL>+0x06F3	# EXTENDED ARABIC-INDIC DIGIT THREE, right-left (need override)
0xB4	<RL>+0x06F4	# EXTENDED ARABIC-INDIC DIGIT FOUR, right-left (need override)
0xB5	<RL>+0x06F5	# EXTENDED ARABIC-INDIC DIGIT FIVE, right-left (need override)
0xB6	<RL>+0x06F6	# EXTENDED ARABIC-INDIC DIGIT SIX, right-left (need override)
0xB7	<RL>+0x06F7	# EXTENDED ARABIC-INDIC DIGIT SEVEN, right-left (need override)
0xB8	<RL>+0x06F8	# EXTENDED ARABIC-INDIC DIGIT EIGHT, right-left (need override)
0xB9	<RL>+0x06F9	# EXTENDED ARABIC-INDIC DIGIT NINE, right-left (need override)
0xBA	<RL>+0x003A	# COLON, right-left
0xBB	0x061B	# ARABIC SEMICOLON
0xBC	<RL>+0x003C	# LESS-THAN SIGN, right-left
0xBD	<RL>+0x003D	# EQUALS SIGN, right-left
0xBE	<RL>+0x003E	# GREATER-THAN SIGN, right-left
0xBF	0x061F	# ARABIC QUESTION MARK
0xC0	<RL>+0x274A	# EIGHT TEARDROP-SPOKED PROPELLER ASTERISK, right-left
0xC1	0x0621	# ARABIC LETTER HAMZA
0xC2	0x0622	# ARABIC LETTER ALEF WITH MADDA ABOVE
0xC3	0x0623	# ARABIC LETTER ALEF WITH HAMZA ABOVE
0xC4	0x0624	# ARABIC LETTER WAW WITH HAMZA ABOVE
0xC5	0x0625	# ARABIC LETTER ALEF WITH HAMZA BELOW
0xC6	0x0626	# ARABIC LETTER YEH WITH HAMZA ABOVE
0xC7	0x0627	# ARABIC LETTER ALEF
0xC8	0x0628	# ARABIC LETTER BEH
0xC9	0x0629	# ARABIC LETTER TEH MARBUTA
0xCA	0x062A	# ARABIC LETTER TEH
0xCB	0x062B	# ARABIC LETTER THEH
0xCC	0x062C	# ARABIC LETTER JEEM
0xCD	0x062D	# ARABIC LETTER HAH
0xCE	0x062E	# ARABIC LETTER KHAH
0xCF	0x062F	# ARABIC LETTER DAL
0xD0	0x0630	# ARABIC LETTER THAL
0xD1	0x0631	# ARABIC LETTER REH
0xD2	0x0632	# ARABIC LETTER ZAIN
0xD3	0x0633	# ARABIC LETTER SEEN
0xD4	0x0634	# ARABIC LETTER SHEEN
0xD5	0x0635	# ARABIC LETTER SAD
0xD6	0x0636	# ARABIC LETTER DAD
0xD7	0x0637	# ARABIC LETTER TAH
0xD8	0x0638	# ARABIC LETTER ZAH
0xD9	0x0639	# ARABIC LETTER AIN
0xDA	0x063A	# ARABIC LETTER GHAIN
0xDB	<RL>+0x005B	# LEFT SQUARE BRACKET, right-left
0xDC	<RL>+0x005C	# REVERSE SOLIDUS, right-left
0xDD	<RL>+0x005D	# RIGHT SQUARE BRACKET, right-left
0xDE	<RL>+0x005E	# CIRCUMFLEX ACCENT, right-left
0xDF	<RL>+0x005F	# LOW LINE, right-left
0xE0	0x0640	# ARABIC TATWEEL
0xE1	0x0641	# ARABIC LETTER FEH
0xE2	0x0642	# ARABIC LETTER QAF
0xE3	0x0643	# ARABIC LETTER KAF
0xE4	0x0644	# ARABIC LETTER LAM
0xE5	0x0645	# ARABIC LETTER MEEM
0xE6	0x0646	# ARABIC LETTER NOON
0xE7	0x0647	# ARABIC LETTER HEH
0xE8	0x0648	# ARABIC LETTER WAW
0xE9	0x0649	# ARABIC LETTER ALEF MAKSURA
0xEA	0x064A	# ARABIC LETTER YEH
0xEB	0x064B	# ARABIC FATHATAN
0xEC	0x064C	# ARABIC DAMMATAN
0xED	0x064D	# ARABIC KASRATAN
0xEE	0x064E	# ARABIC FATHA
0xEF	0x064F	# ARABIC DAMMA
0xF0	0x0650	# ARABIC KASRA
0xF1	0x0651	# ARABIC SHADDA
0xF2	0x0652	# ARABIC SUKUN
0xF3	0x067E	# ARABIC LETTER PEH
0xF4	0x0679	# ARABIC LETTER TTEH
0xF5	0x0686	# ARABIC LETTER TCHEH
0xF6	0x06D5	# ARABIC LETTER AE
0xF7	0x06A4	# ARABIC LETTER VEH
0xF8	0x06AF	# ARABIC LETTER GAF
0xF9	0x0688	# ARABIC LETTER DDAL
0xFA	0x0691	# ARABIC LETTER RREH
0xFB	<RL>+0x007B	# LEFT CURLY BRACKET, right-left
0xFC	<RL>+0x007C	# VERTICAL LINE, right-left
0xFD	<RL>+0x007D	# RIGHT CURLY BRACKET, right-left
0xFE	0x0698	# ARABIC LETTER JEH
0xFF	0x06D2	# ARABIC LETTER YEH BARREE