From 85bafe6f3d0e4647af5e74178b46abdf44d3b981 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Fri, 11 Dec 2015 12:45:19 +0000 Subject: [PATCH] Automate LC_CTYPE generation for tr_TR, update to Unicode 8.0.0 (bug 18491). This patch makes the automation of Unicode LC_CTYPE generation also support generating the modified LC_CTYPE used for Turkish (where case conversions of 'i' and 'I' differ from ASCII conventions), so allowing that to be more readily kept in sync for future Unicode updates. The patch includes the locale update generated by the scripts. Tested for x86_64. [BZ #18491] * unicode-gen/unicode_utils.py (to_upper_turkish): New function. (to_lower_turkish): Likewise. * unicode-gen/gen_unicode_ctype.py (output_tables): Support producing output with Turkish case conversions. (--turkish): New command-line option. * unicode-gen/Makefile (GENERATED): Add tr_TR. (tr_TR): New rule. * locales/tr_TR: Regenerate LC_CTYPE. --- localedata/ChangeLog | 12 + localedata/locales/tr_TR | 2816 ++++++++++++------- localedata/unicode-gen/Makefile | 10 +- localedata/unicode-gen/gen_unicode_ctype.py | 18 +- localedata/unicode-gen/unicode_utils.py | 14 + 5 files changed, 1838 insertions(+), 1032 deletions(-) diff --git a/localedata/ChangeLog b/localedata/ChangeLog index 73d9e10a5c..8c5a9d1b7c 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,3 +1,15 @@ +2015-12-11 Joseph Myers + + [BZ #18491] + * unicode-gen/unicode_utils.py (to_upper_turkish): New function. + (to_lower_turkish): Likewise. + * unicode-gen/gen_unicode_ctype.py (output_tables): Support + producing output with Turkish case conversions. + (--turkish): New command-line option. + * unicode-gen/Makefile (GENERATED): Add tr_TR. + (tr_TR): New rule. + * locales/tr_TR: Regenerate LC_CTYPE. + 2015-12-09 Mike FABIAN [BZ 18568] diff --git a/localedata/locales/tr_TR b/localedata/locales/tr_TR index 34f6021d16..00a18a154b 100644 --- a/localedata/locales/tr_TR +++ b/localedata/locales/tr_TR @@ -39,7 +39,7 @@ fax "" language "Turkish" territory "Turkey" revision "1.0" -date "2000-06-29" +date "2015-12-10" audience "" application "" abbreviation "" @@ -2125,362 +2125,401 @@ order_end END LC_COLLATE LC_CTYPE -% This is a copy of the "i18n" LC_CTYPE with the following modifications: -% - Map toupper: (,) changed to (,). -% - Map tolower: (,) changed to (,). - -% BEGIN modified i18n LC_CTYPE +% The following is the 14652 i18n fdcc-set LC_CTYPE category. +% It covers Unicode version 8.0.0. +% The character classes and mapping tables were automatically +% generated using the gen_unicode_ctype.py program. % The "upper" class reflects the uppercase characters of class "alpha" upper / -% TABLE 1 BASIC LATIN/ - ..;/ -% TABLE 2 LATIN-1 SUPPLEMENT/ - ..;..;/ -% TABLE 3 LATIN EXTENDED-A/ - ..(2)..;/ - ..(2)..;/ - ..(2)..;/ - ..(2)..;/ -% TABLE 4 LATIN EXTENDED-B/ - ;..(2)..;;/ - ..;..;;;/ - ..;;;;/ - ..(2)..;/ - ;;;;;;..;/ - ;;;;;;;;/ - ;;/ - ..(2)..;/ - ..(2)..;/ - ;;;..;..(2)..;/ -% TABLE 5 LATIN EXTENDED-B/ - ..(2)..;/ -% TABLE 6 IPA EXTENSIONS/ -% TABLE 9 BASIC GREEK/ - ;..;;;;..;/ - ..;..(2)..;/ -% TABLE 10 GREEK SYMBOLS AND COPTIC/ - ..(2)..;;/ -% TABLE 11 CYRILLIC/ - ..;..(2)..;/ -% TABLE 12 CYRILLIC/ - ;..(2)..;..(2)..;/ - ..(2)..;;..(2)..;/ -% TABLE 13 ARMENIAN/ - ..;/ -% TABLE 28 GEORGIAN/ -% is not addressed as the letters does not have a uppercase/lowercase relation/ -% TABLE 31 LATIN EXTENDED ADDITIONAL/ - ..(2)..;/ -% TABLE 32 LATIN EXTENDED ADDITIONAL/ - ..(2)..;/ - ..(2)..;/ -% TABLE 33 GREEK EXTENDED/ + ..;..;..;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;..;;;/ + ..;;..;..;/ + ..;..;..;..;/ + ..;;;..;;;/ + ..;..;;..;;/ + ..;..;..;;;/ + ;;;;;;;;;/ + ;;;;;;..;;/ + ..;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;..;..;/ + ;..;;;;;;;/ + ;;;..;;..;/ + ..;..;;..;;/ + ;;;;;;;;;/ + ;;;;..;..;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;/ + ..;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;..;..;;;/ + ..;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ ..;..;..;..;/ - ..;..(2)..;..;/ -% TABLE 34 GREEK EXTENDED/ + ..;;;;;..;/ ..;..;..;..;/ ..;..;..;..;/ -% LETTERLIKE SYMBOLS/ - ;..;/ -% NUMBER FORMS/ - ..;/ -% ENCLOSED ALPHANUMERICS/ - ..;/ -% HALFWIDTH AND FULLWIDTH FORMS/ - ..;/ -% DESERET/ - .. + ;;..;..;;/ + ..;;;;..;/ + ..;..;;..;;/ + ..;..;;..;;/ + ;;..;;;..;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;..;;;;;/ + ;;;;;;;;;/ + ;;;;;..;/ + ..;;..;..;/ + ..;..;/ + ..;..;/ + ..;;..;/ + ;..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;;..;/ + ..;.. % The "lower" class reflects the lowercase characters of class "alpha" lower / -% TABLE 1 BASIC LATIN/ - ..;/ -% TABLE 2 LATIN-1 SUPPLEMENT/ - ;..;..;/ -% TABLE 3 LATIN EXTENDED-A/ - ..(2)..;..(2)..;/ - ..(2)..;..(2)..;;/ -% TABLE 4 LATIN EXTENDED-B/ - ;;;;;;/ - ;;;;;;;/ - ;;;;;;;;/ - ;;;..(2)..;/ - ..(2)..;;;;..(2)..;/ -% TABLE 5 LATIN EXTENDED-B/ - ..(2)..;..(2)..;/ -% TABLE 6 IPA EXTENSIONS/ - ;;;;;;;;;/ - ;;;;;;;;;/ - ;/ -% COMBINING DIACRITICAL MARKS/ - ;/ -% TABLE 9 BASIC GREEK/ - ..;..;/ -% TABLE 10 GREEK SYMBOLS AND COPTIC/ - ;;;;..(2)..;..;/ - ;/ -% TABLE 11 CYRILLIC/ - ..;..(2)..;/ -% TABLE 12 CYRILLIC/ - ;..(2)..;..(2)..;/ - ..(2)..;;..(2)..;/ -% TABLE 13 ARMENIAN/ - ..;/ -% TABLE 28 GEORGIAN/ -% is not addressed as the letters does not have a uppercase/lowercase relation/ -% TABLE 31 and 32 LATIN EXTENDED ADDITIONAL/ - ..(2)..;;..(2)..;/ -% TABLE 33 GREEK EXTENDED/ - ..;..;..;..;/ - ..;..(2)..;..;..;/ -% TABLE 34 GREEK EXTENDED/ - ..;..;..;;;/ - ;;;;;;;;/ - ;/ -% TABLE 35 SUPERSCRIPTS AND SUBSCRIPTS, CURRENCY SYMBOLS/ -% NUMBER FORMS/ - ..;/ -% ENCLOSED ALPHANUMERICS/ - ..;/ -% HALFWIDTH AND FULLWIDTH FORMS/ - ..;/ -% DESERET/ - .. + ..;;;;..;/ + ..;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;..;;;;;;/ + ;;..;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;..;;;;/ + ..;;;..;;;/ + ;;;..;;;;;/ + ..;..;..;..;/ + ..;;;;;;;;/ + ..;;;;;;;;/ + ;..;..;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ..;;..;;;;/ + ;;..;..;..;/ + ..;;;;;..;/ + ;..;..;..;;/ + ;;;;;;;;;/ + ;..;;;..;/ + ..;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;..;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;..;..;/ + ..;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;..;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;;..;..;/ + ..;..;..;..;/ + ..;;;..;;/ + ..;;;;;..;/ + ..;;..;;..;/ + ..;;..;;;;/ + ;..;..;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;..;;;;..;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;..;;;;;;/ + ;..;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;;;;..;;/ + ;;;;;;;;;/ + ..;;;;;;;;/ + ;;;;;..;/ + ..;..;..;..;/ + ..;..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..; % The "alpha" class of the "i18n" FDCC-set is reflecting % the recommendations in TR 10176 annex A alpha / -% TABLE 1 BASIC LATIN/ - ..;..;/ -% TABLE 2 LATIN-1 SUPPLEMENT/ - ;;;..;..;/ - ..;/ -% TABLE 3 LATIN EXTENDED-A/ - ..;/ -% TABLE 4 and 5 LATIN EXTENDED-B/ - ..;..;/ -% TABLE 6 IPA EXTENSIONS/ - ..;/ -% SPACING MODIFIER LETTERS/ - ..;..;;;..;/ - ;/ -% COMBINING DIACRITICAL MARKS/ - ;/ -% TABLE 9 BASIC GREEK/ - ;;..;;..;/ - ..;/ -% TABLE 10 GREEK SYMBOLS AND COPTIC/ - ..;/ -% TABLE 11 and 12 CYRILLIC/ - ..;..;/ - ..;..;..;/ -% TABLE 13 ARMENIAN/ - ..;;..;/ -% TABLE 14 HEBREW/ - ..;..;/ -% TABLE 15 and 16 ARABIC/ - ..;..;..;..;/ - ;..;..;/ -% SYRIAC/ - ;..;/ -% THAANA/ - ..;;/ -% TABLE 17 DEVANAGARI/ - ..;;;..;/ -% TABLE 18 BENGALI/ - ..;;;..;..;/ - ;..;;;..;/ - ..;/ -% TABLE 19 GURMUKHI/ - ..;;;..;..;/ - ;;;;;;..;/ - ;..;/ -% TABLE 20 GUJARATI/ - ..;;..;..;/ - ..;;;..;;;/ - ;/ -% TABLE 21 ORIYA/ - ..;;;..;..;/ - ;;..;;;;/ - ..;/ -% TABLE 22 TAMIL/ - ;..;..;..;;/ - ;;;;;;..;/ - ..;..;/ -% TABLE 23 TELUGU/ - ..;..;..;..;/ - ..;..;/ -% TABLE 24 KANNADA/ - ..;..;..;..;/ - ..;;..;/ -% TABLE 25 MALAYALAM/ - ..;..;..;..;/ - ..;/ -% SINHALA/ - ..;..;..;;/ - ..;/ -% TABLE 26 THAI/ - ..;..;..;..;/ -% TABLE 27 LAO/ - ..;;..;;;/ - ..;..;..;;;/ - ..;..;..;;/ - ..;;..;/ -% TIBETAN/ - ;..;..;..;/ -% MYANMAR/ - ..;..;;;..;/ -% TABLE 28 GEORGIAN/ - ..;..;/ -% HANGUL JAMO/ - ..;..;..;/ -% ETHIOPIC/ - ..;..;;..;/ - ..;;..;..;;/ - ..;..;;..;/ - ..;;..;..;/ - ..;..;..;;/ - ..;..;..;..;/ -% CHEROKEE/ - ..;/ -% UNIFIED CANADIAN ABORIGINAL SYLLABICS/ - ..;..;/ -% OGHAM/ - ..;/ -% RUNIC/ - ..;..;/ -% TAGALOG/ - ..;..;/ -% HANUNOO/ - ..;/ -% BUHID/ - ..;/ -% TAGBANWA/ - ..;..;/ -% KHMER/ - ..;;;/ -% MONGOLIAN/ - ..;..;/ -% TABLE 31 and 32 LATIN EXTENDED ADDITIONAL/ - ..;..;/ -% TABLE 33 and 34 GREEK EXTENDED/ - ..;..;..;..;/ + ..;..;;;;/ + ..;..;..;..;/ + ..;;;;..;/ + ..;..;;;..;/ + ;..;..;..;/ + ..;..;;..;/ + ..;;..;..;;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;;..;..;/ + ..;..;;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;;..;/ + ..;..;..;;;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;;..;;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;;/ + ..;..;;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;;..;..;/ + ..;..;..;;/ + ..;..;..;..;/ + ..;..;..;;;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;;;..;/ + ..;..;..;..;/ + ..;..;;..;/ + ..;;..;..;/ + ..;..;..;;/ + ..;..;;..;;/ + ;..;..;..;;/ + ;..;..;..;/ + ..;;;..;..;/ + ;..;..;..;/ + ..;..;..;..;/ + ;..;..;..;/ + ..;;..;..;/ + ..;;;..;..;/ + ..;..;;..;/ + ..;..;..;..;/ + ..;;..;..;/ + ..;..;..;;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;;;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ ..;;;;..;/ ..;..;;..;/ ..;..;..;..;/ - ..;..;/ -% TABLE 35 SUPERSCRIPTS AND SUBSCRIPTS, CURRENCY SYMBOLS/ - ;;/ -% LETTERLIKE SYMBOLS/ + ..;..;;;..;/ ;;..;;..;;/ - ;..;..;..;/ - ..;..;/ -% NUMBER FORMS/ - ..;/ -% ENCLOSED ALPHANUMERICS/ - ..;/ -% CJK SYMBOLS AND PUNCTUATION/ + ;;..;..;..;/ + ..;;..;..;/ + ..;..;..;..;/ + ..;..;;;..;/ + ;..;..;..;/ + ..;..;..;..;/ + ..;..;..;;/ ..;..;..;..;/ -% TABLE 50 HIRAGANA/ - ..;..;/ -% TABLE 51 KATAKANA/ - ..;..;/ -% TABLE 52 BOPOMOFO/ - ..;/ -% HANGUL COMPATIBILITY JAMO/ - ..;/ -% BOPOMOFO EXTENDED/ - ..;/ -% KATAKANA PHONETIC EXTENSIONS/ - ..;/ -% CJK UNIFIED IDEOGRAPHS EXTENSION/ - ..;/ -% CJK UNIFIED IDEOGRAPHS/ - ..;/ -% YI SYLLABLES/ - ..;/ -% HANGUL SYLLABLES/ - ..;/ -% CJK COMPATIBILITY IDEOGRAPHS/ - ..;..;/ -% ALPHABETIC PRESENTATION FORMS/ - ..;..;;..;/ - ..;..;;;;;/ - ;..;/ -% ARABIC PRESENTATION FORMS/ - ..;..;..;..;/ - ..;/ -% ARABIC PRESENTATION FORMS/ - ..;..;/ -% HALFWIDTH AND FULLWIDTH FORMS/ - ..;..;..;..;/ - ..;..;..;/ -% OLD ITALIC/ - ..;/ -% GOTHIC/ - ..;/ -% DESERET/ - ..;..;/ -% MATHEMATICAL ALPHANUMERIC SYMBOLS/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;;;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;;..;;/ + ;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;;..;/ + ..;;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;;/ + ..;..;/ + ..;;..;/ + ..;;..;/ + ;..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;;;/ + ..;..;/ + ..;;..;/ + ..;..;/ + ..;..;;/ + ;..;..;/ + ..;..;/ + ..;..;/ + ..;;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;;/ ..;..;/ ..;;..;/ ..;..;;/ - ..;..;/ - ..;..;/ - ..;..;/ - ..;..;/ - ..;;..;/ - ..;..;/ - ..;..;/ - ..;..;/ - ..;..;/ - ..;..;/ - ..;..;/ - ..;/ -% CJK UNIFIED IDEOGRAPHS EXTENSION/ - ..;/ -% CJK COMPATIBILITY IDEOGRAPHS SUPPLEMENT/ - ..;/ -% The non-ASCII number characters are included here because ISO C 99 / -% forbids us to classify them as digits; however, they behave more like / -% alphanumeric than like punctuation. / -% TABLE 15 and 16 ARABIC/ - ..;..;/ -% TABLE 17 DEVANAGARI/ - ..;/ -% TABLE 18 BENGALI/ - ..;/ -% TABLE 19 GURMUKHI/ - ..;/ -% TABLE 20 GUJARATI/ - ..;/ -% TABLE 21 ORIYA/ - ..;/ -% TABLE 22 TAMIL/ - <0>;..;/ -% TABLE 23 TELUGU/ - ..;/ -% TABLE 24 KANNADA/ - ..;/ -% TABLE 25 MALAYALAM/ - ..;/ -% TABLE 26 THAI/ - ..;/ -% TABLE 27 LAO/ - ..;/ -% TIBETAN/ - ..;/ -% MYANMAR/ - ..;/ -% ETHIOPIC/ - <0>;..;/ -% KHMER/ - ..;/ -% MONGOLIAN/ - ..;/ -% HALFWIDTH AND FULLWIDTH FORMS/ - .. + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;;/ + ;..;..;/ + ;;;;;;/ + ..;..;;/ + ;;;;;/ + ..;;..;/ + ..;..;/ + ..;;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;.. % The "digit" class must only contain the BASIC LATIN digits, says ISO C 99 % (sections 7.25.2.1.5 and 5.2.1). @@ -2489,300 +2528,537 @@ digit / % The "outdigit" information is by default "0" to "9". We don't have to % provide it here since localedef will fill in the bits and it would -% prevent locales copy-ing this file define their own values. -% outdigit .. +% prevent locales copying this file define their own values. +% outdigit / +% .. space / -% ISO/IEC 6429/ - ..;/ -% TABLE 1 BASIC LATIN/ - ;/ -% OGHAM/ - ;/ -% TABLE 35 GENERAL PUNCTUATION/ - ..;..;;;;/ -% TABLE 50 CJK SYMBOLS AND PUNCTUATION, HIRAGANA/ - + ..;;;..;..;/ + ..;; cntrl / - ..;..;/ -% Treat the Line/Paragraph Separators as control characters, like Line Feed./ - ; + ..;..;.. punct / ..;..;..;..;/ ..;..;..;..;/ - ;;..;..;..;/ - ..;..;..;..;/ - ..;;..;;;..;/ - ..;..;..;..;/ - ..;..;..;;;/ - ;..;..;;;/ - ..;..;..;..;/ - ;;..;..;..;/ - ;..;..;..;;/ - ..;;..;..;/ - ..;;..;..;;/ - ;..;..;..;/ - ..;..;;..;/ - ..;..;..;;/ - ..;..;..;..;/ - ;;..;..;/ - ..;;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;;..;;..;/ - ;..;..;;;;/ - ;..;;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ;..;..;..;/ - ..;;..;..;/ - ..;..;..;/ - ..;..;..;..;/ - ..;..;/ - ..;;;..;..;/ - ..;..;..;;/ - ..;..;;..;..;/ - ..;..;..;..;/ - ..;..;..;;/ - ..;..;;;;;/ - ;..;..;..;/ - ..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;;..;;/ - ..;..;..;..;/ - ..;..;..;..;/ + ;;..;..;..;/ + ;..;..;;;/ + ..;;;..;..;/ + ..;..;..;;;/ + ;;..;..;..;/ + ..;;..;;..;/ + ..;..;..;;/ + ..;..;..;..;/ + ;..;..;;..;/ + ;;..;..;;;/ + ;..;;;;;/ + ..;;;;..;;/ + ..;;..;;;;/ + ..;;;;;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ;..;..;..;/ + ..;..;;..;/ + ..;;..;..;/ + ..;;..;..;/ + ..;;..;..;/ + ..;..;;..;/ + ..;..;;..;;/ + ..;..;;..;;/ + ..;..;..;;;/ + ..;..;;..;/ + ..;..;..;..;/ + ..;..;;;..;/ + ..;;..;;..;/ + ..;..;..;..;/ + ;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ;..;..;;;;/ + ;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;;;/ + ..;..;..;..;/ ..;..;..;..;/ ..;..;..;..;/ - ;;..;..;..;/ - ..;..;..;/ - ..;..;..;..;/ - ..;;;..;;/ - ..;..;/ - ..;..;..;..;/ + ;;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ;;;..;..;/ + ..;;..;..;/ + ..;;..;;;;/ + ..;..;;..;/ + ..;..;;;..;/ + ..;;;..;..;/ + ;..;..;..;/ + ..;..;..;..;/ ;..;..;..;/ - ..;..;..;/ - ..;..;..;/ - ..;..;;/ - ;;;;;/ - ;;;;;/ - ..;..;/ - .. + ..;..;..;..;/ + ..;..;/ + ..;..;/ + ..;;..;/ + ..;..;;/ + ;;..;/ + ..;..;/ + ..;..;;/ + ;..;..;/ + ..;..;/ + ..;..;/ + ..;..;;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;;/ + ..;;..;/ + ..;..;/ + ..;;..;/ + ;;..;/ + ..;..;;/ + ..;;..;/ + ..;;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;;/ + ;;;;;;/ + ;;;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;;;/ + ..;..;/ + ..;.. graph / - ..;..;..;..;/ - ..;..;..;..;/ - ;;..;;..;/ - ..;..;..;..;/ - ..;..;..;/ - ..;..;/ - ..;..;..;..;/ - ..;..;..;;;/ - ;..;..;..;/ - ..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ;..;;..;..;/ - ..;;..;..;/ - ..;;..;..;/ - ..;..;..;..;/ - ..;;..;..;/ - ..;..;;..;/ - ..;..;;..;/ - ..;..;..;..;/ - ..;..;..;;;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ;..;..;..;/ - ..;..;..;..;/ - ..;;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ;..;..;..;/ + ..;..;..;..;/ + ;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;;/ + ..;..;..;..;/ + ..;..;;..;/ + ..;..;..;;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;;/ + ..;..;..;;/ + ..;;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;;..;..;;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;;/ + ..;..;..;..;/ + ..;..;..;;;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ;..;..;..;/ + ..;..;..;..;/ + ..;..;..;;/ + ..;..;..;..;/ ..;..;..;;/ ..;;..;;..;/ - ..;..;..;..;/ - ;..;;;..;/ - ..;..;;;..;/ - ..;..;..;;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;;..;..;/ - ..;..;..;..;/ - ..;..;;..;/ - ..;..;..;..;/ - ;..;..;;..;/ - ..;;..;..;;/ + ..;..;..;..;/ + ..;;..;;;/ + ..;..;..;;;/ + ..;..;..;..;/ + ;..;..;..;/ + ..;..;..;..;/ + ..;..;..;;;/ + ..;..;..;;/ + ..;..;..;..;/ ..;..;;..;/ - ..;..;..;..;/ - ;..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;..;;;/ - ;..;..;..;/ - ..;..;..;..;/ - ..;;..;..;;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;;..;;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;..;/ - ..;..;..;/ - ..;..;..;..;/ - ..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;/ - ..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;;;;..;/ + ..;..;..;..;/ + ..;..;..;;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;;;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ ..;;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;;..;/ - ..;..;..;..;/ - ..;..;..;/ - ..;..;/ - ..;..;/ - ..;..;/ - ..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;;..;/ + ..;..;/ + ..;;..;/ + ..;;..;/ + ..;..;/ + ..;..;/ + ..;..;;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;;;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ ..;..;/ ..;;..;/ ..;..;;/ - ..;..;/ - ..;..;/ - ..;..;/ - ..;..;/ - ..;;..;/ - ..;..;/ - ..;..;/ - ..;;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;;;/ + ..;..;;/ + ;;;;;/ + ..;..;;/ + ;;;;;/ + ..;;..;/ + ..;..;/ + ..;;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;;..;/ + ..;..;/ + ..;..;;/ + ..;..;/ ..;.. print / - ..;..;..;..;/ - ..;..;..;..;/ - ;;..;;..;/ - ..;..;..;..;/ - ..;..;..;/ - ..;..;/ - ..;..;..;..;/ - ..;..;..;;;/ - ;..;..;..;/ - ..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ;..;;..;..;/ - ..;;..;..;/ - ..;;..;..;/ - ..;..;..;..;/ - ..;;..;..;/ - ..;..;;..;/ - ..;..;;..;/ - ..;..;..;..;/ - ..;..;..;;;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ;..;..;..;/ - ..;..;..;..;/ - ..;;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ;..;..;..;/ + ..;..;..;..;/ + ;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;;/ + ..;..;..;..;/ + ..;..;;..;/ + ..;..;..;;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;;/ + ..;..;..;;/ + ..;;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;;..;..;;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;;/ + ..;..;..;..;/ + ..;..;..;;;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ;..;..;..;/ + ..;..;..;..;/ + ..;..;..;;/ + ..;..;..;..;/ ..;..;..;;/ ..;;..;;..;/ - ..;..;..;..;/ - ;..;;;..;/ - ..;..;;;..;/ - ..;..;..;;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;;..;..;/ - ..;..;..;..;/ - ..;..;;..;/ - ..;..;..;..;/ - ;..;..;;..;/ - ..;;..;..;;/ + ..;..;..;..;/ + ..;;..;;;/ + ..;..;..;;;/ + ..;..;..;..;/ + ;..;..;..;/ + ..;..;..;..;/ + ..;..;..;;;/ + ..;..;..;;/ + ..;..;..;..;/ ..;..;;..;/ - ..;..;..;..;/ - ;..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ ..;..;..;..;/ - ..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;..;;;/ - ;..;..;..;/ - ..;..;..;..;/ - ..;..;..;;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;;..;;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;..;/ - ..;..;..;/ - ..;..;..;..;/ - ..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;/ - ..;..;..;..;/ - ;..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ;;;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;;;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;;..;/ + ..;..;..;..;/ + ..;..;..;..;/ ..;..;..;..;/ ;..;..;..;/ ..;..;..;..;/ - ..;..;..;/ - ..;..;/ - ..;..;/ - ..;..;/ + ..;..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;;..;/ + ..;..;/ + ..;;..;/ + ..;;..;/ + ..;..;/ + ..;..;/ + ..;..;;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;;;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ ..;..;/ ..;;..;/ ..;..;;/ - ..;..;/ - ..;..;/ - ..;..;/ - ..;..;/ - ..;;..;/ - ..;..;/ - ..;..;/ - ..;;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;;;/ + ..;..;;/ + ;;;;;/ + ..;..;;/ + ;;;;;/ + ..;;..;/ + ..;..;/ + ..;;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;;..;/ + ..;..;/ + ..;..;;/ + ..;..;/ ..;.. % The "xdigit" class must only contain the BASIC LATIN digits and A-F, a-f, @@ -2791,8 +3067,10 @@ xdigit / ..;..;.. blank / - ;;;..;..;; + ;;;..;..;;/ + +% The case conversions reflect Turkish conventions. toupper / (,);(,);(,);(,);/ (,);(,);(,);(,);/ @@ -2824,63 +3102,70 @@ toupper / (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);/ - (,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);/ - (,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ @@ -2888,14 +3173,19 @@ toupper / (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ - (,);(,);(,);/ + (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ - (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ (,);(,);(,);(,);/ - (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ @@ -2905,7 +3195,9 @@ toupper / (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ - (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ @@ -2935,67 +3227,192 @@ toupper / (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,) + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,) tolower / (,);(,);(,);(,);/ @@ -3049,154 +3466,294 @@ tolower / (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ - (,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);/ - (,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);/ - (,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ (,);(,);(,);(,);/ - (,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,) + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,) map "totitle"; / (,);(,);(,);(,);/ @@ -3229,63 +3786,70 @@ map "totitle"; / (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);/ - (,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);/ - (,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ @@ -3293,14 +3857,19 @@ map "totitle"; / (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ - (,);(,);(,);/ + (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ - (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ (,);(,);(,);(,);/ - (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ @@ -3310,7 +3879,9 @@ map "totitle"; / (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ - (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ @@ -3340,129 +3911,320 @@ map "totitle"; / (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,);/ - (,);(,) + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,);/ + (,);(,) % The "combining" class reflects ISO/IEC 10646-1 annex B.1 % That is, all combining characters (level 2+3). class "combining"; / - ..;..;..;..;/ - ..;..;..;;/ - ..;;..;;..;/ - ..;..;..;;..;/ - ..;..;;..;/ - ..;..;..;;/ - ..;..;..;;/ - ..;;;..;..;/ - ..;..;..;;/ - ..;..;..;..;/ - ;..;..;..;/ - ..;;..;..;/ - ..;;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ;..;;..;;/ - ..;..;;..;/ + ..;..;..;;/ + ..;..;;..;/ + ..;;..;..;/ + ..;..;;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;;..;..;/ + ..;;..;..;;/ + ..;..;..;;/ + ..;;..;;..;/ + ..;..;..;..;/ + ;..;..;..;/ + ..;..;;..;/ + ..;..;;..;/ + ..;..;..;..;/ + ..;..;;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ;..;..;;..;/ + ;..;..;;..;/ ..;;..;..;/ ..;..;;;;/ - ..;..;..;..;/ - ..;;..;..;/ - ..;..;..;..;/ - ..;..;..;;..;/ - ..;..;..;;..;/ - ..;..;..;/ + ..;..;..;..;/ + ..;;..;..;/ + ..;..;..;..;/ + ..;;..;..;/ + ..;..;..;..;/ + ..;;..;;..;/ + ..;..;..;..;/ + ;..;..;..;/ + ..;..;..;..;/ + ..;..;..;;/ + ..;..;..;..;/ + ..;..;;..;/ + ..;..;..;..;/ + ..;..;;;;/ + ..;..;..;..;/ + ..;..;..;..;/ + ;..;;..;..;/ + ;..;..;..;;/ + ..;..;..;..;/ + ;..;..;;;/ + ..;..;/ + ..;..;/ + ..;;..;/ + ..;..;/ + ..;..;/ + ..;..;;/ + ..;..;/ + ..;..;/ + ..;..;;/ + ..;..;/ + ..;;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ ..;..;/ - .. + ..;..;/ + ..;..;;/ + ;..;..;/ + ..;.. % The "combining_level3" class reflects ISO/IEC 10646-1 annex B.2 % That is, combining characters of level 3. class "combining_level3"; / - ..;;..;..;/ - ..;;..;..;;;/ - ;..;..;;..;/ - ..;..;;..;/ - ..;..;;..;;/ - ;..;..;..;/ - ..;..;;..;/ - ..;..;..;;/ - ..;..;..;..;/ - ;..;..;..;/ - ;..;..;..;/ - ..;..;..;..;/ - ..;..;..;..;/ - ..;..;..;;/ - ..;;..;;..;/ - ..;;..;..;;/ - ..;..;..;..;/ - ..;;..;..;/ - ..;..;..;..;/ + ..;;..;..;;/ + ..;;..;..;;/ + ;..;..;..;/ + ..;..;..;..;/ + ..;;..;..;/ + ..;;..;..;;/ + ..;..;..;;/ + ..;;..;;..;/ + ..;..;..;..;/ + ;..;..;..;/ + ..;..;;..;/ + ..;..;;..;/ + ..;..;..;..;/ + ..;..;;..;/ + ..;..;..;..;/ + ..;..;..;..;/ + ;..;..;;..;/ + ;..;..;;..;/ + ..;;..;..;/ + ..;..;..;;/ + ..;..;..;..;/ + ..;..;..;..;/ + ..;;..;..;/ ..;..;..;..;/ - ..;/ - ..;..;..;..;;/ - ..;..;;..;/ - .. - -% END modified i18n LC_CTYPE + ..;..;..;..;/ + ..;..;;..;/ + ..;..;..;..;/ + ..;;..;..;/ + ..;..;..;..;/ + ..;;..;..;;/ + ;;..;..;..;/ + ..;..;..;..;/ + ;..;;..;..;/ + ..;..;..;..;/ + ;..;..;/ + ..;;;;;/ + ..;..;/ + ..;..;/ + ..;;..;/ + ..;..;/ + ..;..;/ + ..;;..;/ + ..;..;;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;;;/ + ..;..;/ + .. translit_start include "translit_combining";"" diff --git a/localedata/unicode-gen/Makefile b/localedata/unicode-gen/Makefile index 5b7305d54e..4cb1fabc77 100644 --- a/localedata/unicode-gen/Makefile +++ b/localedata/unicode-gen/Makefile @@ -41,7 +41,7 @@ PYTHON3 = python3 WGET = wget DOWNLOADS = UnicodeData.txt DerivedCoreProperties.txt EastAsianWidth.txt -GENERATED = i18n UTF-8 translit_combining translit_compat translit_circle translit_cjk_compat translit_font translit_fraction +GENERATED = i18n tr_TR UTF-8 translit_combining translit_compat translit_circle translit_cjk_compat translit_font translit_fraction REPORTS = i18n-report UTF-8-report all: $(GENERATED) @@ -50,6 +50,7 @@ check: check-i18n check-UTF-8 install: cp -p i18n ../locales/i18n + cp -p tr_TR ../locales/tr_TR cp -p UTF-8 ../charmaps/UTF-8 cp -p translit_combining ../locales/translit_combining cp -p translit_compat ../locales/translit_compat @@ -82,6 +83,13 @@ check-i18n: i18n-report i18n-report; \ then echo manual verification required; false; else true; fi +tr_TR: UnicodeData.txt DerivedCoreProperties.txt +tr_TR: ../locales/tr_TR # Preserve non-ctype information. +tr_TR: gen_unicode_ctype.py + $(PYTHON3) gen_unicode_ctype.py -u UnicodeData.txt \ + -d DerivedCoreProperties.txt -i ../locales/tr_TR -o $@ \ + --unicode_version $(UNICODE_VERSION) --turkish + UTF-8: UnicodeData.txt EastAsianWidth.txt UTF-8: utf8_gen.py $(PYTHON3) utf8_gen.py UnicodeData.txt EastAsianWidth.txt diff --git a/localedata/unicode-gen/gen_unicode_ctype.py b/localedata/unicode-gen/gen_unicode_ctype.py index 0f064f5ba5..bcb50bf9a5 100755 --- a/localedata/unicode-gen/gen_unicode_ctype.py +++ b/localedata/unicode-gen/gen_unicode_ctype.py @@ -196,7 +196,7 @@ def output_tail(i18n_file, tail=''): else: i18n_file.write('END LC_CTYPE\n') -def output_tables(i18n_file, unicode_version): +def output_tables(i18n_file, unicode_version, turkish): '''Write the new LC_CTYPE character classes to the output file''' i18n_file.write('% The following is the 14652 i18n fdcc-set ' + 'LC_CTYPE category.\n') @@ -240,8 +240,14 @@ def output_tables(i18n_file, unicode_version): + '(sections 7.25.2.1.12 and 6.4.4.1).\n') output_charclass(i18n_file, 'xdigit', unicode_utils.is_xdigit) output_charclass(i18n_file, 'blank', unicode_utils.is_blank) - output_charmap(i18n_file, 'toupper', unicode_utils.to_upper) - output_charmap(i18n_file, 'tolower', unicode_utils.to_lower) + if turkish: + i18n_file.write('% The case conversions reflect ' + + 'Turkish conventions.\n') + output_charmap(i18n_file, 'toupper', unicode_utils.to_upper_turkish) + output_charmap(i18n_file, 'tolower', unicode_utils.to_lower_turkish) + else: + output_charmap(i18n_file, 'toupper', unicode_utils.to_upper) + output_charmap(i18n_file, 'tolower', unicode_utils.to_lower) output_charmap(i18n_file, 'map "totitle";', unicode_utils.to_title) i18n_file.write('% The "combining" class reflects ISO/IEC 10646-1 ' + 'annex B.1\n') @@ -298,6 +304,10 @@ if __name__ == "__main__": required=True, type=str, help='The Unicode version of the input files used.') + PARSER.add_argument( + '--turkish', + action='store_true', + help='Use Turkish case conversions.') ARGS = PARSER.parse_args() unicode_utils.fill_attributes( @@ -310,5 +320,5 @@ if __name__ == "__main__": (HEAD, TAIL) = read_input_file(ARGS.input_file) with open(ARGS.output_file, mode='w') as I18N_FILE: output_head(I18N_FILE, ARGS.unicode_version, head=HEAD) - output_tables(I18N_FILE, ARGS.unicode_version) + output_tables(I18N_FILE, ARGS.unicode_version, ARGS.turkish) output_tail(I18N_FILE, tail=TAIL) diff --git a/localedata/unicode-gen/unicode_utils.py b/localedata/unicode-gen/unicode_utils.py index ee91582823..26a57ef293 100644 --- a/localedata/unicode-gen/unicode_utils.py +++ b/localedata/unicode-gen/unicode_utils.py @@ -220,6 +220,20 @@ def to_lower(code_point): else: return code_point +def to_upper_turkish(code_point): + '''Returns the code point of the Turkish uppercase version + of the given code point''' + if code_point == 0x0069: + return 0x0130 + return to_upper(code_point) + +def to_lower_turkish(code_point): + '''Returns the code point of the Turkish lowercase version + of the given code point''' + if code_point == 0x0049: + return 0x0131 + return to_lower(code_point) + def to_title(code_point): '''Returns the code point of the titlecase version of the given code point'''